diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 9404af75f7..b3cf55e34c 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -1,13 +1,15 @@
version: 2
# Dependabot auto-update config.
#
-# Cooldown (7 days) is the point of this config: it delays version-update
-# PRs until a newly-published version has aged. Supply-chain attacks like
+# npm and GitHub Actions use a 7-day cooldown so newly published versions age
+# before a PR opens. Supply-chain attacks like
# the tanstack Shai-Hulud compromise (2026-05-11) live minutes-to-hours
# before the registry yanks them; a 7-day cooldown keeps poisoned
# versions out of our lockfiles.
#
-# Security updates bypass cooldown and continue to flow immediately. See:
+# Security updates bypass cooldown and continue to flow immediately. Docker
+# uses a shorter 3-day operational-freshness policy and does not support
+# Dependabot security updates. See:
# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/dependabot-options-reference#cooldown
#
# Auto-merge is deliberately NOT enabled. Every dependabot PR gets human
@@ -42,3 +44,24 @@ updates:
actions:
patterns: ["*"]
update-types: [minor, patch]
+
+ - package-ecosystem: docker
+ directory: /
+ schedule:
+ interval: weekly
+ day: monday
+ time: "09:00"
+ timezone: America/Los_Angeles
+ cooldown:
+ default-days: 3
+ open-pull-requests-limit: 5
+ groups:
+ docker-base-images:
+ group-by: dependency-name
+ patterns: ["*"]
+ ignore:
+ # Node 24 remains the active LTS line. Revisit Node 26 after it enters
+ # LTS in October 2026: https://github.com/bluesky-social/social-app/issues/11480
+ - dependency-name: node
+ update-types:
+ - version-update:semver-major
diff --git a/.github/workflows/build-and-push-bskyweb-aws.yaml b/.github/workflows/build-and-push-bskyweb-aws.yaml
index eb2c9b7bbb..8fffe1d17b 100644
--- a/.github/workflows/build-and-push-bskyweb-aws.yaml
+++ b/.github/workflows/build-and-push-bskyweb-aws.yaml
@@ -25,7 +25,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: 🔧 Setup Docker buildx
- uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0
+ uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0
- name: 🔑 Log into registry ${{ env.REGISTRY }}
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
diff --git a/.github/workflows/build-and-push-bskyweb-ghcr.yaml b/.github/workflows/build-and-push-bskyweb-ghcr.yaml
index be05a38ad1..d996cebc6a 100644
--- a/.github/workflows/build-and-push-bskyweb-ghcr.yaml
+++ b/.github/workflows/build-and-push-bskyweb-ghcr.yaml
@@ -1,5 +1,12 @@
name: build-and-push-bskyweb-ghcr
on:
+ pull_request:
+ paths:
+ - Dockerfile
+ - Dockerfile.bskylink
+ - Dockerfile.bskyogcard
+ - Dockerfile.embedr
+ - .github/workflows/build-and-push-bskyweb-ghcr.yaml
push:
branches:
- main
@@ -13,8 +20,40 @@ env:
IMAGE_NAME: ${{ github.repository }}
jobs:
+ verify-containers:
+ if: github.event_name == 'pull_request'
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - image: bskyweb
+ file: Dockerfile
+ - image: bskylink
+ file: Dockerfile.bskylink
+ - image: bskyogcard
+ file: Dockerfile.bskyogcard
+ - image: embedr
+ file: Dockerfile.embedr
+ steps:
+ - name: ⬇️ Checkout repository
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
+ - name: 🔧 Setup Docker buildx
+ uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0
+ - name: Build ${{ matrix.image }}
+ uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
+ with:
+ context: .
+ file: ${{ matrix.file }}
+ platforms: linux/amd64
+ push: false
+ cache-from: type=gha,scope=${{ matrix.image }}
+ cache-to: type=gha,mode=max,scope=${{ matrix.image }}
+
bskyweb-container-ghcr:
- if: github.repository == 'bluesky-social/social-app'
+ if: github.event_name == 'push' && github.repository == 'bluesky-social/social-app'
runs-on: ubuntu-latest
permissions:
contents: read
@@ -26,7 +65,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: 🔧 Setup Docker buildx
- uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0
+ uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0
- name: 🔑 Log into registry ${{ env.REGISTRY }}
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
diff --git a/.github/workflows/build-and-push-embedr-aws.yaml b/.github/workflows/build-and-push-embedr-aws.yaml
index 9947935261..59daa8b4a0 100644
--- a/.github/workflows/build-and-push-embedr-aws.yaml
+++ b/.github/workflows/build-and-push-embedr-aws.yaml
@@ -25,7 +25,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: 🔧 Setup Docker buildx
- uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0
+ uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0
- name: 🔑 Log into registry ${{ env.REGISTRY }}
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
diff --git a/.github/workflows/build-and-push-link-aws.yaml b/.github/workflows/build-and-push-link-aws.yaml
index 60a043faa6..11c335c307 100644
--- a/.github/workflows/build-and-push-link-aws.yaml
+++ b/.github/workflows/build-and-push-link-aws.yaml
@@ -25,7 +25,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: 🔧 Setup Docker buildx
- uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0
+ uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0
- name: 🔑 Log into registry ${{ env.REGISTRY }}
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
diff --git a/.github/workflows/build-and-push-ogcard-aws.yaml b/.github/workflows/build-and-push-ogcard-aws.yaml
index ec5eee6e83..79f70e2b0c 100644
--- a/.github/workflows/build-and-push-ogcard-aws.yaml
+++ b/.github/workflows/build-and-push-ogcard-aws.yaml
@@ -25,7 +25,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: 🔧 Setup Docker buildx
- uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0
+ uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0
- name: 🔑 Log into registry ${{ env.REGISTRY }}
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
diff --git a/.github/workflows/claude-mention.yml b/.github/workflows/claude-mention.yml
index 19f9ba3bd7..9c06aa5886 100644
--- a/.github/workflows/claude-mention.yml
+++ b/.github/workflows/claude-mention.yml
@@ -60,7 +60,7 @@ jobs:
fetch-depth: 1
- name: 🤖 Claude
- uses: anthropics/claude-code-action@1623c36729ac1cd5895198cded705a287de7db79 # v1.0.187
+ uses: anthropics/claude-code-action@459ad358ae43fea66bfefd0a1f8d840b4b9791fb # v1.0.194
env:
ANTHROPIC_BASE_URL: https://agentgateway.k1.prod.bsky.dev
with:
diff --git a/.github/workflows/claude-review.yml b/.github/workflows/claude-review.yml
index dbc52440ec..309ae4807d 100644
--- a/.github/workflows/claude-review.yml
+++ b/.github/workflows/claude-review.yml
@@ -45,7 +45,7 @@ jobs:
fetch-depth: 1
- name: 🤖 Claude review
- uses: anthropics/claude-code-action@1623c36729ac1cd5895198cded705a287de7db79 # v1.0.187
+ uses: anthropics/claude-code-action@459ad358ae43fea66bfefd0a1f8d840b4b9791fb # v1.0.194
env:
ANTHROPIC_BASE_URL: https://agentgateway.k1.prod.bsky.dev
with:
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index f07079b5c0..e63de19c73 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -22,7 +22,14 @@ jobs:
fail-fast: false
matrix:
job:
- [lint, prettier, 'typecheck:ios', 'typecheck:android', 'typecheck:web']
+ [
+ lint,
+ prettier,
+ 'lexicons:verify',
+ 'typecheck:ios',
+ 'typecheck:android',
+ 'typecheck:web',
+ ]
steps:
- name: ⬇️ Check out Git repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
diff --git a/.github/workflows/pull-request-commit.yml b/.github/workflows/pull-request-commit.yml
index 8bfe257819..bcd7749479 100644
--- a/.github/workflows/pull-request-commit.yml
+++ b/.github/workflows/pull-request-commit.yml
@@ -196,14 +196,7 @@ jobs:
with:
header: fingerprint-diff
message: |
- The Pull Request introduced fingerprint changes against the base commit:
- Fingerprint diff
-
- ```json
- ${{ steps.fingerprint.outputs.diff }}
- ```
-
-
+ The Pull Request introduced native fingerprint changes against the base commit.
---
*Generated by [PR labeler](https://github.com/expo/expo/actions/workflows/pr-labeler.yml) 🤖*
diff --git a/.gitignore b/.gitignore
index 8a38445859..a9d64c266c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -117,6 +117,9 @@ src/locale/locales/**/messages.js
src/locale/locales/**/messages.mjs
src/locale/locales/**/messages.ts
+# generated lexicon schemas (pnpm lexicons:generate)
+src/lexicons/
+
# local builds
*.apk
*.aab
diff --git a/.jscodeshift/repo/bsky-agent.js b/.jscodeshift/repo/bsky-agent.js
deleted file mode 100644
index 57e501959d..0000000000
--- a/.jscodeshift/repo/bsky-agent.js
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * Codemod to replace BskyAgent with AtpAgent
- *
- * Before:
- * import {BskyAgent} from '@atproto/api`
- * BskyAgent.appLabelers.includes(labeler)
- *
- * After:
- * import {AtpAgent} from '@atproto/api`
- * AtpAgent.appLabelers.includes(labeler)
- *
- * Handles import specifiers, type annotations, static member access
- * (BskyAgent.configure), `extends BskyAgent`, and `new BskyAgent()`. Whole
- * identifiers only, so names like `OpaqueBskyAgent` are left untouched.
- *
- * Usage: jscodeshift -t .jscodeshift/repo/bsky-agent.js
- * Example: jscodeshift -t .jscodeshift/repo/bsky-agent.js src/lib/moderation.ts
- */
-
-/* eslint-disable */
-
-export const parser = 'tsx'
-
-export default function transformer(file, api) {
- const j = api.jscodeshift
- const root = j(file.source)
-
- // Replace every standalone `BskyAgent` identifier with `AtpAgent`. This
- // covers imports, type references, member expressions, `extends`, and `new`.
- root
- .find(j.Identifier, {name: 'BskyAgent'})
- .replaceWith(() => j.identifier('AtpAgent'))
-
- // Renaming can leave a duplicate `AtpAgent` specifier on the @atproto/api
- // import if the file already imported it. Dedupe by imported name, keeping
- // the type-only modifier only if every duplicate was type-only.
- root
- .find(j.ImportDeclaration, {source: {value: '@atproto/api'}})
- .forEach(path => {
- const seen = new Map()
- for (const spec of path.value.specifiers) {
- if (spec.type !== 'ImportSpecifier') {
- seen.set(Symbol(), spec)
- continue
- }
- const name = spec.imported.name
- const existing = seen.get(name)
- if (!existing) {
- seen.set(name, spec)
- } else if (
- existing.importKind === 'type' &&
- spec.importKind !== 'type'
- ) {
- // Prefer the value (non-type) import if either usage needs it.
- seen.set(name, spec)
- }
- }
- path.value.specifiers = Array.from(seen.values())
- })
-
- return root.toSource()
-}
diff --git a/.nvmrc b/.nvmrc
index ca5c350055..60ade1ae01 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-24.18.0
+24.19.0
diff --git a/.oxlintrc.json b/.oxlintrc.json
index 63739f1f48..319b110386 100644
--- a/.oxlintrc.json
+++ b/.oxlintrc.json
@@ -60,8 +60,10 @@
"bskyweb/**",
"bskyembed/**",
"bskyogcard/**",
+ "lint-rules/**",
"src/locale/locales/_build/**",
"src/locale/locales/**/*.js",
+ "src/lexicons/**",
"*.e2e.ts",
"*.e2e.tsx",
"eslint.config.mjs",
@@ -238,7 +240,6 @@
}
}
],
- "bsky-internal/use-exact-imports": "error",
"bsky-internal/use-prefixed-imports": "error",
"bsky-internal/lingui-msg-rule": "error",
"react/display-name": "error",
@@ -259,7 +260,6 @@
"react/no-unsafe": "off",
"react/react-in-jsx-scope": "off",
"react/hook-use-state": "warn",
- "react-native/no-inline-styles": "off",
"react-native-a11y/has-accessibility-hint": "error",
"react-native-a11y/has-accessibility-props": "error",
"react-native-a11y/has-valid-accessibility-actions": "error",
@@ -274,7 +274,7 @@
"react-native-a11y/has-valid-accessibility-ignores-invert-colors": "error",
"react-native-a11y/has-valid-accessibility-live-region": "error",
"react-native-a11y/has-valid-important-for-accessibility": "error",
- "react-compiler/react-compiler": "warn",
+ "react/react-compiler": "warn",
"simple-import-sort/imports": [
"error",
{
@@ -374,9 +374,7 @@
},
"jsPlugins": [
"eslint-plugin-bsky-internal",
- "eslint-plugin-react-native",
"eslint-plugin-react-native-a11y",
- "eslint-plugin-react-compiler",
"eslint-plugin-simple-import-sort"
],
"env": {
@@ -387,6 +385,7 @@
},
{
"files": [
+ "bskylink/**/*.{js,jsx,ts,tsx}",
"bskyogcard/**/*.{js,jsx,ts,tsx}",
"dev-env/**/*.{js,jsx,ts,tsx}"
],
@@ -404,4 +403,4 @@
}
}
]
-}
\ No newline at end of file
+}
diff --git a/.prettierignore b/.prettierignore
index afc71dbac1..be1658124a 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -18,6 +18,7 @@
android
ios
src/locale/locales
+src/lexicons
lib/react-compiler-runtime
bskyweb/static
coverage
diff --git a/ASSETS.md b/ASSETS.md
index 1e480f5602..24d0935bd6 100644
--- a/ASSETS.md
+++ b/ASSETS.md
@@ -1,24 +1,38 @@
# Asset licensing
-The [MIT license](./LICENSE) in this repository covers our source code. It does not cover
-every file in the tree.
+The [MIT license](./LICENSE) in this repository covers our source code. It does not cover every file in the tree.
-Some of the images, icons, fonts, and brand assets here are licensed to Bluesky Social PBC
-by third parties, or are our trademarks, or are third-party trademarks. We cannot pass those
-rights on to you. This document identifies them.
+Some of the images, icons, fonts, and brand assets here are licensed to Bluesky Social PBC by third parties, or are our trademarks, or are third-party trademarks. We cannot pass those rights on to you. This document identifies them and names who holds them.
-We should have written this down sooner. If you have already forked this repository and
-shipped one of the assets listed below, we are not treating that as bad faith on your part —
-the repository did not tell you, and that is our fault. Please work through the
-[If you are forking](#if-you-are-forking) checklist when you can.
+## This is not a license change
-Assets are scoped by directory wherever possible, so that adding a file to a carved-out
-directory does not require an edit here. Individual paths are listed only where an asset does
-not sit in a dedicated directory.
+The MIT license on our source code is unchanged. This document records rights that Bluesky never held, and therefore could never have granted you.
-**The rule:** if a file is listed in this document, the MIT license does not grant you rights
-to it. Everything in [Section 6](#6-third-party-assets-you-may-redistribute) is redistributable
-on its own terms, which travel with the files.
+We updated this file in August 2026 so the repository no longer carries a blanket MIT license with no asset carve-out and forking guidelines that ignored commissioned artwork.
+
+For the assets Bluesky itself owns, we are not treating anyone's past use as bad faith. For the rest we are not the rights holder. The tables below name them. If you have shipped one of these in a fork, the [If you are forking](#if-you-are-forking) checklist is the shortest path to a clean position.
+
+## Summary
+
+| Where | Rights holder | Our MIT license covers it? | If you fork |
+|---|---|---|---|
+| [`assets/illustrations/`](#1-commissioned-artwork--licensed-to-bluesky-only) | Owen D. Pomery, via Brilliant Artists Ltd | No | Replace |
+| [`assets/icons/`](#2-licensed-icon-system--not-ours-to-pass-on) (top level), Central icon glyphs in `bskyembed/assets/` except the Starter Pack mark | Iconists (David & Storm GbR) | No | Source your own |
+| [Bluesky marks](#3-bluesky-trademarks-and-brand-assets) — app icons, logos, favicons | Bluesky Social PBC | No | Replace |
+| [`assets/kawaii.png`, `assets/kawaii_smol.png`](#4-community-and-contest-artwork--credited-but-not-ours-to-license) | [@sawaratsuki.bsky.social](https://bsky.app/profile/sawaratsuki.bsky.social) | No | Replace or remove |
+| [`assets/icons/custom_logo_japan.svg`](#4-community-and-contest-artwork--credited-but-not-ours-to-license) | A Bluesky Japan logo contest entrant | No | Replace or remove |
+| [`assets/icons/apple_logo.svg`](#5-third-party-trademarks) | Apple Inc. | No | Rests on your own basis |
+| [`assets/icons/android_logo.svg`](#5-third-party-trademarks) | Google LLC | No | Rests on your own basis |
+| [`assets/icons/community/`](#5-third-party-trademarks) | Leaflet, Offprint, pckt, Standard.site, Germ Network | No | Rests on your own basis |
+| [`assets/fonts/inter/`](#6-third-party-assets-you-may-redistribute), Inter files in `bskyogcard/src/assets/fonts/` | The Inter Project Authors | Separate — OFL 1.1 | **Keep, with the notice** |
+| [Noto fonts downloaded by `bskyogcard/scripts/install-fonts.ts`](#6-third-party-assets-you-may-redistribute) | Adobe, Google LLC, and The Noto Project Authors | Separate — OFL 1.1 | **Keep, with the notice** |
+| [`assets/icons/flags/`](#6-third-party-assets-you-may-redistribute) | @catamphetamine | Separate — MIT | **Keep, with the license** |
+| [`bskyweb/static/media/MaterialIcons.*.ttf`](#6-third-party-assets-you-may-redistribute) | Google, Inc. | Separate — Apache 2.0 | **Keep, with the notice** |
+| [`assets/images/`](#7-product-imagery--provenance-being-documented) | Mixed, and not yet fully documented — see Section 7 | No | Replace or ship without |
+
+Everything in [Section 6](#6-third-party-assets-you-may-redistribute) is already permissively licensed. It is the largest group of files listed here and it needs no action from you beyond keeping the notices in place.
+
+Assets are scoped by directory wherever possible, so that adding a file to a carved-out directory does not require an edit here. Individual paths are listed only where an asset does not sit in a dedicated directory.
---
@@ -26,54 +40,31 @@ on its own terms, which travel with the files.
**`assets/illustrations/`**
-The landing-screen illustration, in light and dark variants, used by
-`src/view/com/auth/SplashScreen.tsx` (`illustration-mobile.png` and
-`illustration-mobile-dark.png`).
+The landing-screen illustration, in light and dark variants (`assets/illustrations/illustration-mobile.png` and `assets/illustrations/illustration-mobile-dark.png`), used by `src/view/com/auth/SplashScreen.tsx`.
-This artwork was commissioned by Bluesky Social PBC from illustrator Owen D. Pomery, through
-his agent Brilliant Artists Ltd. Copyright remains with the artist. Our license is limited to
-Bluesky's own products and channels, it is exclusive to us, and it does not permit us to
-sublicense the artwork or to distribute modified versions of it.
+**Rights holder: Owen D. Pomery**, represented by Brilliant Artists Ltd. Bluesky Social PBC commissioned the work and holds a usage license. Copyright remains with the artist. Our license is limited to Bluesky's own products and channels, is exclusive to us, and does not permit us to sublicense the artwork or to distribute modified versions of it.
+
+**If you are forking this repository, replace these files.** Because our license is exclusive, the artwork is not available for separate third-party licensing while that license runs. Please do not approach the artist or his agent for permission — the constraint is our agreement, not their willingness. If you have already shipped it, contact us and we will help you sort it out rather than leaving you to guess.
-**If you are forking this repository, replace these files.** They are not available for
-third-party licensing while our license runs, so please do not contact the artist or his agent
-to request permission — the answer is constrained by our agreement, not by their willingness.
See [`assets/illustrations/README.md`](./assets/illustrations/README.md).
## 2. Licensed icon system — not ours to pass on
-**`assets/icons/` (top level), and the icon glyphs in `bskyembed/assets/`**
+**`assets/icons/` (top level), and the Central icon glyphs in `bskyembed/assets/`, except `bskyembed/assets/starterPack.svg`**
-The user-interface glyphs at the top level of `assets/icons/`, plus copies of several in
-`bskyembed/assets/`, come from the Central icon system by Iconists (David & Storm GbR). Bluesky
-Social PBC licenses these icons for use in our own products. **That license is for our own use.
-It does not include the right to pass any rights to the icons on to you.**
+**Rights holder: Iconists (David & Storm GbR).** The user-interface glyphs come from their [Central icon system](https://iconists.co/central). Bluesky Social PBC licenses them for use in our own products. **That license is for our own use. It does not include the right to pass any rights to the icons on to you.**
-This is not us telling you that you cannot use these icons. It is us telling you that any right
-you have to use them has to come from Iconists rather than from us, and that you should not
-assume our MIT license gave you one. Licenses are available directly from
-[iconists.co](https://iconists.co), and there are good openly licensed alternatives if you would
-rather not buy one.
+The fact that we have our own license does not mean that you cannot use these icons. It means that any right you have to use them has to come from Iconists, not us. Licenses are available from [iconists.co](https://iconists.co), and there are openly licensed alternatives if you prefer that.
-This section covers every file at the top level of `assets/icons/` **except** those named
-elsewhere in this document — specifically `logomark.svg`, `newskie.svg`, `verifiedCheck.svg`,
-`verifierCheck.svg`, `starterPack.svg`, `starterPack_stroke2_corner0_rounded.svg`, `custom_logo_japan.svg`,
-`apple_logo.svg`, and `android_logo.svg`. The `assets/icons/flags/` and `assets/icons/community/`
-subdirectories are covered by [Section 6](#6-third-party-assets-you-may-redistribute) and
-[Section 5](#5-third-party-trademarks) respectively.
+This section covers every file at the top level of `assets/icons/` **except** those named elsewhere in this document — specifically `assets/icons/logomark.svg`, `assets/icons/newskie.svg`, `assets/icons/verifiedCheck.svg`, `assets/icons/verifierCheck.svg`, `assets/icons/starterPack.svg`, `assets/icons/starterPack_stroke2_corner0_rounded.svg`, `assets/icons/custom_logo_japan.svg`, `assets/icons/apple_logo.svg`, and `assets/icons/android_logo.svg`. The `assets/icons/flags/` and `assets/icons/community/` subdirectories are covered by [Section 6](#6-third-party-assets-you-may-redistribute) and [Section 5](#5-third-party-trademarks) respectively.
See [`assets/icons/README.md`](./assets/icons/README.md).
## 3. Bluesky trademarks and brand assets
-Our name, logo, butterfly mark, logotype, and app icons are trademarks of Bluesky Social PBC.
-They are not licensed to you under the MIT license or by this document. Use of them is governed
-by our [Trademark Policy](https://bsky.social/about/support/trademarks) and [Brand Guidelines](https://bsky.social/about/support/branding).
+**Rights holder: Bluesky Social PBC.** Our name, logo, butterfly mark, logotype, and app icons are our trademarks. They are not licensed to you under the MIT license or by this document. Use of them is governed by our [Trademark Policy](https://bsky.social/about/support/trademarks) and [Brand Guidelines](https://bsky.social/about/support/branding).
-You may refer to Bluesky by name to describe interoperability or origin — for example, "a client
-for Bluesky," or "based on the Bluesky app." You may not use our marks as the identity of your
-own product or service, or in any way likely to suggest that Bluesky publishes, endorses, or
-supports it.
+You may refer to Bluesky by name to describe interoperability or origin — for example, "a client for Bluesky," or "based on the Bluesky app." You may not use our marks as the identity of your own product or service, or in any way likely to suggest that Bluesky publishes, endorses, or supports it.
- `assets/app-icons/` — all iOS and Android app icon variants, including the `.icon` bundles
- `assets/favicon.png`
@@ -89,120 +80,106 @@ supports it.
- `assets/icons/newskie.svg`
- `assets/icons/verifiedCheck.svg`
- `assets/icons/verifierCheck.svg`
-- `assets/icons/starterPack.svg`, `assets/icons/starterPack_stroke2_corner0_rounded.svg`
+- `assets/icons/starterPack.svg`
+- `assets/icons/starterPack_stroke2_corner0_rounded.svg`
- `bskyembed/assets/logo.svg`
- `bskyembed/assets/logo_full_name.svg`
-- `bskyweb/static/favicon.png`, `favicon-16x16.png`, `favicon-32x32.png`
+- `bskyembed/assets/starterPack.svg`
+- `bskyweb/static/favicon.png`
+- `bskyweb/static/favicon-16x16.png`
+- `bskyweb/static/favicon-32x32.png`
- `bskyweb/static/apple-touch-icon.png`
- `bskyweb/static/safari-pinned-tab.svg`
-- `bskyweb/static/social-card-default.png`, `bskyweb/static/social-card-default-gradient.png`
-- `bskyweb/embedr-static/favicon.png`, `favicon-16x16.png`, `favicon-32x32.png`
+- `bskyweb/static/social-card-default.png`
+- `bskyweb/static/social-card-default-gradient.png`
+- `bskyweb/embedr-static/favicon.png`
+- `bskyweb/embedr-static/favicon-16x16.png`
+- `bskyweb/embedr-static/favicon-32x32.png`
- `modules/BlueskyClip/Images.xcassets/AppIcon.appiconset/`
-- Inline vector path data in `src/view/icons/Logo.tsx` and `src/view/icons/Logotype.tsx`
+- Inline vector path data in `src/view/icons/Logo.tsx`, `src/view/icons/Logomark.tsx`, `src/view/icons/LogomarkWithType.tsx`, and `src/view/icons/Logotype.tsx`
-We are not asking anyone to remove these files from the repository. They are here because the
-app needs them to build. Replacing them is a forker's responsibility, not ours.
+These files stay in this repository because the app needs them to build. **If you fork, replace them with your own** — that is the one thing this section asks of you. Shipping an app that looks like Bluesky is also a problem under the app stores' own rules on copycat apps, quite apart from trademark.
## 4. Community and contest artwork — credited, but not ours to license
-These are third-party artworks that appear in the app with attribution. We hold no license that
-lets us pass rights to them on to you.
+These are third-party artworks that appear in the app with attribution. We hold no license that lets us pass rights to them on to you.
-- `assets/kawaii.png`, `assets/kawaii_smol.png` — logo by
- [@sawaratsuki.bsky.social](https://bsky.app/profile/sawaratsuki.bsky.social), shown as an
- opt-in variant and credited in `src/view/shell/Drawer.tsx` and
- `src/view/shell/desktop/RightNav.tsx`
-- `assets/icons/custom_logo_japan.svg` — the winning entry from the Bluesky Japan logo contest,
- created by a contest entrant
+- `assets/kawaii.png` and `assets/kawaii_smol.png` — **rights holder:
+ [@sawaratsuki.bsky.social](https://bsky.app/profile/sawaratsuki.bsky.social)**. Shown as an opt-in variant and credited in `src/view/shell/Drawer.tsx` and `src/view/shell/desktop/RightNav.tsx`.
+- `assets/icons/custom_logo_japan.svg` — **rights holder: the entrant who won the Bluesky Japan logo contest.**
-Replace these if you fork. If you want to use them, that is a conversation with the artist,
-not with us.
+Replace or remove these if you fork. If you want to use them, contact the artist.
## 5. Third-party trademarks
-These marks belong to other companies. We include them to identify their services in our UI —
-sign-in buttons, store badges, and links to third-party applications. We are neither granting
-nor withholding permission, because it is not ours to give. Your use of them rests on your own
-nominative-use basis or on permission from the mark owner.
+These marks belong to other companies. We include them to identify their services in our UI — sign-in buttons, store badges, and links to third-party applications. We are neither granting nor withholding permission, because it is not ours to give. Your use of them rests on your own nominative-use basis or on permission from the mark owner.
-- `assets/icons/apple_logo.svg` — Apple Inc.
-- `assets/icons/android_logo.svg` — Google LLC
-- `assets/icons/community/` — Leaflet, Offprint, pckt (`pckt.svg`, `pckt-full.svg`),
- Standard.site, and Germ Network (`germ_logo.webp`)
+- `assets/icons/apple_logo.svg` — **Apple Inc.**
+- `assets/icons/android_logo.svg` — **Google LLC**
+- `assets/icons/community/leaflet.svg` — **Leaflet**
+- `assets/icons/community/offprint.svg` — **Offprint**
+- `assets/icons/community/pckt.svg` and `assets/icons/community/pckt-full.svg` — **pckt**
+- `assets/icons/community/standard-site.svg` — **Standard.site**
+- `assets/icons/community/germ_logo.webp` — **Germ Network**
-Apple's and Google's marks in particular carry their own brand guidelines governing size,
-spacing, and permitted contexts. If you ship a sign-in button or a store badge, follow theirs,
-not ours.
+Apple's and Google's marks in particular carry their own brand guidelines governing size, spacing, and permitted contexts. If you ship a sign-in button or a store badge, follow their guidelines.
## 6. Third-party assets you may redistribute
-These are licensed on terms that permit redistribution. Nothing in this document restricts them.
-Their license text travels with the files, and you must keep it there.
+These are licensed on terms that permit redistribution. Nothing in this document restricts them. We list them so you know they are safe, and so you know to carry their notices. This is the largest group of assets in this document.
-| Asset | Path | License | Notice |
-|---|---|---|---|
-| Inter typeface | `assets/fonts/inter/` | SIL Open Font License 1.1 | [`OFL.txt`](./assets/fonts/inter/OFL.txt) |
-| Inter typeface (OG card service) | `bskyogcard/src/assets/fonts/` | SIL Open Font License 1.1 | [`README.md`](./bskyogcard/src/assets/fonts/README.md) |
-| country-flag-icons | `assets/icons/flags/` | MIT, © @catamphetamine | [`README.md`](./assets/icons/flags/README.md) |
-| Material Icons | `bskyweb/static/media/MaterialIcons.*.ttf` | Apache License 2.0 | [`NOTICE.md`](./NOTICE.md) |
+| Asset | Path | Rights holder | License | Notice |
+|---|---|---|---|---|
+| Inter typeface | `assets/fonts/inter/`, `bskyogcard/src/assets/fonts/Inter-*.ttf` | The Inter Project Authors | SIL Open Font License 1.1 | [`OFL.txt`](./assets/fonts/inter/OFL.txt) |
+| Noto Sans families (OG card service) | Downloaded by `bskyogcard/scripts/install-fonts.ts` | Adobe, Google LLC, and The Noto Project Authors | SIL Open Font License 1.1 | [`README.md`](./bskyogcard/src/assets/fonts/README.md) |
+| country-flag-icons | `assets/icons/flags/` | @catamphetamine | MIT | [`LICENSE`](./assets/icons/flags/LICENSE) |
+| Material Icons | `bskyweb/static/media/MaterialIcons.*.ttf` | Google, Inc. | Apache License 2.0 | [`NOTICE.md`](./NOTICE.md) |
-Build output under `bskyweb/static/media/` also contains compiled Inter files. They are the same
-OFL-licensed typeface, emitted by the web build.
+Build output under `bskyweb/static/media/` also contains compiled Inter files. They are the same OFL-licensed typeface, emitted by the web build. The bundled Inter license does not designate a Reserved Font Name.
-**One thing to watch on Inter:** OFL 1.1 includes a Reserved Font Name provision. If you modify
-or subset the font, the result cannot be distributed under the name "Inter."
+The OG card build downloads Noto Sans fonts into `bskyogcard/src/assets/fonts/` and copies them into its build output. Their copyright notices and OFL text are in [`bskyogcard/src/assets/fonts/OFL-NOTO.txt`](./bskyogcard/src/assets/fonts/OFL-NOTO.txt). The CJK fonts reserve the name "Source."
See [`NOTICE.md`](./NOTICE.md) for the consolidated third-party notices.
-## 7. Product imagery — treat as not licensed to you
+## 7. Product imagery — provenance being documented
**`assets/images/`**
-Product illustration and announcement imagery — onboarding value-prop art, chat backgrounds,
-feature announcement graphics, and similar.
+Product illustration and announcement imagery — onboarding art, chat backgrounds, feature announcement graphics, and similar.
-**Treat everything in this directory as outside the MIT license and not licensed for your use.**
-Some of it is commissioned work. Rather than have you guess file by file which is which, we are
-drawing the line at the directory.
+**Rights holder: mixed, and we have not finished documenting it.** Some of this is Bluesky's own work. Some was commissioned from outside illustrators, on terms that do not let us pass rights on. We are working out which is which.
-If you are forking, replace these or ship without them.
-See [`assets/images/README.md`](./assets/images/README.md).
+Until we have, **treat the whole directory as outside the MIT license and not licensed for your use.**
+
+When this is resolved, one of two things will happen: this section will name the rights holder for each file, or the directory will be split so that the boundary itself carries the answer. If you need a specific file's status before then, ask us and we will find out.
+
+If you are forking, replace these or ship without them. See [`assets/images/README.md`](./assets/images/README.md).
---
## If you are forking
-You have our blessing to fork this application. To do it cleanly:
+You have our blessing to fork this application. These steps map one-to-one to the sections above.
-1. **Replace `assets/illustrations/`.** Commissioned artwork, licensed to Bluesky only. See
- [Section 1](#1-commissioned-artwork--licensed-to-bluesky-only).
-2. **Source your own UI icons.** The glyph set in `assets/icons/` is licensed to us for our own
- use. See [Section 2](#2-licensed-icon-system--not-ours-to-pass-on).
-3. **Replace `assets/images/`.** Treat as not licensed to you. See
- [Section 7](#7-product-imagery--treat-as-not-licensed-to-you).
-4. **Replace the Bluesky marks** listed in [Section 3](#3-bluesky-trademarks-and-brand-assets) —
- app icons, favicons, logo files, and the inline logo paths in `src/view/icons/`.
-5. **Replace or remove the community artwork** in
- [Section 4](#4-community-and-contest-artwork--credited-but-not-ours-to-license).
-6. **Check your own position on the third-party marks** in
- [Section 5](#5-third-party-trademarks).
-7. **Keep the license notices** for the assets in
- [Section 6](#6-third-party-assets-you-may-redistribute).
-8. **Change your branding, support links, and analytics** as described in the
- [Forking guidelines](./README.md#forking-guidelines).
+1. **Replace `assets/illustrations/`** — commissioned artwork, licensed to Bluesky only. [Section 1](#1-commissioned-artwork--licensed-to-bluesky-only)
+2. **Source your own UI icons** — the glyph set in `assets/icons/` is licensed to us for our own use. [Section 2](#2-licensed-icon-system--not-ours-to-pass-on)
+3. **Replace the Bluesky marks** — app icons, favicons, logo files, and the inline logo paths in `src/view/icons/`. [Section 3](#3-bluesky-trademarks-and-brand-assets)
+4. **Replace or remove the community and contest artwork.** [Section 4](#4-community-and-contest-artwork--credited-but-not-ours-to-license)
+5. **Check your own position on the third-party marks.** [Section 5](#5-third-party-trademarks)
+6. **Keep the assets you may redistribute, and keep their notices with them.** [Section 6](#6-third-party-assets-you-may-redistribute)
+7. **Replace `assets/images/`, or ship without it.** [Section 7](#7-product-imagery--provenance-being-documented)
-This list is about licensing. The [Forking guidelines](./README.md#forking-guidelines) in the
-README cover the rest of what makes a fork clearly distinguishable from Bluesky, which matters
-both for your users and for app store review.
+Then change your branding, support links, and analytics as described in the [Forking guidelines](./README.md#forking-guidelines). That part is not about licensing — it is what makes a fork clearly distinguishable from Bluesky, which matters both for your users and for app store review.
## Questions
-If something in this repository looks like it should be on this list and is not, or if you are
-unsure whether an asset is covered, open an issue or email us and we will sort it out. We would
-much rather answer the question than have someone guess.
+If something in this repository looks like it should be on this list and is not, if a rights holder named here is wrong, or if you are unsure whether an asset is covered, open an issue or email [atmosphere@blueskyweb.xyz](mailto:atmosphere@blueskyweb.xyz).
+
+## History
+
+- **August 2026** — this document added, along with [`NOTICE.md`](./NOTICE.md), per-directory notices, and the required Apache 2.0 and OFL license texts. It documents pre-existing rights; it does not change the [MIT license](./LICENSE) or relicense any file.
+- **Before that** — the repository carried a blanket MIT license with no asset carve-out, and the forking guidelines did not mention commissioned artwork, trademarks, or licensed icons.
---
-*Last reviewed: August 2026. This document describes the licensing position of assets in this
-repository. It is not a grant of rights, and it does not modify the [MIT license](./LICENSE) as
-it applies to source code.*
+*This document describes the licensing position of assets in this repository. It is not a grant of rights, and it does not modify the [MIT license](./LICENSE) as it applies to source code.*
diff --git a/CLAUDE.md b/CLAUDE.md
index fbe87d5287..d90cbf7cb3 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -8,8 +8,8 @@ Bluesky Social is a cross-platform social media application built with React Nat
**Tech Stack:**
-- React 19.1
-- React Native 0.81 with Expo 54
+- React 19.2
+- React Native 0.86 with Expo 57
- TypeScript 7
- React Navigation 7 for routing
- TanStack Query (React Query) for data fetching
@@ -561,7 +561,7 @@ Only use `useMemo`/`useCallback` when you have a specific reason, such as:
1. **Accessibility**: Always provide `label` prop for interactive elements, use `accessibilityHint` where helpful
-2. **Translations**: Wrap ALL user-facing strings with ` `l` `` or ``
+2. **Translations**: Wrap ALL user-facing strings with the `` l`…` `` macro or the `` component
3. **Styling**: Combine static atoms with theme atoms, use platform utilities for platform-specific styles
diff --git a/Dockerfile.bskylink b/Dockerfile.bskylink
index 719e827a9f..6fe98b8e70 100644
--- a/Dockerfile.bskylink
+++ b/Dockerfile.bskylink
@@ -1,4 +1,4 @@
-FROM node:24.18.0-alpine3.23 AS build
+FROM node:24.19.0-alpine3.23 AS build
# Move files into the image and install
WORKDIR /app
@@ -14,7 +14,7 @@ RUN yarn build
RUN yarn install --production --ignore-scripts --prefer-offline
# Uses assets from build stage to reduce build size
-FROM node:24.18.0-alpine3.23
+FROM node:24.19.0-alpine3.23
RUN apk add --update dumb-init
@@ -26,8 +26,9 @@ COPY --from=build /app /app
RUN mkdir /app/data && chown node /app/data
VOLUME /app/data
-EXPOSE 3000
+EXPOSE 3000 9090
ENV LINK_PORT=3000
+ENV LINK_METRICS_PORT=9090
ENV NODE_ENV=production
# https://github.com/nodejs/docker-node/blob/master/docs/BestPractices.md#non-root-user
diff --git a/Dockerfile.bskyogcard b/Dockerfile.bskyogcard
index e4f3662a04..82dc6cb0f4 100644
--- a/Dockerfile.bskyogcard
+++ b/Dockerfile.bskyogcard
@@ -1,4 +1,4 @@
-FROM node:24.18.0-alpine3.23 AS build
+FROM node:24.19.0-alpine3.23 AS build
# Tells pnpm to run non-interactively (needed for install/script steps)
ENV CI=true
@@ -19,7 +19,7 @@ RUN pnpm install-fonts && pnpm build
RUN pnpm install --prod --ignore-scripts --prefer-offline
# Uses assets from build stage to reduce build size
-FROM node:24.18.0-alpine3.23
+FROM node:24.19.0-alpine3.23
RUN apk add --update dumb-init
diff --git a/Dockerfile.embedr b/Dockerfile.embedr
index a5c2a1041b..5c87122efe 100644
--- a/Dockerfile.embedr
+++ b/Dockerfile.embedr
@@ -5,7 +5,7 @@ WORKDIR /usr/src/social-app
ENV DEBIAN_FRONTEND=noninteractive
# Node
-ENV NODE_VERSION=24.18.0
+ENV NODE_VERSION=24.19.0
ENV NVM_DIR=/usr/share/nvm
# Go
diff --git a/NOTICE.md b/NOTICE.md
index 9797466484..8ad06edccb 100644
--- a/NOTICE.md
+++ b/NOTICE.md
@@ -1,8 +1,6 @@
# Third-party notices
-This file collects the attribution and license notices that third-party components in this
-repository require us to carry. It is separate from [`ASSETS.md`](./ASSETS.md), which describes
-which assets our [MIT license](./LICENSE) does and does not cover.
+This file collects the attribution and license notices that third-party components in this repository require us to carry. It is separate from [`ASSETS.md`](./ASSETS.md), which describes which assets our [MIT license](./LICENSE) does and does not cover.
If you distribute this software or a fork of it, these notices need to travel with it.
@@ -17,39 +15,43 @@ If you distribute this software or a fork of it, these notices need to travel wi
Copyright 2018 Google, Inc. All Rights Reserved.
```
-Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
-in compliance with the License. You may obtain a copy of the License at
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing, software distributed under the License
-is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
-or implied. See the License for the specific language governing permissions and limitations under
-the License.
+Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-*This font is emitted into the web build by `@expo/vector-icons`, which the Expo toolchain pulls
-in transitively. It is a distributed artifact rather than a source asset, which is why the notice
-lives here rather than beside the file.*
+*This font is emitted into the web build by `@expo/vector-icons`, which the Expo toolchain pulls in transitively. It is a distributed artifact rather than a source asset, which is why the notice lives here rather than beside the file.*
## Inter
-**Paths:** `assets/fonts/inter/`, `bskyogcard/src/assets/fonts/`, and compiled copies under
-`bskyweb/static/media/`
-**License:** SIL Open Font License, Version 1.1 — full text at
-[`assets/fonts/inter/OFL.txt`](./assets/fonts/inter/OFL.txt)
+**Paths:** `assets/fonts/inter/`, `bskyogcard/src/assets/fonts/Inter-*.ttf`, and compiled copies under `bskyweb/static/media/`
+**License:** SIL Open Font License, Version 1.1 — full text at [`assets/fonts/inter/OFL.txt`](./assets/fonts/inter/OFL.txt)
```
Copyright (c) 2016 The Inter Project Authors (https://github.com/rsms/inter)
```
-Inter is licensed under the SIL Open Font License, Version 1.1. The license includes a Reserved
-Font Name provision: a modified or subsetted version of the font may not be distributed under the
-name "Inter."
+Inter is licensed under the SIL Open Font License, Version 1.1. The bundled license does not designate a Reserved Font Name.
+
+## Noto Sans
+
+**Generated by:** `bskyogcard/scripts/install-fonts.ts`, into `bskyogcard/src/assets/fonts/` and the OG card build output
+**License:** SIL Open Font License, Version 1.1 — full text at [`bskyogcard/src/assets/fonts/OFL-NOTO.txt`](./bskyogcard/src/assets/fonts/OFL-NOTO.txt)
+
+```
+(c) 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'.
+Copyright 2015-2020 Google LLC. All Rights Reserved.
+Copyright 2024 The Noto Project Authors (https://github.com/notofonts/hebrew)
+Copyright 2022 The Noto Project Authors (https://github.com/notofonts/thai)
+```
+
+The OG card build downloads Noto Sans Arabic, Hebrew, HK, JP, KR, SC, TC, and Thai from Fontsource. All are licensed under OFL 1.1. The CJK families reserve the name "Source."
## country-flag-icons
**Path:** `assets/icons/flags/`
-**License:** MIT — see [`assets/icons/flags/README.md`](./assets/icons/flags/README.md)
+**License:** MIT — full text at [`assets/icons/flags/LICENSE`](./assets/icons/flags/LICENSE)
```
Copyright (c) 2020 @catamphetamine
@@ -57,6 +59,4 @@ Copyright (c) 2020 @catamphetamine
---
-For the licensing position of assets that are **not** covered by our MIT license — commissioned
-artwork, the licensed icon system, Bluesky trademarks, and third-party marks — see
-[`ASSETS.md`](./ASSETS.md).
+For the licensing position of assets that are **not** covered by our MIT license — commissioned artwork, the licensed icon system, Bluesky trademarks, third-party marks, and the product imagery in `assets/images/` — see [`ASSETS.md`](./ASSETS.md), which names known rights holders and identifies the product imagery whose provenance is still being documented.
diff --git a/__tests__/lib/string.test.ts b/__tests__/lib/string.test.ts
index 8a56423796..cbe0d889de 100644
--- a/__tests__/lib/string.test.ts
+++ b/__tests__/lib/string.test.ts
@@ -1,4 +1,4 @@
-import {RichText} from '@atproto/api'
+import {RichText} from '@bsky/sdk/richtext'
import {i18n} from '@lingui/core'
import {parseEmbedPlayerFromUrl} from '#/lib/strings/embed-player'
diff --git a/app.config.js b/app.config.js
index 79dd1dc619..22787090bb 100644
--- a/app.config.js
+++ b/app.config.js
@@ -184,10 +184,6 @@ module.exports = function (_config) {
androidStatusBar: {
barStyle: 'light-content',
},
- // Dark nav bar in light mode is better than light nav bar in dark mode
- androidNavigationBar: {
- barStyle: 'light-content',
- },
android: {
icon: './assets/app-icons/android_icon_default_next.png',
adaptiveIcon: {
@@ -261,7 +257,7 @@ module.exports = function (_config) {
'expo-build-properties',
{
ios: {
- deploymentTarget: '15.1',
+ deploymentTarget: '16.4',
buildReactNativeFromSource: true,
ccacheEnabled: IS_DEV,
cxxLanguageStandard: 'c++23',
diff --git a/assets/app-icons/README.md b/assets/app-icons/README.md
index 166017df3a..2d984151ce 100644
--- a/assets/app-icons/README.md
+++ b/assets/app-icons/README.md
@@ -1,16 +1,11 @@
-The app icons in this directory are trademarks of Bluesky Social
-PBC — the butterfly mark and its variants, as shipped to the iOS App Store and Google Play.
+**Rights holder: Bluesky Social PBC.**
-**These are not covered by the [MIT license](../../LICENSE) that applies to the rest of this
-repository.** Use of Bluesky's marks is governed by our Trademark Policy and Brand Guidelines,
-not by the license on our source code.
+The app icons in this directory are our trademarks — the butterfly mark and its variants, as shipped to the iOS App Store and Google Play.
-You may say that your app is a client for Bluesky, or that it is based on the Bluesky app. You
-may not use our marks as the identity of your own product, or in any way likely to suggest that
-Bluesky publishes, endorses, or supports it.
+**These are not covered by the [MIT license](../../LICENSE) that applies to the rest of this repository.** Use of Bluesky's marks is governed by our [Trademark Policy](https://bsky.social/about/support/trademarks) and [Brand Guidelines](https://bsky.social/about/support/branding), not by the license on our source code.
-If you are forking this repository, replace these files with your own icons. Shipping an app that
-looks like Bluesky is also a problem under the app stores' own rules on copycat apps, quite apart
-from trademark.
+You may say that your app is a client for Bluesky, or that it is based on the Bluesky app. You may not use our marks as the identity of your own product, or in any way likely to suggest that Bluesky publishes, endorses, or supports it.
-See [`ASSETS.md`](../../ASSETS.md) for the full asset licensing picture.
+If you are forking this repository, replace these files with your own icons. Shipping an app that looks like Bluesky is also a problem under the app stores' own rules on copycat apps, quite apart from trademark.
+
+See [`ASSETS.md`](../../ASSETS.md#3-bluesky-trademarks-and-brand-assets) for the full asset licensing picture.
diff --git a/assets/fonts/inter/README.md b/assets/fonts/inter/README.md
index 707a1af084..95f07c25d9 100644
--- a/assets/fonts/inter/README.md
+++ b/assets/fonts/inter/README.md
@@ -1,15 +1,13 @@
-[Inter](https://rsms.me/inter/) is a typeface by Rasmus
-Andersson, licensed under the SIL Open Font License, Version 1.1.
+**Rights holder: The Inter Project Authors.**
-The full license text is in [`OFL.txt`](./OFL.txt) and must travel with these files.
+[Inter](https://rsms.me/inter/) is a typeface by Rasmus Andersson, licensed under the SIL Open Font License, Version 1.1.
```
Copyright (c) 2016 The Inter Project Authors (https://github.com/rsms/inter)
```
-**You may redistribute these files.** Nothing in [`ASSETS.md`](../../../ASSETS.md) restricts them
-— they are here because the OFL requires the license text to accompany the font, not because they
-are carved out of our [MIT license](../../../LICENSE).
+The full license text is in [`OFL.txt`](./OFL.txt) and must travel with these files.
-**One thing to watch:** OFL 1.1 includes a Reserved Font Name provision. If you modify or subset
-the font, you may not distribute the result under the name "Inter."
+**You may redistribute these files under the OFL.** They are separately licensed and are not covered by Bluesky's [MIT license](../../../LICENSE). Keep [`OFL.txt`](./OFL.txt) with redistributed copies.
+
+The bundled OFL does not designate a Reserved Font Name.
diff --git a/assets/icons/README.md b/assets/icons/README.md
index c249d68d45..2aa4a7e278 100644
--- a/assets/icons/README.md
+++ b/assets/icons/README.md
@@ -1,23 +1,18 @@
-The user-interface glyphs in this directory are from the
-[Central icon system](https://iconists.co/central) by Iconists (David & Storm GbR). Bluesky
-Social PBC licenses them for use in our own products. **That license is for our own use, and it
-does not extend to you.**
+**Rights holder: Iconists (David & Storm GbR).**
-**These icons are not covered by the [MIT license](../../LICENSE) that applies to the rest of
-this repository.** If you want to use them, buy a license from
-[iconists.co](https://iconists.co). There are also good openly licensed icon sets if you would
-rather not.
+The user-interface glyphs in this directory come from their [Central icon system](https://iconists.co/central). Bluesky Social PBC licenses them for use in our own products. **That license is for our own use, and it does not extend to you.**
+
+**These icons are not covered by the [MIT license](../../LICENSE) that applies to the rest of this repository.** The fact that we have our own license does not mean that you cannot use these icons. It means that any right you have to use them has to come from Iconists, not us. Licenses are available from [iconists.co](https://iconists.co), and there are openly licensed alternatives if you prefer that.
This notice covers the SVG files at the top level of this directory. It does not cover:
-- `flags/` — country-flag-icons, MIT licensed, see [`flags/README.md`](./flags/README.md)
-- `community/` — third-party service marks, see [`community/README.md`](./community/README.md)
-- `logomark.svg`, `newskie.svg`, `verifiedCheck.svg`, `verifierCheck.svg`, `starterPack.svg`,
- `starterPack_stroke2_corner0_rounded.svg` — Bluesky trademarks and brand assets
-- `custom_logo_japan.svg` — artwork by a Bluesky Japan logo contest entrant
-- `apple_logo.svg`, `android_logo.svg` — Apple and Google trademarks
+| Not covered here | Rights holder | See |
+|---|---|---|
+| `flags/` | @catamphetamine, MIT licensed | [`flags/README.md`](./flags/README.md) |
+| `community/` | Third-party services | [`community/README.md`](./community/README.md) |
+| `logomark.svg`, `newskie.svg`, `verifiedCheck.svg`, `verifierCheck.svg`, `starterPack.svg`, `starterPack_stroke2_corner0_rounded.svg` | Bluesky Social PBC — trademarks | [`ASSETS.md`](../../ASSETS.md#3-bluesky-trademarks-and-brand-assets) |
+| `custom_logo_japan.svg` | A Bluesky Japan logo contest entrant | [`ASSETS.md`](../../ASSETS.md#4-community-and-contest-artwork--credited-but-not-ours-to-license) |
+| `apple_logo.svg` | Apple Inc. | [`ASSETS.md`](../../ASSETS.md#5-third-party-trademarks) |
+| `android_logo.svg` | Google LLC | [`ASSETS.md`](../../ASSETS.md#5-third-party-trademarks) |
-Each of those is described in [`ASSETS.md`](../../ASSETS.md).
-
-Adding an icon here? If it came from Central, this notice already covers it. If it came from
-anywhere else, add it to `ASSETS.md` so the notice does not go stale.
+Adding an icon here? If it came from Central, this notice covers it. If it came from anywhere else, add it to [`ASSETS.md`](../../ASSETS.md) so the notice does not go stale.
diff --git a/assets/icons/community/README.md b/assets/icons/community/README.md
index c76f75d3f7..299922a5db 100644
--- a/assets/icons/community/README.md
+++ b/assets/icons/community/README.md
@@ -1,14 +1,15 @@
-The icons in this directory are the marks of third-party
-services that appear in the Bluesky app — [Leaflet](https://leaflet.pub),
-[Offprint](https://offprint.net), [pckt](https://pckt.blog), [Standard.site](https://standard.site), and
-[Germ Network](https://germnetwork.com).
+The icons in this directory are the marks of third-party services that appear in the Bluesky app.
-**These marks belong to their respective owners.** They are not Bluesky trademarks, they are not
-covered by the [MIT license](../../../LICENSE) that applies to the rest of this repository, and we
-are not in a position to grant or withhold permission to use them. We include them to identify
-those services in our UI.
+| Icon | Rights holder |
+|---|---|
+| `leaflet.svg` | [Leaflet](https://leaflet.pub) |
+| `offprint.svg` | [Offprint](https://offprint.net) |
+| `pckt.svg`, `pckt-full.svg` | [pckt](https://pckt.blog) |
+| `standard-site.svg` | [Standard.site](https://standard.site) |
+| `germ_logo.webp` | [Germ Network](https://germnetwork.com) |
-If you fork this repository and keep these icons, your use of them rests on your own
-nominative-use basis or on permission from the mark owner.
+**These marks belong to their respective owners.** They are not Bluesky trademarks, they are not covered by the [MIT license](../../../LICENSE) that applies to the rest of this repository, and we are not in a position to grant or withhold permission to use them. We include them to identify those services in our UI.
-See [`ASSETS.md`](../../../ASSETS.md) for the full asset licensing picture.
+If you fork this repository and keep these icons, your use of them rests on your own nominative-use basis or on permission from the mark owner.
+
+See [`ASSETS.md`](../../../ASSETS.md#5-third-party-trademarks) for the full asset licensing picture.
diff --git a/assets/icons/flags/LICENSE b/assets/icons/flags/LICENSE
new file mode 100644
index 0000000000..af4846c1ce
--- /dev/null
+++ b/assets/icons/flags/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2020 @catamphetamine
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/assets/icons/flags/README.md b/assets/icons/flags/README.md
index 3a9d7499c6..8ff2a86b02 100644
--- a/assets/icons/flags/README.md
+++ b/assets/icons/flags/README.md
@@ -1,4 +1,9 @@
+**Rights holder: @catamphetamine.**
+
The flags in this directory are from the excellent [country-flag-icons](https://gitlab.com/catamphetamine/country-flag-icons).
-MIT License
Copyright (c) 2020 @catamphetamine
+
+**You may redistribute these files under country-flag-icons' MIT license, which is separate from Bluesky's repository license.** The complete license is in [`LICENSE`](./LICENSE) and must travel with redistributed copies.
+
+See [`ASSETS.md`](../../../ASSETS.md#6-third-party-assets-you-may-redistribute) for the full asset licensing picture.
diff --git a/assets/icons/gifSquare_stroke2_corner0_rounded.svg b/assets/icons/gifSquare_stroke2_corner0_rounded.svg
deleted file mode 100644
index 7d44106dd5..0000000000
--- a/assets/icons/gifSquare_stroke2_corner0_rounded.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/assets/icons/gifSquare_stroke2_corner2_rounded.svg b/assets/icons/gifSquare_stroke2_corner2_rounded.svg
new file mode 100644
index 0000000000..9288f6cc00
--- /dev/null
+++ b/assets/icons/gifSquare_stroke2_corner2_rounded.svg
@@ -0,0 +1 @@
+
diff --git a/assets/icons/image_stroke2_corner0_rounded.svg b/assets/icons/image_stroke2_corner0_rounded.svg
deleted file mode 100644
index 3363e186db..0000000000
--- a/assets/icons/image_stroke2_corner0_rounded.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/assets/icons/image_stroke2_corner2_rounded.svg b/assets/icons/image_stroke2_corner2_rounded.svg
new file mode 100644
index 0000000000..a82ab43338
--- /dev/null
+++ b/assets/icons/image_stroke2_corner2_rounded.svg
@@ -0,0 +1 @@
+
diff --git a/assets/illustrations/README.md b/assets/illustrations/README.md
index 4232cd7728..460d6cee73 100644
--- a/assets/illustrations/README.md
+++ b/assets/illustrations/README.md
@@ -1,19 +1,11 @@
-The landing screen illustration in this directory was commissioned by Bluesky Social PBC from
-illustrator [Owen D. Pomery](https://owenpomery.com/work), through his agent
-[Brilliant Artists Ltd](https://brilliantartists.co.uk/). Copyright in the artwork remains with
-the artist.
+**Rights holder: [Owen D. Pomery](https://owenpomery.com/work)**, represented by [Brilliant Artists Ltd](https://brilliantartists.co.uk/).
-**This artwork is not covered by the [MIT license](../../LICENSE) that applies to the rest of
-this repository.** Our license is limited to Bluesky's own products and channels, it is exclusive
-to us, and it does not permit us to sublicense the artwork or to distribute modified versions
-of it.
+The landing screen illustration in this directory was commissioned by Bluesky Social PBC. Copyright in the artwork remains with the artist.
-If you are forking this repository, replace these files. Because our license is exclusive, the
-artwork is not available for separate third-party licensing while that license runs — please do
-not approach the artist or his agent for permission.
+**This artwork is not covered by the [MIT license](../../LICENSE) that applies to the rest of this repository.** Our license is limited to Bluesky's own products and channels, is exclusive to us, and does not permit us to sublicense the artwork or to distribute modified versions of it.
-Adding a file here? It is carved out of the MIT license by directory, so a new file inherits
-that treatment automatically. If the file is not commissioned artwork covered by this notice,
-put it somewhere else.
+If you are forking this repository, replace these files. Because our license is exclusive, the artwork is not available for separate third-party licensing while that license runs. Please do not approach the artist or his agent for permission — the constraint is our agreement, not their willingness. If you have already shipped it, contact us and we will help you sort it out.
+
+Adding a file here? This directory is carved out of the MIT license, so a new file inherits that treatment. If the file is not commissioned artwork covered by this notice, put it somewhere else.
See [`ASSETS.md`](../../ASSETS.md) for the full asset licensing picture.
diff --git a/assets/images/README.md b/assets/images/README.md
index cbe5cbbd09..20dec26885 100644
--- a/assets/images/README.md
+++ b/assets/images/README.md
@@ -1,14 +1,13 @@
-The product imagery in this directory — onboarding illustrations,
-chat backgrounds, feature announcement graphics, and similar — is **not covered by the
-[MIT license](../../LICENSE)** that applies to the rest of this repository.
+**Rights holder: mixed, and we have not finished documenting it.**
-Some of it is commissioned artwork that we are not able to sublicense. Rather than have you work
-out file by file which is which, treat the whole directory as not licensed for your use.
+This directory holds product imagery — onboarding art, chat backgrounds, feature announcement graphics, and similar. Some of it is Bluesky's own work. Some was commissioned from outside illustrators, on terms that do not let us pass rights on. We are working out which is which.
+
+Until we have, **treat the whole directory as outside the [MIT license](../../LICENSE) and not licensed for your use.**
+
+When this is resolved, one of two things will happen: this notice will name the rights holder for each file, or the directory will be split so that the boundary itself carries the answer. If you need a specific file's status before then, ask us and we will find out.
If you are forking this repository, replace these files or ship without them.
-**Internal note:** this directory is carved out of the MIT license as a whole. If you are adding
-an asset that we do want forks to be able to reuse, put it somewhere else rather than adding an
-exception here — the carve-out only stays maintainable if the directory boundary means something.
+Adding a file here? This directory sits outside the MIT license, so a new file inherits that treatment. If you are adding something we do want forks to be able to reuse, put it in a different directory rather than creating an exception here.
-See [`ASSETS.md`](../../ASSETS.md) for the full asset licensing picture.
+See [`ASSETS.md`](../../ASSETS.md#7-product-imagery--provenance-being-documented) for the full asset licensing picture.
diff --git a/babel.config.js b/babel.config.js
index c29a1d2e44..90abe51c4d 100644
--- a/babel.config.js
+++ b/babel.config.js
@@ -35,7 +35,13 @@ module.exports = function (api) {
// cannot use `env` field because it will put them after
// the `react-native-worklets/plugin` plugin
...(api.env('test')
- ? ['@babel/plugin-transform-class-static-block']
+ ? [
+ '@babel/plugin-transform-class-static-block',
+ // Compile `import()` to require so jest (which runs without
+ // `--experimental-vm-modules`) can execute lazily-loaded modules
+ // like `@ipld/dag-cbor` via its moduleNameMapper.
+ '@babel/plugin-transform-dynamic-import',
+ ]
: []),
...(api.env('production') ? ['transform-remove-console'] : []),
diff --git a/bskyembed/package.json b/bskyembed/package.json
index 8baf4280d6..1f237e67e5 100644
--- a/bskyembed/package.json
+++ b/bskyembed/package.json
@@ -14,11 +14,13 @@
},
"dependencies": {
"@atproto/api": "0.20.11",
+ "@atproto/lexicon": "0.7.1",
"preact": "^10.4.8"
},
"devDependencies": {
"@eslint/js": "^9.18.0",
"@preact/preset-vite": "^2.10.2",
+ "@types/node": "^24.12.2",
"@vitejs/plugin-legacy": "^8.0.1",
"autoprefixer": "^10.4.19",
"eslint": "^9.18.0",
diff --git a/bskyembed/pnpm-lock.yaml b/bskyembed/pnpm-lock.yaml
index 2de86345d5..c05764fcd1 100644
--- a/bskyembed/pnpm-lock.yaml
+++ b/bskyembed/pnpm-lock.yaml
@@ -11,6 +11,9 @@ importers:
'@atproto/api':
specifier: 0.20.11
version: 0.20.11
+ '@atproto/lexicon':
+ specifier: 0.7.1
+ version: 0.7.1
preact:
specifier: ^10.4.8
version: 10.29.1
@@ -20,10 +23,13 @@ importers:
version: 9.39.4
'@preact/preset-vite':
specifier: ^2.10.2
- version: 2.10.5(@babel/core@7.29.0)(preact@10.29.1)(vite@8.0.16(jiti@1.21.7)(terser@5.47.1))
+ version: 2.10.5(@babel/core@7.29.0)(preact@10.29.1)(vite@8.0.16(@types/node@24.13.3)(jiti@1.21.7)(terser@5.47.1))
+ '@types/node':
+ specifier: ^24.12.2
+ version: 24.13.3
'@vitejs/plugin-legacy':
specifier: ^8.0.1
- version: 8.0.1(terser@5.47.1)(vite@8.0.16(jiti@1.21.7)(terser@5.47.1))
+ version: 8.0.1(terser@5.47.1)(vite@8.0.16(@types/node@24.13.3)(jiti@1.21.7)(terser@5.47.1))
autoprefixer:
specifier: ^10.4.19
version: 10.5.0(postcss@8.5.14)
@@ -62,7 +68,7 @@ importers:
version: 8.59.3(eslint@9.39.4(jiti@1.21.7))(typescript@6.0.3)
vite:
specifier: ^8.0.16
- version: 8.0.16(jiti@1.21.7)(terser@5.47.1)
+ version: 8.0.16(@types/node@24.13.3)(jiti@1.21.7)(terser@5.47.1)
vite-bundle-analyzer:
specifier: ^1.3.8
version: 1.3.8
@@ -940,6 +946,9 @@ packages:
'@types/json-schema@7.0.15':
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+ '@types/node@24.13.3':
+ resolution: {integrity: sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==}
+
'@typescript-eslint/eslint-plugin@8.59.3':
resolution: {integrity: sha512-PwFvSKsXGShKGW6n5bZOhGHEcCZXM8HofLK9fNsEwZXzFRjoY+XT1Vsf1zgyXdwTr0ZYz1/2tkZ0DBTT9jZjhw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -2279,6 +2288,9 @@ packages:
uint8arrays@5.1.1:
resolution: {integrity: sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==}
+ undici-types@7.18.2:
+ resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==}
+
unicode-canonical-property-names-ecmascript@2.0.1:
resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==}
engines: {node: '>=4'}
@@ -3360,19 +3372,19 @@ snapshots:
'@package-json/types@0.0.12': {}
- '@preact/preset-vite@2.10.5(@babel/core@7.29.0)(preact@10.29.1)(vite@8.0.16(jiti@1.21.7)(terser@5.47.1))':
+ '@preact/preset-vite@2.10.5(@babel/core@7.29.0)(preact@10.29.1)(vite@8.0.16(@types/node@24.13.3)(jiti@1.21.7)(terser@5.47.1))':
dependencies:
'@babel/core': 7.29.0
'@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0)
'@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.29.0)
- '@prefresh/vite': 2.4.12(preact@10.29.1)(vite@8.0.16(jiti@1.21.7)(terser@5.47.1))
+ '@prefresh/vite': 2.4.12(preact@10.29.1)(vite@8.0.16(@types/node@24.13.3)(jiti@1.21.7)(terser@5.47.1))
'@rollup/pluginutils': 5.3.0
babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.29.0)
debug: 4.4.3
magic-string: 0.30.21
picocolors: 1.1.1
- vite: 8.0.16(jiti@1.21.7)(terser@5.47.1)
- vite-prerender-plugin: 0.5.13(vite@8.0.16(jiti@1.21.7)(terser@5.47.1))
+ vite: 8.0.16(@types/node@24.13.3)(jiti@1.21.7)(terser@5.47.1)
+ vite-prerender-plugin: 0.5.13(vite@8.0.16(@types/node@24.13.3)(jiti@1.21.7)(terser@5.47.1))
zimmerframe: 1.1.4
transitivePeerDependencies:
- preact
@@ -3387,7 +3399,7 @@ snapshots:
'@prefresh/utils@1.2.1': {}
- '@prefresh/vite@2.4.12(preact@10.29.1)(vite@8.0.16(jiti@1.21.7)(terser@5.47.1))':
+ '@prefresh/vite@2.4.12(preact@10.29.1)(vite@8.0.16(@types/node@24.13.3)(jiti@1.21.7)(terser@5.47.1))':
dependencies:
'@babel/core': 7.29.0
'@prefresh/babel-plugin': 0.5.3
@@ -3395,7 +3407,7 @@ snapshots:
'@prefresh/utils': 1.2.1
'@rollup/pluginutils': 4.2.1
preact: 10.29.1
- vite: 8.0.16(jiti@1.21.7)(terser@5.47.1)
+ vite: 8.0.16(@types/node@24.13.3)(jiti@1.21.7)(terser@5.47.1)
transitivePeerDependencies:
- supports-color
@@ -3470,6 +3482,10 @@ snapshots:
'@types/json-schema@7.0.15': {}
+ '@types/node@24.13.3':
+ dependencies:
+ undici-types: 7.18.2
+
'@typescript-eslint/eslint-plugin@8.59.3(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@1.21.7))(typescript@6.0.3))(eslint@9.39.4(jiti@1.21.7))(typescript@6.0.3)':
dependencies:
'@eslint-community/regexpp': 4.12.2
@@ -3620,7 +3636,7 @@ snapshots:
'@unrs/resolver-binding-win32-x64-msvc@1.11.1':
optional: true
- '@vitejs/plugin-legacy@8.0.1(terser@5.47.1)(vite@8.0.16(jiti@1.21.7)(terser@5.47.1))':
+ '@vitejs/plugin-legacy@8.0.1(terser@5.47.1)(vite@8.0.16(@types/node@24.13.3)(jiti@1.21.7)(terser@5.47.1))':
dependencies:
'@babel/core': 7.29.0
'@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.29.0)
@@ -3635,7 +3651,7 @@ snapshots:
regenerator-runtime: 0.14.1
systemjs: 6.15.1
terser: 5.47.1
- vite: 8.0.16(jiti@1.21.7)(terser@5.47.1)
+ vite: 8.0.16(@types/node@24.13.3)(jiti@1.21.7)(terser@5.47.1)
transitivePeerDependencies:
- supports-color
@@ -4721,6 +4737,8 @@ snapshots:
dependencies:
multiformats: 13.4.2
+ undici-types@7.18.2: {}
+
unicode-canonical-property-names-ecmascript@2.0.1: {}
unicode-match-property-ecmascript@2.0.0:
@@ -4779,7 +4797,7 @@ snapshots:
vite-bundle-analyzer@1.3.8: {}
- vite-prerender-plugin@0.5.13(vite@8.0.16(jiti@1.21.7)(terser@5.47.1)):
+ vite-prerender-plugin@0.5.13(vite@8.0.16(@types/node@24.13.3)(jiti@1.21.7)(terser@5.47.1)):
dependencies:
kolorist: 1.8.0
magic-string: 0.30.21
@@ -4787,9 +4805,9 @@ snapshots:
simple-code-frame: 1.3.0
source-map: 0.7.6
stack-trace: 1.0.0
- vite: 8.0.16(jiti@1.21.7)(terser@5.47.1)
+ vite: 8.0.16(@types/node@24.13.3)(jiti@1.21.7)(terser@5.47.1)
- vite@8.0.16(jiti@1.21.7)(terser@5.47.1):
+ vite@8.0.16(@types/node@24.13.3)(jiti@1.21.7)(terser@5.47.1):
dependencies:
lightningcss: 1.32.0
picomatch: 4.0.4
@@ -4797,6 +4815,7 @@ snapshots:
rolldown: 1.0.3
tinyglobby: 0.2.17
optionalDependencies:
+ '@types/node': 24.13.3
fsevents: 2.3.3
jiti: 1.21.7
terser: 5.47.1
diff --git a/bskyembed/src/components/embed.tsx b/bskyembed/src/components/embed.tsx
index af7a97b8fe..d494182fed 100644
--- a/bskyembed/src/components/embed.tsx
+++ b/bskyembed/src/components/embed.tsx
@@ -466,6 +466,7 @@ function VideoEmbed({content}: {content: AppBskyEmbedVideo.View}) {
preload="metadata"
// @ts-expect-error https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/video#loading
loading="lazy"
+ crossorigin="anonymous"
aria-label={content.alt || undefined}
onClickCapture={evt => evt.stopPropagation()}
className="w-full rounded-xl bg-black"
diff --git a/bskyembed/tsconfig.json b/bskyembed/tsconfig.json
index 1eead3556f..edcaa96d4f 100644
--- a/bskyembed/tsconfig.json
+++ b/bskyembed/tsconfig.json
@@ -2,7 +2,7 @@
"compilerOptions": {
"target": "ES2015",
"lib": ["DOM", "ESNext"],
- "types": ["vite/client"],
+ "types": ["node", "vite/client"],
"allowJs": false,
"skipLibCheck": true,
"allowSyntheticDefaultImports": true,
diff --git a/bskylink/package.json b/bskylink/package.json
index 23fb08aac2..32271b3403 100644
--- a/bskylink/package.json
+++ b/bskylink/package.json
@@ -23,6 +23,7 @@
"lru-cache": "^11.1.0",
"pg": "^8.12.0",
"pino": "^9.2.0",
+ "prom-client": "^15.1.3",
"uint8arrays": "^5.1.0"
},
"devDependencies": {
diff --git a/bskylink/src/bin.ts b/bskylink/src/bin.ts
index 3dea1a7527..d0d4bcec5e 100644
--- a/bskylink/src/bin.ts
+++ b/bskylink/src/bin.ts
@@ -1,4 +1,11 @@
-import {Database, envToCfg, httpLogger, LinkService, readEnv} from './index.js'
+import {
+ Database,
+ envToCfg,
+ FORCE_SHUTDOWN_TIMEOUT_MS,
+ httpLogger,
+ LinkService,
+ readEnv,
+} from './index.js'
async function main() {
try {
@@ -10,6 +17,7 @@ async function main() {
httpLogger.info(
{
port: cfg.service.port,
+ metricsPort: cfg.service.metricsPort,
safelinkEnabled: cfg.service.safelinkEnabled,
hasDbUrl: !!cfg.db.url,
hasDbMigrationUrl: !!cfg.db.migrationUrl,
@@ -33,17 +41,36 @@ async function main() {
if (link.ctx.cfg.service.safelinkEnabled) {
httpLogger.info('Starting Safelink client')
- link.ctx.safelinkClient.runFetchEvents()
+ void link.ctx.safelinkClient.runFetchEvents()
}
await link.start()
httpLogger.info('Link service is running')
- process.on('SIGTERM', async () => {
- httpLogger.info('Link service is stopping')
- await link.destroy()
- httpLogger.info('Link service is stopped')
- })
+ const shutdown = (signal: NodeJS.Signals) => {
+ const forceExitTimer = setTimeout(() => {
+ httpLogger.error(
+ {signal},
+ 'Link service exceeded its shutdown deadline; forcing exit',
+ )
+ process.exit(1)
+ }, FORCE_SHUTDOWN_TIMEOUT_MS)
+ forceExitTimer.unref()
+
+ void (async () => {
+ httpLogger.info({signal}, 'Link service is stopping')
+ try {
+ await link.destroy()
+ httpLogger.info({signal}, 'Link service is stopped')
+ } catch (err) {
+ process.exitCode = 1
+ httpLogger.error({err, signal}, 'Failed to stop link service cleanly')
+ }
+ })()
+ }
+
+ process.once('SIGTERM', shutdown)
+ process.once('SIGINT', shutdown)
} catch (error) {
httpLogger.error(
{
diff --git a/bskylink/src/cache/safelinkClient.ts b/bskylink/src/cache/safelinkClient.ts
index d0f16e72c1..5130df762f 100644
--- a/bskylink/src/cache/safelinkClient.ts
+++ b/bskylink/src/cache/safelinkClient.ts
@@ -26,6 +26,9 @@ export class SafelinkClient {
private ozoneAgent: OzoneAgent
private cursor?: string
+ private fetchEventsPromise?: Promise
+ private fetchEventsTimeout?: NodeJS.Timeout
+ private stopped = false
constructor({cfg, db}: {cfg: ServiceConfig; db: Database}) {
this.domainCache = new LRUCache({
@@ -98,13 +101,15 @@ export class SafelinkClient {
url: string,
pattern: ToolsOzoneSafelinkDefs.PatternType,
): Promise {
- return db.db
- .selectFrom('safelink_rule')
- .selectAll()
- .where('url', '=', url)
- .where('pattern', '=', pattern)
- .orderBy('createdAt', 'desc')
- .executeTakeFirstOrThrow()
+ return db.observeQuery(`resolve_safelink_${pattern}_rule`, () =>
+ db.db
+ .selectFrom('safelink_rule')
+ .selectAll()
+ .where('url', '=', url)
+ .where('pattern', '=', pattern)
+ .orderBy('createdAt', 'desc')
+ .executeTakeFirstOrThrow(),
+ )
}
private async addRule(db: Database, rule: SafelinkRule) {
@@ -122,7 +127,7 @@ export class SafelinkClient {
return
}
- db.db
+ await db.db
.insertInto('safelink_rule')
.values({
id: rule.id,
@@ -132,12 +137,14 @@ export class SafelinkClient {
action: rule.action,
createdAt: rule.createdAt,
})
+ .onConflict(oc => oc.column('id').doNothing())
.execute()
.catch(err => {
redirectLogger.error(
{error: err, rule},
'failed to add rule to database',
)
+ throw err
})
if (rule.pattern === 'domain') {
@@ -172,6 +179,7 @@ export class SafelinkClient {
{error: err, rule},
'failed to remove rule from database',
)
+ throw err
})
if (rule.pattern === 'domain') {
@@ -181,13 +189,71 @@ export class SafelinkClient {
}
}
- public async runFetchEvents() {
+ public runFetchEvents(): Promise {
+ if (this.stopped) {
+ return Promise.resolve()
+ }
+
+ this.fetchEventsPromise ??= this.fetchEvents().finally(() => {
+ this.fetchEventsPromise = undefined
+ })
+ return this.fetchEventsPromise
+ }
+
+ public async stop(timeoutMs: number): Promise {
+ this.stopped = true
+ if (this.fetchEventsTimeout) {
+ clearTimeout(this.fetchEventsTimeout)
+ this.fetchEventsTimeout = undefined
+ }
+ const activePoll = this.fetchEventsPromise
+ if (!activePoll) {
+ return
+ }
+
+ let timeout: NodeJS.Timeout | undefined
+ const stopWaiting = new Promise(resolve => {
+ timeout = setTimeout(() => {
+ redirectLogger.warn(
+ {timeoutMs},
+ 'Safelink poll exceeded its shutdown deadline',
+ )
+ resolve()
+ }, timeoutMs)
+ })
+ try {
+ await Promise.race([activePoll, stopWaiting])
+ } finally {
+ if (timeout) {
+ clearTimeout(timeout)
+ }
+ }
+ }
+
+ private scheduleFetchEvents(delay: number) {
+ if (this.stopped) {
+ return
+ }
+ this.fetchEventsTimeout = setTimeout(() => {
+ this.fetchEventsTimeout = undefined
+ void this.runFetchEvents()
+ }, delay)
+ }
+
+ private async fetchEvents() {
let agent: AtpAgent
try {
agent = await this.ozoneAgent.getAgent()
} catch (err) {
+ if (this.stopped) {
+ return
+ }
redirectLogger.error({error: err}, 'error getting Ozone agent')
- setTimeout(() => this.runFetchEvents(), SAFELINK_MAX_FETCH_INTERVAL)
+ this.scheduleFetchEvents(SAFELINK_MAX_FETCH_INTERVAL)
+ return
+ }
+
+ if (this.stopped) {
return
}
@@ -200,10 +266,13 @@ export class SafelinkClient {
sortDirection: 'asc',
})
} catch (err) {
+ if (this.stopped) {
+ return
+ }
if (err instanceof ExpiredTokenError) {
redirectLogger.info('ozone agent had expired session, refreshing...')
await this.ozoneAgent.refreshSession()
- setTimeout(() => this.runFetchEvents(), SAFELINK_MIN_FETCH_INTERVAL)
+ this.scheduleFetchEvents(SAFELINK_MIN_FETCH_INTERVAL)
return
}
@@ -211,37 +280,56 @@ export class SafelinkClient {
{error: err},
'error fetching safelink events from Ozone',
)
- setTimeout(() => this.runFetchEvents(), SAFELINK_MAX_FETCH_INTERVAL)
+ this.scheduleFetchEvents(SAFELINK_MAX_FETCH_INTERVAL)
+ return
+ }
+
+ if (this.stopped) {
return
}
if (res.data.events.length === 0) {
redirectLogger.info('received no new safelink events from ozone')
- setTimeout(() => this.runFetchEvents(), SAFELINK_MAX_FETCH_INTERVAL)
+ this.scheduleFetchEvents(SAFELINK_MAX_FETCH_INTERVAL)
} else {
- await this.db.transaction(async db => {
- for (const rule of res.data.events) {
- switch (rule.eventType) {
- case 'removeRule':
- await this.removeRule(db, rule)
- break
- case 'addRule':
- case 'updateRule':
- await this.addRule(db, rule)
- break
- default:
- redirectLogger.warn({rule}, 'received unknown rule event type')
+ try {
+ await this.db.transaction(async db => {
+ for (const rule of res.data.events) {
+ switch (rule.eventType) {
+ case 'removeRule':
+ await this.removeRule(db, rule)
+ break
+ case 'addRule':
+ case 'updateRule':
+ await this.addRule(db, rule)
+ break
+ default:
+ redirectLogger.warn({rule}, 'received unknown rule event type')
+ }
}
+ })
+ if (this.stopped) {
+ return
}
- })
- if (res.data.cursor) {
- redirectLogger.info(
- {cursor: res.data.cursor},
- 'received new safelink events from Ozone',
+ if (res.data.cursor) {
+ redirectLogger.info(
+ {cursor: res.data.cursor},
+ 'received new safelink events from Ozone',
+ )
+ await this.setCursor(res.data.cursor)
+ }
+ } catch (err) {
+ if (this.stopped) {
+ return
+ }
+ redirectLogger.error(
+ {error: err},
+ 'error applying safelink events from Ozone',
)
- await this.setCursor(res.data.cursor)
+ this.scheduleFetchEvents(SAFELINK_MAX_FETCH_INTERVAL)
+ return
}
- setTimeout(() => this.runFetchEvents(), SAFELINK_MIN_FETCH_INTERVAL)
+ this.scheduleFetchEvents(SAFELINK_MIN_FETCH_INTERVAL)
}
}
diff --git a/bskylink/src/config.ts b/bskylink/src/config.ts
index e583a1f259..1a7f3d113d 100644
--- a/bskylink/src/config.ts
+++ b/bskylink/src/config.ts
@@ -7,6 +7,7 @@ export type Config = {
export type ServiceConfig = {
port: number
+ metricsPort: number
version?: string
hostnames: string[]
hostnamesSet: Set
@@ -33,6 +34,7 @@ export type DbPoolConfig = {
export type Environment = {
port?: number
+ metricsPort?: number
version?: string
hostnames: string[]
appHostname?: string
@@ -52,6 +54,7 @@ export type Environment = {
export const readEnv = (): Environment => {
return {
port: envInt('LINK_PORT'),
+ metricsPort: envInt('LINK_METRICS_PORT'),
version: envStr('LINK_VERSION'),
hostnames: envList('LINK_HOSTNAMES'),
appHostname: envStr('LINK_APP_HOSTNAME'),
@@ -74,6 +77,7 @@ export const readEnv = (): Environment => {
export const envToCfg = (env: Environment): Config => {
const serviceCfg: ServiceConfig = {
port: env.port ?? 3000,
+ metricsPort: env.metricsPort ?? 9090,
version: env.version,
hostnames: env.hostnames,
hostnamesSet: new Set(env.hostnames),
diff --git a/bskylink/src/db/index.ts b/bskylink/src/db/index.ts
index d335f80146..1e9e644561 100644
--- a/bskylink/src/db/index.ts
+++ b/bskylink/src/db/index.ts
@@ -1,4 +1,5 @@
import assert from 'assert'
+import {performance} from 'node:perf_hooks'
import {
Kysely,
type KyselyPlugin,
@@ -17,6 +18,8 @@ import {default as migrations} from './migrations/index.js'
import {DbMigrationProvider} from './migrations/provider.js'
import {type DbSchema} from './schema.js'
+const SLOW_QUERY_THRESHOLD_MS = 1000
+
export class Database {
migrator: Migrator
destroyed = false
@@ -101,6 +104,51 @@ export class Database {
return this.db.isTransaction
}
+ async observeQuery(
+ operation: string,
+ query: () => Promise,
+ ): Promise {
+ const poolIdleConnectionsAtStart = this.cfg.pool.idleCount
+ const poolTotalConnectionsAtStart = this.cfg.pool.totalCount
+ const poolWaitingRequestsAtStart = this.cfg.pool.waitingCount
+ const startedAt = performance.now()
+ let poolIdleConnectionsAtThreshold: number | undefined
+ let poolTotalConnectionsAtThreshold: number | undefined
+ let poolWaitingRequestsAtThreshold: number | undefined
+ const slowQueryTimer = setTimeout(() => {
+ poolIdleConnectionsAtThreshold = this.cfg.pool.idleCount
+ poolTotalConnectionsAtThreshold = this.cfg.pool.totalCount
+ poolWaitingRequestsAtThreshold = this.cfg.pool.waitingCount
+ }, SLOW_QUERY_THRESHOLD_MS)
+ slowQueryTimer.unref()
+ try {
+ return await query()
+ } finally {
+ clearTimeout(slowQueryTimer)
+ const durationMs = Math.round(performance.now() - startedAt)
+ if (durationMs >= SLOW_QUERY_THRESHOLD_MS) {
+ log.warn(
+ {
+ durationMs,
+ operation,
+ poolIdleConnectionsAtEnd: this.cfg.pool.idleCount,
+ poolIdleConnectionsAtStart,
+ poolIdleConnectionsAtThreshold,
+ poolStateAtThresholdCaptured:
+ poolWaitingRequestsAtThreshold !== undefined,
+ poolTotalConnectionsAtEnd: this.cfg.pool.totalCount,
+ poolTotalConnectionsAtStart,
+ poolTotalConnectionsAtThreshold,
+ poolWaitingRequestsAtEnd: this.cfg.pool.waitingCount,
+ poolWaitingRequestsAtStart,
+ poolWaitingRequestsAtThreshold,
+ },
+ 'slow database query',
+ )
+ }
+ }
+ }
+
assertTransaction() {
assert(this.isTransaction, 'Transaction required')
}
diff --git a/bskylink/src/index.test.ts b/bskylink/src/index.test.ts
new file mode 100644
index 0000000000..b869448a25
--- /dev/null
+++ b/bskylink/src/index.test.ts
@@ -0,0 +1,49 @@
+import assert from 'node:assert'
+import {type AddressInfo} from 'node:net'
+import {test} from 'node:test'
+
+import {envToCfg} from './config.js'
+import {LinkService} from './index.js'
+
+const testConfig = () =>
+ envToCfg({
+ dbPostgresUrl: 'postgres://localhost:1/blink',
+ hostnames: ['go.bsky.app'],
+ metricsPort: 0,
+ port: 0,
+ safelinkAgentIdentifier: 'test',
+ safelinkAgentPass: 'test',
+ safelinkPdsUrl: 'https://example.com',
+ })
+
+void test('serves and terminates the Prometheus listener', async () => {
+ const service = await LinkService.create(testConfig())
+
+ try {
+ await service.start()
+ const {port} = service.metricsServer?.address() as AddressInfo
+ const res = await fetch(`http://127.0.0.1:${port}/metrics`)
+
+ assert.strictEqual(res.status, 200)
+ assert.match(res.headers.get('content-type') ?? '', /text\/plain/)
+ const metrics = await res.text()
+ assert.match(metrics, /process_cpu_user_seconds_total/)
+ assert.match(metrics, /nodejs_eventloop_lag_max_seconds/)
+ assert.match(metrics, /bskylink_db_pool_connections\{state="idle"\} 0/)
+ assert.match(metrics, /bskylink_db_pool_connections\{state="in_use"\} 0/)
+ assert.match(metrics, /bskylink_db_pool_max_connections 10/)
+ assert.match(metrics, /bskylink_db_pool_waiting_requests 0/)
+ assert.doesNotMatch(metrics, /http_request_duration_seconds/)
+ } finally {
+ await service.destroy()
+ }
+
+ assert.strictEqual(service.metricsServer?.listening, false)
+})
+
+void test('isolates the Prometheus registry per service', async () => {
+ const first = await LinkService.create(testConfig())
+ const second = await LinkService.create(testConfig())
+
+ await Promise.all([first.destroy(), second.destroy()])
+})
diff --git a/bskylink/src/index.ts b/bskylink/src/index.ts
index c7111c78a5..5f5bf33459 100644
--- a/bskylink/src/index.ts
+++ b/bskylink/src/index.ts
@@ -4,24 +4,34 @@ import type http from 'node:http'
import cors from 'cors'
import express from 'express'
import {createHttpTerminator, type HttpTerminator} from 'http-terminator'
+import {type Registry} from 'prom-client'
import {type Config} from './config.js'
import {AppContext} from './context.js'
import i18n from './i18n.js'
+import {createPrometheusRegistry} from './prometheus.js'
import {default as routes, errorHandler} from './routes/index.js'
+import {REQUEST_DRAIN_TIMEOUT_MS} from './shutdown.js'
export * from './config.js'
export * from './db/index.js'
export * from './logger.js'
+export * from './shutdown.js'
export class LinkService {
public server?: http.Server
+ public metricsServer?: http.Server
private terminator?: HttpTerminator
+ private metricsTerminator?: HttpTerminator
+ private metricsRegistry: Registry
+ private destroyPromise?: Promise
constructor(
public app: express.Application,
public ctx: AppContext,
- ) {}
+ ) {
+ this.metricsRegistry = createPrometheusRegistry(ctx)
+ }
static async create(cfg: Config): Promise {
let app = express()
@@ -39,14 +49,45 @@ export class LinkService {
this.ctx.metrics.start()
this.server = this.app.listen(this.ctx.cfg.service.port)
this.server.keepAliveTimeout = 90000
- this.terminator = createHttpTerminator({server: this.server})
+ this.terminator = createHttpTerminator({
+ server: this.server,
+ gracefulTerminationTimeout: REQUEST_DRAIN_TIMEOUT_MS,
+ })
await events.once(this.server, 'listening')
+
+ const metricsApp = express()
+ metricsApp.get('/metrics', (_req, res, next) => {
+ res.set('Content-Type', this.metricsRegistry.contentType)
+ this.metricsRegistry.metrics().then(metrics => res.end(metrics), next)
+ })
+ this.metricsServer = metricsApp.listen(this.ctx.cfg.service.metricsPort)
+ this.metricsTerminator = createHttpTerminator({
+ server: this.metricsServer,
+ gracefulTerminationTimeout: 2000,
+ })
+ await events.once(this.metricsServer, 'listening')
}
- async destroy() {
+ destroy(): Promise {
+ this.destroyPromise ??= this.destroyInternal()
+
+ return this.destroyPromise
+ }
+
+ private async destroyInternal() {
this.ctx.abortController.abort()
- await this.terminator?.terminate()
- await this.ctx.db.close()
- this.ctx.metrics.stop()
+ try {
+ await Promise.all([
+ this.terminator?.terminate(),
+ this.metricsTerminator?.terminate(),
+ this.ctx.safelinkClient.stop(REQUEST_DRAIN_TIMEOUT_MS),
+ ])
+ } finally {
+ try {
+ await this.ctx.db.close()
+ } finally {
+ this.ctx.metrics.stop()
+ }
+ }
}
}
diff --git a/bskylink/src/prometheus.ts b/bskylink/src/prometheus.ts
new file mode 100644
index 0000000000..f2f8a31408
--- /dev/null
+++ b/bskylink/src/prometheus.ts
@@ -0,0 +1,54 @@
+import {collectDefaultMetrics, Gauge, Registry} from 'prom-client'
+
+import {type AppContext} from './context.js'
+
+let runtimeRegistry: Registry | undefined
+
+const getRuntimeRegistry = (): Registry => {
+ if (!runtimeRegistry) {
+ runtimeRegistry = new Registry()
+
+ // Beyla already exports HTTP RED metrics and traces for Blink. These
+ // process metrics cover the runtime-only failure modes it cannot see,
+ // particularly event-loop stalls, GC pauses, and V8 heap pressure.
+ collectDefaultMetrics({register: runtimeRegistry})
+ }
+
+ return runtimeRegistry
+}
+
+export const createPrometheusRegistry = (ctx: AppContext): Registry => {
+ const poolRegistry = new Registry()
+
+ new Gauge<'state'>({
+ name: 'bskylink_db_pool_connections',
+ help: 'PostgreSQL client connections by usage state.',
+ labelNames: ['state'],
+ registers: [poolRegistry],
+ collect() {
+ const {idleCount, totalCount} = ctx.db.cfg.pool
+ this.set({state: 'idle'}, idleCount)
+ this.set({state: 'in_use'}, totalCount - idleCount)
+ },
+ })
+
+ new Gauge({
+ name: 'bskylink_db_pool_max_connections',
+ help: 'Configured maximum PostgreSQL client connections.',
+ registers: [poolRegistry],
+ collect() {
+ this.set(ctx.cfg.db.pool.size)
+ },
+ })
+
+ new Gauge({
+ name: 'bskylink_db_pool_waiting_requests',
+ help: 'Requests waiting for a PostgreSQL client connection.',
+ registers: [poolRegistry],
+ collect() {
+ this.set(ctx.db.cfg.pool.waitingCount)
+ },
+ })
+
+ return Registry.merge([getRuntimeRegistry(), poolRegistry])
+}
diff --git a/bskylink/src/routes/redirect.ts b/bskylink/src/routes/redirect.ts
index a49f9c401e..ed1e32f9bc 100644
--- a/bskylink/src/routes/redirect.ts
+++ b/bskylink/src/routes/redirect.ts
@@ -8,7 +8,7 @@ import {linkRedirectContents} from '../html/linkRedirectContents.js'
import {linkWarningContents} from '../html/linkWarningContents.js'
import {linkWarningLayout} from '../html/linkWarningLayout.js'
import {redirectLogger} from '../logger.js'
-import {handler} from './util.js'
+import {observedHandler} from './util.js'
const INTERNAL_IP_REGEX = new RegExp(
'(^127.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$)|(^10.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$)|(^172.1[6-9]{1}[0-9]{0,1}.[0-9]{1,3}.[0-9]{1,3}$)|(^172.2[0-9]{1}[0-9]{0,1}.[0-9]{1,3}.[0-9]{1,3}$)|(^172.3[0-1]{1}[0-9]{0,1}.[0-9]{1,3}.[0-9]{1,3}$)|(^192.168.[0-9]{1,3}.[0-9]{1,3}$)|^localhost',
@@ -18,7 +18,7 @@ const INTERNAL_IP_REGEX = new RegExp(
export default function (ctx: AppContext, app: Express) {
return app.get(
'/redirect',
- handler(async (req, res) => {
+ observedHandler('redirect', async (req, res) => {
let link = req.query.u
assert(
typeof link === 'string',
diff --git a/bskylink/src/routes/shortLink.ts b/bskylink/src/routes/shortLink.ts
index 276aae1ca1..f78228fef2 100644
--- a/bskylink/src/routes/shortLink.ts
+++ b/bskylink/src/routes/shortLink.ts
@@ -4,23 +4,25 @@ import {DAY, SECOND} from '@atproto/common'
import {Express} from 'express'
import {AppContext} from '../context.js'
-import {handler} from './util.js'
+import {observedHandler} from './util.js'
export default function (ctx: AppContext, app: Express) {
return app.get(
'/:linkId',
- handler(async (req, res) => {
+ observedHandler('short_link', async (req, res) => {
const linkId = req.params.linkId
const contentType = req.accepts(['html', 'json'])
assert(
typeof linkId === 'string',
'express guarantees id parameter is a string',
)
- const found = await ctx.db.db
- .selectFrom('link')
- .selectAll()
- .where('id', '=', linkId)
- .executeTakeFirst()
+ const found = await ctx.db.observeQuery('resolve_short_link', () =>
+ ctx.db.db
+ .selectFrom('link')
+ .selectAll()
+ .where('id', '=', linkId)
+ .executeTakeFirst(),
+ )
if (!found) {
// potentially broken or mistyped link
res.setHeader('Cache-Control', 'no-store')
diff --git a/bskylink/src/routes/util.ts b/bskylink/src/routes/util.ts
index bcac64b01d..b8ac18071a 100644
--- a/bskylink/src/routes/util.ts
+++ b/bskylink/src/routes/util.ts
@@ -1,7 +1,11 @@
+import {performance} from 'node:perf_hooks'
+
import {ErrorRequestHandler, Request, RequestHandler, Response} from 'express'
import {httpLogger} from '../logger.js'
+const SLOW_REQUEST_THRESHOLD_MS = 1000
+
export type Handler = (req: Request, res: Response) => Awaited
export const handler = (runHandler: Handler): RequestHandler => {
@@ -14,6 +18,32 @@ export const handler = (runHandler: Handler): RequestHandler => {
}
}
+export const observedHandler = (
+ operation: string,
+ runHandler: Handler,
+): RequestHandler => {
+ return handler(async (req, res) => {
+ const startedAt = performance.now()
+ try {
+ await runHandler(req, res)
+ } finally {
+ const durationMs = Math.round(performance.now() - startedAt)
+ if (durationMs >= SLOW_REQUEST_THRESHOLD_MS) {
+ httpLogger.warn(
+ {
+ durationMs,
+ method: req.method,
+ operation,
+ requestTraceId: req.get('x-amzn-trace-id'),
+ statusCode: res.statusCode,
+ },
+ 'slow request',
+ )
+ }
+ }
+ })
+}
+
export const errorHandler: ErrorRequestHandler = (err, _req, res, next) => {
httpLogger.error({err}, 'request error')
if (res.headersSent) {
diff --git a/bskylink/src/safelinkShutdown.test.ts b/bskylink/src/safelinkShutdown.test.ts
new file mode 100644
index 0000000000..e93870dcfb
--- /dev/null
+++ b/bskylink/src/safelinkShutdown.test.ts
@@ -0,0 +1,189 @@
+import assert from 'node:assert'
+import {describe, it} from 'node:test'
+
+import {SafelinkClient} from './cache/safelinkClient.js'
+
+const createClient = (getAgent: () => Promise) => {
+ const client: SafelinkClient = Object.create(SafelinkClient.prototype)
+ Reflect.set(client, 'stopped', false)
+ Reflect.set(client, 'ozoneAgent', {getAgent})
+ Reflect.set(client, 'domainCache', {delete: () => {}})
+ Reflect.set(client, 'urlCache', {delete: () => {}})
+ return client
+}
+
+void describe('Safelink shutdown', () => {
+ void it('clears a scheduled retry and cannot restart after stop', async () => {
+ const client = createClient(() =>
+ Promise.reject(new Error('Ozone unavailable')),
+ )
+
+ await client.runFetchEvents()
+ assert.ok(Reflect.get(client, 'fetchEventsTimeout'))
+
+ await client.stop(1_000)
+ assert.strictEqual(Reflect.get(client, 'fetchEventsTimeout'), undefined)
+ assert.strictEqual(Reflect.get(client, 'stopped'), true)
+
+ await client.runFetchEvents()
+ assert.strictEqual(Reflect.get(client, 'fetchEventsTimeout'), undefined)
+ })
+
+ void it('waits for an active poll to finish before stopping', async () => {
+ let pollStarted = () => {}
+ const started = new Promise(resolve => {
+ pollStarted = () => resolve(undefined)
+ })
+ let finishPoll = () => {}
+ const releasePoll = new Promise(resolve => {
+ finishPoll = () => resolve(undefined)
+ })
+ const client = createClient(async () => {
+ pollStarted()
+ await releasePoll
+ throw new Error('poll released during shutdown')
+ })
+
+ const polling = client.runFetchEvents()
+ await started
+
+ let stopped = false
+ const stopping = client.stop(1_000).then(() => {
+ stopped = true
+ })
+ await new Promise(resolve => setTimeout(resolve, 25))
+ assert.strictEqual(stopped, false)
+
+ finishPoll()
+ await Promise.all([polling, stopping])
+ assert.strictEqual(stopped, true)
+ })
+
+ void it(
+ 'bounds the wait for a poll that never finishes',
+ {timeout: 1_000},
+ async () => {
+ const client = createClient(() => new Promise(() => {}))
+ void client.runFetchEvents()
+
+ const startedAt = Date.now()
+ await client.stop(25)
+ assert.ok(Date.now() - startedAt >= 20)
+ },
+ )
+
+ void it('retries a failed rule write without advancing the cursor', async () => {
+ const client = createClient(() =>
+ Promise.resolve({
+ tools: {
+ ozone: {
+ safelink: {
+ queryEvents: () =>
+ Promise.resolve({
+ data: {
+ cursor: 'next',
+ events: [
+ {
+ action: 'block',
+ createdAt: new Date().toISOString(),
+ eventType: 'addRule',
+ id: 1,
+ pattern: 'domain',
+ url: 'example.com',
+ },
+ ],
+ },
+ }),
+ },
+ },
+ },
+ }),
+ )
+ Reflect.set(client, 'cursor', 'current')
+ Reflect.set(client, 'db', {
+ transaction: (run: (db: unknown) => Promise) =>
+ run({
+ db: {
+ insertInto: () => ({
+ values: () => ({
+ onConflict: () => ({
+ execute: () =>
+ Promise.reject(new Error('database unavailable')),
+ }),
+ }),
+ }),
+ },
+ }),
+ })
+
+ await client.runFetchEvents()
+ assert.ok(Reflect.get(client, 'fetchEventsTimeout'))
+ assert.strictEqual(Reflect.get(client, 'cursor'), 'current')
+ await client.stop(1_000)
+ })
+
+ void it('advances the cursor after replaying an existing rule event', async () => {
+ const client = createClient(() =>
+ Promise.resolve({
+ tools: {
+ ozone: {
+ safelink: {
+ queryEvents: () =>
+ Promise.resolve({
+ data: {
+ cursor: 'next',
+ events: [
+ {
+ action: 'block',
+ createdAt: new Date().toISOString(),
+ eventType: 'addRule',
+ id: 1,
+ pattern: 'domain',
+ url: 'example.com',
+ },
+ ],
+ },
+ }),
+ },
+ },
+ },
+ }),
+ )
+ Reflect.set(client, 'cursor', 'current')
+ let storedCursor = 'current'
+ Reflect.set(client, 'db', {
+ transaction: (run: (db: unknown) => Promise) =>
+ run({
+ db: {
+ insertInto: () => ({
+ values: () => ({
+ onConflict: () => ({
+ execute: () => Promise.resolve(),
+ }),
+ }),
+ }),
+ },
+ }),
+ db: {
+ insertInto: () => ({
+ values: ({cursor}: {cursor: string}) => ({
+ onConflict: () => ({
+ execute: () => {
+ storedCursor = cursor
+ return Promise.resolve()
+ },
+ }),
+ }),
+ }),
+ },
+ })
+
+ await client.runFetchEvents()
+ try {
+ assert.strictEqual(storedCursor, 'next')
+ assert.strictEqual(Reflect.get(client, 'cursor'), 'next')
+ } finally {
+ await client.stop(1_000)
+ }
+ })
+})
diff --git a/bskylink/src/shutdown.test.ts b/bskylink/src/shutdown.test.ts
new file mode 100644
index 0000000000..7d75ca3ab0
--- /dev/null
+++ b/bskylink/src/shutdown.test.ts
@@ -0,0 +1,63 @@
+import assert from 'node:assert'
+import events from 'node:events'
+import http from 'node:http'
+import {describe, it} from 'node:test'
+
+import {createHttpTerminator} from 'http-terminator'
+
+import {REQUEST_DRAIN_TIMEOUT_MS} from './shutdown.js'
+
+describe('HTTP shutdown', () => {
+ it('allows in-flight requests to finish during the drain window', async () => {
+ let beginRequest = () => {}
+ const requestStarted = new Promise(resolve => {
+ beginRequest = () => resolve(undefined)
+ })
+ let finishRequest = () => {}
+ const releaseRequest = new Promise(resolve => {
+ finishRequest = () => resolve(undefined)
+ })
+
+ const server = http.createServer(async (_req, res) => {
+ beginRequest()
+ await releaseRequest
+ res.end('finished')
+ })
+ server.listen(0, '127.0.0.1')
+ await events.once(server, 'listening')
+
+ const address = server.address()
+ assert.ok(address && typeof address !== 'string')
+
+ const responsePromise = fetch(`http://127.0.0.1:${address.port}`)
+ await requestStarted
+
+ const terminator = createHttpTerminator({
+ server,
+ gracefulTerminationTimeout: REQUEST_DRAIN_TIMEOUT_MS,
+ })
+ let termination: Promise | undefined
+ try {
+ let terminated = false
+ termination = terminator.terminate().then(() => {
+ terminated = true
+ })
+
+ await new Promise(resolve => setTimeout(resolve, 25))
+ assert.strictEqual(terminated, false)
+
+ finishRequest()
+ const response = await responsePromise
+ assert.strictEqual(await response.text(), 'finished')
+ await termination
+ assert.strictEqual(terminated, true)
+ } finally {
+ finishRequest()
+ await (termination ?? terminator.terminate())
+ }
+ })
+
+ it('uses the shared 60 second request drain budget', () => {
+ assert.strictEqual(REQUEST_DRAIN_TIMEOUT_MS, 60_000)
+ })
+})
diff --git a/bskylink/src/shutdown.ts b/bskylink/src/shutdown.ts
new file mode 100644
index 0000000000..d399e189c6
--- /dev/null
+++ b/bskylink/src/shutdown.ts
@@ -0,0 +1,2 @@
+export const REQUEST_DRAIN_TIMEOUT_MS = 60_000
+export const FORCE_SHUTDOWN_TIMEOUT_MS = REQUEST_DRAIN_TIMEOUT_MS + 4_000
diff --git a/bskylink/yarn.lock b/bskylink/yarn.lock
index f30f67cb1c..017ef29846 100644
--- a/bskylink/yarn.lock
+++ b/bskylink/yarn.lock
@@ -161,6 +161,11 @@
dependencies:
make-plural "^7.0.0"
+"@opentelemetry/api@^1.4.0":
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.1.tgz#c1b0346de336ba55af2d5a7970882037baedec05"
+ integrity sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==
+
"@tsconfig/node10@^1.0.7":
version "1.0.11"
resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2"
@@ -338,6 +343,11 @@ base64-js@^1.3.1:
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+bintrees@1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.2.tgz#49f896d6e858a4a499df85c38fb399b9aff840f8"
+ integrity sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==
+
body-parser@1.20.2, body-parser@^1.20.2:
version "1.20.2"
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd"
@@ -1060,6 +1070,14 @@ process@^0.11.10:
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
+prom-client@^15.1.3:
+ version "15.1.3"
+ resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-15.1.3.tgz#69fa8de93a88bc9783173db5f758dc1c69fa8fc2"
+ integrity sha512-6ZiOBfCywsD4k1BN9IX0uZhF+tJkV8q8llP64G5Hajs4JOeVLPCwpPVcpXy3BwYiUGgyJzsJJQeOIv7+hDSq8g==
+ dependencies:
+ "@opentelemetry/api" "^1.4.0"
+ tdigest "^0.1.1"
+
proxy-addr@~2.0.7:
version "2.0.7"
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
@@ -1232,6 +1250,13 @@ string_decoder@^1.3.0:
dependencies:
safe-buffer "~5.2.0"
+tdigest@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.2.tgz#96c64bac4ff10746b910b0e23b515794e12faced"
+ integrity sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==
+ dependencies:
+ bintrees "1.0.2"
+
thread-stream@^2.6.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-2.7.0.tgz#d8a8e1b3fd538a6cca8ce69dbe5d3d097b601e11"
diff --git a/bskyogcard/src/assets/fonts/OFL-NOTO.txt b/bskyogcard/src/assets/fonts/OFL-NOTO.txt
new file mode 100644
index 0000000000..cb0e35a13f
--- /dev/null
+++ b/bskyogcard/src/assets/fonts/OFL-NOTO.txt
@@ -0,0 +1,96 @@
+(c) 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'.
+Copyright 2015-2020 Google LLC. All Rights Reserved.
+Copyright 2024 The Noto Project Authors (https://github.com/notofonts/hebrew)
+Copyright 2022 The Noto Project Authors (https://github.com/notofonts/thai)
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/bskyogcard/src/assets/fonts/README.md b/bskyogcard/src/assets/fonts/README.md
index 170d08b554..111b764756 100644
--- a/bskyogcard/src/assets/fonts/README.md
+++ b/bskyogcard/src/assets/fonts/README.md
@@ -1,16 +1,26 @@
-These are subsets of
-[Inter](https://rsms.me/inter/) by Rasmus Andersson, used by the OG card rendering service.
+# Font licensing
-Inter is licensed under the SIL Open Font License, Version 1.1. The full license text is at
-[`assets/fonts/inter/OFL.txt`](../../../../assets/fonts/inter/OFL.txt) and must travel with these
-files.
+This directory contains Inter subsets tracked in the repository and Noto Sans fonts downloaded during the OG card build. Both are separately licensed under the SIL Open Font License, Version 1.1, rather than Bluesky's [MIT license](../../../../LICENSE).
+
+## Inter
```
Copyright (c) 2016 The Inter Project Authors (https://github.com/rsms/inter)
```
-**You may redistribute these files.** They are not carved out of our
-[MIT license](../../../../LICENSE) — this notice exists because the OFL requires it.
+The tracked `Inter-Bold.ttf`, `Inter-Regular.ttf`, and `Inter-SemiBold.ttf` files are subsets of [Inter](https://rsms.me/inter/) by Rasmus Andersson. The full license text is at [`assets/fonts/inter/OFL.txt`](../../../../assets/fonts/inter/OFL.txt). The bundled OFL does not designate a Reserved Font Name.
-**One thing to watch:** OFL 1.1 includes a Reserved Font Name provision. If you modify or subset
-the font further, you may not distribute the result under the name "Inter."
+## Noto Sans
+
+[`bskyogcard/scripts/install-fonts.ts`](../../../scripts/install-fonts.ts) downloads Noto Sans Arabic, Hebrew, HK, JP, KR, SC, TC, and Thai into this directory. The build copies them into `bskyogcard/dist/assets/fonts/`, and the Docker image contains both locations.
+
+```
+(c) 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'.
+Copyright 2015-2020 Google LLC. All Rights Reserved.
+Copyright 2024 The Noto Project Authors (https://github.com/notofonts/hebrew)
+Copyright 2022 The Noto Project Authors (https://github.com/notofonts/thai)
+```
+
+Their full license text is in [`OFL-NOTO.txt`](./OFL-NOTO.txt). The CJK families reserve the name "Source."
+
+**You may redistribute these fonts under their respective OFL notices. Keep the applicable copyright notice and OFL text with every redistributed copy.**
diff --git a/bskyogcard/src/types/bsky/starterPack.ts b/bskyogcard/src/types/bsky/starterPack.ts
index 0064e16bc6..08bbe6c3b3 100644
--- a/bskyogcard/src/types/bsky/starterPack.ts
+++ b/bskyogcard/src/types/bsky/starterPack.ts
@@ -7,5 +7,4 @@ export const isView = AppBskyGraphDefs.isStarterPackView
* Matches any starter pack view exported by our SDK
*/
export type AnyStarterPackView =
- | AppBskyGraphDefs.StarterPackViewBasic
- | AppBskyGraphDefs.StarterPackView
+ AppBskyGraphDefs.StarterPackViewBasic | AppBskyGraphDefs.StarterPackView
diff --git a/bskyweb/cmd/bskyweb/jsonld.go b/bskyweb/cmd/bskyweb/jsonld.go
index a5ab849c35..f54ca4b4ce 100644
--- a/bskyweb/cmd/bskyweb/jsonld.go
+++ b/bskyweb/cmd/bskyweb/jsonld.go
@@ -554,11 +554,8 @@ func buildPostNode(pv *appbsky.FeedDefs_PostView, replies []*appbsky.FeedDefs_Th
}
}
- if pv.ReplyCount != nil {
+ if pv.ReplyCount != nil && *pv.ReplyCount > 0 {
node.CommentCount = pv.ReplyCount
- } else {
- zero := int64(0)
- node.CommentCount = &zero
}
if !embedHidden {
diff --git a/bskyweb/cmd/bskyweb/jsonld_test.go b/bskyweb/cmd/bskyweb/jsonld_test.go
index d3da1a0570..6c1e504d4d 100644
--- a/bskyweb/cmd/bskyweb/jsonld_test.go
+++ b/bskyweb/cmd/bskyweb/jsonld_test.go
@@ -313,7 +313,7 @@ func TestBuildPostJSONLD_Bare(t *testing.T) {
if main["datePublished"] != "2024-01-02T03:04:05Z" {
t.Errorf("datePublished wrong: %v", main["datePublished"])
}
- // commentCount should always be emitted, even at zero.
+ // Positive commentCount values should be emitted.
cc, ok := main["commentCount"].(float64)
if !ok || int64(cc) != 3 {
t.Errorf("commentCount wrong: %v", main["commentCount"])
@@ -342,6 +342,41 @@ func TestBuildPostJSONLD_Bare(t *testing.T) {
}
}
+func TestBuildPostJSONLD_CommentCount(t *testing.T) {
+ tests := []struct {
+ name string
+ count *int64
+ want *int64
+ }{
+ {name: "nil", count: nil, want: nil},
+ {name: "zero", count: intPtr(0), want: nil},
+ {name: "negative", count: intPtr(-1), want: nil},
+ {name: "positive", count: intPtr(3), want: intPtr(3)},
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ pv := makePostView("alice.bsky.social", "did:plc:alice", "abc123", "hello")
+ pv.ReplyCount = tt.count
+ out, err := buildPostJSONLD(pv, nil, "u", "", hideEmbedLabels, hideReplyLabels)
+ if err != nil {
+ t.Fatal(err)
+ }
+ main := unmarshalLD(t, out)["mainEntity"].(map[string]any)
+ got, present := main["commentCount"]
+ if tt.want == nil {
+ if present {
+ t.Errorf("commentCount should be omitted, got %v", got)
+ }
+ return
+ }
+ if !present || int64(got.(float64)) != *tt.want {
+ t.Errorf("commentCount = %v, want %d", got, *tt.want)
+ }
+ })
+ }
+}
+
func TestBuildPostJSONLD_WithImages(t *testing.T) {
thumb1 := "https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:alice/abc@jpeg"
thumb2 := "https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:alice/def@jpeg"
diff --git a/docs/deploy-ota.md b/docs/deploy-ota.md
index d582402672..52a319bf38 100644
--- a/docs/deploy-ota.md
+++ b/docs/deploy-ota.md
@@ -44,7 +44,7 @@ Double check yourself by ensuring that the `version` in `package.json` matches
what's in the latest release.
This new OTA branch should follow the format `1.X.0-ota-1`. If one or more OTAs
-have already been deployed for this release, incremement the branch name e.g.
+have already been deployed for this release, increment the branch name e.g.
`1.x.0-ota-2`.
### 4. Add commits to the OTA branch
diff --git a/docs/img/ota_action.png b/docs/img/ota_action.png
index 56911400aa..0d14bb0bc8 100644
Binary files a/docs/img/ota_action.png and b/docs/img/ota_action.png differ
diff --git a/eas.json b/eas.json
index 996b0512d6..22f59b41f6 100644
--- a/eas.json
+++ b/eas.json
@@ -6,7 +6,7 @@
},
"build": {
"base": {
- "node": "24.18.0"
+ "node": "24.19.0"
},
"development": {
"extends": "base",
diff --git a/eslint/use-exact-imports.js b/eslint/use-exact-imports.js
deleted file mode 100644
index 6ba2df5d6c..0000000000
--- a/eslint/use-exact-imports.js
+++ /dev/null
@@ -1,32 +0,0 @@
-const BANNED_IMPORTS = [
- '@fortawesome/free-regular-svg-icons',
- '@fortawesome/free-solid-svg-icons',
-]
-
-/** @type {import('eslint').Rule.RuleModule} */
-module.exports = {
- meta: {
- type: 'suggestion',
- docs: {
- description: 'Prevent importing entire icon packages',
- },
- schema: [],
- },
- create(context) {
- return {
- ImportDeclaration(node) {
- const source = node.source
- if (typeof source.value !== 'string') {
- return
- }
- if (BANNED_IMPORTS.includes(source.value)) {
- context.report({
- node,
- message:
- 'Import the specific thing you want instead of the entire package',
- })
- }
- },
- }
- },
-}
diff --git a/jest/jestSetup.js b/jest/jestSetup.js
index ca04d54261..44a2c985f5 100644
--- a/jest/jestSetup.js
+++ b/jest/jestSetup.js
@@ -21,9 +21,10 @@ jest.mock('react-native-safe-area-context', () => {
const inset = {top: 0, right: 0, bottom: 0, left: 0}
return {
SafeAreaProvider: jest.fn().mockImplementation(({children}) => children),
- SafeAreaConsumer: jest
- .fn()
- .mockImplementation(({children}) => children(inset)),
+ SafeAreaConsumer: jest.fn().mockImplementation(
+ /** @param {{children: (i: typeof inset) => unknown}} props */
+ ({children}) => children(inset),
+ ),
useSafeAreaInsets: jest.fn().mockImplementation(() => inset),
}
})
@@ -55,6 +56,16 @@ jest.mock('expo-media-library', () => ({
__esModule: true, // this property makes it work
default: jest.fn(),
usePermissions: jest.fn(() => [true]),
+ requestPermissionsAsync: jest.fn().mockResolvedValue({granted: true}),
+ saveToLibraryAsync: jest.fn().mockResolvedValue(undefined),
+}))
+
+jest.mock('expo-media-library/legacy', () => ({
+ __esModule: true,
+ default: jest.fn(),
+ usePermissions: jest.fn(() => [true]),
+ requestPermissionsAsync: jest.fn().mockResolvedValue({granted: true}),
+ saveToLibraryAsync: jest.fn().mockResolvedValue(undefined),
}))
jest.mock('@bsky.app/expo-guess-language', () => ({
@@ -85,18 +96,26 @@ jest.mock('expo-application', () => ({
}))
jest.mock('expo-modules-core', () => ({
- requireNativeModule: jest.fn().mockImplementation(moduleName => {
- if (moduleName === 'ExpoPlatformInfo') {
- return {
- getIsReducedMotionEnabled: () => false,
+ requireNativeModule: jest.fn().mockImplementation(
+ /** @param {string} moduleName */
+ moduleName => {
+ if (moduleName === 'ExpoPlatformInfo') {
+ return {
+ getIsReducedMotionEnabled: () => false,
+ }
}
- }
- if (moduleName === 'BottomSheet') {
- return {
- dismissAll: () => {},
+ if (moduleName === 'BottomSheet') {
+ return {
+ dismissAll: () => {},
+ }
}
- }
- }),
+
+ const expoModules = /** @type {Record | undefined} */ (
+ globalThis.expo?.modules
+ )
+ return expoModules?.[moduleName]
+ },
+ ),
requireNativeViewManager: jest.fn().mockImplementation(_ => {
return () => null
}),
diff --git a/lexicons.json b/lexicons.json
new file mode 100644
index 0000000000..08f35c1eaf
--- /dev/null
+++ b/lexicons.json
@@ -0,0 +1,1332 @@
+{
+ "version": 1,
+ "lexicons": [
+ "app.bsky.actor.defs",
+ "app.bsky.actor.getPreferences",
+ "app.bsky.actor.getProfile",
+ "app.bsky.actor.getProfiles",
+ "app.bsky.actor.getSuggestions",
+ "app.bsky.actor.profile",
+ "app.bsky.actor.putPreferences",
+ "app.bsky.actor.searchActors",
+ "app.bsky.actor.searchActorsTypeahead",
+ "app.bsky.actor.status",
+ "app.bsky.ageassurance.begin",
+ "app.bsky.ageassurance.defs",
+ "app.bsky.ageassurance.getConfig",
+ "app.bsky.ageassurance.getState",
+ "app.bsky.bookmark.createBookmark",
+ "app.bsky.bookmark.defs",
+ "app.bsky.bookmark.deleteBookmark",
+ "app.bsky.bookmark.getBookmarks",
+ "app.bsky.contact.defs",
+ "app.bsky.contact.dismissMatch",
+ "app.bsky.contact.getMatches",
+ "app.bsky.contact.getSyncStatus",
+ "app.bsky.contact.importContacts",
+ "app.bsky.contact.removeData",
+ "app.bsky.contact.sendNotification",
+ "app.bsky.contact.startPhoneVerification",
+ "app.bsky.contact.verifyPhone",
+ "app.bsky.draft.createDraft",
+ "app.bsky.draft.defs",
+ "app.bsky.draft.deleteDraft",
+ "app.bsky.draft.getDrafts",
+ "app.bsky.draft.updateDraft",
+ "app.bsky.embed.defs",
+ "app.bsky.embed.external",
+ "app.bsky.embed.gallery",
+ "app.bsky.embed.getEmbedExternalView",
+ "app.bsky.embed.images",
+ "app.bsky.embed.record",
+ "app.bsky.embed.recordWithMedia",
+ "app.bsky.embed.video",
+ "app.bsky.feed.defs",
+ "app.bsky.feed.describeFeedGenerator",
+ "app.bsky.feed.generator",
+ "app.bsky.feed.getActorFeeds",
+ "app.bsky.feed.getActorLikes",
+ "app.bsky.feed.getAuthorFeed",
+ "app.bsky.feed.getFeed",
+ "app.bsky.feed.getFeedGenerator",
+ "app.bsky.feed.getFeedGenerators",
+ "app.bsky.feed.getFeedSkeleton",
+ "app.bsky.feed.getLikes",
+ "app.bsky.feed.getListFeed",
+ "app.bsky.feed.getPostThread",
+ "app.bsky.feed.getPosts",
+ "app.bsky.feed.getQuotes",
+ "app.bsky.feed.getRepostedBy",
+ "app.bsky.feed.getSuggestedFeeds",
+ "app.bsky.feed.getTimeline",
+ "app.bsky.feed.like",
+ "app.bsky.feed.post",
+ "app.bsky.feed.postgate",
+ "app.bsky.feed.repost",
+ "app.bsky.feed.searchPosts",
+ "app.bsky.feed.searchPostsV2",
+ "app.bsky.feed.sendInteractions",
+ "app.bsky.feed.threadgate",
+ "app.bsky.graph.block",
+ "app.bsky.graph.defs",
+ "app.bsky.graph.follow",
+ "app.bsky.graph.getActorStarterPacks",
+ "app.bsky.graph.getBlocks",
+ "app.bsky.graph.getFollowers",
+ "app.bsky.graph.getFollows",
+ "app.bsky.graph.getKnownFollowers",
+ "app.bsky.graph.getList",
+ "app.bsky.graph.getListBlocks",
+ "app.bsky.graph.getListMutes",
+ "app.bsky.graph.getLists",
+ "app.bsky.graph.getListsWithMembership",
+ "app.bsky.graph.getMutes",
+ "app.bsky.graph.getRelationships",
+ "app.bsky.graph.getStarterPack",
+ "app.bsky.graph.getStarterPacks",
+ "app.bsky.graph.getStarterPacksWithMembership",
+ "app.bsky.graph.getSuggestedFollowsByActor",
+ "app.bsky.graph.list",
+ "app.bsky.graph.listblock",
+ "app.bsky.graph.listitem",
+ "app.bsky.graph.muteActor",
+ "app.bsky.graph.muteActorList",
+ "app.bsky.graph.muteThread",
+ "app.bsky.graph.searchStarterPacks",
+ "app.bsky.graph.searchStarterPacksV2",
+ "app.bsky.graph.starterpack",
+ "app.bsky.graph.unmuteActor",
+ "app.bsky.graph.unmuteActorList",
+ "app.bsky.graph.unmuteThread",
+ "app.bsky.graph.verification",
+ "app.bsky.labeler.defs",
+ "app.bsky.labeler.getServices",
+ "app.bsky.labeler.service",
+ "app.bsky.notification.declaration",
+ "app.bsky.notification.defs",
+ "app.bsky.notification.getPreferences",
+ "app.bsky.notification.getUnreadCount",
+ "app.bsky.notification.listActivitySubscriptions",
+ "app.bsky.notification.listNotifications",
+ "app.bsky.notification.putActivitySubscription",
+ "app.bsky.notification.putPreferences",
+ "app.bsky.notification.putPreferencesV2",
+ "app.bsky.notification.registerPush",
+ "app.bsky.notification.unregisterPush",
+ "app.bsky.notification.updateSeen",
+ "app.bsky.richtext.facet",
+ "app.bsky.video.defs",
+ "app.bsky.video.getJobStatus",
+ "app.bsky.video.getUploadLimits",
+ "app.bsky.video.uploadVideo",
+ "chat.bsky.actor.declaration",
+ "chat.bsky.actor.defs",
+ "chat.bsky.actor.deleteAccount",
+ "chat.bsky.actor.exportAccountData",
+ "chat.bsky.actor.getStatus",
+ "chat.bsky.convo.acceptConvo",
+ "chat.bsky.convo.addReaction",
+ "chat.bsky.convo.defs",
+ "chat.bsky.convo.deleteMessageForSelf",
+ "chat.bsky.convo.getConvo",
+ "chat.bsky.convo.getConvoAvailability",
+ "chat.bsky.convo.getConvoForMembers",
+ "chat.bsky.convo.getConvoMembers",
+ "chat.bsky.convo.getLog",
+ "chat.bsky.convo.getMessages",
+ "chat.bsky.convo.getUnreadCounts",
+ "chat.bsky.convo.leaveConvo",
+ "chat.bsky.convo.listConvoRequests",
+ "chat.bsky.convo.listConvos",
+ "chat.bsky.convo.lockConvo",
+ "chat.bsky.convo.muteConvo",
+ "chat.bsky.convo.removeReaction",
+ "chat.bsky.convo.sendMessage",
+ "chat.bsky.convo.sendMessageBatch",
+ "chat.bsky.convo.unlockConvo",
+ "chat.bsky.convo.unmuteConvo",
+ "chat.bsky.convo.updateAllRead",
+ "chat.bsky.convo.updateRead",
+ "chat.bsky.embed.joinLink",
+ "chat.bsky.group.addMembers",
+ "chat.bsky.group.approveJoinRequest",
+ "chat.bsky.group.createGroup",
+ "chat.bsky.group.createJoinLink",
+ "chat.bsky.group.defs",
+ "chat.bsky.group.disableJoinLink",
+ "chat.bsky.group.editGroup",
+ "chat.bsky.group.editJoinLink",
+ "chat.bsky.group.enableJoinLink",
+ "chat.bsky.group.getJoinLinkPreviews",
+ "chat.bsky.group.listJoinRequests",
+ "chat.bsky.group.listMutualGroups",
+ "chat.bsky.group.rejectJoinRequest",
+ "chat.bsky.group.removeMembers",
+ "chat.bsky.group.requestJoin",
+ "chat.bsky.group.updateJoinRequestsRead",
+ "chat.bsky.group.withdrawJoinRequest",
+ "chat.bsky.moderation.defs",
+ "chat.bsky.moderation.getActorMetadata",
+ "chat.bsky.moderation.getConvo",
+ "chat.bsky.moderation.getConvoMembers",
+ "chat.bsky.moderation.getConvos",
+ "chat.bsky.moderation.getMessageContext",
+ "chat.bsky.moderation.subscribeModEvents",
+ "chat.bsky.moderation.updateActorAccess",
+ "chat.bsky.notification.defs",
+ "chat.bsky.notification.getPreferences",
+ "chat.bsky.notification.putPreferences",
+ "com.atproto.admin.defs",
+ "com.atproto.admin.deleteAccount",
+ "com.atproto.admin.disableAccountInvites",
+ "com.atproto.admin.disableInviteCodes",
+ "com.atproto.admin.enableAccountInvites",
+ "com.atproto.admin.getAccountInfo",
+ "com.atproto.admin.getAccountInfos",
+ "com.atproto.admin.getInviteCodes",
+ "com.atproto.admin.getSubjectStatus",
+ "com.atproto.admin.searchAccounts",
+ "com.atproto.admin.sendEmail",
+ "com.atproto.admin.updateAccountEmail",
+ "com.atproto.admin.updateAccountHandle",
+ "com.atproto.admin.updateAccountPassword",
+ "com.atproto.admin.updateAccountSigningKey",
+ "com.atproto.admin.updateSubjectStatus",
+ "com.atproto.identity.defs",
+ "com.atproto.identity.getRecommendedDidCredentials",
+ "com.atproto.identity.refreshIdentity",
+ "com.atproto.identity.requestPlcOperationSignature",
+ "com.atproto.identity.resolveDid",
+ "com.atproto.identity.resolveHandle",
+ "com.atproto.identity.resolveIdentity",
+ "com.atproto.identity.signPlcOperation",
+ "com.atproto.identity.submitPlcOperation",
+ "com.atproto.identity.updateHandle",
+ "com.atproto.label.defs",
+ "com.atproto.label.queryLabels",
+ "com.atproto.label.subscribeLabels",
+ "com.atproto.lexicon.resolveLexicon",
+ "com.atproto.lexicon.schema",
+ "com.atproto.moderation.createReport",
+ "com.atproto.moderation.defs",
+ "com.atproto.repo.applyWrites",
+ "com.atproto.repo.createRecord",
+ "com.atproto.repo.defs",
+ "com.atproto.repo.deleteRecord",
+ "com.atproto.repo.describeRepo",
+ "com.atproto.repo.getRecord",
+ "com.atproto.repo.importRepo",
+ "com.atproto.repo.listMissingBlobs",
+ "com.atproto.repo.listRecords",
+ "com.atproto.repo.putRecord",
+ "com.atproto.repo.strongRef",
+ "com.atproto.repo.uploadBlob",
+ "com.atproto.server.activateAccount",
+ "com.atproto.server.checkAccountStatus",
+ "com.atproto.server.confirmEmail",
+ "com.atproto.server.createAccount",
+ "com.atproto.server.createAppPassword",
+ "com.atproto.server.createInviteCode",
+ "com.atproto.server.createInviteCodes",
+ "com.atproto.server.createSession",
+ "com.atproto.server.deactivateAccount",
+ "com.atproto.server.defs",
+ "com.atproto.server.deleteAccount",
+ "com.atproto.server.deleteSession",
+ "com.atproto.server.describeServer",
+ "com.atproto.server.getAccountInviteCodes",
+ "com.atproto.server.getServiceAuth",
+ "com.atproto.server.getSession",
+ "com.atproto.server.listAppPasswords",
+ "com.atproto.server.refreshSession",
+ "com.atproto.server.requestAccountDelete",
+ "com.atproto.server.requestEmailConfirmation",
+ "com.atproto.server.requestEmailUpdate",
+ "com.atproto.server.requestPasswordReset",
+ "com.atproto.server.reserveSigningKey",
+ "com.atproto.server.resetPassword",
+ "com.atproto.server.revokeAppPassword",
+ "com.atproto.server.updateEmail",
+ "com.atproto.sync.defs",
+ "com.atproto.sync.getBlob",
+ "com.atproto.sync.getBlocks",
+ "com.atproto.sync.getCheckout",
+ "com.atproto.sync.getHead",
+ "com.atproto.sync.getHostStatus",
+ "com.atproto.sync.getLatestCommit",
+ "com.atproto.sync.getRecord",
+ "com.atproto.sync.getRepo",
+ "com.atproto.sync.getRepoStatus",
+ "com.atproto.sync.listBlobs",
+ "com.atproto.sync.listHosts",
+ "com.atproto.sync.listRepos",
+ "com.atproto.sync.listReposByCollection",
+ "com.atproto.sync.notifyOfUpdate",
+ "com.atproto.sync.requestCrawl",
+ "com.atproto.sync.subscribeRepos",
+ "com.germnetwork.declaration",
+ "tools.ozone.report.defs"
+ ],
+ "resolutions": {
+ "app.bsky.actor.defs": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.actor.defs",
+ "cid": "bafyreiaxduxpwdpjgvve3klfs4flkwjwfqiurszw4o6jvjarpqqmeqwiza"
+ },
+ "app.bsky.actor.getPreferences": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.actor.getPreferences",
+ "cid": "bafyreiftuoh6n5npkyelejxbzettltmgl46xm3qot5nkn7lm365ej2ahii"
+ },
+ "app.bsky.actor.getProfile": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.actor.getProfile",
+ "cid": "bafyreigrtosreva7e5m7bwbbfsmw77gkdnieizgxwpobw5iobuck3j54xa"
+ },
+ "app.bsky.actor.getProfiles": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.actor.getProfiles",
+ "cid": "bafyreihphrndnt2cvnv3nk442f6kohdnpagk4xip74f2jn36uoal25vhta"
+ },
+ "app.bsky.actor.getSuggestions": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.actor.getSuggestions",
+ "cid": "bafyreig7dhef4df3n72bj6pvklzija26yk5szxdzlixm5x72bingowmf3m"
+ },
+ "app.bsky.actor.profile": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.actor.profile",
+ "cid": "bafyreia6umzg3a6d7mjbow4p57tviey45muohklhgsvjoamcctoiusr4pe"
+ },
+ "app.bsky.actor.putPreferences": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.actor.putPreferences",
+ "cid": "bafyreietfhhwbwb3ltcffsonhw5p62z233frhe6edls67su5a3evqrykju"
+ },
+ "app.bsky.actor.searchActors": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.actor.searchActors",
+ "cid": "bafyreidfkzp3tcbxvqo3aty2prhnaiqoxxbjhrapaqmko2gtnymtgxyqdi"
+ },
+ "app.bsky.actor.searchActorsTypeahead": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.actor.searchActorsTypeahead",
+ "cid": "bafyreigydtxvpnrndvk7iws4uypd6adqzohcdafeuqajiqmmbcqq5vatmu"
+ },
+ "app.bsky.actor.status": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.actor.status",
+ "cid": "bafyreifdg4b64wohpwkh5lydc6tckvol2rspnpni6dec6recy2rhvlnz4a"
+ },
+ "app.bsky.ageassurance.begin": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.ageassurance.begin",
+ "cid": "bafyreieqogxqzohb5fdtw5jiqckscgipkbrtvluoodscm45ajw2ba26zpm"
+ },
+ "app.bsky.ageassurance.defs": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.ageassurance.defs",
+ "cid": "bafyreig2g6pata4a2yjc7aiqoyybi3jzu76trduxlswte2gzhqdx252sie"
+ },
+ "app.bsky.ageassurance.getConfig": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.ageassurance.getConfig",
+ "cid": "bafyreifpfw7n3y6vqhiyqaqiyrmxm3lypkamyfk7dk6jzho7ujjujou6xq"
+ },
+ "app.bsky.ageassurance.getState": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.ageassurance.getState",
+ "cid": "bafyreialq63q3obxzsrzbwx25stjmtha3frlifzbgkvtthr535oal3467y"
+ },
+ "app.bsky.bookmark.createBookmark": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.bookmark.createBookmark",
+ "cid": "bafyreiegg2yu2jl5kfswirsylpn56ro2pj7lkfsufvrnv7xik7xdw27kfi"
+ },
+ "app.bsky.bookmark.defs": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.bookmark.defs",
+ "cid": "bafyreifi3xao6wlbsnrzt36xnrfcvl5pil7jw7owrgqpmppfzy52dpy7e4"
+ },
+ "app.bsky.bookmark.deleteBookmark": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.bookmark.deleteBookmark",
+ "cid": "bafyreig6rcgoqayi4fwgx5k5va3cnfsjykvc3fes7rmcfpszdd745hvatu"
+ },
+ "app.bsky.bookmark.getBookmarks": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.bookmark.getBookmarks",
+ "cid": "bafyreicnazdriby4i3uu3nelt5ur4o3575ivjuw5pxlfj46tvfmglpny2e"
+ },
+ "app.bsky.contact.defs": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.contact.defs",
+ "cid": "bafyreidsqrf3mf6g3zphne4t2swm6hbgd3ojk2nzlmwj6ezsvq62o3abgu"
+ },
+ "app.bsky.contact.dismissMatch": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.contact.dismissMatch",
+ "cid": "bafyreihtnfxggnq2n6ijlvrmtmpspwz3pzceprcfzqpa6iwjftpoknkory"
+ },
+ "app.bsky.contact.getMatches": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.contact.getMatches",
+ "cid": "bafyreihk7c54sgsxyh3bhtwd3cf5kdzjh4lauwwpbogau3zm65acfc3b2u"
+ },
+ "app.bsky.contact.getSyncStatus": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.contact.getSyncStatus",
+ "cid": "bafyreicozb7ibbr4h6xeh23jdjpfs6thxvodudypurdwqajwdnnj7lrioi"
+ },
+ "app.bsky.contact.importContacts": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.contact.importContacts",
+ "cid": "bafyreihzcos4jxddkpsk3isoxpgmw2x4rqbvp4b3f475cxwnfdzngnl7by"
+ },
+ "app.bsky.contact.removeData": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.contact.removeData",
+ "cid": "bafyreidtbulghr5cv27rzcato5esrgigddaafde2kgkz6hnivaimclynla"
+ },
+ "app.bsky.contact.sendNotification": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.contact.sendNotification",
+ "cid": "bafyreietl2pnpkuxeip5ftk7xvvrkuzdu4ndsn2nldt4wf2vbteyj5v6ju"
+ },
+ "app.bsky.contact.startPhoneVerification": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.contact.startPhoneVerification",
+ "cid": "bafyreif6jrd6gkonvwlvfkv2wyx5tnk4ayuv2xihcao7kyzdms42s34bhe"
+ },
+ "app.bsky.contact.verifyPhone": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.contact.verifyPhone",
+ "cid": "bafyreiapgsesqmksilfc6nxndzglbxquxtmk3gwiikie44rangg2drplti"
+ },
+ "app.bsky.draft.createDraft": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.draft.createDraft",
+ "cid": "bafyreid43zfsfg4wk4p3mf3gihwhpqh4d5rmpw7l5n3zks3kl53bsrsaba"
+ },
+ "app.bsky.draft.defs": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.draft.defs",
+ "cid": "bafyreiewy3wgajj4al6xifjc2e5gpg4yyj4laf2gl7pe3liekulfzxnlcu"
+ },
+ "app.bsky.draft.deleteDraft": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.draft.deleteDraft",
+ "cid": "bafyreicxw6nrrrikakfdaue3x45vfp4w62mncscdkpivpeom2orx2ae3su"
+ },
+ "app.bsky.draft.getDrafts": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.draft.getDrafts",
+ "cid": "bafyreiewac2qwebwwtm4mtvk3aobtsyhbqug3hplhftjlbbn6bvuuxyumy"
+ },
+ "app.bsky.draft.updateDraft": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.draft.updateDraft",
+ "cid": "bafyreicjy2aatoptybrtogj3nckokmkjpbmelvkej5bkfvxfcs5enu2fhu"
+ },
+ "app.bsky.embed.defs": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.embed.defs",
+ "cid": "bafyreia42uud4qil67wknywzbxfyxc3b7woewsii54cakq2ould3ldetei"
+ },
+ "app.bsky.embed.external": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.embed.external",
+ "cid": "bafyreigwach36azu4xg3jvcmb6fe53umfln3wkuj5srqsvcjaypa6rw534"
+ },
+ "app.bsky.embed.gallery": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.embed.gallery",
+ "cid": "bafyreia4tixag4sadkirfo63qfma6fz3ifbqanify4e6ce6swkl5lwjnfq"
+ },
+ "app.bsky.embed.getEmbedExternalView": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.embed.getEmbedExternalView",
+ "cid": "bafyreicnv2umobvrfrlo6tqw7umcsxv77owcwit3vld7l46fphpy5uuzky"
+ },
+ "app.bsky.embed.images": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.embed.images",
+ "cid": "bafyreifw77mkqkzlvm5csjwutkrnaivsjvlhg2qxdlwwabqpahlyyjrpwi"
+ },
+ "app.bsky.embed.record": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.embed.record",
+ "cid": "bafyreia7yq4c6rqkz32fjf6gj5rcvxsirguducn545s3dvls7qutnn2ali"
+ },
+ "app.bsky.embed.recordWithMedia": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.embed.recordWithMedia",
+ "cid": "bafyreidszvpeqf7copdmowm4ln4eyhahlqxktlvootjjjdmtkwy6s62jya"
+ },
+ "app.bsky.embed.video": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.embed.video",
+ "cid": "bafyreie3nug4ezpwodl6yrpgv5edkazzn22t7ea4yaeuun4rctyekkngai"
+ },
+ "app.bsky.feed.defs": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.defs",
+ "cid": "bafyreihxsdr5eig2gntbwn5duiskdae6lb7xyrtvump6nzzuz7sspyqv3e"
+ },
+ "app.bsky.feed.describeFeedGenerator": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.describeFeedGenerator",
+ "cid": "bafyreigzxk3um5hbi7gbuh5bhmob75bxlfh5bonfsl7h5dmt7woxdhxq54"
+ },
+ "app.bsky.feed.generator": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.generator",
+ "cid": "bafyreig2rppxkltsbe3523gavulrgprwjkyyb7mvmor22fdkoas6hrc2ju"
+ },
+ "app.bsky.feed.getActorFeeds": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.getActorFeeds",
+ "cid": "bafyreihqvune35emnr3vby6ldv2tzy57cfcgst2qy5icwpeay4mdvughfq"
+ },
+ "app.bsky.feed.getActorLikes": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.getActorLikes",
+ "cid": "bafyreiaxgdm2fv6bjzh2hdixgc3teprs7z46ja273kzevjnsp3hi224xoy"
+ },
+ "app.bsky.feed.getAuthorFeed": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.getAuthorFeed",
+ "cid": "bafyreiha5ca2lkguxvh22smjuehn2evxhyqk7isuiyqy6b23raljriv5a4"
+ },
+ "app.bsky.feed.getFeed": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.getFeed",
+ "cid": "bafyreihnhxqdfxojwo4xnedj55kskjki3opd2oiz3pfa5nm2ijr5janlq4"
+ },
+ "app.bsky.feed.getFeedGenerator": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.getFeedGenerator",
+ "cid": "bafyreibdzaan7vboli3ywi7wqzkibc2puukhfpg5rcdgizxlr7fbxx5gcy"
+ },
+ "app.bsky.feed.getFeedGenerators": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.getFeedGenerators",
+ "cid": "bafyreiervdq422lralzyssoewrfstcmqxsqimtmdskkqeflllszjnq32em"
+ },
+ "app.bsky.feed.getFeedSkeleton": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.getFeedSkeleton",
+ "cid": "bafyreidmn4nltqygzpd3vzobfkrkxcypbfirremfhzuluhlavwp5ht637m"
+ },
+ "app.bsky.feed.getLikes": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.getLikes",
+ "cid": "bafyreib6ylalknwxizbtbwsdmja4rhjswwczut5ivjdavfgew27m7knqou"
+ },
+ "app.bsky.feed.getListFeed": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.getListFeed",
+ "cid": "bafyreifvox2w2c6ybgioi6ofgp2i6pz44guwvo76w26miv4hpy7fgiwvlq"
+ },
+ "app.bsky.feed.getPostThread": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.getPostThread",
+ "cid": "bafyreif37upfzfu7t4rv3pqzz3swu2oc4nrxdxfr3xqjsrrmgyckneitta"
+ },
+ "app.bsky.feed.getPosts": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.getPosts",
+ "cid": "bafyreihy4tanaizkynghab46n3qztsspvoaqtbrkzinvxi4igeylg5ghji"
+ },
+ "app.bsky.feed.getQuotes": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.getQuotes",
+ "cid": "bafyreiftjmrnfpwtri5v47e7yfdgjgpfqds6kx3duf3t2x7vn7qdtbttfy"
+ },
+ "app.bsky.feed.getRepostedBy": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.getRepostedBy",
+ "cid": "bafyreif4v4aucwv4xvwnub6w2npmioqpa6nn4t5dsbqophoyfnimhsuweq"
+ },
+ "app.bsky.feed.getSuggestedFeeds": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.getSuggestedFeeds",
+ "cid": "bafyreif4v4aldmcoc2nkyanu6t3ks4jazqsiffq5gp54tuyn5o6rk2ff5e"
+ },
+ "app.bsky.feed.getTimeline": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.getTimeline",
+ "cid": "bafyreihumvisufuf6t7ibkyhg4psri37pj535mhmyr4t6mn7ogvgcxpul4"
+ },
+ "app.bsky.feed.like": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.like",
+ "cid": "bafyreiasvjidnd3sazbx46rzgipfkpejq4mgfuzwv2xrdaesp64t4dl2ry"
+ },
+ "app.bsky.feed.post": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.post",
+ "cid": "bafyreia7rgxu7467phwpcgzaw62l5bzmxufkpikrc5zm4q3xhjmuhq4pti"
+ },
+ "app.bsky.feed.postgate": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.postgate",
+ "cid": "bafyreiai5efexyluyptv5tbl6kqbqlnneczqzexcqnxmitmulyjfaftgva"
+ },
+ "app.bsky.feed.repost": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.repost",
+ "cid": "bafyreihks43jtwanviarzctwx2vvcyloivuxo2kdi7ex24gog5dfn4s5au"
+ },
+ "app.bsky.feed.searchPosts": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.searchPosts",
+ "cid": "bafyreif3xl6jj27tktxmxr3gtmf74wuxj6y6xnoycs7cclvifh4ncsi6mi"
+ },
+ "app.bsky.feed.searchPostsV2": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.searchPostsV2",
+ "cid": "bafyreiemtjvwfo6xuab6vkwbji46d7wms5xdzad6vygjymmcqr326quwqu"
+ },
+ "app.bsky.feed.sendInteractions": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.sendInteractions",
+ "cid": "bafyreicaoiskxpn2lmbzxuvpzawbsqxoewko3drbsxms222obabj2dkque"
+ },
+ "app.bsky.feed.threadgate": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.feed.threadgate",
+ "cid": "bafyreiht77wd6duduz4yqp62m6dwma5dy7gdihps4g2nd73acfzqlglvdi"
+ },
+ "app.bsky.graph.block": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.block",
+ "cid": "bafyreifalnveckyi2375ek5b5uyg4ef23mktcdktmgiwwsb3rygdls7owm"
+ },
+ "app.bsky.graph.defs": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.defs",
+ "cid": "bafyreifcipomli7yggtl46xufgxlnrw7se6xmsdxmzgfcz2tiu76ljatxm"
+ },
+ "app.bsky.graph.follow": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.follow",
+ "cid": "bafyreiav7u7jchqtsxr2yy3gsazfqqziw5tcrfniuprrmoariruj3cft5u"
+ },
+ "app.bsky.graph.getActorStarterPacks": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.getActorStarterPacks",
+ "cid": "bafyreihm57pc7dmeig4lxcv3x53z53y27obkkxnopimax7dbtqx4enqf7i"
+ },
+ "app.bsky.graph.getBlocks": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.getBlocks",
+ "cid": "bafyreic3yp4tuxthww5sidvv27gmg3ha3argl3moconhmcccwvooobggve"
+ },
+ "app.bsky.graph.getFollowers": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.getFollowers",
+ "cid": "bafyreiaboxa4aux2y5jxut5kw4iqlnctlswklofvgkhxl2wn7rkbjjrzru"
+ },
+ "app.bsky.graph.getFollows": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.getFollows",
+ "cid": "bafyreicun6mwmjgrdmrtmnfqv3ws37g5okcmo3uiaf2qwopk3bhtj5rqae"
+ },
+ "app.bsky.graph.getKnownFollowers": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.getKnownFollowers",
+ "cid": "bafyreia3bjqeaj5uk2zlkhk5pipefehy2mlrdp3hoqtgu3np3tvbg6xjuq"
+ },
+ "app.bsky.graph.getList": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.getList",
+ "cid": "bafyreigplofixg524nkirazfh3loe36lvqqeg6jfqvrggzztspkefwm4re"
+ },
+ "app.bsky.graph.getListBlocks": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.getListBlocks",
+ "cid": "bafyreiagod73i7ecuzpyxwlibrwimo7u4ew75nzc2b3ajdocc5sg6eszpy"
+ },
+ "app.bsky.graph.getListMutes": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.getListMutes",
+ "cid": "bafyreictd7aefsbizbn66bmhfbyvxbirbuz4uiqcp4o5tb3eiyun42wm4a"
+ },
+ "app.bsky.graph.getLists": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.getLists",
+ "cid": "bafyreiffrqdk7vdses2qzrmmfotwyvncuhvq7anaw64x7wmlz5cix5nihy"
+ },
+ "app.bsky.graph.getListsWithMembership": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.getListsWithMembership",
+ "cid": "bafyreifgvypq6ahfxtkbdmudh7bb7vib6c7kvkit6ks3gjoagor747cxfy"
+ },
+ "app.bsky.graph.getMutes": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.getMutes",
+ "cid": "bafyreibnvq62dmchuulpzvvl6w2x6z4mofnqdrfbsvc5ynoo6cazr7wove"
+ },
+ "app.bsky.graph.getRelationships": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.getRelationships",
+ "cid": "bafyreiabszfuqanet2tbyyx7plxmknfegygnfyaydhwyialt4cbo24k5dq"
+ },
+ "app.bsky.graph.getStarterPack": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.getStarterPack",
+ "cid": "bafyreia77gh56vqe3ws26ntm7pffj43uhvl6l66vpb7uhxrhpih6rvne6m"
+ },
+ "app.bsky.graph.getStarterPacks": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.getStarterPacks",
+ "cid": "bafyreighxbnsgugwwjnu37nzoca7qtpipvf2l5ijz2z74ghdfrgppqfoaa"
+ },
+ "app.bsky.graph.getStarterPacksWithMembership": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.getStarterPacksWithMembership",
+ "cid": "bafyreigpeb22avssmmfqiveh3hem6qnxrduyyhkxc3ixpfgehmhkskgssy"
+ },
+ "app.bsky.graph.getSuggestedFollowsByActor": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.getSuggestedFollowsByActor",
+ "cid": "bafyreih4zuul6xlijankc73dx7bax3gbeva2dlfnzabk335y7iaptxbmr4"
+ },
+ "app.bsky.graph.list": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.list",
+ "cid": "bafyreihqckm5nkbamel2pljhk5lbjfqfmczmb7a5eglpic7ontdx3r4sey"
+ },
+ "app.bsky.graph.listblock": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.listblock",
+ "cid": "bafyreieomtmr6mpvgnbbgwfkdqlyatwymvu4vdnhldpqetzczlj4eywxqq"
+ },
+ "app.bsky.graph.listitem": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.listitem",
+ "cid": "bafyreiegh2vyadmieea52lnt574lfcddprhpuz5moqhqiij56egfvyf62m"
+ },
+ "app.bsky.graph.muteActor": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.muteActor",
+ "cid": "bafyreiebgeqbzitzytuvuu23nxgiyxjdh3iawcxonsiu6t2aubqd6ugt6m"
+ },
+ "app.bsky.graph.muteActorList": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.muteActorList",
+ "cid": "bafyreihadi2x64bpzncb2xfo5ww4mvajftf4qd3nxmsjud7assloxzfm44"
+ },
+ "app.bsky.graph.muteThread": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.muteThread",
+ "cid": "bafyreib6ppci3qzye6wktkm4byxtb5mnl2vg22fm7oawcdvof2tfogx4dy"
+ },
+ "app.bsky.graph.searchStarterPacks": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.searchStarterPacks",
+ "cid": "bafyreia446ip6mbnwpml6hlvxab7jtsud7zczde3u6zmnsa3op4bpxu7um"
+ },
+ "app.bsky.graph.searchStarterPacksV2": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.searchStarterPacksV2",
+ "cid": "bafyreiftevu66nkth5uprlwhoxtxloz4aqym25hu3wj2bal2vcuupa6uky"
+ },
+ "app.bsky.graph.starterpack": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.starterpack",
+ "cid": "bafyreiejgf46gibbkpmjtgt5yyiir3wyxgrtvnfxtcdeyxrdrdnsvwgjc4"
+ },
+ "app.bsky.graph.unmuteActor": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.unmuteActor",
+ "cid": "bafyreihqc6o54652e56jmvzpaf7ix4liws4bmnd2bklc2qkuqjozfcvka4"
+ },
+ "app.bsky.graph.unmuteActorList": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.unmuteActorList",
+ "cid": "bafyreiamqj5gh6x36dzdk6ve7kfjvzotqjfcg2nplgch7woshqrubbe2ee"
+ },
+ "app.bsky.graph.unmuteThread": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.unmuteThread",
+ "cid": "bafyreiahpkqj4v7b3ujk45ufdcvynu2dxjtunzi2oipu7kzdupybmysgzu"
+ },
+ "app.bsky.graph.verification": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.graph.verification",
+ "cid": "bafyreidn7abfzt5p4gcujys2w4seigbhcfnscos6fmh4hnce2gdormbwpa"
+ },
+ "app.bsky.labeler.defs": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.labeler.defs",
+ "cid": "bafyreicxx5i36v5dbqk5vvfzhnta5gajrvc544mnepux4wksrkid7mw3q4"
+ },
+ "app.bsky.labeler.getServices": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.labeler.getServices",
+ "cid": "bafyreife7p4pjij5jvmngdlxfq4cjzqe2cx7himnkf7zgxsykcxg6klpl4"
+ },
+ "app.bsky.labeler.service": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.labeler.service",
+ "cid": "bafyreihr336i3ys6rc4ezhk2wwpeyufnp2ma2n6dxljd2ogksi4sjo6aqe"
+ },
+ "app.bsky.notification.declaration": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.notification.declaration",
+ "cid": "bafyreibjnupqb7xke5eeeehpcm2gecacduwd4ebifcovgigzdpo42jq3kq"
+ },
+ "app.bsky.notification.defs": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.notification.defs",
+ "cid": "bafyreifzktxnol5rafjoznauk5j7ub2gsxxm7qjskg3vqmcgn6krrsz55u"
+ },
+ "app.bsky.notification.getPreferences": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.notification.getPreferences",
+ "cid": "bafyreibaz7cyl7ytpextx7bv6oaguadj5bdvpf4hksw6t737zkfw5y3rue"
+ },
+ "app.bsky.notification.getUnreadCount": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.notification.getUnreadCount",
+ "cid": "bafyreih2vxe7vy3hcp7fwka7cwenxbkx2d7nd2s3whffh23dn3wxt65s7m"
+ },
+ "app.bsky.notification.listActivitySubscriptions": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.notification.listActivitySubscriptions",
+ "cid": "bafyreien2hslzbpoypvz3shv6tphkmdtccejieg5lricwl6stdjomiu3zi"
+ },
+ "app.bsky.notification.listNotifications": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.notification.listNotifications",
+ "cid": "bafyreigqqfk3gvslu36fvmx3fc3yi4ibmsmbfvty55rq4vw7cvfhecpxge"
+ },
+ "app.bsky.notification.putActivitySubscription": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.notification.putActivitySubscription",
+ "cid": "bafyreifvbgf53yncsrjpzwa5xwnlax7vyesflkg6fmxb2367vfa6fv7kwu"
+ },
+ "app.bsky.notification.putPreferences": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.notification.putPreferences",
+ "cid": "bafyreihbqjdbhra45czd5m5665btugrie7bwsiwzehutjdwygyy5dsq4fi"
+ },
+ "app.bsky.notification.putPreferencesV2": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.notification.putPreferencesV2",
+ "cid": "bafyreiefun5klfddbnd7gfodnlcbn7ing45qo6lbmsahau7qgw4zlgv42i"
+ },
+ "app.bsky.notification.registerPush": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.notification.registerPush",
+ "cid": "bafyreiayl6ngk3ckmaorocgbwxf2ruqgficcbkm2xvoja2crnyul66u3hy"
+ },
+ "app.bsky.notification.unregisterPush": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.notification.unregisterPush",
+ "cid": "bafyreiboilq7jye3s7isayixm6iqjbsxrfzizaj727obtdda6qzh56at6y"
+ },
+ "app.bsky.notification.updateSeen": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.notification.updateSeen",
+ "cid": "bafyreigzds576ji7wzi6alzn4wegtfzk2iqagwtugbw3byb2v3xvqho4hi"
+ },
+ "app.bsky.richtext.facet": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.richtext.facet",
+ "cid": "bafyreidg56eo7zynf6ihz4xb627vwoqf5idnevkmwp7sxc4tijg6xngbu4"
+ },
+ "app.bsky.video.defs": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.video.defs",
+ "cid": "bafyreicorzkcw5zp4zjsiepyakpfn3vvtpwsbqwzsy43d2y6i3t5rp3meu"
+ },
+ "app.bsky.video.getJobStatus": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.video.getJobStatus",
+ "cid": "bafyreia5xkrbastzzbpodjm242orufiswrz5aasjqrqtuvb6lmmfwixmqy"
+ },
+ "app.bsky.video.getUploadLimits": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.video.getUploadLimits",
+ "cid": "bafyreidlw3fozroigsbrz73jtqdoc7dkdpxi4oie3df7nb3vnycy2kkz2y"
+ },
+ "app.bsky.video.uploadVideo": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/app.bsky.video.uploadVideo",
+ "cid": "bafyreibvsdivxr54ooykqhsy3i6n6f7223hbfnnnzs4h6xrzr5kvvztuvy"
+ },
+ "chat.bsky.actor.declaration": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.actor.declaration",
+ "cid": "bafyreih4ivey4vqreb2ebujlt7iranqyizxkv5kpm3ksdlgkinkgcu53pu"
+ },
+ "chat.bsky.actor.defs": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.actor.defs",
+ "cid": "bafyreigiv5fo5iufd3ahma6tgtozm35xibvx276nhjsjwuvsvxh3zj7u7q"
+ },
+ "chat.bsky.actor.deleteAccount": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.actor.deleteAccount",
+ "cid": "bafyreierykzslwmkkugpyio3yiaxguttd5his5i4ow7re7wzcbxfogerrq"
+ },
+ "chat.bsky.actor.exportAccountData": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.actor.exportAccountData",
+ "cid": "bafyreigwllvtmdetzfvgrzwhtzjilnj3gfxaj45yd32oe436etzp7yghai"
+ },
+ "chat.bsky.actor.getStatus": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.actor.getStatus",
+ "cid": "bafyreib7f6wo5xsnfz37ywggtvqbcuxigf325q6pezshyhzyp2n5pdlzhu"
+ },
+ "chat.bsky.convo.acceptConvo": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.acceptConvo",
+ "cid": "bafyreih2ob7rsibl3h3so356rcdo2fop3dosxkna75w2u45qflbtw2r7qm"
+ },
+ "chat.bsky.convo.addReaction": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.addReaction",
+ "cid": "bafyreia2odzz7wk5vfdjxchttbr44ojcxks72ytdmeybpub6zqt3l327vi"
+ },
+ "chat.bsky.convo.defs": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.defs",
+ "cid": "bafyreibpb3r5pqc3yrjslx7ntfl5vvgdlgqanuwbcvq3q7sfhayi75x7uu"
+ },
+ "chat.bsky.convo.deleteMessageForSelf": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.deleteMessageForSelf",
+ "cid": "bafyreicsfbucwa3y5jdtzv6focgl5dao2lhmaa22jljllwjp6rz4noxowe"
+ },
+ "chat.bsky.convo.getConvo": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.getConvo",
+ "cid": "bafyreidjox5oa467rn7x6xjuko23w5ekypjbkdryia4hz5s7isswhxrilu"
+ },
+ "chat.bsky.convo.getConvoAvailability": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.getConvoAvailability",
+ "cid": "bafyreidnzzp2b7w4pedgnspgwlzl7oc4uuwxlbh3asteu6s4rgcuagnzl4"
+ },
+ "chat.bsky.convo.getConvoForMembers": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.getConvoForMembers",
+ "cid": "bafyreicheufh7jkrstr6hgpggylildyh3k5tihbh5747dumqe5nabp24fi"
+ },
+ "chat.bsky.convo.getConvoMembers": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.getConvoMembers",
+ "cid": "bafyreigup3axpdj3r3p4s3x7qgarrysft3vognwzgetl4bn3n2bgocxl4m"
+ },
+ "chat.bsky.convo.getLog": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.getLog",
+ "cid": "bafyreicc4wwkmh5rskpzyriwad4lte64rk2w7vnzzzofy6tnhbisxsint4"
+ },
+ "chat.bsky.convo.getMessages": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.getMessages",
+ "cid": "bafyreif2fjad4zrbjwhbuk3ny7yfnv6sjyr6llrveh2dr4i2aovwe77yia"
+ },
+ "chat.bsky.convo.getUnreadCounts": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.getUnreadCounts",
+ "cid": "bafyreibuu7abhy74gxfprerxpiimjit43fhcrrewe43zhili7rmr4crrsi"
+ },
+ "chat.bsky.convo.leaveConvo": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.leaveConvo",
+ "cid": "bafyreigdjs5t2jod6zojwnj5giqucsad257vhocykv6fftkj3qkqzqlqua"
+ },
+ "chat.bsky.convo.listConvoRequests": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.listConvoRequests",
+ "cid": "bafyreieoce2dsrg6czlm7tkfi7glxjvqh6wwvfq777s5zxi6hyzqjeqo3e"
+ },
+ "chat.bsky.convo.listConvos": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.listConvos",
+ "cid": "bafyreifxh52sx6i7vrlj2xi5h3yd56dmawkplcfdsfiu4npou6rutz4pge"
+ },
+ "chat.bsky.convo.lockConvo": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.lockConvo",
+ "cid": "bafyreidnrgfxtyg233wfvasho34p34k2tiekrpiticcl4sau7k2masydby"
+ },
+ "chat.bsky.convo.muteConvo": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.muteConvo",
+ "cid": "bafyreihpyxtotf6ltd6w6ayoirar7obxoqlijljov6yrb7r5qztq3ag74e"
+ },
+ "chat.bsky.convo.removeReaction": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.removeReaction",
+ "cid": "bafyreiagvcoqprw5jew2m4uoeg6i32wu6ld2ltgjgb2d2s36k4o6i7arb4"
+ },
+ "chat.bsky.convo.sendMessage": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.sendMessage",
+ "cid": "bafyreih7yu45wtptd7qjg6iomrugxucfw7zkkz7ijjj7o3bddee3od2q3m"
+ },
+ "chat.bsky.convo.sendMessageBatch": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.sendMessageBatch",
+ "cid": "bafyreifvinecphums77xvuuspqgjkgfa7cpre3zavtrkh5tffmi643q2rq"
+ },
+ "chat.bsky.convo.unlockConvo": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.unlockConvo",
+ "cid": "bafyreiaind2trvtuo2bgqupx4acxx5vvfhvvo4xwencwcf2trnrithwkya"
+ },
+ "chat.bsky.convo.unmuteConvo": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.unmuteConvo",
+ "cid": "bafyreifbip4w4q4dnm2bvhtaxr4ut3yrzck4xkdu2ifnkoggyqigsuasbe"
+ },
+ "chat.bsky.convo.updateAllRead": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.updateAllRead",
+ "cid": "bafyreiewx6wmllc4nujgtakvu4jiapnrjtbqyxvugohuu7xfy3bhrn4wq4"
+ },
+ "chat.bsky.convo.updateRead": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.convo.updateRead",
+ "cid": "bafyreihba5bopb5vnlqqvtavipybqgemp6itwrz4xysnp6yi6iow5ntnv4"
+ },
+ "chat.bsky.embed.joinLink": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.embed.joinLink",
+ "cid": "bafyreib3z65a2myai4hc55vxa7woue4bmelo2a4dlgnawps746w3l2y72q"
+ },
+ "chat.bsky.group.addMembers": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.group.addMembers",
+ "cid": "bafyreiftelalu5yc3zctgch7req6syovskusqgma5vyyd4elas5rs47tvy"
+ },
+ "chat.bsky.group.approveJoinRequest": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.group.approveJoinRequest",
+ "cid": "bafyreicykc372f7ebk7c3wrco75wgox3poyop7w3duovvn2piqzsvhzthq"
+ },
+ "chat.bsky.group.createGroup": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.group.createGroup",
+ "cid": "bafyreidhalpchhospn2hwox54navotl4svw4pmt33aynj22gp52ofoxzau"
+ },
+ "chat.bsky.group.createJoinLink": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.group.createJoinLink",
+ "cid": "bafyreicxjzsyjrqbkwd7vztmaxstgulx5naln55gsppix27pjnoz5okv7i"
+ },
+ "chat.bsky.group.defs": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.group.defs",
+ "cid": "bafyreiexck6gwns5nesq44mqgsikwrjkgplz33cemxaq365xwdcxeoqjje"
+ },
+ "chat.bsky.group.disableJoinLink": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.group.disableJoinLink",
+ "cid": "bafyreiholtxhmuqku64fkv6rjl2rn3jyicutkcuieoviys3zdzx6lh43n4"
+ },
+ "chat.bsky.group.editGroup": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.group.editGroup",
+ "cid": "bafyreifwwj2mzridii6sm6wlc5sxgu7g6k67bijvylus4jnbvfcup7ecfe"
+ },
+ "chat.bsky.group.editJoinLink": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.group.editJoinLink",
+ "cid": "bafyreiafmbnein4xpbr76jzofk53ut6u5opeuwyorilkhpe3u2kzgavlde"
+ },
+ "chat.bsky.group.enableJoinLink": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.group.enableJoinLink",
+ "cid": "bafyreib45q6ccuobjlws7sysjojabo6gvww6wlgy7dif5ejkoasb23l7su"
+ },
+ "chat.bsky.group.getJoinLinkPreviews": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.group.getJoinLinkPreviews",
+ "cid": "bafyreigrglu52cdsrc7sxxflwoxr6eg6paw4zsd7ioy7kyue2kqfdjyqn4"
+ },
+ "chat.bsky.group.listJoinRequests": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.group.listJoinRequests",
+ "cid": "bafyreigoj66wx3sx7nbav4ywxckk7ggjklxvy2w5tmmnrapib7nfpgh3ci"
+ },
+ "chat.bsky.group.listMutualGroups": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.group.listMutualGroups",
+ "cid": "bafyreihp23gsqmaie6uzouxfqi6zwhr3wqglqjblbcawkp6asirzmqq4oi"
+ },
+ "chat.bsky.group.rejectJoinRequest": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.group.rejectJoinRequest",
+ "cid": "bafyreiaztaygpnfglcldsdbh5dunovp2nz3kenetahycpymoxxrxkafiha"
+ },
+ "chat.bsky.group.removeMembers": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.group.removeMembers",
+ "cid": "bafyreidfkumfvrtsseaavuhs2lfblcsmrjbkeaeojh2u576jze5xrfcasy"
+ },
+ "chat.bsky.group.requestJoin": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.group.requestJoin",
+ "cid": "bafyreiatzqdp7zlnbqmbti6xt3orag7yqyuqr6tqzwzzp52gq7hlu3it6q"
+ },
+ "chat.bsky.group.updateJoinRequestsRead": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.group.updateJoinRequestsRead",
+ "cid": "bafyreieod4o3cdfkhev6tia63q6yrdk3pgwvrrpyxggswxpp6pzwjj2jyi"
+ },
+ "chat.bsky.group.withdrawJoinRequest": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.group.withdrawJoinRequest",
+ "cid": "bafyreicdn25bcyya4for6vtdhhkjaeyfbkldgaxqtqoh5hfwljbrxszezy"
+ },
+ "chat.bsky.moderation.defs": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.moderation.defs",
+ "cid": "bafyreiee3r5j2psnahumolqrbr6gj6adqt3ov3xflbeibnyfzlwwc3e5km"
+ },
+ "chat.bsky.moderation.getActorMetadata": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.moderation.getActorMetadata",
+ "cid": "bafyreifo2qp6ozex6phd5dd2sewpyltlnzijjqmfl5xpujxk3mkx6b4pze"
+ },
+ "chat.bsky.moderation.getConvo": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.moderation.getConvo",
+ "cid": "bafyreie6ds2blosf5zeg7eralqp5jmbbvsv4befevms3nyqoihblzxwzsy"
+ },
+ "chat.bsky.moderation.getConvoMembers": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.moderation.getConvoMembers",
+ "cid": "bafyreicm4fvldxqk5zdwopjjrsukl7wpib2ixqgkfc3nrszorx46i4np34"
+ },
+ "chat.bsky.moderation.getConvos": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.moderation.getConvos",
+ "cid": "bafyreif5k5jqz4546omvosnx2sey4apq4nebiizwo3xit6q2knf2tteoey"
+ },
+ "chat.bsky.moderation.getMessageContext": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.moderation.getMessageContext",
+ "cid": "bafyreih436hnrsenvuaelqk5bz4esvjku2kz3blwh7lk5fmmjfzn5uxaei"
+ },
+ "chat.bsky.moderation.subscribeModEvents": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.moderation.subscribeModEvents",
+ "cid": "bafyreifb7xeucadmhsbzezibkn4hxyezzajfydjfyy3tjmwm7bwjmiam3u"
+ },
+ "chat.bsky.moderation.updateActorAccess": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.moderation.updateActorAccess",
+ "cid": "bafyreif3kv6qzqf533kjoodzu6s2cf3qypyafsntemeir6uuac4dnnzlwe"
+ },
+ "chat.bsky.notification.defs": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.notification.defs",
+ "cid": "bafyreifv3xy2nhjxvr4uqfheezyp3bo2eczvihqto4kp4mmkirnpkmmt4u"
+ },
+ "chat.bsky.notification.getPreferences": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.notification.getPreferences",
+ "cid": "bafyreicfjpp5ldakcwyo7wmq6e5kpwtizn5owdd7cux4pbif6s2u6dbxne"
+ },
+ "chat.bsky.notification.putPreferences": {
+ "uri": "at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.notification.putPreferences",
+ "cid": "bafyreiatnvy5wssiuzrjtdtv3sd2yarrd3xiaijpeuvsnopq3neh52bfay"
+ },
+ "com.atproto.admin.defs": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.admin.defs",
+ "cid": "bafyreicuagseedq4ko6lx6ublh6agdyeaox4pkvbaq7yj54s2d66yjk2h4"
+ },
+ "com.atproto.admin.deleteAccount": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.admin.deleteAccount",
+ "cid": "bafyreigzxdce4ztwo2n5xxahr6fwd4bozc4budnaepl26mbejpa3q2ess4"
+ },
+ "com.atproto.admin.disableAccountInvites": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.admin.disableAccountInvites",
+ "cid": "bafyreihi35g5ngllvyykzlq3fdfqs4xjiuao7nxg37ealsdtqcdquvj2ce"
+ },
+ "com.atproto.admin.disableInviteCodes": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.admin.disableInviteCodes",
+ "cid": "bafyreiatqxhcmu23qc2nkttjf2e7gjsdhbh6x5nrqambamo5fcwq523eey"
+ },
+ "com.atproto.admin.enableAccountInvites": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.admin.enableAccountInvites",
+ "cid": "bafyreid5xvqhkbpywbk5eaumneqzdcxtkj5lh45hzmcbed4exzvqk37p2i"
+ },
+ "com.atproto.admin.getAccountInfo": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.admin.getAccountInfo",
+ "cid": "bafyreifcp3jeg332nfwatctxwjiokqv72tyuppb2mzwjxih7qdtr2glou4"
+ },
+ "com.atproto.admin.getAccountInfos": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.admin.getAccountInfos",
+ "cid": "bafyreib7kdehrlwtxbpdkdk3hxswvjdgw63yadellwf4n32qofh5pbf2zy"
+ },
+ "com.atproto.admin.getInviteCodes": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.admin.getInviteCodes",
+ "cid": "bafyreiec5v6odvpqm3qfcxmuq5nihskij7xmb5nij32vve426z6s7tii24"
+ },
+ "com.atproto.admin.getSubjectStatus": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.admin.getSubjectStatus",
+ "cid": "bafyreicx3n74uhu3jtolm6vvtxx4xy3vo57iu4boxn7chocuokx3q7fazm"
+ },
+ "com.atproto.admin.searchAccounts": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.admin.searchAccounts",
+ "cid": "bafyreigqi7z4ic2ljca6zvmtzha4gdnsa25gsn4pw2upqymrh6lelkzqjy"
+ },
+ "com.atproto.admin.sendEmail": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.admin.sendEmail",
+ "cid": "bafyreig7vffo7s4diefuoylvl6crosfo5mcc74hlnpkd24fb3xs2wyewbi"
+ },
+ "com.atproto.admin.updateAccountEmail": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.admin.updateAccountEmail",
+ "cid": "bafyreidlzhtftznouwxruqumookeupzk4iytlvm5giwziuv4m7wzi76lf4"
+ },
+ "com.atproto.admin.updateAccountHandle": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.admin.updateAccountHandle",
+ "cid": "bafyreidsj323nackffydrz3buggrubayxwnhxu2v2sf3saoiao44im6dnm"
+ },
+ "com.atproto.admin.updateAccountPassword": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.admin.updateAccountPassword",
+ "cid": "bafyreieptac2cku6iazjjbgn6oy2ivaleofleprdhiysprato336fapghq"
+ },
+ "com.atproto.admin.updateAccountSigningKey": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.admin.updateAccountSigningKey",
+ "cid": "bafyreibzf73rasuo5rhzjjugexi5l7tpyahcmmjg2rl2bweoxyb3672cca"
+ },
+ "com.atproto.admin.updateSubjectStatus": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.admin.updateSubjectStatus",
+ "cid": "bafyreieirresnt6qdfshzsaaikwpstoql5q5n7vlbfadkmjwzuweeojuyu"
+ },
+ "com.atproto.identity.defs": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.identity.defs",
+ "cid": "bafyreiftikhen7lwpyay4e4sycmmflexkroqjwwpfuqtmog3vjhs2qnz3m"
+ },
+ "com.atproto.identity.getRecommendedDidCredentials": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.identity.getRecommendedDidCredentials",
+ "cid": "bafyreidkfpbromp7kjmpbzkbcamycj3722sxvcm47pabju744ytk2ljhay"
+ },
+ "com.atproto.identity.refreshIdentity": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.identity.refreshIdentity",
+ "cid": "bafyreiabglay3heljv6azsioza4lbbq7ocfnllbugb4ep4cmoofvhbz74q"
+ },
+ "com.atproto.identity.requestPlcOperationSignature": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.identity.requestPlcOperationSignature",
+ "cid": "bafyreiefkbiptbpxy4ijubutlp2lbjzlkdqbbvt77uguxwg2lns7ba2anm"
+ },
+ "com.atproto.identity.resolveDid": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.identity.resolveDid",
+ "cid": "bafyreicy6cgn4agn5jnteswy624asmf74k34do54sptozrcmyrlglvnufu"
+ },
+ "com.atproto.identity.resolveHandle": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.identity.resolveHandle",
+ "cid": "bafyreigckmqtt3jrtzd7tvigjatnz6ajqyafs26h5pwcudwag2anedxnmu"
+ },
+ "com.atproto.identity.resolveIdentity": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.identity.resolveIdentity",
+ "cid": "bafyreibc3gr2wcoogckav25quul7dz24jnq7oevwvrve4fhanmyypujpai"
+ },
+ "com.atproto.identity.signPlcOperation": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.identity.signPlcOperation",
+ "cid": "bafyreicjgnk7lmloumjsgwpk6fbnplcu7or23edto4vgdow2quxq2okjha"
+ },
+ "com.atproto.identity.submitPlcOperation": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.identity.submitPlcOperation",
+ "cid": "bafyreigu67ehin43bdmkt5oyrwsttvzon3lsmp4fkfpzlyptpfnx2hozau"
+ },
+ "com.atproto.identity.updateHandle": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.identity.updateHandle",
+ "cid": "bafyreibzqwkofzc7g5j7vatyyzolgnarm3zd2g6swegkc3ivz4xivm2buu"
+ },
+ "com.atproto.label.defs": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.label.defs",
+ "cid": "bafyreidp2wpcbzl2qiob2uwoc7lhntojx3tjcr553mmahw2f5cumtm3wpm"
+ },
+ "com.atproto.label.queryLabels": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.label.queryLabels",
+ "cid": "bafyreig424opkctuzynvqvbwcoqafbqzqu6tl2kilwif7ivnwcdmafbhni"
+ },
+ "com.atproto.label.subscribeLabels": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.label.subscribeLabels",
+ "cid": "bafyreigeyxddcuwebpvscyy2l7s3urxsbdtzpjrljncjo4az62woytutx4"
+ },
+ "com.atproto.lexicon.resolveLexicon": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.lexicon.resolveLexicon",
+ "cid": "bafyreihyejjwx2cpbv3ikfojbq57jmtmilhjjsamqwfeiwkg2vanxxaz6m"
+ },
+ "com.atproto.lexicon.schema": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.lexicon.schema",
+ "cid": "bafyreigtmtzisxiuao4kcswgnbud7wmpkcnsdb6h2kenhbnaolsx7bpiq4"
+ },
+ "com.atproto.moderation.createReport": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.moderation.createReport",
+ "cid": "bafyreib5kl3klngngi47k7nx2g2bmrg2roj52q3dobvuf73kr3exvn73n4"
+ },
+ "com.atproto.moderation.defs": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.moderation.defs",
+ "cid": "bafyreideawy4rlpgces2oebk5q4kpurbonhb5qtl4pes7dvxsc5osaiksy"
+ },
+ "com.atproto.repo.applyWrites": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.repo.applyWrites",
+ "cid": "bafyreidwfwif7k5uncwqxhpxpxhvdkgedbvp6kqy6r4nozii433lwlajba"
+ },
+ "com.atproto.repo.createRecord": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.repo.createRecord",
+ "cid": "bafyreihyvpmy2l4ou2v5etx25j5lbqty6tvna7gsxdqge76rbb7gltulei"
+ },
+ "com.atproto.repo.defs": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.repo.defs",
+ "cid": "bafyreigmp5xfpkhnmwr3l5o626ued2gc2ouioykj2tpgqjqqajvbvm3wlm"
+ },
+ "com.atproto.repo.deleteRecord": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.repo.deleteRecord",
+ "cid": "bafyreibwdxbyhuuljujl7g4ylwdso2x2ov6yv6nk3ext3sr7kjvvubkula"
+ },
+ "com.atproto.repo.describeRepo": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.repo.describeRepo",
+ "cid": "bafyreif5ho6rtknjmiqjclrfogiqyzxnix2fzpwxyftfebplkj4q23pnrm"
+ },
+ "com.atproto.repo.getRecord": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.repo.getRecord",
+ "cid": "bafyreihdnm3v25uaptt5vjvnpfsfgb6fbhxew2ye3l6q4ndm7xi5wpc4vy"
+ },
+ "com.atproto.repo.importRepo": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.repo.importRepo",
+ "cid": "bafyreihymzggr6n33y3ile7hiy5zekxkgqc6ypkoby5og7tr6buqiasabu"
+ },
+ "com.atproto.repo.listMissingBlobs": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.repo.listMissingBlobs",
+ "cid": "bafyreiayrrhk77vn3az63mor2bepw2qnkskr5awxvpzb5xtgwtzr5z6v3u"
+ },
+ "com.atproto.repo.listRecords": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.repo.listRecords",
+ "cid": "bafyreihv666jp6lxncj6amcgsu5qrvwq4rwmtc7xbxzndxqdwxamlsatee"
+ },
+ "com.atproto.repo.putRecord": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.repo.putRecord",
+ "cid": "bafyreigevzo2cypxpaj5re2u35so36df4rkgx6oh4zpi4zwicfvzqfdqpa"
+ },
+ "com.atproto.repo.strongRef": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.repo.strongRef",
+ "cid": "bafyreifrkdbnkvfjujntdaeigolnrjj3srrs53tfixjhmacclps72qlov4"
+ },
+ "com.atproto.repo.uploadBlob": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.repo.uploadBlob",
+ "cid": "bafyreifj5rusrt7rd763rqcnyh7srwukrdn427m7qrhwyb5hiayyyq4lxe"
+ },
+ "com.atproto.server.activateAccount": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.activateAccount",
+ "cid": "bafyreih4z7qtht643ddxszglbworpyttngm4iahyne5vp5n6puvysckc2u"
+ },
+ "com.atproto.server.checkAccountStatus": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.checkAccountStatus",
+ "cid": "bafyreiggejdmd3ezjwphxo6jgcaf4cnwwc2jxq5so7gvet3suozhb2a52q"
+ },
+ "com.atproto.server.confirmEmail": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.confirmEmail",
+ "cid": "bafyreigsd23jlgjwtbbvv2pueoiuji3qini232nwzhjiex6tj7ehc57cdy"
+ },
+ "com.atproto.server.createAccount": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.createAccount",
+ "cid": "bafyreie6o2sq47ukysnnnwxcb7eocpyyazetp5n3m4u3n5f7v5xr7qn62u"
+ },
+ "com.atproto.server.createAppPassword": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.createAppPassword",
+ "cid": "bafyreickddwu7udrphtmvpcajiittidvobrror7tztxkshnnhcxyexylbu"
+ },
+ "com.atproto.server.createInviteCode": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.createInviteCode",
+ "cid": "bafyreicce55wknsshpysqc2torzhkuo6v555piprncrkw7glptinbssbli"
+ },
+ "com.atproto.server.createInviteCodes": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.createInviteCodes",
+ "cid": "bafyreidpwhayukm2ytzncekfinio4dehp5y6ksmwpvrxwl4fhdnqh62ewa"
+ },
+ "com.atproto.server.createSession": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.createSession",
+ "cid": "bafyreieftxrfcsudzvfk5l73r2cukzwa6axzkfjs2l7dxtieyqnkdngwsq"
+ },
+ "com.atproto.server.deactivateAccount": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.deactivateAccount",
+ "cid": "bafyreicewuflgo55i4yr7wblmnfcfsrqehy6zrq5jcqap2igkniantarwu"
+ },
+ "com.atproto.server.defs": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.defs",
+ "cid": "bafyreie6rctvespvjvdsway3keyu5yy25eqordhq44jmkxbf6roirlidwm"
+ },
+ "com.atproto.server.deleteAccount": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.deleteAccount",
+ "cid": "bafyreie44rxc4ax3u2hg54636cgjedydzvy2q2cnifsayo3kxlpockkhzu"
+ },
+ "com.atproto.server.deleteSession": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.deleteSession",
+ "cid": "bafyreiave4iopcsa62d5hm42ctf4n6z2ajkdqhz5evq53hmw26hghoz35q"
+ },
+ "com.atproto.server.describeServer": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.describeServer",
+ "cid": "bafyreidjve4qbhebxzppq23ogsto6luddd63mmn7a57rmml6qi3yf7n3ee"
+ },
+ "com.atproto.server.getAccountInviteCodes": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.getAccountInviteCodes",
+ "cid": "bafyreibeczlag36upzn67uqsheo4st47z7nbpvfrdgko777633saur7jui"
+ },
+ "com.atproto.server.getServiceAuth": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.getServiceAuth",
+ "cid": "bafyreigjuxsvldkifmwzdrzvziq2ldomzoqizsv5umwgumjv77ld56wxyi"
+ },
+ "com.atproto.server.getSession": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.getSession",
+ "cid": "bafyreihjh3lkkbdznrs5jfnt6mhxtnaitviqqma6zmoltt3weknwxlc5ae"
+ },
+ "com.atproto.server.listAppPasswords": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.listAppPasswords",
+ "cid": "bafyreic7ipzaep5tjfw6pzvcl5goidfhkvquzvwyfftqnlgnc6eu2sjqjy"
+ },
+ "com.atproto.server.refreshSession": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.refreshSession",
+ "cid": "bafyreie5cdpsl3ibp473xuycfxakryp5svq4gzdcwnfdzwm5xkxyzux2ly"
+ },
+ "com.atproto.server.requestAccountDelete": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.requestAccountDelete",
+ "cid": "bafyreietqywku2g5whu4hehlopx3mwwrnkhupuw3udhp76ovdsqrhbhzgm"
+ },
+ "com.atproto.server.requestEmailConfirmation": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.requestEmailConfirmation",
+ "cid": "bafyreidwpigpyhtbka5bgc3qkyr6ifp2j22bwdpjuitb2b3sjy5fae6cj4"
+ },
+ "com.atproto.server.requestEmailUpdate": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.requestEmailUpdate",
+ "cid": "bafyreibd4flizyrui5mlyv5icokqhgocw2txvgjpmxkjrd6ok43jpjbleq"
+ },
+ "com.atproto.server.requestPasswordReset": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.requestPasswordReset",
+ "cid": "bafyreihcycgtiyv5ah2nnpbbez3qleo2y2a3cf5uvz34tcaliicke2osfa"
+ },
+ "com.atproto.server.reserveSigningKey": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.reserveSigningKey",
+ "cid": "bafyreig4anpzivr7yutnqobuqdtta6ls6i4xbarupyud5bwztmmpnvcr2u"
+ },
+ "com.atproto.server.resetPassword": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.resetPassword",
+ "cid": "bafyreighhpnpsmoauobk4gqxpa5qtirodft25gcxnfxme7ic5zpv73tu6u"
+ },
+ "com.atproto.server.revokeAppPassword": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.revokeAppPassword",
+ "cid": "bafyreif7fouud77wtwkbbxrgz2ixc7pofd7klamsrxotvs4cw63dzcqqvi"
+ },
+ "com.atproto.server.updateEmail": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.server.updateEmail",
+ "cid": "bafyreia57t6r2crv7hinanwkcfyhqfcbt3qnfqponrj3j5owwlepnbxb7u"
+ },
+ "com.atproto.sync.defs": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.sync.defs",
+ "cid": "bafyreia6vzfbj2nfmr7kn7fwy6lnugozgimpdcg2f3vovgsa4fk6fsfhse"
+ },
+ "com.atproto.sync.getBlob": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.sync.getBlob",
+ "cid": "bafyreigievymssvpqn7v5gb6q7hrlepcyzy7xko5rnfrk2ywcjcfbd3574"
+ },
+ "com.atproto.sync.getBlocks": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.sync.getBlocks",
+ "cid": "bafyreie5jvieoangaotlziavns65njosj5pklfqv6u5psgtkhdgmk25lpa"
+ },
+ "com.atproto.sync.getCheckout": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.sync.getCheckout",
+ "cid": "bafyreiba6hvjo2chopkgwsy5n2sumywx2qhqvqycd5a6tqfsnbf5nodkzm"
+ },
+ "com.atproto.sync.getHead": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.sync.getHead",
+ "cid": "bafyreiecq2pcytdy56ucv22a7snlt5lgacmfvemioj5jjyco6uo7t7akwi"
+ },
+ "com.atproto.sync.getHostStatus": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.sync.getHostStatus",
+ "cid": "bafyreiazetpylsjgp5qfnu6qfb6ahthgjw7spbcl7hpyiz3srl7wnebdsq"
+ },
+ "com.atproto.sync.getLatestCommit": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.sync.getLatestCommit",
+ "cid": "bafyreifewzvfus7z6rnmtv74lpulhldvikqmhzepwqdlaqmhllgyg4oejq"
+ },
+ "com.atproto.sync.getRecord": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.sync.getRecord",
+ "cid": "bafyreiermob6nqcfc6hlhmvuo7jv3imo7hfy3og34oom2p3qe6tldajoru"
+ },
+ "com.atproto.sync.getRepo": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.sync.getRepo",
+ "cid": "bafyreieyt5x6wf4pgcn56tb2724uplmwcqjivkubmi25km3xrvroz6dw5q"
+ },
+ "com.atproto.sync.getRepoStatus": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.sync.getRepoStatus",
+ "cid": "bafyreidv752rhe2abwz2rp2akok2gnopmsk4wlwrwsf22uwhfzst6nh4ry"
+ },
+ "com.atproto.sync.listBlobs": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.sync.listBlobs",
+ "cid": "bafyreidjsbhbe5rstmx5tjbbjjrznqr2ehlqkdklvlnhlcndhdjycnuc4a"
+ },
+ "com.atproto.sync.listHosts": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.sync.listHosts",
+ "cid": "bafyreigxo77zttzvqzmhhvttfs7kom5npwjxkapmnmpirjyg7oui5tpwbe"
+ },
+ "com.atproto.sync.listRepos": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.sync.listRepos",
+ "cid": "bafyreic6q46ptlr4kv4eonzw3isiqegom5ldr32onhrv2kyrmppgakss2i"
+ },
+ "com.atproto.sync.listReposByCollection": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.sync.listReposByCollection",
+ "cid": "bafyreicl2azqcl4poa5cqyp3ghlomqkzswmu4uqff6cpwk2c7bjrhth75y"
+ },
+ "com.atproto.sync.notifyOfUpdate": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.sync.notifyOfUpdate",
+ "cid": "bafyreigohysvh6tjme6ihyygbrnjckr7e3rgmsoes6tx7xxhszulbek6gm"
+ },
+ "com.atproto.sync.requestCrawl": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.sync.requestCrawl",
+ "cid": "bafyreiepdcevsxqy6matus3wn2n3htnyihgc3etubne2ay3idq7h523hte"
+ },
+ "com.atproto.sync.subscribeRepos": {
+ "uri": "at://did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.lexicon.schema/com.atproto.sync.subscribeRepos",
+ "cid": "bafyreid5fdkjulxpnbfqwi4hjehx7ibzzj2h5ln7nachurdzqcpihytbuu"
+ },
+ "com.germnetwork.declaration": {
+ "uri": "at://did:plc:qyqmmncrm6qx33kpy7vqndik/com.atproto.lexicon.schema/com.germnetwork.declaration",
+ "cid": "bafyreickqsspgkujwucg3low5or64ywjryf44eua6xtszd6zsl2yteumoi"
+ },
+ "tools.ozone.report.defs": {
+ "uri": "at://did:plc:33dt5kftu3jq2h5h4jjlqezt/com.atproto.lexicon.schema/tools.ozone.report.defs",
+ "cid": "bafyreic3l2rmh2ugirt3jz372wcvy333m7t2ynlyzj2k54oshijs6lxdfu"
+ }
+ }
+}
diff --git a/lexicons/app/bsky/actor/contentVisibilityDeclaration.json b/lexicons/app/bsky/actor/contentVisibilityDeclaration.json
new file mode 100644
index 0000000000..ec7d627e43
--- /dev/null
+++ b/lexicons/app/bsky/actor/contentVisibilityDeclaration.json
@@ -0,0 +1,21 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.actor.contentVisibilityDeclaration",
+ "defs": {
+ "main": {
+ "type": "record",
+ "description": "A declaration of an account's preferences for appearing in content discovery surfaces.",
+ "key": "literal:self",
+ "record": {
+ "type": "object",
+ "required": ["hideFromAlgorithmicRecommendations"],
+ "properties": {
+ "hideFromAlgorithmicRecommendations": {
+ "type": "boolean",
+ "description": "Whether the account requests that its posts be hidden from algorithmic recommendations. Consumers must treat a missing record as false."
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/actor/defs.json b/lexicons/app/bsky/actor/defs.json
new file mode 100644
index 0000000000..2e6403ff51
--- /dev/null
+++ b/lexicons/app/bsky/actor/defs.json
@@ -0,0 +1,994 @@
+{
+ "id": "app.bsky.actor.defs",
+ "defs": {
+ "nux": {
+ "type": "object",
+ "required": [
+ "id",
+ "completed"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "maxLength": 100
+ },
+ "data": {
+ "type": "string",
+ "maxLength": 3000,
+ "description": "Arbitrary data for the NUX. The structure is defined by the NUX itself. Limited to 300 characters.",
+ "maxGraphemes": 300
+ },
+ "completed": {
+ "type": "boolean",
+ "default": false
+ },
+ "expiresAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "The date and time at which the NUX will expire and should be considered completed."
+ }
+ },
+ "description": "A new user experiences (NUX) storage object"
+ },
+ "mutedWord": {
+ "type": "object",
+ "required": [
+ "value",
+ "targets"
+ ],
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string",
+ "maxLength": 10000,
+ "description": "The muted word itself.",
+ "maxGraphemes": 1000
+ },
+ "targets": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.actor.defs#mutedWordTarget",
+ "type": "ref"
+ },
+ "description": "The intended targets of the muted word."
+ },
+ "expiresAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "The date and time at which the muted word will expire and no longer be applied."
+ },
+ "actorTarget": {
+ "type": "string",
+ "default": "all",
+ "description": "Groups of users to apply the muted word to. If undefined, applies to all users.",
+ "knownValues": [
+ "all",
+ "exclude-following"
+ ]
+ }
+ },
+ "description": "A word that the account owner has muted."
+ },
+ "savedFeed": {
+ "type": "object",
+ "required": [
+ "id",
+ "type",
+ "value",
+ "pinned"
+ ],
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string",
+ "knownValues": [
+ "feed",
+ "list",
+ "timeline"
+ ]
+ },
+ "value": {
+ "type": "string"
+ },
+ "pinned": {
+ "type": "boolean"
+ }
+ }
+ },
+ "statusView": {
+ "type": "object",
+ "required": [
+ "status",
+ "record"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "embed": {
+ "refs": [
+ "app.bsky.embed.external#view"
+ ],
+ "type": "union",
+ "description": "An optional embed associated with the status."
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.label.defs#label",
+ "type": "ref"
+ }
+ },
+ "record": {
+ "type": "unknown"
+ },
+ "status": {
+ "type": "string",
+ "description": "The status for the account.",
+ "knownValues": [
+ "app.bsky.actor.status#live"
+ ]
+ },
+ "isActive": {
+ "type": "boolean",
+ "description": "True if the status is not expired, false if it is expired. Only present if expiration was set."
+ },
+ "expiresAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "The date when this status will expire. The application might choose to no longer return the status after expiration."
+ },
+ "isDisabled": {
+ "type": "boolean",
+ "description": "True if the user's go-live access has been disabled by a moderator, false otherwise."
+ }
+ }
+ },
+ "preferences": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "#adultContentPref",
+ "#contentLabelPref",
+ "#savedFeedsPref",
+ "#savedFeedsPrefV2",
+ "#personalDetailsPref",
+ "#declaredAgePref",
+ "#feedViewPref",
+ "#threadViewPref",
+ "#interestsPref",
+ "#mutedWordsPref",
+ "#hiddenPostsPref",
+ "#bskyAppStatePref",
+ "#labelersPref",
+ "#postInteractionSettingsPref",
+ "#verificationPrefs",
+ "#liveEventPreferences"
+ ],
+ "type": "union"
+ }
+ },
+ "profileView": {
+ "type": "object",
+ "required": [
+ "did",
+ "handle"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "debug": {
+ "type": "unknown",
+ "description": "Debug information for internal development"
+ },
+ "avatar": {
+ "type": "string",
+ "format": "uri"
+ },
+ "handle": {
+ "type": "string",
+ "format": "handle"
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.label.defs#label",
+ "type": "ref"
+ }
+ },
+ "status": {
+ "ref": "#statusView",
+ "type": "ref"
+ },
+ "viewer": {
+ "ref": "#viewerState",
+ "type": "ref"
+ },
+ "pronouns": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "indexedAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "associated": {
+ "ref": "#profileAssociated",
+ "type": "ref"
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 2560,
+ "maxGraphemes": 256
+ },
+ "displayName": {
+ "type": "string",
+ "maxLength": 640,
+ "maxGraphemes": 64
+ },
+ "verification": {
+ "ref": "#verificationState",
+ "type": "ref"
+ }
+ }
+ },
+ "viewerState": {
+ "type": "object",
+ "properties": {
+ "muted": {
+ "type": "boolean",
+ "description": "Whether the account is fully muted, directly or via a mutelist. False when the mute is scoped to specific kinds; see mutedOnlyReposts and mutedOnlyQuoteposts."
+ },
+ "blocking": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "blockedBy": {
+ "type": "boolean"
+ },
+ "following": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "followedBy": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "mutedByList": {
+ "ref": "app.bsky.graph.defs#listViewBasic",
+ "type": "ref"
+ },
+ "blockingByList": {
+ "ref": "app.bsky.graph.defs#listViewBasic",
+ "type": "ref"
+ },
+ "knownFollowers": {
+ "ref": "#knownFollowers",
+ "type": "ref",
+ "description": "This property is present only in selected cases, as an optimization."
+ },
+ "mutedOnlyReposts": {
+ "type": "boolean",
+ "description": "Whether the account's reposts are muted. Scoped mutes are exclusive with muted: this can be true while muted is false. If muted is true, this will be false."
+ },
+ "mutedOnlyQuoteposts": {
+ "type": "boolean",
+ "description": "Whether the account's quote posts are muted. Scoped mutes are exclusive with muted: this can be true while muted is false. If muted is true, this will be false."
+ },
+ "activitySubscription": {
+ "ref": "app.bsky.notification.defs#activitySubscription",
+ "type": "ref",
+ "description": "This property is present only in selected cases, as an optimization."
+ }
+ },
+ "description": "Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests."
+ },
+ "feedViewPref": {
+ "type": "object",
+ "required": [
+ "feed"
+ ],
+ "properties": {
+ "feed": {
+ "type": "string",
+ "description": "The URI of the feed, or an identifier which describes the feed."
+ },
+ "hideReplies": {
+ "type": "boolean",
+ "description": "Hide replies in the feed."
+ },
+ "hideReposts": {
+ "type": "boolean",
+ "description": "Hide reposts in the feed."
+ },
+ "hideQuotePosts": {
+ "type": "boolean",
+ "description": "Hide quote posts in the feed."
+ },
+ "hideRepliesByLikeCount": {
+ "type": "integer",
+ "description": "Hide replies in the feed if they do not have this number of likes."
+ },
+ "hideRepliesByUnfollowed": {
+ "type": "boolean",
+ "default": true,
+ "description": "Hide replies in the feed if they are not by followed users."
+ }
+ }
+ },
+ "labelersPref": {
+ "type": "object",
+ "required": [
+ "labelers"
+ ],
+ "properties": {
+ "labelers": {
+ "type": "array",
+ "items": {
+ "ref": "#labelerPrefItem",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "interestsPref": {
+ "type": "object",
+ "required": [
+ "tags"
+ ],
+ "properties": {
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "maxLength": 640,
+ "maxGraphemes": 64
+ },
+ "maxLength": 100,
+ "description": "A list of tags which describe the account owner's interests gathered during onboarding."
+ }
+ }
+ },
+ "knownFollowers": {
+ "type": "object",
+ "required": [
+ "count",
+ "followers"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer"
+ },
+ "followers": {
+ "type": "array",
+ "items": {
+ "ref": "#profileViewBasic",
+ "type": "ref"
+ },
+ "maxLength": 5,
+ "minLength": 0
+ }
+ },
+ "description": "The subject's followers whom you also follow"
+ },
+ "mutedWordsPref": {
+ "type": "object",
+ "required": [
+ "items"
+ ],
+ "properties": {
+ "items": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.actor.defs#mutedWord",
+ "type": "ref"
+ },
+ "description": "A list of words the account owner has muted."
+ }
+ }
+ },
+ "savedFeedsPref": {
+ "type": "object",
+ "required": [
+ "pinned",
+ "saved"
+ ],
+ "properties": {
+ "saved": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ },
+ "pinned": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ },
+ "timelineIndex": {
+ "type": "integer"
+ }
+ }
+ },
+ "threadViewPref": {
+ "type": "object",
+ "properties": {
+ "sort": {
+ "type": "string",
+ "description": "Sorting mode for threads.",
+ "knownValues": [
+ "oldest",
+ "newest",
+ "most-likes",
+ "random",
+ "hotness"
+ ]
+ }
+ }
+ },
+ "declaredAgePref": {
+ "type": "object",
+ "properties": {
+ "isOverAge13": {
+ "type": "boolean",
+ "description": "Indicates if the user has declared that they are over 13 years of age."
+ },
+ "isOverAge16": {
+ "type": "boolean",
+ "description": "Indicates if the user has declared that they are over 16 years of age."
+ },
+ "isOverAge18": {
+ "type": "boolean",
+ "description": "Indicates if the user has declared that they are over 18 years of age."
+ }
+ },
+ "description": "Read-only preference containing value(s) inferred from the user's declared birthdate. Absence of this preference object in the response indicates that the user has not made a declaration."
+ },
+ "hiddenPostsPref": {
+ "type": "object",
+ "required": [
+ "items"
+ ],
+ "properties": {
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "description": "A list of URIs of posts the account owner has hidden."
+ }
+ }
+ },
+ "labelerPrefItem": {
+ "type": "object",
+ "required": [
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ },
+ "mutedWordTarget": {
+ "type": "string",
+ "maxLength": 640,
+ "knownValues": [
+ "content",
+ "tag"
+ ],
+ "maxGraphemes": 64
+ },
+ "adultContentPref": {
+ "type": "object",
+ "required": [
+ "enabled"
+ ],
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ },
+ "bskyAppStatePref": {
+ "type": "object",
+ "properties": {
+ "nuxs": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.actor.defs#nux",
+ "type": "ref"
+ },
+ "maxLength": 100,
+ "description": "Storage for NUXs the user has encountered."
+ },
+ "isBetaUser": {
+ "type": "boolean",
+ "description": "Indicates if the user is participating in the beta features program."
+ },
+ "queuedNudges": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "maxLength": 100
+ },
+ "maxLength": 1000,
+ "description": "An array of tokens which identify nudges (modals, popups, tours, highlight dots) that should be shown to the user."
+ },
+ "activeProgressGuide": {
+ "ref": "#bskyAppProgressGuide",
+ "type": "ref"
+ }
+ },
+ "description": "A grab bag of state that's specific to the bsky.app program. Third-party apps shouldn't use this."
+ },
+ "contentLabelPref": {
+ "type": "object",
+ "required": [
+ "label",
+ "visibility"
+ ],
+ "properties": {
+ "label": {
+ "type": "string"
+ },
+ "labelerDid": {
+ "type": "string",
+ "format": "did",
+ "description": "Which labeler does this preference apply to? If undefined, applies globally."
+ },
+ "visibility": {
+ "type": "string",
+ "knownValues": [
+ "ignore",
+ "show",
+ "warn",
+ "hide"
+ ]
+ }
+ }
+ },
+ "profileViewBasic": {
+ "type": "object",
+ "required": [
+ "did",
+ "handle"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "debug": {
+ "type": "unknown",
+ "description": "Debug information for internal development"
+ },
+ "avatar": {
+ "type": "string",
+ "format": "uri"
+ },
+ "handle": {
+ "type": "string",
+ "format": "handle"
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.label.defs#label",
+ "type": "ref"
+ }
+ },
+ "status": {
+ "ref": "#statusView",
+ "type": "ref"
+ },
+ "viewer": {
+ "ref": "#viewerState",
+ "type": "ref"
+ },
+ "pronouns": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "associated": {
+ "ref": "#profileAssociated",
+ "type": "ref"
+ },
+ "displayName": {
+ "type": "string",
+ "maxLength": 640,
+ "maxGraphemes": 64
+ },
+ "verification": {
+ "ref": "#verificationState",
+ "type": "ref"
+ }
+ }
+ },
+ "savedFeedsPrefV2": {
+ "type": "object",
+ "required": [
+ "items"
+ ],
+ "properties": {
+ "items": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.actor.defs#savedFeed",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "verificationView": {
+ "type": "object",
+ "required": [
+ "issuer",
+ "uri",
+ "isValid",
+ "createdAt"
+ ],
+ "properties": {
+ "uri": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "The AT-URI of the verification record."
+ },
+ "issuer": {
+ "type": "string",
+ "format": "did",
+ "description": "The user who issued this verification."
+ },
+ "isValid": {
+ "type": "boolean",
+ "description": "True if the verification passes validation, otherwise false."
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "Timestamp when the verification was created."
+ },
+ "issuerHandle": {
+ "type": "string",
+ "format": "handle",
+ "description": "The handle of the issuer."
+ },
+ "issuerDisplayName": {
+ "type": "string",
+ "description": "The display name of the issuer."
+ }
+ },
+ "description": "An individual verification for an associated subject."
+ },
+ "profileAssociated": {
+ "type": "object",
+ "properties": {
+ "chat": {
+ "ref": "#profileAssociatedChat",
+ "type": "ref"
+ },
+ "germ": {
+ "ref": "#profileAssociatedGerm",
+ "type": "ref"
+ },
+ "lists": {
+ "type": "integer"
+ },
+ "labeler": {
+ "type": "boolean"
+ },
+ "feedgens": {
+ "type": "integer"
+ },
+ "starterPacks": {
+ "type": "integer"
+ },
+ "activitySubscription": {
+ "ref": "#profileAssociatedActivitySubscription",
+ "type": "ref"
+ }
+ }
+ },
+ "verificationPrefs": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "hideBadges": {
+ "type": "boolean",
+ "default": false,
+ "description": "Hide the blue check badges for verified accounts and trusted verifiers."
+ }
+ },
+ "description": "Preferences for how verified accounts appear in the app."
+ },
+ "verificationState": {
+ "type": "object",
+ "required": [
+ "verifications",
+ "verifiedStatus",
+ "trustedVerifierStatus"
+ ],
+ "properties": {
+ "verifications": {
+ "type": "array",
+ "items": {
+ "ref": "#verificationView",
+ "type": "ref"
+ },
+ "description": "All verifications issued by trusted verifiers on behalf of this user. Verifications by untrusted verifiers are not included."
+ },
+ "verifiedStatus": {
+ "type": "string",
+ "description": "The user's status as a verified account.",
+ "knownValues": [
+ "valid",
+ "invalid",
+ "none"
+ ]
+ },
+ "trustedVerifierStatus": {
+ "type": "string",
+ "description": "The user's status as a trusted verifier.",
+ "knownValues": [
+ "valid",
+ "invalid",
+ "none"
+ ]
+ }
+ },
+ "description": "Represents the verification information about the user this object is attached to."
+ },
+ "personalDetailsPref": {
+ "type": "object",
+ "properties": {
+ "birthDate": {
+ "type": "string",
+ "format": "datetime",
+ "description": "The birth date of account owner."
+ }
+ }
+ },
+ "profileViewDetailed": {
+ "type": "object",
+ "required": [
+ "did",
+ "handle"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "debug": {
+ "type": "unknown",
+ "description": "Debug information for internal development"
+ },
+ "avatar": {
+ "type": "string",
+ "format": "uri"
+ },
+ "banner": {
+ "type": "string",
+ "format": "uri"
+ },
+ "handle": {
+ "type": "string",
+ "format": "handle"
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.label.defs#label",
+ "type": "ref"
+ }
+ },
+ "status": {
+ "ref": "#statusView",
+ "type": "ref"
+ },
+ "viewer": {
+ "ref": "#viewerState",
+ "type": "ref"
+ },
+ "website": {
+ "type": "string",
+ "format": "uri"
+ },
+ "pronouns": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "indexedAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "associated": {
+ "ref": "#profileAssociated",
+ "type": "ref"
+ },
+ "pinnedPost": {
+ "ref": "com.atproto.repo.strongRef",
+ "type": "ref"
+ },
+ "postsCount": {
+ "type": "integer"
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 2560,
+ "maxGraphemes": 256
+ },
+ "displayName": {
+ "type": "string",
+ "maxLength": 640,
+ "maxGraphemes": 64
+ },
+ "followsCount": {
+ "type": "integer"
+ },
+ "verification": {
+ "ref": "#verificationState",
+ "type": "ref"
+ },
+ "followersCount": {
+ "type": "integer"
+ },
+ "joinedViaStarterPack": {
+ "ref": "app.bsky.graph.defs#starterPackViewBasic",
+ "type": "ref"
+ }
+ }
+ },
+ "bskyAppProgressGuide": {
+ "type": "object",
+ "required": [
+ "guide"
+ ],
+ "properties": {
+ "guide": {
+ "type": "string",
+ "maxLength": 100
+ }
+ },
+ "description": "If set, an active progress guide. Once completed, can be set to undefined. Should have unspecced fields tracking progress."
+ },
+ "liveEventPreferences": {
+ "type": "object",
+ "properties": {
+ "hideAllFeeds": {
+ "type": "boolean",
+ "default": false,
+ "description": "Whether to hide all feeds from live events."
+ },
+ "hiddenFeedIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of feed IDs that the user has hidden from live events."
+ }
+ },
+ "description": "Preferences for live events."
+ },
+ "profileAssociatedChat": {
+ "type": "object",
+ "required": [
+ "allowIncoming"
+ ],
+ "properties": {
+ "allowIncoming": {
+ "type": "string",
+ "knownValues": [
+ "all",
+ "none",
+ "following"
+ ]
+ },
+ "allowGroupInvites": {
+ "type": "string",
+ "knownValues": [
+ "all",
+ "none",
+ "following"
+ ]
+ }
+ }
+ },
+ "profileAssociatedGerm": {
+ "type": "object",
+ "required": [
+ "showButtonTo",
+ "messageMeUrl"
+ ],
+ "properties": {
+ "messageMeUrl": {
+ "type": "string",
+ "format": "uri"
+ },
+ "showButtonTo": {
+ "type": "string",
+ "knownValues": [
+ "usersIFollow",
+ "everyone"
+ ]
+ }
+ }
+ },
+ "postInteractionSettingsPref": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "threadgateAllowRules": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "app.bsky.feed.threadgate#mentionRule",
+ "app.bsky.feed.threadgate#followerRule",
+ "app.bsky.feed.threadgate#followingRule",
+ "app.bsky.feed.threadgate#listRule"
+ ],
+ "type": "union"
+ },
+ "maxLength": 5,
+ "description": "Matches threadgate record. List of rules defining who can reply to this users posts. If value is an empty array, no one can reply. If value is undefined, anyone can reply."
+ },
+ "postgateEmbeddingRules": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "app.bsky.feed.postgate#disableRule"
+ ],
+ "type": "union"
+ },
+ "maxLength": 5,
+ "description": "Matches postgate record. List of rules defining who can embed this users posts. If value is an empty array or is undefined, no particular rules apply and anyone can embed."
+ }
+ },
+ "description": "Default post interaction settings for the account. These values should be applied as default values when creating new posts. These refs should mirror the threadgate and postgate records exactly."
+ },
+ "profileAssociatedActivitySubscription": {
+ "type": "object",
+ "required": [
+ "allowSubscriptions"
+ ],
+ "properties": {
+ "allowSubscriptions": {
+ "type": "string",
+ "knownValues": [
+ "followers",
+ "mutuals",
+ "none"
+ ]
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/actor/getPreferences.json b/lexicons/app/bsky/actor/getPreferences.json
new file mode 100644
index 0000000000..513d27e6a9
--- /dev/null
+++ b/lexicons/app/bsky/actor/getPreferences.json
@@ -0,0 +1,30 @@
+{
+ "id": "app.bsky.actor.getPreferences",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "preferences"
+ ],
+ "properties": {
+ "preferences": {
+ "ref": "app.bsky.actor.defs#preferences",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {}
+ },
+ "description": "Get private preferences attached to the current account. Expected use is synchronization between multiple devices, and import/export during account migration. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/actor/getProfile.json b/lexicons/app/bsky/actor/getProfile.json
new file mode 100644
index 0000000000..cbdde68df6
--- /dev/null
+++ b/lexicons/app/bsky/actor/getProfile.json
@@ -0,0 +1,31 @@
+{
+ "id": "app.bsky.actor.getProfile",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "ref": "app.bsky.actor.defs#profileViewDetailed",
+ "type": "ref"
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "actor"
+ ],
+ "properties": {
+ "actor": {
+ "type": "string",
+ "format": "at-identifier",
+ "description": "Handle or DID of account to fetch profile of."
+ }
+ }
+ },
+ "description": "Get detailed profile view of an actor. Does not require auth, but contains relevant metadata with auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/actor/getProfiles.json b/lexicons/app/bsky/actor/getProfiles.json
new file mode 100644
index 0000000000..23f0693417
--- /dev/null
+++ b/lexicons/app/bsky/actor/getProfiles.json
@@ -0,0 +1,45 @@
+{
+ "id": "app.bsky.actor.getProfiles",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "profiles"
+ ],
+ "properties": {
+ "profiles": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.actor.defs#profileViewDetailed",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "actors"
+ ],
+ "properties": {
+ "actors": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "at-identifier"
+ },
+ "maxLength": 25
+ }
+ }
+ },
+ "description": "Get detailed profile views of multiple actors."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/actor/getSuggestions.json b/lexicons/app/bsky/actor/getSuggestions.json
new file mode 100644
index 0000000000..84afa86b36
--- /dev/null
+++ b/lexicons/app/bsky/actor/getSuggestions.json
@@ -0,0 +1,54 @@
+{
+ "id": "app.bsky.actor.getSuggestions",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "actors"
+ ],
+ "properties": {
+ "recId": {
+ "type": "integer",
+ "description": "DEPRECATED: use recIdStr instead."
+ },
+ "actors": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ },
+ "recIdStr": {
+ "type": "string",
+ "description": "Snowflake for this recommendation, use when submitting recommendation events."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Get a list of suggested actors. Expected use is discovery of accounts to follow during new account onboarding."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/actor/profile.json b/lexicons/app/bsky/actor/profile.json
new file mode 100644
index 0000000000..256405db65
--- /dev/null
+++ b/lexicons/app/bsky/actor/profile.json
@@ -0,0 +1,75 @@
+{
+ "id": "app.bsky.actor.profile",
+ "defs": {
+ "main": {
+ "key": "literal:self",
+ "type": "record",
+ "record": {
+ "type": "object",
+ "properties": {
+ "avatar": {
+ "type": "blob",
+ "accept": [
+ "image/png",
+ "image/jpeg"
+ ],
+ "maxSize": 1000000,
+ "description": "Small image to be displayed next to posts from account. AKA, 'profile picture'"
+ },
+ "banner": {
+ "type": "blob",
+ "accept": [
+ "image/png",
+ "image/jpeg"
+ ],
+ "maxSize": 1000000,
+ "description": "Larger horizontal image to display behind profile view."
+ },
+ "labels": {
+ "refs": [
+ "com.atproto.label.defs#selfLabels"
+ ],
+ "type": "union",
+ "description": "Self-label values, specific to the Bluesky application, on the overall account."
+ },
+ "website": {
+ "type": "string",
+ "format": "uri"
+ },
+ "pronouns": {
+ "type": "string",
+ "maxLength": 200,
+ "description": "Free-form pronouns text.",
+ "maxGraphemes": 20
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "pinnedPost": {
+ "ref": "com.atproto.repo.strongRef",
+ "type": "ref"
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 2560,
+ "description": "Free-form profile description text.",
+ "maxGraphemes": 256
+ },
+ "displayName": {
+ "type": "string",
+ "maxLength": 640,
+ "maxGraphemes": 64
+ },
+ "joinedViaStarterPack": {
+ "ref": "com.atproto.repo.strongRef",
+ "type": "ref"
+ }
+ }
+ },
+ "description": "A declaration of a Bluesky account profile."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/actor/putPreferences.json b/lexicons/app/bsky/actor/putPreferences.json
new file mode 100644
index 0000000000..824d5a2e80
--- /dev/null
+++ b/lexicons/app/bsky/actor/putPreferences.json
@@ -0,0 +1,26 @@
+{
+ "id": "app.bsky.actor.putPreferences",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "preferences"
+ ],
+ "properties": {
+ "preferences": {
+ "ref": "app.bsky.actor.defs#preferences",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Set the private preferences attached to the account."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/actor/searchActors.json b/lexicons/app/bsky/actor/searchActors.json
new file mode 100644
index 0000000000..1e097e505f
--- /dev/null
+++ b/lexicons/app/bsky/actor/searchActors.json
@@ -0,0 +1,54 @@
+{
+ "id": "app.bsky.actor.searchActors",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "actors"
+ ],
+ "properties": {
+ "actors": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "q": {
+ "type": "string",
+ "description": "Search query string. Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended."
+ },
+ "term": {
+ "type": "string",
+ "description": "DEPRECATED: use 'q' instead."
+ },
+ "limit": {
+ "type": "integer",
+ "default": 25,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Find actors (profiles) matching search criteria. Does not require auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/actor/searchActorsTypeahead.json b/lexicons/app/bsky/actor/searchActorsTypeahead.json
new file mode 100644
index 0000000000..9f11920c7e
--- /dev/null
+++ b/lexicons/app/bsky/actor/searchActorsTypeahead.json
@@ -0,0 +1,48 @@
+{
+ "id": "app.bsky.actor.searchActorsTypeahead",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "actors"
+ ],
+ "properties": {
+ "actors": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "q": {
+ "type": "string",
+ "description": "Search query prefix; not a full query string."
+ },
+ "term": {
+ "type": "string",
+ "description": "DEPRECATED: use 'q' instead."
+ },
+ "limit": {
+ "type": "integer",
+ "default": 10,
+ "maximum": 100,
+ "minimum": 1
+ }
+ }
+ },
+ "description": "Find actor suggestions for a prefix search term. Expected use is for auto-completion during text field entry. Does not require auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/actor/status.json b/lexicons/app/bsky/actor/status.json
new file mode 100644
index 0000000000..7fd193c4d5
--- /dev/null
+++ b/lexicons/app/bsky/actor/status.json
@@ -0,0 +1,48 @@
+{
+ "id": "app.bsky.actor.status",
+ "defs": {
+ "live": {
+ "type": "token",
+ "description": "Advertises an account as currently offering live content."
+ },
+ "main": {
+ "key": "literal:self",
+ "type": "record",
+ "record": {
+ "type": "object",
+ "required": [
+ "status",
+ "createdAt"
+ ],
+ "properties": {
+ "embed": {
+ "refs": [
+ "app.bsky.embed.external"
+ ],
+ "type": "union",
+ "description": "An optional embed associated with the status."
+ },
+ "status": {
+ "type": "string",
+ "description": "The status for the account.",
+ "knownValues": [
+ "app.bsky.actor.status#live"
+ ]
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "durationMinutes": {
+ "type": "integer",
+ "minimum": 1,
+ "description": "The duration of the status in minutes. Applications can choose to impose minimum and maximum limits."
+ }
+ }
+ },
+ "description": "A declaration of a Bluesky account status."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/ageassurance/begin.json b/lexicons/app/bsky/ageassurance/begin.json
new file mode 100644
index 0000000000..0354e12190
--- /dev/null
+++ b/lexicons/app/bsky/ageassurance/begin.json
@@ -0,0 +1,61 @@
+{
+ "id": "app.bsky.ageassurance.begin",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "email",
+ "language",
+ "countryCode"
+ ],
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "The user's email address to receive Age Assurance instructions."
+ },
+ "language": {
+ "type": "string",
+ "description": "The user's preferred language for communication during the Age Assurance process."
+ },
+ "regionCode": {
+ "type": "string",
+ "description": "An optional ISO 3166-2 code of the user's region or state within the country."
+ },
+ "countryCode": {
+ "type": "string",
+ "description": "An ISO 3166-1 alpha-2 code of the user's location."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidEmail"
+ },
+ {
+ "name": "DidTooLong"
+ },
+ {
+ "name": "InvalidInitiation"
+ },
+ {
+ "name": "RegionNotSupported"
+ }
+ ],
+ "output": {
+ "schema": {
+ "ref": "app.bsky.ageassurance.defs#state",
+ "type": "ref"
+ },
+ "encoding": "application/json"
+ },
+ "description": "Initiate Age Assurance for an account."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/ageassurance/defs.json b/lexicons/app/bsky/ageassurance/defs.json
new file mode 100644
index 0000000000..2589abfd0f
--- /dev/null
+++ b/lexicons/app/bsky/ageassurance/defs.json
@@ -0,0 +1,333 @@
+{
+ "id": "app.bsky.ageassurance.defs",
+ "defs": {
+ "event": {
+ "type": "object",
+ "required": [
+ "createdAt",
+ "status",
+ "access",
+ "attemptId",
+ "countryCode"
+ ],
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "The email used for Age Assurance."
+ },
+ "access": {
+ "type": "string",
+ "description": "The access level granted based on Age Assurance data we've processed.",
+ "knownValues": [
+ "unknown",
+ "none",
+ "safe",
+ "full"
+ ]
+ },
+ "initIp": {
+ "type": "string",
+ "description": "The IP address used when initiating the Age Assurance flow."
+ },
+ "initUa": {
+ "type": "string",
+ "description": "The user agent used when initiating the Age Assurance flow."
+ },
+ "status": {
+ "type": "string",
+ "description": "The status of the Age Assurance process.",
+ "knownValues": [
+ "unknown",
+ "pending",
+ "assured",
+ "blocked"
+ ]
+ },
+ "attemptId": {
+ "type": "string",
+ "description": "The unique identifier for this instance of the Age Assurance flow, in UUID format."
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "The date and time of this write operation."
+ },
+ "completeIp": {
+ "type": "string",
+ "description": "The IP address used when completing the Age Assurance flow."
+ },
+ "completeUa": {
+ "type": "string",
+ "description": "The user agent used when completing the Age Assurance flow."
+ },
+ "regionCode": {
+ "type": "string",
+ "description": "The ISO 3166-2 region code provided when beginning the Age Assurance flow."
+ },
+ "countryCode": {
+ "type": "string",
+ "description": "The ISO 3166-1 alpha-2 country code provided when beginning the Age Assurance flow."
+ }
+ },
+ "description": "Object used to store Age Assurance data in stash."
+ },
+ "state": {
+ "type": "object",
+ "required": [
+ "status",
+ "access"
+ ],
+ "properties": {
+ "access": {
+ "ref": "app.bsky.ageassurance.defs#access",
+ "type": "ref"
+ },
+ "status": {
+ "ref": "app.bsky.ageassurance.defs#status",
+ "type": "ref"
+ },
+ "lastInitiatedAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "The timestamp when this state was last updated."
+ }
+ },
+ "description": "The user's computed Age Assurance state."
+ },
+ "access": {
+ "type": "string",
+ "description": "The access level granted based on Age Assurance data we've processed.",
+ "knownValues": [
+ "unknown",
+ "none",
+ "safe",
+ "full"
+ ]
+ },
+ "config": {
+ "type": "object",
+ "required": [
+ "regions"
+ ],
+ "properties": {
+ "regions": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.ageassurance.defs#configRegion",
+ "type": "ref"
+ },
+ "description": "The per-region Age Assurance configuration."
+ }
+ },
+ "description": ""
+ },
+ "status": {
+ "type": "string",
+ "description": "The status of the Age Assurance process.",
+ "knownValues": [
+ "unknown",
+ "pending",
+ "assured",
+ "blocked"
+ ]
+ },
+ "configRegion": {
+ "type": "object",
+ "required": [
+ "countryCode",
+ "minAccessAge",
+ "rules"
+ ],
+ "properties": {
+ "rules": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "#configRegionRuleDefault",
+ "#configRegionRuleIfDeclaredOverAge",
+ "#configRegionRuleIfDeclaredUnderAge",
+ "#configRegionRuleIfAssuredOverAge",
+ "#configRegionRuleIfAssuredUnderAge",
+ "#configRegionRuleIfAccountNewerThan",
+ "#configRegionRuleIfAccountOlderThan"
+ ],
+ "type": "union"
+ },
+ "description": "The ordered list of Age Assurance rules that apply to this region. Rules should be applied in order, and the first matching rule determines the access level granted. The rules array should always include a default rule as the last item."
+ },
+ "platforms": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "knownValues": [
+ "web",
+ "ios",
+ "android"
+ ]
+ },
+ "description": "The platforms this configuration applies to. If omitted, the configuration applies to all platforms."
+ },
+ "regionCode": {
+ "type": "string",
+ "description": "The ISO 3166-2 region code this configuration applies to. If omitted, the configuration applies to the entire country."
+ },
+ "countryCode": {
+ "type": "string",
+ "description": "The ISO 3166-1 alpha-2 country code this configuration applies to."
+ },
+ "minAccessAge": {
+ "type": "integer",
+ "description": "The minimum age (as a whole integer) required to use Bluesky in this region."
+ },
+ "additionalVerificationMethods": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "knownValues": [
+ "device"
+ ]
+ },
+ "description": "Verification methods permitted in this region in addition to the third-party (KWS) flow, which is always supported. `device` permits using the native on-device age APIs (e.g. Apple Declared Age Range, Google Play Age Signals)."
+ }
+ },
+ "description": "The Age Assurance configuration for a specific region."
+ },
+ "stateMetadata": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "accountCreatedAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "The account creation timestamp."
+ }
+ },
+ "description": "Additional metadata needed to compute Age Assurance state client-side."
+ },
+ "configRegionRuleDefault": {
+ "type": "object",
+ "required": [
+ "access"
+ ],
+ "properties": {
+ "access": {
+ "ref": "app.bsky.ageassurance.defs#access",
+ "type": "ref"
+ }
+ },
+ "description": "Age Assurance rule that applies by default."
+ },
+ "configRegionRuleIfAssuredOverAge": {
+ "type": "object",
+ "required": [
+ "age",
+ "access"
+ ],
+ "properties": {
+ "age": {
+ "type": "integer",
+ "description": "The age threshold as a whole integer."
+ },
+ "access": {
+ "ref": "app.bsky.ageassurance.defs#access",
+ "type": "ref"
+ }
+ },
+ "description": "Age Assurance rule that applies if the user has been assured to be equal-to or over a certain age."
+ },
+ "configRegionRuleIfAssuredUnderAge": {
+ "type": "object",
+ "required": [
+ "age",
+ "access"
+ ],
+ "properties": {
+ "age": {
+ "type": "integer",
+ "description": "The age threshold as a whole integer."
+ },
+ "access": {
+ "ref": "app.bsky.ageassurance.defs#access",
+ "type": "ref"
+ }
+ },
+ "description": "Age Assurance rule that applies if the user has been assured to be under a certain age."
+ },
+ "configRegionRuleIfDeclaredOverAge": {
+ "type": "object",
+ "required": [
+ "age",
+ "access"
+ ],
+ "properties": {
+ "age": {
+ "type": "integer",
+ "description": "The age threshold as a whole integer."
+ },
+ "access": {
+ "ref": "app.bsky.ageassurance.defs#access",
+ "type": "ref"
+ }
+ },
+ "description": "Age Assurance rule that applies if the user has declared themselves equal-to or over a certain age."
+ },
+ "configRegionRuleIfAccountNewerThan": {
+ "type": "object",
+ "required": [
+ "date",
+ "access"
+ ],
+ "properties": {
+ "date": {
+ "type": "string",
+ "format": "datetime",
+ "description": "The date threshold as a datetime string."
+ },
+ "access": {
+ "ref": "app.bsky.ageassurance.defs#access",
+ "type": "ref"
+ }
+ },
+ "description": "Age Assurance rule that applies if the account is equal-to or newer than a certain date."
+ },
+ "configRegionRuleIfAccountOlderThan": {
+ "type": "object",
+ "required": [
+ "date",
+ "access"
+ ],
+ "properties": {
+ "date": {
+ "type": "string",
+ "format": "datetime",
+ "description": "The date threshold as a datetime string."
+ },
+ "access": {
+ "ref": "app.bsky.ageassurance.defs#access",
+ "type": "ref"
+ }
+ },
+ "description": "Age Assurance rule that applies if the account is older than a certain date."
+ },
+ "configRegionRuleIfDeclaredUnderAge": {
+ "type": "object",
+ "required": [
+ "age",
+ "access"
+ ],
+ "properties": {
+ "age": {
+ "type": "integer",
+ "description": "The age threshold as a whole integer."
+ },
+ "access": {
+ "ref": "app.bsky.ageassurance.defs#access",
+ "type": "ref"
+ }
+ },
+ "description": "Age Assurance rule that applies if the user has declared themselves under a certain age."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/ageassurance/getConfig.json b/lexicons/app/bsky/ageassurance/getConfig.json
new file mode 100644
index 0000000000..793d5b9519
--- /dev/null
+++ b/lexicons/app/bsky/ageassurance/getConfig.json
@@ -0,0 +1,18 @@
+{
+ "id": "app.bsky.ageassurance.getConfig",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "ref": "app.bsky.ageassurance.defs#config",
+ "type": "ref"
+ },
+ "encoding": "application/json"
+ },
+ "description": "Returns Age Assurance configuration for use on the client."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/ageassurance/getState.json b/lexicons/app/bsky/ageassurance/getState.json
new file mode 100644
index 0000000000..42c7cd0ba9
--- /dev/null
+++ b/lexicons/app/bsky/ageassurance/getState.json
@@ -0,0 +1,45 @@
+{
+ "id": "app.bsky.ageassurance.getState",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "state",
+ "metadata"
+ ],
+ "properties": {
+ "state": {
+ "ref": "app.bsky.ageassurance.defs#state",
+ "type": "ref"
+ },
+ "metadata": {
+ "ref": "app.bsky.ageassurance.defs#stateMetadata",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "countryCode"
+ ],
+ "properties": {
+ "regionCode": {
+ "type": "string"
+ },
+ "countryCode": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Returns server-computed Age Assurance state, if available, and any additional metadata needed to compute Age Assurance state client-side."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/bookmark/createBookmark.json b/lexicons/app/bsky/bookmark/createBookmark.json
new file mode 100644
index 0000000000..378d494a2f
--- /dev/null
+++ b/lexicons/app/bsky/bookmark/createBookmark.json
@@ -0,0 +1,37 @@
+{
+ "id": "app.bsky.bookmark.createBookmark",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "uri",
+ "cid"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "UnsupportedCollection",
+ "description": "The URI to be bookmarked is for an unsupported collection."
+ }
+ ],
+ "description": "Creates a private bookmark for the specified record. Currently, only `app.bsky.feed.post` records are supported. Requires authentication."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/bookmark/defs.json b/lexicons/app/bsky/bookmark/defs.json
new file mode 100644
index 0000000000..f499e55cd5
--- /dev/null
+++ b/lexicons/app/bsky/bookmark/defs.json
@@ -0,0 +1,47 @@
+{
+ "id": "app.bsky.bookmark.defs",
+ "defs": {
+ "bookmark": {
+ "type": "object",
+ "required": [
+ "subject"
+ ],
+ "properties": {
+ "subject": {
+ "ref": "com.atproto.repo.strongRef",
+ "type": "ref",
+ "description": "A strong ref to the record to be bookmarked. Currently, only `app.bsky.feed.post` records are supported."
+ }
+ },
+ "description": "Object used to store bookmark data in stash."
+ },
+ "bookmarkView": {
+ "type": "object",
+ "required": [
+ "subject",
+ "item"
+ ],
+ "properties": {
+ "item": {
+ "refs": [
+ "app.bsky.feed.defs#blockedPost",
+ "app.bsky.feed.defs#notFoundPost",
+ "app.bsky.feed.defs#postView"
+ ],
+ "type": "union"
+ },
+ "subject": {
+ "ref": "com.atproto.repo.strongRef",
+ "type": "ref",
+ "description": "A strong ref to the bookmarked record."
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/bookmark/deleteBookmark.json b/lexicons/app/bsky/bookmark/deleteBookmark.json
new file mode 100644
index 0000000000..52d5c3c2f5
--- /dev/null
+++ b/lexicons/app/bsky/bookmark/deleteBookmark.json
@@ -0,0 +1,32 @@
+{
+ "id": "app.bsky.bookmark.deleteBookmark",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "uri"
+ ],
+ "properties": {
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "UnsupportedCollection",
+ "description": "The URI to be bookmarked is for an unsupported collection."
+ }
+ ],
+ "description": "Deletes a private bookmark for the specified record. Currently, only `app.bsky.feed.post` records are supported. Requires authentication."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/bookmark/getBookmarks.json b/lexicons/app/bsky/bookmark/getBookmarks.json
new file mode 100644
index 0000000000..301914d4c2
--- /dev/null
+++ b/lexicons/app/bsky/bookmark/getBookmarks.json
@@ -0,0 +1,46 @@
+{
+ "id": "app.bsky.bookmark.getBookmarks",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "bookmarks"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "bookmarks": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.bookmark.defs#bookmarkView",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Gets views of records bookmarked by the authenticated user. Requires authentication."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/contact/defs.json b/lexicons/app/bsky/contact/defs.json
new file mode 100644
index 0000000000..68f0179fb3
--- /dev/null
+++ b/lexicons/app/bsky/contact/defs.json
@@ -0,0 +1,67 @@
+{
+ "id": "app.bsky.contact.defs",
+ "defs": {
+ "syncStatus": {
+ "type": "object",
+ "required": [
+ "syncedAt",
+ "matchesCount"
+ ],
+ "properties": {
+ "syncedAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "Last date when contacts where imported."
+ },
+ "matchesCount": {
+ "type": "integer",
+ "minimum": 0,
+ "description": "Number of existing contact matches resulting of the user imports and of their imported contacts having imported the user. Matches stop being counted when the user either follows the matched contact or dismisses the match."
+ }
+ }
+ },
+ "notification": {
+ "type": "object",
+ "required": [
+ "from",
+ "to"
+ ],
+ "properties": {
+ "to": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of who this notification should go to."
+ },
+ "from": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of who this notification comes from."
+ }
+ },
+ "description": "A stash object to be sent via bsync representing a notification to be created."
+ },
+ "matchAndContactIndex": {
+ "type": "object",
+ "required": [
+ "match",
+ "contactIndex"
+ ],
+ "properties": {
+ "match": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref",
+ "description": "Profile of the matched user."
+ },
+ "contactIndex": {
+ "type": "integer",
+ "maximum": 999,
+ "minimum": 0,
+ "description": "The index of this match in the import contact input."
+ }
+ },
+ "description": "Associates a profile with the positional index of the contact import input in the call to `app.bsky.contact.importContacts`, so clients can know which phone caused a particular match."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/contact/dismissMatch.json b/lexicons/app/bsky/contact/dismissMatch.json
new file mode 100644
index 0000000000..27cb2b3d7a
--- /dev/null
+++ b/lexicons/app/bsky/contact/dismissMatch.json
@@ -0,0 +1,42 @@
+{
+ "id": "app.bsky.contact.dismissMatch",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "subject"
+ ],
+ "properties": {
+ "subject": {
+ "type": "string",
+ "format": "did",
+ "description": "The subject's DID to dismiss the match with."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidDid"
+ },
+ {
+ "name": "InternalError"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "properties": {}
+ },
+ "encoding": "application/json"
+ },
+ "description": "Removes a match that was found via contact import. It shouldn't appear again if the same contact is re-imported. Requires authentication."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/contact/getMatches.json b/lexicons/app/bsky/contact/getMatches.json
new file mode 100644
index 0000000000..cce3cac464
--- /dev/null
+++ b/lexicons/app/bsky/contact/getMatches.json
@@ -0,0 +1,60 @@
+{
+ "id": "app.bsky.contact.getMatches",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "InvalidDid"
+ },
+ {
+ "name": "InvalidLimit"
+ },
+ {
+ "name": "InvalidCursor"
+ },
+ {
+ "name": "InternalError"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "matches"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "matches": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Returns the matched contacts (contacts that were mutually imported). Excludes dismissed matches. Requires authentication."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/contact/getSyncStatus.json b/lexicons/app/bsky/contact/getSyncStatus.json
new file mode 100644
index 0000000000..53dc538f78
--- /dev/null
+++ b/lexicons/app/bsky/contact/getSyncStatus.json
@@ -0,0 +1,36 @@
+{
+ "id": "app.bsky.contact.getSyncStatus",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "InvalidDid"
+ },
+ {
+ "name": "InternalError"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "syncStatus": {
+ "ref": "app.bsky.contact.defs#syncStatus",
+ "type": "ref",
+ "description": "If present, indicates the user has imported their contacts. If not present, indicates the user never used the feature or called `app.bsky.contact.removeData` and didn't import again since."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {}
+ },
+ "description": "Gets the user's current contact import status. Requires authentication."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/contact/importContacts.json b/lexicons/app/bsky/contact/importContacts.json
new file mode 100644
index 0000000000..70092e2583
--- /dev/null
+++ b/lexicons/app/bsky/contact/importContacts.json
@@ -0,0 +1,72 @@
+{
+ "id": "app.bsky.contact.importContacts",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "token",
+ "contacts"
+ ],
+ "properties": {
+ "token": {
+ "type": "string",
+ "description": "JWT to authenticate the call. Use the JWT received as a response to the call to `app.bsky.contact.verifyPhone`."
+ },
+ "contacts": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "maxLength": 1000,
+ "minLength": 1,
+ "description": "List of phone numbers in global E.164 format (e.g., '+12125550123'). Phone numbers that cannot be normalized into a valid phone number will be discarded. Should not repeat the 'phone' input used in `app.bsky.contact.verifyPhone`."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidDid"
+ },
+ {
+ "name": "InvalidContacts"
+ },
+ {
+ "name": "TooManyContacts"
+ },
+ {
+ "name": "InvalidToken"
+ },
+ {
+ "name": "InternalError"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "matchesAndContactIndexes"
+ ],
+ "properties": {
+ "matchesAndContactIndexes": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.contact.defs#matchAndContactIndex",
+ "type": "ref"
+ },
+ "description": "The users that matched during import and their indexes on the input contacts, so the client can correlate with its local list."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Import contacts for securely matching with other users. This follows the protocol explained in https://docs.bsky.app/blog/contact-import-rfc. Requires authentication."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/contact/removeData.json b/lexicons/app/bsky/contact/removeData.json
new file mode 100644
index 0000000000..de8a938336
--- /dev/null
+++ b/lexicons/app/bsky/contact/removeData.json
@@ -0,0 +1,33 @@
+{
+ "id": "app.bsky.contact.removeData",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "properties": {}
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidDid"
+ },
+ {
+ "name": "InternalError"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "properties": {}
+ },
+ "encoding": "application/json"
+ },
+ "description": "Removes all stored hashes used for contact matching, existing matches, and sync status. Requires authentication."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/contact/sendNotification.json b/lexicons/app/bsky/contact/sendNotification.json
new file mode 100644
index 0000000000..400120ce6f
--- /dev/null
+++ b/lexicons/app/bsky/contact/sendNotification.json
@@ -0,0 +1,40 @@
+{
+ "id": "app.bsky.contact.sendNotification",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "from",
+ "to"
+ ],
+ "properties": {
+ "to": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of who this notification should go to."
+ },
+ "from": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of who this notification comes from."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "output": {
+ "schema": {
+ "type": "object",
+ "properties": {}
+ },
+ "encoding": "application/json"
+ },
+ "description": "System endpoint to send notifications related to contact imports. Requires role authentication."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/contact/startPhoneVerification.json b/lexicons/app/bsky/contact/startPhoneVerification.json
new file mode 100644
index 0000000000..d2dcad8769
--- /dev/null
+++ b/lexicons/app/bsky/contact/startPhoneVerification.json
@@ -0,0 +1,47 @@
+{
+ "id": "app.bsky.contact.startPhoneVerification",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "phone"
+ ],
+ "properties": {
+ "phone": {
+ "type": "string",
+ "description": "The phone number to receive the code via SMS."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "RateLimitExceeded"
+ },
+ {
+ "name": "InvalidDid"
+ },
+ {
+ "name": "InvalidPhone"
+ },
+ {
+ "name": "InternalError"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "properties": {}
+ },
+ "encoding": "application/json"
+ },
+ "description": "Starts a phone verification flow. The phone passed will receive a code via SMS that should be passed to `app.bsky.contact.verifyPhone`. Requires authentication."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/contact/verifyPhone.json b/lexicons/app/bsky/contact/verifyPhone.json
new file mode 100644
index 0000000000..20386c25f6
--- /dev/null
+++ b/lexicons/app/bsky/contact/verifyPhone.json
@@ -0,0 +1,63 @@
+{
+ "id": "app.bsky.contact.verifyPhone",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "phone",
+ "code"
+ ],
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "The code received via SMS as a result of the call to `app.bsky.contact.startPhoneVerification`."
+ },
+ "phone": {
+ "type": "string",
+ "description": "The phone number to verify. Should be the same as the one passed to `app.bsky.contact.startPhoneVerification`."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "RateLimitExceeded"
+ },
+ {
+ "name": "InvalidDid"
+ },
+ {
+ "name": "InvalidPhone"
+ },
+ {
+ "name": "InvalidCode"
+ },
+ {
+ "name": "InternalError"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "token"
+ ],
+ "properties": {
+ "token": {
+ "type": "string",
+ "description": "JWT to be used in a call to `app.bsky.contact.importContacts`. It is only valid for a single call."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Verifies control over a phone number with a code received via SMS and starts a contact import session. Requires authentication."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/draft/createDraft.json b/lexicons/app/bsky/draft/createDraft.json
new file mode 100644
index 0000000000..d3c5c830bf
--- /dev/null
+++ b/lexicons/app/bsky/draft/createDraft.json
@@ -0,0 +1,48 @@
+{
+ "id": "app.bsky.draft.createDraft",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "draft"
+ ],
+ "properties": {
+ "draft": {
+ "ref": "app.bsky.draft.defs#draft",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "DraftLimitReached",
+ "description": "Trying to insert a new draft when the limit was already reached."
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "id"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "format": "tid",
+ "description": "The ID of the created draft."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Inserts a draft using private storage (stash). An upper limit of drafts might be enforced. Requires authentication."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/draft/defs.json b/lexicons/app/bsky/draft/defs.json
new file mode 100644
index 0000000000..507432944d
--- /dev/null
+++ b/lexicons/app/bsky/draft/defs.json
@@ -0,0 +1,296 @@
+{
+ "id": "app.bsky.draft.defs",
+ "defs": {
+ "draft": {
+ "type": "object",
+ "required": [
+ "posts"
+ ],
+ "properties": {
+ "langs": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "language"
+ },
+ "maxLength": 3,
+ "description": "Indicates human language of posts primary text content."
+ },
+ "posts": {
+ "type": "array",
+ "items": {
+ "ref": "#draftPost",
+ "type": "ref"
+ },
+ "maxLength": 100,
+ "minLength": 1,
+ "description": "Array of draft posts that compose this draft."
+ },
+ "deviceId": {
+ "type": "string",
+ "maxLength": 100,
+ "description": "UUIDv4 identifier of the device that created this draft."
+ },
+ "deviceName": {
+ "type": "string",
+ "maxLength": 100,
+ "description": "The device and/or platform on which the draft was created."
+ },
+ "threadgateAllow": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "app.bsky.feed.threadgate#mentionRule",
+ "app.bsky.feed.threadgate#followerRule",
+ "app.bsky.feed.threadgate#followingRule",
+ "app.bsky.feed.threadgate#listRule"
+ ],
+ "type": "union"
+ },
+ "maxLength": 5,
+ "description": "Allow-rules for the threadgate to be created when this draft is published."
+ },
+ "postgateEmbeddingRules": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "app.bsky.feed.postgate#disableRule"
+ ],
+ "type": "union"
+ },
+ "maxLength": 5,
+ "description": "Embedding rules for the postgates to be created when this draft is published."
+ }
+ },
+ "description": "A draft containing an array of draft posts."
+ },
+ "draftPost": {
+ "type": "object",
+ "required": [
+ "text"
+ ],
+ "properties": {
+ "text": {
+ "type": "string",
+ "maxLength": 10000,
+ "description": "The primary post content. It has a higher limit than post contents to allow storing a larger text that can later be refined into smaller posts.",
+ "maxGraphemes": 1000
+ },
+ "labels": {
+ "refs": [
+ "com.atproto.label.defs#selfLabels"
+ ],
+ "type": "union",
+ "description": "Self-label values for this post. Effectively content warnings."
+ },
+ "embedImages": {
+ "type": "array",
+ "items": {
+ "ref": "#draftEmbedImage",
+ "type": "ref"
+ },
+ "maxLength": 4
+ },
+ "embedVideos": {
+ "type": "array",
+ "items": {
+ "ref": "#draftEmbedVideo",
+ "type": "ref"
+ },
+ "maxLength": 1
+ },
+ "embedGallery": {
+ "ref": "#draftEmbedGallery",
+ "type": "ref"
+ },
+ "embedRecords": {
+ "type": "array",
+ "items": {
+ "ref": "#draftEmbedRecord",
+ "type": "ref"
+ },
+ "maxLength": 1
+ },
+ "embedExternals": {
+ "type": "array",
+ "items": {
+ "ref": "#draftEmbedExternal",
+ "type": "ref"
+ },
+ "maxLength": 1
+ }
+ },
+ "description": "One of the posts that compose a draft."
+ },
+ "draftView": {
+ "type": "object",
+ "required": [
+ "id",
+ "draft",
+ "createdAt",
+ "updatedAt"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "format": "tid",
+ "description": "A TID to be used as a draft identifier."
+ },
+ "draft": {
+ "ref": "#draft",
+ "type": "ref"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "The time the draft was created."
+ },
+ "updatedAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "The time the draft was last updated."
+ }
+ },
+ "description": "View to present drafts data to users."
+ },
+ "draftWithId": {
+ "type": "object",
+ "required": [
+ "id",
+ "draft"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "format": "tid",
+ "description": "A TID to be used as a draft identifier."
+ },
+ "draft": {
+ "ref": "#draft",
+ "type": "ref"
+ }
+ },
+ "description": "A draft with an identifier, used to store drafts in private storage (stash)."
+ },
+ "draftEmbedImage": {
+ "type": "object",
+ "required": [
+ "localRef"
+ ],
+ "properties": {
+ "alt": {
+ "type": "string",
+ "maxGraphemes": 2000
+ },
+ "localRef": {
+ "ref": "#draftEmbedLocalRef",
+ "type": "ref"
+ }
+ }
+ },
+ "draftEmbedVideo": {
+ "type": "object",
+ "required": [
+ "localRef"
+ ],
+ "properties": {
+ "alt": {
+ "type": "string",
+ "maxGraphemes": 2000
+ },
+ "captions": {
+ "type": "array",
+ "items": {
+ "ref": "#draftEmbedCaption",
+ "type": "ref"
+ },
+ "maxLength": 20
+ },
+ "localRef": {
+ "ref": "#draftEmbedLocalRef",
+ "type": "ref"
+ }
+ }
+ },
+ "draftEmbedRecord": {
+ "type": "object",
+ "required": [
+ "record"
+ ],
+ "properties": {
+ "record": {
+ "ref": "com.atproto.repo.strongRef",
+ "type": "ref"
+ }
+ }
+ },
+ "draftEmbedCaption": {
+ "type": "object",
+ "required": [
+ "lang",
+ "content"
+ ],
+ "properties": {
+ "lang": {
+ "type": "string",
+ "format": "language"
+ },
+ "content": {
+ "type": "string",
+ "maxLength": 10000
+ }
+ }
+ },
+ "draftEmbedGallery": {
+ "type": "object",
+ "required": [
+ "items"
+ ],
+ "properties": {
+ "items": {
+ "ref": "#draftEmbedGalleryItems",
+ "type": "ref"
+ }
+ }
+ },
+ "draftEmbedExternal": {
+ "type": "object",
+ "required": [
+ "uri"
+ ],
+ "properties": {
+ "uri": {
+ "type": "string",
+ "format": "uri"
+ }
+ }
+ },
+ "draftEmbedLocalRef": {
+ "type": "object",
+ "required": [
+ "path"
+ ],
+ "properties": {
+ "path": {
+ "type": "string",
+ "maxLength": 1024,
+ "minLength": 1,
+ "description": "Local, on-device ref to file to be embedded. Embeds are currently device-bound for drafts."
+ }
+ }
+ },
+ "draftEmbedGalleryItems": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "#draftEmbedImage"
+ ],
+ "type": "union"
+ },
+ "maxLength": 20,
+ "description": "The schema-level maxLength of 20 is a future-proof ceiling. Clients should currently enforce a soft limit of 10 items in authoring UIs."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/draft/deleteDraft.json b/lexicons/app/bsky/draft/deleteDraft.json
new file mode 100644
index 0000000000..a88f3d48d2
--- /dev/null
+++ b/lexicons/app/bsky/draft/deleteDraft.json
@@ -0,0 +1,26 @@
+{
+ "id": "app.bsky.draft.deleteDraft",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "id"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "format": "tid"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Deletes a draft by ID. Requires authentication."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/draft/getDrafts.json b/lexicons/app/bsky/draft/getDrafts.json
new file mode 100644
index 0000000000..aba35d59f8
--- /dev/null
+++ b/lexicons/app/bsky/draft/getDrafts.json
@@ -0,0 +1,46 @@
+{
+ "id": "app.bsky.draft.getDrafts",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "drafts"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "drafts": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.draft.defs#draftView",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Gets views of user drafts. Requires authentication."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/draft/updateDraft.json b/lexicons/app/bsky/draft/updateDraft.json
new file mode 100644
index 0000000000..a99f331e1b
--- /dev/null
+++ b/lexicons/app/bsky/draft/updateDraft.json
@@ -0,0 +1,26 @@
+{
+ "id": "app.bsky.draft.updateDraft",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "draft"
+ ],
+ "properties": {
+ "draft": {
+ "ref": "app.bsky.draft.defs#draftWithId",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Updates a draft using private storage (stash). If the draft ID points to a non-existing ID, the update will be silently ignored. This is done because updates don't enforce draft limit, so it accepts all writes, but will ignore invalid ones. Requires authentication."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/embed/defs.json b/lexicons/app/bsky/embed/defs.json
new file mode 100644
index 0000000000..9aff68864c
--- /dev/null
+++ b/lexicons/app/bsky/embed/defs.json
@@ -0,0 +1,25 @@
+{
+ "id": "app.bsky.embed.defs",
+ "defs": {
+ "aspectRatio": {
+ "type": "object",
+ "required": [
+ "width",
+ "height"
+ ],
+ "properties": {
+ "width": {
+ "type": "integer",
+ "minimum": 1
+ },
+ "height": {
+ "type": "integer",
+ "minimum": 1
+ }
+ },
+ "description": "width:height represents an aspect ratio. It may be approximate, and may not correspond to absolute dimensions in any given unit."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/embed/external.json b/lexicons/app/bsky/embed/external.json
new file mode 100644
index 0000000000..d4bd886490
--- /dev/null
+++ b/lexicons/app/bsky/embed/external.json
@@ -0,0 +1,210 @@
+{
+ "id": "app.bsky.embed.external",
+ "defs": {
+ "main": {
+ "type": "object",
+ "required": [
+ "external"
+ ],
+ "properties": {
+ "external": {
+ "ref": "#external",
+ "type": "ref"
+ }
+ },
+ "description": "A representation of some externally linked content (eg, a URL and 'card'), embedded in a Bluesky record (eg, a post)."
+ },
+ "view": {
+ "type": "object",
+ "required": [
+ "external"
+ ],
+ "properties": {
+ "external": {
+ "ref": "#viewExternal",
+ "type": "ref"
+ }
+ }
+ },
+ "colorRGB": {
+ "type": "object",
+ "required": [
+ "r",
+ "g",
+ "b"
+ ],
+ "properties": {
+ "b": {
+ "type": "integer",
+ "maximum": 255,
+ "minimum": 0
+ },
+ "g": {
+ "type": "integer",
+ "maximum": 255,
+ "minimum": 0
+ },
+ "r": {
+ "type": "integer",
+ "maximum": 255,
+ "minimum": 0
+ }
+ },
+ "description": "RGB color definition, inspired by site.standard.theme.color#rgb"
+ },
+ "external": {
+ "type": "object",
+ "required": [
+ "uri",
+ "title",
+ "description"
+ ],
+ "properties": {
+ "uri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "thumb": {
+ "type": "blob",
+ "accept": [
+ "image/*"
+ ],
+ "maxSize": 1000000
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "associatedRefs": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.repo.strongRef",
+ "type": "ref"
+ },
+ "description": "StrongRefs (uri+cid) of the Atmosphere records that backed this view."
+ }
+ }
+ },
+ "viewExternal": {
+ "type": "object",
+ "required": [
+ "uri",
+ "title",
+ "description"
+ ],
+ "properties": {
+ "uri": {
+ "type": "string",
+ "format": "uri"
+ },
+ "thumb": {
+ "type": "string",
+ "format": "uri"
+ },
+ "title": {
+ "type": "string"
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.label.defs#label",
+ "type": "ref"
+ }
+ },
+ "source": {
+ "ref": "#viewExternalSource",
+ "type": "ref"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "When the external content was created, if available. Example: a publication date, for an article."
+ },
+ "updatedAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "When the external content was updated, if available."
+ },
+ "description": {
+ "type": "string"
+ },
+ "readingTime": {
+ "type": "integer",
+ "description": "Estimated reading time in minutes, if applicable and available."
+ },
+ "associatedRefs": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.repo.strongRef",
+ "type": "ref"
+ },
+ "description": "StrongRefs (uri+cid) of the Atmosphere records that backed this view."
+ },
+ "associatedProfiles": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ },
+ "description": "Profiles of the owners of the Atmosphere records that backed this view."
+ }
+ }
+ },
+ "viewExternalSource": {
+ "type": "object",
+ "required": [
+ "uri",
+ "title"
+ ],
+ "properties": {
+ "uri": {
+ "type": "string",
+ "format": "uri",
+ "description": "URI of the source, if available. Example: the https:// URL of a site.standard.publication record."
+ },
+ "icon": {
+ "type": "string",
+ "format": "uri",
+ "description": "Fully-qualified URL where an icon representing the source can be fetched. For example, CDN location provided by the App View."
+ },
+ "theme": {
+ "ref": "#viewExternalSourceTheme",
+ "type": "ref"
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ }
+ },
+ "description": "The source of an external embed, such as a standard.site publication."
+ },
+ "viewExternalSourceTheme": {
+ "type": "object",
+ "properties": {
+ "accentRGB": {
+ "ref": "#colorRGB",
+ "type": "ref"
+ },
+ "backgroundRGB": {
+ "ref": "#colorRGB",
+ "type": "ref"
+ },
+ "foregroundRGB": {
+ "ref": "#colorRGB",
+ "type": "ref"
+ },
+ "accentForegroundRGB": {
+ "ref": "#colorRGB",
+ "type": "ref"
+ }
+ },
+ "description": "The theme colors of an external source, such as a site.standard.publication. These colors may be used when rendering an embed from that source."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/embed/gallery.json b/lexicons/app/bsky/embed/gallery.json
new file mode 100644
index 0000000000..39f8a3024e
--- /dev/null
+++ b/lexicons/app/bsky/embed/gallery.json
@@ -0,0 +1,99 @@
+{
+ "id": "app.bsky.embed.gallery",
+ "defs": {
+ "main": {
+ "type": "object",
+ "required": [
+ "items"
+ ],
+ "properties": {
+ "items": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "#image"
+ ],
+ "type": "union",
+ "description": "The media items in the gallery. Each item may be of a different type, but all types must be supported by the client."
+ },
+ "maxLength": 20,
+ "description": "The schema-level maxLength of 20 is a future-proof ceiling. Clients should currently enforce a soft limit of 10 items in authoring UIs."
+ }
+ }
+ },
+ "view": {
+ "type": "object",
+ "required": [
+ "items"
+ ],
+ "properties": {
+ "items": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "#viewImage"
+ ],
+ "type": "union"
+ }
+ }
+ }
+ },
+ "image": {
+ "type": "object",
+ "required": [
+ "image",
+ "alt",
+ "aspectRatio"
+ ],
+ "properties": {
+ "alt": {
+ "type": "string",
+ "description": "Alt text description of the image, for accessibility."
+ },
+ "image": {
+ "type": "blob",
+ "accept": [
+ "image/*"
+ ],
+ "maxSize": 2000000
+ },
+ "aspectRatio": {
+ "ref": "app.bsky.embed.defs#aspectRatio",
+ "type": "ref"
+ }
+ }
+ },
+ "viewImage": {
+ "type": "object",
+ "required": [
+ "thumbnail",
+ "fullsize",
+ "alt",
+ "aspectRatio"
+ ],
+ "properties": {
+ "alt": {
+ "type": "string",
+ "description": "Alt text description of the image, for accessibility."
+ },
+ "fullsize": {
+ "type": "string",
+ "format": "uri",
+ "description": "Fully-qualified URL where a large version of the image can be fetched. May or may not be the exact original blob. For example, CDN location provided by the App View."
+ },
+ "thumbnail": {
+ "type": "string",
+ "format": "uri",
+ "description": "Fully-qualified URL where a thumbnail of the image can be fetched. For example, CDN location provided by the App View."
+ },
+ "aspectRatio": {
+ "ref": "app.bsky.embed.defs#aspectRatio",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1,
+ "description": "An assortment of media embedded in a Bluesky record (eg, a post)."
+}
diff --git a/lexicons/app/bsky/embed/getEmbedExternalView.json b/lexicons/app/bsky/embed/getEmbedExternalView.json
new file mode 100644
index 0000000000..7b60eb3fc9
--- /dev/null
+++ b/lexicons/app/bsky/embed/getEmbedExternalView.json
@@ -0,0 +1,62 @@
+{
+ "id": "app.bsky.embed.getEmbedExternalView",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "view": {
+ "ref": "app.bsky.embed.external#view",
+ "type": "ref",
+ "description": "Hydrated view of the embed. Present only when the resolved records back the requested URL and supply enough information to populate the required `viewExternal` fields. Omitted alongside the rest of the response when no records resolved or validation failed."
+ },
+ "associatedRefs": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.repo.strongRef",
+ "type": "ref"
+ },
+ "description": "StrongRefs (URI+CID) of the Atmosphere records that backed this view, suitable for embedding into a post's external.associatedRefs."
+ },
+ "associatedRecords": {
+ "type": "array",
+ "items": {
+ "type": "unknown",
+ "description": "The raw record data of the Atmosphere records that backed this view. This is returned for convenience, to avoid the need for the client to separately fetch the record data for the associatedRefs. Example: the site.standard.document and site.standard.publication records that backed this view."
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "url",
+ "uris"
+ ],
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "description": "The canonical web URL the embed represents (typically the URL the user pasted into the composer). Used as the returned view's `uri`. May be used for validation in the future."
+ },
+ "uris": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "maxLength": 4,
+ "description": "AT-URIs of any Atmosphere records that can be resolved and used to construct #externalView views. Example: a site.standard.document and optionally its associated site.standard.publication."
+ }
+ }
+ },
+ "description": "Resolve one or more AT-URIs into the data needed to render an enhanced external embed. Returns `associatedRefs` (strongRefs to embed into a post's external.associatedRefs), the raw `associatedRecords`, and a hydrated `view`. The response is empty (`{}`) when no records were resolvable, or when validation determined the resolved records don't actually back the requested URL; clients should fall back to their own link-card rendering in that case and skip writing strongRefs to the post."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/embed/images.json b/lexicons/app/bsky/embed/images.json
new file mode 100644
index 0000000000..7f9c30c263
--- /dev/null
+++ b/lexicons/app/bsky/embed/images.json
@@ -0,0 +1,93 @@
+{
+ "id": "app.bsky.embed.images",
+ "defs": {
+ "main": {
+ "type": "object",
+ "required": [
+ "images"
+ ],
+ "properties": {
+ "images": {
+ "type": "array",
+ "items": {
+ "ref": "#image",
+ "type": "ref"
+ },
+ "maxLength": 4
+ }
+ }
+ },
+ "view": {
+ "type": "object",
+ "required": [
+ "images"
+ ],
+ "properties": {
+ "images": {
+ "type": "array",
+ "items": {
+ "ref": "#viewImage",
+ "type": "ref"
+ },
+ "maxLength": 4
+ }
+ }
+ },
+ "image": {
+ "type": "object",
+ "required": [
+ "image",
+ "alt"
+ ],
+ "properties": {
+ "alt": {
+ "type": "string",
+ "description": "Alt text description of the image, for accessibility."
+ },
+ "image": {
+ "type": "blob",
+ "accept": [
+ "image/*"
+ ],
+ "maxSize": 2000000,
+ "description": "The raw image file. May be up to 2 MB, formerly limited to 1 MB."
+ },
+ "aspectRatio": {
+ "ref": "app.bsky.embed.defs#aspectRatio",
+ "type": "ref"
+ }
+ }
+ },
+ "viewImage": {
+ "type": "object",
+ "required": [
+ "thumb",
+ "fullsize",
+ "alt"
+ ],
+ "properties": {
+ "alt": {
+ "type": "string",
+ "description": "Alt text description of the image, for accessibility."
+ },
+ "thumb": {
+ "type": "string",
+ "format": "uri",
+ "description": "Fully-qualified URL where a thumbnail of the image can be fetched. For example, CDN location provided by the App View."
+ },
+ "fullsize": {
+ "type": "string",
+ "format": "uri",
+ "description": "Fully-qualified URL where a large version of the image can be fetched. May or may not be the exact original blob. For example, CDN location provided by the App View."
+ },
+ "aspectRatio": {
+ "ref": "app.bsky.embed.defs#aspectRatio",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1,
+ "description": "A set of images embedded in a Bluesky record (eg, a post)."
+}
diff --git a/lexicons/app/bsky/embed/record.json b/lexicons/app/bsky/embed/record.json
new file mode 100644
index 0000000000..3aef654207
--- /dev/null
+++ b/lexicons/app/bsky/embed/record.json
@@ -0,0 +1,162 @@
+{
+ "id": "app.bsky.embed.record",
+ "defs": {
+ "main": {
+ "type": "object",
+ "required": [
+ "record"
+ ],
+ "properties": {
+ "record": {
+ "ref": "com.atproto.repo.strongRef",
+ "type": "ref"
+ }
+ }
+ },
+ "view": {
+ "type": "object",
+ "required": [
+ "record"
+ ],
+ "properties": {
+ "record": {
+ "refs": [
+ "#viewRecord",
+ "#viewNotFound",
+ "#viewBlocked",
+ "#viewDetached",
+ "app.bsky.feed.defs#generatorView",
+ "app.bsky.graph.defs#listView",
+ "app.bsky.labeler.defs#labelerView",
+ "app.bsky.graph.defs#starterPackViewBasic"
+ ],
+ "type": "union"
+ }
+ }
+ },
+ "viewRecord": {
+ "type": "object",
+ "required": [
+ "uri",
+ "cid",
+ "author",
+ "value",
+ "indexedAt"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "value": {
+ "type": "unknown",
+ "description": "The record data itself."
+ },
+ "author": {
+ "ref": "app.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ },
+ "embeds": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "app.bsky.embed.images#view",
+ "app.bsky.embed.video#view",
+ "app.bsky.embed.gallery#view",
+ "app.bsky.embed.external#view",
+ "app.bsky.embed.record#view",
+ "app.bsky.embed.recordWithMedia#view"
+ ],
+ "type": "union"
+ }
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.label.defs#label",
+ "type": "ref"
+ }
+ },
+ "indexedAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "likeCount": {
+ "type": "integer"
+ },
+ "quoteCount": {
+ "type": "integer"
+ },
+ "replyCount": {
+ "type": "integer"
+ },
+ "repostCount": {
+ "type": "integer"
+ }
+ }
+ },
+ "viewBlocked": {
+ "type": "object",
+ "required": [
+ "uri",
+ "blocked",
+ "author"
+ ],
+ "properties": {
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "author": {
+ "ref": "app.bsky.feed.defs#blockedAuthor",
+ "type": "ref"
+ },
+ "blocked": {
+ "type": "boolean",
+ "const": true
+ }
+ }
+ },
+ "viewDetached": {
+ "type": "object",
+ "required": [
+ "uri",
+ "detached"
+ ],
+ "properties": {
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "detached": {
+ "type": "boolean",
+ "const": true
+ }
+ }
+ },
+ "viewNotFound": {
+ "type": "object",
+ "required": [
+ "uri",
+ "notFound"
+ ],
+ "properties": {
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "notFound": {
+ "type": "boolean",
+ "const": true
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1,
+ "description": "A representation of a record embedded in a Bluesky record (eg, a post). For example, a quote-post, or sharing a feed generator record."
+}
diff --git a/lexicons/app/bsky/embed/recordWithMedia.json b/lexicons/app/bsky/embed/recordWithMedia.json
new file mode 100644
index 0000000000..76da14a364
--- /dev/null
+++ b/lexicons/app/bsky/embed/recordWithMedia.json
@@ -0,0 +1,52 @@
+{
+ "id": "app.bsky.embed.recordWithMedia",
+ "defs": {
+ "main": {
+ "type": "object",
+ "required": [
+ "record",
+ "media"
+ ],
+ "properties": {
+ "media": {
+ "refs": [
+ "app.bsky.embed.images",
+ "app.bsky.embed.video",
+ "app.bsky.embed.gallery",
+ "app.bsky.embed.external"
+ ],
+ "type": "union"
+ },
+ "record": {
+ "ref": "app.bsky.embed.record",
+ "type": "ref"
+ }
+ }
+ },
+ "view": {
+ "type": "object",
+ "required": [
+ "record",
+ "media"
+ ],
+ "properties": {
+ "media": {
+ "refs": [
+ "app.bsky.embed.images#view",
+ "app.bsky.embed.video#view",
+ "app.bsky.embed.gallery#view",
+ "app.bsky.embed.external#view"
+ ],
+ "type": "union"
+ },
+ "record": {
+ "ref": "app.bsky.embed.record#view",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1,
+ "description": "A representation of a record embedded in a Bluesky record (eg, a post), alongside other compatible embeds. For example, a quote post and image, or a quote post and external URL card."
+}
diff --git a/lexicons/app/bsky/embed/video.json b/lexicons/app/bsky/embed/video.json
new file mode 100644
index 0000000000..67278da9c2
--- /dev/null
+++ b/lexicons/app/bsky/embed/video.json
@@ -0,0 +1,108 @@
+{
+ "id": "app.bsky.embed.video",
+ "defs": {
+ "main": {
+ "type": "object",
+ "required": [
+ "video"
+ ],
+ "properties": {
+ "alt": {
+ "type": "string",
+ "maxLength": 10000,
+ "description": "Alt text description of the video, for accessibility.",
+ "maxGraphemes": 1000
+ },
+ "video": {
+ "type": "blob",
+ "accept": [
+ "video/mp4"
+ ],
+ "maxSize": 100000000,
+ "description": "The mp4 video file. May be up to 100mb, formerly limited to 50mb."
+ },
+ "captions": {
+ "type": "array",
+ "items": {
+ "ref": "#caption",
+ "type": "ref"
+ },
+ "maxLength": 20
+ },
+ "aspectRatio": {
+ "ref": "app.bsky.embed.defs#aspectRatio",
+ "type": "ref"
+ },
+ "presentation": {
+ "type": "string",
+ "description": "A hint to the client about how to present the video.",
+ "knownValues": [
+ "default",
+ "gif"
+ ]
+ }
+ }
+ },
+ "view": {
+ "type": "object",
+ "required": [
+ "cid",
+ "playlist"
+ ],
+ "properties": {
+ "alt": {
+ "type": "string",
+ "maxLength": 10000,
+ "maxGraphemes": 1000
+ },
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "playlist": {
+ "type": "string",
+ "format": "uri"
+ },
+ "thumbnail": {
+ "type": "string",
+ "format": "uri"
+ },
+ "aspectRatio": {
+ "ref": "app.bsky.embed.defs#aspectRatio",
+ "type": "ref"
+ },
+ "presentation": {
+ "type": "string",
+ "description": "A hint to the client about how to present the video.",
+ "knownValues": [
+ "default",
+ "gif"
+ ]
+ }
+ }
+ },
+ "caption": {
+ "type": "object",
+ "required": [
+ "lang",
+ "file"
+ ],
+ "properties": {
+ "file": {
+ "type": "blob",
+ "accept": [
+ "text/vtt"
+ ],
+ "maxSize": 20000
+ },
+ "lang": {
+ "type": "string",
+ "format": "language"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1,
+ "description": "A video embedded in a Bluesky record (eg, a post)."
+}
diff --git a/lexicons/app/bsky/feed/defs.json b/lexicons/app/bsky/feed/defs.json
new file mode 100644
index 0000000000..a59b32914d
--- /dev/null
+++ b/lexicons/app/bsky/feed/defs.json
@@ -0,0 +1,572 @@
+{
+ "id": "app.bsky.feed.defs",
+ "defs": {
+ "postView": {
+ "type": "object",
+ "required": [
+ "uri",
+ "cid",
+ "author",
+ "record",
+ "indexedAt"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "debug": {
+ "type": "unknown",
+ "description": "Debug information for internal development"
+ },
+ "embed": {
+ "refs": [
+ "app.bsky.embed.images#view",
+ "app.bsky.embed.video#view",
+ "app.bsky.embed.gallery#view",
+ "app.bsky.embed.external#view",
+ "app.bsky.embed.record#view",
+ "app.bsky.embed.recordWithMedia#view"
+ ],
+ "type": "union"
+ },
+ "author": {
+ "ref": "app.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.label.defs#label",
+ "type": "ref"
+ }
+ },
+ "record": {
+ "type": "unknown"
+ },
+ "viewer": {
+ "ref": "#viewerState",
+ "type": "ref"
+ },
+ "indexedAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "likeCount": {
+ "type": "integer"
+ },
+ "quoteCount": {
+ "type": "integer"
+ },
+ "replyCount": {
+ "type": "integer"
+ },
+ "threadgate": {
+ "ref": "#threadgateView",
+ "type": "ref"
+ },
+ "repostCount": {
+ "type": "integer"
+ },
+ "bookmarkCount": {
+ "type": "integer"
+ }
+ }
+ },
+ "replyRef": {
+ "type": "object",
+ "required": [
+ "root",
+ "parent"
+ ],
+ "properties": {
+ "root": {
+ "refs": [
+ "#postView",
+ "#notFoundPost",
+ "#blockedPost"
+ ],
+ "type": "union"
+ },
+ "parent": {
+ "refs": [
+ "#postView",
+ "#notFoundPost",
+ "#blockedPost"
+ ],
+ "type": "union"
+ },
+ "grandparentAuthor": {
+ "ref": "app.bsky.actor.defs#profileViewBasic",
+ "type": "ref",
+ "description": "When parent is a reply to another post, this is the author of that post."
+ }
+ }
+ },
+ "reasonPin": {
+ "type": "object",
+ "properties": {}
+ },
+ "blockedPost": {
+ "type": "object",
+ "required": [
+ "uri",
+ "blocked",
+ "author"
+ ],
+ "properties": {
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "author": {
+ "ref": "#blockedAuthor",
+ "type": "ref"
+ },
+ "blocked": {
+ "type": "boolean",
+ "const": true
+ }
+ }
+ },
+ "interaction": {
+ "type": "object",
+ "properties": {
+ "item": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "event": {
+ "type": "string",
+ "knownValues": [
+ "app.bsky.feed.defs#requestLess",
+ "app.bsky.feed.defs#requestMore",
+ "app.bsky.feed.defs#clickthroughItem",
+ "app.bsky.feed.defs#clickthroughAuthor",
+ "app.bsky.feed.defs#clickthroughReposter",
+ "app.bsky.feed.defs#clickthroughEmbed",
+ "app.bsky.feed.defs#interactionSeen",
+ "app.bsky.feed.defs#interactionLike",
+ "app.bsky.feed.defs#interactionRepost",
+ "app.bsky.feed.defs#interactionReply",
+ "app.bsky.feed.defs#interactionQuote",
+ "app.bsky.feed.defs#interactionShare"
+ ]
+ },
+ "reqId": {
+ "type": "string",
+ "maxLength": 100,
+ "description": "Unique identifier per request that may be passed back alongside interactions."
+ },
+ "feedContext": {
+ "type": "string",
+ "maxLength": 2000,
+ "description": "Context on a feed item that was originally supplied by the feed generator on getFeedSkeleton."
+ }
+ }
+ },
+ "requestLess": {
+ "type": "token",
+ "description": "Request that less content like the given feed item be shown in the feed"
+ },
+ "requestMore": {
+ "type": "token",
+ "description": "Request that more content like the given feed item be shown in the feed"
+ },
+ "viewerState": {
+ "type": "object",
+ "properties": {
+ "like": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "pinned": {
+ "type": "boolean"
+ },
+ "repost": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "bookmarked": {
+ "type": "boolean"
+ },
+ "threadMuted": {
+ "type": "boolean"
+ },
+ "replyDisabled": {
+ "type": "boolean"
+ },
+ "embeddingDisabled": {
+ "type": "boolean"
+ },
+ "knownLikers": {
+ "description": "This property is present only in selected cases, as an optimization.",
+ "type": "ref",
+ "ref": "#knownLikers"
+ }
+ },
+ "description": "Metadata about the requesting account's relationship with the subject content. Only has meaningful content for authed requests."
+ },
+ "knownLikers": {
+ "type": "object",
+ "description": "The post's likers whom you also follow",
+ "required": [
+ "count",
+ "actors"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer"
+ },
+ "actors": {
+ "type": "array",
+ "minLength": 0,
+ "maxLength": 5,
+ "items": {
+ "type": "ref",
+ "ref": "app.bsky.actor.defs#profileViewBasic"
+ }
+ }
+ }
+ },
+ "feedViewPost": {
+ "type": "object",
+ "required": [
+ "post"
+ ],
+ "properties": {
+ "post": {
+ "ref": "#postView",
+ "type": "ref"
+ },
+ "reply": {
+ "ref": "#replyRef",
+ "type": "ref"
+ },
+ "reqId": {
+ "type": "string",
+ "maxLength": 100,
+ "description": "Unique identifier per request that may be passed back alongside interactions."
+ },
+ "reason": {
+ "refs": [
+ "#reasonRepost",
+ "#reasonPin"
+ ],
+ "type": "union"
+ },
+ "feedContext": {
+ "type": "string",
+ "maxLength": 2000,
+ "description": "Context provided by feed generator that may be passed back alongside interactions."
+ }
+ }
+ },
+ "notFoundPost": {
+ "type": "object",
+ "required": [
+ "uri",
+ "notFound"
+ ],
+ "properties": {
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "notFound": {
+ "type": "boolean",
+ "const": true
+ }
+ }
+ },
+ "reasonRepost": {
+ "type": "object",
+ "required": [
+ "by",
+ "indexedAt"
+ ],
+ "properties": {
+ "by": {
+ "ref": "app.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ },
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "indexedAt": {
+ "type": "string",
+ "format": "datetime"
+ }
+ }
+ },
+ "blockedAuthor": {
+ "type": "object",
+ "required": [
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "viewer": {
+ "ref": "app.bsky.actor.defs#viewerState",
+ "type": "ref"
+ }
+ }
+ },
+ "generatorView": {
+ "type": "object",
+ "required": [
+ "uri",
+ "cid",
+ "did",
+ "creator",
+ "displayName",
+ "indexedAt"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "avatar": {
+ "type": "string",
+ "format": "uri"
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.label.defs#label",
+ "type": "ref"
+ }
+ },
+ "viewer": {
+ "ref": "#generatorViewerState",
+ "type": "ref"
+ },
+ "creator": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ },
+ "indexedAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "likeCount": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "contentMode": {
+ "type": "string",
+ "knownValues": [
+ "app.bsky.feed.defs#contentModeUnspecified",
+ "app.bsky.feed.defs#contentModeVideo"
+ ]
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 3000,
+ "maxGraphemes": 300
+ },
+ "displayName": {
+ "type": "string"
+ },
+ "descriptionFacets": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.richtext.facet",
+ "type": "ref"
+ }
+ },
+ "acceptsInteractions": {
+ "type": "boolean"
+ }
+ }
+ },
+ "threadContext": {
+ "type": "object",
+ "properties": {
+ "rootAuthorLike": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ },
+ "description": "Metadata about this post within the context of the thread it is in."
+ },
+ "threadViewPost": {
+ "type": "object",
+ "required": [
+ "post"
+ ],
+ "properties": {
+ "post": {
+ "ref": "#postView",
+ "type": "ref"
+ },
+ "parent": {
+ "refs": [
+ "#threadViewPost",
+ "#notFoundPost",
+ "#blockedPost"
+ ],
+ "type": "union"
+ },
+ "replies": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "#threadViewPost",
+ "#notFoundPost",
+ "#blockedPost"
+ ],
+ "type": "union"
+ }
+ },
+ "threadContext": {
+ "ref": "#threadContext",
+ "type": "ref"
+ }
+ }
+ },
+ "threadgateView": {
+ "type": "object",
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "lists": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.graph.defs#listViewBasic",
+ "type": "ref"
+ }
+ },
+ "record": {
+ "type": "unknown"
+ }
+ }
+ },
+ "interactionLike": {
+ "type": "token",
+ "description": "User liked the feed item"
+ },
+ "interactionSeen": {
+ "type": "token",
+ "description": "Feed item was seen by user"
+ },
+ "clickthroughItem": {
+ "type": "token",
+ "description": "User clicked through to the feed item"
+ },
+ "contentModeVideo": {
+ "type": "token",
+ "description": "Declares the feed generator returns posts containing app.bsky.embed.video embeds."
+ },
+ "interactionQuote": {
+ "type": "token",
+ "description": "User quoted the feed item"
+ },
+ "interactionReply": {
+ "type": "token",
+ "description": "User replied to the feed item"
+ },
+ "interactionShare": {
+ "type": "token",
+ "description": "User shared the feed item"
+ },
+ "skeletonFeedPost": {
+ "type": "object",
+ "required": [
+ "post"
+ ],
+ "properties": {
+ "post": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "reason": {
+ "refs": [
+ "#skeletonReasonRepost",
+ "#skeletonReasonPin"
+ ],
+ "type": "union"
+ },
+ "feedContext": {
+ "type": "string",
+ "maxLength": 2000,
+ "description": "Context that will be passed through to client and may be passed to feed generator back alongside interactions."
+ }
+ }
+ },
+ "clickthroughEmbed": {
+ "type": "token",
+ "description": "User clicked through to the embedded content of the feed item"
+ },
+ "interactionRepost": {
+ "type": "token",
+ "description": "User reposted the feed item"
+ },
+ "skeletonReasonPin": {
+ "type": "object",
+ "properties": {}
+ },
+ "clickthroughAuthor": {
+ "type": "token",
+ "description": "User clicked through to the author of the feed item"
+ },
+ "clickthroughReposter": {
+ "type": "token",
+ "description": "User clicked through to the reposter of the feed item"
+ },
+ "generatorViewerState": {
+ "type": "object",
+ "properties": {
+ "like": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ }
+ },
+ "skeletonReasonRepost": {
+ "type": "object",
+ "required": [
+ "repost"
+ ],
+ "properties": {
+ "repost": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ }
+ },
+ "contentModeUnspecified": {
+ "type": "token",
+ "description": "Declares the feed generator returns any types of posts."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/describeFeedGenerator.json b/lexicons/app/bsky/feed/describeFeedGenerator.json
new file mode 100644
index 0000000000..1549935910
--- /dev/null
+++ b/lexicons/app/bsky/feed/describeFeedGenerator.json
@@ -0,0 +1,61 @@
+{
+ "id": "app.bsky.feed.describeFeedGenerator",
+ "defs": {
+ "feed": {
+ "type": "object",
+ "required": [
+ "uri"
+ ],
+ "properties": {
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ }
+ },
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "did",
+ "feeds"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "feeds": {
+ "type": "array",
+ "items": {
+ "ref": "#feed",
+ "type": "ref"
+ }
+ },
+ "links": {
+ "ref": "#links",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Get information about a feed generator, including policies and offered feed URIs. Does not require auth; implemented by Feed Generator services (not App View)."
+ },
+ "links": {
+ "type": "object",
+ "properties": {
+ "privacyPolicy": {
+ "type": "string"
+ },
+ "termsOfService": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/generator.json b/lexicons/app/bsky/feed/generator.json
new file mode 100644
index 0000000000..082a6ca372
--- /dev/null
+++ b/lexicons/app/bsky/feed/generator.json
@@ -0,0 +1,73 @@
+{
+ "id": "app.bsky.feed.generator",
+ "defs": {
+ "main": {
+ "key": "any",
+ "type": "record",
+ "record": {
+ "type": "object",
+ "required": [
+ "did",
+ "displayName",
+ "createdAt"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "avatar": {
+ "type": "blob",
+ "accept": [
+ "image/png",
+ "image/jpeg"
+ ],
+ "maxSize": 1000000
+ },
+ "labels": {
+ "refs": [
+ "com.atproto.label.defs#selfLabels"
+ ],
+ "type": "union",
+ "description": "Self-label values"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "contentMode": {
+ "type": "string",
+ "knownValues": [
+ "app.bsky.feed.defs#contentModeUnspecified",
+ "app.bsky.feed.defs#contentModeVideo"
+ ]
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 3000,
+ "maxGraphemes": 300
+ },
+ "displayName": {
+ "type": "string",
+ "maxLength": 240,
+ "maxGraphemes": 24
+ },
+ "descriptionFacets": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.richtext.facet",
+ "type": "ref"
+ }
+ },
+ "acceptsInteractions": {
+ "type": "boolean",
+ "description": "Declaration that a feed accepts feedback interactions from a client through app.bsky.feed.sendInteractions"
+ }
+ }
+ },
+ "description": "Record declaring of the existence of a feed generator, and containing metadata about it. The record can exist in any repository."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/getActorFeeds.json b/lexicons/app/bsky/feed/getActorFeeds.json
new file mode 100644
index 0000000000..f0a41e2cb4
--- /dev/null
+++ b/lexicons/app/bsky/feed/getActorFeeds.json
@@ -0,0 +1,53 @@
+{
+ "id": "app.bsky.feed.getActorFeeds",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "feeds"
+ ],
+ "properties": {
+ "feeds": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.feed.defs#generatorView",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "actor"
+ ],
+ "properties": {
+ "actor": {
+ "type": "string",
+ "format": "at-identifier"
+ },
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Get a list of feeds (feed generator records) created by the actor (in the actor's repo)."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/getActorLikes.json b/lexicons/app/bsky/feed/getActorLikes.json
new file mode 100644
index 0000000000..532b7df2f4
--- /dev/null
+++ b/lexicons/app/bsky/feed/getActorLikes.json
@@ -0,0 +1,61 @@
+{
+ "id": "app.bsky.feed.getActorLikes",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "BlockedActor"
+ },
+ {
+ "name": "BlockedByActor"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "feed"
+ ],
+ "properties": {
+ "feed": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.feed.defs#feedViewPost",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "actor"
+ ],
+ "properties": {
+ "actor": {
+ "type": "string",
+ "format": "at-identifier"
+ },
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Get a list of posts liked by an actor. Requires auth, actor must be the requesting account."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/getAuthorFeed.json b/lexicons/app/bsky/feed/getAuthorFeed.json
new file mode 100644
index 0000000000..4d113c3123
--- /dev/null
+++ b/lexicons/app/bsky/feed/getAuthorFeed.json
@@ -0,0 +1,77 @@
+{
+ "id": "app.bsky.feed.getAuthorFeed",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "BlockedActor"
+ },
+ {
+ "name": "BlockedByActor"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "feed"
+ ],
+ "properties": {
+ "feed": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.feed.defs#feedViewPost",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "actor"
+ ],
+ "properties": {
+ "actor": {
+ "type": "string",
+ "format": "at-identifier"
+ },
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ },
+ "filter": {
+ "type": "string",
+ "default": "posts_with_replies",
+ "description": "Combinations of post/repost types to include in response.",
+ "knownValues": [
+ "posts_with_replies",
+ "posts_no_replies",
+ "posts_with_media",
+ "posts_and_author_threads",
+ "posts_with_video"
+ ]
+ },
+ "includePins": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ },
+ "description": "Get a view of an actor's 'author feed' (post and reposts by the author). Does not require auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/getFeed.json b/lexicons/app/bsky/feed/getFeed.json
new file mode 100644
index 0000000000..6d19d64b96
--- /dev/null
+++ b/lexicons/app/bsky/feed/getFeed.json
@@ -0,0 +1,58 @@
+{
+ "id": "app.bsky.feed.getFeed",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "UnknownFeed"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "feed"
+ ],
+ "properties": {
+ "feed": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.feed.defs#feedViewPost",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "feed"
+ ],
+ "properties": {
+ "feed": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Get a hydrated feed from an actor's selected feed generator. Implemented by App View."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/getFeedGenerator.json b/lexicons/app/bsky/feed/getFeedGenerator.json
new file mode 100644
index 0000000000..9403bbc5fa
--- /dev/null
+++ b/lexicons/app/bsky/feed/getFeedGenerator.json
@@ -0,0 +1,49 @@
+{
+ "id": "app.bsky.feed.getFeedGenerator",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "view",
+ "isOnline",
+ "isValid"
+ ],
+ "properties": {
+ "view": {
+ "ref": "app.bsky.feed.defs#generatorView",
+ "type": "ref"
+ },
+ "isValid": {
+ "type": "boolean",
+ "description": "Indicates whether the feed generator service is compatible with the record declaration."
+ },
+ "isOnline": {
+ "type": "boolean",
+ "description": "Indicates whether the feed generator service has been online recently, or else seems to be inactive."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "feed"
+ ],
+ "properties": {
+ "feed": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "AT-URI of the feed generator record."
+ }
+ }
+ },
+ "description": "Get information about a feed generator. Implemented by AppView."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/getFeedGenerators.json b/lexicons/app/bsky/feed/getFeedGenerators.json
new file mode 100644
index 0000000000..79938c932b
--- /dev/null
+++ b/lexicons/app/bsky/feed/getFeedGenerators.json
@@ -0,0 +1,44 @@
+{
+ "id": "app.bsky.feed.getFeedGenerators",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "feeds"
+ ],
+ "properties": {
+ "feeds": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.feed.defs#generatorView",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "feeds"
+ ],
+ "properties": {
+ "feeds": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ }
+ }
+ },
+ "description": "Get information about a list of feed generators."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/getFeedSkeleton.json b/lexicons/app/bsky/feed/getFeedSkeleton.json
new file mode 100644
index 0000000000..f9ca591405
--- /dev/null
+++ b/lexicons/app/bsky/feed/getFeedSkeleton.json
@@ -0,0 +1,64 @@
+{
+ "id": "app.bsky.feed.getFeedSkeleton",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "UnknownFeed"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "feed"
+ ],
+ "properties": {
+ "feed": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.feed.defs#skeletonFeedPost",
+ "type": "ref"
+ }
+ },
+ "reqId": {
+ "type": "string",
+ "maxLength": 100,
+ "description": "Unique identifier per request that may be passed back alongside interactions."
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "feed"
+ ],
+ "properties": {
+ "feed": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "Reference to feed generator record describing the specific feed being requested."
+ },
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Get a skeleton of a feed provided by a feed generator. Auth is optional, depending on provider requirements, and provides the DID of the requester. Implemented by Feed Generator Service."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/getLikes.json b/lexicons/app/bsky/feed/getLikes.json
new file mode 100644
index 0000000000..db5c83ecda
--- /dev/null
+++ b/lexicons/app/bsky/feed/getLikes.json
@@ -0,0 +1,90 @@
+{
+ "id": "app.bsky.feed.getLikes",
+ "defs": {
+ "like": {
+ "type": "object",
+ "required": [
+ "indexedAt",
+ "createdAt",
+ "actor"
+ ],
+ "properties": {
+ "actor": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "indexedAt": {
+ "type": "string",
+ "format": "datetime"
+ }
+ }
+ },
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "uri",
+ "likes"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "likes": {
+ "type": "array",
+ "items": {
+ "ref": "#like",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "uri"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid",
+ "description": "CID of the subject record (aka, specific version of record), to filter likes."
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "AT-URI of the subject (eg, a post record)."
+ },
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Get like records which reference a subject (by AT-URI and CID)."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/getListFeed.json b/lexicons/app/bsky/feed/getListFeed.json
new file mode 100644
index 0000000000..7d9311799f
--- /dev/null
+++ b/lexicons/app/bsky/feed/getListFeed.json
@@ -0,0 +1,59 @@
+{
+ "id": "app.bsky.feed.getListFeed",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "UnknownList"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "feed"
+ ],
+ "properties": {
+ "feed": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.feed.defs#feedViewPost",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "list"
+ ],
+ "properties": {
+ "list": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "Reference (AT-URI) to the list record."
+ },
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Get a feed of recent posts from a list (posts and reposts from any actors on the list). Does not require auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/getPostThread.json b/lexicons/app/bsky/feed/getPostThread.json
new file mode 100644
index 0000000000..b62a78a00a
--- /dev/null
+++ b/lexicons/app/bsky/feed/getPostThread.json
@@ -0,0 +1,66 @@
+{
+ "id": "app.bsky.feed.getPostThread",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "NotFound"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "thread"
+ ],
+ "properties": {
+ "thread": {
+ "refs": [
+ "app.bsky.feed.defs#threadViewPost",
+ "app.bsky.feed.defs#notFoundPost",
+ "app.bsky.feed.defs#blockedPost"
+ ],
+ "type": "union"
+ },
+ "threadgate": {
+ "ref": "app.bsky.feed.defs#threadgateView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "uri"
+ ],
+ "properties": {
+ "uri": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "Reference (AT-URI) to post record."
+ },
+ "depth": {
+ "type": "integer",
+ "default": 6,
+ "maximum": 1000,
+ "minimum": 0,
+ "description": "How many levels of reply depth should be included in response."
+ },
+ "parentHeight": {
+ "type": "integer",
+ "default": 80,
+ "maximum": 1000,
+ "minimum": 0,
+ "description": "How many levels of parent (and grandparent, etc) post to include."
+ }
+ }
+ },
+ "description": "Get posts in a thread. Does not require auth, but additional metadata and filtering will be applied for authed requests."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/getPosts.json b/lexicons/app/bsky/feed/getPosts.json
new file mode 100644
index 0000000000..c52de1aecd
--- /dev/null
+++ b/lexicons/app/bsky/feed/getPosts.json
@@ -0,0 +1,46 @@
+{
+ "id": "app.bsky.feed.getPosts",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "posts"
+ ],
+ "properties": {
+ "posts": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.feed.defs#postView",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "uris"
+ ],
+ "properties": {
+ "uris": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "maxLength": 25,
+ "description": "List of post AT-URIs to return hydrated views for."
+ }
+ }
+ },
+ "description": "Gets post views for a specified list of posts (by AT-URI). This is sometimes referred to as 'hydrating' a 'feed skeleton'."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/getQuotes.json b/lexicons/app/bsky/feed/getQuotes.json
new file mode 100644
index 0000000000..cc507ec925
--- /dev/null
+++ b/lexicons/app/bsky/feed/getQuotes.json
@@ -0,0 +1,68 @@
+{
+ "id": "app.bsky.feed.getQuotes",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "uri",
+ "posts"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "posts": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.feed.defs#postView",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "uri"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid",
+ "description": "If supplied, filters to quotes of specific version (by CID) of the post record."
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "Reference (AT-URI) of post record"
+ },
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Get a list of quotes for a given post."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/getRepostedBy.json b/lexicons/app/bsky/feed/getRepostedBy.json
new file mode 100644
index 0000000000..3df7fa8f53
--- /dev/null
+++ b/lexicons/app/bsky/feed/getRepostedBy.json
@@ -0,0 +1,68 @@
+{
+ "id": "app.bsky.feed.getRepostedBy",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "uri",
+ "repostedBy"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "cursor": {
+ "type": "string"
+ },
+ "repostedBy": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "uri"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid",
+ "description": "If supplied, filters to reposts of specific version (by CID) of the post record."
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "Reference (AT-URI) of post record"
+ },
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Get a list of reposts for a given post."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/getSuggestedFeeds.json b/lexicons/app/bsky/feed/getSuggestedFeeds.json
new file mode 100644
index 0000000000..26cb0d1b49
--- /dev/null
+++ b/lexicons/app/bsky/feed/getSuggestedFeeds.json
@@ -0,0 +1,46 @@
+{
+ "id": "app.bsky.feed.getSuggestedFeeds",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "feeds"
+ ],
+ "properties": {
+ "feeds": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.feed.defs#generatorView",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Get a list of suggested feeds (feed generators) for the requesting account."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/getTimeline.json b/lexicons/app/bsky/feed/getTimeline.json
new file mode 100644
index 0000000000..e35dbbc1cb
--- /dev/null
+++ b/lexicons/app/bsky/feed/getTimeline.json
@@ -0,0 +1,50 @@
+{
+ "id": "app.bsky.feed.getTimeline",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "feed"
+ ],
+ "properties": {
+ "feed": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.feed.defs#feedViewPost",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ },
+ "algorithm": {
+ "type": "string",
+ "description": "Variant 'algorithm' for timeline. Implementation-specific. NOTE: most feed flexibility has been moved to feed generator mechanism."
+ }
+ }
+ },
+ "description": "Get a view of the requesting account's home timeline. This is expected to be some form of reverse-chronological feed."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/like.json b/lexicons/app/bsky/feed/like.json
new file mode 100644
index 0000000000..2b941f743c
--- /dev/null
+++ b/lexicons/app/bsky/feed/like.json
@@ -0,0 +1,33 @@
+{
+ "id": "app.bsky.feed.like",
+ "defs": {
+ "main": {
+ "key": "tid",
+ "type": "record",
+ "record": {
+ "type": "object",
+ "required": [
+ "subject",
+ "createdAt"
+ ],
+ "properties": {
+ "via": {
+ "ref": "com.atproto.repo.strongRef",
+ "type": "ref"
+ },
+ "subject": {
+ "ref": "com.atproto.repo.strongRef",
+ "type": "ref"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ }
+ }
+ },
+ "description": "Record declaring a 'like' of a piece of subject content."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/post.json b/lexicons/app/bsky/feed/post.json
new file mode 100644
index 0000000000..50b8a53c88
--- /dev/null
+++ b/lexicons/app/bsky/feed/post.json
@@ -0,0 +1,146 @@
+{
+ "id": "app.bsky.feed.post",
+ "defs": {
+ "main": {
+ "key": "tid",
+ "type": "record",
+ "record": {
+ "type": "object",
+ "required": [
+ "text",
+ "createdAt"
+ ],
+ "properties": {
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "maxLength": 640,
+ "maxGraphemes": 64
+ },
+ "maxLength": 8,
+ "description": "Additional hashtags, in addition to any included in post text and facets."
+ },
+ "text": {
+ "type": "string",
+ "maxLength": 3000,
+ "description": "The primary post content. May be an empty string, if there are embeds.",
+ "maxGraphemes": 300
+ },
+ "embed": {
+ "refs": [
+ "app.bsky.embed.images",
+ "app.bsky.embed.video",
+ "app.bsky.embed.gallery",
+ "app.bsky.embed.external",
+ "app.bsky.embed.record",
+ "app.bsky.embed.recordWithMedia"
+ ],
+ "type": "union"
+ },
+ "langs": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "language"
+ },
+ "maxLength": 3,
+ "description": "Indicates human language of post primary text content."
+ },
+ "reply": {
+ "ref": "#replyRef",
+ "type": "ref"
+ },
+ "facets": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.richtext.facet",
+ "type": "ref"
+ },
+ "description": "Annotations of text (mentions, URLs, hashtags, etc)"
+ },
+ "labels": {
+ "refs": [
+ "com.atproto.label.defs#selfLabels"
+ ],
+ "type": "union",
+ "description": "Self-label values for this post. Effectively content warnings."
+ },
+ "entities": {
+ "type": "array",
+ "items": {
+ "ref": "#entity",
+ "type": "ref"
+ },
+ "description": "DEPRECATED: replaced by app.bsky.richtext.facet."
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "Client-declared timestamp when this post was originally created."
+ }
+ }
+ },
+ "description": "Record containing a Bluesky post."
+ },
+ "entity": {
+ "type": "object",
+ "required": [
+ "index",
+ "type",
+ "value"
+ ],
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Expected values are 'mention' and 'link'."
+ },
+ "index": {
+ "ref": "#textSlice",
+ "type": "ref"
+ },
+ "value": {
+ "type": "string"
+ }
+ },
+ "description": "Deprecated: use facets instead."
+ },
+ "replyRef": {
+ "type": "object",
+ "required": [
+ "root",
+ "parent"
+ ],
+ "properties": {
+ "root": {
+ "ref": "com.atproto.repo.strongRef",
+ "type": "ref"
+ },
+ "parent": {
+ "ref": "com.atproto.repo.strongRef",
+ "type": "ref"
+ }
+ }
+ },
+ "textSlice": {
+ "type": "object",
+ "required": [
+ "start",
+ "end"
+ ],
+ "properties": {
+ "end": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "start": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "description": "Deprecated. Use app.bsky.richtext instead -- A text segment. Start is inclusive, end is exclusive. Indices are for utf16-encoded strings."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/postgate.json b/lexicons/app/bsky/feed/postgate.json
new file mode 100644
index 0000000000..9fa0775a68
--- /dev/null
+++ b/lexicons/app/bsky/feed/postgate.json
@@ -0,0 +1,55 @@
+{
+ "id": "app.bsky.feed.postgate",
+ "defs": {
+ "main": {
+ "key": "tid",
+ "type": "record",
+ "record": {
+ "type": "object",
+ "required": [
+ "post",
+ "createdAt"
+ ],
+ "properties": {
+ "post": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "Reference (AT-URI) to the post record."
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "embeddingRules": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "#disableRule"
+ ],
+ "type": "union"
+ },
+ "maxLength": 5,
+ "description": "List of rules defining who can embed this post. If value is an empty array or is undefined, no particular rules apply and anyone can embed."
+ },
+ "detachedEmbeddingUris": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "maxLength": 50,
+ "description": "List of AT-URIs embedding this post that the author has detached from."
+ }
+ }
+ },
+ "description": "Record defining interaction rules for a post. The record key (rkey) of the postgate record must match the record key of the post, and that record must be in the same repository."
+ },
+ "disableRule": {
+ "type": "object",
+ "properties": {},
+ "description": "Disables embedding of this post."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/repost.json b/lexicons/app/bsky/feed/repost.json
new file mode 100644
index 0000000000..6563b1f5e4
--- /dev/null
+++ b/lexicons/app/bsky/feed/repost.json
@@ -0,0 +1,33 @@
+{
+ "id": "app.bsky.feed.repost",
+ "defs": {
+ "main": {
+ "key": "tid",
+ "type": "record",
+ "record": {
+ "type": "object",
+ "required": [
+ "subject",
+ "createdAt"
+ ],
+ "properties": {
+ "via": {
+ "ref": "com.atproto.repo.strongRef",
+ "type": "ref"
+ },
+ "subject": {
+ "ref": "com.atproto.repo.strongRef",
+ "type": "ref"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ }
+ }
+ },
+ "description": "Record representing a 'repost' of an existing Bluesky post."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/searchPosts.json b/lexicons/app/bsky/feed/searchPosts.json
new file mode 100644
index 0000000000..23ba045c24
--- /dev/null
+++ b/lexicons/app/bsky/feed/searchPosts.json
@@ -0,0 +1,113 @@
+{
+ "id": "app.bsky.feed.searchPosts",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "BadQueryString"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "posts"
+ ],
+ "properties": {
+ "posts": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.feed.defs#postView",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ },
+ "hitsTotal": {
+ "type": "integer",
+ "description": "Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "q"
+ ],
+ "properties": {
+ "q": {
+ "type": "string",
+ "description": "Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended."
+ },
+ "tag": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "maxLength": 640,
+ "maxGraphemes": 64
+ },
+ "description": "Filter to posts with the given tag (hashtag), based on rich-text facet or tag field. Do not include the hash (#) prefix. Multiple tags can be specified, with 'AND' matching."
+ },
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "description": "Filter to posts with links (facet links or embeds) pointing to this URL. Server may apply URL normalization or fuzzy matching."
+ },
+ "lang": {
+ "type": "string",
+ "format": "language",
+ "description": "Filter to posts in the given language. Expected to be based on post language field, though server may override language detection."
+ },
+ "sort": {
+ "type": "string",
+ "default": "latest",
+ "description": "Specifies the ranking order of results.",
+ "knownValues": [
+ "top",
+ "latest"
+ ]
+ },
+ "limit": {
+ "type": "integer",
+ "default": 25,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "since": {
+ "type": "string",
+ "description": "Filter results for posts after the indicated datetime (inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYYY-MM-DD)."
+ },
+ "until": {
+ "type": "string",
+ "description": "Filter results for posts before the indicated datetime (not inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYY-MM-DD)."
+ },
+ "author": {
+ "type": "string",
+ "format": "at-identifier",
+ "description": "Filter to posts by the given account. Handles are resolved to DID before query-time."
+ },
+ "cursor": {
+ "type": "string",
+ "description": "Optional pagination mechanism; may not necessarily allow scrolling through entire result set."
+ },
+ "domain": {
+ "type": "string",
+ "description": "Filter to posts with URLs (facet links or embeds) linking to the given domain (hostname). Server may apply hostname normalization."
+ },
+ "mentions": {
+ "type": "string",
+ "format": "at-identifier",
+ "description": "Filter to posts which mention the given account. Handles are resolved to DID before query-time. Only matches rich-text facet mentions."
+ }
+ }
+ },
+ "description": "Find posts matching search criteria, returning views of those posts. Note that this API endpoint may require authentication (eg, not public) for some service providers and implementations."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/searchPostsV2.json b/lexicons/app/bsky/feed/searchPostsV2.json
new file mode 100644
index 0000000000..0d3ba5cc16
--- /dev/null
+++ b/lexicons/app/bsky/feed/searchPostsV2.json
@@ -0,0 +1,251 @@
+{
+ "id": "app.bsky.feed.searchPostsV2",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "BadQueryString"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "posts"
+ ],
+ "properties": {
+ "posts": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.feed.defs#postView",
+ "type": "ref"
+ },
+ "description": "Hydrated views of matching posts."
+ },
+ "cursor": {
+ "type": "string",
+ "description": "Cursor for the next page of results."
+ },
+ "hitsTotal": {
+ "type": "integer",
+ "description": "Estimated total number of matching hits. May be rounded or truncated."
+ },
+ "detectedQueryLanguages": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "knownValues": [
+ "ja",
+ "zh",
+ "ko",
+ "th",
+ "ar"
+ ]
+ },
+ "description": "Query languages detected for CJK, Thai, or Arabic text. Empty or omitted for other scripts."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [],
+ "properties": {
+ "sort": {
+ "type": "string",
+ "description": "Ranking order for results. 'recent' sorts by recency; 'top' uses search ranking.",
+ "knownValues": [
+ "recent",
+ "top"
+ ]
+ },
+ "urls": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uri"
+ },
+ "description": "Include posts that link to any of these URLs."
+ },
+ "limit": {
+ "type": "integer",
+ "default": 25,
+ "maximum": 100,
+ "minimum": 1,
+ "description": "Maximum number of results to return."
+ },
+ "query": {
+ "type": "string",
+ "description": "Search query string. A query or at least one filter is required."
+ },
+ "since": {
+ "type": "string",
+ "description": "Include posts indexed at or after this timestamp. Can be a datetime, or just an ISO date (YYYY-MM-DD)."
+ },
+ "until": {
+ "type": "string",
+ "description": "Include posts indexed before this timestamp. Defaults to the current time. Can be a datetime, or just an ISO date (YYYY-MM-DD)."
+ },
+ "cursor": {
+ "type": "string",
+ "description": "Optional pagination cursor."
+ },
+ "allTime": {
+ "type": "boolean",
+ "description": "Search the full index instead of the recent-post window."
+ },
+ "authors": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "at-identifier"
+ },
+ "description": "Include posts by any of these authors. Handles are resolved to DIDs before searching."
+ },
+ "domains": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Include posts that link to any of these domains."
+ },
+ "hasMedia": {
+ "type": "boolean",
+ "description": "Include only posts with media."
+ },
+ "hasVideo": {
+ "type": "boolean",
+ "description": "Include only posts with video."
+ },
+ "hashtags": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "maxLength": 640,
+ "maxGraphemes": 64
+ },
+ "description": "Include posts tagged with any of these hashtags. Do not include the hash (#) prefix."
+ },
+ "mentions": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "at-identifier"
+ },
+ "description": "Include posts that mention any of these accounts. Handles are resolved to DIDs before searching."
+ },
+ "following": {
+ "type": "boolean",
+ "description": "Include only posts from accounts followed by the viewer."
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "language"
+ },
+ "description": "Include posts whose language matches any of these language codes."
+ },
+ "excludeUrls": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uri"
+ },
+ "description": "Exclude posts that link to any of these URLs."
+ },
+ "repliesOnly": {
+ "type": "boolean",
+ "description": "Include only replies. Mutually exclusive with excludeReplies."
+ },
+ "queryLanguage": {
+ "type": "string",
+ "description": "Language analyzer hint for the query text. If unset, the server auto-detects when possible.",
+ "knownValues": [
+ "ja",
+ "zh",
+ "ko",
+ "th",
+ "ar"
+ ]
+ },
+ "threadRootUri": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "Include only posts in the thread rooted at this post URI."
+ },
+ "embeddedAtUris": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "description": "Include posts that embed any of these AT URIs."
+ },
+ "excludeAuthors": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "at-identifier"
+ },
+ "description": "Exclude posts by any of these authors. Handles are resolved to DIDs before searching."
+ },
+ "excludeDomains": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Exclude posts that link to any of these domains."
+ },
+ "excludeReplies": {
+ "type": "boolean",
+ "description": "Exclude replies from results. Mutually exclusive with repliesOnly."
+ },
+ "replyParentUri": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "Include only direct replies to this parent post URI."
+ },
+ "excludeHashtags": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "maxLength": 640,
+ "maxGraphemes": 64
+ },
+ "description": "Exclude posts tagged with any of these hashtags. Do not include the hash (#) prefix."
+ },
+ "excludeMentions": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "at-identifier"
+ },
+ "description": "Exclude posts that mention any of these accounts. Handles are resolved to DIDs before searching."
+ },
+ "excludeLanguages": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "language"
+ },
+ "description": "Exclude posts whose language matches any of these language codes."
+ },
+ "excludeEmbeddedAtUris": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "description": "Exclude posts that embed any of these AT URIs."
+ }
+ }
+ },
+ "description": "Find posts matching a search query or filters, returning search hits for matching post records."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/sendInteractions.json b/lexicons/app/bsky/feed/sendInteractions.json
new file mode 100644
index 0000000000..eea9f6c1fc
--- /dev/null
+++ b/lexicons/app/bsky/feed/sendInteractions.json
@@ -0,0 +1,40 @@
+{
+ "id": "app.bsky.feed.sendInteractions",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "interactions"
+ ],
+ "properties": {
+ "feed": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "interactions": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.feed.defs#interaction",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "output": {
+ "schema": {
+ "type": "object",
+ "properties": {}
+ },
+ "encoding": "application/json"
+ },
+ "description": "Send information about interactions with feed items back to the feed generator that served them."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/feed/threadgate.json b/lexicons/app/bsky/feed/threadgate.json
new file mode 100644
index 0000000000..8b4d3c6117
--- /dev/null
+++ b/lexicons/app/bsky/feed/threadgate.json
@@ -0,0 +1,81 @@
+{
+ "id": "app.bsky.feed.threadgate",
+ "defs": {
+ "main": {
+ "key": "tid",
+ "type": "record",
+ "record": {
+ "type": "object",
+ "required": [
+ "post",
+ "createdAt"
+ ],
+ "properties": {
+ "post": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "Reference (AT-URI) to the post record."
+ },
+ "allow": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "#mentionRule",
+ "#followerRule",
+ "#followingRule",
+ "#listRule"
+ ],
+ "type": "union"
+ },
+ "maxLength": 5,
+ "description": "List of rules defining who can reply to this post. If value is an empty array, no one can reply. If value is undefined, anyone can reply."
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "hiddenReplies": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "maxLength": 300,
+ "description": "List of hidden reply URIs."
+ }
+ }
+ },
+ "description": "Record defining interaction gating rules for a thread (aka, reply controls). The record key (rkey) of the threadgate record must match the record key of the thread's root post, and that record must be in the same repository."
+ },
+ "listRule": {
+ "type": "object",
+ "required": [
+ "list"
+ ],
+ "properties": {
+ "list": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ },
+ "description": "Allow replies from actors on a list."
+ },
+ "mentionRule": {
+ "type": "object",
+ "properties": {},
+ "description": "Allow replies from actors mentioned in your post."
+ },
+ "followerRule": {
+ "type": "object",
+ "properties": {},
+ "description": "Allow replies from actors who follow you."
+ },
+ "followingRule": {
+ "type": "object",
+ "properties": {},
+ "description": "Allow replies from actors you follow."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/block.json b/lexicons/app/bsky/graph/block.json
new file mode 100644
index 0000000000..bc0cd214df
--- /dev/null
+++ b/lexicons/app/bsky/graph/block.json
@@ -0,0 +1,30 @@
+{
+ "id": "app.bsky.graph.block",
+ "defs": {
+ "main": {
+ "key": "tid",
+ "type": "record",
+ "record": {
+ "type": "object",
+ "required": [
+ "subject",
+ "createdAt"
+ ],
+ "properties": {
+ "subject": {
+ "type": "string",
+ "format": "did",
+ "description": "DID of the account to be blocked."
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ }
+ }
+ },
+ "description": "Record declaring a 'block' relationship against another account. NOTE: blocks are public in Bluesky; see blog posts for details."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/defs.json b/lexicons/app/bsky/graph/defs.json
new file mode 100644
index 0000000000..eca42fc875
--- /dev/null
+++ b/lexicons/app/bsky/graph/defs.json
@@ -0,0 +1,353 @@
+{
+ "id": "app.bsky.graph.defs",
+ "defs": {
+ "modlist": {
+ "type": "token",
+ "description": "A list of actors to apply an aggregate moderation action (mute/block) on."
+ },
+ "listView": {
+ "type": "object",
+ "required": [
+ "uri",
+ "cid",
+ "creator",
+ "name",
+ "purpose",
+ "indexedAt"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "name": {
+ "type": "string",
+ "maxLength": 64,
+ "minLength": 1
+ },
+ "avatar": {
+ "type": "string",
+ "format": "uri"
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.label.defs#label",
+ "type": "ref"
+ }
+ },
+ "viewer": {
+ "ref": "#listViewerState",
+ "type": "ref"
+ },
+ "creator": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ },
+ "purpose": {
+ "ref": "#listPurpose",
+ "type": "ref"
+ },
+ "indexedAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 3000,
+ "maxGraphemes": 300
+ },
+ "listItemCount": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "descriptionFacets": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.richtext.facet",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "curatelist": {
+ "type": "token",
+ "description": "A list of actors used for curation purposes such as list feeds or interaction gating."
+ },
+ "listPurpose": {
+ "type": "string",
+ "knownValues": [
+ "app.bsky.graph.defs#modlist",
+ "app.bsky.graph.defs#curatelist",
+ "app.bsky.graph.defs#referencelist"
+ ]
+ },
+ "listItemView": {
+ "type": "object",
+ "required": [
+ "uri",
+ "subject"
+ ],
+ "properties": {
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "subject": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ }
+ }
+ },
+ "relationship": {
+ "type": "object",
+ "required": [
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "blocking": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "if the actor blocks this DID, this is the AT-URI of the block record"
+ },
+ "blockedBy": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "if the actor is blocked by this DID, contains the AT-URI of the block record"
+ },
+ "following": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "if the actor follows this DID, this is the AT-URI of the follow record"
+ },
+ "followedBy": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "if the actor is followed by this DID, contains the AT-URI of the follow record"
+ },
+ "blockedByList": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "if the actor is blocked by this DID via a block list, contains the AT-URI of the listblock record"
+ },
+ "blockingByList": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "if the actor blocks this DID via a block list, this is the AT-URI of the listblock record"
+ }
+ },
+ "description": "lists the bi-directional graph relationships between one actor (not indicated in the object), and the target actors (the DID included in the object)"
+ },
+ "listViewBasic": {
+ "type": "object",
+ "required": [
+ "uri",
+ "cid",
+ "name",
+ "purpose"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "name": {
+ "type": "string",
+ "maxLength": 64,
+ "minLength": 1
+ },
+ "avatar": {
+ "type": "string",
+ "format": "uri"
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.label.defs#label",
+ "type": "ref"
+ }
+ },
+ "viewer": {
+ "ref": "#listViewerState",
+ "type": "ref"
+ },
+ "purpose": {
+ "ref": "#listPurpose",
+ "type": "ref"
+ },
+ "indexedAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "listItemCount": {
+ "type": "integer",
+ "minimum": 0
+ }
+ }
+ },
+ "notFoundActor": {
+ "type": "object",
+ "required": [
+ "actor",
+ "notFound"
+ ],
+ "properties": {
+ "actor": {
+ "type": "string",
+ "format": "at-identifier"
+ },
+ "notFound": {
+ "type": "boolean",
+ "const": true
+ }
+ },
+ "description": "indicates that a handle or DID could not be resolved"
+ },
+ "referencelist": {
+ "type": "token",
+ "description": "A list of actors used for only for reference purposes such as within a starter pack."
+ },
+ "listViewerState": {
+ "type": "object",
+ "properties": {
+ "muted": {
+ "type": "boolean"
+ },
+ "blocked": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ }
+ },
+ "starterPackView": {
+ "type": "object",
+ "required": [
+ "uri",
+ "cid",
+ "record",
+ "creator",
+ "indexedAt"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "list": {
+ "ref": "#listViewBasic",
+ "type": "ref"
+ },
+ "feeds": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.feed.defs#generatorView",
+ "type": "ref"
+ },
+ "maxLength": 3
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.label.defs#label",
+ "type": "ref"
+ }
+ },
+ "record": {
+ "type": "unknown"
+ },
+ "creator": {
+ "ref": "app.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ },
+ "indexedAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "joinedWeekCount": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "listItemsSample": {
+ "type": "array",
+ "items": {
+ "ref": "#listItemView",
+ "type": "ref"
+ },
+ "maxLength": 12
+ },
+ "joinedAllTimeCount": {
+ "type": "integer",
+ "minimum": 0
+ }
+ }
+ },
+ "starterPackViewBasic": {
+ "type": "object",
+ "required": [
+ "uri",
+ "cid",
+ "record",
+ "creator",
+ "indexedAt"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.label.defs#label",
+ "type": "ref"
+ }
+ },
+ "record": {
+ "type": "unknown"
+ },
+ "creator": {
+ "ref": "app.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ },
+ "indexedAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "listItemCount": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "joinedWeekCount": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "joinedAllTimeCount": {
+ "type": "integer",
+ "minimum": 0
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/follow.json b/lexicons/app/bsky/graph/follow.json
new file mode 100644
index 0000000000..1918ba075d
--- /dev/null
+++ b/lexicons/app/bsky/graph/follow.json
@@ -0,0 +1,33 @@
+{
+ "id": "app.bsky.graph.follow",
+ "defs": {
+ "main": {
+ "key": "tid",
+ "type": "record",
+ "record": {
+ "type": "object",
+ "required": [
+ "subject",
+ "createdAt"
+ ],
+ "properties": {
+ "via": {
+ "ref": "com.atproto.repo.strongRef",
+ "type": "ref"
+ },
+ "subject": {
+ "type": "string",
+ "format": "did"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ }
+ }
+ },
+ "description": "Record declaring a social 'follow' relationship of another account. Duplicate follows will be ignored by the AppView."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/getActorStarterPacks.json b/lexicons/app/bsky/graph/getActorStarterPacks.json
new file mode 100644
index 0000000000..8cccf2b909
--- /dev/null
+++ b/lexicons/app/bsky/graph/getActorStarterPacks.json
@@ -0,0 +1,53 @@
+{
+ "id": "app.bsky.graph.getActorStarterPacks",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "starterPacks"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "starterPacks": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.graph.defs#starterPackViewBasic",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "actor"
+ ],
+ "properties": {
+ "actor": {
+ "type": "string",
+ "format": "at-identifier"
+ },
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Get a list of starter packs created by the actor."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/getBlocks.json b/lexicons/app/bsky/graph/getBlocks.json
new file mode 100644
index 0000000000..35e2b289fa
--- /dev/null
+++ b/lexicons/app/bsky/graph/getBlocks.json
@@ -0,0 +1,46 @@
+{
+ "id": "app.bsky.graph.getBlocks",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "blocks"
+ ],
+ "properties": {
+ "blocks": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Enumerates which accounts the requesting account is currently blocking. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/getFollowers.json b/lexicons/app/bsky/graph/getFollowers.json
new file mode 100644
index 0000000000..80374a1331
--- /dev/null
+++ b/lexicons/app/bsky/graph/getFollowers.json
@@ -0,0 +1,66 @@
+{
+ "id": "app.bsky.graph.getFollowers",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "subject",
+ "followers"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "subject": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ },
+ "followers": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "actor"
+ ],
+ "properties": {
+ "sort": {
+ "type": "string",
+ "description": "Sort order of the returned followers.",
+ "knownValues": [
+ "latest",
+ "top"
+ ]
+ },
+ "actor": {
+ "type": "string",
+ "format": "at-identifier"
+ },
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Enumerates accounts which follow a specified account (actor)."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/getFollows.json b/lexicons/app/bsky/graph/getFollows.json
new file mode 100644
index 0000000000..eab30c336c
--- /dev/null
+++ b/lexicons/app/bsky/graph/getFollows.json
@@ -0,0 +1,66 @@
+{
+ "id": "app.bsky.graph.getFollows",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "subject",
+ "follows"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "follows": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ }
+ },
+ "subject": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "actor"
+ ],
+ "properties": {
+ "sort": {
+ "type": "string",
+ "description": "Sort order of the returned follows.",
+ "knownValues": [
+ "latest",
+ "top"
+ ]
+ },
+ "actor": {
+ "type": "string",
+ "format": "at-identifier"
+ },
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Enumerates accounts which a specified account (actor) follows."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/getKnownFollowers.json b/lexicons/app/bsky/graph/getKnownFollowers.json
new file mode 100644
index 0000000000..2c705fc3c1
--- /dev/null
+++ b/lexicons/app/bsky/graph/getKnownFollowers.json
@@ -0,0 +1,58 @@
+{
+ "id": "app.bsky.graph.getKnownFollowers",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "subject",
+ "followers"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "subject": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ },
+ "followers": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "actor"
+ ],
+ "properties": {
+ "actor": {
+ "type": "string",
+ "format": "at-identifier"
+ },
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Enumerates accounts which follow a specified account (actor) and are followed by the viewer."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/getList.json b/lexicons/app/bsky/graph/getList.json
new file mode 100644
index 0000000000..b5a6e226ae
--- /dev/null
+++ b/lexicons/app/bsky/graph/getList.json
@@ -0,0 +1,59 @@
+{
+ "id": "app.bsky.graph.getList",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "list",
+ "items"
+ ],
+ "properties": {
+ "list": {
+ "ref": "app.bsky.graph.defs#listView",
+ "type": "ref"
+ },
+ "items": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.graph.defs#listItemView",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "list"
+ ],
+ "properties": {
+ "list": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "Reference (AT-URI) of the list record to hydrate."
+ },
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Gets a 'view' (with additional context) of a specified list."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/getListBlocks.json b/lexicons/app/bsky/graph/getListBlocks.json
new file mode 100644
index 0000000000..03477a13b6
--- /dev/null
+++ b/lexicons/app/bsky/graph/getListBlocks.json
@@ -0,0 +1,46 @@
+{
+ "id": "app.bsky.graph.getListBlocks",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "lists"
+ ],
+ "properties": {
+ "lists": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.graph.defs#listView",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Get mod lists that the requesting account (actor) is blocking. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/getListMutes.json b/lexicons/app/bsky/graph/getListMutes.json
new file mode 100644
index 0000000000..ea54aab6d2
--- /dev/null
+++ b/lexicons/app/bsky/graph/getListMutes.json
@@ -0,0 +1,46 @@
+{
+ "id": "app.bsky.graph.getListMutes",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "lists"
+ ],
+ "properties": {
+ "lists": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.graph.defs#listView",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Enumerates mod lists that the requesting account (actor) currently has muted. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/getLists.json b/lexicons/app/bsky/graph/getLists.json
new file mode 100644
index 0000000000..03c960da01
--- /dev/null
+++ b/lexicons/app/bsky/graph/getLists.json
@@ -0,0 +1,65 @@
+{
+ "id": "app.bsky.graph.getLists",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "lists"
+ ],
+ "properties": {
+ "lists": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.graph.defs#listView",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "actor"
+ ],
+ "properties": {
+ "actor": {
+ "type": "string",
+ "format": "at-identifier",
+ "description": "The account (actor) to enumerate lists from."
+ },
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ },
+ "purposes": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "knownValues": [
+ "modlist",
+ "curatelist"
+ ]
+ },
+ "description": "Optional filter by list purpose. If not specified, all supported types are returned."
+ }
+ }
+ },
+ "description": "Enumerates the lists created by a specified account (actor)."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/getListsWithMembership.json b/lexicons/app/bsky/graph/getListsWithMembership.json
new file mode 100644
index 0000000000..7e0b34a666
--- /dev/null
+++ b/lexicons/app/bsky/graph/getListsWithMembership.json
@@ -0,0 +1,82 @@
+{
+ "id": "app.bsky.graph.getListsWithMembership",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "listsWithMembership"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "listsWithMembership": {
+ "type": "array",
+ "items": {
+ "ref": "#listWithMembership",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "actor"
+ ],
+ "properties": {
+ "actor": {
+ "type": "string",
+ "format": "at-identifier",
+ "description": "The account (actor) to check for membership."
+ },
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ },
+ "purposes": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "knownValues": [
+ "modlist",
+ "curatelist"
+ ]
+ },
+ "description": "Optional filter by list purpose. If not specified, all supported types are returned."
+ }
+ }
+ },
+ "description": "Enumerates the lists created by the session user, and includes membership information about `actor` in those lists. Only supports curation and moderation lists (no reference lists, used in starter packs). Requires auth."
+ },
+ "listWithMembership": {
+ "type": "object",
+ "required": [
+ "list"
+ ],
+ "properties": {
+ "list": {
+ "ref": "app.bsky.graph.defs#listView",
+ "type": "ref"
+ },
+ "listItem": {
+ "ref": "app.bsky.graph.defs#listItemView",
+ "type": "ref"
+ }
+ },
+ "description": "A list and an optional list item indicating membership of a target user to that list."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/getMutes.json b/lexicons/app/bsky/graph/getMutes.json
new file mode 100644
index 0000000000..ad6303cd0d
--- /dev/null
+++ b/lexicons/app/bsky/graph/getMutes.json
@@ -0,0 +1,46 @@
+{
+ "id": "app.bsky.graph.getMutes",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "mutes"
+ ],
+ "properties": {
+ "mutes": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Enumerates accounts that the requesting account (actor) currently has fully muted. Mutes scoped to specific kinds of content (only reposts, only quote posts) are not included. Responses may contain more items than the requested limit. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/getRelationships.json b/lexicons/app/bsky/graph/getRelationships.json
new file mode 100644
index 0000000000..84cc69fe59
--- /dev/null
+++ b/lexicons/app/bsky/graph/getRelationships.json
@@ -0,0 +1,64 @@
+{
+ "id": "app.bsky.graph.getRelationships",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "ActorNotFound",
+ "description": "the primary actor at-identifier could not be resolved"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "relationships"
+ ],
+ "properties": {
+ "actor": {
+ "type": "string",
+ "format": "did"
+ },
+ "relationships": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "app.bsky.graph.defs#relationship",
+ "app.bsky.graph.defs#notFoundActor"
+ ],
+ "type": "union"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "actor"
+ ],
+ "properties": {
+ "actor": {
+ "type": "string",
+ "format": "at-identifier",
+ "description": "Primary account requesting relationships for."
+ },
+ "others": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "at-identifier"
+ },
+ "maxLength": 30,
+ "description": "List of 'other' accounts to be related back to the primary."
+ }
+ }
+ },
+ "description": "Enumerates public relationships between one account, and a list of other accounts. Does not require auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/getStarterPack.json b/lexicons/app/bsky/graph/getStarterPack.json
new file mode 100644
index 0000000000..aa8ef6ce2a
--- /dev/null
+++ b/lexicons/app/bsky/graph/getStarterPack.json
@@ -0,0 +1,39 @@
+{
+ "id": "app.bsky.graph.getStarterPack",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "starterPack"
+ ],
+ "properties": {
+ "starterPack": {
+ "ref": "app.bsky.graph.defs#starterPackView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "starterPack"
+ ],
+ "properties": {
+ "starterPack": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "Reference (AT-URI) of the starter pack record."
+ }
+ }
+ },
+ "description": "Gets a view of a starter pack."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/getStarterPacks.json b/lexicons/app/bsky/graph/getStarterPacks.json
new file mode 100644
index 0000000000..15d73a1e55
--- /dev/null
+++ b/lexicons/app/bsky/graph/getStarterPacks.json
@@ -0,0 +1,45 @@
+{
+ "id": "app.bsky.graph.getStarterPacks",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "starterPacks"
+ ],
+ "properties": {
+ "starterPacks": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.graph.defs#starterPackViewBasic",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "uris"
+ ],
+ "properties": {
+ "uris": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "maxLength": 25
+ }
+ }
+ },
+ "description": "Get views for a list of starter packs."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/getStarterPacksWithMembership.json b/lexicons/app/bsky/graph/getStarterPacksWithMembership.json
new file mode 100644
index 0000000000..c57d254ce3
--- /dev/null
+++ b/lexicons/app/bsky/graph/getStarterPacksWithMembership.json
@@ -0,0 +1,71 @@
+{
+ "id": "app.bsky.graph.getStarterPacksWithMembership",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "starterPacksWithMembership"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "starterPacksWithMembership": {
+ "type": "array",
+ "items": {
+ "ref": "#starterPackWithMembership",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "actor"
+ ],
+ "properties": {
+ "actor": {
+ "type": "string",
+ "format": "at-identifier",
+ "description": "The account (actor) to check for membership."
+ },
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Enumerates the starter packs created by the session user, and includes membership information about `actor` in those starter packs. Requires auth."
+ },
+ "starterPackWithMembership": {
+ "type": "object",
+ "required": [
+ "starterPack"
+ ],
+ "properties": {
+ "listItem": {
+ "ref": "app.bsky.graph.defs#listItemView",
+ "type": "ref"
+ },
+ "starterPack": {
+ "ref": "app.bsky.graph.defs#starterPackView",
+ "type": "ref"
+ }
+ },
+ "description": "A starter pack and an optional list item indicating membership of a target user to that starter pack."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/getSuggestedFollowsByActor.json b/lexicons/app/bsky/graph/getSuggestedFollowsByActor.json
new file mode 100644
index 0000000000..12b617d0a4
--- /dev/null
+++ b/lexicons/app/bsky/graph/getSuggestedFollowsByActor.json
@@ -0,0 +1,54 @@
+{
+ "id": "app.bsky.graph.getSuggestedFollowsByActor",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "suggestions"
+ ],
+ "properties": {
+ "recId": {
+ "type": "integer",
+ "description": "DEPRECATED: use recIdStr instead."
+ },
+ "recIdStr": {
+ "type": "string",
+ "description": "Snowflake for this recommendation, use when submitting recommendation events."
+ },
+ "isFallback": {
+ "type": "boolean",
+ "default": false,
+ "description": "DEPRECATED, unused. Previously: if true, response has fallen-back to generic results, and is not scoped using relativeToDid"
+ },
+ "suggestions": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "actor"
+ ],
+ "properties": {
+ "actor": {
+ "type": "string",
+ "format": "at-identifier"
+ }
+ }
+ },
+ "description": "Enumerates follows similar to a given account (actor). Expected use is to recommend additional accounts immediately after following one account."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/list.json b/lexicons/app/bsky/graph/list.json
new file mode 100644
index 0000000000..dd67d4e99b
--- /dev/null
+++ b/lexicons/app/bsky/graph/list.json
@@ -0,0 +1,63 @@
+{
+ "id": "app.bsky.graph.list",
+ "defs": {
+ "main": {
+ "key": "tid",
+ "type": "record",
+ "record": {
+ "type": "object",
+ "required": [
+ "name",
+ "purpose",
+ "createdAt"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "maxLength": 64,
+ "minLength": 1,
+ "description": "Display name for list; can not be empty."
+ },
+ "avatar": {
+ "type": "blob",
+ "accept": [
+ "image/png",
+ "image/jpeg"
+ ],
+ "maxSize": 1000000
+ },
+ "labels": {
+ "refs": [
+ "com.atproto.label.defs#selfLabels"
+ ],
+ "type": "union"
+ },
+ "purpose": {
+ "ref": "app.bsky.graph.defs#listPurpose",
+ "type": "ref",
+ "description": "Defines the purpose of the list (aka, moderation-oriented or curration-oriented)"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 3000,
+ "maxGraphemes": 300
+ },
+ "descriptionFacets": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.richtext.facet",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "description": "Record representing a list of accounts (actors). Scope includes both moderation-oriented lists and curration-oriented lists."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/listblock.json b/lexicons/app/bsky/graph/listblock.json
new file mode 100644
index 0000000000..cef4b85255
--- /dev/null
+++ b/lexicons/app/bsky/graph/listblock.json
@@ -0,0 +1,30 @@
+{
+ "id": "app.bsky.graph.listblock",
+ "defs": {
+ "main": {
+ "key": "tid",
+ "type": "record",
+ "record": {
+ "type": "object",
+ "required": [
+ "subject",
+ "createdAt"
+ ],
+ "properties": {
+ "subject": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "Reference (AT-URI) to the mod list record."
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ }
+ }
+ },
+ "description": "Record representing a block relationship against an entire an entire list of accounts (actors)."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/listitem.json b/lexicons/app/bsky/graph/listitem.json
new file mode 100644
index 0000000000..edfb268b35
--- /dev/null
+++ b/lexicons/app/bsky/graph/listitem.json
@@ -0,0 +1,36 @@
+{
+ "id": "app.bsky.graph.listitem",
+ "defs": {
+ "main": {
+ "key": "tid",
+ "type": "record",
+ "record": {
+ "type": "object",
+ "required": [
+ "subject",
+ "list",
+ "createdAt"
+ ],
+ "properties": {
+ "list": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "Reference (AT-URI) to the list record (app.bsky.graph.list)."
+ },
+ "subject": {
+ "type": "string",
+ "format": "did",
+ "description": "The account which is included on the list."
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ }
+ }
+ },
+ "description": "Record representing an account's inclusion on a specific list. The AppView will ignore duplicate listitem records."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/muteActor.json b/lexicons/app/bsky/graph/muteActor.json
new file mode 100644
index 0000000000..3f5866cca0
--- /dev/null
+++ b/lexicons/app/bsky/graph/muteActor.json
@@ -0,0 +1,34 @@
+{
+ "id": "app.bsky.graph.muteActor",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "actor"
+ ],
+ "properties": {
+ "actor": {
+ "type": "string",
+ "format": "at-identifier"
+ },
+ "onlyReposts": {
+ "type": "boolean",
+ "description": "Restrict the mute to the account's reposts. When any 'only' scope is set, just the scoped content is muted; when none are set, the account is fully muted. Repeat calls replace the stored scope rather than adding to it."
+ },
+ "onlyQuoteposts": {
+ "type": "boolean",
+ "description": "Restrict the mute to the account's quote posts. See onlyReposts."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Creates a mute relationship for the specified account. If a mute already exists for the account, it is updated in place: the stored scope is replaced with the scope in this request. Mutes are private in Bluesky. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/muteActorList.json b/lexicons/app/bsky/graph/muteActorList.json
new file mode 100644
index 0000000000..7a2d060d03
--- /dev/null
+++ b/lexicons/app/bsky/graph/muteActorList.json
@@ -0,0 +1,26 @@
+{
+ "id": "app.bsky.graph.muteActorList",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "list"
+ ],
+ "properties": {
+ "list": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Creates a mute relationship for the specified list of accounts. Mutes are private in Bluesky. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/muteThread.json b/lexicons/app/bsky/graph/muteThread.json
new file mode 100644
index 0000000000..7cfb6890f2
--- /dev/null
+++ b/lexicons/app/bsky/graph/muteThread.json
@@ -0,0 +1,26 @@
+{
+ "id": "app.bsky.graph.muteThread",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "root"
+ ],
+ "properties": {
+ "root": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Mutes a thread preventing notifications from the thread and any of its children. Mutes are private in Bluesky. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/searchStarterPacks.json b/lexicons/app/bsky/graph/searchStarterPacks.json
new file mode 100644
index 0000000000..20ac032f3f
--- /dev/null
+++ b/lexicons/app/bsky/graph/searchStarterPacks.json
@@ -0,0 +1,53 @@
+{
+ "id": "app.bsky.graph.searchStarterPacks",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "starterPacks"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "starterPacks": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.graph.defs#starterPackViewBasic",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "q"
+ ],
+ "properties": {
+ "q": {
+ "type": "string",
+ "description": "Search query string. Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended."
+ },
+ "limit": {
+ "type": "integer",
+ "default": 25,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Find starter packs matching search criteria. Does not require auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/searchStarterPacksV2.json b/lexicons/app/bsky/graph/searchStarterPacksV2.json
new file mode 100644
index 0000000000..9d6949e0e2
--- /dev/null
+++ b/lexicons/app/bsky/graph/searchStarterPacksV2.json
@@ -0,0 +1,57 @@
+{
+ "id": "app.bsky.graph.searchStarterPacksV2",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "starterPacks"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "hitsTotal": {
+ "type": "integer",
+ "description": "Estimated total number of matching hits. May be rounded or truncated."
+ },
+ "starterPacks": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.graph.defs#starterPackView",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "q"
+ ],
+ "properties": {
+ "q": {
+ "type": "string",
+ "description": "Search query string. Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended."
+ },
+ "limit": {
+ "type": "integer",
+ "default": 25,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Find starter packs matching search criteria. Does not require auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/starterpack.json b/lexicons/app/bsky/graph/starterpack.json
new file mode 100644
index 0000000000..add9530335
--- /dev/null
+++ b/lexicons/app/bsky/graph/starterpack.json
@@ -0,0 +1,70 @@
+{
+ "id": "app.bsky.graph.starterpack",
+ "defs": {
+ "main": {
+ "key": "tid",
+ "type": "record",
+ "record": {
+ "type": "object",
+ "required": [
+ "name",
+ "list",
+ "createdAt"
+ ],
+ "properties": {
+ "list": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "Reference (AT-URI) to the list record."
+ },
+ "name": {
+ "type": "string",
+ "maxLength": 500,
+ "minLength": 1,
+ "description": "Display name for starter pack; can not be empty.",
+ "maxGraphemes": 50
+ },
+ "feeds": {
+ "type": "array",
+ "items": {
+ "ref": "#feedItem",
+ "type": "ref"
+ },
+ "maxLength": 3
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 3000,
+ "maxGraphemes": 300
+ },
+ "descriptionFacets": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.richtext.facet",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "description": "Record defining a starter pack of actors and feeds for new users."
+ },
+ "feedItem": {
+ "type": "object",
+ "required": [
+ "uri"
+ ],
+ "properties": {
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/unmuteActor.json b/lexicons/app/bsky/graph/unmuteActor.json
new file mode 100644
index 0000000000..8b9ca6cdb2
--- /dev/null
+++ b/lexicons/app/bsky/graph/unmuteActor.json
@@ -0,0 +1,26 @@
+{
+ "id": "app.bsky.graph.unmuteActor",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "actor"
+ ],
+ "properties": {
+ "actor": {
+ "type": "string",
+ "format": "at-identifier"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Unmutes the specified account. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/unmuteActorList.json b/lexicons/app/bsky/graph/unmuteActorList.json
new file mode 100644
index 0000000000..b770634928
--- /dev/null
+++ b/lexicons/app/bsky/graph/unmuteActorList.json
@@ -0,0 +1,26 @@
+{
+ "id": "app.bsky.graph.unmuteActorList",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "list"
+ ],
+ "properties": {
+ "list": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Unmutes the specified list of accounts. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/unmuteThread.json b/lexicons/app/bsky/graph/unmuteThread.json
new file mode 100644
index 0000000000..5b86269582
--- /dev/null
+++ b/lexicons/app/bsky/graph/unmuteThread.json
@@ -0,0 +1,26 @@
+{
+ "id": "app.bsky.graph.unmuteThread",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "root"
+ ],
+ "properties": {
+ "root": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Unmutes the specified thread. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/graph/verification.json b/lexicons/app/bsky/graph/verification.json
new file mode 100644
index 0000000000..6d55ebf909
--- /dev/null
+++ b/lexicons/app/bsky/graph/verification.json
@@ -0,0 +1,42 @@
+{
+ "id": "app.bsky.graph.verification",
+ "defs": {
+ "main": {
+ "key": "tid",
+ "type": "record",
+ "record": {
+ "type": "object",
+ "required": [
+ "subject",
+ "handle",
+ "displayName",
+ "createdAt"
+ ],
+ "properties": {
+ "handle": {
+ "type": "string",
+ "format": "handle",
+ "description": "Handle of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current handle matches the one at the time of verifying."
+ },
+ "subject": {
+ "type": "string",
+ "format": "did",
+ "description": "DID of the subject the verification applies to."
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "Date of when the verification was created."
+ },
+ "displayName": {
+ "type": "string",
+ "description": "Display name of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current displayName matches the one at the time of verifying."
+ }
+ }
+ },
+ "description": "Record declaring a verification relationship between two accounts. Verifications are only considered valid by an app if issued by an account the app considers trusted."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/labeler/defs.json b/lexicons/app/bsky/labeler/defs.json
new file mode 100644
index 0000000000..20de6e051b
--- /dev/null
+++ b/lexicons/app/bsky/labeler/defs.json
@@ -0,0 +1,153 @@
+{
+ "id": "app.bsky.labeler.defs",
+ "defs": {
+ "labelerView": {
+ "type": "object",
+ "required": [
+ "uri",
+ "cid",
+ "creator",
+ "indexedAt"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.label.defs#label",
+ "type": "ref"
+ }
+ },
+ "viewer": {
+ "ref": "#labelerViewerState",
+ "type": "ref"
+ },
+ "creator": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ },
+ "indexedAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "likeCount": {
+ "type": "integer",
+ "minimum": 0
+ }
+ }
+ },
+ "labelerPolicies": {
+ "type": "object",
+ "required": [
+ "labelValues"
+ ],
+ "properties": {
+ "labelValues": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.label.defs#labelValue",
+ "type": "ref"
+ },
+ "description": "The label values which this labeler publishes. May include global or custom labels."
+ },
+ "labelValueDefinitions": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.label.defs#labelValueDefinition",
+ "type": "ref"
+ },
+ "description": "Label values created by this labeler and scoped exclusively to it. Labels defined here will override global label definitions for this labeler."
+ }
+ }
+ },
+ "labelerViewerState": {
+ "type": "object",
+ "properties": {
+ "like": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ }
+ },
+ "labelerViewDetailed": {
+ "type": "object",
+ "required": [
+ "uri",
+ "cid",
+ "creator",
+ "policies",
+ "indexedAt"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.label.defs#label",
+ "type": "ref"
+ }
+ },
+ "viewer": {
+ "ref": "#labelerViewerState",
+ "type": "ref"
+ },
+ "creator": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ },
+ "policies": {
+ "ref": "app.bsky.labeler.defs#labelerPolicies",
+ "type": "ref"
+ },
+ "indexedAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "likeCount": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "reasonTypes": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.moderation.defs#reasonType",
+ "type": "ref"
+ },
+ "description": "The set of report reason 'codes' which are in-scope for this service to review and action. These usually align to policy categories. If not defined (distinct from empty array), all reason types are allowed."
+ },
+ "subjectTypes": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.moderation.defs#subjectType",
+ "type": "ref"
+ },
+ "description": "The set of subject types (account, record, etc) this service accepts reports on."
+ },
+ "subjectCollections": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "nsid"
+ },
+ "description": "Set of record types (collection NSIDs) which can be reported to this service. If not defined (distinct from empty array), default is any record type."
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/labeler/getServices.json b/lexicons/app/bsky/labeler/getServices.json
new file mode 100644
index 0000000000..84a8856569
--- /dev/null
+++ b/lexicons/app/bsky/labeler/getServices.json
@@ -0,0 +1,51 @@
+{
+ "id": "app.bsky.labeler.getServices",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "views"
+ ],
+ "properties": {
+ "views": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "app.bsky.labeler.defs#labelerView",
+ "app.bsky.labeler.defs#labelerViewDetailed"
+ ],
+ "type": "union"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "dids"
+ ],
+ "properties": {
+ "dids": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "did"
+ }
+ },
+ "detailed": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ },
+ "description": "Get information about a list of labeler services."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/labeler/service.json b/lexicons/app/bsky/labeler/service.json
new file mode 100644
index 0000000000..65f20e1fee
--- /dev/null
+++ b/lexicons/app/bsky/labeler/service.json
@@ -0,0 +1,59 @@
+{
+ "id": "app.bsky.labeler.service",
+ "defs": {
+ "main": {
+ "key": "literal:self",
+ "type": "record",
+ "record": {
+ "type": "object",
+ "required": [
+ "policies",
+ "createdAt"
+ ],
+ "properties": {
+ "labels": {
+ "refs": [
+ "com.atproto.label.defs#selfLabels"
+ ],
+ "type": "union"
+ },
+ "policies": {
+ "ref": "app.bsky.labeler.defs#labelerPolicies",
+ "type": "ref"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "reasonTypes": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.moderation.defs#reasonType",
+ "type": "ref"
+ },
+ "description": "The set of report reason 'codes' which are in-scope for this service to review and action. These usually align to policy categories. If not defined (distinct from empty array), all reason types are allowed."
+ },
+ "subjectTypes": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.moderation.defs#subjectType",
+ "type": "ref"
+ },
+ "description": "The set of subject types (account, record, etc) this service accepts reports on."
+ },
+ "subjectCollections": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "nsid"
+ },
+ "description": "Set of record types (collection NSIDs) which can be reported to this service. If not defined (distinct from empty array), default is any record type."
+ }
+ }
+ },
+ "description": "A declaration of the existence of labeler service."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/notification/declaration.json b/lexicons/app/bsky/notification/declaration.json
new file mode 100644
index 0000000000..185af94404
--- /dev/null
+++ b/lexicons/app/bsky/notification/declaration.json
@@ -0,0 +1,29 @@
+{
+ "id": "app.bsky.notification.declaration",
+ "defs": {
+ "main": {
+ "key": "literal:self",
+ "type": "record",
+ "record": {
+ "type": "object",
+ "required": [
+ "allowSubscriptions"
+ ],
+ "properties": {
+ "allowSubscriptions": {
+ "type": "string",
+ "description": "A declaration of the user's preference for allowing activity subscriptions from other users. Absence of a record implies 'followers'.",
+ "knownValues": [
+ "followers",
+ "mutuals",
+ "none"
+ ]
+ }
+ }
+ },
+ "description": "A declaration of the user's choices related to notifications that can be produced by them."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/notification/defs.json b/lexicons/app/bsky/notification/defs.json
new file mode 100644
index 0000000000..3e767ca298
--- /dev/null
+++ b/lexicons/app/bsky/notification/defs.json
@@ -0,0 +1,175 @@
+{
+ "id": "app.bsky.notification.defs",
+ "defs": {
+ "preference": {
+ "type": "object",
+ "required": [
+ "list",
+ "push"
+ ],
+ "properties": {
+ "list": {
+ "type": "boolean"
+ },
+ "push": {
+ "type": "boolean"
+ }
+ }
+ },
+ "preferences": {
+ "type": "object",
+ "required": [
+ "chat",
+ "follow",
+ "like",
+ "likeViaRepost",
+ "mention",
+ "quote",
+ "reply",
+ "repost",
+ "repostViaRepost",
+ "starterpackJoined",
+ "subscribedPost",
+ "unverified",
+ "verified"
+ ],
+ "properties": {
+ "chat": {
+ "ref": "#chatPreference",
+ "type": "ref",
+ "description": "Deprecated: use chat.bsky.notification preferences instead. This will only return a default value."
+ },
+ "like": {
+ "ref": "#filterablePreference",
+ "type": "ref"
+ },
+ "quote": {
+ "ref": "#filterablePreference",
+ "type": "ref"
+ },
+ "reply": {
+ "ref": "#filterablePreference",
+ "type": "ref"
+ },
+ "follow": {
+ "ref": "#filterablePreference",
+ "type": "ref"
+ },
+ "repost": {
+ "ref": "#filterablePreference",
+ "type": "ref"
+ },
+ "mention": {
+ "ref": "#filterablePreference",
+ "type": "ref"
+ },
+ "verified": {
+ "ref": "#preference",
+ "type": "ref"
+ },
+ "unverified": {
+ "ref": "#preference",
+ "type": "ref"
+ },
+ "likeViaRepost": {
+ "ref": "#filterablePreference",
+ "type": "ref"
+ },
+ "subscribedPost": {
+ "ref": "#preference",
+ "type": "ref"
+ },
+ "repostViaRepost": {
+ "ref": "#filterablePreference",
+ "type": "ref"
+ },
+ "starterpackJoined": {
+ "ref": "#preference",
+ "type": "ref"
+ }
+ }
+ },
+ "recordDeleted": {
+ "type": "object",
+ "properties": {}
+ },
+ "chatPreference": {
+ "type": "object",
+ "required": [
+ "include",
+ "push"
+ ],
+ "properties": {
+ "push": {
+ "type": "boolean"
+ },
+ "include": {
+ "type": "string",
+ "knownValues": [
+ "all",
+ "accepted"
+ ]
+ }
+ },
+ "description": "Deprecated: use chat.bsky.notification preferences instead. This will only return a default value."
+ },
+ "activitySubscription": {
+ "type": "object",
+ "required": [
+ "post",
+ "reply"
+ ],
+ "properties": {
+ "post": {
+ "type": "boolean"
+ },
+ "reply": {
+ "type": "boolean"
+ }
+ }
+ },
+ "filterablePreference": {
+ "type": "object",
+ "required": [
+ "include",
+ "list",
+ "push"
+ ],
+ "properties": {
+ "list": {
+ "type": "boolean"
+ },
+ "push": {
+ "type": "boolean"
+ },
+ "include": {
+ "type": "string",
+ "knownValues": [
+ "all",
+ "follows"
+ ]
+ }
+ }
+ },
+ "subjectActivitySubscription": {
+ "type": "object",
+ "required": [
+ "subject",
+ "activitySubscription"
+ ],
+ "properties": {
+ "subject": {
+ "type": "string",
+ "format": "did"
+ },
+ "activitySubscription": {
+ "ref": "#activitySubscription",
+ "type": "ref"
+ }
+ },
+ "description": "Object used to store activity subscription data in stash."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/notification/getPreferences.json b/lexicons/app/bsky/notification/getPreferences.json
new file mode 100644
index 0000000000..54482fb455
--- /dev/null
+++ b/lexicons/app/bsky/notification/getPreferences.json
@@ -0,0 +1,30 @@
+{
+ "id": "app.bsky.notification.getPreferences",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "preferences"
+ ],
+ "properties": {
+ "preferences": {
+ "ref": "app.bsky.notification.defs#preferences",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {}
+ },
+ "description": "Get notification-related preferences for an account. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/notification/getUnreadCount.json b/lexicons/app/bsky/notification/getUnreadCount.json
new file mode 100644
index 0000000000..87a37810d9
--- /dev/null
+++ b/lexicons/app/bsky/notification/getUnreadCount.json
@@ -0,0 +1,37 @@
+{
+ "id": "app.bsky.notification.getUnreadCount",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "count"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "seenAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "priority": {
+ "type": "boolean"
+ }
+ }
+ },
+ "description": "Count the number of unread notifications for the requesting account. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/notification/listActivitySubscriptions.json b/lexicons/app/bsky/notification/listActivitySubscriptions.json
new file mode 100644
index 0000000000..350b822ac9
--- /dev/null
+++ b/lexicons/app/bsky/notification/listActivitySubscriptions.json
@@ -0,0 +1,46 @@
+{
+ "id": "app.bsky.notification.listActivitySubscriptions",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "subscriptions"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "subscriptions": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Enumerate all accounts to which the requesting account is subscribed to receive notifications for. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/notification/listNotifications.json b/lexicons/app/bsky/notification/listNotifications.json
new file mode 100644
index 0000000000..2c2aa20207
--- /dev/null
+++ b/lexicons/app/bsky/notification/listNotifications.json
@@ -0,0 +1,139 @@
+{
+ "id": "app.bsky.notification.listNotifications",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "notifications"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "seenAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "priority": {
+ "type": "boolean"
+ },
+ "notifications": {
+ "type": "array",
+ "items": {
+ "ref": "#notification",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ },
+ "seenAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "reasons": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "description": "A reason that matches the reason property of #notification."
+ },
+ "description": "Notification reasons to include in response."
+ },
+ "priority": {
+ "type": "boolean"
+ }
+ }
+ },
+ "description": "Enumerate notifications for the requesting account. Requires auth."
+ },
+ "notification": {
+ "type": "object",
+ "required": [
+ "uri",
+ "cid",
+ "author",
+ "reason",
+ "record",
+ "isRead",
+ "indexedAt"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "author": {
+ "ref": "app.bsky.actor.defs#profileView",
+ "type": "ref"
+ },
+ "isRead": {
+ "type": "boolean"
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.label.defs#label",
+ "type": "ref"
+ }
+ },
+ "reason": {
+ "type": "string",
+ "description": "The reason why this notification was delivered - e.g. your post was liked, or you received a new follower.",
+ "knownValues": [
+ "like",
+ "repost",
+ "follow",
+ "mention",
+ "reply",
+ "quote",
+ "starterpack-joined",
+ "verified",
+ "unverified",
+ "like-via-repost",
+ "repost-via-repost",
+ "subscribed-post",
+ "contact-match"
+ ]
+ },
+ "record": {
+ "type": "unknown"
+ },
+ "indexedAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "starterPack": {
+ "ref": "app.bsky.graph.defs#starterPackViewBasic",
+ "type": "ref",
+ "description": "The starter pack associated with this notification. Present when the notification is for a follow originating from a starter pack."
+ },
+ "reasonSubject": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/notification/putActivitySubscription.json b/lexicons/app/bsky/notification/putActivitySubscription.json
new file mode 100644
index 0000000000..65cc67b335
--- /dev/null
+++ b/lexicons/app/bsky/notification/putActivitySubscription.json
@@ -0,0 +1,50 @@
+{
+ "id": "app.bsky.notification.putActivitySubscription",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "subject",
+ "activitySubscription"
+ ],
+ "properties": {
+ "subject": {
+ "type": "string",
+ "format": "did"
+ },
+ "activitySubscription": {
+ "ref": "app.bsky.notification.defs#activitySubscription",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "subject"
+ ],
+ "properties": {
+ "subject": {
+ "type": "string",
+ "format": "did"
+ },
+ "activitySubscription": {
+ "ref": "app.bsky.notification.defs#activitySubscription",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Puts an activity subscription entry. The key should be omitted for creation and provided for updates. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/notification/putPreferences.json b/lexicons/app/bsky/notification/putPreferences.json
new file mode 100644
index 0000000000..2875de467b
--- /dev/null
+++ b/lexicons/app/bsky/notification/putPreferences.json
@@ -0,0 +1,25 @@
+{
+ "id": "app.bsky.notification.putPreferences",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "priority"
+ ],
+ "properties": {
+ "priority": {
+ "type": "boolean"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Set notification-related preferences for an account. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/notification/putPreferencesV2.json b/lexicons/app/bsky/notification/putPreferencesV2.json
new file mode 100644
index 0000000000..6a5d98fbda
--- /dev/null
+++ b/lexicons/app/bsky/notification/putPreferencesV2.json
@@ -0,0 +1,87 @@
+{
+ "id": "app.bsky.notification.putPreferencesV2",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "chat": {
+ "ref": "app.bsky.notification.defs#chatPreference",
+ "type": "ref",
+ "description": "Deprecated: use chat.bsky.notification preferences instead. Setting this won't stick and the default values will be returned."
+ },
+ "like": {
+ "ref": "app.bsky.notification.defs#filterablePreference",
+ "type": "ref"
+ },
+ "quote": {
+ "ref": "app.bsky.notification.defs#filterablePreference",
+ "type": "ref"
+ },
+ "reply": {
+ "ref": "app.bsky.notification.defs#filterablePreference",
+ "type": "ref"
+ },
+ "follow": {
+ "ref": "app.bsky.notification.defs#filterablePreference",
+ "type": "ref"
+ },
+ "repost": {
+ "ref": "app.bsky.notification.defs#filterablePreference",
+ "type": "ref"
+ },
+ "mention": {
+ "ref": "app.bsky.notification.defs#filterablePreference",
+ "type": "ref"
+ },
+ "verified": {
+ "ref": "app.bsky.notification.defs#preference",
+ "type": "ref"
+ },
+ "unverified": {
+ "ref": "app.bsky.notification.defs#preference",
+ "type": "ref"
+ },
+ "likeViaRepost": {
+ "ref": "app.bsky.notification.defs#filterablePreference",
+ "type": "ref"
+ },
+ "subscribedPost": {
+ "ref": "app.bsky.notification.defs#preference",
+ "type": "ref"
+ },
+ "repostViaRepost": {
+ "ref": "app.bsky.notification.defs#filterablePreference",
+ "type": "ref"
+ },
+ "starterpackJoined": {
+ "ref": "app.bsky.notification.defs#preference",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "preferences"
+ ],
+ "properties": {
+ "preferences": {
+ "ref": "app.bsky.notification.defs#preferences",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Set notification-related preferences for an account. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/notification/registerPush.json b/lexicons/app/bsky/notification/registerPush.json
new file mode 100644
index 0000000000..db1fff3ab7
--- /dev/null
+++ b/lexicons/app/bsky/notification/registerPush.json
@@ -0,0 +1,47 @@
+{
+ "id": "app.bsky.notification.registerPush",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "serviceDid",
+ "token",
+ "platform",
+ "appId"
+ ],
+ "properties": {
+ "appId": {
+ "type": "string"
+ },
+ "token": {
+ "type": "string"
+ },
+ "platform": {
+ "type": "string",
+ "knownValues": [
+ "ios",
+ "android",
+ "web"
+ ]
+ },
+ "serviceDid": {
+ "type": "string",
+ "format": "did"
+ },
+ "ageRestricted": {
+ "type": "boolean",
+ "description": "Set to true when the actor is age restricted"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Register to receive push notifications, via a specified service, for the requesting account. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/notification/unregisterPush.json b/lexicons/app/bsky/notification/unregisterPush.json
new file mode 100644
index 0000000000..a73bd6afde
--- /dev/null
+++ b/lexicons/app/bsky/notification/unregisterPush.json
@@ -0,0 +1,43 @@
+{
+ "id": "app.bsky.notification.unregisterPush",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "serviceDid",
+ "token",
+ "platform",
+ "appId"
+ ],
+ "properties": {
+ "appId": {
+ "type": "string"
+ },
+ "token": {
+ "type": "string"
+ },
+ "platform": {
+ "type": "string",
+ "knownValues": [
+ "ios",
+ "android",
+ "web"
+ ]
+ },
+ "serviceDid": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "The inverse of registerPush - inform a specified service that push notifications should no longer be sent to the given token for the requesting account. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/notification/updateSeen.json b/lexicons/app/bsky/notification/updateSeen.json
new file mode 100644
index 0000000000..128b8611e3
--- /dev/null
+++ b/lexicons/app/bsky/notification/updateSeen.json
@@ -0,0 +1,26 @@
+{
+ "id": "app.bsky.notification.updateSeen",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "seenAt"
+ ],
+ "properties": {
+ "seenAt": {
+ "type": "string",
+ "format": "datetime"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Notify server that the requesting account has seen notifications. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/richtext/facet.json b/lexicons/app/bsky/richtext/facet.json
new file mode 100644
index 0000000000..39b039b790
--- /dev/null
+++ b/lexicons/app/bsky/richtext/facet.json
@@ -0,0 +1,90 @@
+{
+ "id": "app.bsky.richtext.facet",
+ "defs": {
+ "tag": {
+ "type": "object",
+ "required": [
+ "tag"
+ ],
+ "properties": {
+ "tag": {
+ "type": "string",
+ "maxLength": 640,
+ "maxGraphemes": 64
+ }
+ },
+ "description": "Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not (except in the case of 'double hash tags')."
+ },
+ "link": {
+ "type": "object",
+ "required": [
+ "uri"
+ ],
+ "properties": {
+ "uri": {
+ "type": "string",
+ "format": "uri"
+ }
+ },
+ "description": "Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL."
+ },
+ "main": {
+ "type": "object",
+ "required": [
+ "index",
+ "features"
+ ],
+ "properties": {
+ "index": {
+ "ref": "#byteSlice",
+ "type": "ref"
+ },
+ "features": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "#mention",
+ "#link",
+ "#tag"
+ ],
+ "type": "union"
+ }
+ }
+ },
+ "description": "Annotation of a sub-string within rich text."
+ },
+ "mention": {
+ "type": "object",
+ "required": [
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ }
+ },
+ "description": "Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID."
+ },
+ "byteSlice": {
+ "type": "object",
+ "required": [
+ "byteStart",
+ "byteEnd"
+ ],
+ "properties": {
+ "byteEnd": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "byteStart": {
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "description": "Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/unspecced/defs.json b/lexicons/app/bsky/unspecced/defs.json
new file mode 100644
index 0000000000..3dd830a6d2
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/defs.json
@@ -0,0 +1,208 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.defs",
+ "defs": {
+ "skeletonSearchPost": {
+ "type": "object",
+ "required": ["uri"],
+ "properties": {
+ "uri": { "type": "string", "format": "at-uri" }
+ }
+ },
+ "skeletonSearchActor": {
+ "type": "object",
+ "required": ["did"],
+ "properties": {
+ "did": { "type": "string", "format": "did" }
+ }
+ },
+ "skeletonSearchStarterPack": {
+ "type": "object",
+ "required": ["uri"],
+ "properties": {
+ "uri": { "type": "string", "format": "at-uri" }
+ }
+ },
+ "trendingTopic": {
+ "type": "object",
+ "required": ["topic", "link"],
+ "properties": {
+ "topic": { "type": "string" },
+ "displayName": { "type": "string" },
+ "description": { "type": "string" },
+ "link": { "type": "string" }
+ }
+ },
+ "skeletonTrend": {
+ "type": "object",
+ "required": [
+ "topic",
+ "displayName",
+ "link",
+ "startedAt",
+ "postCount",
+ "dids"
+ ],
+ "properties": {
+ "topic": { "type": "string" },
+ "displayName": { "type": "string" },
+ "description": { "type": "string" },
+ "link": { "type": "string" },
+ "startedAt": { "type": "string", "format": "datetime" },
+ "postCount": { "type": "integer" },
+ "status": { "type": "string", "knownValues": ["hot"] },
+ "category": { "type": "string" },
+ "dids": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ }
+ },
+ "trendView": {
+ "type": "object",
+ "required": [
+ "topic",
+ "displayName",
+ "link",
+ "startedAt",
+ "postCount",
+ "actors"
+ ],
+ "properties": {
+ "topic": { "type": "string" },
+ "displayName": { "type": "string" },
+ "description": { "type": "string" },
+ "link": { "type": "string" },
+ "startedAt": { "type": "string", "format": "datetime" },
+ "postCount": { "type": "integer" },
+ "status": { "type": "string", "knownValues": ["hot"] },
+ "category": { "type": "string" },
+ "actors": {
+ "type": "array",
+ "items": {
+ "type": "ref",
+ "ref": "app.bsky.actor.defs#profileViewBasic"
+ }
+ }
+ }
+ },
+ "threadItemPost": {
+ "type": "object",
+ "required": [
+ "post",
+ "moreParents",
+ "moreReplies",
+ "opThread",
+ "hiddenByThreadgate",
+ "mutedByViewer"
+ ],
+ "properties": {
+ "post": { "type": "ref", "ref": "app.bsky.feed.defs#postView" },
+ "moreParents": {
+ "type": "boolean",
+ "description": "This post has more parents that were not present in the response. This is just a boolean, without the number of parents."
+ },
+ "moreReplies": {
+ "type": "integer",
+ "description": "This post has more replies that were not present in the response. This is a numeric value, which is best-effort and might not be accurate."
+ },
+ "opThread": {
+ "type": "boolean",
+ "description": "This post is part of a contiguous thread by the OP from the thread root. Sub-threads by OP deeper in the tree are not considered an OP thread."
+ },
+ "opThreadPostIndex": {
+ "type": "integer",
+ "description": "The 1-indexed position of this post within the contiguous OP thread. Only present when this post is part of the OP thread (see `opThread`)."
+ },
+ "opThreadPostCount": {
+ "type": "integer",
+ "description": "The total number of posts in the contiguous OP thread that this post belongs to. Only present when this post is part of the OP thread (see `opThread`)."
+ },
+ "hiddenByThreadgate": {
+ "type": "boolean",
+ "description": "The threadgate created by the author indicates this post as a reply to be hidden for everyone consuming the thread."
+ },
+ "mutedByViewer": {
+ "type": "boolean",
+ "description": "This is by an account muted by the viewer requesting it."
+ }
+ }
+ },
+ "threadItemNoUnauthenticated": {
+ "type": "object",
+ "properties": {}
+ },
+ "threadItemNotFound": {
+ "type": "object",
+ "properties": {}
+ },
+ "threadItemBlocked": {
+ "type": "object",
+ "required": ["author"],
+ "properties": {
+ "author": { "type": "ref", "ref": "app.bsky.feed.defs#blockedAuthor" }
+ }
+ },
+ "ageAssuranceState": {
+ "type": "object",
+ "description": "The computed state of the age assurance process, returned to the user in question on certain authenticated requests.",
+ "required": ["status"],
+ "properties": {
+ "lastInitiatedAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "The timestamp when this state was last updated."
+ },
+ "status": {
+ "type": "string",
+ "description": "The status of the age assurance process.",
+ "knownValues": ["unknown", "pending", "assured", "blocked"]
+ }
+ }
+ },
+ "ageAssuranceEvent": {
+ "type": "object",
+ "description": "Object used to store age assurance data in stash.",
+ "required": ["createdAt", "status", "attemptId"],
+ "properties": {
+ "createdAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "The date and time of this write operation."
+ },
+ "status": {
+ "type": "string",
+ "description": "The status of the age assurance process.",
+ "knownValues": ["unknown", "pending", "assured"]
+ },
+ "attemptId": {
+ "type": "string",
+ "description": "The unique identifier for this instance of the age assurance flow, in UUID format."
+ },
+ "email": {
+ "type": "string",
+ "description": "The email used for AA."
+ },
+ "initIp": {
+ "type": "string",
+ "description": "The IP address used when initiating the AA flow."
+ },
+ "initUa": {
+ "type": "string",
+ "description": "The user agent used when initiating the AA flow."
+ },
+ "completeIp": {
+ "type": "string",
+ "description": "The IP address used when completing the AA flow."
+ },
+ "completeUa": {
+ "type": "string",
+ "description": "The user agent used when completing the AA flow."
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getAgeAssuranceState.json b/lexicons/app/bsky/unspecced/getAgeAssuranceState.json
new file mode 100644
index 0000000000..3bd42b3246
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getAgeAssuranceState.json
@@ -0,0 +1,17 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getAgeAssuranceState",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Returns the current state of the age assurance process for an account. This is used to check if the user has completed age assurance or if further action is required.",
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "ref",
+ "ref": "app.bsky.unspecced.defs#ageAssuranceState"
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getConfig.json b/lexicons/app/bsky/unspecced/getConfig.json
new file mode 100644
index 0000000000..286bc48058
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getConfig.json
@@ -0,0 +1,37 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getConfig",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get miscellaneous runtime configuration.",
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "checkEmailConfirmed": { "type": "boolean" },
+ "liveNow": {
+ "type": "array",
+ "items": { "type": "ref", "ref": "#liveNowConfig" }
+ }
+ }
+ }
+ }
+ },
+ "liveNowConfig": {
+ "type": "object",
+ "required": ["did", "domains"],
+ "properties": {
+ "did": { "type": "string", "format": "did" },
+ "domains": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.json b/lexicons/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.json
new file mode 100644
index 0000000000..60b1490137
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.json
@@ -0,0 +1,37 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getOnboardingSuggestedStarterPacks",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get a list of suggested starterpacks for onboarding",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 25,
+ "default": 10
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["starterPacks"],
+ "properties": {
+ "starterPacks": {
+ "type": "array",
+ "items": {
+ "type": "ref",
+ "ref": "app.bsky.graph.defs#starterPackView"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getOnboardingSuggestedStarterPacksSkeleton.json b/lexicons/app/bsky/unspecced/getOnboardingSuggestedStarterPacksSkeleton.json
new file mode 100644
index 0000000000..40f3a76264
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getOnboardingSuggestedStarterPacksSkeleton.json
@@ -0,0 +1,42 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getOnboardingSuggestedStarterPacksSkeleton",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get a skeleton of suggested starterpacks for onboarding. Intended to be called and hydrated by app.bsky.unspecced.getOnboardingSuggestedStarterPacks",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "viewer": {
+ "type": "string",
+ "format": "did",
+ "description": "DID of the account making the request (not included for public/unauthenticated queries)."
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 25,
+ "default": 10
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["starterPacks"],
+ "properties": {
+ "starterPacks": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getOnboardingSuggestedUsersSkeleton.json b/lexicons/app/bsky/unspecced/getOnboardingSuggestedUsersSkeleton.json
new file mode 100644
index 0000000000..1303ac174d
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getOnboardingSuggestedUsersSkeleton.json
@@ -0,0 +1,54 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getOnboardingSuggestedUsersSkeleton",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get a skeleton of suggested users for onboarding. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedOnboardingUsers",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "viewer": {
+ "type": "string",
+ "format": "did",
+ "description": "DID of the account making the request (not included for public/unauthenticated queries)."
+ },
+ "category": {
+ "type": "string",
+ "description": "Category of users to get suggestions for."
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 50,
+ "default": 25
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["dids"],
+ "properties": {
+ "dids": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "did"
+ }
+ },
+ "recId": {
+ "type": "string",
+ "description": "DEPRECATED: use recIdStr instead."
+ },
+ "recIdStr": {
+ "type": "string",
+ "description": "Snowflake for this recommendation, use when submitting recommendation events."
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getPopularFeedGenerators.json b/lexicons/app/bsky/unspecced/getPopularFeedGenerators.json
new file mode 100644
index 0000000000..ee05c16a1c
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getPopularFeedGenerators.json
@@ -0,0 +1,40 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getPopularFeedGenerators",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "An unspecced view of globally popular feed generators.",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 100,
+ "default": 50
+ },
+ "cursor": { "type": "string" },
+ "query": { "type": "string" }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["feeds"],
+ "properties": {
+ "cursor": { "type": "string" },
+ "feeds": {
+ "type": "array",
+ "items": {
+ "type": "ref",
+ "ref": "app.bsky.feed.defs#generatorView"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getPostThreadOtherV2.json b/lexicons/app/bsky/unspecced/getPostThreadOtherV2.json
new file mode 100644
index 0000000000..7fab28bfeb
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getPostThreadOtherV2.json
@@ -0,0 +1,56 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getPostThreadOtherV2",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "(NOTE: this endpoint is under development and WILL change without notice. Don't use it until it is moved out of `unspecced` or your application WILL break) Get additional posts under a thread e.g. replies hidden by threadgate. Based on an anchor post at any depth of the tree, returns top-level replies below that anchor. It does not include ancestors nor the anchor itself. This should be called after exhausting `app.bsky.unspecced.getPostThreadV2`. Does not require auth, but additional metadata and filtering will be applied for authed requests.",
+ "parameters": {
+ "type": "params",
+ "required": ["anchor"],
+ "properties": {
+ "anchor": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "Reference (AT-URI) to post record. This is the anchor post."
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["thread"],
+ "properties": {
+ "thread": {
+ "type": "array",
+ "description": "A flat list of other thread items. The depth of each item is indicated by the depth property inside the item.",
+ "items": {
+ "type": "ref",
+ "ref": "#threadItem"
+ }
+ }
+ }
+ }
+ }
+ },
+ "threadItem": {
+ "type": "object",
+ "required": ["uri", "depth", "value"],
+ "properties": {
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "depth": {
+ "type": "integer",
+ "description": "The nesting level of this item in the thread. Depth 0 means the anchor item. Items above have negative depths, items below have positive depths."
+ },
+ "value": {
+ "type": "union",
+ "refs": ["app.bsky.unspecced.defs#threadItemPost"]
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getPostThreadV2.json b/lexicons/app/bsky/unspecced/getPostThreadV2.json
new file mode 100644
index 0000000000..e38dfde964
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getPostThreadV2.json
@@ -0,0 +1,94 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getPostThreadV2",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "(NOTE: this endpoint is under development and WILL change without notice. Don't use it until it is moved out of `unspecced` or your application WILL break) Get posts in a thread. It is based in an anchor post at any depth of the tree, and returns posts above it (recursively resolving the parent, without further branching to their replies) and below it (recursive replies, with branching to their replies). Does not require auth, but additional metadata and filtering will be applied for authed requests.",
+ "parameters": {
+ "type": "params",
+ "required": ["anchor"],
+ "properties": {
+ "anchor": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "Reference (AT-URI) to post record. This is the anchor post, and the thread will be built around it. It can be any post in the tree, not necessarily a root post."
+ },
+ "above": {
+ "type": "boolean",
+ "description": "Whether to include parents above the anchor.",
+ "default": true
+ },
+ "below": {
+ "type": "integer",
+ "description": "How many levels of replies to include below the anchor.",
+ "default": 6,
+ "minimum": 0,
+ "maximum": 20
+ },
+ "branchingFactor": {
+ "type": "integer",
+ "description": "Maximum of replies to include at each level of the thread, except for the direct replies to the anchor, which are (NOTE: currently, during unspecced phase) all returned (NOTE: later they might be paginated).",
+ "default": 10,
+ "minimum": 0,
+ "maximum": 100
+ },
+ "sort": {
+ "type": "string",
+ "description": "Sorting for the thread replies.",
+ "knownValues": ["newest", "oldest", "top"],
+ "default": "oldest"
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["thread", "hasOtherReplies"],
+ "properties": {
+ "thread": {
+ "type": "array",
+ "description": "A flat list of thread items. The depth of each item is indicated by the depth property inside the item.",
+ "items": {
+ "type": "ref",
+ "ref": "#threadItem"
+ }
+ },
+ "threadgate": {
+ "type": "ref",
+ "ref": "app.bsky.feed.defs#threadgateView"
+ },
+ "hasOtherReplies": {
+ "type": "boolean",
+ "description": "Whether this thread has additional replies. If true, a call can be made to the `getPostThreadOtherV2` endpoint to retrieve them."
+ }
+ }
+ }
+ }
+ },
+ "threadItem": {
+ "type": "object",
+ "required": ["uri", "depth", "value"],
+ "properties": {
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "depth": {
+ "type": "integer",
+ "description": "The nesting level of this item in the thread. Depth 0 means the anchor item. Items above have negative depths, items below have positive depths."
+ },
+ "value": {
+ "type": "union",
+ "refs": [
+ "app.bsky.unspecced.defs#threadItemPost",
+ "app.bsky.unspecced.defs#threadItemNoUnauthenticated",
+ "app.bsky.unspecced.defs#threadItemNotFound",
+ "app.bsky.unspecced.defs#threadItemBlocked"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getSuggestedFeeds.json b/lexicons/app/bsky/unspecced/getSuggestedFeeds.json
new file mode 100644
index 0000000000..1a723a0bbb
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getSuggestedFeeds.json
@@ -0,0 +1,37 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getSuggestedFeeds",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get a list of suggested feeds",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 25,
+ "default": 10
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["feeds"],
+ "properties": {
+ "feeds": {
+ "type": "array",
+ "items": {
+ "type": "ref",
+ "ref": "app.bsky.feed.defs#generatorView"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getSuggestedFeedsSkeleton.json b/lexicons/app/bsky/unspecced/getSuggestedFeedsSkeleton.json
new file mode 100644
index 0000000000..c0b72da680
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getSuggestedFeedsSkeleton.json
@@ -0,0 +1,42 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getSuggestedFeedsSkeleton",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get a skeleton of suggested feeds. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedFeeds",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "viewer": {
+ "type": "string",
+ "format": "did",
+ "description": "DID of the account making the request (not included for public/unauthenticated queries)."
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 25,
+ "default": 10
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["feeds"],
+ "properties": {
+ "feeds": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getSuggestedOnboardingUsers.json b/lexicons/app/bsky/unspecced/getSuggestedOnboardingUsers.json
new file mode 100644
index 0000000000..24e45566ef
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getSuggestedOnboardingUsers.json
@@ -0,0 +1,49 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getSuggestedOnboardingUsers",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get a list of suggested users for onboarding",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "category": {
+ "type": "string",
+ "description": "Category of users to get suggestions for."
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 50,
+ "default": 25
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["actors"],
+ "properties": {
+ "actors": {
+ "type": "array",
+ "items": {
+ "type": "ref",
+ "ref": "app.bsky.actor.defs#profileView"
+ }
+ },
+ "recId": {
+ "type": "string",
+ "description": "DEPRECATED: use recIdStr instead."
+ },
+ "recIdStr": {
+ "type": "string",
+ "description": "Snowflake for this recommendation, use when submitting recommendation events."
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getSuggestedStarterPacks.json b/lexicons/app/bsky/unspecced/getSuggestedStarterPacks.json
new file mode 100644
index 0000000000..d4bdd22643
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getSuggestedStarterPacks.json
@@ -0,0 +1,37 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getSuggestedStarterPacks",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get a list of suggested starterpacks",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 25,
+ "default": 10
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["starterPacks"],
+ "properties": {
+ "starterPacks": {
+ "type": "array",
+ "items": {
+ "type": "ref",
+ "ref": "app.bsky.graph.defs#starterPackView"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.json b/lexicons/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.json
new file mode 100644
index 0000000000..cf5d88e060
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.json
@@ -0,0 +1,42 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getSuggestedStarterPacksSkeleton",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get a skeleton of suggested starterpacks. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedStarterpacks",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "viewer": {
+ "type": "string",
+ "format": "did",
+ "description": "DID of the account making the request (not included for public/unauthenticated queries)."
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 25,
+ "default": 10
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["starterPacks"],
+ "properties": {
+ "starterPacks": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getSuggestedUsers.json b/lexicons/app/bsky/unspecced/getSuggestedUsers.json
new file mode 100644
index 0000000000..705e21c9d6
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getSuggestedUsers.json
@@ -0,0 +1,49 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getSuggestedUsers",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get a list of suggested users",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "category": {
+ "type": "string",
+ "description": "Category of users to get suggestions for."
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 50,
+ "default": 25
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["actors"],
+ "properties": {
+ "actors": {
+ "type": "array",
+ "items": {
+ "type": "ref",
+ "ref": "app.bsky.actor.defs#profileView"
+ }
+ },
+ "recId": {
+ "type": "string",
+ "description": "DEPRECATED: use recIdStr instead."
+ },
+ "recIdStr": {
+ "type": "string",
+ "description": "Snowflake for this recommendation, use when submitting recommendation events."
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getSuggestedUsersForDiscover.json b/lexicons/app/bsky/unspecced/getSuggestedUsersForDiscover.json
new file mode 100644
index 0000000000..7d0f289d12
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getSuggestedUsersForDiscover.json
@@ -0,0 +1,41 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getSuggestedUsersForDiscover",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get a list of suggested users for the Discover page",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 50,
+ "default": 25
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["actors"],
+ "properties": {
+ "actors": {
+ "type": "array",
+ "items": {
+ "type": "ref",
+ "ref": "app.bsky.actor.defs#profileView"
+ }
+ },
+ "recIdStr": {
+ "type": "string",
+ "description": "Snowflake for this recommendation, use when submitting recommendation events."
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getSuggestedUsersForDiscoverSkeleton.json b/lexicons/app/bsky/unspecced/getSuggestedUsersForDiscoverSkeleton.json
new file mode 100644
index 0000000000..7f017ca5e6
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getSuggestedUsersForDiscoverSkeleton.json
@@ -0,0 +1,46 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getSuggestedUsersForDiscoverSkeleton",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get a skeleton of suggested users for the Discover page. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedUsersForDiscover",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "viewer": {
+ "type": "string",
+ "format": "did",
+ "description": "DID of the account making the request (not included for public/unauthenticated queries)."
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 50,
+ "default": 25
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["dids"],
+ "properties": {
+ "dids": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "did"
+ }
+ },
+ "recIdStr": {
+ "type": "string",
+ "description": "Snowflake for this recommendation, use when submitting recommendation events."
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getSuggestedUsersForExplore.json b/lexicons/app/bsky/unspecced/getSuggestedUsersForExplore.json
new file mode 100644
index 0000000000..a37a21a7eb
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getSuggestedUsersForExplore.json
@@ -0,0 +1,45 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getSuggestedUsersForExplore",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get a list of suggested users for the Explore page",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "category": {
+ "type": "string",
+ "description": "Category of users to get suggestions for."
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 50,
+ "default": 25
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["actors"],
+ "properties": {
+ "actors": {
+ "type": "array",
+ "items": {
+ "type": "ref",
+ "ref": "app.bsky.actor.defs#profileView"
+ }
+ },
+ "recIdStr": {
+ "type": "string",
+ "description": "Snowflake for this recommendation, use when submitting recommendation events."
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getSuggestedUsersForExploreSkeleton.json b/lexicons/app/bsky/unspecced/getSuggestedUsersForExploreSkeleton.json
new file mode 100644
index 0000000000..b3f3186e84
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getSuggestedUsersForExploreSkeleton.json
@@ -0,0 +1,50 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getSuggestedUsersForExploreSkeleton",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get a skeleton of suggested users for the Explore page. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedUsersForExplore",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "viewer": {
+ "type": "string",
+ "format": "did",
+ "description": "DID of the account making the request (not included for public/unauthenticated queries)."
+ },
+ "category": {
+ "type": "string",
+ "description": "Category of users to get suggestions for."
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 50,
+ "default": 25
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["dids"],
+ "properties": {
+ "dids": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "did"
+ }
+ },
+ "recIdStr": {
+ "type": "string",
+ "description": "Snowflake for this recommendation, use when submitting recommendation events."
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getSuggestedUsersForSeeMore.json b/lexicons/app/bsky/unspecced/getSuggestedUsersForSeeMore.json
new file mode 100644
index 0000000000..1938df7e55
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getSuggestedUsersForSeeMore.json
@@ -0,0 +1,45 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getSuggestedUsersForSeeMore",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get a list of suggested users for the See More page",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "category": {
+ "type": "string",
+ "description": "Category of users to get suggestions for."
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 50,
+ "default": 25
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["actors"],
+ "properties": {
+ "actors": {
+ "type": "array",
+ "items": {
+ "type": "ref",
+ "ref": "app.bsky.actor.defs#profileView"
+ }
+ },
+ "recIdStr": {
+ "type": "string",
+ "description": "Snowflake for this recommendation, use when submitting recommendation events."
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getSuggestedUsersForSeeMoreSkeleton.json b/lexicons/app/bsky/unspecced/getSuggestedUsersForSeeMoreSkeleton.json
new file mode 100644
index 0000000000..954b518d77
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getSuggestedUsersForSeeMoreSkeleton.json
@@ -0,0 +1,50 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getSuggestedUsersForSeeMoreSkeleton",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get a skeleton of suggested users for the See More page. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedUsersForSeeMore",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "viewer": {
+ "type": "string",
+ "format": "did",
+ "description": "DID of the account making the request (not included for public/unauthenticated queries)."
+ },
+ "category": {
+ "type": "string",
+ "description": "Category of users to get suggestions for."
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 50,
+ "default": 25
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["dids"],
+ "properties": {
+ "dids": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "did"
+ }
+ },
+ "recIdStr": {
+ "type": "string",
+ "description": "Snowflake for this recommendation, use when submitting recommendation events."
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getSuggestedUsersSkeleton.json b/lexicons/app/bsky/unspecced/getSuggestedUsersSkeleton.json
new file mode 100644
index 0000000000..3fed8dd95d
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getSuggestedUsersSkeleton.json
@@ -0,0 +1,54 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getSuggestedUsersSkeleton",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get a skeleton of suggested users. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedUsers",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "viewer": {
+ "type": "string",
+ "format": "did",
+ "description": "DID of the account making the request (not included for public/unauthenticated queries)."
+ },
+ "category": {
+ "type": "string",
+ "description": "Category of users to get suggestions for."
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 50,
+ "default": 25
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["dids"],
+ "properties": {
+ "dids": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "did"
+ }
+ },
+ "recId": {
+ "type": "string",
+ "description": "DEPRECATED: use recIdStr instead."
+ },
+ "recIdStr": {
+ "type": "string",
+ "description": "Snowflake for this recommendation, use when submitting recommendation events."
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getSuggestionsSkeleton.json b/lexicons/app/bsky/unspecced/getSuggestionsSkeleton.json
new file mode 100644
index 0000000000..f97504c31d
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getSuggestionsSkeleton.json
@@ -0,0 +1,62 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getSuggestionsSkeleton",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get a skeleton of suggested actors. Intended to be called and then hydrated through app.bsky.actor.getSuggestions",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "viewer": {
+ "type": "string",
+ "format": "did",
+ "description": "DID of the account making the request (not included for public/unauthenticated queries). Used to boost followed accounts in ranking."
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 100,
+ "default": 50
+ },
+ "cursor": { "type": "string" },
+ "relativeToDid": {
+ "type": "string",
+ "format": "did",
+ "description": "DID of the account to get suggestions relative to. If not provided, suggestions will be based on the viewer."
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["actors"],
+ "properties": {
+ "cursor": { "type": "string" },
+ "actors": {
+ "type": "array",
+ "items": {
+ "type": "ref",
+ "ref": "app.bsky.unspecced.defs#skeletonSearchActor"
+ }
+ },
+ "relativeToDid": {
+ "type": "string",
+ "format": "did",
+ "description": "DID of the account these suggestions are relative to. If this is returned undefined, suggestions are based on the viewer."
+ },
+ "recId": {
+ "type": "integer",
+ "description": "DEPRECATED: use recIdStr instead."
+ },
+ "recIdStr": {
+ "type": "string",
+ "description": "Snowflake for this recommendation, use when submitting recommendation events."
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getTaggedSuggestions.json b/lexicons/app/bsky/unspecced/getTaggedSuggestions.json
new file mode 100644
index 0000000000..9fd98ffefb
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getTaggedSuggestions.json
@@ -0,0 +1,42 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getTaggedSuggestions",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get a list of suggestions (feeds and users) tagged with categories",
+ "parameters": {
+ "type": "params",
+ "properties": {}
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["suggestions"],
+ "properties": {
+ "suggestions": {
+ "type": "array",
+ "items": {
+ "type": "ref",
+ "ref": "#suggestion"
+ }
+ }
+ }
+ }
+ }
+ },
+ "suggestion": {
+ "type": "object",
+ "required": ["tag", "subjectType", "subject"],
+ "properties": {
+ "tag": { "type": "string" },
+ "subjectType": {
+ "type": "string",
+ "knownValues": ["actor", "feed"]
+ },
+ "subject": { "type": "string", "format": "uri" }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getTrendingTopics.json b/lexicons/app/bsky/unspecced/getTrendingTopics.json
new file mode 100644
index 0000000000..097dc1c54d
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getTrendingTopics.json
@@ -0,0 +1,49 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getTrendingTopics",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get a list of trending topics",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "viewer": {
+ "type": "string",
+ "format": "did",
+ "description": "DID of the account making the request (not included for public/unauthenticated queries). Used to boost followed accounts in ranking."
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 25,
+ "default": 10
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["topics", "suggested"],
+ "properties": {
+ "topics": {
+ "type": "array",
+ "items": {
+ "type": "ref",
+ "ref": "app.bsky.unspecced.defs#trendingTopic"
+ }
+ },
+ "suggested": {
+ "type": "array",
+ "items": {
+ "type": "ref",
+ "ref": "app.bsky.unspecced.defs#trendingTopic"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getTrends.json b/lexicons/app/bsky/unspecced/getTrends.json
new file mode 100644
index 0000000000..b857c8681b
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getTrends.json
@@ -0,0 +1,41 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getTrends",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get the current trends on the network",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 25,
+ "default": 10
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["trends"],
+ "properties": {
+ "trends": {
+ "type": "array",
+ "items": {
+ "type": "ref",
+ "ref": "app.bsky.unspecced.defs#trendView"
+ }
+ },
+ "recIdStr": {
+ "type": "string",
+ "description": "Snowflake for this recommendation, use when submitting recommendation events."
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/getTrendsSkeleton.json b/lexicons/app/bsky/unspecced/getTrendsSkeleton.json
new file mode 100644
index 0000000000..3cb5a15b77
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/getTrendsSkeleton.json
@@ -0,0 +1,46 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.getTrendsSkeleton",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Get the skeleton of trends on the network. Intended to be called and then hydrated through app.bsky.unspecced.getTrends",
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "viewer": {
+ "type": "string",
+ "format": "did",
+ "description": "DID of the account making the request (not included for public/unauthenticated queries)."
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 25,
+ "default": 10
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["trends"],
+ "properties": {
+ "trends": {
+ "type": "array",
+ "items": {
+ "type": "ref",
+ "ref": "app.bsky.unspecced.defs#skeletonTrend"
+ }
+ },
+ "recIdStr": {
+ "type": "string",
+ "description": "Snowflake for this recommendation, use when submitting recommendation events."
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/initAgeAssurance.json b/lexicons/app/bsky/unspecced/initAgeAssurance.json
new file mode 100644
index 0000000000..43c4d3cf5e
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/initAgeAssurance.json
@@ -0,0 +1,43 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.initAgeAssurance",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "description": "Initiate age assurance for an account. This is a one-time action that will start the process of verifying the user's age.",
+ "input": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["email", "language", "countryCode"],
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "The user's email address to receive assurance instructions."
+ },
+ "language": {
+ "type": "string",
+ "description": "The user's preferred language for communication during the assurance process."
+ },
+ "countryCode": {
+ "type": "string",
+ "description": "An ISO 3166-1 alpha-2 code of the user's location."
+ }
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "ref",
+ "ref": "app.bsky.unspecced.defs#ageAssuranceState"
+ }
+ },
+ "errors": [
+ { "name": "InvalidEmail" },
+ { "name": "DidTooLong" },
+ { "name": "InvalidInitiation" }
+ ]
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/searchActorsSkeleton.json b/lexicons/app/bsky/unspecced/searchActorsSkeleton.json
new file mode 100644
index 0000000000..f6489140b9
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/searchActorsSkeleton.json
@@ -0,0 +1,61 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.searchActorsSkeleton",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Backend Actors (profile) search, returns only skeleton.",
+ "parameters": {
+ "type": "params",
+ "required": ["q"],
+ "properties": {
+ "q": {
+ "type": "string",
+ "description": "Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. For typeahead search, only simple term match is supported, not full syntax."
+ },
+ "viewer": {
+ "type": "string",
+ "format": "did",
+ "description": "DID of the account making the request (not included for public/unauthenticated queries). Used to boost followed accounts in ranking."
+ },
+ "typeahead": {
+ "type": "boolean",
+ "description": "If true, acts as fast/simple 'typeahead' query."
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 100,
+ "default": 25
+ },
+ "cursor": {
+ "type": "string",
+ "description": "Optional pagination mechanism; may not necessarily allow scrolling through entire result set."
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["actors"],
+ "properties": {
+ "cursor": { "type": "string" },
+ "hitsTotal": {
+ "type": "integer",
+ "description": "Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits."
+ },
+ "actors": {
+ "type": "array",
+ "items": {
+ "type": "ref",
+ "ref": "app.bsky.unspecced.defs#skeletonSearchActor"
+ }
+ }
+ }
+ }
+ },
+ "errors": [{ "name": "BadQueryString" }]
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/searchPostsSkeleton.json b/lexicons/app/bsky/unspecced/searchPostsSkeleton.json
new file mode 100644
index 0000000000..3be2c1b757
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/searchPostsSkeleton.json
@@ -0,0 +1,104 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.searchPostsSkeleton",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Backend Posts search, returns only skeleton",
+ "parameters": {
+ "type": "params",
+ "required": ["q"],
+ "properties": {
+ "q": {
+ "type": "string",
+ "description": "Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended."
+ },
+ "sort": {
+ "type": "string",
+ "knownValues": ["top", "latest"],
+ "default": "latest",
+ "description": "Specifies the ranking order of results."
+ },
+ "since": {
+ "type": "string",
+ "description": "Filter results for posts after the indicated datetime (inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYYY-MM-DD)."
+ },
+ "until": {
+ "type": "string",
+ "description": "Filter results for posts before the indicated datetime (not inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYY-MM-DD)."
+ },
+ "mentions": {
+ "type": "string",
+ "format": "at-identifier",
+ "description": "Filter to posts which mention the given account. Handles are resolved to DID before query-time. Only matches rich-text facet mentions."
+ },
+ "author": {
+ "type": "string",
+ "format": "at-identifier",
+ "description": "Filter to posts by the given account. Handles are resolved to DID before query-time."
+ },
+ "lang": {
+ "type": "string",
+ "format": "language",
+ "description": "Filter to posts in the given language. Expected to be based on post language field, though server may override language detection."
+ },
+ "domain": {
+ "type": "string",
+ "description": "Filter to posts with URLs (facet links or embeds) linking to the given domain (hostname). Server may apply hostname normalization."
+ },
+ "url": {
+ "type": "string",
+ "format": "uri",
+ "description": "Filter to posts with links (facet links or embeds) pointing to this URL. Server may apply URL normalization or fuzzy matching."
+ },
+ "tag": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "maxLength": 640,
+ "maxGraphemes": 64
+ },
+ "description": "Filter to posts with the given tag (hashtag), based on rich-text facet or tag field. Do not include the hash (#) prefix. Multiple tags can be specified, with 'AND' matching."
+ },
+ "viewer": {
+ "type": "string",
+ "format": "did",
+ "description": "DID of the account making the request (not included for public/unauthenticated queries). Used for 'from:me' queries."
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 100,
+ "default": 25
+ },
+ "cursor": {
+ "type": "string",
+ "description": "Optional pagination mechanism; may not necessarily allow scrolling through entire result set."
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["posts"],
+ "properties": {
+ "cursor": { "type": "string" },
+ "hitsTotal": {
+ "type": "integer",
+ "description": "Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits."
+ },
+ "posts": {
+ "type": "array",
+ "items": {
+ "type": "ref",
+ "ref": "app.bsky.unspecced.defs#skeletonSearchPost"
+ }
+ }
+ }
+ }
+ },
+ "errors": [{ "name": "BadQueryString" }]
+ }
+ }
+}
diff --git a/lexicons/app/bsky/unspecced/searchStarterPacksSkeleton.json b/lexicons/app/bsky/unspecced/searchStarterPacksSkeleton.json
new file mode 100644
index 0000000000..80c1b88179
--- /dev/null
+++ b/lexicons/app/bsky/unspecced/searchStarterPacksSkeleton.json
@@ -0,0 +1,63 @@
+{
+ "lexicon": 1,
+ "id": "app.bsky.unspecced.searchStarterPacksSkeleton",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Backend Starter Pack search, returns only skeleton.",
+ "parameters": {
+ "type": "params",
+ "required": ["q"],
+ "properties": {
+ "q": {
+ "type": "string",
+ "description": "Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended."
+ },
+ "viewer": {
+ "type": "string",
+ "format": "did",
+ "description": "DID of the account making the request (not included for public/unauthenticated queries)."
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 100,
+ "default": 25
+ },
+ "cursor": {
+ "type": "string",
+ "description": "Optional pagination mechanism; may not necessarily allow scrolling through entire result set."
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["starterPacks"],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "hitsTotal": {
+ "type": "integer",
+ "description": "Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits."
+ },
+ "starterPacks": {
+ "type": "array",
+ "items": {
+ "type": "ref",
+ "ref": "app.bsky.unspecced.defs#skeletonSearchStarterPack"
+ }
+ }
+ }
+ }
+ },
+ "errors": [
+ {
+ "name": "BadQueryString"
+ }
+ ]
+ }
+ }
+}
diff --git a/lexicons/app/bsky/video/defs.json b/lexicons/app/bsky/video/defs.json
new file mode 100644
index 0000000000..278c17b35e
--- /dev/null
+++ b/lexicons/app/bsky/video/defs.json
@@ -0,0 +1,65 @@
+{
+ "id": "app.bsky.video.defs",
+ "defs": {
+ "jobStatus": {
+ "type": "object",
+ "required": [
+ "jobId",
+ "did",
+ "state"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "blob": {
+ "type": "blob"
+ },
+ "error": {
+ "type": "string"
+ },
+ "jobId": {
+ "type": "string"
+ },
+ "state": {
+ "type": "string",
+ "description": "The state of the video processing job. All values not listed as a known value indicate that the job is in process.",
+ "knownValues": [
+ "JOB_STATE_CREATED",
+ "JOB_STATE_ENCODING",
+ "JOB_STATE_ENCODED",
+ "JOB_STATE_SCANNING",
+ "JOB_STATE_SCANNED",
+ "JOB_STATE_UPLOADING",
+ "JOB_STATE_UPLOADED",
+ "JOB_STATE_COMPLETED",
+ "JOB_STATE_FAILED"
+ ]
+ },
+ "message": {
+ "type": "string"
+ },
+ "progress": {
+ "type": "integer",
+ "maximum": 100,
+ "minimum": 0,
+ "description": "Progress within the current processing state."
+ },
+ "failureCode": {
+ "type": "string",
+ "description": "A machine-readable code for why the video processing job failed.",
+ "knownValues": [
+ "validation_failure",
+ "encoding_failure",
+ "pds_upload_failure",
+ "pds_upload_unsupported_blob_size",
+ "generic_failure"
+ ]
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/video/getJobStatus.json b/lexicons/app/bsky/video/getJobStatus.json
new file mode 100644
index 0000000000..7fb3ae4a46
--- /dev/null
+++ b/lexicons/app/bsky/video/getJobStatus.json
@@ -0,0 +1,37 @@
+{
+ "id": "app.bsky.video.getJobStatus",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "jobStatus"
+ ],
+ "properties": {
+ "jobStatus": {
+ "ref": "app.bsky.video.defs#jobStatus",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "jobId"
+ ],
+ "properties": {
+ "jobId": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Get status details for a video processing job."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/video/getUploadLimits.json b/lexicons/app/bsky/video/getUploadLimits.json
new file mode 100644
index 0000000000..fdc11082ec
--- /dev/null
+++ b/lexicons/app/bsky/video/getUploadLimits.json
@@ -0,0 +1,37 @@
+{
+ "id": "app.bsky.video.getUploadLimits",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "canUpload"
+ ],
+ "properties": {
+ "error": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "canUpload": {
+ "type": "boolean"
+ },
+ "remainingDailyBytes": {
+ "type": "integer"
+ },
+ "remainingDailyVideos": {
+ "type": "integer"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Get video upload limits for the authenticated user."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/app/bsky/video/uploadVideo.json b/lexicons/app/bsky/video/uploadVideo.json
new file mode 100644
index 0000000000..01330b1b9a
--- /dev/null
+++ b/lexicons/app/bsky/video/uploadVideo.json
@@ -0,0 +1,29 @@
+{
+ "id": "app.bsky.video.uploadVideo",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "encoding": "video/mp4"
+ },
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "jobStatus"
+ ],
+ "properties": {
+ "jobStatus": {
+ "ref": "app.bsky.video.defs#jobStatus",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Upload a video to be processed then stored on the PDS."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/actor/declaration.json b/lexicons/chat/bsky/actor/declaration.json
new file mode 100644
index 0000000000..de04440ac7
--- /dev/null
+++ b/lexicons/chat/bsky/actor/declaration.json
@@ -0,0 +1,37 @@
+{
+ "id": "chat.bsky.actor.declaration",
+ "defs": {
+ "main": {
+ "key": "literal:self",
+ "type": "record",
+ "record": {
+ "type": "object",
+ "required": [
+ "allowIncoming"
+ ],
+ "properties": {
+ "allowIncoming": {
+ "type": "string",
+ "knownValues": [
+ "all",
+ "none",
+ "following"
+ ]
+ },
+ "allowGroupInvites": {
+ "type": "string",
+ "description": "Declaration about group chat invitation preferences for the record owner.",
+ "knownValues": [
+ "all",
+ "none",
+ "following"
+ ]
+ }
+ }
+ },
+ "description": "A declaration of a Bluesky chat account."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/actor/defs.json b/lexicons/chat/bsky/actor/defs.json
new file mode 100644
index 0000000000..87b18d714b
--- /dev/null
+++ b/lexicons/chat/bsky/actor/defs.json
@@ -0,0 +1,105 @@
+{
+ "id": "chat.bsky.actor.defs",
+ "defs": {
+ "memberRole": {
+ "type": "string",
+ "knownValues": [
+ "owner",
+ "standard"
+ ]
+ },
+ "groupConvoMember": {
+ "type": "object",
+ "required": [
+ "role"
+ ],
+ "properties": {
+ "role": {
+ "ref": "#memberRole",
+ "type": "ref",
+ "description": "The member's role within this conversation. Only present in group conversation member lists."
+ },
+ "addedBy": {
+ "ref": "#profileViewBasic",
+ "type": "ref",
+ "description": "Who added this member. Only present if the member was added (instead of joining via link)."
+ }
+ },
+ "description": "A current group convo member."
+ },
+ "profileViewBasic": {
+ "type": "object",
+ "required": [
+ "did",
+ "handle"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "kind": {
+ "refs": [
+ "#directConvoMember",
+ "#groupConvoMember",
+ "#pastGroupConvoMember"
+ ],
+ "type": "union",
+ "description": "Union field that has data specific to different kinds of convos."
+ },
+ "avatar": {
+ "type": "string",
+ "format": "uri"
+ },
+ "handle": {
+ "type": "string",
+ "format": "handle"
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.label.defs#label",
+ "type": "ref"
+ }
+ },
+ "viewer": {
+ "ref": "app.bsky.actor.defs#viewerState",
+ "type": "ref"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "associated": {
+ "ref": "app.bsky.actor.defs#profileAssociated",
+ "type": "ref"
+ },
+ "displayName": {
+ "type": "string",
+ "maxLength": 640,
+ "maxGraphemes": 64
+ },
+ "chatDisabled": {
+ "type": "boolean",
+ "description": "Set to true when the actor cannot actively participate in conversations"
+ },
+ "verification": {
+ "ref": "app.bsky.actor.defs#verificationState",
+ "type": "ref"
+ }
+ }
+ },
+ "directConvoMember": {
+ "type": "object",
+ "properties": {}
+ },
+ "pastGroupConvoMember": {
+ "type": "object",
+ "required": [],
+ "properties": {},
+ "description": "A past group convo member."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/actor/deleteAccount.json b/lexicons/chat/bsky/actor/deleteAccount.json
new file mode 100644
index 0000000000..f8955411db
--- /dev/null
+++ b/lexicons/chat/bsky/actor/deleteAccount.json
@@ -0,0 +1,17 @@
+{
+ "id": "chat.bsky.actor.deleteAccount",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "output": {
+ "schema": {
+ "type": "object",
+ "properties": {}
+ },
+ "encoding": "application/json"
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/actor/exportAccountData.json b/lexicons/chat/bsky/actor/exportAccountData.json
new file mode 100644
index 0000000000..dd8b9bfdda
--- /dev/null
+++ b/lexicons/chat/bsky/actor/exportAccountData.json
@@ -0,0 +1,13 @@
+{
+ "id": "chat.bsky.actor.exportAccountData",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "encoding": "application/jsonl"
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/actor/getStatus.json b/lexicons/chat/bsky/actor/getStatus.json
new file mode 100644
index 0000000000..4e1311a97b
--- /dev/null
+++ b/lexicons/chat/bsky/actor/getStatus.json
@@ -0,0 +1,36 @@
+{
+ "id": "chat.bsky.actor.getStatus",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "chatDisabled",
+ "canCreateGroups",
+ "groupMemberLimit"
+ ],
+ "properties": {
+ "chatDisabled": {
+ "type": "boolean",
+ "description": "True when the viewer's account is disabled and cannot actively participate in chat."
+ },
+ "canCreateGroups": {
+ "type": "boolean",
+ "description": "Whether the viewer's account is allowed to create group chats. New accounts are restricted from creating groups."
+ },
+ "groupMemberLimit": {
+ "type": "integer",
+ "description": "The maximum number of members allowed in a group conversation."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Get the authenticated viewer's chat status: whether their account is chat-disabled and whether their group-membership additions are restricted to accounts they follow."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/acceptConvo.json b/lexicons/chat/bsky/convo/acceptConvo.json
new file mode 100644
index 0000000000..bafc162b11
--- /dev/null
+++ b/lexicons/chat/bsky/convo/acceptConvo.json
@@ -0,0 +1,42 @@
+{
+ "id": "chat.bsky.convo.acceptConvo",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "rev": {
+ "type": "string",
+ "description": "Rev when the convo was accepted. If not present, the convo was already accepted."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Marks a conversation as accepted, so it is shown in the list of accepted convos instead on the request convos."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/addReaction.json b/lexicons/chat/bsky/convo/addReaction.json
new file mode 100644
index 0000000000..7f317c84a9
--- /dev/null
+++ b/lexicons/chat/bsky/convo/addReaction.json
@@ -0,0 +1,73 @@
+{
+ "id": "chat.bsky.convo.addReaction",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId",
+ "messageId",
+ "value"
+ ],
+ "properties": {
+ "value": {
+ "type": "string",
+ "maxLength": 64,
+ "minLength": 1,
+ "maxGraphemes": 1,
+ "minGraphemes": 1
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "messageId": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ },
+ {
+ "name": "ReactionNotAllowed",
+ "description": "Indicates that reactions are not allowed on this message, e.g. because it is a system message."
+ },
+ {
+ "name": "ReactionMessageDeleted",
+ "description": "Indicates that the message has been deleted and reactions can no longer be added/removed."
+ },
+ {
+ "name": "ReactionLimitReached",
+ "description": "Indicates that the message has the maximum number of reactions allowed for a single user, and the requested reaction wasn't yet present. If it was already present, the request will not fail since it is idempotent."
+ },
+ {
+ "name": "ReactionInvalidValue",
+ "description": "Indicates the value for the reaction is not acceptable. In general, this means it is not an emoji."
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "message"
+ ],
+ "properties": {
+ "message": {
+ "ref": "chat.bsky.convo.defs#messageView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Adds an emoji reaction to a message. Requires authentication. It is idempotent, so multiple calls from the same user with the same emoji result in a single reaction."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/defs.json b/lexicons/chat/bsky/convo/defs.json
new file mode 100644
index 0000000000..eecef5ac5c
--- /dev/null
+++ b/lexicons/chat/bsky/convo/defs.json
@@ -0,0 +1,1312 @@
+{
+ "id": "chat.bsky.convo.defs",
+ "defs": {
+ "convoRef": {
+ "type": "object",
+ "required": [
+ "did",
+ "convoId"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "replyRef": {
+ "type": "object",
+ "required": [
+ "messageId"
+ ],
+ "properties": {
+ "messageId": {
+ "type": "string"
+ }
+ },
+ "description": "A reference to another message within the same convo, used to indicate that a message is a reply to it."
+ },
+ "convoKind": {
+ "type": "string",
+ "knownValues": [
+ "direct",
+ "group"
+ ]
+ },
+ "convoView": {
+ "type": "object",
+ "required": [
+ "id",
+ "rev",
+ "members",
+ "muted",
+ "unreadCount"
+ ],
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "rev": {
+ "type": "string"
+ },
+ "kind": {
+ "refs": [
+ "#directConvo",
+ "#groupConvo"
+ ],
+ "type": "union",
+ "description": "Union field that has data specific to different kinds of convos."
+ },
+ "muted": {
+ "type": "boolean"
+ },
+ "status": {
+ "ref": "#convoStatus",
+ "type": "ref",
+ "description": "Convo status for the viewer member (not the convo itself)."
+ },
+ "members": {
+ "type": "array",
+ "items": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ },
+ "description": "Members of this conversation. For direct convos, it will be an immutable list of the 2 members. For group convos, it will a list of important members (the first few members, the viewer, the member who added the viewer, the member who sent the last message, the member who sent the last reaction), but will not contain the full list of members. Use chat.bsky.convo.getConvoMembers to list all members."
+ },
+ "lastMessage": {
+ "refs": [
+ "#messageView",
+ "#deletedMessageView",
+ "#systemMessageView"
+ ],
+ "type": "union"
+ },
+ "unreadCount": {
+ "type": "integer"
+ },
+ "lastReaction": {
+ "refs": [
+ "#messageAndReactionView"
+ ],
+ "type": "union"
+ }
+ }
+ },
+ "groupConvo": {
+ "type": "object",
+ "required": [
+ "createdAt",
+ "lockStatus",
+ "lockStatusModerationOverride",
+ "memberCount",
+ "memberLimit",
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "maxLength": 500,
+ "description": "The display name of the group conversation.",
+ "maxGraphemes": 50
+ },
+ "joinLink": {
+ "ref": "chat.bsky.group.defs#joinLinkView",
+ "type": "ref"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "lockStatus": {
+ "ref": "#convoLockStatus",
+ "type": "ref",
+ "description": "The lock status of the conversation."
+ },
+ "memberCount": {
+ "type": "integer",
+ "description": "The total number of members in the group conversation."
+ },
+ "memberLimit": {
+ "type": "integer",
+ "description": "The maximum number of members allowed in the group conversation."
+ },
+ "joinRequestCount": {
+ "type": "integer",
+ "description": "The total number of pending join requests for the group conversation. Only present for the owner. Capped at 21."
+ },
+ "unreadJoinRequestCount": {
+ "type": "integer",
+ "description": "The number of unread join requests for the group conversation. Only present for the owner."
+ },
+ "lockStatusModerationOverride": {
+ "type": "boolean",
+ "description": "Whether the lock status is being forced by a moderation override (account inactivation or convo takedown) rather than the owner's own setting."
+ }
+ }
+ },
+ "messageRef": {
+ "type": "object",
+ "required": [
+ "did",
+ "messageId",
+ "convoId"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "messageId": {
+ "type": "string"
+ }
+ }
+ },
+ "convoStatus": {
+ "type": "string",
+ "knownValues": [
+ "request",
+ "accepted"
+ ]
+ },
+ "directConvo": {
+ "type": "object",
+ "properties": {}
+ },
+ "messageView": {
+ "type": "object",
+ "required": [
+ "id",
+ "rev",
+ "text",
+ "sender",
+ "sentAt"
+ ],
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "rev": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string",
+ "maxLength": 10000,
+ "maxGraphemes": 1000
+ },
+ "embed": {
+ "refs": [
+ "app.bsky.embed.record#view",
+ "chat.bsky.embed.joinLink#view"
+ ],
+ "type": "union"
+ },
+ "facets": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.richtext.facet",
+ "type": "ref"
+ },
+ "description": "Annotations of text (mentions, URLs, hashtags, etc)"
+ },
+ "sender": {
+ "ref": "#messageViewSender",
+ "type": "ref"
+ },
+ "sentAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "replyTo": {
+ "refs": [
+ "#messageView",
+ "#deletedMessageView",
+ "#messageBeforeUserJoinedGroupView"
+ ],
+ "type": "union",
+ "description": "If set, the message this message is replying to. The full view of the referenced message is embedded so the client can render it inline. Only a single level is embedded: the embedded message will not itself have a populated 'replyTo' field even if it was also a reply."
+ },
+ "reactions": {
+ "type": "array",
+ "items": {
+ "ref": "#reactionView",
+ "type": "ref"
+ },
+ "description": "Reactions to this message, in ascending order of creation time."
+ }
+ }
+ },
+ "logAddMember": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "message",
+ "relatedProfiles"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "message": {
+ "ref": "#systemMessageView",
+ "type": "ref",
+ "description": "A system message with data of type #systemMessageDataAddMember"
+ },
+ "relatedProfiles": {
+ "type": "array",
+ "items": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ },
+ "description": "Profiles referred in the system message."
+ }
+ },
+ "description": "Event indicating a member was added to a group convo. The member who was added gets a logBeginConvo (to create the convo) but also a logAddMember (to show the system message as the first message the user sees)."
+ },
+ "logEditGroup": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "message"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "message": {
+ "ref": "#systemMessageView",
+ "type": "ref",
+ "description": "A system message with data of type #systemMessageDataEditGroup"
+ }
+ },
+ "description": "Event indicating info about group convo was edited."
+ },
+ "logLockConvo": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "message",
+ "relatedProfiles"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "message": {
+ "ref": "#systemMessageView",
+ "type": "ref",
+ "description": "A system message with data of type #systemMessageDataLockConvo"
+ },
+ "relatedProfiles": {
+ "type": "array",
+ "items": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ },
+ "description": "Profiles referred in the system message."
+ }
+ },
+ "description": "Event indicating a group convo was locked."
+ },
+ "logMuteConvo": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ }
+ },
+ "description": "Event indicating the viewer muted a convo. Can be direct or group."
+ },
+ "logReadConvo": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "message"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "message": {
+ "refs": [
+ "#messageView",
+ "#deletedMessageView",
+ "#systemMessageView"
+ ],
+ "type": "union"
+ }
+ },
+ "description": "Event indicating a convo was read up to a certain message."
+ },
+ "messageInput": {
+ "type": "object",
+ "required": [
+ "text"
+ ],
+ "properties": {
+ "text": {
+ "type": "string",
+ "maxLength": 10000,
+ "maxGraphemes": 1000
+ },
+ "embed": {
+ "refs": [
+ "app.bsky.embed.record",
+ "chat.bsky.embed.joinLink"
+ ],
+ "type": "union"
+ },
+ "facets": {
+ "type": "array",
+ "items": {
+ "ref": "app.bsky.richtext.facet",
+ "type": "ref"
+ },
+ "description": "Annotations of text (mentions, URLs, hashtags, etc)"
+ },
+ "replyTo": {
+ "ref": "#replyRef",
+ "type": "ref",
+ "description": "If set, the message this message is replying to. The referenced message must be in the same convo."
+ }
+ }
+ },
+ "reactionView": {
+ "type": "object",
+ "required": [
+ "value",
+ "sender",
+ "createdAt"
+ ],
+ "properties": {
+ "value": {
+ "type": "string"
+ },
+ "sender": {
+ "ref": "#reactionViewSender",
+ "type": "ref"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ }
+ }
+ },
+ "logBeginConvo": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ }
+ },
+ "description": "Event indicating a convo containing the viewer was started. Can be direct or group. When a member is added to a group convo, they also get this event."
+ },
+ "logLeaveConvo": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ }
+ },
+ "description": "Event indicating the viewer left a convo. Can be direct or group."
+ },
+ "logMemberJoin": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "message",
+ "relatedProfiles"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "message": {
+ "ref": "#systemMessageView",
+ "type": "ref",
+ "description": "A system message with data of type #systemMessageDataMemberJoin"
+ },
+ "relatedProfiles": {
+ "type": "array",
+ "items": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ },
+ "description": "Profiles referred in the system message."
+ }
+ },
+ "description": "Event indicating a member joined a group convo via join link. The member who was added gets a logBeginConvo (to create the convo) but also a logMemberJoin (to show the system message as the first message the user sees)."
+ },
+ "logAcceptConvo": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ }
+ },
+ "description": "Event indicating the viewer accepted a convo, and it can be moved out of the request inbox. Can be direct or group."
+ },
+ "logAddReaction": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "message",
+ "reaction"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "message": {
+ "refs": [
+ "#messageView",
+ "#deletedMessageView"
+ ],
+ "type": "union"
+ },
+ "reaction": {
+ "ref": "#reactionView",
+ "type": "ref"
+ },
+ "relatedProfiles": {
+ "type": "array",
+ "items": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ },
+ "description": "Profiles referred in the message and reaction views. This isn't required for compatibility, because it was added later, but should generally be present."
+ }
+ },
+ "description": "Event indicating a reaction was added to a message."
+ },
+ "logMemberLeave": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "message",
+ "relatedProfiles"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "message": {
+ "ref": "#systemMessageView",
+ "type": "ref",
+ "description": "A system message with data of type #systemMessageDataMemberLeave"
+ },
+ "relatedProfiles": {
+ "type": "array",
+ "items": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ },
+ "description": "Profiles referred in the system message."
+ }
+ },
+ "description": "Event indicating a member voluntarily left a group convo. The member who was removed gets a logLeaveConvo (to leave the convo) but not a logMemberLeave (because they already left, so can't see the system message)."
+ },
+ "logReadMessage": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "message"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "message": {
+ "refs": [
+ "#messageView",
+ "#deletedMessageView",
+ "#systemMessageView"
+ ],
+ "type": "union"
+ }
+ },
+ "description": "DEPRECATED: use logReadConvo instead. Event indicating a convo was read up to a certain message."
+ },
+ "logUnlockConvo": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "message",
+ "relatedProfiles"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "message": {
+ "ref": "#systemMessageView",
+ "type": "ref",
+ "description": "A system message with data of type #systemMessageDataUnlockConvo"
+ },
+ "relatedProfiles": {
+ "type": "array",
+ "items": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ },
+ "description": "Profiles referred in the system message."
+ }
+ },
+ "description": "Event indicating a group convo was unlocked."
+ },
+ "logUnmuteConvo": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ }
+ },
+ "description": "Event indicating the viewer unmuted a convo. Can be direct or group."
+ },
+ "convoLockStatus": {
+ "type": "string",
+ "knownValues": [
+ "unlocked",
+ "locked",
+ "locked-permanently"
+ ]
+ },
+ "logEditJoinLink": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "message"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "message": {
+ "ref": "#systemMessageView",
+ "type": "ref",
+ "description": "A system message with data of type #systemMessageDataEditJoinLink"
+ }
+ },
+ "description": "Event indicating a settings about a join link for a group convo were edited."
+ },
+ "logRemoveMember": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "message",
+ "relatedProfiles"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "message": {
+ "ref": "#systemMessageView",
+ "type": "ref",
+ "description": "A system message with data of type #systemMessageDataRemoveMember"
+ },
+ "relatedProfiles": {
+ "type": "array",
+ "items": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ },
+ "description": "Profiles referred in the system message."
+ }
+ },
+ "description": "Event indicating a member was removed from a group convo. The member who was removed gets a logLeaveConvo (to leave the convo) but not a logRemoveMember (because they already left, so can't see the system message)."
+ },
+ "logCreateMessage": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "message"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "message": {
+ "refs": [
+ "#messageView",
+ "#deletedMessageView"
+ ],
+ "type": "union"
+ },
+ "relatedProfiles": {
+ "type": "array",
+ "items": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ },
+ "description": "Profiles referred to in the message view. This isn't required for compatibility, because it was added later, but should generally be present."
+ }
+ },
+ "description": "Event indicating a user-originated message was created. Is not emitted for system messages."
+ },
+ "logDeleteMessage": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "message"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "message": {
+ "refs": [
+ "#messageView",
+ "#deletedMessageView"
+ ],
+ "type": "union"
+ }
+ },
+ "description": "Event indicating a user-originated message was deleted. Is not emitted for system messages."
+ },
+ "logCreateJoinLink": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "message"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "message": {
+ "ref": "#systemMessageView",
+ "type": "ref",
+ "description": "A system message with data of type #systemMessageDataCreateJoinLink"
+ }
+ },
+ "description": "Event indicating a join link was created for a group convo."
+ },
+ "logEnableJoinLink": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "message"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "message": {
+ "ref": "#systemMessageView",
+ "type": "ref",
+ "description": "A system message with data of type #systemMessageDataEnableJoinLink"
+ }
+ },
+ "description": "Event indicating a join link was enabled for a group convo."
+ },
+ "logRemoveReaction": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "message",
+ "reaction"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "message": {
+ "refs": [
+ "#messageView",
+ "#deletedMessageView"
+ ],
+ "type": "union"
+ },
+ "reaction": {
+ "ref": "#reactionView",
+ "type": "ref"
+ },
+ "relatedProfiles": {
+ "type": "array",
+ "items": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ },
+ "description": "Profiles referred in the message and reaction views. This isn't required for compatibility, because it was added later, but should generally be present."
+ }
+ },
+ "description": "Event indicating a reaction was removed from a message."
+ },
+ "messageViewSender": {
+ "type": "object",
+ "required": [
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ },
+ "systemMessageView": {
+ "type": "object",
+ "required": [
+ "id",
+ "rev",
+ "sentAt",
+ "data"
+ ],
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "rev": {
+ "type": "string"
+ },
+ "data": {
+ "refs": [
+ "#systemMessageDataAddMember",
+ "#systemMessageDataRemoveMember",
+ "#systemMessageDataMemberJoin",
+ "#systemMessageDataMemberLeave",
+ "#systemMessageDataLockConvo",
+ "#systemMessageDataUnlockConvo",
+ "#systemMessageDataLockConvoPermanently",
+ "#systemMessageDataEditGroup",
+ "#systemMessageDataCreateJoinLink",
+ "#systemMessageDataEditJoinLink",
+ "#systemMessageDataEnableJoinLink",
+ "#systemMessageDataDisableJoinLink"
+ ],
+ "type": "union"
+ },
+ "sentAt": {
+ "type": "string",
+ "format": "datetime"
+ }
+ }
+ },
+ "deletedMessageView": {
+ "type": "object",
+ "required": [
+ "id",
+ "rev",
+ "sender",
+ "sentAt"
+ ],
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "rev": {
+ "type": "string"
+ },
+ "sender": {
+ "ref": "#messageViewSender",
+ "type": "ref"
+ },
+ "sentAt": {
+ "type": "string",
+ "format": "datetime"
+ }
+ }
+ },
+ "logDisableJoinLink": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "message"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "message": {
+ "ref": "#systemMessageView",
+ "type": "ref",
+ "description": "A system message with data of type #systemMessageDataDisableJoinLink"
+ }
+ },
+ "description": "Event indicating a join link was disabled for a group convo."
+ },
+ "reactionViewSender": {
+ "type": "object",
+ "required": [
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ },
+ "logReadJoinRequests": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ }
+ },
+ "description": "Event indicating the group owner marked join requests as read. Only the owner gets this."
+ },
+ "logRejectJoinRequest": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "member"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "member": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref",
+ "description": "Prospective member who requested to join."
+ },
+ "convoId": {
+ "type": "string"
+ }
+ },
+ "description": "Event indicating a join request was rejected by the viewer. Only the owner gets this."
+ },
+ "logApproveJoinRequest": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "member"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "member": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref",
+ "description": "Prospective member who requested to join."
+ },
+ "convoId": {
+ "type": "string"
+ }
+ },
+ "description": "Event indicating a join request was approved by the viewer. Only the owner gets this. The approved member gets a logBeginConvo."
+ },
+ "logIncomingJoinRequest": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "member"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "member": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref",
+ "description": "Prospective member who requested to join."
+ },
+ "convoId": {
+ "type": "string"
+ }
+ },
+ "description": "Event indicating a join request was made to a group the viewer owns. Only the owner gets this."
+ },
+ "logOutgoingJoinRequest": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ }
+ },
+ "description": "Event indicating a join request was made by the requester. Only requester actor gets this."
+ },
+ "messageAndReactionView": {
+ "type": "object",
+ "required": [
+ "message",
+ "reaction"
+ ],
+ "properties": {
+ "message": {
+ "ref": "#messageView",
+ "type": "ref"
+ },
+ "reaction": {
+ "ref": "#reactionView",
+ "type": "ref"
+ }
+ }
+ },
+ "logLockConvoPermanently": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "message",
+ "relatedProfiles"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "message": {
+ "ref": "#systemMessageView",
+ "type": "ref",
+ "description": "A system message with data of type #systemMessageDataLockConvoPermanently"
+ },
+ "relatedProfiles": {
+ "type": "array",
+ "items": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ },
+ "description": "Profiles referred in the system message."
+ }
+ },
+ "description": "Event indicating a group convo was locked permanently."
+ },
+ "systemMessageReferredUser": {
+ "type": "object",
+ "required": [
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ },
+ "systemMessageDataAddMember": {
+ "type": "object",
+ "required": [
+ "member",
+ "role",
+ "addedBy"
+ ],
+ "properties": {
+ "role": {
+ "ref": "chat.bsky.actor.defs#memberRole",
+ "type": "ref",
+ "description": "Role the user was added to the group with. The role from 'member' will reflect the current data, not historical."
+ },
+ "member": {
+ "ref": "#systemMessageReferredUser",
+ "type": "ref",
+ "description": "Current view of the member who was added."
+ },
+ "addedBy": {
+ "ref": "#systemMessageReferredUser",
+ "type": "ref"
+ }
+ },
+ "description": "System message indicating a user was added to the group convo."
+ },
+ "systemMessageDataEditGroup": {
+ "type": "object",
+ "properties": {
+ "newName": {
+ "type": "string",
+ "description": "Group name that replaced the old."
+ },
+ "oldName": {
+ "type": "string",
+ "description": "Group name that was replaced."
+ }
+ },
+ "description": "System message indicating the group info was edited."
+ },
+ "systemMessageDataLockConvo": {
+ "type": "object",
+ "required": [
+ "lockedBy"
+ ],
+ "properties": {
+ "lockedBy": {
+ "ref": "#systemMessageReferredUser",
+ "type": "ref",
+ "description": "Current view of the member who locked the group."
+ }
+ },
+ "description": "System message indicating the group convo was locked."
+ },
+ "systemMessageDataMemberJoin": {
+ "type": "object",
+ "required": [
+ "member",
+ "role"
+ ],
+ "properties": {
+ "role": {
+ "ref": "chat.bsky.actor.defs#memberRole",
+ "type": "ref",
+ "description": "Role the user was added to the group with. The role from 'member' will reflect the current data, not historical."
+ },
+ "member": {
+ "ref": "#systemMessageReferredUser",
+ "type": "ref",
+ "description": "Current view of the member who joined."
+ },
+ "approvedBy": {
+ "ref": "#systemMessageReferredUser",
+ "type": "ref",
+ "description": "If join link was configured to require approval, this will be set to who approved the request. Undefined if approval was not required."
+ }
+ },
+ "description": "System message indicating a user joined the group convo via join link."
+ },
+ "systemMessageDataMemberLeave": {
+ "type": "object",
+ "required": [
+ "member"
+ ],
+ "properties": {
+ "member": {
+ "ref": "#systemMessageReferredUser",
+ "type": "ref",
+ "description": "Current view of the member who left the group."
+ }
+ },
+ "description": "System message indicating a user voluntarily left the group convo."
+ },
+ "systemMessageDataUnlockConvo": {
+ "type": "object",
+ "required": [
+ "unlockedBy"
+ ],
+ "properties": {
+ "unlockedBy": {
+ "ref": "#systemMessageReferredUser",
+ "type": "ref",
+ "description": "Current view of the member who unlocked the group."
+ }
+ },
+ "description": "System message indicating the group convo was unlocked."
+ },
+ "systemMessageDataEditJoinLink": {
+ "type": "object",
+ "properties": {},
+ "description": "System message indicating the group join link was edited."
+ },
+ "systemMessageDataRemoveMember": {
+ "type": "object",
+ "required": [
+ "member",
+ "removedBy"
+ ],
+ "properties": {
+ "member": {
+ "ref": "#systemMessageReferredUser",
+ "type": "ref",
+ "description": "Current view of the member who was removed."
+ },
+ "removedBy": {
+ "ref": "#systemMessageReferredUser",
+ "type": "ref"
+ }
+ },
+ "description": "System message indicating a user was removed from the group convo."
+ },
+ "logWithdrawIncomingJoinRequest": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId",
+ "member"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "member": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref",
+ "description": "Prospective member who withdrew their join request."
+ },
+ "convoId": {
+ "type": "string"
+ }
+ },
+ "description": "Event indicating a prospective member withdrew their join request. Only the owner gets this."
+ },
+ "logWithdrawOutgoingJoinRequest": {
+ "type": "object",
+ "required": [
+ "rev",
+ "convoId"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ }
+ },
+ "description": "Event indicating the viewer withdrew their own join request. Only requester actor gets this."
+ },
+ "systemMessageDataCreateJoinLink": {
+ "type": "object",
+ "properties": {},
+ "description": "System message indicating the group join link was created."
+ },
+ "systemMessageDataEnableJoinLink": {
+ "type": "object",
+ "properties": {},
+ "description": "System message indicating the group join link was enabled."
+ },
+ "messageBeforeUserJoinedGroupView": {
+ "type": "object",
+ "properties": {},
+ "description": "Placeholder embedded in place of a reply's parent message when that parent was sent before the viewer joined the group convo. The viewer has no access to that history, so no message data is carried."
+ },
+ "systemMessageDataDisableJoinLink": {
+ "type": "object",
+ "properties": {},
+ "description": "System message indicating the group join link was disabled."
+ },
+ "systemMessageDataLockConvoPermanently": {
+ "type": "object",
+ "required": [
+ "lockedBy"
+ ],
+ "properties": {
+ "lockedBy": {
+ "ref": "#systemMessageReferredUser",
+ "type": "ref",
+ "description": "Current view of the member who locked the group."
+ }
+ },
+ "description": "System message indicating the group convo was locked permanently."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/deleteMessageForSelf.json b/lexicons/chat/bsky/convo/deleteMessageForSelf.json
new file mode 100644
index 0000000000..39e4c109a0
--- /dev/null
+++ b/lexicons/chat/bsky/convo/deleteMessageForSelf.json
@@ -0,0 +1,45 @@
+{
+ "id": "chat.bsky.convo.deleteMessageForSelf",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId",
+ "messageId"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ },
+ "messageId": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ },
+ {
+ "name": "MessageDeleteNotAllowed",
+ "description": "Indicates that this message cannot be deleted, e.g. because it is a system message."
+ }
+ ],
+ "output": {
+ "schema": {
+ "ref": "chat.bsky.convo.defs#deletedMessageView",
+ "type": "ref"
+ },
+ "encoding": "application/json"
+ },
+ "description": "Marks a message as deleted for the viewer, so they won't see that message in future enumerations."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/getConvo.json b/lexicons/chat/bsky/convo/getConvo.json
new file mode 100644
index 0000000000..cbe3b2684e
--- /dev/null
+++ b/lexicons/chat/bsky/convo/getConvo.json
@@ -0,0 +1,42 @@
+{
+ "id": "chat.bsky.convo.getConvo",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convo"
+ ],
+ "properties": {
+ "convo": {
+ "ref": "chat.bsky.convo.defs#convoView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "convoId"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Gets an existing conversation by its ID."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/getConvoAvailability.json b/lexicons/chat/bsky/convo/getConvoAvailability.json
new file mode 100644
index 0000000000..37c3c745cf
--- /dev/null
+++ b/lexicons/chat/bsky/convo/getConvoAvailability.json
@@ -0,0 +1,46 @@
+{
+ "id": "chat.bsky.convo.getConvoAvailability",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "canChat"
+ ],
+ "properties": {
+ "convo": {
+ "ref": "chat.bsky.convo.defs#convoView",
+ "type": "ref"
+ },
+ "canChat": {
+ "type": "boolean"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "members"
+ ],
+ "properties": {
+ "members": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "did"
+ },
+ "maxLength": 10,
+ "minLength": 1
+ }
+ }
+ },
+ "description": "Check whether the requester and the other members can start a 1-1 chat. Only applicable to direct (non-group) conversations. If an existing convo is found for these members, it is returned. Does not create a new convo if it doesn't exist."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/getConvoForMembers.json b/lexicons/chat/bsky/convo/getConvoForMembers.json
new file mode 100644
index 0000000000..21c12ead32
--- /dev/null
+++ b/lexicons/chat/bsky/convo/getConvoForMembers.json
@@ -0,0 +1,63 @@
+{
+ "id": "chat.bsky.convo.getConvoForMembers",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "AccountSuspended"
+ },
+ {
+ "name": "BlockedActor"
+ },
+ {
+ "name": "BlockedSubject"
+ },
+ {
+ "name": "MessagesDisabled"
+ },
+ {
+ "name": "NotFollowedBySender"
+ },
+ {
+ "name": "RecipientNotFound"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convo"
+ ],
+ "properties": {
+ "convo": {
+ "ref": "chat.bsky.convo.defs#convoView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "members"
+ ],
+ "properties": {
+ "members": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "did"
+ },
+ "maxLength": 10,
+ "minLength": 1
+ }
+ }
+ },
+ "description": "Get or create a 1-1 conversation for the given members. Always returns the same direct (non-group) conversation. To create a group conversation, use createGroup."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/getConvoMembers.json b/lexicons/chat/bsky/convo/getConvoMembers.json
new file mode 100644
index 0000000000..0e89f0e916
--- /dev/null
+++ b/lexicons/chat/bsky/convo/getConvoMembers.json
@@ -0,0 +1,57 @@
+{
+ "id": "chat.bsky.convo.getConvoMembers",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "members"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "members": {
+ "type": "array",
+ "items": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "convoId"
+ ],
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Returns a paginated list of members from a conversation."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/getLog.json b/lexicons/chat/bsky/convo/getLog.json
new file mode 100644
index 0000000000..42c738d46d
--- /dev/null
+++ b/lexicons/chat/bsky/convo/getLog.json
@@ -0,0 +1,71 @@
+{
+ "id": "chat.bsky.convo.getLog",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "logs"
+ ],
+ "properties": {
+ "logs": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "chat.bsky.convo.defs#logBeginConvo",
+ "chat.bsky.convo.defs#logAcceptConvo",
+ "chat.bsky.convo.defs#logLeaveConvo",
+ "chat.bsky.convo.defs#logMuteConvo",
+ "chat.bsky.convo.defs#logUnmuteConvo",
+ "chat.bsky.convo.defs#logCreateMessage",
+ "chat.bsky.convo.defs#logDeleteMessage",
+ "chat.bsky.convo.defs#logReadMessage",
+ "chat.bsky.convo.defs#logAddReaction",
+ "chat.bsky.convo.defs#logRemoveReaction",
+ "chat.bsky.convo.defs#logReadConvo",
+ "chat.bsky.convo.defs#logAddMember",
+ "chat.bsky.convo.defs#logRemoveMember",
+ "chat.bsky.convo.defs#logMemberJoin",
+ "chat.bsky.convo.defs#logMemberLeave",
+ "chat.bsky.convo.defs#logLockConvo",
+ "chat.bsky.convo.defs#logUnlockConvo",
+ "chat.bsky.convo.defs#logLockConvoPermanently",
+ "chat.bsky.convo.defs#logEditGroup",
+ "chat.bsky.convo.defs#logCreateJoinLink",
+ "chat.bsky.convo.defs#logEditJoinLink",
+ "chat.bsky.convo.defs#logEnableJoinLink",
+ "chat.bsky.convo.defs#logDisableJoinLink",
+ "chat.bsky.convo.defs#logIncomingJoinRequest",
+ "chat.bsky.convo.defs#logApproveJoinRequest",
+ "chat.bsky.convo.defs#logRejectJoinRequest",
+ "chat.bsky.convo.defs#logOutgoingJoinRequest",
+ "chat.bsky.convo.defs#logWithdrawIncomingJoinRequest",
+ "chat.bsky.convo.defs#logWithdrawOutgoingJoinRequest",
+ "chat.bsky.convo.defs#logReadJoinRequests"
+ ],
+ "type": "union"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/getMessages.json b/lexicons/chat/bsky/convo/getMessages.json
new file mode 100644
index 0000000000..b157290de8
--- /dev/null
+++ b/lexicons/chat/bsky/convo/getMessages.json
@@ -0,0 +1,69 @@
+{
+ "id": "chat.bsky.convo.getMessages",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "messages"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "messages": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "chat.bsky.convo.defs#messageView",
+ "chat.bsky.convo.defs#deletedMessageView",
+ "chat.bsky.convo.defs#systemMessageView"
+ ],
+ "type": "union"
+ }
+ },
+ "relatedProfiles": {
+ "type": "array",
+ "items": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ },
+ "description": "Set of all members who authored or reacted to the returned messages. Members referred to by system messages are also included."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "convoId"
+ ],
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Returns a page of messages from a conversation."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/getUnreadCounts.json b/lexicons/chat/bsky/convo/getUnreadCounts.json
new file mode 100644
index 0000000000..ddfe955a2b
--- /dev/null
+++ b/lexicons/chat/bsky/convo/getUnreadCounts.json
@@ -0,0 +1,41 @@
+{
+ "id": "chat.bsky.convo.getUnreadCounts",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "unreadAcceptedConvos",
+ "unreadRequestConvos"
+ ],
+ "properties": {
+ "unreadRequestConvos": {
+ "type": "integer",
+ "description": "Number of unread, unlocked request convos. Includes convos with unread messages, but not with unread join request, since only the owner of a group has join requests to read, and the group would necessarily be accepted. Capped at 100, where 100 means more than 99."
+ },
+ "unreadAcceptedConvos": {
+ "type": "integer",
+ "description": "Number of unread, unlocked accepted convos. Counts convos with unread messages and unread join requests. Capped at 100, where 100 means more than 99."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "includeGroupChats": {
+ "type": "boolean",
+ "default": true,
+ "description": "When false, group convos are excluded from the counts."
+ }
+ }
+ },
+ "description": "Returns unread conversation counts for conversations that are unlocked, not muted, split by convo status. Direct convos are excluded when a block relationship exists between the actor and the other member, or when the other member's account is deleted or deactivated. Group convos are considered unread if they have unread join request counts."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/leaveConvo.json b/lexicons/chat/bsky/convo/leaveConvo.json
new file mode 100644
index 0000000000..b1e74ca2d2
--- /dev/null
+++ b/lexicons/chat/bsky/convo/leaveConvo.json
@@ -0,0 +1,52 @@
+{
+ "id": "chat.bsky.convo.leaveConvo",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ },
+ {
+ "name": "OwnerCannotLeave",
+ "description": "The owner of a group conversation cannot leave before locking the group."
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId",
+ "rev"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Leaves a conversation (direct or group). For group, this effectively removes membership. For direct, membership is never removed, only changed to remove from enumerations by the user who left."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/listConvoRequests.json b/lexicons/chat/bsky/convo/listConvoRequests.json
new file mode 100644
index 0000000000..6be7fea5fc
--- /dev/null
+++ b/lexicons/chat/bsky/convo/listConvoRequests.json
@@ -0,0 +1,49 @@
+{
+ "id": "chat.bsky.convo.listConvoRequests",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "requests"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "requests": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "chat.bsky.convo.defs#convoView",
+ "chat.bsky.group.defs#joinRequestConvoView"
+ ],
+ "type": "union"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Returns a page of incoming conversation requests for the user. Direct convo requests are returned as convoView; group join requests made by the user are returned as joinRequestConvoView."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/listConvos.json b/lexicons/chat/bsky/convo/listConvos.json
new file mode 100644
index 0000000000..2ac41d00b3
--- /dev/null
+++ b/lexicons/chat/bsky/convo/listConvos.json
@@ -0,0 +1,77 @@
+{
+ "id": "chat.bsky.convo.listConvos",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convos"
+ ],
+ "properties": {
+ "convos": {
+ "type": "array",
+ "items": {
+ "ref": "chat.bsky.convo.defs#convoView",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "kind": {
+ "type": "string",
+ "description": "Filter by conversation kind.",
+ "knownValues": [
+ "direct",
+ "group"
+ ]
+ },
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ },
+ "status": {
+ "type": "string",
+ "description": "Filter convos by their status. It is discouraged to call with \"request\" and preferred to call chat.bsky.convo.listConvoRequests, which also includes group join requests made by the user.",
+ "knownValues": [
+ "request",
+ "accepted"
+ ]
+ },
+ "readState": {
+ "type": "string",
+ "knownValues": [
+ "unread"
+ ]
+ },
+ "lockStatus": {
+ "type": "string",
+ "description": "Filter by conversation lock status. Values follow chat.bsky.convo.defs#convoLockStatus.",
+ "knownValues": [
+ "unlocked",
+ "locked",
+ "locked-permanently"
+ ]
+ }
+ }
+ },
+ "description": "Returns a page of conversations (direct or group) for the user."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/lockConvo.json b/lexicons/chat/bsky/convo/lockConvo.json
new file mode 100644
index 0000000000..fb0177b0b6
--- /dev/null
+++ b/lexicons/chat/bsky/convo/lockConvo.json
@@ -0,0 +1,51 @@
+{
+ "id": "chat.bsky.convo.lockConvo",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "ConvoLocked"
+ },
+ {
+ "name": "InvalidConvo"
+ },
+ {
+ "name": "InsufficientRole"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convo"
+ ],
+ "properties": {
+ "convo": {
+ "ref": "chat.bsky.convo.defs#convoView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Locks a group convo so no more content (messages, reactions) can be added to it."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/muteConvo.json b/lexicons/chat/bsky/convo/muteConvo.json
new file mode 100644
index 0000000000..091136aaf6
--- /dev/null
+++ b/lexicons/chat/bsky/convo/muteConvo.json
@@ -0,0 +1,45 @@
+{
+ "id": "chat.bsky.convo.muteConvo",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convo"
+ ],
+ "properties": {
+ "convo": {
+ "ref": "chat.bsky.convo.defs#convoView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Mutes a conversation, preventing notifications related to it."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/removeReaction.json b/lexicons/chat/bsky/convo/removeReaction.json
new file mode 100644
index 0000000000..8bcdd28e21
--- /dev/null
+++ b/lexicons/chat/bsky/convo/removeReaction.json
@@ -0,0 +1,69 @@
+{
+ "id": "chat.bsky.convo.removeReaction",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId",
+ "messageId",
+ "value"
+ ],
+ "properties": {
+ "value": {
+ "type": "string",
+ "maxLength": 64,
+ "minLength": 1,
+ "maxGraphemes": 1,
+ "minGraphemes": 1
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "messageId": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ },
+ {
+ "name": "ReactionNotAllowed",
+ "description": "Indicates that reactions are not allowed on this message, e.g. because it is a system message."
+ },
+ {
+ "name": "ReactionMessageDeleted",
+ "description": "Indicates that the message has been deleted and reactions can no longer be added/removed."
+ },
+ {
+ "name": "ReactionInvalidValue",
+ "description": "Indicates the value for the reaction is not acceptable. In general, this means it is not an emoji."
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "message"
+ ],
+ "properties": {
+ "message": {
+ "ref": "chat.bsky.convo.defs#messageView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Removes an emoji reaction from a message. Requires authentication. It is idempotent, so multiple calls from the same user with the same emoji result in that reaction not being present, even if it already wasn't."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/sendMessage.json b/lexicons/chat/bsky/convo/sendMessage.json
new file mode 100644
index 0000000000..612bc292ca
--- /dev/null
+++ b/lexicons/chat/bsky/convo/sendMessage.json
@@ -0,0 +1,48 @@
+{
+ "id": "chat.bsky.convo.sendMessage",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId",
+ "message"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ },
+ "message": {
+ "ref": "chat.bsky.convo.defs#messageInput",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "ConvoLocked"
+ },
+ {
+ "name": "InvalidConvo"
+ },
+ {
+ "name": "ReplyTargetNotFound"
+ }
+ ],
+ "output": {
+ "schema": {
+ "ref": "chat.bsky.convo.defs#messageView",
+ "type": "ref"
+ },
+ "encoding": "application/json"
+ },
+ "description": "Sends a message to a conversation."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/sendMessageBatch.json b/lexicons/chat/bsky/convo/sendMessageBatch.json
new file mode 100644
index 0000000000..843443f167
--- /dev/null
+++ b/lexicons/chat/bsky/convo/sendMessageBatch.json
@@ -0,0 +1,75 @@
+{
+ "id": "chat.bsky.convo.sendMessageBatch",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "items"
+ ],
+ "properties": {
+ "items": {
+ "type": "array",
+ "items": {
+ "ref": "#batchItem",
+ "type": "ref"
+ },
+ "maxLength": 100
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "ConvoLocked"
+ },
+ {
+ "name": "InvalidConvo"
+ },
+ {
+ "name": "ReplyTargetNotFound"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "items"
+ ],
+ "properties": {
+ "items": {
+ "type": "array",
+ "items": {
+ "ref": "chat.bsky.convo.defs#messageView",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Sends a batch of messages to a conversation."
+ },
+ "batchItem": {
+ "type": "object",
+ "required": [
+ "convoId",
+ "message"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ },
+ "message": {
+ "ref": "chat.bsky.convo.defs#messageInput",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/unlockConvo.json b/lexicons/chat/bsky/convo/unlockConvo.json
new file mode 100644
index 0000000000..83c3c8fe8a
--- /dev/null
+++ b/lexicons/chat/bsky/convo/unlockConvo.json
@@ -0,0 +1,51 @@
+{
+ "id": "chat.bsky.convo.unlockConvo",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ },
+ {
+ "name": "InsufficientRole"
+ },
+ {
+ "name": "ConvoLockedByModeration"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convo"
+ ],
+ "properties": {
+ "convo": {
+ "ref": "chat.bsky.convo.defs#convoView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Unlocks a group convo so it is able to receive new content."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/unmuteConvo.json b/lexicons/chat/bsky/convo/unmuteConvo.json
new file mode 100644
index 0000000000..813146cd53
--- /dev/null
+++ b/lexicons/chat/bsky/convo/unmuteConvo.json
@@ -0,0 +1,45 @@
+{
+ "id": "chat.bsky.convo.unmuteConvo",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convo"
+ ],
+ "properties": {
+ "convo": {
+ "ref": "chat.bsky.convo.defs#convoView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Unmutes a conversation, allowing notifications related to it."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/updateAllRead.json b/lexicons/chat/bsky/convo/updateAllRead.json
new file mode 100644
index 0000000000..288e873196
--- /dev/null
+++ b/lexicons/chat/bsky/convo/updateAllRead.json
@@ -0,0 +1,41 @@
+{
+ "id": "chat.bsky.convo.updateAllRead",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "status": {
+ "type": "string",
+ "knownValues": [
+ "request",
+ "accepted"
+ ]
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "updatedCount"
+ ],
+ "properties": {
+ "updatedCount": {
+ "type": "integer",
+ "description": "The count of updated convos."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Sets conversations from a user as read to the latest message, with filters."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/convo/updateRead.json b/lexicons/chat/bsky/convo/updateRead.json
new file mode 100644
index 0000000000..1aa6d1152c
--- /dev/null
+++ b/lexicons/chat/bsky/convo/updateRead.json
@@ -0,0 +1,48 @@
+{
+ "id": "chat.bsky.convo.updateRead",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ },
+ "messageId": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convo"
+ ],
+ "properties": {
+ "convo": {
+ "ref": "chat.bsky.convo.defs#convoView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Updates the read state of a conversation from, optionally specifying the last read message."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/embed/joinLink.json b/lexicons/chat/bsky/embed/joinLink.json
new file mode 100644
index 0000000000..0dc09657b9
--- /dev/null
+++ b/lexicons/chat/bsky/embed/joinLink.json
@@ -0,0 +1,36 @@
+{
+ "id": "chat.bsky.embed.joinLink",
+ "defs": {
+ "main": {
+ "type": "object",
+ "required": [
+ "code"
+ ],
+ "properties": {
+ "code": {
+ "type": "string",
+ "description": "The join link code."
+ }
+ }
+ },
+ "view": {
+ "type": "object",
+ "required": [
+ "joinLinkPreview"
+ ],
+ "properties": {
+ "joinLinkPreview": {
+ "refs": [
+ "chat.bsky.group.defs#joinLinkPreviewView",
+ "chat.bsky.group.defs#disabledJoinLinkPreviewView",
+ "chat.bsky.group.defs#invalidJoinLinkPreviewView"
+ ],
+ "type": "union"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1,
+ "description": "A join link embedded in a chat message."
+}
diff --git a/lexicons/chat/bsky/group/addMembers.json b/lexicons/chat/bsky/group/addMembers.json
new file mode 100644
index 0000000000..39a14a5b83
--- /dev/null
+++ b/lexicons/chat/bsky/group/addMembers.json
@@ -0,0 +1,88 @@
+{
+ "id": "chat.bsky.group.addMembers",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId",
+ "members"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ },
+ "members": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "did"
+ },
+ "minLength": 1
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "AccountSuspended"
+ },
+ {
+ "name": "BlockedActor"
+ },
+ {
+ "name": "BlockedSubject"
+ },
+ {
+ "name": "ConvoLocked"
+ },
+ {
+ "name": "InsufficientRole"
+ },
+ {
+ "name": "InvalidConvo"
+ },
+ {
+ "name": "MemberLimitReached"
+ },
+ {
+ "name": "NotFollowedBySender"
+ },
+ {
+ "name": "RecipientNotFound"
+ },
+ {
+ "name": "UserForbidsGroups"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convo"
+ ],
+ "properties": {
+ "convo": {
+ "ref": "chat.bsky.convo.defs#convoView",
+ "type": "ref"
+ },
+ "addedMembers": {
+ "type": "array",
+ "items": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Adds members to a group. The members are added in 'request' status, so they have to accept it. This creates convo memberships."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/group/approveJoinRequest.json b/lexicons/chat/bsky/group/approveJoinRequest.json
new file mode 100644
index 0000000000..c8186db259
--- /dev/null
+++ b/lexicons/chat/bsky/group/approveJoinRequest.json
@@ -0,0 +1,56 @@
+{
+ "id": "chat.bsky.group.approveJoinRequest",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId",
+ "member"
+ ],
+ "properties": {
+ "member": {
+ "type": "string",
+ "format": "did"
+ },
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ },
+ {
+ "name": "InsufficientRole"
+ },
+ {
+ "name": "MemberLimitReached"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convo"
+ ],
+ "properties": {
+ "convo": {
+ "ref": "chat.bsky.convo.defs#convoView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Approves a request to join a group (via join link) the user owns. Action taken by the group owner."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/group/createGroup.json b/lexicons/chat/bsky/group/createGroup.json
new file mode 100644
index 0000000000..efe5e72041
--- /dev/null
+++ b/lexicons/chat/bsky/group/createGroup.json
@@ -0,0 +1,76 @@
+{
+ "id": "chat.bsky.group.createGroup",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "members",
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "maxLength": 500,
+ "minLength": 1,
+ "maxGraphemes": 50
+ },
+ "members": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "did"
+ },
+ "maxLength": 10000,
+ "description": "The members to add to the group. The owner is automatically added. Implementations may enforce a lower maximum than the 10,000-item schema limit; Bluesky currently supports up to 100 total members. If the owner is included in this list, the list may contain up to the implementation's total member limit. Otherwise, it may contain one fewer."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "AccountSuspended"
+ },
+ {
+ "name": "BlockedActor"
+ },
+ {
+ "name": "BlockedSubject"
+ },
+ {
+ "name": "NewAccountCannotCreateGroup"
+ },
+ {
+ "name": "NotFollowedBySender"
+ },
+ {
+ "name": "RecipientNotFound"
+ },
+ {
+ "name": "UserForbidsGroups"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convo"
+ ],
+ "properties": {
+ "convo": {
+ "ref": "chat.bsky.convo.defs#convoView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Creates a group convo, specifying the members to be added to it. Unlike getConvoForMembers, this isn't idempotent. It will create new groups even if the membership is identical to pre-existing groups. Will create 'request' membership for all members, except the owner who is 'accepted'."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/group/createJoinLink.json b/lexicons/chat/bsky/group/createJoinLink.json
new file mode 100644
index 0000000000..679f1bc3b3
--- /dev/null
+++ b/lexicons/chat/bsky/group/createJoinLink.json
@@ -0,0 +1,60 @@
+{
+ "id": "chat.bsky.group.createJoinLink",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId",
+ "joinRule"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ },
+ "joinRule": {
+ "ref": "chat.bsky.group.defs#joinRule",
+ "type": "ref"
+ },
+ "requireApproval": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "EnabledJoinLinkAlreadyExists"
+ },
+ {
+ "name": "InvalidConvo"
+ },
+ {
+ "name": "InsufficientRole"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "joinLink"
+ ],
+ "properties": {
+ "joinLink": {
+ "ref": "chat.bsky.group.defs#joinLinkView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Creates a join link for the group convo."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/group/defs.json b/lexicons/chat/bsky/group/defs.json
new file mode 100644
index 0000000000..3b1cc4bef3
--- /dev/null
+++ b/lexicons/chat/bsky/group/defs.json
@@ -0,0 +1,192 @@
+{
+ "id": "chat.bsky.group.defs",
+ "defs": {
+ "joinRule": {
+ "type": "string",
+ "knownValues": [
+ "anyone",
+ "followedByOwner"
+ ]
+ },
+ "joinLinkView": {
+ "type": "object",
+ "required": [
+ "code",
+ "enabledStatus",
+ "requireApproval",
+ "joinRule",
+ "createdAt"
+ ],
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "joinRule": {
+ "ref": "#joinRule",
+ "type": "ref"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "enabledStatus": {
+ "ref": "#linkEnabledStatus",
+ "type": "ref"
+ },
+ "requireApproval": {
+ "type": "boolean"
+ }
+ },
+ "description": "Join link view to be used within a group view, so the convo is surrounding, not specified inside this view."
+ },
+ "joinRequestView": {
+ "type": "object",
+ "required": [
+ "convoId",
+ "requestedBy",
+ "requestedAt"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ },
+ "requestedAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "requestedBy": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ }
+ },
+ "description": "A join request from the perspective of the group owner."
+ },
+ "linkEnabledStatus": {
+ "type": "string",
+ "knownValues": [
+ "enabled",
+ "disabled"
+ ]
+ },
+ "joinLinkPreviewView": {
+ "type": "object",
+ "required": [
+ "convoId",
+ "code",
+ "name",
+ "owner",
+ "memberCount",
+ "memberLimit",
+ "requireApproval",
+ "joinRule"
+ ],
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "convo": {
+ "ref": "chat.bsky.convo.defs#convoView",
+ "type": "ref",
+ "description": "Present only if the request is authenticated and the user is a member of the group."
+ },
+ "owner": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ },
+ "viewer": {
+ "ref": "#joinLinkViewerState",
+ "type": "ref"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "joinRule": {
+ "ref": "#joinRule",
+ "type": "ref"
+ },
+ "memberCount": {
+ "type": "integer"
+ },
+ "memberLimit": {
+ "type": "integer"
+ },
+ "requireApproval": {
+ "type": "boolean"
+ }
+ },
+ "description": "Preview that can be shown in feeds, including to unauthenticated viewers."
+ },
+ "joinLinkViewerState": {
+ "type": "object",
+ "properties": {
+ "requestedAt": {
+ "type": "string",
+ "format": "datetime"
+ }
+ }
+ },
+ "joinRequestConvoView": {
+ "type": "object",
+ "required": [
+ "convoId",
+ "name",
+ "owner",
+ "memberCount",
+ "memberLimit",
+ "viewer"
+ ],
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "owner": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ },
+ "viewer": {
+ "ref": "#joinLinkViewerState",
+ "type": "ref"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "memberCount": {
+ "type": "integer"
+ },
+ "memberLimit": {
+ "type": "integer"
+ }
+ },
+ "description": "A join request from the perspective of the requester, including enough group context to render the request in a list (e.g. group name, owner, member count)."
+ },
+ "invalidJoinLinkPreviewView": {
+ "type": "object",
+ "required": [
+ "code"
+ ],
+ "properties": {
+ "code": {
+ "type": "string"
+ }
+ },
+ "description": "Preview for a join link code that does not map to an existing link. Carries only the code so clients can correlate with the input and render an invalid state."
+ },
+ "disabledJoinLinkPreviewView": {
+ "type": "object",
+ "required": [
+ "code"
+ ],
+ "properties": {
+ "code": {
+ "type": "string"
+ }
+ },
+ "description": "Preview for a disabled join link. Carries only the code so clients can correlate with the input and render a disabled state."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/group/disableJoinLink.json b/lexicons/chat/bsky/group/disableJoinLink.json
new file mode 100644
index 0000000000..e240344a17
--- /dev/null
+++ b/lexicons/chat/bsky/group/disableJoinLink.json
@@ -0,0 +1,51 @@
+{
+ "id": "chat.bsky.group.disableJoinLink",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ },
+ {
+ "name": "InsufficientRole"
+ },
+ {
+ "name": "NoJoinLink"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "joinLink"
+ ],
+ "properties": {
+ "joinLink": {
+ "ref": "chat.bsky.group.defs#joinLinkView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Disables the active join link for the group convo."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/group/editGroup.json b/lexicons/chat/bsky/group/editGroup.json
new file mode 100644
index 0000000000..2ce53704cd
--- /dev/null
+++ b/lexicons/chat/bsky/group/editGroup.json
@@ -0,0 +1,58 @@
+{
+ "id": "chat.bsky.group.editGroup",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId",
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "maxLength": 500,
+ "minLength": 1,
+ "maxGraphemes": 50
+ },
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "ConvoLocked"
+ },
+ {
+ "name": "InvalidConvo"
+ },
+ {
+ "name": "InsufficientRole"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convo"
+ ],
+ "properties": {
+ "convo": {
+ "ref": "chat.bsky.convo.defs#convoView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Edits group settings."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/group/editJoinLink.json b/lexicons/chat/bsky/group/editJoinLink.json
new file mode 100644
index 0000000000..17bc143555
--- /dev/null
+++ b/lexicons/chat/bsky/group/editJoinLink.json
@@ -0,0 +1,58 @@
+{
+ "id": "chat.bsky.group.editJoinLink",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ },
+ "joinRule": {
+ "ref": "chat.bsky.group.defs#joinRule",
+ "type": "ref"
+ },
+ "requireApproval": {
+ "type": "boolean"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ },
+ {
+ "name": "InsufficientRole"
+ },
+ {
+ "name": "NoJoinLink"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "joinLink"
+ ],
+ "properties": {
+ "joinLink": {
+ "ref": "chat.bsky.group.defs#joinLinkView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Edits the existing join link settings for the group convo."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/group/enableJoinLink.json b/lexicons/chat/bsky/group/enableJoinLink.json
new file mode 100644
index 0000000000..ed82a96495
--- /dev/null
+++ b/lexicons/chat/bsky/group/enableJoinLink.json
@@ -0,0 +1,54 @@
+{
+ "id": "chat.bsky.group.enableJoinLink",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ },
+ {
+ "name": "InsufficientRole"
+ },
+ {
+ "name": "NoJoinLink"
+ },
+ {
+ "name": "LinkAlreadyEnabled"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "joinLink"
+ ],
+ "properties": {
+ "joinLink": {
+ "ref": "chat.bsky.group.defs#joinLinkView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Re-enables a previously disabled join link for the group convo."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/group/getJoinLinkPreviews.json b/lexicons/chat/bsky/group/getJoinLinkPreviews.json
new file mode 100644
index 0000000000..c9c8491cad
--- /dev/null
+++ b/lexicons/chat/bsky/group/getJoinLinkPreviews.json
@@ -0,0 +1,49 @@
+{
+ "id": "chat.bsky.group.getJoinLinkPreviews",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "joinLinkPreviews"
+ ],
+ "properties": {
+ "joinLinkPreviews": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "chat.bsky.group.defs#joinLinkPreviewView",
+ "chat.bsky.group.defs#disabledJoinLinkPreviewView",
+ "chat.bsky.group.defs#invalidJoinLinkPreviewView"
+ ],
+ "type": "union"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "codes"
+ ],
+ "properties": {
+ "codes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "maxLength": 50,
+ "minLength": 1
+ }
+ }
+ },
+ "description": "Get public information about groups from join links. The output array matches the input codes one-to-one by position (and each view also carries its 'code'). Disabled codes return a disabledJoinLinkPreviewView, and codes that do not map to a previewable link return an invalidJoinLinkPreviewView."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/group/listJoinRequests.json b/lexicons/chat/bsky/group/listJoinRequests.json
new file mode 100644
index 0000000000..b8ecd295dd
--- /dev/null
+++ b/lexicons/chat/bsky/group/listJoinRequests.json
@@ -0,0 +1,60 @@
+{
+ "id": "chat.bsky.group.listJoinRequests",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ },
+ {
+ "name": "InsufficientRole"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "requests"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "requests": {
+ "type": "array",
+ "items": {
+ "ref": "chat.bsky.group.defs#joinRequestView",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "convoId"
+ ],
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Lists a page of request to join a group (via join link) the user owns. Shows the data from the owner's point of view."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/group/listMutualGroups.json b/lexicons/chat/bsky/group/listMutualGroups.json
new file mode 100644
index 0000000000..26d04f1edd
--- /dev/null
+++ b/lexicons/chat/bsky/group/listMutualGroups.json
@@ -0,0 +1,53 @@
+{
+ "id": "chat.bsky.group.listMutualGroups",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convos"
+ ],
+ "properties": {
+ "convos": {
+ "type": "array",
+ "items": {
+ "ref": "chat.bsky.convo.defs#convoView",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "subject"
+ ],
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ },
+ "subject": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ },
+ "description": "Returns a page of group conversations that both the requester and the specified actor are members of."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/group/rejectJoinRequest.json b/lexicons/chat/bsky/group/rejectJoinRequest.json
new file mode 100644
index 0000000000..fb8edf64ea
--- /dev/null
+++ b/lexicons/chat/bsky/group/rejectJoinRequest.json
@@ -0,0 +1,46 @@
+{
+ "id": "chat.bsky.group.rejectJoinRequest",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId",
+ "member"
+ ],
+ "properties": {
+ "member": {
+ "type": "string",
+ "format": "did"
+ },
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ },
+ {
+ "name": "InsufficientRole"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [],
+ "properties": {}
+ },
+ "encoding": "application/json"
+ },
+ "description": "Rejects a request to join a group (via join link) the user owns. Action taken by the group owner."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/group/removeMembers.json b/lexicons/chat/bsky/group/removeMembers.json
new file mode 100644
index 0000000000..e7e795a6bb
--- /dev/null
+++ b/lexicons/chat/bsky/group/removeMembers.json
@@ -0,0 +1,57 @@
+{
+ "id": "chat.bsky.group.removeMembers",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId",
+ "members"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ },
+ "members": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "did"
+ },
+ "minLength": 1
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ },
+ {
+ "name": "InsufficientRole"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convo"
+ ],
+ "properties": {
+ "convo": {
+ "ref": "chat.bsky.convo.defs#convoView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Removes members from a group. This deletes convo memberships, doesn't just set a status."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/group/requestJoin.json b/lexicons/chat/bsky/group/requestJoin.json
new file mode 100644
index 0000000000..b3cbbd6b4c
--- /dev/null
+++ b/lexicons/chat/bsky/group/requestJoin.json
@@ -0,0 +1,68 @@
+{
+ "id": "chat.bsky.group.requestJoin",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "code"
+ ],
+ "properties": {
+ "code": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "ConvoLocked"
+ },
+ {
+ "name": "FollowRequired"
+ },
+ {
+ "name": "InvalidCode"
+ },
+ {
+ "name": "LinkDisabled"
+ },
+ {
+ "name": "MemberLimitReached"
+ },
+ {
+ "name": "UserKicked"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "status"
+ ],
+ "properties": {
+ "convo": {
+ "ref": "chat.bsky.convo.defs#convoView",
+ "type": "ref",
+ "description": "The group convo joined. This is only present in the case of status=joined"
+ },
+ "status": {
+ "type": "string",
+ "knownValues": [
+ "joined",
+ "pending"
+ ]
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Sends a request to join a group (via join link) to the group owner. Action taken by the prospective group member."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/group/updateJoinRequestsRead.json b/lexicons/chat/bsky/group/updateJoinRequestsRead.json
new file mode 100644
index 0000000000..e80c671d5e
--- /dev/null
+++ b/lexicons/chat/bsky/group/updateJoinRequestsRead.json
@@ -0,0 +1,41 @@
+{
+ "id": "chat.bsky.group.updateJoinRequestsRead",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ },
+ {
+ "name": "InsufficientRole"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [],
+ "properties": {}
+ },
+ "encoding": "application/json"
+ },
+ "description": "Marks all join requests as read for the group owner."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/group/withdrawJoinRequest.json b/lexicons/chat/bsky/group/withdrawJoinRequest.json
new file mode 100644
index 0000000000..4d13bb4249
--- /dev/null
+++ b/lexicons/chat/bsky/group/withdrawJoinRequest.json
@@ -0,0 +1,38 @@
+{
+ "id": "chat.bsky.group.withdrawJoinRequest",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convoId"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidJoinRequest"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [],
+ "properties": {}
+ },
+ "encoding": "application/json"
+ },
+ "description": "Withdraws a pending request to join a group. Action taken by the prospective member who originally requested to join."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/moderation/defs.json b/lexicons/chat/bsky/moderation/defs.json
new file mode 100644
index 0000000000..895b3bee77
--- /dev/null
+++ b/lexicons/chat/bsky/moderation/defs.json
@@ -0,0 +1,81 @@
+{
+ "id": "chat.bsky.moderation.defs",
+ "defs": {
+ "convoView": {
+ "type": "object",
+ "required": [
+ "id",
+ "rev"
+ ],
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "rev": {
+ "type": "string"
+ },
+ "kind": {
+ "refs": [
+ "#directConvo",
+ "#groupConvo"
+ ],
+ "type": "union",
+ "description": "Union field that has data specific to different kinds of convos."
+ }
+ },
+ "description": "A view of a conversation for moderation purposes. Unlike chat.bsky.convo.defs#convoView, it does not include viewer-specific data (such as muted, unreadCount, status, lastMessage, lastReaction), since the requester is a moderator and not a member of the conversation. The member list is not included; use chat.bsky.moderation.getConvoMembers to list members."
+ },
+ "groupConvo": {
+ "type": "object",
+ "required": [
+ "createdAt",
+ "joinRequestCount",
+ "lockStatus",
+ "memberCount",
+ "memberLimit",
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "maxLength": 500,
+ "description": "The display name of the group conversation.",
+ "maxGraphemes": 50
+ },
+ "joinLink": {
+ "ref": "chat.bsky.group.defs#joinLinkView",
+ "type": "ref"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "lockStatus": {
+ "ref": "chat.bsky.convo.defs#convoLockStatus",
+ "type": "ref",
+ "description": "The lock status of the conversation."
+ },
+ "memberCount": {
+ "type": "integer",
+ "description": "The total number of members in the group conversation."
+ },
+ "memberLimit": {
+ "type": "integer",
+ "description": "The maximum number of members allowed in the group conversation."
+ },
+ "joinRequestCount": {
+ "type": "integer",
+ "description": "The total number of pending join requests for the group conversation. This information is only visible to the owner and to moderators. Capped at 21."
+ }
+ },
+ "description": "Data specific to a group conversation, for moderation purposes. Unlike chat.bsky.convo.defs#groupConvo, it does not include viewer-specific data (such as unreadJoinRequestCount), since the requester is a moderator and not a member of the conversation."
+ },
+ "directConvo": {
+ "type": "object",
+ "properties": {},
+ "description": "Data specific to a direct conversation, for moderation purposes."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/moderation/getActorMetadata.json b/lexicons/chat/bsky/moderation/getActorMetadata.json
new file mode 100644
index 0000000000..3f20fe2170
--- /dev/null
+++ b/lexicons/chat/bsky/moderation/getActorMetadata.json
@@ -0,0 +1,70 @@
+{
+ "id": "chat.bsky.moderation.getActorMetadata",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "day",
+ "month",
+ "all"
+ ],
+ "properties": {
+ "all": {
+ "ref": "#metadata",
+ "type": "ref"
+ },
+ "day": {
+ "ref": "#metadata",
+ "type": "ref"
+ },
+ "month": {
+ "ref": "#metadata",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "actor"
+ ],
+ "properties": {
+ "actor": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ }
+ },
+ "metadata": {
+ "type": "object",
+ "required": [
+ "messagesSent",
+ "messagesReceived",
+ "convos",
+ "convosStarted"
+ ],
+ "properties": {
+ "convos": {
+ "type": "integer"
+ },
+ "messagesSent": {
+ "type": "integer"
+ },
+ "convosStarted": {
+ "type": "integer"
+ },
+ "messagesReceived": {
+ "type": "integer"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/moderation/getConvo.json b/lexicons/chat/bsky/moderation/getConvo.json
new file mode 100644
index 0000000000..a9213df585
--- /dev/null
+++ b/lexicons/chat/bsky/moderation/getConvo.json
@@ -0,0 +1,42 @@
+{
+ "id": "chat.bsky.moderation.getConvo",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convo"
+ ],
+ "properties": {
+ "convo": {
+ "ref": "chat.bsky.moderation.defs#convoView",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "convoId"
+ ],
+ "properties": {
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Gets an existing conversation by its ID, for moderation purposes. Does not require the requester to be a member of the conversation."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/moderation/getConvoMembers.json b/lexicons/chat/bsky/moderation/getConvoMembers.json
new file mode 100644
index 0000000000..236663422c
--- /dev/null
+++ b/lexicons/chat/bsky/moderation/getConvoMembers.json
@@ -0,0 +1,57 @@
+{
+ "id": "chat.bsky.moderation.getConvoMembers",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "InvalidConvo"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "members"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "members": {
+ "type": "array",
+ "items": {
+ "ref": "chat.bsky.actor.defs#profileViewBasic",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "convoId"
+ ],
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Returns a paginated list of members from a conversation, for moderation purposes. Does not require the requester to be a member of the conversation."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/moderation/getConvos.json b/lexicons/chat/bsky/moderation/getConvos.json
new file mode 100644
index 0000000000..2169dc64dd
--- /dev/null
+++ b/lexicons/chat/bsky/moderation/getConvos.json
@@ -0,0 +1,45 @@
+{
+ "id": "chat.bsky.moderation.getConvos",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "convos"
+ ],
+ "properties": {
+ "convos": {
+ "type": "array",
+ "items": {
+ "ref": "chat.bsky.moderation.defs#convoView",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "convoIds"
+ ],
+ "properties": {
+ "convoIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "maxLength": 100,
+ "minLength": 1
+ }
+ }
+ },
+ "description": "Gets existing conversations by their IDs, for moderation purposes. Does not require the requester to be a member of the conversations. Unknown IDs are silently omitted from the response."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/moderation/getMessageContext.json b/lexicons/chat/bsky/moderation/getMessageContext.json
new file mode 100644
index 0000000000..f88034c105
--- /dev/null
+++ b/lexicons/chat/bsky/moderation/getMessageContext.json
@@ -0,0 +1,63 @@
+{
+ "id": "chat.bsky.moderation.getMessageContext",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "messages"
+ ],
+ "properties": {
+ "messages": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "chat.bsky.convo.defs#messageView",
+ "chat.bsky.convo.defs#systemMessageView"
+ ],
+ "type": "union"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "messageId"
+ ],
+ "properties": {
+ "after": {
+ "type": "integer",
+ "default": 5,
+ "description": "Number of user messages after the target to include. System messages between the target and the latest returned user message are also included, capped per gap by `maxInterleavedSystemMessages`. If there are no user messages after the target, up to `maxInterleavedSystemMessages` system messages immediately following the target are returned instead."
+ },
+ "before": {
+ "type": "integer",
+ "default": 5,
+ "description": "Number of user messages before the target to include. System messages between the earliest returned user message and the target are also included, capped per gap by `maxInterleavedSystemMessages`. If there are no user messages before the target, up to `maxInterleavedSystemMessages` system messages immediately preceding the target are returned instead."
+ },
+ "convoId": {
+ "type": "string",
+ "description": "Conversation that the message is from. NOTE: this field will eventually be required."
+ },
+ "messageId": {
+ "type": "string"
+ },
+ "maxInterleavedSystemMessages": {
+ "type": "integer",
+ "default": 10,
+ "maximum": 1000,
+ "minimum": 0,
+ "description": "Maximum number of system messages to include per gap between consecutive returned messages (and per side when there are no user messages on that side). Within a gap, the system messages closest to the earlier message are kept."
+ }
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/moderation/subscribeModEvents.json b/lexicons/chat/bsky/moderation/subscribeModEvents.json
new file mode 100644
index 0000000000..277c85b248
--- /dev/null
+++ b/lexicons/chat/bsky/moderation/subscribeModEvents.json
@@ -0,0 +1,675 @@
+{
+ "id": "chat.bsky.moderation.subscribeModEvents",
+ "defs": {
+ "main": {
+ "type": "subscription",
+ "errors": [
+ {
+ "name": "FutureCursor"
+ },
+ {
+ "name": "ConsumerTooSlow",
+ "description": "If the consumer of the stream can not keep up with events, and a backlog gets too large, the server will drop the connection."
+ }
+ ],
+ "message": {
+ "schema": {
+ "refs": [
+ "#eventConvoFirstMessage",
+ "#eventGroupChatCreated",
+ "#eventGroupChatMemberAdded",
+ "#eventGroupChatMemberJoined",
+ "#eventGroupChatJoinRequest",
+ "#eventGroupChatJoinRequestApproved",
+ "#eventGroupChatJoinRequestRejected",
+ "#eventChatAccepted",
+ "#eventGroupChatMemberLeft",
+ "#eventGroupChatUpdated",
+ "#eventRateLimitExceeded"
+ ],
+ "type": "union"
+ }
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "cursor": {
+ "type": "string",
+ "description": "The last known event seq number to backfill from. Use '2222222222222' to backfill from the beginning. Don't specify a cursor to listen only for new events."
+ }
+ }
+ },
+ "description": "Subscribe to stream of chat events targeted to moderation. Private endpoint."
+ },
+ "eventChatAccepted": {
+ "type": "object",
+ "required": [
+ "actorDid",
+ "convoCreatedAt",
+ "convoId",
+ "createdAt",
+ "method",
+ "rev"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "method": {
+ "type": "string",
+ "description": "How the convo was accepted.",
+ "knownValues": [
+ "explicit",
+ "message"
+ ]
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "actorDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the person accepting the convo."
+ },
+ "ownerDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the group chat owner. Only present for group convos."
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "groupName": {
+ "type": "string",
+ "description": "The name of the group chat. Only present for group convos."
+ },
+ "convoCreatedAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "When the convo was originally created."
+ },
+ "groupMemberCount": {
+ "type": "integer",
+ "description": "Current member count at the time of the event. Only present for group convos."
+ }
+ },
+ "description": "Fired when a user accepts a chat convo, either explicitly or by sending a message."
+ },
+ "eventGroupChatCreated": {
+ "type": "object",
+ "required": [
+ "actorDid",
+ "convoCreatedAt",
+ "convoId",
+ "createdAt",
+ "groupMemberCount",
+ "groupName",
+ "initialMemberDids",
+ "ownerDid",
+ "rev"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "actorDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the actor performing the action. For this event, same as ownerDid."
+ },
+ "ownerDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the group chat owner."
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "groupName": {
+ "type": "string",
+ "description": "The name set at creation time."
+ },
+ "convoCreatedAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "When the group was originally created."
+ },
+ "groupMemberCount": {
+ "type": "integer",
+ "description": "Current member count at the time of the event."
+ },
+ "initialMemberDids": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "did"
+ },
+ "description": "DIDs of everyone added at creation time."
+ }
+ },
+ "description": "Fire when a group chat is created."
+ },
+ "eventGroupChatUpdated": {
+ "type": "object",
+ "required": [
+ "actorDid",
+ "convoCreatedAt",
+ "convoId",
+ "createdAt",
+ "groupMemberCount",
+ "groupName",
+ "ownerDid",
+ "rev",
+ "updateType"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "newName": {
+ "type": "string",
+ "description": "The new group name. Only present when updateType is 'name_changed'."
+ },
+ "oldName": {
+ "type": "string",
+ "description": "The previous group name. Only present when updateType is 'name_changed'."
+ },
+ "actorDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the actor performing the action (the owner)."
+ },
+ "ownerDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the group chat owner."
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "groupName": {
+ "type": "string",
+ "description": "Current group name."
+ },
+ "lockReason": {
+ "type": "string",
+ "description": "Why the group was locked. Only present when updateType is 'locked'.",
+ "knownValues": [
+ "owner_action",
+ "owner_left",
+ "owner_deactivated",
+ "owner_deleted",
+ "owner_suspended",
+ "owner_taken_down",
+ "label_applied",
+ "convo_taken_down"
+ ]
+ },
+ "updateType": {
+ "type": "string",
+ "description": "What changed.",
+ "knownValues": [
+ "name_changed",
+ "locked",
+ "locked_permanently",
+ "unlocked",
+ "join_link_created",
+ "join_link_disabled",
+ "join_link_settings_changed"
+ ]
+ },
+ "joinLinkCode": {
+ "type": "string",
+ "description": "The code of the join link. Only present when updateType is join-link-related."
+ },
+ "convoCreatedAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "When the group was originally created."
+ },
+ "groupMemberCount": {
+ "type": "integer",
+ "description": "Current member count at the time of the event."
+ },
+ "joinLinkFollowersOnly": {
+ "type": "boolean",
+ "description": "Whether the join link is restricted to followers of the owner. Only present when updateType is join-link-related."
+ },
+ "joinLinkRequiresApproval": {
+ "type": "boolean",
+ "description": "Whether the join link requires owner approval to join. Only present when updateType is join-link-related."
+ }
+ },
+ "description": "Fired when a group chat's metadata or status changes."
+ },
+ "eventConvoFirstMessage": {
+ "type": "object",
+ "required": [
+ "createdAt",
+ "rev",
+ "convoId",
+ "user",
+ "recipients"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "user": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the message author."
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "messageId": {
+ "type": "string"
+ },
+ "recipients": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "did"
+ },
+ "description": "The list of DIDs message recipients. Does not include the sender, which is in the `user` field"
+ }
+ },
+ "description": "Fired when the first message was sent on a convo."
+ },
+ "eventRateLimitExceeded": {
+ "type": "object",
+ "required": [
+ "actorDid",
+ "createdAt",
+ "endpoint",
+ "rev"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "actorDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the user who hit the rate limit."
+ },
+ "endpoint": {
+ "type": "string",
+ "description": "The NSID of the endpoint that was rate limited."
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ }
+ },
+ "description": "Fired when a user exceeds a rate limit."
+ },
+ "eventGroupChatMemberLeft": {
+ "type": "object",
+ "required": [
+ "actorDid",
+ "convoCreatedAt",
+ "convoId",
+ "createdAt",
+ "groupMemberCount",
+ "groupName",
+ "leaveMethod",
+ "ownerDid",
+ "rev",
+ "subjectDid"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "actorDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the actor. For voluntary: the person leaving. For kicked: the owner."
+ },
+ "ownerDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the group chat owner."
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "groupName": {
+ "type": "string"
+ },
+ "subjectDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the member who left or was removed."
+ },
+ "leaveMethod": {
+ "type": "string",
+ "description": "How the member left.",
+ "knownValues": [
+ "voluntary",
+ "kicked"
+ ]
+ },
+ "convoCreatedAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "When the group was originally created."
+ },
+ "groupMemberCount": {
+ "type": "integer",
+ "description": "Current member count at the time of the event."
+ }
+ },
+ "description": "Fired when a member leaves or is removed from a group chat."
+ },
+ "eventGroupChatJoinRequest": {
+ "type": "object",
+ "required": [
+ "actorDid",
+ "convoCreatedAt",
+ "convoId",
+ "createdAt",
+ "groupMemberCount",
+ "groupName",
+ "joinLinkCode",
+ "ownerDid",
+ "rev",
+ "subjectFollowsOwner"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "actorDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the person requesting to join."
+ },
+ "ownerDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the group chat owner."
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "groupName": {
+ "type": "string"
+ },
+ "joinLinkCode": {
+ "type": "string",
+ "description": "The code of the join link used to request joining."
+ },
+ "convoCreatedAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "When the group was originally created."
+ },
+ "groupMemberCount": {
+ "type": "integer",
+ "description": "Current member count at the time of the event."
+ },
+ "subjectFollowsOwner": {
+ "type": "boolean",
+ "description": "Whether the requesting member follows the group owner."
+ }
+ },
+ "description": "Fired when a user requests to join a group chat via an join link that requires approval."
+ },
+ "eventGroupChatMemberAdded": {
+ "type": "object",
+ "required": [
+ "actorDid",
+ "convoCreatedAt",
+ "convoId",
+ "createdAt",
+ "groupMemberCount",
+ "groupName",
+ "ownerDid",
+ "requestMembersCount",
+ "rev",
+ "subjectDid",
+ "subjectFollowsOwner"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "actorDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the actor performing the action. For this event, same as ownerDid."
+ },
+ "ownerDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the group chat owner."
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "groupName": {
+ "type": "string"
+ },
+ "subjectDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the member who was added."
+ },
+ "convoCreatedAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "When the group was originally created."
+ },
+ "groupMemberCount": {
+ "type": "integer",
+ "description": "Current member count at the time of the event."
+ },
+ "requestMembersCount": {
+ "type": "integer",
+ "description": "The number of members who have not yet accepted the convo."
+ },
+ "subjectFollowsOwner": {
+ "type": "boolean",
+ "description": "Whether the added member follows the group owner."
+ }
+ },
+ "description": "Fired when a member is added to a group chat. Note that members are added in the 'request' state."
+ },
+ "eventGroupChatMemberJoined": {
+ "type": "object",
+ "required": [
+ "actorDid",
+ "convoCreatedAt",
+ "convoId",
+ "createdAt",
+ "groupMemberCount",
+ "groupName",
+ "joinLinkCode",
+ "ownerDid",
+ "rev",
+ "subjectFollowsOwner"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "actorDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the person joining."
+ },
+ "ownerDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the group chat owner."
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "groupName": {
+ "type": "string"
+ },
+ "joinLinkCode": {
+ "type": "string",
+ "description": "The code of the join link used to join."
+ },
+ "convoCreatedAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "When the group was originally created."
+ },
+ "groupMemberCount": {
+ "type": "integer",
+ "description": "Current member count at the time of the event."
+ },
+ "subjectFollowsOwner": {
+ "type": "boolean",
+ "description": "Whether the joining member follows the group owner."
+ }
+ },
+ "description": "Fired when a member joins a group chat via an join link that does not require approval."
+ },
+ "eventGroupChatJoinRequestApproved": {
+ "type": "object",
+ "required": [
+ "actorDid",
+ "convoCreatedAt",
+ "convoId",
+ "createdAt",
+ "groupMemberCount",
+ "groupName",
+ "ownerDid",
+ "rev",
+ "subjectDid"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "actorDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the owner approving the request."
+ },
+ "ownerDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the group chat owner."
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "groupName": {
+ "type": "string"
+ },
+ "subjectDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the member whose request was approved."
+ },
+ "convoCreatedAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "When the group was originally created."
+ },
+ "groupMemberCount": {
+ "type": "integer",
+ "description": "Current member count at the time of the event."
+ }
+ },
+ "description": "Fired when a join request is approved by the group owner."
+ },
+ "eventGroupChatJoinRequestRejected": {
+ "type": "object",
+ "required": [
+ "actorDid",
+ "convoCreatedAt",
+ "convoId",
+ "createdAt",
+ "groupMemberCount",
+ "groupName",
+ "ownerDid",
+ "rev",
+ "subjectDid"
+ ],
+ "properties": {
+ "rev": {
+ "type": "string"
+ },
+ "convoId": {
+ "type": "string"
+ },
+ "actorDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the owner rejecting the request."
+ },
+ "ownerDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the group chat owner."
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "groupName": {
+ "type": "string"
+ },
+ "subjectDid": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the member whose request was rejected."
+ },
+ "convoCreatedAt": {
+ "type": "string",
+ "format": "datetime",
+ "description": "When the group was originally created."
+ },
+ "groupMemberCount": {
+ "type": "integer",
+ "description": "Current member count at the time of the event."
+ }
+ },
+ "description": "Fired when a join request is rejected by the group owner."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/moderation/updateActorAccess.json b/lexicons/chat/bsky/moderation/updateActorAccess.json
new file mode 100644
index 0000000000..8e2d711a17
--- /dev/null
+++ b/lexicons/chat/bsky/moderation/updateActorAccess.json
@@ -0,0 +1,32 @@
+{
+ "id": "chat.bsky.moderation.updateActorAccess",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "actor",
+ "allowAccess"
+ ],
+ "properties": {
+ "ref": {
+ "type": "string"
+ },
+ "actor": {
+ "type": "string",
+ "format": "did"
+ },
+ "allowAccess": {
+ "type": "boolean"
+ }
+ }
+ },
+ "encoding": "application/json"
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/notification/defs.json b/lexicons/chat/bsky/notification/defs.json
new file mode 100644
index 0000000000..927f7242de
--- /dev/null
+++ b/lexicons/chat/bsky/notification/defs.json
@@ -0,0 +1,43 @@
+{
+ "id": "chat.bsky.notification.defs",
+ "defs": {
+ "preferences": {
+ "type": "object",
+ "required": [
+ "chat",
+ "chatRequest"
+ ],
+ "properties": {
+ "chat": {
+ "ref": "#chatPreference",
+ "type": "ref"
+ },
+ "chatRequest": {
+ "ref": "#chatPreference",
+ "type": "ref"
+ }
+ }
+ },
+ "chatPreference": {
+ "type": "object",
+ "required": [
+ "include",
+ "push"
+ ],
+ "properties": {
+ "push": {
+ "type": "boolean"
+ },
+ "include": {
+ "type": "string",
+ "knownValues": [
+ "all",
+ "follows"
+ ]
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/notification/getPreferences.json b/lexicons/chat/bsky/notification/getPreferences.json
new file mode 100644
index 0000000000..e1924b0ea9
--- /dev/null
+++ b/lexicons/chat/bsky/notification/getPreferences.json
@@ -0,0 +1,26 @@
+{
+ "id": "chat.bsky.notification.getPreferences",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "preferences"
+ ],
+ "properties": {
+ "preferences": {
+ "ref": "chat.bsky.notification.defs#preferences",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Get the requesting account's chat notification preferences. Defaults are returned for accounts that have not set any preferences. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/chat/bsky/notification/putPreferences.json b/lexicons/chat/bsky/notification/putPreferences.json
new file mode 100644
index 0000000000..1d278ddb8a
--- /dev/null
+++ b/lexicons/chat/bsky/notification/putPreferences.json
@@ -0,0 +1,42 @@
+{
+ "id": "chat.bsky.notification.putPreferences",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "chat": {
+ "ref": "chat.bsky.notification.defs#chatPreference",
+ "type": "ref"
+ },
+ "chatRequest": {
+ "ref": "chat.bsky.notification.defs#chatPreference",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "preferences"
+ ],
+ "properties": {
+ "preferences": {
+ "ref": "chat.bsky.notification.defs#preferences",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Set the requesting account's chat notification preferences. Only the provided preferences are updated; omitted preferences are left unchanged."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/admin/defs.json b/lexicons/com/atproto/admin/defs.json
new file mode 100644
index 0000000000..ee74d849c7
--- /dev/null
+++ b/lexicons/com/atproto/admin/defs.json
@@ -0,0 +1,132 @@
+{
+ "id": "com.atproto.admin.defs",
+ "defs": {
+ "repoRef": {
+ "type": "object",
+ "required": [
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ },
+ "statusAttr": {
+ "type": "object",
+ "required": [
+ "applied"
+ ],
+ "properties": {
+ "ref": {
+ "type": "string"
+ },
+ "applied": {
+ "type": "boolean"
+ }
+ }
+ },
+ "accountView": {
+ "type": "object",
+ "required": [
+ "did",
+ "handle",
+ "indexedAt"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "email": {
+ "type": "string"
+ },
+ "handle": {
+ "type": "string",
+ "format": "handle"
+ },
+ "invites": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.server.defs#inviteCode",
+ "type": "ref"
+ }
+ },
+ "indexedAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "invitedBy": {
+ "ref": "com.atproto.server.defs#inviteCode",
+ "type": "ref"
+ },
+ "inviteNote": {
+ "type": "string"
+ },
+ "deactivatedAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "relatedRecords": {
+ "type": "array",
+ "items": {
+ "type": "unknown"
+ }
+ },
+ "invitesDisabled": {
+ "type": "boolean"
+ },
+ "emailConfirmedAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "threatSignatures": {
+ "type": "array",
+ "items": {
+ "ref": "#threatSignature",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "repoBlobRef": {
+ "type": "object",
+ "required": [
+ "did",
+ "cid"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "recordUri": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ }
+ },
+ "threatSignature": {
+ "type": "object",
+ "required": [
+ "property",
+ "value"
+ ],
+ "properties": {
+ "value": {
+ "type": "string"
+ },
+ "property": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/admin/deleteAccount.json b/lexicons/com/atproto/admin/deleteAccount.json
new file mode 100644
index 0000000000..33497c78c1
--- /dev/null
+++ b/lexicons/com/atproto/admin/deleteAccount.json
@@ -0,0 +1,26 @@
+{
+ "id": "com.atproto.admin.deleteAccount",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Delete a user account as an administrator."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/admin/disableAccountInvites.json b/lexicons/com/atproto/admin/disableAccountInvites.json
new file mode 100644
index 0000000000..3263b02e14
--- /dev/null
+++ b/lexicons/com/atproto/admin/disableAccountInvites.json
@@ -0,0 +1,30 @@
+{
+ "id": "com.atproto.admin.disableAccountInvites",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "account"
+ ],
+ "properties": {
+ "note": {
+ "type": "string",
+ "description": "Optional reason for disabled invites."
+ },
+ "account": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Disable an account from receiving new invite codes, but does not invalidate existing codes."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/admin/disableInviteCodes.json b/lexicons/com/atproto/admin/disableInviteCodes.json
new file mode 100644
index 0000000000..97ed72bd54
--- /dev/null
+++ b/lexicons/com/atproto/admin/disableInviteCodes.json
@@ -0,0 +1,31 @@
+{
+ "id": "com.atproto.admin.disableInviteCodes",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "codes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "accounts": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Disable some set of codes and/or all codes associated with a set of users."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/admin/enableAccountInvites.json b/lexicons/com/atproto/admin/enableAccountInvites.json
new file mode 100644
index 0000000000..d7bc1f7dd2
--- /dev/null
+++ b/lexicons/com/atproto/admin/enableAccountInvites.json
@@ -0,0 +1,30 @@
+{
+ "id": "com.atproto.admin.enableAccountInvites",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "account"
+ ],
+ "properties": {
+ "note": {
+ "type": "string",
+ "description": "Optional reason for enabled invites."
+ },
+ "account": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Re-enable an account's ability to receive invite codes."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/admin/getAccountInfo.json b/lexicons/com/atproto/admin/getAccountInfo.json
new file mode 100644
index 0000000000..d64dd43920
--- /dev/null
+++ b/lexicons/com/atproto/admin/getAccountInfo.json
@@ -0,0 +1,30 @@
+{
+ "id": "com.atproto.admin.getAccountInfo",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "ref": "com.atproto.admin.defs#accountView",
+ "type": "ref"
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ },
+ "description": "Get details about an account."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/admin/getAccountInfos.json b/lexicons/com/atproto/admin/getAccountInfos.json
new file mode 100644
index 0000000000..b23ec065f8
--- /dev/null
+++ b/lexicons/com/atproto/admin/getAccountInfos.json
@@ -0,0 +1,44 @@
+{
+ "id": "com.atproto.admin.getAccountInfos",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "infos"
+ ],
+ "properties": {
+ "infos": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.admin.defs#accountView",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "dids"
+ ],
+ "properties": {
+ "dids": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ }
+ },
+ "description": "Get details about some accounts."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/admin/getInviteCodes.json b/lexicons/com/atproto/admin/getInviteCodes.json
new file mode 100644
index 0000000000..085de7dfdf
--- /dev/null
+++ b/lexicons/com/atproto/admin/getInviteCodes.json
@@ -0,0 +1,54 @@
+{
+ "id": "com.atproto.admin.getInviteCodes",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "codes"
+ ],
+ "properties": {
+ "codes": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.server.defs#inviteCode",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "sort": {
+ "type": "string",
+ "default": "recent",
+ "knownValues": [
+ "recent",
+ "usage"
+ ]
+ },
+ "limit": {
+ "type": "integer",
+ "default": 100,
+ "maximum": 500,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Get an admin view of invite codes."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/admin/getSubjectStatus.json b/lexicons/com/atproto/admin/getSubjectStatus.json
new file mode 100644
index 0000000000..ad10fd9d45
--- /dev/null
+++ b/lexicons/com/atproto/admin/getSubjectStatus.json
@@ -0,0 +1,55 @@
+{
+ "id": "com.atproto.admin.getSubjectStatus",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "subject"
+ ],
+ "properties": {
+ "subject": {
+ "refs": [
+ "com.atproto.admin.defs#repoRef",
+ "com.atproto.repo.strongRef",
+ "com.atproto.admin.defs#repoBlobRef"
+ ],
+ "type": "union"
+ },
+ "takedown": {
+ "ref": "com.atproto.admin.defs#statusAttr",
+ "type": "ref"
+ },
+ "deactivated": {
+ "ref": "com.atproto.admin.defs#statusAttr",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "blob": {
+ "type": "string",
+ "format": "cid"
+ }
+ }
+ },
+ "description": "Get the service-specific admin status of a subject (account, record, or blob)."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/admin/searchAccounts.json b/lexicons/com/atproto/admin/searchAccounts.json
new file mode 100644
index 0000000000..57770a2f87
--- /dev/null
+++ b/lexicons/com/atproto/admin/searchAccounts.json
@@ -0,0 +1,49 @@
+{
+ "id": "com.atproto.admin.searchAccounts",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "accounts"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "accounts": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.admin.defs#accountView",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "email": {
+ "type": "string"
+ },
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Get list of accounts that matches your search query."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/admin/sendEmail.json b/lexicons/com/atproto/admin/sendEmail.json
new file mode 100644
index 0000000000..d619342572
--- /dev/null
+++ b/lexicons/com/atproto/admin/sendEmail.json
@@ -0,0 +1,56 @@
+{
+ "id": "com.atproto.admin.sendEmail",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "recipientDid",
+ "content",
+ "senderDid"
+ ],
+ "properties": {
+ "comment": {
+ "type": "string",
+ "description": "Additional comment by the sender that won't be used in the email itself but helpful to provide more context for moderators/reviewers"
+ },
+ "content": {
+ "type": "string"
+ },
+ "subject": {
+ "type": "string"
+ },
+ "senderDid": {
+ "type": "string",
+ "format": "did"
+ },
+ "recipientDid": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "sent"
+ ],
+ "properties": {
+ "sent": {
+ "type": "boolean"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Send email to a user's account email address."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/admin/updateAccountEmail.json b/lexicons/com/atproto/admin/updateAccountEmail.json
new file mode 100644
index 0000000000..e42c2320fb
--- /dev/null
+++ b/lexicons/com/atproto/admin/updateAccountEmail.json
@@ -0,0 +1,31 @@
+{
+ "id": "com.atproto.admin.updateAccountEmail",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "account",
+ "email"
+ ],
+ "properties": {
+ "email": {
+ "type": "string"
+ },
+ "account": {
+ "type": "string",
+ "format": "at-identifier",
+ "description": "The handle or DID of the repo."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Administrative action to update an account's email."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/admin/updateAccountHandle.json b/lexicons/com/atproto/admin/updateAccountHandle.json
new file mode 100644
index 0000000000..aa1cc6d593
--- /dev/null
+++ b/lexicons/com/atproto/admin/updateAccountHandle.json
@@ -0,0 +1,31 @@
+{
+ "id": "com.atproto.admin.updateAccountHandle",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "did",
+ "handle"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "handle": {
+ "type": "string",
+ "format": "handle"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Administrative action to update an account's handle."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/admin/updateAccountPassword.json b/lexicons/com/atproto/admin/updateAccountPassword.json
new file mode 100644
index 0000000000..c87cf4e198
--- /dev/null
+++ b/lexicons/com/atproto/admin/updateAccountPassword.json
@@ -0,0 +1,30 @@
+{
+ "id": "com.atproto.admin.updateAccountPassword",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "did",
+ "password"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "password": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Update the password for a user account as an administrator."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/admin/updateAccountSigningKey.json b/lexicons/com/atproto/admin/updateAccountSigningKey.json
new file mode 100644
index 0000000000..47f3584b8a
--- /dev/null
+++ b/lexicons/com/atproto/admin/updateAccountSigningKey.json
@@ -0,0 +1,32 @@
+{
+ "id": "com.atproto.admin.updateAccountSigningKey",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "did",
+ "signingKey"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "signingKey": {
+ "type": "string",
+ "format": "did",
+ "description": "Did-key formatted public key"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Administrative action to update an account's signing key in their Did document."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/admin/updateSubjectStatus.json b/lexicons/com/atproto/admin/updateSubjectStatus.json
new file mode 100644
index 0000000000..35ba17b451
--- /dev/null
+++ b/lexicons/com/atproto/admin/updateSubjectStatus.json
@@ -0,0 +1,61 @@
+{
+ "id": "com.atproto.admin.updateSubjectStatus",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "subject"
+ ],
+ "properties": {
+ "subject": {
+ "refs": [
+ "com.atproto.admin.defs#repoRef",
+ "com.atproto.repo.strongRef",
+ "com.atproto.admin.defs#repoBlobRef"
+ ],
+ "type": "union"
+ },
+ "takedown": {
+ "ref": "com.atproto.admin.defs#statusAttr",
+ "type": "ref"
+ },
+ "deactivated": {
+ "ref": "com.atproto.admin.defs#statusAttr",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "subject"
+ ],
+ "properties": {
+ "subject": {
+ "refs": [
+ "com.atproto.admin.defs#repoRef",
+ "com.atproto.repo.strongRef",
+ "com.atproto.admin.defs#repoBlobRef"
+ ],
+ "type": "union"
+ },
+ "takedown": {
+ "ref": "com.atproto.admin.defs#statusAttr",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Update the service-specific admin status of a subject (account, record, or blob)."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/identity/defs.json b/lexicons/com/atproto/identity/defs.json
new file mode 100644
index 0000000000..3ee467f515
--- /dev/null
+++ b/lexicons/com/atproto/identity/defs.json
@@ -0,0 +1,30 @@
+{
+ "id": "com.atproto.identity.defs",
+ "defs": {
+ "identityInfo": {
+ "type": "object",
+ "required": [
+ "did",
+ "handle",
+ "didDoc"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "didDoc": {
+ "type": "unknown",
+ "description": "The complete DID document for the identity."
+ },
+ "handle": {
+ "type": "string",
+ "format": "handle",
+ "description": "The validated handle of the account; or 'handle.invalid' if the handle did not bi-directionally match the DID document."
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/identity/getRecommendedDidCredentials.json b/lexicons/com/atproto/identity/getRecommendedDidCredentials.json
new file mode 100644
index 0000000000..057c62e481
--- /dev/null
+++ b/lexicons/com/atproto/identity/getRecommendedDidCredentials.json
@@ -0,0 +1,38 @@
+{
+ "id": "com.atproto.identity.getRecommendedDidCredentials",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "services": {
+ "type": "unknown"
+ },
+ "alsoKnownAs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "rotationKeys": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Recommended rotation keys for PLC dids. Should be undefined (or ignored) for did:webs."
+ },
+ "verificationMethods": {
+ "type": "unknown"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Describe the credentials that should be included in the DID doc of an account that is migrating to this service."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/identity/refreshIdentity.json b/lexicons/com/atproto/identity/refreshIdentity.json
new file mode 100644
index 0000000000..5dd7fe46b6
--- /dev/null
+++ b/lexicons/com/atproto/identity/refreshIdentity.json
@@ -0,0 +1,47 @@
+{
+ "id": "com.atproto.identity.refreshIdentity",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "identifier"
+ ],
+ "properties": {
+ "identifier": {
+ "type": "string",
+ "format": "at-identifier"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "HandleNotFound",
+ "description": "The resolution process confirmed that the handle does not resolve to any DID."
+ },
+ {
+ "name": "DidNotFound",
+ "description": "The DID resolution process confirmed that there is no current DID."
+ },
+ {
+ "name": "DidDeactivated",
+ "description": "The DID previously existed, but has been deactivated."
+ }
+ ],
+ "output": {
+ "schema": {
+ "ref": "com.atproto.identity.defs#identityInfo",
+ "type": "ref"
+ },
+ "encoding": "application/json"
+ },
+ "description": "Request that the server re-resolve an identity (DID and handle). The server may ignore this request, or require authentication, depending on the role, implementation, and policy of the server."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/identity/requestPlcOperationSignature.json b/lexicons/com/atproto/identity/requestPlcOperationSignature.json
new file mode 100644
index 0000000000..0d79ffc7aa
--- /dev/null
+++ b/lexicons/com/atproto/identity/requestPlcOperationSignature.json
@@ -0,0 +1,11 @@
+{
+ "id": "com.atproto.identity.requestPlcOperationSignature",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "description": "Request an email with a code to in order to request a signed PLC operation. Requires Auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/identity/resolveDid.json b/lexicons/com/atproto/identity/resolveDid.json
new file mode 100644
index 0000000000..e6e8c88d90
--- /dev/null
+++ b/lexicons/com/atproto/identity/resolveDid.json
@@ -0,0 +1,49 @@
+{
+ "id": "com.atproto.identity.resolveDid",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "DidNotFound",
+ "description": "The DID resolution process confirmed that there is no current DID."
+ },
+ {
+ "name": "DidDeactivated",
+ "description": "The DID previously existed, but has been deactivated."
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "didDoc"
+ ],
+ "properties": {
+ "didDoc": {
+ "type": "unknown",
+ "description": "The complete DID document for the identity."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did",
+ "description": "DID to resolve."
+ }
+ }
+ },
+ "description": "Resolves DID to DID document. Does not bi-directionally verify handle."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/identity/resolveHandle.json b/lexicons/com/atproto/identity/resolveHandle.json
new file mode 100644
index 0000000000..855e1b9827
--- /dev/null
+++ b/lexicons/com/atproto/identity/resolveHandle.json
@@ -0,0 +1,45 @@
+{
+ "id": "com.atproto.identity.resolveHandle",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "HandleNotFound",
+ "description": "The resolution process confirmed that the handle does not resolve to any DID."
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "handle"
+ ],
+ "properties": {
+ "handle": {
+ "type": "string",
+ "format": "handle",
+ "description": "The handle to resolve."
+ }
+ }
+ },
+ "description": "Resolves an atproto handle (hostname) to a DID. Does not necessarily bi-directionally verify against the the DID document."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/identity/resolveIdentity.json b/lexicons/com/atproto/identity/resolveIdentity.json
new file mode 100644
index 0000000000..4da92470e3
--- /dev/null
+++ b/lexicons/com/atproto/identity/resolveIdentity.json
@@ -0,0 +1,45 @@
+{
+ "id": "com.atproto.identity.resolveIdentity",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "HandleNotFound",
+ "description": "The resolution process confirmed that the handle does not resolve to any DID."
+ },
+ {
+ "name": "DidNotFound",
+ "description": "The DID resolution process confirmed that there is no current DID."
+ },
+ {
+ "name": "DidDeactivated",
+ "description": "The DID previously existed, but has been deactivated."
+ }
+ ],
+ "output": {
+ "schema": {
+ "ref": "com.atproto.identity.defs#identityInfo",
+ "type": "ref"
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "identifier"
+ ],
+ "properties": {
+ "identifier": {
+ "type": "string",
+ "format": "at-identifier",
+ "description": "Handle or DID to resolve."
+ }
+ }
+ },
+ "description": "Resolves an identity (DID or Handle) to a full identity (DID document and verified handle)."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/identity/signPlcOperation.json b/lexicons/com/atproto/identity/signPlcOperation.json
new file mode 100644
index 0000000000..0922c60e43
--- /dev/null
+++ b/lexicons/com/atproto/identity/signPlcOperation.json
@@ -0,0 +1,56 @@
+{
+ "id": "com.atproto.identity.signPlcOperation",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "token": {
+ "type": "string",
+ "description": "A token received through com.atproto.identity.requestPlcOperationSignature"
+ },
+ "services": {
+ "type": "unknown"
+ },
+ "alsoKnownAs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "rotationKeys": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "verificationMethods": {
+ "type": "unknown"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "operation"
+ ],
+ "properties": {
+ "operation": {
+ "type": "unknown",
+ "description": "A signed DID PLC operation."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Signs a PLC operation to update some value(s) in the requesting DID's document."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/identity/submitPlcOperation.json b/lexicons/com/atproto/identity/submitPlcOperation.json
new file mode 100644
index 0000000000..ee0a6b2206
--- /dev/null
+++ b/lexicons/com/atproto/identity/submitPlcOperation.json
@@ -0,0 +1,25 @@
+{
+ "id": "com.atproto.identity.submitPlcOperation",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "operation"
+ ],
+ "properties": {
+ "operation": {
+ "type": "unknown"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Validates a PLC operation to ensure that it doesn't violate a service's constraints or get the identity into a bad state, then submits it to the PLC registry"
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/identity/updateHandle.json b/lexicons/com/atproto/identity/updateHandle.json
new file mode 100644
index 0000000000..5ad0daabf7
--- /dev/null
+++ b/lexicons/com/atproto/identity/updateHandle.json
@@ -0,0 +1,27 @@
+{
+ "id": "com.atproto.identity.updateHandle",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "handle"
+ ],
+ "properties": {
+ "handle": {
+ "type": "string",
+ "format": "handle",
+ "description": "The new handle."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Updates the current account's handle. Verifies handle validity, and updates did:plc document if necessary. Implemented by PDS, and requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/label/defs.json b/lexicons/com/atproto/label/defs.json
new file mode 100644
index 0000000000..4c2a357295
--- /dev/null
+++ b/lexicons/com/atproto/label/defs.json
@@ -0,0 +1,190 @@
+{
+ "id": "com.atproto.label.defs",
+ "defs": {
+ "label": {
+ "type": "object",
+ "required": [
+ "src",
+ "uri",
+ "val",
+ "cts"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid",
+ "description": "Optionally, CID specifying the specific version of 'uri' resource this label applies to."
+ },
+ "cts": {
+ "type": "string",
+ "format": "datetime",
+ "description": "Timestamp when this label was created."
+ },
+ "exp": {
+ "type": "string",
+ "format": "datetime",
+ "description": "Timestamp at which this label expires (no longer applies)."
+ },
+ "neg": {
+ "type": "boolean",
+ "description": "If true, this is a negation label, overwriting a previous label."
+ },
+ "sig": {
+ "type": "bytes",
+ "description": "Signature of dag-cbor encoded label."
+ },
+ "src": {
+ "type": "string",
+ "format": "did",
+ "description": "DID of the actor who created this label."
+ },
+ "uri": {
+ "type": "string",
+ "format": "uri",
+ "description": "AT URI of the record, repository (account), or other resource that this label applies to."
+ },
+ "val": {
+ "type": "string",
+ "maxLength": 128,
+ "description": "The short string name of the value or type of this label."
+ },
+ "ver": {
+ "type": "integer",
+ "description": "The AT Protocol version of the label object."
+ }
+ },
+ "description": "Metadata tag on an atproto resource (eg, repo or record)."
+ },
+ "selfLabel": {
+ "type": "object",
+ "required": [
+ "val"
+ ],
+ "properties": {
+ "val": {
+ "type": "string",
+ "maxLength": 128,
+ "description": "The short string name of the value or type of this label."
+ }
+ },
+ "description": "Metadata tag on an atproto record, published by the author within the record. Note that schemas should use #selfLabels, not #selfLabel."
+ },
+ "labelValue": {
+ "type": "string",
+ "knownValues": [
+ "!hide",
+ "!warn",
+ "!no-unauthenticated",
+ "porn",
+ "sexual",
+ "nudity",
+ "graphic-media",
+ "bot"
+ ]
+ },
+ "selfLabels": {
+ "type": "object",
+ "required": [
+ "values"
+ ],
+ "properties": {
+ "values": {
+ "type": "array",
+ "items": {
+ "ref": "#selfLabel",
+ "type": "ref"
+ },
+ "maxLength": 10
+ }
+ },
+ "description": "Metadata tags on an atproto record, published by the author within the record."
+ },
+ "labelValueDefinition": {
+ "type": "object",
+ "required": [
+ "identifier",
+ "severity",
+ "blurs",
+ "locales"
+ ],
+ "properties": {
+ "blurs": {
+ "type": "string",
+ "description": "What should this label hide in the UI, if applied? 'content' hides all of the target; 'media' hides the images/video/audio; 'none' hides nothing.",
+ "knownValues": [
+ "content",
+ "media",
+ "none"
+ ]
+ },
+ "locales": {
+ "type": "array",
+ "items": {
+ "ref": "#labelValueDefinitionStrings",
+ "type": "ref"
+ }
+ },
+ "severity": {
+ "type": "string",
+ "description": "How should a client visually convey this label? 'inform' means neutral and informational; 'alert' means negative and warning; 'none' means show nothing.",
+ "knownValues": [
+ "inform",
+ "alert",
+ "none"
+ ]
+ },
+ "adultOnly": {
+ "type": "boolean",
+ "description": "Does the user need to have adult content enabled in order to configure this label?"
+ },
+ "identifier": {
+ "type": "string",
+ "maxLength": 100,
+ "description": "The value of the label being defined. Must only include lowercase ascii and the '-' character ([a-z-]+).",
+ "maxGraphemes": 100
+ },
+ "defaultSetting": {
+ "type": "string",
+ "default": "warn",
+ "description": "The default setting for this label.",
+ "knownValues": [
+ "ignore",
+ "warn",
+ "hide"
+ ]
+ }
+ },
+ "description": "Declares a label value and its expected interpretations and behaviors."
+ },
+ "labelValueDefinitionStrings": {
+ "type": "object",
+ "required": [
+ "lang",
+ "name",
+ "description"
+ ],
+ "properties": {
+ "lang": {
+ "type": "string",
+ "format": "language",
+ "description": "The code of the language these strings are written in."
+ },
+ "name": {
+ "type": "string",
+ "maxLength": 640,
+ "description": "A short human-readable name for the label.",
+ "maxGraphemes": 64
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 100000,
+ "description": "A longer description of what the label means and why it might be applied.",
+ "maxGraphemes": 10000
+ }
+ },
+ "description": "Strings which describe the label in the UI, localized into a specific language."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/label/queryLabels.json b/lexicons/com/atproto/label/queryLabels.json
new file mode 100644
index 0000000000..d147ecbcbc
--- /dev/null
+++ b/lexicons/com/atproto/label/queryLabels.json
@@ -0,0 +1,64 @@
+{
+ "id": "com.atproto.label.queryLabels",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "labels"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.label.defs#label",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "uriPatterns"
+ ],
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 250,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "did"
+ },
+ "description": "Optional list of label sources (DIDs) to filter on."
+ },
+ "uriPatterns": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of AT URI patterns to match (boolean 'OR'). Each may be a prefix (ending with '*'; will match inclusive of the string leading to '*'), or a full URI."
+ }
+ }
+ },
+ "description": "Find labels relevant to the provided AT-URI patterns. Public endpoint for moderation services, though may return different or additional results with auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/label/subscribeLabels.json b/lexicons/com/atproto/label/subscribeLabels.json
new file mode 100644
index 0000000000..984ed19220
--- /dev/null
+++ b/lexicons/com/atproto/label/subscribeLabels.json
@@ -0,0 +1,70 @@
+{
+ "id": "com.atproto.label.subscribeLabels",
+ "defs": {
+ "info": {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "knownValues": [
+ "OutdatedCursor"
+ ]
+ },
+ "message": {
+ "type": "string"
+ }
+ }
+ },
+ "main": {
+ "type": "subscription",
+ "errors": [
+ {
+ "name": "FutureCursor"
+ }
+ ],
+ "message": {
+ "schema": {
+ "refs": [
+ "#labels",
+ "#info"
+ ],
+ "type": "union"
+ }
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "cursor": {
+ "type": "integer",
+ "description": "The last known event seq number to backfill from."
+ }
+ }
+ },
+ "description": "Subscribe to stream of labels (and negations). Public endpoint implemented by mod services. Uses same sequencing scheme as repo event stream."
+ },
+ "labels": {
+ "type": "object",
+ "required": [
+ "seq",
+ "labels"
+ ],
+ "properties": {
+ "seq": {
+ "type": "integer"
+ },
+ "labels": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.label.defs#label",
+ "type": "ref"
+ }
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/lexicon/resolveLexicon.json b/lexicons/com/atproto/lexicon/resolveLexicon.json
new file mode 100644
index 0000000000..6807a4dcf8
--- /dev/null
+++ b/lexicons/com/atproto/lexicon/resolveLexicon.json
@@ -0,0 +1,58 @@
+{
+ "id": "com.atproto.lexicon.resolveLexicon",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "LexiconNotFound",
+ "description": "No lexicon was resolved for the NSID."
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "uri",
+ "cid",
+ "schema"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid",
+ "description": "The CID of the lexicon schema record."
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri",
+ "description": "The AT-URI of the lexicon schema record."
+ },
+ "schema": {
+ "ref": "com.atproto.lexicon.schema#main",
+ "type": "ref",
+ "description": "The resolved lexicon schema record."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "nsid"
+ ],
+ "properties": {
+ "nsid": {
+ "type": "string",
+ "format": "nsid",
+ "description": "The lexicon NSID to resolve."
+ }
+ }
+ },
+ "description": "Resolves an atproto lexicon (NSID) to a schema."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/lexicon/schema.json b/lexicons/com/atproto/lexicon/schema.json
new file mode 100644
index 0000000000..824b1086d8
--- /dev/null
+++ b/lexicons/com/atproto/lexicon/schema.json
@@ -0,0 +1,24 @@
+{
+ "id": "com.atproto.lexicon.schema",
+ "defs": {
+ "main": {
+ "key": "nsid",
+ "type": "record",
+ "record": {
+ "type": "object",
+ "required": [
+ "lexicon"
+ ],
+ "properties": {
+ "lexicon": {
+ "type": "integer",
+ "description": "Indicates the 'version' of the Lexicon language. Must be '1' for the current atproto/Lexicon schema system."
+ }
+ }
+ },
+ "description": "Representation of Lexicon schemas themselves, when published as atproto records. Note that the schema language is not defined in Lexicon; this meta schema currently only includes a single version field ('lexicon'). See the atproto specifications for description of the other expected top-level fields ('id', 'defs', etc)."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/moderation/createReport.json b/lexicons/com/atproto/moderation/createReport.json
new file mode 100644
index 0000000000..ee6f58525f
--- /dev/null
+++ b/lexicons/com/atproto/moderation/createReport.json
@@ -0,0 +1,104 @@
+{
+ "id": "com.atproto.moderation.createReport",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "reasonType",
+ "subject"
+ ],
+ "properties": {
+ "reason": {
+ "type": "string",
+ "maxLength": 20000,
+ "description": "Additional context about the content and violation.",
+ "maxGraphemes": 2000
+ },
+ "modTool": {
+ "ref": "#modTool",
+ "type": "ref"
+ },
+ "subject": {
+ "refs": [
+ "com.atproto.admin.defs#repoRef",
+ "com.atproto.repo.strongRef"
+ ],
+ "type": "union"
+ },
+ "reasonType": {
+ "ref": "com.atproto.moderation.defs#reasonType",
+ "type": "ref",
+ "description": "Indicates the broad category of violation the report is for."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "id",
+ "reasonType",
+ "subject",
+ "reportedBy",
+ "createdAt"
+ ],
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "reason": {
+ "type": "string",
+ "maxLength": 20000,
+ "maxGraphemes": 2000
+ },
+ "subject": {
+ "refs": [
+ "com.atproto.admin.defs#repoRef",
+ "com.atproto.repo.strongRef"
+ ],
+ "type": "union"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "reasonType": {
+ "ref": "com.atproto.moderation.defs#reasonType",
+ "type": "ref"
+ },
+ "reportedBy": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Submit a moderation report regarding an atproto account or record. Implemented by moderation services (with PDS proxying), and requires auth."
+ },
+ "modTool": {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "meta": {
+ "type": "unknown",
+ "description": "Additional arbitrary metadata about the source"
+ },
+ "name": {
+ "type": "string",
+ "description": "Name/identifier of the source (e.g., 'bsky-app/android', 'bsky-web/chrome')"
+ }
+ },
+ "description": "Moderation tool information for tracing the source of the action"
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/moderation/defs.json b/lexicons/com/atproto/moderation/defs.json
new file mode 100644
index 0000000000..57fff90b21
--- /dev/null
+++ b/lexicons/com/atproto/moderation/defs.json
@@ -0,0 +1,96 @@
+{
+ "id": "com.atproto.moderation.defs",
+ "defs": {
+ "reasonRude": {
+ "type": "token",
+ "description": "Rude, harassing, explicit, or otherwise unwelcoming behavior. Prefer new lexicon definition `tools.ozone.report.defs#reasonHarassmentOther`."
+ },
+ "reasonSpam": {
+ "type": "token",
+ "description": "Spam: frequent unwanted promotion, replies, mentions. Prefer new lexicon definition `tools.ozone.report.defs#reasonMisleadingSpam`."
+ },
+ "reasonType": {
+ "type": "string",
+ "knownValues": [
+ "com.atproto.moderation.defs#reasonSpam",
+ "com.atproto.moderation.defs#reasonViolation",
+ "com.atproto.moderation.defs#reasonMisleading",
+ "com.atproto.moderation.defs#reasonSexual",
+ "com.atproto.moderation.defs#reasonRude",
+ "com.atproto.moderation.defs#reasonOther",
+ "com.atproto.moderation.defs#reasonAppeal",
+ "tools.ozone.report.defs#reasonAppeal",
+ "tools.ozone.report.defs#reasonOther",
+ "tools.ozone.report.defs#reasonViolenceAnimal",
+ "tools.ozone.report.defs#reasonViolenceThreats",
+ "tools.ozone.report.defs#reasonViolenceGraphicContent",
+ "tools.ozone.report.defs#reasonViolenceGlorification",
+ "tools.ozone.report.defs#reasonViolenceExtremistContent",
+ "tools.ozone.report.defs#reasonViolenceTrafficking",
+ "tools.ozone.report.defs#reasonViolenceOther",
+ "tools.ozone.report.defs#reasonSexualAbuseContent",
+ "tools.ozone.report.defs#reasonSexualNCII",
+ "tools.ozone.report.defs#reasonSexualDeepfake",
+ "tools.ozone.report.defs#reasonSexualAnimal",
+ "tools.ozone.report.defs#reasonSexualUnlabeled",
+ "tools.ozone.report.defs#reasonSexualOther",
+ "tools.ozone.report.defs#reasonChildSafetyCSAM",
+ "tools.ozone.report.defs#reasonChildSafetyGroom",
+ "tools.ozone.report.defs#reasonChildSafetyPrivacy",
+ "tools.ozone.report.defs#reasonChildSafetyHarassment",
+ "tools.ozone.report.defs#reasonChildSafetyOther",
+ "tools.ozone.report.defs#reasonHarassmentTroll",
+ "tools.ozone.report.defs#reasonHarassmentTargeted",
+ "tools.ozone.report.defs#reasonHarassmentHateSpeech",
+ "tools.ozone.report.defs#reasonHarassmentDoxxing",
+ "tools.ozone.report.defs#reasonHarassmentOther",
+ "tools.ozone.report.defs#reasonMisleadingBot",
+ "tools.ozone.report.defs#reasonMisleadingImpersonation",
+ "tools.ozone.report.defs#reasonMisleadingSpam",
+ "tools.ozone.report.defs#reasonMisleadingScam",
+ "tools.ozone.report.defs#reasonMisleadingElections",
+ "tools.ozone.report.defs#reasonMisleadingOther",
+ "tools.ozone.report.defs#reasonRuleSiteSecurity",
+ "tools.ozone.report.defs#reasonRuleProhibitedSales",
+ "tools.ozone.report.defs#reasonRuleBanEvasion",
+ "tools.ozone.report.defs#reasonRuleOther",
+ "tools.ozone.report.defs#reasonSelfHarmContent",
+ "tools.ozone.report.defs#reasonSelfHarmED",
+ "tools.ozone.report.defs#reasonSelfHarmStunts",
+ "tools.ozone.report.defs#reasonSelfHarmSubstances",
+ "tools.ozone.report.defs#reasonSelfHarmOther"
+ ]
+ },
+ "reasonOther": {
+ "type": "token",
+ "description": "Reports not falling under another report category. Prefer new lexicon definition `tools.ozone.report.defs#reasonOther`."
+ },
+ "subjectType": {
+ "type": "string",
+ "description": "Tag describing a type of subject that might be reported.",
+ "knownValues": [
+ "account",
+ "record",
+ "chat"
+ ]
+ },
+ "reasonAppeal": {
+ "type": "token",
+ "description": "Appeal a previously taken moderation action"
+ },
+ "reasonSexual": {
+ "type": "token",
+ "description": "Unwanted or mislabeled sexual content. Prefer new lexicon definition `tools.ozone.report.defs#reasonSexualUnlabeled`."
+ },
+ "reasonViolation": {
+ "type": "token",
+ "description": "Direct violation of server rules, laws, terms of service. Prefer new lexicon definition `tools.ozone.report.defs#reasonRuleOther`."
+ },
+ "reasonMisleading": {
+ "type": "token",
+ "description": "Misleading identity, affiliation, or content. Prefer new lexicon definition `tools.ozone.report.defs#reasonMisleadingOther`."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/repo/applyWrites.json b/lexicons/com/atproto/repo/applyWrites.json
new file mode 100644
index 0000000000..f82bf2ba88
--- /dev/null
+++ b/lexicons/com/atproto/repo/applyWrites.json
@@ -0,0 +1,196 @@
+{
+ "id": "com.atproto.repo.applyWrites",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "repo",
+ "writes"
+ ],
+ "properties": {
+ "repo": {
+ "type": "string",
+ "format": "at-identifier",
+ "description": "The handle or DID of the repo (aka, current account)."
+ },
+ "writes": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "#create",
+ "#update",
+ "#delete"
+ ],
+ "type": "union",
+ "closed": true
+ }
+ },
+ "validate": {
+ "type": "boolean",
+ "description": "Can be set to 'false' to skip Lexicon schema validation of record data across all operations, 'true' to require it, or leave unset to validate only for known Lexicons."
+ },
+ "swapCommit": {
+ "type": "string",
+ "format": "cid",
+ "description": "If provided, the entire operation will fail if the current repo commit CID does not match this value. Used to prevent conflicting repo mutations."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidSwap",
+ "description": "Indicates that the 'swapCommit' parameter did not match current commit."
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "commit": {
+ "ref": "com.atproto.repo.defs#commitMeta",
+ "type": "ref"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "refs": [
+ "#createResult",
+ "#updateResult",
+ "#deleteResult"
+ ],
+ "type": "union",
+ "closed": true
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Apply a batch transaction of repository creates, updates, and deletes. Requires auth, implemented by PDS."
+ },
+ "create": {
+ "type": "object",
+ "required": [
+ "collection",
+ "value"
+ ],
+ "properties": {
+ "rkey": {
+ "type": "string",
+ "format": "record-key",
+ "maxLength": 512,
+ "description": "NOTE: maxLength is redundant with record-key format. Keeping it temporarily to ensure backwards compatibility."
+ },
+ "value": {
+ "type": "unknown"
+ },
+ "collection": {
+ "type": "string",
+ "format": "nsid"
+ }
+ },
+ "description": "Operation which creates a new record."
+ },
+ "delete": {
+ "type": "object",
+ "required": [
+ "collection",
+ "rkey"
+ ],
+ "properties": {
+ "rkey": {
+ "type": "string",
+ "format": "record-key"
+ },
+ "collection": {
+ "type": "string",
+ "format": "nsid"
+ }
+ },
+ "description": "Operation which deletes an existing record."
+ },
+ "update": {
+ "type": "object",
+ "required": [
+ "collection",
+ "rkey",
+ "value"
+ ],
+ "properties": {
+ "rkey": {
+ "type": "string",
+ "format": "record-key"
+ },
+ "value": {
+ "type": "unknown"
+ },
+ "collection": {
+ "type": "string",
+ "format": "nsid"
+ }
+ },
+ "description": "Operation which updates an existing record."
+ },
+ "createResult": {
+ "type": "object",
+ "required": [
+ "uri",
+ "cid"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "validationStatus": {
+ "type": "string",
+ "knownValues": [
+ "valid",
+ "unknown"
+ ]
+ }
+ }
+ },
+ "deleteResult": {
+ "type": "object",
+ "required": [],
+ "properties": {}
+ },
+ "updateResult": {
+ "type": "object",
+ "required": [
+ "uri",
+ "cid"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "validationStatus": {
+ "type": "string",
+ "knownValues": [
+ "valid",
+ "unknown"
+ ]
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/repo/createRecord.json b/lexicons/com/atproto/repo/createRecord.json
new file mode 100644
index 0000000000..2483457b9e
--- /dev/null
+++ b/lexicons/com/atproto/repo/createRecord.json
@@ -0,0 +1,90 @@
+{
+ "id": "com.atproto.repo.createRecord",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "repo",
+ "collection",
+ "record"
+ ],
+ "properties": {
+ "repo": {
+ "type": "string",
+ "format": "at-identifier",
+ "description": "The handle or DID of the repo (aka, current account)."
+ },
+ "rkey": {
+ "type": "string",
+ "format": "record-key",
+ "maxLength": 512,
+ "description": "The Record Key."
+ },
+ "record": {
+ "type": "unknown",
+ "description": "The record itself. Must contain a $type field."
+ },
+ "validate": {
+ "type": "boolean",
+ "description": "Can be set to 'false' to skip Lexicon schema validation of record data, 'true' to require it, or leave unset to validate only for known Lexicons."
+ },
+ "collection": {
+ "type": "string",
+ "format": "nsid",
+ "description": "The NSID of the record collection."
+ },
+ "swapCommit": {
+ "type": "string",
+ "format": "cid",
+ "description": "Compare and swap with the previous commit by CID."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidSwap",
+ "description": "Indicates that 'swapCommit' didn't match current repo commit."
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "uri",
+ "cid"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "commit": {
+ "ref": "com.atproto.repo.defs#commitMeta",
+ "type": "ref"
+ },
+ "validationStatus": {
+ "type": "string",
+ "knownValues": [
+ "valid",
+ "unknown"
+ ]
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Create a single new repository record. Requires auth, implemented by PDS."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/repo/defs.json b/lexicons/com/atproto/repo/defs.json
new file mode 100644
index 0000000000..f0d13f7d45
--- /dev/null
+++ b/lexicons/com/atproto/repo/defs.json
@@ -0,0 +1,24 @@
+{
+ "id": "com.atproto.repo.defs",
+ "defs": {
+ "commitMeta": {
+ "type": "object",
+ "required": [
+ "cid",
+ "rev"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "rev": {
+ "type": "string",
+ "format": "tid"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/repo/deleteRecord.json b/lexicons/com/atproto/repo/deleteRecord.json
new file mode 100644
index 0000000000..21a25165de
--- /dev/null
+++ b/lexicons/com/atproto/repo/deleteRecord.json
@@ -0,0 +1,66 @@
+{
+ "id": "com.atproto.repo.deleteRecord",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "repo",
+ "collection",
+ "rkey"
+ ],
+ "properties": {
+ "repo": {
+ "type": "string",
+ "format": "at-identifier",
+ "description": "The handle or DID of the repo (aka, current account)."
+ },
+ "rkey": {
+ "type": "string",
+ "format": "record-key",
+ "description": "The Record Key."
+ },
+ "collection": {
+ "type": "string",
+ "format": "nsid",
+ "description": "The NSID of the record collection."
+ },
+ "swapCommit": {
+ "type": "string",
+ "format": "cid",
+ "description": "Compare and swap with the previous commit by CID."
+ },
+ "swapRecord": {
+ "type": "string",
+ "format": "cid",
+ "description": "Compare and swap with the previous record by CID."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidSwap"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "commit": {
+ "ref": "com.atproto.repo.defs#commitMeta",
+ "type": "ref"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Delete a repository record, or ensure it doesn't exist. Requires auth, implemented by PDS."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/repo/describeRepo.json b/lexicons/com/atproto/repo/describeRepo.json
new file mode 100644
index 0000000000..05e9cb42cd
--- /dev/null
+++ b/lexicons/com/atproto/repo/describeRepo.json
@@ -0,0 +1,63 @@
+{
+ "id": "com.atproto.repo.describeRepo",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "handle",
+ "did",
+ "didDoc",
+ "collections",
+ "handleIsCorrect"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "didDoc": {
+ "type": "unknown",
+ "description": "The complete DID document for this account."
+ },
+ "handle": {
+ "type": "string",
+ "format": "handle"
+ },
+ "collections": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "nsid"
+ },
+ "description": "List of all the collections (NSIDs) for which this repo contains at least one record."
+ },
+ "handleIsCorrect": {
+ "type": "boolean",
+ "description": "Indicates if handle is currently valid (resolves bi-directionally)"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "repo"
+ ],
+ "properties": {
+ "repo": {
+ "type": "string",
+ "format": "at-identifier",
+ "description": "The handle or DID of the repo."
+ }
+ }
+ },
+ "description": "Get information about an account and repository, including the list of collections. Does not require auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/repo/getRecord.json b/lexicons/com/atproto/repo/getRecord.json
new file mode 100644
index 0000000000..ffbaf8ee74
--- /dev/null
+++ b/lexicons/com/atproto/repo/getRecord.json
@@ -0,0 +1,69 @@
+{
+ "id": "com.atproto.repo.getRecord",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "RecordNotFound"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "uri",
+ "value"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "value": {
+ "type": "unknown"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "repo",
+ "collection",
+ "rkey"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid",
+ "description": "The CID of the version of the record. If not specified, then return the most recent version."
+ },
+ "repo": {
+ "type": "string",
+ "format": "at-identifier",
+ "description": "The handle or DID of the repo."
+ },
+ "rkey": {
+ "type": "string",
+ "format": "record-key",
+ "description": "The Record Key."
+ },
+ "collection": {
+ "type": "string",
+ "format": "nsid",
+ "description": "The NSID of the record collection."
+ }
+ }
+ },
+ "description": "Get a single record from a repository. Does not require auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/repo/importRepo.json b/lexicons/com/atproto/repo/importRepo.json
new file mode 100644
index 0000000000..897e329160
--- /dev/null
+++ b/lexicons/com/atproto/repo/importRepo.json
@@ -0,0 +1,14 @@
+{
+ "id": "com.atproto.repo.importRepo",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "encoding": "application/vnd.ipld.car"
+ },
+ "description": "Import a repo in the form of a CAR file. Requires Content-Length HTTP header to be set."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/repo/listMissingBlobs.json b/lexicons/com/atproto/repo/listMissingBlobs.json
new file mode 100644
index 0000000000..41c831af66
--- /dev/null
+++ b/lexicons/com/atproto/repo/listMissingBlobs.json
@@ -0,0 +1,63 @@
+{
+ "id": "com.atproto.repo.listMissingBlobs",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "blobs"
+ ],
+ "properties": {
+ "blobs": {
+ "type": "array",
+ "items": {
+ "ref": "#recordBlob",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 500,
+ "maximum": 1000,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Returns a list of missing blobs for the requesting account. Intended to be used in the account migration flow."
+ },
+ "recordBlob": {
+ "type": "object",
+ "required": [
+ "cid",
+ "recordUri"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "recordUri": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/repo/listRecords.json b/lexicons/com/atproto/repo/listRecords.json
new file mode 100644
index 0000000000..c34f519ed8
--- /dev/null
+++ b/lexicons/com/atproto/repo/listRecords.json
@@ -0,0 +1,86 @@
+{
+ "id": "com.atproto.repo.listRecords",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "records"
+ ],
+ "properties": {
+ "cursor": {
+ "type": "string"
+ },
+ "records": {
+ "type": "array",
+ "items": {
+ "ref": "#record",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "repo",
+ "collection"
+ ],
+ "properties": {
+ "repo": {
+ "type": "string",
+ "format": "at-identifier",
+ "description": "The handle or DID of the repo."
+ },
+ "limit": {
+ "type": "integer",
+ "default": 50,
+ "maximum": 100,
+ "minimum": 1,
+ "description": "The number of records to return."
+ },
+ "cursor": {
+ "type": "string"
+ },
+ "reverse": {
+ "type": "boolean",
+ "description": "Flag to reverse the order of the returned records."
+ },
+ "collection": {
+ "type": "string",
+ "format": "nsid",
+ "description": "The NSID of the record type."
+ }
+ }
+ },
+ "description": "List a range of records in a repository, matching a specific collection. Does not require auth."
+ },
+ "record": {
+ "type": "object",
+ "required": [
+ "uri",
+ "cid",
+ "value"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "value": {
+ "type": "unknown"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/repo/putRecord.json b/lexicons/com/atproto/repo/putRecord.json
new file mode 100644
index 0000000000..6584a2048a
--- /dev/null
+++ b/lexicons/com/atproto/repo/putRecord.json
@@ -0,0 +1,98 @@
+{
+ "id": "com.atproto.repo.putRecord",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "nullable": [
+ "swapRecord"
+ ],
+ "required": [
+ "repo",
+ "collection",
+ "rkey",
+ "record"
+ ],
+ "properties": {
+ "repo": {
+ "type": "string",
+ "format": "at-identifier",
+ "description": "The handle or DID of the repo (aka, current account)."
+ },
+ "rkey": {
+ "type": "string",
+ "format": "record-key",
+ "maxLength": 512,
+ "description": "The Record Key."
+ },
+ "record": {
+ "type": "unknown",
+ "description": "The record to write."
+ },
+ "validate": {
+ "type": "boolean",
+ "description": "Can be set to 'false' to skip Lexicon schema validation of record data, 'true' to require it, or leave unset to validate only for known Lexicons."
+ },
+ "collection": {
+ "type": "string",
+ "format": "nsid",
+ "description": "The NSID of the record collection."
+ },
+ "swapCommit": {
+ "type": "string",
+ "format": "cid",
+ "description": "Compare and swap with the previous commit by CID."
+ },
+ "swapRecord": {
+ "type": "string",
+ "format": "cid",
+ "description": "Compare and swap with the previous record by CID. WARNING: nullable and optional field; may cause problems with golang implementation"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidSwap"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "uri",
+ "cid"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ },
+ "commit": {
+ "ref": "com.atproto.repo.defs#commitMeta",
+ "type": "ref"
+ },
+ "validationStatus": {
+ "type": "string",
+ "knownValues": [
+ "valid",
+ "unknown"
+ ]
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Write a repository record, creating or updating it as needed. Requires auth, implemented by PDS."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/repo/strongRef.json b/lexicons/com/atproto/repo/strongRef.json
new file mode 100644
index 0000000000..f45cca3908
--- /dev/null
+++ b/lexicons/com/atproto/repo/strongRef.json
@@ -0,0 +1,25 @@
+{
+ "id": "com.atproto.repo.strongRef",
+ "defs": {
+ "main": {
+ "type": "object",
+ "required": [
+ "uri",
+ "cid"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "uri": {
+ "type": "string",
+ "format": "at-uri"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1,
+ "description": "A URI with a content-hash fingerprint."
+}
diff --git a/lexicons/com/atproto/repo/uploadBlob.json b/lexicons/com/atproto/repo/uploadBlob.json
new file mode 100644
index 0000000000..9b1bdd4a93
--- /dev/null
+++ b/lexicons/com/atproto/repo/uploadBlob.json
@@ -0,0 +1,28 @@
+{
+ "id": "com.atproto.repo.uploadBlob",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "encoding": "*/*"
+ },
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "blob"
+ ],
+ "properties": {
+ "blob": {
+ "type": "blob"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Upload a new blob, to be referenced from a repository record. The blob will be deleted if it is not referenced within a time window (eg, minutes). Blob restrictions (mimetype, size, etc) are enforced when the reference is created. Requires auth, implemented by PDS."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/activateAccount.json b/lexicons/com/atproto/server/activateAccount.json
new file mode 100644
index 0000000000..459607c827
--- /dev/null
+++ b/lexicons/com/atproto/server/activateAccount.json
@@ -0,0 +1,11 @@
+{
+ "id": "com.atproto.server.activateAccount",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "description": "Activates a currently deactivated account. Used to finalize account migration after the account's repo is imported and identity is setup."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/checkAccountStatus.json b/lexicons/com/atproto/server/checkAccountStatus.json
new file mode 100644
index 0000000000..289ca52c2e
--- /dev/null
+++ b/lexicons/com/atproto/server/checkAccountStatus.json
@@ -0,0 +1,58 @@
+{
+ "id": "com.atproto.server.checkAccountStatus",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "activated",
+ "validDid",
+ "repoCommit",
+ "repoRev",
+ "repoBlocks",
+ "indexedRecords",
+ "privateStateValues",
+ "expectedBlobs",
+ "importedBlobs"
+ ],
+ "properties": {
+ "repoRev": {
+ "type": "string"
+ },
+ "validDid": {
+ "type": "boolean"
+ },
+ "activated": {
+ "type": "boolean"
+ },
+ "repoBlocks": {
+ "type": "integer"
+ },
+ "repoCommit": {
+ "type": "string",
+ "format": "cid"
+ },
+ "expectedBlobs": {
+ "type": "integer"
+ },
+ "importedBlobs": {
+ "type": "integer"
+ },
+ "indexedRecords": {
+ "type": "integer"
+ },
+ "privateStateValues": {
+ "type": "integer"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Returns the status of an account, especially as pertaining to import or recovery. Can be called many times over the course of an account migration. Requires auth and can only be called pertaining to oneself."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/confirmEmail.json b/lexicons/com/atproto/server/confirmEmail.json
new file mode 100644
index 0000000000..4412676285
--- /dev/null
+++ b/lexicons/com/atproto/server/confirmEmail.json
@@ -0,0 +1,43 @@
+{
+ "id": "com.atproto.server.confirmEmail",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "email",
+ "token"
+ ],
+ "properties": {
+ "email": {
+ "type": "string"
+ },
+ "token": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "AccountNotFound"
+ },
+ {
+ "name": "ExpiredToken"
+ },
+ {
+ "name": "InvalidToken"
+ },
+ {
+ "name": "InvalidEmail"
+ }
+ ],
+ "description": "Confirm an email using a token from com.atproto.server.requestEmailConfirmation."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/createAccount.json b/lexicons/com/atproto/server/createAccount.json
new file mode 100644
index 0000000000..5b14ca30ce
--- /dev/null
+++ b/lexicons/com/atproto/server/createAccount.json
@@ -0,0 +1,113 @@
+{
+ "id": "com.atproto.server.createAccount",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "handle"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did",
+ "description": "Pre-existing atproto DID, being imported to a new account."
+ },
+ "email": {
+ "type": "string"
+ },
+ "plcOp": {
+ "type": "unknown",
+ "description": "A signed DID PLC operation to be submitted as part of importing an existing account to this instance. NOTE: this optional field may be updated when full account migration is implemented."
+ },
+ "handle": {
+ "type": "string",
+ "format": "handle",
+ "description": "Requested handle for the account."
+ },
+ "password": {
+ "type": "string",
+ "description": "Initial account password. May need to meet instance-specific password strength requirements."
+ },
+ "inviteCode": {
+ "type": "string"
+ },
+ "recoveryKey": {
+ "type": "string",
+ "description": "DID PLC rotation key (aka, recovery key) to be included in PLC creation operation."
+ },
+ "verificationCode": {
+ "type": "string"
+ },
+ "verificationPhone": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "InvalidHandle"
+ },
+ {
+ "name": "InvalidPassword"
+ },
+ {
+ "name": "InvalidInviteCode"
+ },
+ {
+ "name": "HandleNotAvailable"
+ },
+ {
+ "name": "UnsupportedDomain"
+ },
+ {
+ "name": "UnresolvableDid"
+ },
+ {
+ "name": "IncompatibleDidDoc"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "accessJwt",
+ "refreshJwt",
+ "handle",
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the new account."
+ },
+ "didDoc": {
+ "type": "unknown",
+ "description": "Complete DID document."
+ },
+ "handle": {
+ "type": "string",
+ "format": "handle"
+ },
+ "accessJwt": {
+ "type": "string"
+ },
+ "refreshJwt": {
+ "type": "string"
+ }
+ },
+ "description": "Account login session returned on successful account creation."
+ },
+ "encoding": "application/json"
+ },
+ "description": "Create an account. Implemented by PDS."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/createAppPassword.json b/lexicons/com/atproto/server/createAppPassword.json
new file mode 100644
index 0000000000..72e24ba7b2
--- /dev/null
+++ b/lexicons/com/atproto/server/createAppPassword.json
@@ -0,0 +1,65 @@
+{
+ "id": "com.atproto.server.createAppPassword",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "A short name for the App Password, to help distinguish them."
+ },
+ "privileged": {
+ "type": "boolean",
+ "description": "If an app password has 'privileged' access to possibly sensitive account state. Meant for use with trusted clients."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "AccountTakedown"
+ }
+ ],
+ "output": {
+ "schema": {
+ "ref": "#appPassword",
+ "type": "ref"
+ },
+ "encoding": "application/json"
+ },
+ "description": "Create an App Password."
+ },
+ "appPassword": {
+ "type": "object",
+ "required": [
+ "name",
+ "password",
+ "createdAt"
+ ],
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "password": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "privileged": {
+ "type": "boolean"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/createInviteCode.json b/lexicons/com/atproto/server/createInviteCode.json
new file mode 100644
index 0000000000..d355ddfec3
--- /dev/null
+++ b/lexicons/com/atproto/server/createInviteCode.json
@@ -0,0 +1,43 @@
+{
+ "id": "com.atproto.server.createInviteCode",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "useCount"
+ ],
+ "properties": {
+ "useCount": {
+ "type": "integer"
+ },
+ "forAccount": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "code"
+ ],
+ "properties": {
+ "code": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Create an invite code."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/createInviteCodes.json b/lexicons/com/atproto/server/createInviteCodes.json
new file mode 100644
index 0000000000..4843e28dc0
--- /dev/null
+++ b/lexicons/com/atproto/server/createInviteCodes.json
@@ -0,0 +1,73 @@
+{
+ "id": "com.atproto.server.createInviteCodes",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "codeCount",
+ "useCount"
+ ],
+ "properties": {
+ "useCount": {
+ "type": "integer"
+ },
+ "codeCount": {
+ "type": "integer",
+ "default": 1
+ },
+ "forAccounts": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "codes"
+ ],
+ "properties": {
+ "codes": {
+ "type": "array",
+ "items": {
+ "ref": "#accountCodes",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Create invite codes."
+ },
+ "accountCodes": {
+ "type": "object",
+ "required": [
+ "account",
+ "codes"
+ ],
+ "properties": {
+ "codes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "account": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/createSession.json b/lexicons/com/atproto/server/createSession.json
new file mode 100644
index 0000000000..1b353cbb59
--- /dev/null
+++ b/lexicons/com/atproto/server/createSession.json
@@ -0,0 +1,97 @@
+{
+ "id": "com.atproto.server.createSession",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "identifier",
+ "password"
+ ],
+ "properties": {
+ "password": {
+ "type": "string"
+ },
+ "identifier": {
+ "type": "string",
+ "description": "Handle or other identifier supported by the server for the authenticating user."
+ },
+ "allowTakendown": {
+ "type": "boolean",
+ "description": "When true, instead of throwing error for takendown accounts, a valid response with a narrow scoped token will be returned"
+ },
+ "authFactorToken": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "AccountTakedown"
+ },
+ {
+ "name": "AuthFactorTokenRequired"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "accessJwt",
+ "refreshJwt",
+ "handle",
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "email": {
+ "type": "string"
+ },
+ "active": {
+ "type": "boolean"
+ },
+ "didDoc": {
+ "type": "unknown"
+ },
+ "handle": {
+ "type": "string",
+ "format": "handle"
+ },
+ "status": {
+ "type": "string",
+ "description": "If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted.",
+ "knownValues": [
+ "takendown",
+ "suspended",
+ "deactivated"
+ ]
+ },
+ "accessJwt": {
+ "type": "string"
+ },
+ "refreshJwt": {
+ "type": "string"
+ },
+ "emailConfirmed": {
+ "type": "boolean"
+ },
+ "emailAuthFactor": {
+ "type": "boolean"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Create an authentication session."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/deactivateAccount.json b/lexicons/com/atproto/server/deactivateAccount.json
new file mode 100644
index 0000000000..0607e0efc6
--- /dev/null
+++ b/lexicons/com/atproto/server/deactivateAccount.json
@@ -0,0 +1,24 @@
+{
+ "id": "com.atproto.server.deactivateAccount",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "deleteAfter": {
+ "type": "string",
+ "format": "datetime",
+ "description": "A recommendation to server as to how long they should hold onto the deactivated account before deleting."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Deactivates a currently active account. Stops serving of repo, and future writes to repo until reactivated. Used to finalize account migration with the old host after the account has been activated on the new host."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/defs.json b/lexicons/com/atproto/server/defs.json
new file mode 100644
index 0000000000..60cdf91571
--- /dev/null
+++ b/lexicons/com/atproto/server/defs.json
@@ -0,0 +1,64 @@
+{
+ "id": "com.atproto.server.defs",
+ "defs": {
+ "inviteCode": {
+ "type": "object",
+ "required": [
+ "code",
+ "available",
+ "disabled",
+ "forAccount",
+ "createdBy",
+ "createdAt",
+ "uses"
+ ],
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "uses": {
+ "type": "array",
+ "items": {
+ "ref": "#inviteCodeUse",
+ "type": "ref"
+ }
+ },
+ "disabled": {
+ "type": "boolean"
+ },
+ "available": {
+ "type": "integer"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "createdBy": {
+ "type": "string"
+ },
+ "forAccount": {
+ "type": "string"
+ }
+ }
+ },
+ "inviteCodeUse": {
+ "type": "object",
+ "required": [
+ "usedBy",
+ "usedAt"
+ ],
+ "properties": {
+ "usedAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "usedBy": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/deleteAccount.json b/lexicons/com/atproto/server/deleteAccount.json
new file mode 100644
index 0000000000..6743a74431
--- /dev/null
+++ b/lexicons/com/atproto/server/deleteAccount.json
@@ -0,0 +1,42 @@
+{
+ "id": "com.atproto.server.deleteAccount",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "did",
+ "password",
+ "token"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "token": {
+ "type": "string"
+ },
+ "password": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "ExpiredToken"
+ },
+ {
+ "name": "InvalidToken"
+ }
+ ],
+ "description": "Delete an actor's account with a token and password. Can only be called after requesting a deletion token. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/deleteSession.json b/lexicons/com/atproto/server/deleteSession.json
new file mode 100644
index 0000000000..e2cc504c39
--- /dev/null
+++ b/lexicons/com/atproto/server/deleteSession.json
@@ -0,0 +1,19 @@
+{
+ "id": "com.atproto.server.deleteSession",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "errors": [
+ {
+ "name": "InvalidToken"
+ },
+ {
+ "name": "ExpiredToken"
+ }
+ ],
+ "description": "Delete the current session. Requires auth using the 'refreshJwt' (not the 'accessJwt')."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/describeServer.json b/lexicons/com/atproto/server/describeServer.json
new file mode 100644
index 0000000000..25dc2d2912
--- /dev/null
+++ b/lexicons/com/atproto/server/describeServer.json
@@ -0,0 +1,73 @@
+{
+ "id": "com.atproto.server.describeServer",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "did",
+ "availableUserDomains"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "links": {
+ "ref": "#links",
+ "type": "ref",
+ "description": "URLs of service policy documents."
+ },
+ "contact": {
+ "ref": "#contact",
+ "type": "ref",
+ "description": "Contact information"
+ },
+ "inviteCodeRequired": {
+ "type": "boolean",
+ "description": "If true, an invite code must be supplied to create an account on this instance."
+ },
+ "availableUserDomains": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of domain suffixes that can be used in account handles."
+ },
+ "phoneVerificationRequired": {
+ "type": "boolean",
+ "description": "If true, a phone verification token must be supplied to create an account on this instance."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Describes the server's account creation requirements and capabilities. Implemented by PDS."
+ },
+ "links": {
+ "type": "object",
+ "properties": {
+ "privacyPolicy": {
+ "type": "string",
+ "format": "uri"
+ },
+ "termsOfService": {
+ "type": "string",
+ "format": "uri"
+ }
+ }
+ },
+ "contact": {
+ "type": "object",
+ "properties": {
+ "email": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/getAccountInviteCodes.json b/lexicons/com/atproto/server/getAccountInviteCodes.json
new file mode 100644
index 0000000000..6b6bb1fa32
--- /dev/null
+++ b/lexicons/com/atproto/server/getAccountInviteCodes.json
@@ -0,0 +1,48 @@
+{
+ "id": "com.atproto.server.getAccountInviteCodes",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "DuplicateCreate"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "codes"
+ ],
+ "properties": {
+ "codes": {
+ "type": "array",
+ "items": {
+ "ref": "com.atproto.server.defs#inviteCode",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "includeUsed": {
+ "type": "boolean",
+ "default": true
+ },
+ "createAvailable": {
+ "type": "boolean",
+ "default": true,
+ "description": "Controls whether any new 'earned' but not 'created' invites should be created."
+ }
+ }
+ },
+ "description": "Get all invite codes for the current account. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/getServiceAuth.json b/lexicons/com/atproto/server/getServiceAuth.json
new file mode 100644
index 0000000000..80f5a1148c
--- /dev/null
+++ b/lexicons/com/atproto/server/getServiceAuth.json
@@ -0,0 +1,53 @@
+{
+ "id": "com.atproto.server.getServiceAuth",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "BadExpiration",
+ "description": "Indicates that the requested expiration date is not a valid. May be in the past or may be reliant on the requested scopes."
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "token"
+ ],
+ "properties": {
+ "token": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "aud"
+ ],
+ "properties": {
+ "aud": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the service that the token will be used to authenticate with"
+ },
+ "exp": {
+ "type": "integer",
+ "description": "The time in Unix Epoch seconds that the JWT expires. Defaults to 60 seconds in the future. The service may enforce certain time bounds on tokens depending on the requested scope."
+ },
+ "lxm": {
+ "type": "string",
+ "format": "nsid",
+ "description": "Lexicon (XRPC) method to bind the requested token to"
+ }
+ }
+ },
+ "description": "Get a signed token on behalf of the requesting DID for the requested service."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/getSession.json b/lexicons/com/atproto/server/getSession.json
new file mode 100644
index 0000000000..8e9810d72e
--- /dev/null
+++ b/lexicons/com/atproto/server/getSession.json
@@ -0,0 +1,55 @@
+{
+ "id": "com.atproto.server.getSession",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "handle",
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "email": {
+ "type": "string"
+ },
+ "active": {
+ "type": "boolean"
+ },
+ "didDoc": {
+ "type": "unknown"
+ },
+ "handle": {
+ "type": "string",
+ "format": "handle"
+ },
+ "status": {
+ "type": "string",
+ "description": "If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted.",
+ "knownValues": [
+ "takendown",
+ "suspended",
+ "deactivated"
+ ]
+ },
+ "emailConfirmed": {
+ "type": "boolean"
+ },
+ "emailAuthFactor": {
+ "type": "boolean"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Get information about the current auth session. Requires auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/listAppPasswords.json b/lexicons/com/atproto/server/listAppPasswords.json
new file mode 100644
index 0000000000..8ff2678ea3
--- /dev/null
+++ b/lexicons/com/atproto/server/listAppPasswords.json
@@ -0,0 +1,53 @@
+{
+ "id": "com.atproto.server.listAppPasswords",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "AccountTakedown"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "passwords"
+ ],
+ "properties": {
+ "passwords": {
+ "type": "array",
+ "items": {
+ "ref": "#appPassword",
+ "type": "ref"
+ }
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "List all App Passwords."
+ },
+ "appPassword": {
+ "type": "object",
+ "required": [
+ "name",
+ "createdAt"
+ ],
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "createdAt": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "privileged": {
+ "type": "boolean"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/refreshSession.json b/lexicons/com/atproto/server/refreshSession.json
new file mode 100644
index 0000000000..3924c2b665
--- /dev/null
+++ b/lexicons/com/atproto/server/refreshSession.json
@@ -0,0 +1,74 @@
+{
+ "id": "com.atproto.server.refreshSession",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "errors": [
+ {
+ "name": "AccountTakedown"
+ },
+ {
+ "name": "InvalidToken"
+ },
+ {
+ "name": "ExpiredToken"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "accessJwt",
+ "refreshJwt",
+ "handle",
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "email": {
+ "type": "string"
+ },
+ "active": {
+ "type": "boolean"
+ },
+ "didDoc": {
+ "type": "unknown"
+ },
+ "handle": {
+ "type": "string",
+ "format": "handle"
+ },
+ "status": {
+ "type": "string",
+ "description": "Hosting status of the account. If not specified, then assume 'active'.",
+ "knownValues": [
+ "takendown",
+ "suspended",
+ "deactivated"
+ ]
+ },
+ "accessJwt": {
+ "type": "string"
+ },
+ "refreshJwt": {
+ "type": "string"
+ },
+ "emailConfirmed": {
+ "type": "boolean"
+ },
+ "emailAuthFactor": {
+ "type": "boolean"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Refresh an authentication session. Requires auth using the 'refreshJwt' (not the 'accessJwt')."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/requestAccountDelete.json b/lexicons/com/atproto/server/requestAccountDelete.json
new file mode 100644
index 0000000000..94c21ae5a6
--- /dev/null
+++ b/lexicons/com/atproto/server/requestAccountDelete.json
@@ -0,0 +1,11 @@
+{
+ "id": "com.atproto.server.requestAccountDelete",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "description": "Initiate a user account deletion via email."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/requestEmailConfirmation.json b/lexicons/com/atproto/server/requestEmailConfirmation.json
new file mode 100644
index 0000000000..808c2aa4f7
--- /dev/null
+++ b/lexicons/com/atproto/server/requestEmailConfirmation.json
@@ -0,0 +1,11 @@
+{
+ "id": "com.atproto.server.requestEmailConfirmation",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "description": "Request an email with a code to confirm ownership of email."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/requestEmailUpdate.json b/lexicons/com/atproto/server/requestEmailUpdate.json
new file mode 100644
index 0000000000..158ba0f990
--- /dev/null
+++ b/lexicons/com/atproto/server/requestEmailUpdate.json
@@ -0,0 +1,25 @@
+{
+ "id": "com.atproto.server.requestEmailUpdate",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "tokenRequired"
+ ],
+ "properties": {
+ "tokenRequired": {
+ "type": "boolean"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Request a token in order to update email."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/requestPasswordReset.json b/lexicons/com/atproto/server/requestPasswordReset.json
new file mode 100644
index 0000000000..fdb81f40e4
--- /dev/null
+++ b/lexicons/com/atproto/server/requestPasswordReset.json
@@ -0,0 +1,25 @@
+{
+ "id": "com.atproto.server.requestPasswordReset",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "email"
+ ],
+ "properties": {
+ "email": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Initiate a user account password reset via email."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/reserveSigningKey.json b/lexicons/com/atproto/server/reserveSigningKey.json
new file mode 100644
index 0000000000..cd54f637fa
--- /dev/null
+++ b/lexicons/com/atproto/server/reserveSigningKey.json
@@ -0,0 +1,39 @@
+{
+ "id": "com.atproto.server.reserveSigningKey",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID to reserve a key for."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "signingKey"
+ ],
+ "properties": {
+ "signingKey": {
+ "type": "string",
+ "description": "The public key for the reserved signing key, in did:key serialization."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Reserve a repo signing key, for use with account creation. Necessary so that a DID PLC update operation can be constructed during an account migraiton. Public and does not require auth; implemented by PDS. NOTE: this endpoint may change when full account migration is implemented."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/resetPassword.json b/lexicons/com/atproto/server/resetPassword.json
new file mode 100644
index 0000000000..b8857cfca0
--- /dev/null
+++ b/lexicons/com/atproto/server/resetPassword.json
@@ -0,0 +1,37 @@
+{
+ "id": "com.atproto.server.resetPassword",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "token",
+ "password"
+ ],
+ "properties": {
+ "token": {
+ "type": "string"
+ },
+ "password": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "ExpiredToken"
+ },
+ {
+ "name": "InvalidToken"
+ }
+ ],
+ "description": "Reset a user account password using a token."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/revokeAppPassword.json b/lexicons/com/atproto/server/revokeAppPassword.json
new file mode 100644
index 0000000000..362306cc96
--- /dev/null
+++ b/lexicons/com/atproto/server/revokeAppPassword.json
@@ -0,0 +1,25 @@
+{
+ "id": "com.atproto.server.revokeAppPassword",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Revoke an App Password by name."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/server/updateEmail.json b/lexicons/com/atproto/server/updateEmail.json
new file mode 100644
index 0000000000..a5390b4de3
--- /dev/null
+++ b/lexicons/com/atproto/server/updateEmail.json
@@ -0,0 +1,43 @@
+{
+ "id": "com.atproto.server.updateEmail",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "email"
+ ],
+ "properties": {
+ "email": {
+ "type": "string"
+ },
+ "token": {
+ "type": "string",
+ "description": "Requires a token from com.atproto.sever.requestEmailUpdate if the account's email has been confirmed."
+ },
+ "emailAuthFactor": {
+ "type": "boolean"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "ExpiredToken"
+ },
+ {
+ "name": "InvalidToken"
+ },
+ {
+ "name": "TokenRequired"
+ }
+ ],
+ "description": "Update an account's email."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/sync/defs.json b/lexicons/com/atproto/sync/defs.json
new file mode 100644
index 0000000000..3f2f42fe8c
--- /dev/null
+++ b/lexicons/com/atproto/sync/defs.json
@@ -0,0 +1,17 @@
+{
+ "id": "com.atproto.sync.defs",
+ "defs": {
+ "hostStatus": {
+ "type": "string",
+ "knownValues": [
+ "active",
+ "idle",
+ "offline",
+ "throttled",
+ "banned"
+ ]
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/sync/getBlob.json b/lexicons/com/atproto/sync/getBlob.json
new file mode 100644
index 0000000000..b571d31736
--- /dev/null
+++ b/lexicons/com/atproto/sync/getBlob.json
@@ -0,0 +1,50 @@
+{
+ "id": "com.atproto.sync.getBlob",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "BlobNotFound"
+ },
+ {
+ "name": "RepoNotFound"
+ },
+ {
+ "name": "RepoTakendown"
+ },
+ {
+ "name": "RepoSuspended"
+ },
+ {
+ "name": "RepoDeactivated"
+ }
+ ],
+ "output": {
+ "encoding": "*/*"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "did",
+ "cid"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid",
+ "description": "The CID of the blob to fetch"
+ },
+ "did": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the account."
+ }
+ }
+ },
+ "description": "Get a blob associated with a given account. Returns the full blob as originally uploaded. Does not require auth; implemented by PDS."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/sync/getBlocks.json b/lexicons/com/atproto/sync/getBlocks.json
new file mode 100644
index 0000000000..8cd269ecea
--- /dev/null
+++ b/lexicons/com/atproto/sync/getBlocks.json
@@ -0,0 +1,52 @@
+{
+ "id": "com.atproto.sync.getBlocks",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "BlockNotFound"
+ },
+ {
+ "name": "RepoNotFound"
+ },
+ {
+ "name": "RepoTakendown"
+ },
+ {
+ "name": "RepoSuspended"
+ },
+ {
+ "name": "RepoDeactivated"
+ }
+ ],
+ "output": {
+ "encoding": "application/vnd.ipld.car"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "did",
+ "cids"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the repo."
+ },
+ "cids": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "cid"
+ }
+ }
+ }
+ },
+ "description": "Get data blocks from a given repo, by CID. For example, intermediate MST nodes, or records. Does not require auth; implemented by PDS."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/sync/getCheckout.json b/lexicons/com/atproto/sync/getCheckout.json
new file mode 100644
index 0000000000..9e5b0b3066
--- /dev/null
+++ b/lexicons/com/atproto/sync/getCheckout.json
@@ -0,0 +1,27 @@
+{
+ "id": "com.atproto.sync.getCheckout",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "encoding": "application/vnd.ipld.car"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the repo."
+ }
+ }
+ },
+ "description": "DEPRECATED - please use com.atproto.sync.getRepo instead"
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/sync/getHead.json b/lexicons/com/atproto/sync/getHead.json
new file mode 100644
index 0000000000..fc5af39d45
--- /dev/null
+++ b/lexicons/com/atproto/sync/getHead.json
@@ -0,0 +1,44 @@
+{
+ "id": "com.atproto.sync.getHead",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "HeadNotFound"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "root"
+ ],
+ "properties": {
+ "root": {
+ "type": "string",
+ "format": "cid"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the repo."
+ }
+ }
+ },
+ "description": "DEPRECATED - please use com.atproto.sync.getLatestCommit instead"
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/sync/getHostStatus.json b/lexicons/com/atproto/sync/getHostStatus.json
new file mode 100644
index 0000000000..86d563fa24
--- /dev/null
+++ b/lexicons/com/atproto/sync/getHostStatus.json
@@ -0,0 +1,54 @@
+{
+ "id": "com.atproto.sync.getHostStatus",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "HostNotFound"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "hostname"
+ ],
+ "properties": {
+ "seq": {
+ "type": "integer",
+ "description": "Recent repo stream event sequence number. May be delayed from actual stream processing (eg, persisted cursor not in-memory cursor)."
+ },
+ "status": {
+ "ref": "com.atproto.sync.defs#hostStatus",
+ "type": "ref"
+ },
+ "hostname": {
+ "type": "string"
+ },
+ "accountCount": {
+ "type": "integer",
+ "description": "Number of accounts on the server which are associated with the upstream host. Note that the upstream may actually have more accounts."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "hostname"
+ ],
+ "properties": {
+ "hostname": {
+ "type": "string",
+ "description": "Hostname of the host (eg, PDS or relay) being queried."
+ }
+ }
+ },
+ "description": "Returns information about a specified upstream host, as consumed by the server. Implemented by relays."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/sync/getLatestCommit.json b/lexicons/com/atproto/sync/getLatestCommit.json
new file mode 100644
index 0000000000..e8ce2cd800
--- /dev/null
+++ b/lexicons/com/atproto/sync/getLatestCommit.json
@@ -0,0 +1,58 @@
+{
+ "id": "com.atproto.sync.getLatestCommit",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "RepoNotFound"
+ },
+ {
+ "name": "RepoTakendown"
+ },
+ {
+ "name": "RepoSuspended"
+ },
+ {
+ "name": "RepoDeactivated"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "cid",
+ "rev"
+ ],
+ "properties": {
+ "cid": {
+ "type": "string",
+ "format": "cid"
+ },
+ "rev": {
+ "type": "string",
+ "format": "tid"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the repo."
+ }
+ }
+ },
+ "description": "Get the current commit CID & revision of the specified repo. Does not require auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/sync/getRecord.json b/lexicons/com/atproto/sync/getRecord.json
new file mode 100644
index 0000000000..330826046d
--- /dev/null
+++ b/lexicons/com/atproto/sync/getRecord.json
@@ -0,0 +1,55 @@
+{
+ "id": "com.atproto.sync.getRecord",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "RecordNotFound"
+ },
+ {
+ "name": "RepoNotFound"
+ },
+ {
+ "name": "RepoTakendown"
+ },
+ {
+ "name": "RepoSuspended"
+ },
+ {
+ "name": "RepoDeactivated"
+ }
+ ],
+ "output": {
+ "encoding": "application/vnd.ipld.car"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "did",
+ "collection",
+ "rkey"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the repo."
+ },
+ "rkey": {
+ "type": "string",
+ "format": "record-key",
+ "description": "Record Key"
+ },
+ "collection": {
+ "type": "string",
+ "format": "nsid"
+ }
+ }
+ },
+ "description": "Get data blocks needed to prove the existence or non-existence of record in the current version of repo. Does not require auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/sync/getRepo.json b/lexicons/com/atproto/sync/getRepo.json
new file mode 100644
index 0000000000..3ec4c0489b
--- /dev/null
+++ b/lexicons/com/atproto/sync/getRepo.json
@@ -0,0 +1,46 @@
+{
+ "id": "com.atproto.sync.getRepo",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "RepoNotFound"
+ },
+ {
+ "name": "RepoTakendown"
+ },
+ {
+ "name": "RepoSuspended"
+ },
+ {
+ "name": "RepoDeactivated"
+ }
+ ],
+ "output": {
+ "encoding": "application/vnd.ipld.car"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the repo."
+ },
+ "since": {
+ "type": "string",
+ "format": "tid",
+ "description": "The revision ('rev') of the repo to create a diff from."
+ }
+ }
+ },
+ "description": "Download a repository export as CAR file. Optionally only a 'diff' since a previous revision. Does not require auth; implemented by PDS."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/sync/getRepoStatus.json b/lexicons/com/atproto/sync/getRepoStatus.json
new file mode 100644
index 0000000000..698b80d509
--- /dev/null
+++ b/lexicons/com/atproto/sync/getRepoStatus.json
@@ -0,0 +1,65 @@
+{
+ "id": "com.atproto.sync.getRepoStatus",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "RepoNotFound"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "did",
+ "active"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "rev": {
+ "type": "string",
+ "format": "tid",
+ "description": "Optional field, the current rev of the repo, if active=true"
+ },
+ "active": {
+ "type": "boolean"
+ },
+ "status": {
+ "type": "string",
+ "description": "If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted.",
+ "knownValues": [
+ "takendown",
+ "suspended",
+ "deleted",
+ "deactivated",
+ "desynchronized",
+ "throttled"
+ ]
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the repo."
+ }
+ }
+ },
+ "description": "Get the hosting status for a repository, on this server. Expected to be implemented by PDS and Relay."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/sync/listBlobs.json b/lexicons/com/atproto/sync/listBlobs.json
new file mode 100644
index 0000000000..ee98c6ecb6
--- /dev/null
+++ b/lexicons/com/atproto/sync/listBlobs.json
@@ -0,0 +1,73 @@
+{
+ "id": "com.atproto.sync.listBlobs",
+ "defs": {
+ "main": {
+ "type": "query",
+ "errors": [
+ {
+ "name": "RepoNotFound"
+ },
+ {
+ "name": "RepoTakendown"
+ },
+ {
+ "name": "RepoSuspended"
+ },
+ {
+ "name": "RepoDeactivated"
+ }
+ ],
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "cids"
+ ],
+ "properties": {
+ "cids": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "cid"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did",
+ "description": "The DID of the repo."
+ },
+ "limit": {
+ "type": "integer",
+ "default": 500,
+ "maximum": 1000,
+ "minimum": 1
+ },
+ "since": {
+ "type": "string",
+ "format": "tid",
+ "description": "Optional revision of the repo to list blobs since."
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "List blob CIDs for an account, since some repo revision. Does not require auth; implemented by PDS."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/sync/listHosts.json b/lexicons/com/atproto/sync/listHosts.json
new file mode 100644
index 0000000000..66f78df6e1
--- /dev/null
+++ b/lexicons/com/atproto/sync/listHosts.json
@@ -0,0 +1,70 @@
+{
+ "id": "com.atproto.sync.listHosts",
+ "defs": {
+ "host": {
+ "type": "object",
+ "required": [
+ "hostname"
+ ],
+ "properties": {
+ "seq": {
+ "type": "integer",
+ "description": "Recent repo stream event sequence number. May be delayed from actual stream processing (eg, persisted cursor not in-memory cursor)."
+ },
+ "status": {
+ "ref": "com.atproto.sync.defs#hostStatus",
+ "type": "ref"
+ },
+ "hostname": {
+ "type": "string",
+ "description": "hostname of server; not a URL (no scheme)"
+ },
+ "accountCount": {
+ "type": "integer"
+ }
+ }
+ },
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "hosts"
+ ],
+ "properties": {
+ "hosts": {
+ "type": "array",
+ "items": {
+ "ref": "#host",
+ "type": "ref"
+ },
+ "description": "Sort order is not formally specified. Recommended order is by time host was first seen by the server, with oldest first."
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 200,
+ "maximum": 1000,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Enumerates upstream hosts (eg, PDS or relay instances) that this service consumes from. Implemented by relays."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/sync/listRepos.json b/lexicons/com/atproto/sync/listRepos.json
new file mode 100644
index 0000000000..0341bccc9d
--- /dev/null
+++ b/lexicons/com/atproto/sync/listRepos.json
@@ -0,0 +1,84 @@
+{
+ "id": "com.atproto.sync.listRepos",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "repos"
+ ],
+ "properties": {
+ "repos": {
+ "type": "array",
+ "items": {
+ "ref": "#repo",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 500,
+ "maximum": 1000,
+ "minimum": 1
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "description": "Enumerates all the DID, rev, and commit CID for all repos hosted by this service. Does not require auth; implemented by PDS and Relay."
+ },
+ "repo": {
+ "type": "object",
+ "required": [
+ "did",
+ "head",
+ "rev"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "rev": {
+ "type": "string",
+ "format": "tid"
+ },
+ "head": {
+ "type": "string",
+ "format": "cid",
+ "description": "Current repo commit CID"
+ },
+ "active": {
+ "type": "boolean"
+ },
+ "status": {
+ "type": "string",
+ "description": "If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted.",
+ "knownValues": [
+ "takendown",
+ "suspended",
+ "deleted",
+ "deactivated",
+ "desynchronized",
+ "throttled"
+ ]
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/sync/listReposByCollection.json b/lexicons/com/atproto/sync/listReposByCollection.json
new file mode 100644
index 0000000000..c472ae9102
--- /dev/null
+++ b/lexicons/com/atproto/sync/listReposByCollection.json
@@ -0,0 +1,66 @@
+{
+ "id": "com.atproto.sync.listReposByCollection",
+ "defs": {
+ "main": {
+ "type": "query",
+ "output": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "repos"
+ ],
+ "properties": {
+ "repos": {
+ "type": "array",
+ "items": {
+ "ref": "#repo",
+ "type": "ref"
+ }
+ },
+ "cursor": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "parameters": {
+ "type": "params",
+ "required": [
+ "collection"
+ ],
+ "properties": {
+ "limit": {
+ "type": "integer",
+ "default": 500,
+ "maximum": 2000,
+ "minimum": 1,
+ "description": "Maximum size of response set. Recommend setting a large maximum (1000+) when enumerating large DID lists."
+ },
+ "cursor": {
+ "type": "string"
+ },
+ "collection": {
+ "type": "string",
+ "format": "nsid"
+ }
+ }
+ },
+ "description": "Enumerates all the DIDs which have records with the given collection NSID."
+ },
+ "repo": {
+ "type": "object",
+ "required": [
+ "did"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/sync/notifyOfUpdate.json b/lexicons/com/atproto/sync/notifyOfUpdate.json
new file mode 100644
index 0000000000..aa674c7380
--- /dev/null
+++ b/lexicons/com/atproto/sync/notifyOfUpdate.json
@@ -0,0 +1,26 @@
+{
+ "id": "com.atproto.sync.notifyOfUpdate",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "hostname"
+ ],
+ "properties": {
+ "hostname": {
+ "type": "string",
+ "description": "Hostname of the current service (usually a PDS) that is notifying of update."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "description": "Notify a crawling service of a recent update, and that crawling should resume. Intended use is after a gap between repo stream events caused the crawling service to disconnect. Does not require auth; implemented by Relay. DEPRECATED: just use com.atproto.sync.requestCrawl"
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/sync/requestCrawl.json b/lexicons/com/atproto/sync/requestCrawl.json
new file mode 100644
index 0000000000..6245282cc8
--- /dev/null
+++ b/lexicons/com/atproto/sync/requestCrawl.json
@@ -0,0 +1,31 @@
+{
+ "id": "com.atproto.sync.requestCrawl",
+ "defs": {
+ "main": {
+ "type": "procedure",
+ "input": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "hostname"
+ ],
+ "properties": {
+ "hostname": {
+ "type": "string",
+ "description": "Hostname of the current service (eg, PDS) that is requesting to be crawled."
+ }
+ }
+ },
+ "encoding": "application/json"
+ },
+ "errors": [
+ {
+ "name": "HostBanned"
+ }
+ ],
+ "description": "Request a service to persistently crawl hosted repos. Expected use is new PDS instances declaring their existence to Relays. Does not require auth."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/sync/subscribeRepos.json b/lexicons/com/atproto/sync/subscribeRepos.json
new file mode 100644
index 0000000000..4408da07e6
--- /dev/null
+++ b/lexicons/com/atproto/sync/subscribeRepos.json
@@ -0,0 +1,276 @@
+{
+ "id": "com.atproto.sync.subscribeRepos",
+ "defs": {
+ "info": {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "knownValues": [
+ "OutdatedCursor"
+ ]
+ },
+ "message": {
+ "type": "string"
+ }
+ }
+ },
+ "main": {
+ "type": "subscription",
+ "errors": [
+ {
+ "name": "FutureCursor"
+ },
+ {
+ "name": "ConsumerTooSlow",
+ "description": "If the consumer of the stream can not keep up with events, and a backlog gets too large, the server will drop the connection."
+ }
+ ],
+ "message": {
+ "schema": {
+ "refs": [
+ "#commit",
+ "#sync",
+ "#identity",
+ "#account",
+ "#info"
+ ],
+ "type": "union"
+ }
+ },
+ "parameters": {
+ "type": "params",
+ "properties": {
+ "cursor": {
+ "type": "integer",
+ "description": "The last known event seq number to backfill from."
+ }
+ }
+ },
+ "description": "Repository event stream, aka Firehose endpoint. Outputs repo commits with diff data, and identity update events, for all repositories on the current server. See the atproto specifications for details around stream sequencing, repo versioning, CAR diff format, and more. Public and does not require auth; implemented by PDS and Relay."
+ },
+ "sync": {
+ "type": "object",
+ "required": [
+ "seq",
+ "did",
+ "blocks",
+ "rev",
+ "time"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did",
+ "description": "The account this repo event corresponds to. Must match that in the commit object."
+ },
+ "rev": {
+ "type": "string",
+ "description": "The rev of the commit. This value must match that in the commit object."
+ },
+ "seq": {
+ "type": "integer",
+ "description": "The stream sequence number of this message."
+ },
+ "time": {
+ "type": "string",
+ "format": "datetime",
+ "description": "Timestamp of when this message was originally broadcast."
+ },
+ "blocks": {
+ "type": "bytes",
+ "maxLength": 10000,
+ "description": "CAR file containing the commit, as a block. The CAR header must include the commit block CID as the first 'root'."
+ }
+ },
+ "description": "Updates the repo to a new state, without necessarily including that state on the firehose. Used to recover from broken commit streams, data loss incidents, or in situations where upstream host does not know recent state of the repository."
+ },
+ "commit": {
+ "type": "object",
+ "nullable": [
+ "since"
+ ],
+ "required": [
+ "seq",
+ "rebase",
+ "tooBig",
+ "repo",
+ "commit",
+ "rev",
+ "since",
+ "blocks",
+ "ops",
+ "blobs",
+ "time"
+ ],
+ "properties": {
+ "ops": {
+ "type": "array",
+ "items": {
+ "ref": "#repoOp",
+ "type": "ref",
+ "description": "List of repo mutation operations in this commit (eg, records created, updated, or deleted)."
+ },
+ "maxLength": 200
+ },
+ "rev": {
+ "type": "string",
+ "format": "tid",
+ "description": "The rev of the emitted commit. Note that this information is also in the commit object included in blocks, unless this is a tooBig event."
+ },
+ "seq": {
+ "type": "integer",
+ "description": "The stream sequence number of this message."
+ },
+ "repo": {
+ "type": "string",
+ "format": "did",
+ "description": "The repo this event comes from. Note that all other message types name this field 'did'."
+ },
+ "time": {
+ "type": "string",
+ "format": "datetime",
+ "description": "Timestamp of when this message was originally broadcast."
+ },
+ "blobs": {
+ "type": "array",
+ "items": {
+ "type": "cid-link",
+ "description": "DEPRECATED -- will soon always be empty. List of new blobs (by CID) referenced by records in this commit."
+ }
+ },
+ "since": {
+ "type": "string",
+ "format": "tid",
+ "description": "The rev of the last emitted commit from this repo (if any)."
+ },
+ "blocks": {
+ "type": "bytes",
+ "maxLength": 2000000,
+ "description": "CAR file containing relevant blocks, as a diff since the previous repo state. The commit must be included as a block, and the commit block CID must be the first entry in the CAR header 'roots' list."
+ },
+ "commit": {
+ "type": "cid-link",
+ "description": "Repo commit object CID."
+ },
+ "rebase": {
+ "type": "boolean",
+ "description": "DEPRECATED -- unused"
+ },
+ "tooBig": {
+ "type": "boolean",
+ "description": "DEPRECATED -- replaced by #sync event and data limits. Indicates that this commit contained too many ops, or data size was too large. Consumers will need to make a separate request to get missing data."
+ },
+ "prevData": {
+ "type": "cid-link",
+ "description": "The root CID of the MST tree for the previous commit from this repo (indicated by the 'since' revision field in this message). Corresponds to the 'data' field in the repo commit object. NOTE: this field is effectively required for the 'inductive' version of firehose."
+ }
+ },
+ "description": "Represents an update of repository state. Note that empty commits are allowed, which include no repo data changes, but an update to rev and signature."
+ },
+ "repoOp": {
+ "type": "object",
+ "nullable": [
+ "cid"
+ ],
+ "required": [
+ "action",
+ "path",
+ "cid"
+ ],
+ "properties": {
+ "cid": {
+ "type": "cid-link",
+ "description": "For creates and updates, the new record CID. For deletions, null."
+ },
+ "path": {
+ "type": "string"
+ },
+ "prev": {
+ "type": "cid-link",
+ "description": "For updates and deletes, the previous record CID (required for inductive firehose). For creations, field should not be defined."
+ },
+ "action": {
+ "type": "string",
+ "knownValues": [
+ "create",
+ "update",
+ "delete"
+ ]
+ }
+ },
+ "description": "A repo operation, ie a mutation of a single record."
+ },
+ "account": {
+ "type": "object",
+ "required": [
+ "seq",
+ "did",
+ "time",
+ "active"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "seq": {
+ "type": "integer"
+ },
+ "time": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "active": {
+ "type": "boolean",
+ "description": "Indicates that the account has a repository which can be fetched from the host that emitted this event."
+ },
+ "status": {
+ "type": "string",
+ "description": "If active=false, this optional field indicates a reason for why the account is not active.",
+ "knownValues": [
+ "takendown",
+ "suspended",
+ "deleted",
+ "deactivated",
+ "desynchronized",
+ "throttled"
+ ]
+ }
+ },
+ "description": "Represents a change to an account's status on a host (eg, PDS or Relay). The semantics of this event are that the status is at the host which emitted the event, not necessarily that at the currently active PDS. Eg, a Relay takedown would emit a takedown with active=false, even if the PDS is still active."
+ },
+ "identity": {
+ "type": "object",
+ "required": [
+ "seq",
+ "did",
+ "time"
+ ],
+ "properties": {
+ "did": {
+ "type": "string",
+ "format": "did"
+ },
+ "seq": {
+ "type": "integer"
+ },
+ "time": {
+ "type": "string",
+ "format": "datetime"
+ },
+ "handle": {
+ "type": "string",
+ "format": "handle",
+ "description": "The current handle for the account, or 'handle.invalid' if validation fails. This field is optional, might have been validated or passed-through from an upstream source. Semantics and behaviors for PDS vs Relay may evolve in the future; see atproto specs for more details."
+ }
+ },
+ "description": "Represents a change to an account's identity. Could be an updated handle, signing key, or pds hosting endpoint. Serves as a prod to all downstream services to refresh their identity cache."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/com/atproto/temp/checkHandleAvailability.json b/lexicons/com/atproto/temp/checkHandleAvailability.json
new file mode 100644
index 0000000000..ffbdd6f732
--- /dev/null
+++ b/lexicons/com/atproto/temp/checkHandleAvailability.json
@@ -0,0 +1,88 @@
+{
+ "lexicon": 1,
+ "id": "com.atproto.temp.checkHandleAvailability",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Checks whether the provided handle is available. If the handle is not available, available suggestions will be returned. Optional inputs will be used to generate suggestions.",
+ "parameters": {
+ "type": "params",
+ "required": ["handle"],
+ "properties": {
+ "handle": {
+ "type": "string",
+ "format": "handle",
+ "description": "Tentative handle. Will be checked for availability or used to build handle suggestions."
+ },
+ "email": {
+ "type": "string",
+ "description": "User-provided email. Might be used to build handle suggestions."
+ },
+ "birthDate": {
+ "type": "string",
+ "format": "datetime",
+ "description": "User-provided birth date. Might be used to build handle suggestions."
+ }
+ }
+ },
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["handle", "result"],
+ "properties": {
+ "handle": {
+ "type": "string",
+ "format": "handle",
+ "description": "Echo of the input handle."
+ },
+ "result": {
+ "type": "union",
+ "refs": ["#resultAvailable", "#resultUnavailable"]
+ }
+ }
+ }
+ },
+ "errors": [
+ {
+ "name": "InvalidEmail",
+ "description": "An invalid email was provided."
+ }
+ ]
+ },
+ "resultAvailable": {
+ "type": "object",
+ "description": "Indicates the provided handle is available.",
+ "properties": {}
+ },
+ "resultUnavailable": {
+ "type": "object",
+ "description": "Indicates the provided handle is unavailable and gives suggestions of available handles.",
+ "required": ["suggestions"],
+ "properties": {
+ "suggestions": {
+ "type": "array",
+ "description": "List of suggested handles based on the provided inputs.",
+ "items": {
+ "type": "ref",
+ "ref": "#suggestion"
+ }
+ }
+ }
+ },
+ "suggestion": {
+ "type": "object",
+ "required": ["handle", "method"],
+ "properties": {
+ "handle": {
+ "type": "string",
+ "format": "handle"
+ },
+ "method": {
+ "type": "string",
+ "description": "Method used to build this suggestion. Should be considered opaque to clients. Can be used for metrics."
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/com/atproto/temp/checkSignupQueue.json b/lexicons/com/atproto/temp/checkSignupQueue.json
new file mode 100644
index 0000000000..b7d9e65d7c
--- /dev/null
+++ b/lexicons/com/atproto/temp/checkSignupQueue.json
@@ -0,0 +1,22 @@
+{
+ "lexicon": 1,
+ "id": "com.atproto.temp.checkSignupQueue",
+ "defs": {
+ "main": {
+ "type": "query",
+ "description": "Check accounts location in signup queue.",
+ "output": {
+ "encoding": "application/json",
+ "schema": {
+ "type": "object",
+ "required": ["activated"],
+ "properties": {
+ "activated": { "type": "boolean" },
+ "placeInQueue": { "type": "integer" },
+ "estimatedTimeMs": { "type": "integer" }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/lexicons/com/germnetwork/declaration.json b/lexicons/com/germnetwork/declaration.json
new file mode 100644
index 0000000000..2c9e42486d
--- /dev/null
+++ b/lexicons/com/germnetwork/declaration.json
@@ -0,0 +1,75 @@
+{
+ "id": "com.germnetwork.declaration",
+ "defs": {
+ "main": {
+ "key": "literal:self",
+ "type": "record",
+ "record": {
+ "type": "object",
+ "required": [
+ "version",
+ "currentKey"
+ ],
+ "properties": {
+ "version": {
+ "type": "string",
+ "maxLength": 14,
+ "minLength": 5,
+ "description": "Semver version number, without pre-release or build information, for the format of opaque content"
+ },
+ "messageMe": {
+ "ref": "#messageMe",
+ "type": "ref",
+ "description": "Controls who can message this account"
+ },
+ "currentKey": {
+ "type": "bytes",
+ "description": "Opaque value, an ed25519 public key prefixed with a byte enum"
+ },
+ "keyPackage": {
+ "type": "bytes",
+ "description": "Opaque value, contains MLS KeyPackage(s), and other signature data, and is signed by the currentKey"
+ },
+ "continuityProofs": {
+ "type": "array",
+ "items": {
+ "type": "bytes"
+ },
+ "maxLength": 1000,
+ "description": "Array of opaque values to allow for key rolling"
+ }
+ }
+ },
+ "description": "A declaration of a Germ Network account"
+ },
+ "messageMe": {
+ "type": "object",
+ "required": [
+ "showButtonTo",
+ "messageMeUrl"
+ ],
+ "properties": {
+ "messageMeUrl": {
+ "type": "string",
+ "format": "uri",
+ "maxLength": 2047,
+ "minLength": 1,
+ "description": "A URL to present to an account that does not have its own com.germnetwork.declaration record, must have an empty fragment component, where the app should fill in the fragment component with the DIDs of the two accounts who wish to message each other"
+ },
+ "showButtonTo": {
+ "type": "string",
+ "maxLength": 100,
+ "minLength": 1,
+ "description": "The policy of who can message the account, this value is included in the keyPackage, but is duplicated here to allow applications to decide if they should show a 'Message on Germ' button to the viewer.",
+ "knownValues": [
+ "none",
+ "usersIFollow",
+ "everyone"
+ ]
+ }
+ }
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/lexicons/tools/ozone/report/defs.json b/lexicons/tools/ozone/report/defs.json
new file mode 100644
index 0000000000..2742fbd1ff
--- /dev/null
+++ b/lexicons/tools/ozone/report/defs.json
@@ -0,0 +1,212 @@
+{
+ "id": "tools.ozone.report.defs",
+ "defs": {
+ "reasonType": {
+ "type": "string",
+ "knownValues": [
+ "tools.ozone.report.defs#reasonAppeal",
+ "tools.ozone.report.defs#reasonOther",
+ "tools.ozone.report.defs#reasonViolenceAnimal",
+ "tools.ozone.report.defs#reasonViolenceThreats",
+ "tools.ozone.report.defs#reasonViolenceGraphicContent",
+ "tools.ozone.report.defs#reasonViolenceGlorification",
+ "tools.ozone.report.defs#reasonViolenceExtremistContent",
+ "tools.ozone.report.defs#reasonViolenceTrafficking",
+ "tools.ozone.report.defs#reasonViolenceOther",
+ "tools.ozone.report.defs#reasonSexualAbuseContent",
+ "tools.ozone.report.defs#reasonSexualNCII",
+ "tools.ozone.report.defs#reasonSexualDeepfake",
+ "tools.ozone.report.defs#reasonSexualAnimal",
+ "tools.ozone.report.defs#reasonSexualUnlabeled",
+ "tools.ozone.report.defs#reasonSexualOther",
+ "tools.ozone.report.defs#reasonChildSafetyCSAM",
+ "tools.ozone.report.defs#reasonChildSafetyGroom",
+ "tools.ozone.report.defs#reasonChildSafetyPrivacy",
+ "tools.ozone.report.defs#reasonChildSafetyHarassment",
+ "tools.ozone.report.defs#reasonChildSafetyOther",
+ "tools.ozone.report.defs#reasonHarassmentTroll",
+ "tools.ozone.report.defs#reasonHarassmentTargeted",
+ "tools.ozone.report.defs#reasonHarassmentHateSpeech",
+ "tools.ozone.report.defs#reasonHarassmentDoxxing",
+ "tools.ozone.report.defs#reasonHarassmentOther",
+ "tools.ozone.report.defs#reasonMisleadingBot",
+ "tools.ozone.report.defs#reasonMisleadingImpersonation",
+ "tools.ozone.report.defs#reasonMisleadingSpam",
+ "tools.ozone.report.defs#reasonMisleadingScam",
+ "tools.ozone.report.defs#reasonMisleadingElections",
+ "tools.ozone.report.defs#reasonMisleadingOther",
+ "tools.ozone.report.defs#reasonRuleSiteSecurity",
+ "tools.ozone.report.defs#reasonRuleProhibitedSales",
+ "tools.ozone.report.defs#reasonRuleBanEvasion",
+ "tools.ozone.report.defs#reasonRuleOther",
+ "tools.ozone.report.defs#reasonSelfHarmContent",
+ "tools.ozone.report.defs#reasonSelfHarmED",
+ "tools.ozone.report.defs#reasonSelfHarmStunts",
+ "tools.ozone.report.defs#reasonSelfHarmSubstances",
+ "tools.ozone.report.defs#reasonSelfHarmOther"
+ ]
+ },
+ "reasonOther": {
+ "type": "token",
+ "description": "An issue not included in these options"
+ },
+ "reasonAppeal": {
+ "type": "token",
+ "description": "Appeal a previously taken moderation action"
+ },
+ "reasonRuleOther": {
+ "type": "token",
+ "description": "Other"
+ },
+ "reasonSelfHarmED": {
+ "type": "token",
+ "description": "Eating disorders"
+ },
+ "reasonSexualNCII": {
+ "type": "token",
+ "description": "Non-consensual intimate imagery"
+ },
+ "reasonSexualOther": {
+ "type": "token",
+ "description": "Other sexual violence content"
+ },
+ "reasonSexualAnimal": {
+ "type": "token",
+ "description": "Animal sexual abuse"
+ },
+ "reasonMisleadingBot": {
+ "type": "token",
+ "description": "Fake account or bot"
+ },
+ "reasonSelfHarmOther": {
+ "type": "token",
+ "description": "Other dangerous content"
+ },
+ "reasonViolenceOther": {
+ "type": "token",
+ "description": "Other violent content"
+ },
+ "reasonMisleadingScam": {
+ "type": "token",
+ "description": "Scam"
+ },
+ "reasonMisleadingSpam": {
+ "type": "token",
+ "description": "Spam"
+ },
+ "reasonRuleBanEvasion": {
+ "type": "token",
+ "description": "Banned user returning"
+ },
+ "reasonSelfHarmStunts": {
+ "type": "token",
+ "description": "Dangerous challenges or activities"
+ },
+ "reasonSexualDeepfake": {
+ "type": "token",
+ "description": "Deepfake adult content"
+ },
+ "reasonViolenceAnimal": {
+ "type": "token",
+ "description": "Animal welfare violations"
+ },
+ "reasonChildSafetyCSAM": {
+ "type": "token",
+ "description": "Child sexual abuse material (CSAM). These reports will be sent only be sent to the application's Moderation Authority."
+ },
+ "reasonHarassmentOther": {
+ "type": "token",
+ "description": "Other harassing or hateful content"
+ },
+ "reasonHarassmentTroll": {
+ "type": "token",
+ "description": "Trolling"
+ },
+ "reasonMisleadingOther": {
+ "type": "token",
+ "description": "Other misleading content"
+ },
+ "reasonSelfHarmContent": {
+ "type": "token",
+ "description": "Content promoting or depicting self-harm"
+ },
+ "reasonSexualUnlabeled": {
+ "type": "token",
+ "description": "Unlabelled adult content"
+ },
+ "reasonViolenceThreats": {
+ "type": "token",
+ "description": "Threats or incitement"
+ },
+ "reasonChildSafetyGroom": {
+ "type": "token",
+ "description": "Grooming or predatory behavior. These reports will be sent only be sent to the application's Moderation Authority."
+ },
+ "reasonChildSafetyOther": {
+ "type": "token",
+ "description": "Other child safety. These reports will be sent only be sent to the application's Moderation Authority."
+ },
+ "reasonRuleSiteSecurity": {
+ "type": "token",
+ "description": "Hacking or system attacks"
+ },
+ "reasonHarassmentDoxxing": {
+ "type": "token",
+ "description": "Doxxing"
+ },
+ "reasonChildSafetyPrivacy": {
+ "type": "token",
+ "description": "Privacy violation involving a minor"
+ },
+ "reasonHarassmentTargeted": {
+ "type": "token",
+ "description": "Targeted harassment"
+ },
+ "reasonSelfHarmSubstances": {
+ "type": "token",
+ "description": "Dangerous substances or drug abuse"
+ },
+ "reasonSexualAbuseContent": {
+ "type": "token",
+ "description": "Adult sexual abuse content"
+ },
+ "reasonMisleadingElections": {
+ "type": "token",
+ "description": "False information about elections"
+ },
+ "reasonRuleProhibitedSales": {
+ "type": "token",
+ "description": "Promoting or selling prohibited items or services"
+ },
+ "reasonViolenceTrafficking": {
+ "type": "token",
+ "description": "Human trafficking"
+ },
+ "reasonHarassmentHateSpeech": {
+ "type": "token",
+ "description": "Hate speech"
+ },
+ "reasonChildSafetyHarassment": {
+ "type": "token",
+ "description": "Harassment or bullying of minors"
+ },
+ "reasonViolenceGlorification": {
+ "type": "token",
+ "description": "Glorification of violence"
+ },
+ "reasonViolenceGraphicContent": {
+ "type": "token",
+ "description": "Graphic violent content"
+ },
+ "reasonMisleadingImpersonation": {
+ "type": "token",
+ "description": "Impersonation"
+ },
+ "reasonViolenceExtremistContent": {
+ "type": "token",
+ "description": "Extremist content. These reports will be sent only be sent to the application's Moderation Authority."
+ }
+ },
+ "$type": "com.atproto.lexicon.schema",
+ "lexicon": 1
+}
diff --git a/eslint/__disabled_tests__/avoid-unwrapped-text.disabled-test.js b/lint-rules/__disabled_tests__/avoid-unwrapped-text.disabled-test.js
similarity index 100%
rename from eslint/__disabled_tests__/avoid-unwrapped-text.disabled-test.js
rename to lint-rules/__disabled_tests__/avoid-unwrapped-text.disabled-test.js
diff --git a/eslint/__disabled_tests__/lingui-msg-rule.disabled-test.js b/lint-rules/__disabled_tests__/lingui-msg-rule.disabled-test.js
similarity index 100%
rename from eslint/__disabled_tests__/lingui-msg-rule.disabled-test.js
rename to lint-rules/__disabled_tests__/lingui-msg-rule.disabled-test.js
diff --git a/eslint/__disabled_tests__/note.md b/lint-rules/__disabled_tests__/note.md
similarity index 100%
rename from eslint/__disabled_tests__/note.md
rename to lint-rules/__disabled_tests__/note.md
diff --git a/eslint/avoid-unwrapped-text.js b/lint-rules/avoid-unwrapped-text.js
similarity index 100%
rename from eslint/avoid-unwrapped-text.js
rename to lint-rules/avoid-unwrapped-text.js
diff --git a/eslint/index.js b/lint-rules/index.js
similarity index 85%
rename from eslint/index.js
rename to lint-rules/index.js
index 1df4590245..4af3a9bc73 100644
--- a/eslint/index.js
+++ b/lint-rules/index.js
@@ -7,7 +7,6 @@ const plugin = {
},
rules: {
'avoid-unwrapped-text': require('./avoid-unwrapped-text'),
- 'use-exact-imports': require('./use-exact-imports'),
'use-prefixed-imports': require('./use-prefixed-imports'),
'lingui-msg-rule': require('./lingui-msg-rule'),
},
diff --git a/eslint/lingui-msg-rule.js b/lint-rules/lingui-msg-rule.js
similarity index 100%
rename from eslint/lingui-msg-rule.js
rename to lint-rules/lingui-msg-rule.js
diff --git a/eslint/use-prefixed-imports.js b/lint-rules/use-prefixed-imports.js
similarity index 100%
rename from eslint/use-prefixed-imports.js
rename to lint-rules/use-prefixed-imports.js
diff --git a/modules/bottom-sheet/android/build.gradle b/modules/bottom-sheet/android/build.gradle
index c4c051b70f..e7f85daea1 100644
--- a/modules/bottom-sheet/android/build.gradle
+++ b/modules/bottom-sheet/android/build.gradle
@@ -1,49 +1,20 @@
-apply plugin: 'com.android.library'
+plugins {
+ id 'com.android.library'
+ id 'expo-module-gradle-plugin'
+}
group = 'expo.modules.bottomsheet'
version = '0.1.0'
-def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle")
-apply from: expoModulesCorePlugin
-applyKotlinExpoModulesCorePlugin()
-useCoreDependencies()
-useExpoPublishing()
-
-// If you want to use the managed Android SDK versions from expo-modules-core, set this to true.
-// The Android SDK versions will be bumped from time to time in SDK releases and may introduce breaking changes in your module code.
-// Most of the time, you may like to manage the Android SDK versions yourself.
-def useManagedAndroidSdkVersions = false
-if (useManagedAndroidSdkVersions) {
- useDefaultAndroidSdkVersions()
-} else {
- buildscript {
- // Simple helper that allows the root project to override versions declared by this library.
- ext.safeExtGet = { prop, fallback ->
- rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
- }
- }
- project.android {
- compileSdkVersion safeExtGet("compileSdkVersion", 34)
- defaultConfig {
- minSdkVersion safeExtGet("minSdkVersion", 21)
- targetSdkVersion safeExtGet("targetSdkVersion", 34)
- }
- }
-}
-
android {
namespace "expo.modules.bottomsheet"
defaultConfig {
versionCode 1
versionName "0.1.0"
}
- lintOptions {
- abortOnError false
- }
}
dependencies {
- implementation project(':expo-modules-core')
implementation 'com.google.android.material:material:1.13.0'
implementation "com.facebook.react:react-native:+"
}
diff --git a/modules/expo-background-notification-handler/android/build.gradle b/modules/expo-background-notification-handler/android/build.gradle
index e18eee9343..28ce5df56d 100644
--- a/modules/expo-background-notification-handler/android/build.gradle
+++ b/modules/expo-background-notification-handler/android/build.gradle
@@ -1,93 +1,19 @@
-apply plugin: 'com.android.library'
-apply plugin: 'kotlin-android'
-apply plugin: 'maven-publish'
+plugins {
+ id 'com.android.library'
+ id 'expo-module-gradle-plugin'
+}
group = 'expo.modules.backgroundnotificationhandler'
version = '0.5.0'
-buildscript {
- def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle")
- if (expoModulesCorePlugin.exists()) {
- apply from: expoModulesCorePlugin
- applyKotlinExpoModulesCorePlugin()
- }
-
- // Simple helper that allows the root project to override versions declared by this library.
- ext.safeExtGet = { prop, fallback ->
- rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
- }
-
- // Ensures backward compatibility
- ext.getKotlinVersion = {
- if (ext.has("kotlinVersion")) {
- ext.kotlinVersion()
- } else {
- ext.safeExtGet("kotlinVersion", "1.8.10")
- }
- }
-
- repositories {
- mavenCentral()
- }
-
- dependencies {
- classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${getKotlinVersion()}")
- }
-}
-
-afterEvaluate {
- publishing {
- publications {
- release(MavenPublication) {
- from components.release
- }
- }
- repositories {
- maven {
- url = mavenLocal().url
- }
- }
- }
-}
-
android {
- compileSdkVersion safeExtGet("compileSdkVersion", 33)
-
- def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION
- if (agpVersion.tokenize('.')[0].toInteger() < 8) {
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_11
- targetCompatibility JavaVersion.VERSION_11
- }
-
- kotlinOptions {
- jvmTarget = JavaVersion.VERSION_11.majorVersion
- }
- }
-
namespace "expo.modules.backgroundnotificationhandler"
defaultConfig {
- minSdkVersion safeExtGet("minSdkVersion", 21)
- targetSdkVersion safeExtGet("targetSdkVersion", 34)
versionCode 1
versionName "0.5.0"
}
- lintOptions {
- abortOnError false
- }
- publishing {
- singleVariant("release") {
- withSourcesJar()
- }
- }
-}
-
-repositories {
- mavenCentral()
}
dependencies {
- implementation project(':expo-modules-core')
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${getKotlinVersion()}"
implementation 'com.google.firebase:firebase-messaging-ktx:24.0.0'
}
diff --git a/modules/expo-bluesky-gif-view/android/build.gradle b/modules/expo-bluesky-gif-view/android/build.gradle
index bbd8013433..19a400cb03 100644
--- a/modules/expo-bluesky-gif-view/android/build.gradle
+++ b/modules/expo-bluesky-gif-view/android/build.gradle
@@ -1,97 +1,21 @@
-apply plugin: 'com.android.library'
-apply plugin: 'kotlin-android'
-apply plugin: 'maven-publish'
+plugins {
+ id 'com.android.library'
+ id 'expo-module-gradle-plugin'
+}
group = 'expo.modules.blueskygifview'
version = '0.5.0'
-buildscript {
- def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle")
- if (expoModulesCorePlugin.exists()) {
- apply from: expoModulesCorePlugin
- applyKotlinExpoModulesCorePlugin()
- }
-
- // Simple helper that allows the root project to override versions declared by this library.
- ext.safeExtGet = { prop, fallback ->
- rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
- }
-
- // Ensures backward compatibility
- ext.getKotlinVersion = {
- if (ext.has("kotlinVersion")) {
- ext.kotlinVersion()
- } else {
- ext.safeExtGet("kotlinVersion", "1.8.10")
- }
- }
-
- repositories {
- mavenCentral()
- }
-
- dependencies {
- classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${getKotlinVersion()}")
- }
-}
-
-afterEvaluate {
- publishing {
- publications {
- release(MavenPublication) {
- from components.release
- }
- }
- repositories {
- maven {
- url = mavenLocal().url
- }
- }
- }
-}
-
android {
- compileSdkVersion safeExtGet("compileSdkVersion", 33)
-
- def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION
- if (agpVersion.tokenize('.')[0].toInteger() < 8) {
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_11
- targetCompatibility JavaVersion.VERSION_11
- }
-
- kotlinOptions {
- jvmTarget = JavaVersion.VERSION_11.majorVersion
- }
- }
-
namespace "expo.modules.blueskygifview"
defaultConfig {
- minSdkVersion safeExtGet("minSdkVersion", 21)
- targetSdkVersion safeExtGet("targetSdkVersion", 34)
versionCode 1
versionName "0.5.0"
}
- lintOptions {
- abortOnError false
- }
- publishing {
- singleVariant("release") {
- withSourcesJar()
- }
- }
-}
-
-repositories {
- mavenCentral()
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.6.1'
- def GLIDE_VERSION = "4.16.0"
-
- implementation project(':expo-modules-core')
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${getKotlinVersion()}"
// Keep glide version up to date with expo-image so that we don't have duplicate deps
implementation 'com.github.bumptech.glide:glide:4.13.2'
diff --git a/modules/expo-bluesky-swiss-army/android/build.gradle b/modules/expo-bluesky-swiss-army/android/build.gradle
index b031cde57e..52d416efe3 100644
--- a/modules/expo-bluesky-swiss-army/android/build.gradle
+++ b/modules/expo-bluesky-swiss-army/android/build.gradle
@@ -1,45 +1,17 @@
-apply plugin: 'com.android.library'
+plugins {
+ id 'com.android.library'
+ id 'expo-module-gradle-plugin'
+}
group = 'expo.modules.blueskyswissarmy'
version = '0.6.0'
-def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle")
-apply from: expoModulesCorePlugin
-applyKotlinExpoModulesCorePlugin()
-useCoreDependencies()
-useExpoPublishing()
-
-// If you want to use the managed Android SDK versions from expo-modules-core, set this to true.
-// The Android SDK versions will be bumped from time to time in SDK releases and may introduce breaking changes in your module code.
-// Most of the time, you may like to manage the Android SDK versions yourself.
-def useManagedAndroidSdkVersions = false
-if (useManagedAndroidSdkVersions) {
- useDefaultAndroidSdkVersions()
-} else {
- buildscript {
- // Simple helper that allows the root project to override versions declared by this library.
- ext.safeExtGet = { prop, fallback ->
- rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
- }
- }
- project.android {
- compileSdkVersion safeExtGet("compileSdkVersion", 34)
- defaultConfig {
- minSdkVersion safeExtGet("minSdkVersion", 21)
- targetSdkVersion safeExtGet("targetSdkVersion", 34)
- }
- }
-}
-
android {
namespace "expo.modules.blueskyswissarmy"
defaultConfig {
versionCode 1
versionName "0.6.0"
}
- lintOptions {
- abortOnError false
- }
}
dependencies {
diff --git a/modules/expo-bluesky-swiss-army/ios/ExpoBlueskySwissArmy.podspec b/modules/expo-bluesky-swiss-army/ios/ExpoBlueskySwissArmy.podspec
index 54ce66526c..f7744814cc 100644
--- a/modules/expo-bluesky-swiss-army/ios/ExpoBlueskySwissArmy.podspec
+++ b/modules/expo-bluesky-swiss-army/ios/ExpoBlueskySwissArmy.podspec
@@ -10,7 +10,7 @@ Pod::Spec.new do |s|
s.static_framework = true
s.dependency 'ExpoModulesCore'
- s.dependency 'EXNotifications'
+ s.dependency 'ExpoNotifications'
# Swift/Objective-C compatibility
s.pod_target_xcconfig = {
diff --git a/modules/expo-bluesky-swiss-army/ios/NotificationSettings/ExpoBlueskyNotificationSettingsModule.swift b/modules/expo-bluesky-swiss-army/ios/NotificationSettings/ExpoBlueskyNotificationSettingsModule.swift
index 6374d33487..010b438abd 100644
--- a/modules/expo-bluesky-swiss-army/ios/NotificationSettings/ExpoBlueskyNotificationSettingsModule.swift
+++ b/modules/expo-bluesky-swiss-army/ios/NotificationSettings/ExpoBlueskyNotificationSettingsModule.swift
@@ -1,4 +1,4 @@
-import EXNotifications
+import ExpoNotifications
import ExpoModulesCore
import UIKit
import UserNotifications
diff --git a/modules/expo-bluesky-video-compress/android/build.gradle b/modules/expo-bluesky-video-compress/android/build.gradle
index be96c40154..b1b719263b 100644
--- a/modules/expo-bluesky-video-compress/android/build.gradle
+++ b/modules/expo-bluesky-video-compress/android/build.gradle
@@ -1,34 +1,15 @@
-apply plugin: 'com.android.library'
+plugins {
+ id 'com.android.library'
+ id 'expo-module-gradle-plugin'
+}
group = 'expo.modules.blueskyvideocompress'
version = '1.0.0'
-def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle")
-apply from: expoModulesCorePlugin
-applyKotlinExpoModulesCorePlugin()
-useCoreDependencies()
-useExpoPublishing()
-
-buildscript {
- ext.safeExtGet = { prop, fallback ->
- rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
- }
-}
-
android {
- compileSdkVersion safeExtGet("compileSdkVersion", 34)
-
namespace "expo.modules.blueskyvideocompress"
defaultConfig {
- minSdkVersion safeExtGet("minSdkVersion", 21)
- targetSdkVersion safeExtGet("targetSdkVersion", 34)
versionCode 1
versionName "1.0.0"
}
- lintOptions {
- abortOnError false
- }
-}
-
-dependencies {
}
diff --git a/modules/expo-emoji-picker/android/build.gradle b/modules/expo-emoji-picker/android/build.gradle
index d34288dc79..538f6f5e35 100644
--- a/modules/expo-emoji-picker/android/build.gradle
+++ b/modules/expo-emoji-picker/android/build.gradle
@@ -1,46 +1,19 @@
-apply plugin: 'com.android.library'
+plugins {
+ id 'com.android.library'
+ id 'expo-module-gradle-plugin'
+}
group = 'expo.community.modules.emojipicker'
version = '0.1.0'
-def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle")
-apply from: expoModulesCorePlugin
-applyKotlinExpoModulesCorePlugin()
-useCoreDependencies()
-useExpoPublishing()
-
-// If you want to use the managed Android SDK versions from expo-modules-core, set this to true.
-// The Android SDK versions will be bumped from time to time in SDK releases and may introduce breaking changes in your module code.
-// Most of the time, you may like to manage the Android SDK versions yourself.
-def useManagedAndroidSdkVersions = false
-if (useManagedAndroidSdkVersions) {
- useDefaultAndroidSdkVersions()
-} else {
- buildscript {
- // Simple helper that allows the root project to override versions declared by this library.
- ext.safeExtGet = { prop, fallback ->
- rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
- }
- }
- project.android {
- compileSdkVersion safeExtGet("compileSdkVersion", 34)
- defaultConfig {
- minSdkVersion safeExtGet("minSdkVersion", 21)
- targetSdkVersion safeExtGet("targetSdkVersion", 34)
- }
- }
-}
-
android {
namespace "expo.community.modules.emojipicker"
defaultConfig {
versionCode 1
versionName "0.1.0"
}
- lintOptions {
- abortOnError false
- }
- dependencies {
- implementation "androidx.emoji2:emoji2-emojipicker:1.5.0"
- }
+}
+
+dependencies {
+ implementation "androidx.emoji2:emoji2-emojipicker:1.5.0"
}
diff --git a/modules/expo-receive-android-intents/android/build.gradle b/modules/expo-receive-android-intents/android/build.gradle
index 3712dda40f..634872574d 100644
--- a/modules/expo-receive-android-intents/android/build.gradle
+++ b/modules/expo-receive-android-intents/android/build.gradle
@@ -1,92 +1,15 @@
-apply plugin: 'com.android.library'
-apply plugin: 'kotlin-android'
-apply plugin: 'maven-publish'
+plugins {
+ id 'com.android.library'
+ id 'expo-module-gradle-plugin'
+}
group = 'xyz.blueskyweb.app.exporeceiveandroidintents'
version = '0.4.1'
-buildscript {
- def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle")
- if (expoModulesCorePlugin.exists()) {
- apply from: expoModulesCorePlugin
- applyKotlinExpoModulesCorePlugin()
- }
-
- // Simple helper that allows the root project to override versions declared by this library.
- ext.safeExtGet = { prop, fallback ->
- rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
- }
-
- // Ensures backward compatibility
- ext.getKotlinVersion = {
- if (ext.has("kotlinVersion")) {
- ext.kotlinVersion()
- } else {
- ext.safeExtGet("kotlinVersion", "1.8.10")
- }
- }
-
- repositories {
- mavenCentral()
- }
-
- dependencies {
- classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${getKotlinVersion()}")
- }
-}
-
-afterEvaluate {
- publishing {
- publications {
- release(MavenPublication) {
- from components.release
- }
- }
- repositories {
- maven {
- url = mavenLocal().url
- }
- }
- }
-}
-
android {
- compileSdkVersion safeExtGet("compileSdkVersion", 33)
-
- def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION
- if (agpVersion.tokenize('.')[0].toInteger() < 8) {
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_11
- targetCompatibility JavaVersion.VERSION_11
- }
-
- kotlinOptions {
- jvmTarget = JavaVersion.VERSION_11.majorVersion
- }
- }
-
namespace "xyz.blueskyweb.app.exporeceiveandroidintents"
defaultConfig {
- minSdkVersion safeExtGet("minSdkVersion", 21)
- targetSdkVersion safeExtGet("targetSdkVersion", 34)
versionCode 1
versionName "0.4.1"
}
- lintOptions {
- abortOnError false
- }
- publishing {
- singleVariant("release") {
- withSourcesJar()
- }
- }
-}
-
-repositories {
- mavenCentral()
-}
-
-dependencies {
- implementation project(':expo-modules-core')
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${getKotlinVersion()}"
}
diff --git a/oxlint-suppressions.json b/oxlint-suppressions.json
index 30c145a7f5..1d1ee4d175 100644
--- a/oxlint-suppressions.json
+++ b/oxlint-suppressions.json
@@ -60,11 +60,6 @@
"count": 1
}
},
- "src/Navigation.tsx": {
- "typescript/no-floating-promises": {
- "count": 1
- }
- },
"src/Splash.android.tsx": {
"typescript/no-floating-promises": {
"count": 1
@@ -80,14 +75,6 @@
"count": 1
}
},
- "src/alf/util/flatten.ts": {
- "typescript/no-explicit-any": {
- "count": 1
- },
- "typescript/no-unsafe-member-access": {
- "count": 9
- }
- },
"src/alf/util/systemUI.ts": {
"typescript/no-floating-promises": {
"count": 2
@@ -167,9 +154,6 @@
"typescript/no-explicit-any": {
"count": 4
},
- "typescript/no-misused-promises": {
- "count": 1
- },
"typescript/no-unsafe-call": {
"count": 2
},
@@ -224,9 +208,6 @@
"src/components/Lists.tsx": {
"typescript/no-explicit-any": {
"count": 1
- },
- "typescript/no-misused-promises": {
- "count": 1
}
},
"src/components/Menu/types.ts": {
@@ -261,9 +242,6 @@
"src/components/PostControls/BookmarkButton.tsx": {
"typescript/no-explicit-any": {
"count": 2
- },
- "typescript/no-misused-promises": {
- "count": 1
}
},
"src/components/PostControls/DiscoverDebug.tsx": {
@@ -335,9 +313,6 @@
"typescript/no-floating-promises": {
"count": 5
},
- "typescript/no-misused-promises": {
- "count": 2
- },
"typescript/require-await": {
"count": 4
}
@@ -346,9 +321,6 @@
"typescript/no-floating-promises": {
"count": 1
},
- "typescript/no-misused-promises": {
- "count": 2
- },
"typescript/require-await": {
"count": 1
}
@@ -363,16 +335,6 @@
"count": 1
}
},
- "src/components/ageAssurance/AgeAssuranceErrors.tsx": {
- "typescript/no-misused-promises": {
- "count": 1
- }
- },
- "src/components/ageAssurance/AgeAssuranceInitDialog.tsx": {
- "typescript/no-misused-promises": {
- "count": 2
- }
- },
"src/components/ageAssurance/AgeAssuranceRedirectDialog.tsx": {
"typescript/require-await": {
"count": 1
@@ -388,18 +350,10 @@
"count": 1
}
},
- "src/components/contacts/screens/ViewMatches.tsx": {
- "typescript/no-misused-promises": {
- "count": 1
- }
- },
"src/components/dialogs/DeviceLocationRequestDialog.tsx": {
"typescript/no-explicit-any": {
"count": 1
},
- "typescript/no-misused-promises": {
- "count": 1
- },
"typescript/no-unsafe-member-access": {
"count": 2
}
@@ -409,26 +363,6 @@
"count": 1
}
},
- "src/components/dialogs/EmailDialog/screens/Manage2FA/Disable.tsx": {
- "typescript/no-misused-promises": {
- "count": 3
- }
- },
- "src/components/dialogs/EmailDialog/screens/Manage2FA/Enable.tsx": {
- "typescript/no-misused-promises": {
- "count": 1
- }
- },
- "src/components/dialogs/EmailDialog/screens/Update.tsx": {
- "typescript/no-misused-promises": {
- "count": 3
- }
- },
- "src/components/dialogs/EmailDialog/screens/Verify.tsx": {
- "typescript/no-misused-promises": {
- "count": 3
- }
- },
"src/components/dialogs/LanguageSelectDialog.tsx": {
"typescript/no-explicit-any": {
"count": 1
@@ -447,7 +381,7 @@
"count": 2
},
"typescript/no-misused-promises": {
- "count": 3
+ "count": 1
},
"typescript/no-unsafe-member-access": {
"count": 2
@@ -490,9 +424,6 @@
"src/components/dialogs/lists/CreateOrEditListDialog.tsx": {
"typescript/no-explicit-any": {
"count": 2
- },
- "typescript/no-misused-promises": {
- "count": 1
}
},
"src/components/dialogs/nuxs/FindContactsAnnouncement.tsx": {
@@ -580,16 +511,6 @@
"count": 2
}
},
- "src/components/intents/VerifyEmailIntentDialog.tsx": {
- "typescript/no-misused-promises": {
- "count": 1
- }
- },
- "src/components/verification/VerificationCreatePrompt.tsx": {
- "typescript/no-misused-promises": {
- "count": 1
- }
- },
"src/components/verification/VerificationRemovePrompt.tsx": {
"typescript/no-misused-promises": {
"count": 1
@@ -696,13 +617,10 @@
"count": 1
},
"typescript/no-misused-promises": {
- "count": 3
+ "count": 2
}
},
"src/lib/hooks/usePermissions.ts": {
- "typescript/no-misused-promises": {
- "count": 1
- },
"typescript/no-unsafe-enum-comparison": {
"count": 5
}
@@ -845,18 +763,9 @@
},
"typescript/no-floating-promises": {
"count": 1
- },
- "typescript/no-misused-promises": {
- "count": 1
- },
- "typescript/no-unsafe-member-access": {
- "count": 1
}
},
"src/screens/E2E/SharedPreferencesTesterScreen.tsx": {
- "typescript/no-misused-promises": {
- "count": 6
- },
"typescript/require-await": {
"count": 6
}
@@ -866,22 +775,9 @@
"count": 1
}
},
- "src/screens/Feeds/NoSavedFeedsOfAnyType.tsx": {
- "typescript/no-misused-promises": {
- "count": 1
- }
- },
- "src/screens/Home/NoFeedsPinned.tsx": {
- "typescript/no-misused-promises": {
- "count": 1
- }
- },
"src/screens/List/ListHiddenScreen.tsx": {
"typescript/no-floating-promises": {
"count": 3
- },
- "typescript/no-misused-promises": {
- "count": 1
}
},
"src/screens/Log.tsx": {
@@ -889,20 +785,6 @@
"count": 2
}
},
- "src/screens/Moderation/index.tsx": {
- "typescript/no-explicit-any": {
- "count": 2
- },
- "typescript/no-floating-promises": {
- "count": 1
- },
- "typescript/no-misused-promises": {
- "count": 2
- },
- "typescript/no-unsafe-member-access": {
- "count": 2
- }
- },
"src/screens/ModerationInteractionSettings/index.tsx": {
"typescript/no-explicit-any": {
"count": 1
@@ -925,19 +807,6 @@
"src/screens/Onboarding/StepProfile/index.tsx": {
"typescript/no-floating-promises": {
"count": 2
- },
- "typescript/no-misused-promises": {
- "count": 1
- }
- },
- "src/screens/Onboarding/StepSuggestedStarterpacks/StarterPackCard.tsx": {
- "typescript/no-misused-promises": {
- "count": 1
- }
- },
- "src/screens/Onboarding/StepSuggestedStarterpacks/index.tsx": {
- "typescript/no-misused-promises": {
- "count": 1
}
},
"src/screens/PostThread/components/ThreadItemAnchorFollowButton.tsx": {
@@ -965,18 +834,12 @@
"src/screens/Profile/Header/EditProfileDialog.tsx": {
"typescript/no-explicit-any": {
"count": 3
- },
- "typescript/no-misused-promises": {
- "count": 1
}
},
"src/screens/Profile/Header/ProfileHeaderLabeler.tsx": {
"typescript/no-explicit-any": {
"count": 2
},
- "typescript/no-misused-promises": {
- "count": 1
- },
"typescript/no-unsafe-member-access": {
"count": 3
}
@@ -1007,11 +870,6 @@
"count": 1
}
},
- "src/screens/ProfileList/components/Header.tsx": {
- "typescript/no-misused-promises": {
- "count": 3
- }
- },
"src/screens/ProfileList/components/MoreOptionsMenu.tsx": {
"typescript/no-floating-promises": {
"count": 1
@@ -1030,11 +888,6 @@
"count": 1
}
},
- "src/screens/SavedFeeds.tsx": {
- "typescript/no-misused-promises": {
- "count": 2
- }
- },
"src/screens/Search/modules/ExploreSuggestedAccounts.tsx": {
"typescript/no-floating-promises": {
"count": 1
@@ -1096,15 +949,6 @@
"src/screens/Settings/components/ChangePasswordDialog.tsx": {
"typescript/no-explicit-any": {
"count": 2
- },
- "typescript/no-misused-promises": {
- "count": 2
- },
- "typescript/no-unsafe-call": {
- "count": 2
- },
- "typescript/no-unsafe-member-access": {
- "count": 2
}
},
"src/screens/Settings/components/CopyButton.tsx": {
@@ -1116,9 +960,6 @@
"typescript/no-explicit-any": {
"count": 1
},
- "typescript/no-misused-promises": {
- "count": 1
- },
"typescript/no-unsafe-member-access": {
"count": 1
}
@@ -1128,11 +969,6 @@
"count": 2
}
},
- "src/screens/Settings/components/DisableEmail2FADialog.tsx": {
- "typescript/no-misused-promises": {
- "count": 4
- }
- },
"src/screens/Settings/components/OTAInfo.tsx": {
"typescript/no-floating-promises": {
"count": 1
@@ -1156,7 +992,7 @@
"count": 1
},
"typescript/no-misused-promises": {
- "count": 2
+ "count": 1
},
"typescript/no-unsafe-call": {
"count": 1
@@ -1177,18 +1013,10 @@
"typescript/no-floating-promises": {
"count": 1
},
- "typescript/no-misused-promises": {
- "count": 2
- },
"typescript/require-await": {
"count": 1
}
},
- "src/screens/StarterPack/Wizard/StepFeeds.tsx": {
- "typescript/no-misused-promises": {
- "count": 1
- }
- },
"src/screens/StarterPack/Wizard/index.tsx": {
"typescript/no-floating-promises": {
"count": 2
@@ -1406,16 +1234,13 @@
},
"src/state/queries/postgate/index.ts": {
"typescript/no-explicit-any": {
- "count": 2
+ "count": 1
},
"typescript/no-floating-promises": {
"count": 1
},
- "typescript/no-unsafe-call": {
- "count": 2
- },
"typescript/no-unsafe-member-access": {
- "count": 3
+ "count": 1
},
"typescript/require-await": {
"count": 2
@@ -1432,18 +1257,9 @@
}
},
"src/state/queries/threadgate/index.ts": {
- "typescript/no-explicit-any": {
- "count": 1
- },
"typescript/no-floating-promises": {
"count": 3
},
- "typescript/no-unsafe-call": {
- "count": 2
- },
- "typescript/no-unsafe-member-access": {
- "count": 2
- },
"typescript/require-await": {
"count": 3
}
@@ -1456,11 +1272,6 @@
"count": 1
}
},
- "src/state/session/agent.ts": {
- "typescript/no-explicit-any": {
- "count": 1
- }
- },
"src/state/shell/color-mode.tsx": {
"typescript/no-floating-promises": {
"count": 2
@@ -1505,9 +1316,6 @@
"src/view/com/composer/SelectMediaButton.tsx": {
"typescript/no-floating-promises": {
"count": 1
- },
- "typescript/no-misused-promises": {
- "count": 1
}
},
"src/view/com/composer/drafts/DraftsButton.tsx": {
@@ -1528,12 +1336,7 @@
},
"src/view/com/composer/drafts/state/storage.ts": {
"typescript/require-await": {
- "count": 3
- }
- },
- "src/view/com/composer/photos/EditImageDialog.web.tsx": {
- "typescript/no-misused-promises": {
- "count": 1
+ "count": 2
}
},
"src/view/com/composer/photos/Gallery.tsx": {
@@ -1544,9 +1347,6 @@
"src/view/com/composer/photos/OpenCameraBtn.tsx": {
"typescript/no-explicit-any": {
"count": 1
- },
- "typescript/no-misused-promises": {
- "count": 1
}
},
"src/view/com/composer/text-input/TextInput.web.tsx": {
@@ -1591,7 +1391,7 @@
"count": 2
},
"typescript/no-misused-promises": {
- "count": 3
+ "count": 2
},
"typescript/no-unsafe-member-access": {
"count": 6
@@ -1629,12 +1429,6 @@
"src/view/com/pager/TabBar.web.tsx": {
"typescript/no-explicit-any": {
"count": 1
- },
- "typescript/no-unsafe-call": {
- "count": 2
- },
- "typescript/no-unsafe-member-access": {
- "count": 4
}
},
"src/view/com/post-thread/PostLikedBy.tsx": {
@@ -1658,9 +1452,6 @@
"src/view/com/posts/FeedShutdownMsg.tsx": {
"typescript/no-explicit-any": {
"count": 2
- },
- "typescript/no-misused-promises": {
- "count": 2
}
},
"src/view/com/posts/PostFeedErrorMessage.tsx": {
@@ -1671,7 +1462,7 @@
"count": 8
},
"typescript/no-unsafe-member-access": {
- "count": 9
+ "count": 8
}
},
"src/view/com/util/EmptyState.tsx": {
@@ -1724,9 +1515,6 @@
"src/view/com/util/Views.tsx": {
"react/display-name": {
"count": 1
- },
- "typescript/no-explicit-any": {
- "count": 1
}
},
"src/view/com/util/Views.web.tsx": {
@@ -1734,11 +1522,6 @@
"count": 1
}
},
- "src/view/com/util/forms/Button.tsx": {
- "typescript/no-misused-promises": {
- "count": 1
- }
- },
"src/view/screens/Feeds.tsx": {
"typescript/no-floating-promises": {
"count": 3
diff --git a/package.json b/package.json
index 51febee03a..3ae22dc51a 100644
--- a/package.json
+++ b/package.json
@@ -1,9 +1,9 @@
{
"name": "bsky.app",
- "version": "1.131.0",
+ "version": "1.132.0",
"private": true,
"engines": {
- "node": ">=24.18.0"
+ "node": ">=24.19.0"
},
"devEngines": {
"packageManager": {
@@ -13,7 +13,7 @@
},
"runtime": {
"name": "node",
- "version": "^24.18.0",
+ "version": "^24.19.0",
"onFail": "download"
}
},
@@ -38,7 +38,7 @@
},
"scripts": {
"prepare": "is-ci || husky",
- "postinstall": "pnpm intl:compile-if-needed",
+ "postinstall": "pnpm lexicons:generate && pnpm intl:compile-if-needed",
"prebuild": "EXPO_NO_GIT_STATUS=1 expo prebuild --clean",
"android": "expo run:android --variant debugOptimized",
"android:prod": "expo run:android --variant release",
@@ -62,6 +62,10 @@
"lint": "oxlint --quiet src modules",
"lint-native": "swiftlint ./modules && ktlint ./modules",
"lint-native:fix": "swiftlint --fix ./modules && ktlint --format ./modules",
+ "lexicons:generate": "lex build --clear --index-file --import-ext ''",
+ "lexicons:install": "lex install",
+ "lexicons:update": "lex install --update",
+ "lexicons:verify": "lex install --ci",
"typecheck": "pnpm run typecheck:ios && pnpm run typecheck:android && pnpm run typecheck:web",
"typecheck:ios": "tsc --project ./tsconfig.check.ios.json",
"typecheck:android": "tsc --project ./tsconfig.check.android.json",
@@ -96,9 +100,10 @@
"prettier": "prettier --check ."
},
"dependencies": {
- "@atproto/api": "0.20.39",
- "@atproto/common-web": "0.5.7",
- "@atproto/syntax": "0.7.2",
+ "@atproto/common-web": "0.5.9",
+ "@atproto/lex": "0.3.6",
+ "@atproto/lex-password-session": "0.2.0",
+ "@atproto/syntax": "0.7.4",
"@bitdrift/react-native": "^0.6.8",
"@braintree/sanitize-url": "^6.0.2",
"@bsky.app/alf": "^0.1.15",
@@ -113,6 +118,7 @@
"@bsky.app/tapper": "^0.6.1",
"@bsky.app/video": "0.3.6",
"@bsky.app/video-compressor": "0.2.0",
+ "@bsky/sdk": "1.0.1",
"@emoji-mart/data": "^1.2.1",
"@emoji-mart/react": "^1.1.1",
"@expo/html-elements": "^0.12.5",
@@ -159,43 +165,44 @@
"emoji-mart": "^5.6.0",
"emoji-regex": "^10.4.0",
"eventemitter3": "^5.0.1",
- "expo": "54.0.35",
- "expo-age-range": "0.2.18",
- "expo-application": "~7.0.8",
- "expo-asset": "~12.0.13",
- "expo-blur": "~15.0.8",
- "expo-build-properties": "~1.0.10",
- "expo-camera": "~17.0.10",
- "expo-clipboard": "~8.0.8",
- "expo-contacts": "^15.0.10",
- "expo-dev-client": "~6.0.20",
- "expo-device": "~8.0.10",
- "expo-file-system": "~19.0.21",
- "expo-font": "~14.0.11",
- "expo-glass-effect": "0.1.10",
- "expo-haptics": "~15.0.8",
- "expo-image": "~3.0.11",
- "expo-image-manipulator": "~14.0.8",
- "expo-image-picker": "~17.0.10",
- "expo-intent-launcher": "~13.0.8",
- "expo-keep-awake": "~15.0.8",
- "expo-linear-gradient": "~15.0.8",
- "expo-linking": "~8.0.11",
- "expo-localization": "~17.0.8",
- "expo-location": "~19.0.8",
- "expo-media-library": "~18.2.1",
- "expo-notifications": "~0.32.17",
+ "expo": "57.0.8",
+ "expo-age-range": "57.0.2",
+ "expo-application": "~57.0.2",
+ "expo-asset": "~57.0.7",
+ "expo-blur": "~57.0.2",
+ "expo-build-properties": "~57.0.7",
+ "expo-camera": "~57.0.3",
+ "expo-clipboard": "~57.0.1",
+ "expo-contacts": "^57.0.2",
+ "expo-dev-client": "~57.0.9",
+ "expo-device": "~57.0.1",
+ "expo-file-system": "~57.0.1",
+ "expo-font": "~57.0.1",
+ "expo-glass-effect": "57.0.1",
+ "expo-haptics": "~57.0.1",
+ "expo-image": "57.0.1",
+ "expo-image-manipulator": "~57.0.6",
+ "expo-image-picker": "~57.0.6",
+ "expo-intent-launcher": "~57.0.1",
+ "expo-keep-awake": "~57.0.1",
+ "expo-linear-gradient": "~57.0.1",
+ "expo-linking": "~57.0.4",
+ "expo-localization": "~57.0.1",
+ "expo-location": "~57.0.6",
+ "expo-media-library": "57.0.3",
+ "expo-modules-core": "57.0.8",
+ "expo-notifications": "57.0.7",
"expo-paste-input": "^0.2.1",
"expo-privacy-sensitive": "^0.2.0",
- "expo-screen-orientation": "~9.0.8",
- "expo-sharing": "~14.0.8",
- "expo-sms": "^14.0.7",
- "expo-splash-screen": "~31.0.13",
- "expo-system-ui": "~6.0.9",
- "expo-updates": "~29.0.17",
- "expo-video": "~3.0.16",
- "expo-video-thumbnails": "^10.0.8",
- "expo-web-browser": "~15.0.10",
+ "expo-screen-orientation": "~57.0.1",
+ "expo-sharing": "~57.0.7",
+ "expo-sms": "^57.0.1",
+ "expo-splash-screen": "~57.0.5",
+ "expo-system-ui": "~57.0.1",
+ "expo-updates": "57.0.10",
+ "expo-video": "~57.0.2",
+ "expo-video-thumbnails": "^57.0.1",
+ "expo-web-browser": "~57.0.2",
"fast-deep-equal": "^3.1.3",
"fast-text-encoding": "^1.0.6",
"fuse.js": "^7.1.0",
@@ -215,36 +222,36 @@
"normalize-url": "^8.0.0",
"psl": "1.9.0",
"radix-ui": "^1.4.3",
- "react": "19.1.0",
- "react-compiler-runtime": "19.1.0-rc.3",
- "react-dom": "19.1.0",
+ "react": "19.2.3",
+ "react-compiler-runtime": "1.0.0",
+ "react-dom": "19.2.3",
"react-hotkeys-hook": "5.2.4",
"react-image-crop": "^11.0.7",
"react-is": "19",
"react-keyed-flatten-children": "^5.0.0",
- "react-native": "0.81.5",
+ "react-native": "0.86.0",
"react-native-compressor": "1.13.0",
"react-native-date-picker": "^5.0.13",
"react-native-device-attest": "^0.1.6",
"react-native-drawer-layout": "^4.2.3",
"react-native-edge-to-edge": "^1.8.1",
- "react-native-gesture-handler": "~2.30.0",
- "react-native-keyboard-controller": "^1.21.8",
+ "react-native-gesture-handler": "~2.32.0",
+ "react-native-keyboard-controller": "1.21.9",
"react-native-mmkv": "^3.3.3",
"react-native-pager-view": "6.8.0",
"react-native-progress": "^5.0.1",
"react-native-qrcode-styled": "^0.3.3",
- "react-native-reanimated": "~4.3.2",
- "react-native-safe-area-context": "~5.6.0",
- "react-native-screens": "4.24.0",
+ "react-native-reanimated": "~4.5.3",
+ "react-native-safe-area-context": "~5.7.0",
+ "react-native-screens": "4.26.2",
"react-native-scroll-forwarder": "link:./modules/react-native-scroll-forwarder",
- "react-native-svg": "15.12.1",
+ "react-native-svg": "15.15.4",
"react-native-uuid": "^2.0.3",
- "react-native-view-shot": "^4.0.3",
+ "react-native-view-shot": "^5.1.0",
"react-native-web": "^0.21.0",
"react-native-web-webview": "^1.0.2",
- "react-native-webview": "^13.15.0",
- "react-native-worklets": "0.8.3",
+ "react-native-webview": "^13.16.1",
+ "react-native-worklets": "0.11.3",
"react-remove-scroll-bar": "^2.3.8",
"react-responsive": "^10.0.1",
"react-textarea-autosize": "^8.5.3",
@@ -266,7 +273,8 @@
"@lingui/babel-plugin-lingui-macro": "^5.9.2",
"@lingui/cli": "^5.9.2",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.15",
- "@react-native/babel-preset": "0.81.5",
+ "@react-native/babel-preset": "0.86.0",
+ "@react-native/jest-preset": "0.86.0",
"@react-native/typescript-config": "^0.81.5",
"@sentry/webpack-plugin": "^3.2.2",
"@testing-library/react-native": "^13.2.0",
@@ -275,16 +283,14 @@
"@types/lodash.debounce": "^4.0.7",
"@types/lodash.shuffle": "^4.2.7",
"@types/psl": "1.1.1",
- "@types/react": "^19.1.17",
- "@types/react-dom": "^19.1.11",
+ "@types/react": "^19.2.17",
+ "@types/react-dom": "^19.2.3",
"@typescript/native": "npm:typescript@^7.0.2",
"babel-jest": "^29.7.0",
"babel-plugin-module-resolver": "^5.0.2",
- "babel-plugin-react-compiler": "19.1.0-rc.3",
- "babel-preset-expo": "~54.0.10",
- "eslint-plugin-bsky-internal": "link:eslint",
- "eslint-plugin-react-compiler": "19.1.0-rc.2",
- "eslint-plugin-react-native": "^5.0.0",
+ "babel-plugin-react-compiler": "1.0.0",
+ "babel-preset-expo": "~57.0.4",
+ "eslint-plugin-bsky-internal": "link:lint-rules",
"eslint-plugin-react-native-a11y": "^3.5.1",
"eslint-plugin-simple-import-sort": "^13.0.0",
"file-loader": "6.2.0",
@@ -292,12 +298,12 @@
"husky": "^9.1.7",
"is-ci": "^3.0.1",
"jest": "^29.7.0",
- "jest-expo": "~54.0.17",
+ "jest-expo": "~57.0.2",
"jest-junit": "^16.0.0",
"lint-staged": "^17.0.8",
"oxlint": "^1.73.0",
"oxlint-tsgolint": "^7.0.2001",
- "prettier": "^3.8.3",
+ "prettier": "3.9.6",
"react-native-dotenv": "^3.4.11",
"react-refresh": "^0.14.0",
"svgo": "^4.0.2",
@@ -326,14 +332,17 @@
"^multiformats/cid$": "/node_modules/multiformats/dist/src/cid.js",
"^multiformats/bases/base32$": "/node_modules/multiformats/dist/src/bases/base32.js",
"^multiformats/hashes/digest$": "/node_modules/multiformats/dist/src/hashes/digest.js",
+ "^multiformats/hashes/hasher$": "/node_modules/multiformats/dist/src/hashes/hasher.js",
"^multiformats/hashes/sha2$": "/node_modules/multiformats/dist/src/hashes/sha2.js",
"^uint8arrays/from-string$": "/node_modules/uint8arrays/dist/src/from-string.js",
"^uint8arrays/to-string$": "/node_modules/uint8arrays/dist/src/to-string.js",
"^unicode-segmenter/grapheme$": "/node_modules/unicode-segmenter/grapheme.cjs",
- "^await-lock$": "/node_modules/await-lock/build/AwaitLock.js"
+ "^await-lock$": "/node_modules/await-lock/build/AwaitLock.js",
+ "^@ipld/dag-cbor$": "/node_modules/@ipld/dag-cbor/src/index.js",
+ "^cborg$": "/node_modules/cborg/cborg.js"
},
"transformIgnorePatterns": [
- "node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|nanoid|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|normalize-url|react-native-svg|@sentry/.*|sentry-expo|bcp-47-match|@atproto/.*|multiformats|uint8arrays|@ipld/.*|cborg|await-lock)"
+ "node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|nanoid|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|normalize-url|react-native-svg|@sentry/.*|sentry-expo|bcp-47-match|@atproto/.*|@bsky/sdk|tlds|multiformats|uint8arrays|@ipld/.*|cborg|await-lock)"
],
"modulePathIgnorePatterns": [
"__tests__/.*/__mocks__",
@@ -367,7 +376,7 @@
},
"lint-staged": {
"*{.js,.jsx,.ts,.tsx}": [
- "oxlint --fix"
+ "oxlint --fix --no-error-on-unmatched-pattern"
],
"*{.js,.jsx,.ts,.tsx,.css}": [
"prettier --cache --write --ignore-unknown"
diff --git a/patches/expo-age-range@0.2.18.patch b/patches/expo-age-range@57.0.2.patch
similarity index 100%
rename from patches/expo-age-range@0.2.18.patch
rename to patches/expo-age-range@57.0.2.patch
diff --git a/patches/expo-haptics@15.0.8.patch b/patches/expo-haptics@57.0.1.patch
similarity index 100%
rename from patches/expo-haptics@15.0.8.patch
rename to patches/expo-haptics@57.0.1.patch
diff --git a/patches/expo-haptics@15.0.8.patch.md b/patches/expo-haptics@57.0.1.patch.md
similarity index 100%
rename from patches/expo-haptics@15.0.8.patch.md
rename to patches/expo-haptics@57.0.1.patch.md
diff --git a/patches/expo-image-picker@17.0.11.patch b/patches/expo-image-picker@17.0.11.patch
deleted file mode 100644
index 9ee0f51cad..0000000000
--- a/patches/expo-image-picker@17.0.11.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff --git a/ios/MediaHandler.swift b/ios/MediaHandler.swift
-index 6e4fbe1b3921173a1cc4e6eff626b0749e8bab14..e334abb680a8965acb1f6bbdfbc1325ad35edf3a 100644
---- a/ios/MediaHandler.swift
-+++ b/ios/MediaHandler.swift
-@@ -310,10 +310,12 @@ internal struct MediaHandler {
- let fileExtension = getFileExtension(from: originalFilename)
- let destinationUrl = try generateUrl(withFileExtension: fileExtension)
-
-+ let resourceOptions = PHAssetResourceRequestOptions()
-+ resourceOptions.isNetworkAccessAllowed = true
- try await PHAssetResourceManager.default().writeData(
- for: resource,
- toFile: destinationUrl,
-- options: nil
-+ options: resourceOptions
- )
-
- let mimeType = getMimeType(from: destinationUrl.pathExtension)
-@@ -389,7 +391,9 @@ internal struct MediaHandler {
-
- // Stream the resource into our cache directory. This API is asynchronous but doesn't require
- // a temporary file like `loadFileRepresentation`.
-- try await PHAssetResourceManager.default().writeData(for: resource, toFile: destinationUrl, options: nil)
-+ let resourceOptions = PHAssetResourceRequestOptions()
-+ resourceOptions.isNetworkAccessAllowed = true
-+ try await PHAssetResourceManager.default().writeData(for: resource, toFile: destinationUrl, options: resourceOptions)
-
- // Build and return the result using the helper.
- let mimeType = getMimeType(from: destinationUrl.pathExtension)
diff --git a/patches/expo-image-picker@17.0.11.patch.md b/patches/expo-image-picker@17.0.11.patch.md
deleted file mode 100644
index 0cf5f5988a..0000000000
--- a/patches/expo-image-picker@17.0.11.patch.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# `expo-image-picker` patch
-
-Patches this issue: https://github.com/expo/expo/issues/39937
-
-Source: https://github.com/expo/expo/issues/39937#issuecomment-3342082239
diff --git a/patches/expo-image@3.0.11.patch b/patches/expo-image@3.0.11.patch
deleted file mode 100644
index c132d6869e..0000000000
--- a/patches/expo-image@3.0.11.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-diff --git a/build/Image.types.d.ts b/build/Image.types.d.ts
-index 022ae487e65ae9d624f8a4be262b01944928f250..416504fe18ecd00fdc713faca23485fb292caf2c 100644
---- a/build/Image.types.d.ts
-+++ b/build/Image.types.d.ts
-@@ -152,6 +152,16 @@ export interface ImageProps extends Omit {
- * @default 'normal'
- */
- priority?: 'low' | 'normal' | 'high' | null;
-+ /**
-+ * The loading behavior for the image. Maps to the native HTML `loading` attribute on web.
-+ *
-+ * - `'lazy'` - Defers loading until the image is near the viewport.
-+ * - `'eager'` - Loads the image immediately.
-+ *
-+ * @default undefined
-+ * @platform web
-+ */
-+ loading?: 'lazy' | 'eager' | null;
- /**
- * Determines whether to cache the image and where: on the disk, in the memory or both.
- *
-diff --git a/src/ExpoImage.web.tsx b/src/ExpoImage.web.tsx
-index 2a49ff00649b374b86fa780653a4b0d6f13a4a57..1c3de93ef280bf6f3c27bed34c794b8ff59e3db3 100644
---- a/src/ExpoImage.web.tsx
-+++ b/src/ExpoImage.web.tsx
-@@ -70,6 +70,7 @@ export default function ExpoImage({
- onLoadEnd,
- onDisplay,
- priority,
-+ loading,
- blurRadius,
- recyclingKey,
- style,
-@@ -118,6 +119,7 @@ export default function ExpoImage({
- accessibilityLabel={accessibilityLabel ?? alt}
- cachePolicy={cachePolicy}
- priority={priority}
-+ loading={loading}
- tintColor={tintColor}
- />
- ),
-@@ -149,6 +151,7 @@ export default function ExpoImage({
- className={className}
- cachePolicy={cachePolicy}
- priority={priority}
-+ loading={loading}
- contentPosition={selectedSource ? contentPosition : { top: '50%', left: '50%' }}
- hashPlaceholderContentPosition={contentPosition}
- hashPlaceholderStyle={imageHashStyle}
-diff --git a/src/Image.types.ts b/src/Image.types.ts
-index 9dec0e7aee61dfaa73a3cfa535d08259c9dad209..61c162114977dff35b633ac6b1f3d59e373bbbfe 100644
---- a/src/Image.types.ts
-+++ b/src/Image.types.ts
-@@ -178,6 +178,17 @@ export interface ImageProps extends Omit {
- */
- priority?: 'low' | 'normal' | 'high' | null;
-
-+ /**
-+ * The loading behavior for the image. Maps to the native HTML `loading` attribute on web.
-+ *
-+ * - `'lazy'` - Defers loading until the image is near the viewport.
-+ * - `'eager'` - Loads the image immediately.
-+ *
-+ * @default undefined
-+ * @platform web
-+ */
-+ loading?: 'lazy' | 'eager' | null;
-+
- /**
- * Determines whether to cache the image and where: on the disk, in the memory or both.
- *
-diff --git a/src/web/ImageWrapper.tsx b/src/web/ImageWrapper.tsx
-index e8f891d525892f8d3668e34cf96cefccfbfc49f6..89a5cb1e3a8574fc3bd1d0361895a610e3165dfb 100644
---- a/src/web/ImageWrapper.tsx
-+++ b/src/web/ImageWrapper.tsx
-@@ -30,6 +30,7 @@ const ImageWrapper = React.forwardRef(
- contentPosition,
- hashPlaceholderContentPosition,
- priority,
-+ loading,
- style,
- hashPlaceholderStyle,
- tintColor,
-@@ -82,6 +83,7 @@ const ImageWrapper = React.forwardRef(
- // @ts-ignore
- // eslint-disable-next-line react/no-unknown-property
- fetchPriority={getFetchPriorityFromImagePriority(priority || 'normal')}
-+ loading={loading || undefined}
- {...getImageWrapperEventHandler(events, sourceWithHeaders)}
- {...getImgPropsFromSource(source)}
- {...props}
-diff --git a/src/web/ImageWrapper.types.ts b/src/web/ImageWrapper.types.ts
-index 19bbe2f15999124cda0ca7c81b3ebcf289f522f8..179837f803a3d315c85075895f4191631b37eda7 100644
---- a/src/web/ImageWrapper.types.ts
-+++ b/src/web/ImageWrapper.types.ts
-@@ -29,6 +29,7 @@ export type ImageWrapperProps = {
- contentPosition?: ImageContentPositionObject;
- hashPlaceholderContentPosition?: ImageContentPositionObject;
- priority?: string | null;
-+ loading?: 'lazy' | 'eager' | null;
- style: CSSProperties;
- tintColor?: string | null;
- hashPlaceholderStyle?: CSSProperties;
diff --git a/patches/expo-image@3.0.11.patch.md b/patches/expo-image@3.0.11.patch.md
deleted file mode 100644
index ca597c4bbe..0000000000
--- a/patches/expo-image@3.0.11.patch.md
+++ /dev/null
@@ -1,3 +0,0 @@
-## Expo Image
-
-Patches in https://github.com/expo/expo/pull/41442
diff --git a/patches/expo-media-library@18.2.1.patch b/patches/expo-media-library@57.0.3.patch
similarity index 100%
rename from patches/expo-media-library@18.2.1.patch
rename to patches/expo-media-library@57.0.3.patch
diff --git a/patches/expo-media-library@18.2.1.patch.md b/patches/expo-media-library@57.0.3.patch.md
similarity index 100%
rename from patches/expo-media-library@18.2.1.patch.md
rename to patches/expo-media-library@57.0.3.patch.md
diff --git a/patches/expo-modules-core@3.0.30.patch b/patches/expo-modules-core@3.0.30.patch
deleted file mode 100644
index 1be4787a22..0000000000
--- a/patches/expo-modules-core@3.0.30.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-diff --git a/android/src/main/java/expo/modules/kotlin/devtools/ExpoNetworkInspectOkHttpInterceptors.kt b/android/src/main/java/expo/modules/kotlin/devtools/ExpoNetworkInspectOkHttpInterceptors.kt
-index 47c4d15f6b10bbd77858cfff425cda9a618735b9..afe138d22d566244482498a7be0e14b8454eab96 100644
---- a/android/src/main/java/expo/modules/kotlin/devtools/ExpoNetworkInspectOkHttpInterceptors.kt
-+++ b/android/src/main/java/expo/modules/kotlin/devtools/ExpoNetworkInspectOkHttpInterceptors.kt
-@@ -125,6 +125,10 @@ internal fun peekResponseBody(
- }
-
- internal fun shouldParseBody(response: Response): Boolean {
-+ if (response.request.url.encodedPath == "/bitdrift_public.protobuf.client.v1.ApiService/Mux") {
-+ return false
-+ }
-+
- // Check for Content-Type
- val skipContentTypes = listOf(
- "text/event-stream", // Server Sent Events
-diff --git a/ios/Core/ExpoBridgeModule.mm b/ios/Core/ExpoBridgeModule.mm
-index 2ed1c00f47406e109750cc27ace7e0d88e42c00e..99d0d140eddf95a8db7beb57c61dfcb12c1424b4 100644
---- a/ios/Core/ExpoBridgeModule.mm
-+++ b/ios/Core/ExpoBridgeModule.mm
-@@ -7,6 +7,9 @@
- // The runtime executor is included as of React Native 0.74 in bridgeless mode.
- #if __has_include()
- #import
-+#else // React Native <0.74
-+// dispatchBlock:queue: is declared in RCTBridge+Private.h, not the public header.
-+#import
- #endif // React Native >=0.74
-
- @implementation ExpoBridgeModule
-@@ -46,7 +49,20 @@ - (void)setBridge:(RCTBridge *)bridge
- _appContext.reactBridge = bridge;
-
- #if !__has_include()
-- _appContext._runtime = [EXJavaScriptRuntimeManager runtimeFromBridge:bridge];
-+ // Hop the runtime install (and the prepareRuntime() chain it triggers via
-+ // _runtime.didSet) onto RCTJSThread. The original line ran synchronously
-+ // on whatever thread called setBridge: - typically the main thread - and
-+ // raced JSIExecutor::initializeRuntime() on the JS thread, corrupting
-+ // Hermes' Hades GC (HadesGC::writeBarrierSlow EXC_BAD_ACCESS).
-+ __weak EXAppContext *weakAppContext = _appContext;
-+ __weak RCTBridge *weakBridge = bridge;
-+ [bridge dispatchBlock:^{
-+ EXAppContext *strongAppContext = weakAppContext;
-+ RCTBridge *strongBridge = weakBridge;
-+ if (strongAppContext != nil && strongBridge != nil && strongAppContext._runtime == nil) {
-+ strongAppContext._runtime = [EXJavaScriptRuntimeManager runtimeFromBridge:strongBridge];
-+ }
-+ } queue:RCTJSThread];
- #endif // React Native <0.74
- }
-
diff --git a/patches/expo-modules-core@3.0.30.patch.md b/patches/expo-modules-core@3.0.30.patch.md
deleted file mode 100644
index 3ce964a7a9..0000000000
--- a/patches/expo-modules-core@3.0.30.patch.md
+++ /dev/null
@@ -1,26 +0,0 @@
-## expo-modules-core Patch
-
-This patch contains two unrelated fixes:
-
-### Android: bitdrift interceptor
-
-Fixes an issue where bitdrift's API stream gets blocked by the Expo interceptor used to power the devtools.
-
-### iOS: Hermes startup race in `ExpoBridgeModule.setBridge:`
-
-On the legacy bridge (old architecture, where `RCTRuntimeExecutor.h` is
-absent), `setBridge:` installed the Expo runtime synchronously on whatever
-thread called it - typically the main thread, since RN's lazy module-load
-path ignores `+requiresMainQueueSetup`. The `_runtime.didSet` then ran
-`prepareRuntime()` (JSI mutations) on the main thread while the JS thread was
-concurrently inside `JSIExecutor::initializeRuntime()`. Two threads mutating
-the same Hermes runtime corrupted Hades GC, producing intermittent
-`EXC_BAD_ACCESS` launch crashes (e.g. `HadesGC::writeBarrierSlow`,
-`prepareRuntime` / `bindNativePerformanceNow`).
-
-The fix hops the runtime install onto `RCTJSThread` so all JSI mutation is
-serialized on the JS thread. This backports the upstream fix discussed in
-expo/expo#45374; the racy `ExpoBridgeModule` is removed entirely in SDK 55+
-(expo/expo#44351), so this patch can be dropped on that upgrade.
-
-Refs: expo/expo#43003, expo/expo#45374, expo/expo#44351
diff --git a/patches/expo-modules-core@57.0.8.patch b/patches/expo-modules-core@57.0.8.patch
new file mode 100644
index 0000000000..7de1337aac
--- /dev/null
+++ b/patches/expo-modules-core@57.0.8.patch
@@ -0,0 +1,15 @@
+diff --git a/android/src/main/java/expo/modules/kotlin/devtools/ExpoNetworkInspectOkHttpInterceptors.kt b/android/src/main/java/expo/modules/kotlin/devtools/ExpoNetworkInspectOkHttpInterceptors.kt
+index 47c4d15f6b10bbd77858cfff425cda9a618735b9..afe138d22d566244482498a7be0e14b8454eab96 100644
+--- a/android/src/main/java/expo/modules/kotlin/devtools/ExpoNetworkInspectOkHttpInterceptors.kt
++++ b/android/src/main/java/expo/modules/kotlin/devtools/ExpoNetworkInspectOkHttpInterceptors.kt
+@@ -125,6 +125,10 @@ internal fun peekResponseBody(
+ }
+
+ internal fun shouldParseBody(response: Response): Boolean {
++ if (response.request.url.encodedPath == "/bitdrift_public.protobuf.client.v1.ApiService/Mux") {
++ return false
++ }
++
+ // Check for Content-Type
+ val skipContentTypes = listOf(
+ "text/event-stream", // Server Sent Events
diff --git a/patches/expo-modules-core@57.0.8.patch.md b/patches/expo-modules-core@57.0.8.patch.md
new file mode 100644
index 0000000000..56ba6d08bf
--- /dev/null
+++ b/patches/expo-modules-core@57.0.8.patch.md
@@ -0,0 +1,5 @@
+## expo-modules-core Patch
+
+### Android: bitdrift interceptor
+
+Fixes an issue where bitdrift's API stream gets blocked by the Expo interceptor used to power the devtools.
diff --git a/patches/expo-notifications@0.32.17.patch b/patches/expo-notifications@57.0.7.patch
similarity index 93%
rename from patches/expo-notifications@0.32.17.patch
rename to patches/expo-notifications@57.0.7.patch
index a0d8e74f65..26ead3bc35 100644
--- a/patches/expo-notifications@0.32.17.patch
+++ b/patches/expo-notifications@57.0.7.patch
@@ -1,9 +1,9 @@
diff --git a/android/build.gradle b/android/build.gradle
-index 7db47bdf190b0790c7bf867fbcfeb594005861be..0f868153edd6ec557730531f61dba7bf26a71742 100644
+index 18a1c56507a1c0da7eb3b6e1f80a1f25a0a8f171..305e10998b99d0c0256930de669e51b5ba4c98c4 100644
--- a/android/build.gradle
+++ b/android/build.gradle
-@@ -42,6 +42,7 @@ dependencies {
- implementation 'com.google.firebase:firebase-messaging:24.0.1'
+@@ -43,6 +43,7 @@ dependencies {
+ implementation 'com.google.firebase:firebase-messaging:25.0.1'
implementation 'me.leolin:ShortcutBadger:1.1.22@aar'
+ implementation project(':expo-background-notification-handler')
@@ -124,7 +124,7 @@ index 610d3039cefd589647538ad8ba14587d29fab338..3655fc3121ebc0a97820d9653b61a90b
builder.setContentText(content.text)
builder.setSubText(content.subText)
diff --git a/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt b/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt
-index 90ca4ff35132b33dcccb80b90d68572506fef603..9d4cb09b35844805d543acff54772380c732c02c 100644
+index eecdae82e99d2997687e3f3e199c94c3aeffbfe0..216891213fb2eac5a9a382b4f075eadccdcfeb5a 100644
--- a/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt
+++ b/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt
@@ -3,6 +3,9 @@ package expo.modules.notifications.service.delegates
@@ -137,16 +137,16 @@ index 90ca4ff35132b33dcccb80b90d68572506fef603..9d4cb09b35844805d543acff54772380
import expo.modules.interfaces.taskManager.TaskServiceProviderHelper
import expo.modules.notifications.notifications.RemoteMessageSerializer
import expo.modules.notifications.notifications.background.BackgroundRemoteNotificationTaskConsumer
-@@ -18,7 +21,7 @@ import expo.modules.notifications.tokens.interfaces.FirebaseTokenListener
- import java.lang.ref.WeakReference
+@@ -17,7 +20,7 @@ import expo.modules.notifications.service.interfaces.FirebaseMessagingDelegate
+ import expo.modules.notifications.tokens.interfaces.FirebaseTokenListener
import java.util.*
-open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseMessagingDelegate {
+open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseMessagingDelegate, BackgroundNotificationHandlerInterface{
companion object {
// Unfortunately we cannot save state between instances of a service other way
- // than by static properties. Fortunately, using weak references we can
-@@ -105,8 +108,19 @@ open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseM
+ // than by static properties.
+@@ -109,8 +112,19 @@ open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseM
DebugLogging.logRemoteMessage("FirebaseMessagingDelegate.onMessageReceived: message", remoteMessage)
val notification = createNotification(remoteMessage)
DebugLogging.logNotification("FirebaseMessagingDelegate.onMessageReceived: notification", notification)
diff --git a/patches/expo-notifications@0.32.17.patch.md b/patches/expo-notifications@57.0.7.patch.md
similarity index 100%
rename from patches/expo-notifications@0.32.17.patch.md
rename to patches/expo-notifications@57.0.7.patch.md
diff --git a/patches/expo-updates@29.0.17.patch b/patches/expo-updates@57.0.10.patch
similarity index 100%
rename from patches/expo-updates@29.0.17.patch
rename to patches/expo-updates@57.0.10.patch
diff --git a/patches/expo-updates@29.0.17.patch.md b/patches/expo-updates@57.0.10.patch.md
similarity index 100%
rename from patches/expo-updates@29.0.17.patch.md
rename to patches/expo-updates@57.0.10.patch.md
diff --git a/patches/expo@57.0.8.patch b/patches/expo@57.0.8.patch
new file mode 100644
index 0000000000..0a6a4bf13d
--- /dev/null
+++ b/patches/expo@57.0.8.patch
@@ -0,0 +1,97 @@
+diff --git a/build/winter/runtime.native.d.ts b/build/winter/runtime.native.d.ts
+index 85c4227e4e37003dd3769a590e73a69874de5fac..e389ca8edd2310df9ce29684991465c275e804c5 100644
+--- a/build/winter/runtime.native.d.ts
++++ b/build/winter/runtime.native.d.ts
+@@ -1,3 +1,2 @@
+ import 'react-native/Libraries/Core/InitializeCore';
+-import '../../types';
+ //# sourceMappingURL=runtime.native.d.ts.map
+\ No newline at end of file
+diff --git a/src/winter/fetch/RequestUtils.ts b/src/winter/fetch/RequestUtils.ts
+index a93473fd2beaf2ab0f3880951d292e58e7288d10..c27911bd5cb56ba6051fb8ebf4194cced43bc0fd 100644
+--- a/src/winter/fetch/RequestUtils.ts
++++ b/src/winter/fetch/RequestUtils.ts
+@@ -50,7 +50,11 @@ function isBlob(obj: any): obj is Blob {
+ */
+ export async function normalizeBodyInitAsync(
+ body: BodyInit | null | undefined
+-): Promise<{ body: Uint8Array | null; overriddenHeaders?: NativeHeadersType }> {
++): Promise<{
++ body: Uint8Array | null;
++ overriddenHeaders?: NativeHeadersType;
++ fallbackHeaders?: NativeHeadersType;
++}> {
+ if (body == null) {
+ return { body: null };
+ }
+@@ -71,7 +75,12 @@ export async function normalizeBodyInitAsync(
+ if (body instanceof Blob || isBlob(body)) {
+ return {
+ body: new Uint8Array(await blobToArrayBufferAsync(body)),
+- overriddenHeaders: [['Content-Type', body.type]],
++ /*
++ * Per the fetch spec, a blob's type is only a default for Content-Type:
++ * it must not replace a header the caller set explicitly, and an empty
++ * type contributes no header at all.
++ */
++ fallbackHeaders: body.type ? [['Content-Type', body.type]] : undefined,
+ };
+ }
+
+@@ -137,6 +146,25 @@ export function overrideHeaders(
+ return result;
+ }
+
++/**
++ * Create a new header array by adding new headers only for keys not already
++ * present (by case-insensitive header key). Used for body-derived defaults
++ * that must not replace caller-provided headers.
++ */
++export function fillMissingHeaders(
++ headers: NativeHeadersType,
++ newHeaders: NativeHeadersType
++): NativeHeadersType {
++ const existingKeySet = new Set(headers.map(([key]) => key.toLocaleLowerCase()));
++ const result: NativeHeadersType = [...headers];
++ for (const [key, value] of newHeaders) {
++ if (!existingKeySet.has(key.toLocaleLowerCase())) {
++ result.push([key, value]);
++ }
++ }
++ return result;
++}
++
+ /** Normalizes known HTTP methods to uppercase */
+ export function normalizeMethod(method: string): string {
+ const normalized = method.toUpperCase();
+diff --git a/src/winter/fetch/fetch.ts b/src/winter/fetch/fetch.ts
+index ac789c024c96379e239bf44903c47e6a8e540d63..4f953b845c145de02976e8162ba2f63f8bd4dfd5 100644
+--- a/src/winter/fetch/fetch.ts
++++ b/src/winter/fetch/fetch.ts
+@@ -3,6 +3,7 @@ import { FetchError } from './FetchErrors';
+ import { FetchResponse, type AbortSubscriptionCleanupFunction } from './FetchResponse';
+ import type { NativeRequest, NativeRequestInit } from './NativeRequest';
+ import {
++ fillMissingHeaders,
+ normalizeBodyInitAsync,
+ normalizeHeadersInit,
+ overrideHeaders,
+@@ -62,10 +63,17 @@ export async function fetch(
+
+ const request = new ExpoFetchModule.NativeRequest(response) as NativeRequest;
+
+- const { body: requestBody, overriddenHeaders } = await normalizeBodyInitAsync(body);
++ const {
++ body: requestBody,
++ overriddenHeaders,
++ fallbackHeaders,
++ } = await normalizeBodyInitAsync(body);
+ if (overriddenHeaders) {
+ headers = overrideHeaders(headers, overriddenHeaders);
+ }
++ if (fallbackHeaders) {
++ headers = fillMissingHeaders(headers, fallbackHeaders);
++ }
+
+ const nativeRequestInit: NativeRequestInit = {
+ credentials: credentials ?? 'include',
diff --git a/patches/expo@57.0.8.patch.md b/patches/expo@57.0.8.patch.md
new file mode 100644
index 0000000000..4b2f98ea29
--- /dev/null
+++ b/patches/expo@57.0.8.patch.md
@@ -0,0 +1,56 @@
+# expo
+
+## build/winter/runtime.native.d.ts
+
+Type-check-only change; no runtime impact (only a `.d.ts` is modified).
+
+Expo 57 added `import '../../types'` to `build/winter/runtime.native.d.ts`
+(in Expo 54 the file was an empty `export {}`). That pulls
+`expo/types/react-native-web.d.ts` into every native type-check pass via the
+chain `expo/build/Expo.fx.d.ts -> ./winter -> runtime.native.d.ts ->
+expo/types/index.d.ts`.
+
+`react-native-web.d.ts` augments react-native's `TextStyle` with web-only
+props, including `cursor?: string`, which conflicts with react-native 0.86's
+own `cursor?: CursorValue`. The merged declaration makes `TextStyle` no
+longer assignable to `ViewStyle`, which in turn poisons `StyleSheet.create`
+inference (values widen to `ViewStyle | TextStyle | ImageStyle`) and produced
+~60 errors in `pnpm typecheck:ios` / `typecheck:android`.
+
+The patch drops the `import '../../types'` line so the web-only augmentation
+stays out of the native passes, matching Expo 54 behavior. The web pass is
+unaffected: it resolves `runtime.d.ts` (not `.native`), which never had this
+import.
+
+Can be removed if Expo stops referencing `./react-native-web` from the types
+loaded by the native winter runtime, or guards the augmentation to web.
+
+## src/winter/fetch/RequestUtils.ts + fetch.ts - Blob body must not clobber an explicit Content-Type
+
+Expo 57 installs `expo/fetch` as the global `fetch` on native
+(`src/winter/runtime.native.ts`), replacing React Native's whatwg-fetch. When
+the request body is a Blob, `normalizeBodyInitAsync` returned
+`overriddenHeaders: [['Content-Type', blob.type]]`, which `fetch.ts` applied
+*over* the caller's headers (introduced in expo/expo#33405). This is backwards
+per the fetch spec: a blob's type is only a default, used when no Content-Type
+was provided, and an empty type must contribute no header at all.
+
+In this app it broke publishing posts with any image blob on Android. The
+composer uploads via `agent.uploadBlob(blob, {encoding})`; `@atproto/xrpc`
+sets `content-type: ` explicitly, but the blob comes from an XHR
+`file://` read of a `.bin`-renamed jpeg (the RN#27099 workaround in
+`src/lib/api/upload-blob.ts`), for which Android's BlobModule returns an empty
+mime. expo/fetch replaced the good header with the empty blob type and the PDS
+rejected the upload with "Request encoding (Content-Type) required but not
+provided". Also silently rewrote the intended mime on every other blob upload
+(avatars, banners, caption files) even when the blob type was non-empty.
+
+The patch splits body-derived headers into two channels: FormData keeps
+`overriddenHeaders` (its boundary header must win), while the Blob branch
+returns new `fallbackHeaders` (skipped entirely when `blob.type` is empty)
+that `fetch.ts` applies via `fillMissingHeaders` only for header keys the
+caller did not set. This matches browser behavior.
+
+Upstream: expo/expo#33405 introduced the override; the SDK 58 Request rewrite
+(expo/expo#46630) is expected to make this spec-compliant, so re-evaluate on
+the next SDK bump. Worth filing an issue against expo/expo referencing this.
diff --git a/patches/react-native-dotenv@3.4.11.patch b/patches/react-native-dotenv@3.4.11.patch
new file mode 100644
index 0000000000..00a71aa9e2
--- /dev/null
+++ b/patches/react-native-dotenv@3.4.11.patch
@@ -0,0 +1,20 @@
+diff --git a/index.js b/index.js
+index 49b3650..a690ec8 100644
+--- a/index.js
++++ b/index.js
+@@ -153,6 +153,15 @@ module.exports = function(api, options = {}) {
+ const key = path.toComputedKey()
+ if (t.isStringLiteral(key)) {
+ const importedId = key.value
++ // Metro uses Jest workers to transform application code. Do not
++ // leak the build worker's ID into the application runtime, where
++ // libraries can mistake it for an actual test environment.
++ if (
++ importedId === 'JEST_WORKER_ID' ||
++ importedId === 'VITEST_WORKER_ID'
++ ) {
++ return
++ }
+ const value = (env && importedId in env) ? env[importedId] : process.env[importedId]
+ if (value !== undefined) {
+ path.replaceWith(t.valueToNode(value))
diff --git a/patches/react-native-dotenv@3.4.11.patch.md b/patches/react-native-dotenv@3.4.11.patch.md
new file mode 100644
index 0000000000..9a9a891f7a
--- /dev/null
+++ b/patches/react-native-dotenv@3.4.11.patch.md
@@ -0,0 +1,4 @@
+# react-native-dotenv@3.4.11.patch
+
+Avoid inlining Metro's `JEST_WORKER_ID` or `VITEST_WORKER_ID` into application
+code, which causes libraries such as react-native-mmkv to use test-only mocks.
diff --git a/patches/react-native-gesture-handler.patch b/patches/react-native-gesture-handler.patch
deleted file mode 100644
index b8a22cf6a5..0000000000
--- a/patches/react-native-gesture-handler.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/apple/RNGestureHandler.mm b/apple/RNGestureHandler.mm
-index c4f760c41a9965245edcfa5e7cb781f8d2c7b66a..bf7d1fb092e22cbcedf787e606876e533879f810 100644
---- a/apple/RNGestureHandler.mm
-+++ b/apple/RNGestureHandler.mm
-@@ -470,15 +470,19 @@ + (RNGestureHandler *)findGestureHandlerByRecognizer:(UIGestureRecognizer *)reco
-
- // We may try to extract "DummyGestureHandler" in case when "otherGestureRecognizer" belongs to
- // a native view being wrapped with "NativeViewGestureHandler"
-- RNGHUIView *reactView = recognizer.view;
-- while (reactView != nil && reactView.reactTag == nil) {
-- reactView = reactView.superview;
-- }
-+ RNGHUIView *view = recognizer.view;
-+ while (view != nil) {
-+ for (UIGestureRecognizer *candidateRecognizer in view.gestureRecognizers) {
-+ if ([candidateRecognizer isKindOfClass:[RNDummyGestureRecognizer class]]) {
-+ return candidateRecognizer.gestureHandler;
-+ }
-+ }
-
-- for (UIGestureRecognizer *recognizer in reactView.gestureRecognizers) {
-- if ([recognizer isKindOfClass:[RNDummyGestureRecognizer class]]) {
-- return recognizer.gestureHandler;
-+ if ([view isKindOfClass:[RCTViewComponentView class]]) {
-+ return nil;
- }
-+
-+ view = view.superview;
- }
-
- return nil;
diff --git a/patches/react-native-gesture-handler.patch.md b/patches/react-native-gesture-handler.patch.md
deleted file mode 100644
index 557823a23b..0000000000
--- a/patches/react-native-gesture-handler.patch.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# react-native-gesture-handler.patch
-
-Updated `findGestureHandlerByRecognizer:` in `apple/RNGestureHandler.mm` to the version from RN GH 2.32.0
-
-This fixes `UIContextMenuInteraction` from `ExpoBlueskyPeekMenuView.swift`. https://github.com/software-mansion/react-native-gesture-handler/commit/fba4dcc06d71dce08b10b2afc738a2af5b01e86a
diff --git a/patches/react-native-keyboard-controller@1.21.8.patch b/patches/react-native-keyboard-controller@1.21.9.patch
similarity index 100%
rename from patches/react-native-keyboard-controller@1.21.8.patch
rename to patches/react-native-keyboard-controller@1.21.9.patch
diff --git a/patches/react-native-reanimated@4.3.2.patch.md b/patches/react-native-reanimated@4.3.2.patch.md
deleted file mode 100644
index 3a5281702e..0000000000
--- a/patches/react-native-reanimated@4.3.2.patch.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# react-native-reanimated@4.3.2.patch
-
-Backports of two merged upstream PRs:
-
-1. PR 9901 (`LayoutAnimation.configureNext` compatibility)
-2. PR 9971 (stale `settledProps` on worklet re-animation / after app resume)
-
-## 1. Backport of PR 9901
-
-Backport of https://github.com/software-mansion/react-native-reanimated/pull/9901
-("refactor(LayoutAnimations): stop taking over UIManagerAnimationDelegate").
-
-Reanimated's legacy `LayoutAnimationsProxy_Legacy` registered itself as the
-`UIManagerAnimationDelegate` only to receive `stopSurface`. Occupying that slot
-overwrites the `LayoutAnimationDriver` that React Native installs there, which
-silently breaks `LayoutAnimation.configureNext` for the whole app.
-
-The patch makes the proxy detect surface teardown itself via a
-`UIManagerCommitHook` (a commit with an empty root marks the surface in
-`surfacesToRemove_`), frees the animation-delegate slot, and drops final
-keyframe `Update` mutations for views deleted in the same transaction (a
-deterministic `configureNext` delete-animation crash found in this app).
-`uiManager` moves from Android-only to shared constructor args since the hook
-registration needs it on both platforms.
-
-Only the `packages/react-native-reanimated` part of the PR is included (the
-`apps/fabric-example` hunk is not part of the published package), and the
-include hunk in `LayoutAnimationsProxy_Legacy.cpp` was adjusted to the 4.3.2
-release sources.
-
-## 2. Backport of PR 9971 (stale `settledProps`)
-
-Verbatim application of
-https://github.com/software-mansion/react-native-reanimated/pull/9971, the
-4.3-stable cherry-pick of
-https://github.com/software-mansion/react-native-reanimated/pull/9527
-("Fix stale settledProps on worklet re-animation"). Fixes the Android DM
-composer "phantom jump"
-(https://github.com/software-mansion/react-native-reanimated/issues/9574).
-
-Background: with `FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS`, once an
-animation settles its final props are handed to JS (polled every 500 ms by
-`PropsRegistryGarbageCollector`) and stored in React component state
-(`settledProps`), after which the React-side snapshot becomes the sole owner
-of the value.
-
-The PR replaces `getUpdatesOlderThanTimestamp` (which evicted registry
-entries on a wall-clock 1 s/2 s window) with `collectSettledUpdates`:
-
-- `syncedTags_` / `invalidatedTags_` track which tags React already has a
- snapshot for; when a previously-synced view re-animates, its stale snapshot
- is refreshed on the next GC tick instead of waiting for the new value to
- settle.
-- Eviction is no longer time-based. An entry is only evicted on the tick
- *after* it was returned to JS (once its `settledProps` commit is
- guaranteed), so a missed timer window (app backgrounded, JS thread blocked)
- can no longer destroy a settled value before it reaches React. This
- replaces the ad-hoc eviction guard an earlier version of this patch added
- on top of the pre-merge PR 9527.
-- `PropsRegistryGarbageCollector` drops the separate `viewsCount` counter
- (which could desync when nested animated components unregister a tag that
- was never registered, stopping the GC interval while views remain) in favor
- of `viewsMap.size`. Only `src/` is touched, matching the PR; Metro bundles
- the app from `src/` via the package's `react-native` field, and the stale
- `lib/` copy is unreachable (the feature is native-only).
diff --git a/patches/react-native-reanimated@4.3.2.patch b/patches/react-native-reanimated@4.5.3.patch
similarity index 53%
rename from patches/react-native-reanimated@4.3.2.patch
rename to patches/react-native-reanimated@4.5.3.patch
index bc517898b5..859f9bc2b4 100644
--- a/patches/react-native-reanimated@4.3.2.patch
+++ b/patches/react-native-reanimated@4.5.3.patch
@@ -1,160 +1,8 @@
-diff --git a/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.cpp b/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.cpp
-index 531f0dc7b4eeb9b29cb2255d8444da02a74c35b7..534f419fce55c39a09a7eebfb7ab3c53f8a16637 100644
---- a/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.cpp
-+++ b/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.cpp
-@@ -1,8 +1,10 @@
- #include
- #include
-
-+#include
- #include
- #include
-+#include
-
- namespace reanimated {
-
-@@ -25,25 +27,59 @@ void AnimatedPropsRegistry::update(jsi::Runtime &rt, const jsi::Value &operation
- addUpdatesToBatch(shadowNode, jsi::dynamicFromValue(rt, updates));
-
- if constexpr (StaticFeatureFlags::getFlag("FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS")) {
-- timestampMap_[shadowNode->getTag()] = timestamp;
-+ const auto tag = shadowNode->getTag();
-+ timestampMap_[tag] = timestamp;
-+ // If JS already has a `settledProps` snapshot for this tag, it is now
-+ // stale — schedule a refresh on the next `collectSettledUpdates`.
-+ if (syncedTags_.erase(tag) > 0) {
-+ invalidatedTags_.insert(tag);
-+ }
- }
- }
- }
-
--jsi::Value AnimatedPropsRegistry::getUpdatesOlderThanTimestamp(
-- jsi::Runtime &rt,
-- const double timestamp,
-- const double cleanupTimestamp) {
-+jsi::Value AnimatedPropsRegistry::collectSettledUpdates(jsi::Runtime &rt, const double settledTimestamp) {
- std::lock_guard lock{mutex_};
-- removeUpdatesOlderThanTimestamp(cleanupTimestamp);
-
- std::vector>> updates;
-
-- for (const auto &[viewTag, pair] : updatesRegistry_) {
-- auto it = timestampMap_.find(viewTag);
-- if (it != timestampMap_.end() && it->second < timestamp) {
-- updates.emplace_back(viewTag, std::cref(pair.second));
-+ for (auto it = updatesRegistry_.begin(); it != updatesRegistry_.end();) {
-+ const auto viewTag = it->first;
-+
-+ if (syncedTags_.contains(viewTag)) {
-+ // React already has the latest value for this tag (synced on a previous
-+ // call, so the `settledProps` state is committed by now) — the registry
-+ // entry is redundant. `syncedTags_` is intentionally retained to detect
-+ // re-animation staleness. Note that `syncedTags_` and `invalidatedTags_`
-+ // are disjoint — `update()` moves tags from the former to the latter.
-+ timestampMap_.erase(viewTag);
-+ it = updatesRegistry_.erase(it);
-+ continue;
-+ }
-+
-+ const auto timestampIt = timestampMap_.find(viewTag);
-+ if (timestampIt == timestampMap_.end()) {
-+ ++it;
-+ continue;
-+ }
-+ const bool isSettled = timestampIt->second < settledTimestamp;
-+ const auto invalidatedIt = invalidatedTags_.find(viewTag);
-+ const bool isInvalidated = invalidatedIt != invalidatedTags_.end();
-+ if (isSettled || isInvalidated) {
-+ updates.emplace_back(viewTag, std::cref(it->second.second));
-+ if (isSettled) {
-+ // Only settled-path tags are tracked as "synced" so that an ongoing
-+ // animation doesn't re-trigger an invalidation/sync on every GC tick.
-+ syncedTags_.insert(viewTag);
-+ }
-+ if (isInvalidated) {
-+ // Only erase serviced invalidations; if a tag was invalidated but the
-+ // matching update batch hasn't been flushed into updatesRegistry_ yet,
-+ // we leave the entry so the next sync picks it up.
-+ invalidatedTags_.erase(invalidatedIt);
-+ }
- }
-+ ++it;
- }
-
- const jsi::Array array(rt, updates.size());
-@@ -58,22 +94,11 @@ jsi::Value AnimatedPropsRegistry::getUpdatesOlderThanTimestamp(
- return jsi::Value(rt, array);
- }
-
--void AnimatedPropsRegistry::removeUpdatesOlderThanTimestamp(const double timestamp) {
-- for (auto it = timestampMap_.begin(); it != timestampMap_.end();) {
-- const auto viewTag = it->first;
-- const auto viewTimestamp = it->second;
-- if (viewTimestamp < timestamp) {
-- it = timestampMap_.erase(it);
-- updatesRegistry_.erase(viewTag);
-- } else {
-- it++;
-- }
-- }
--}
--
- void AnimatedPropsRegistry::removeTag(const Tag tag) {
- updatesRegistry_.erase(tag);
- timestampMap_.erase(tag);
-+ syncedTags_.erase(tag);
-+ invalidatedTags_.erase(tag);
- }
-
- } // namespace reanimated
-diff --git a/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h b/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h
-index 2c6c0e13604c9421e147d7eea7f4a4752288011c..8cd67f118501c2786b94d76541aea29a14ba8c16 100644
---- a/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h
-+++ b/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h
-@@ -4,10 +4,8 @@
-
- #include
-
--#include
--#include
- #include
--#include
-+#include
-
- namespace reanimated {
-
-@@ -15,13 +13,22 @@ class AnimatedPropsRegistry : public UpdatesRegistry {
- public:
- void update(jsi::Runtime &rt, const jsi::Value &operations, double timestamp);
-
-- /// Also removes updates older than `cleanupTimestamp` from the registry.
-- jsi::Value getUpdatesOlderThanTimestamp(jsi::Runtime &rt, double timestamp, double cleanupTimestamp);
-+ /// Returns updates that settled (received no update since `settledTimestamp`)
-+ /// or whose synced `settledProps` snapshot was invalidated by a fresh update.
-+ /// Also evicts entries that have already been synced to React — by the time
-+ /// of the next call, the corresponding `settledProps` state is guaranteed to
-+ /// be committed, so the registry entries are redundant.
-+ jsi::Value collectSettledUpdates(jsi::Runtime &rt, double settledTimestamp);
-
- private:
- std::unordered_map timestampMap_; // viewTag -> timestamp, protected by `mutex_`
-+ // Tags whose latest values have already been pushed to React `settledProps`.
-+ // Intentionally retained after eviction to detect re-animation staleness.
-+ std::unordered_set syncedTags_;
-+ // Tags that were synced to React but received a fresh worklet update since;
-+ // their `settledProps` are stale and need to be refreshed on the next sync.
-+ std::unordered_set invalidatedTags_;
-
-- void removeUpdatesOlderThanTimestamp(double timestamp);
- void removeTag(Tag tag) override;
- };
-
diff --git a/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h b/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h
-index 096218ab9659955cd6272c97181bce3c893ed591..1a8e25fc8295b3ac943130709bf063ea41a50585 100644
+index 8603591..20d042b 100644
--- a/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h
+++ b/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h
-@@ -57,11 +57,11 @@ class LayoutAnimationsProxyCommon : public facebook::react::MountingOverrideDele
+@@ -62,11 +62,11 @@ class LayoutAnimationsProxyCommon : public facebook::react::MountingOverrideDele
const SharedComponentDescriptorRegistry &componentDescriptorRegistry,
const std::shared_ptr &contextContainer,
jsi::Runtime &uiRuntime,
@@ -168,7 +16,7 @@ index 096218ab9659955cd6272c97181bce3c893ed591..1a8e25fc8295b3ac943130709bf063ea
const std::shared_ptr &jsInvoker
#endif
)
-@@ -69,11 +69,11 @@ class LayoutAnimationsProxyCommon : public facebook::react::MountingOverrideDele
+@@ -74,11 +74,11 @@ class LayoutAnimationsProxyCommon : public facebook::react::MountingOverrideDele
contextContainer_(contextContainer),
componentDescriptorRegistry_(componentDescriptorRegistry),
uiRuntime_(uiRuntime),
@@ -182,7 +30,7 @@ index 096218ab9659955cd6272c97181bce3c893ed591..1a8e25fc8295b3ac943130709bf063ea
jsInvoker_(jsInvoker)
#endif
{
-@@ -93,10 +93,10 @@ class LayoutAnimationsProxyCommon : public facebook::react::MountingOverrideDele
+@@ -98,10 +98,10 @@ class LayoutAnimationsProxyCommon : public facebook::react::MountingOverrideDele
SharedComponentDescriptorRegistry componentDescriptorRegistry_;
jsi::Runtime &uiRuntime_;
const std::shared_ptr uiScheduler_;
@@ -195,10 +43,10 @@ index 096218ab9659955cd6272c97181bce3c893ed591..1a8e25fc8295b3ac943130709bf063ea
void restoreOpacityInCaseOfFlakyEnteringAnimation(SurfaceId surfaceId) const;
diff --git a/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.h b/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.h
-index eca44e4cf651d16e9741806004ce9119c85d07d6..e39c79a5d7b52659106ed6fe6fbcbbc048bf4787 100644
+index fcc677f..115971a 100644
--- a/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.h
+++ b/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.h
-@@ -66,11 +66,11 @@ struct LayoutAnimationsProxy_Experimental : public LayoutAnimationsProxyCommon,
+@@ -67,11 +67,11 @@ struct LayoutAnimationsProxy_Experimental : public LayoutAnimationsProxyCommon,
const SharedComponentDescriptorRegistry &componentDescriptorRegistry,
const std::shared_ptr &contextContainer,
jsi::Runtime &uiRuntime,
@@ -212,7 +60,7 @@ index eca44e4cf651d16e9741806004ce9119c85d07d6..e39c79a5d7b52659106ed6fe6fbcbbc0
const std::shared_ptr &jsInvoker
#endif
)
-@@ -79,11 +79,11 @@ struct LayoutAnimationsProxy_Experimental : public LayoutAnimationsProxyCommon,
+@@ -80,11 +80,11 @@ struct LayoutAnimationsProxy_Experimental : public LayoutAnimationsProxyCommon,
componentDescriptorRegistry,
contextContainer,
uiRuntime,
@@ -227,18 +75,18 @@ index eca44e4cf651d16e9741806004ce9119c85d07d6..e39c79a5d7b52659106ed6fe6fbcbbc0
#endif
),
diff --git a/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.cpp b/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.cpp
-index 83ef7430b923b6b3b99368ee8072168769110cd0..2affd12822ab19bdc90963d3ce8ca1e6bb0d43b7 100644
+index df53d8d..735f138 100644
--- a/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.cpp
+++ b/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.cpp
-@@ -2,6 +2,7 @@
- #include
+@@ -1,6 +1,7 @@
+ #include
- #include
+ #include
+#include
#include
#include
-@@ -53,14 +54,37 @@ std::optional LayoutAnimationsProxy_Legacy::pullTransaction
+@@ -60,14 +61,37 @@ std::optional LayoutAnimationsProxy_Legacy::pullTransaction
parseRemoveMutations(movedViews, mutations, roots);
@@ -278,7 +126,7 @@ index 83ef7430b923b6b3b99368ee8072168769110cd0..2affd12822ab19bdc90963d3ce8ca1e6
return MountingTransaction{surfaceId, transactionNumber, std::move(filteredMutations), telemetry};
}
-@@ -947,23 +971,22 @@ inline bool MutationNode::isMutationNode() {
+@@ -998,23 +1022,22 @@ inline bool MutationNode::isMutationNode() {
return true;
}
@@ -318,7 +166,7 @@ index 83ef7430b923b6b3b99368ee8072168769110cd0..2affd12822ab19bdc90963d3ce8ca1e6
} // namespace reanimated
diff --git a/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.h b/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.h
-index e9a5e9959e89ec33cee179ddb907c17f6dfbd3de..a2c89041518cd71e8ba5ac62ef89c0022d197c9b 100644
+index 57cc134..1a2966c 100644
--- a/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.h
+++ b/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.h
@@ -3,8 +3,8 @@
@@ -376,7 +224,7 @@ index e9a5e9959e89ec33cee179ddb907c17f6dfbd3de..a2c89041518cd71e8ba5ac62ef89c002
}
void startEnteringAnimation(const int tag, ShadowViewMutation &mutation) const;
-@@ -202,19 +207,15 @@ struct LayoutAnimationsProxy_Legacy : public LayoutAnimationsProxyCommon,
+@@ -206,19 +211,15 @@ struct LayoutAnimationsProxy_Legacy : public LayoutAnimationsProxyCommon,
const TransactionTelemetry &telemetry,
ShadowViewMutationList mutations) const override;
@@ -404,43 +252,10 @@ index e9a5e9959e89ec33cee179ddb907c17f6dfbd3de..a2c89041518cd71e8ba5ac62ef89c002
} // namespace reanimated
diff --git a/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp b/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp
-index 9ade22bf773005613048a00c47b35767628e86c6..f3415e824da1a8da5c83762415ca54646bd6429f 100644
+index 2b68ff7..d08b1ae 100644
--- a/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp
+++ b/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp
-@@ -524,15 +524,13 @@ jsi::Value ReanimatedModuleProxy::getSettledUpdates(jsi::Runtime &rt) {
- StaticFeatureFlags::getFlag("FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS") &&
- "getSettledUpdates requires FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS static feature flag to be enabled");
-
-+ constexpr double SETTLED_ANIMATION_THRESHOLD_MS = 1000;
-+
- // TODO(future): use unified timestamp
- const auto currentTimestamp = getAnimationTimestamp_();
-
-- // TODO: fix bug when threshold difference is smaller than 1 second
- // TODO(future): flush updates from CSS animations and CSS transitions registries
-- // TODO(future): find a better way to obtain timestamp for removing updates
-- // TODO(future): move removing old updates to separate method
-- return animatedPropsRegistry_->getUpdatesOlderThanTimestamp(
-- rt, currentTimestamp - 1000 /* 1 second */, currentTimestamp - 2000 /* 2 seconds */);
-+ return animatedPropsRegistry_->collectSettledUpdates(rt, currentTimestamp - SETTLED_ANIMATION_THRESHOLD_MS);
- }
-
- bool ReanimatedModuleProxy::handleEvent(
-@@ -1306,11 +1304,11 @@ void ReanimatedModuleProxy::initializeLayoutAnimationsProxy() {
- componentDescriptorRegistry,
- scheduler->getContextContainer(),
- getJSIRuntimeFromWorkletRuntime(uiRuntime_),
-- uiScheduler_
-+ uiScheduler_,
-+ uiManager_
- #ifdef ANDROID
- ,
- filterUnmountedTagsFunction_,
-- uiManager_,
- jsInvoker_
- #endif
- );
-@@ -1319,22 +1317,19 @@ void ReanimatedModuleProxy::initializeLayoutAnimationsProxy() {
+@@ -1235,22 +1235,19 @@ void ReanimatedModuleProxy::initializeLayoutAnimationsProxy() {
#endif
layoutAnimationsProxy_ = std::move(layoutAnimationsProxyExperimental);
} else {
@@ -466,35 +281,3 @@ index 9ade22bf773005613048a00c47b35767628e86c6..f3415e824da1a8da5c83762415ca5464
}
}
}
-diff --git a/src/PropsRegistryGarbageCollector.ts b/src/PropsRegistryGarbageCollector.ts
-index f917ce5a8586c02855f1d8d9ae73154592d22510..32148fbac8a9224ffec6edc784b48938da9585fb 100644
---- a/src/PropsRegistryGarbageCollector.ts
-+++ b/src/PropsRegistryGarbageCollector.ts
-@@ -11,7 +11,6 @@ import { ReanimatedModule } from './ReanimatedModule';
- const FLUSH_INTERVAL_MS = 500;
-
- export const PropsRegistryGarbageCollector = {
-- viewsCount: 0,
- viewsMap: new Map(),
- intervalId: null as NodeJS.Timeout | null,
-
-@@ -25,16 +24,14 @@ export const PropsRegistryGarbageCollector = {
- return;
- }
- this.viewsMap.set(viewTag, component);
-- this.viewsCount++;
-- if (this.viewsCount === 1) {
-+ if (this.viewsMap.size === 1) {
- this.registerInterval();
- }
- },
-
- unregisterView(viewTag: number) {
-- this.viewsMap.delete(viewTag);
-- this.viewsCount--;
-- if (this.viewsCount === 0) {
-+ const deleted = this.viewsMap.delete(viewTag);
-+ if (deleted && this.viewsMap.size === 0) {
- this.unregisterInterval();
- }
- },
diff --git a/patches/react-native-reanimated@4.5.3.patch.md b/patches/react-native-reanimated@4.5.3.patch.md
new file mode 100644
index 0000000000..f01428d09a
--- /dev/null
+++ b/patches/react-native-reanimated@4.5.3.patch.md
@@ -0,0 +1,27 @@
+# react-native-reanimated@4.5.3.patch
+
+Backport of https://github.com/software-mansion/react-native-reanimated/pull/9901
+("refactor(LayoutAnimations): stop taking over UIManagerAnimationDelegate").
+
+Reanimated's legacy `LayoutAnimationsProxy_Legacy` registered itself as the
+`UIManagerAnimationDelegate` only to receive `stopSurface`. Occupying that slot
+overwrites the `LayoutAnimationDriver` that React Native installs there, which
+silently breaks `LayoutAnimation.configureNext` for the whole app.
+
+The patch makes the proxy detect surface teardown itself via a
+`UIManagerCommitHook` (a commit with an empty root marks the surface in
+`surfacesToRemove_`), frees the animation-delegate slot, and drops final
+keyframe `Update` mutations for views deleted in the same transaction (a
+deterministic `configureNext` delete-animation crash found in this app).
+`uiManager` moves from Android-only to shared constructor args since the hook
+registration needs it on both platforms.
+
+Only the `packages/react-native-reanimated` part of the PR is included (the
+`apps/fabric-example` hunk is not part of the published package), and the hunks
+were rebased onto the 4.5.3 release sources.
+
+Note that upstream's own `pullTransaction` rework in 4.5.3 (the new
+`reconcileContradictedRemovals`) covers a different case - a `Create`/`Insert`
+contradicting a *withheld* exit removal - and does not subsume the deleted-tag
+`Update` filter here, which guards against the `LayoutAnimationDriver` final
+keyframe. That driver only runs at all once this patch frees the delegate slot.
diff --git a/patches/react-native-screens@4.24.0.patch b/patches/react-native-screens@4.26.2.patch
similarity index 83%
rename from patches/react-native-screens@4.24.0.patch
rename to patches/react-native-screens@4.26.2.patch
index 7fa3607d4c..471757be87 100644
--- a/patches/react-native-screens@4.24.0.patch
+++ b/patches/react-native-screens@4.26.2.patch
@@ -1,28 +1,28 @@
diff --git a/android/src/main/java/com/swmansion/rnscreens/Screen.kt b/android/src/main/java/com/swmansion/rnscreens/Screen.kt
-index c99ca362df5baee81fa48d1c9ef09b40a2c23f07..725c07aa0ed516f9dd09f81e522f2d3191d9b5d0 100644
+index 76bb694854b29d7f779f38244cd48113b429ea1f..fd402ac938862e8d39c5467c1b5c86c4e7eb0c83 100644
--- a/android/src/main/java/com/swmansion/rnscreens/Screen.kt
+++ b/android/src/main/java/com/swmansion/rnscreens/Screen.kt
-@@ -17,6 +17,7 @@ import androidx.annotation.RequiresApi
+@@ -16,6 +16,7 @@ import androidx.annotation.RequiresApi
import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.view.children
import androidx.fragment.app.Fragment
+import androidx.recyclerview.widget.RecyclerView
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
- import com.facebook.react.bridge.GuardedRunnable
import com.facebook.react.bridge.ReactContext
-@@ -637,7 +638,7 @@ class Screen(
+ import com.facebook.react.uimanager.PixelUtil
+@@ -462,7 +463,7 @@ class Screen(
endTransitionRecursive(childView.toolbar)
}
-
+
- if (childView is ViewGroup) {
+ if (childView is ViewGroup && childView !is RecyclerView) {
endTransitionRecursive(childView)
}
}
-@@ -666,7 +667,10 @@ class Screen(
+@@ -491,7 +492,10 @@ class Screen(
startTransitionRecursive(child.toolbar)
}
-
+
- if (child is ViewGroup) {
+ // Transition a RecyclerView as one unit. Marking its recyclable children as
+ // transitioning keeps their parent set after removal, so RecyclerView crashes
diff --git a/patches/react-native-screens@4.24.0.patch.md b/patches/react-native-screens@4.26.2.patch.md
similarity index 96%
rename from patches/react-native-screens@4.24.0.patch.md
rename to patches/react-native-screens@4.26.2.patch.md
index 99e522eeeb..7b1c19600a 100644
--- a/patches/react-native-screens@4.24.0.patch.md
+++ b/patches/react-native-screens@4.26.2.patch.md
@@ -1,4 +1,4 @@
-# react-native-screens+4.24.0.patch
+# react-native-screens+4.26.2.patch
## Android: do not transition RecyclerView children individually
diff --git a/patches/react-native-svg@15.12.1.patch b/patches/react-native-svg@15.15.4.patch
similarity index 100%
rename from patches/react-native-svg@15.12.1.patch
rename to patches/react-native-svg@15.15.4.patch
diff --git a/patches/react-native-view-shot@4.0.3.patch b/patches/react-native-view-shot@4.0.3.patch
deleted file mode 100644
index a7fa2fbe97..0000000000
--- a/patches/react-native-view-shot@4.0.3.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/src/index.js b/src/index.js
-index fa76d7e1272e7fbe4bbd153104db127f1f6eecad..018b6860b7fa02d498d73b5fd06028bae99abedb 100644
---- a/src/index.js
-+++ b/src/index.js
-@@ -125,13 +125,17 @@ export function captureRef(
- }
- }
- if (typeof view !== "number") {
-- const node = findNodeHandle(view);
-- if (!node) {
-- return Promise.reject(
-- new Error("findNodeHandle failed to resolve view=" + String(view))
-- );
-+ if (Platform.OS == 'web') {
-+ view = view;
-+ } else {
-+ const node = findNodeHandle(view);
-+ if (!node) {
-+ return Promise.reject(
-+ new Error("findNodeHandle failed to resolve view=" + String(view))
-+ );
-+ }
-+ view = node;
- }
-- view = node;
- }
- const { options, errors } = validateOptions(optionsObject);
- if (__DEV__ && errors.length > 0) {
diff --git a/patches/react-native-view-shot@4.0.3.patch.md b/patches/react-native-view-shot@4.0.3.patch.md
deleted file mode 100644
index 4fcb1f4c9b..0000000000
--- a/patches/react-native-view-shot@4.0.3.patch.md
+++ /dev/null
@@ -1,3 +0,0 @@
-## react-native-view-shot patch
-
-Temporary patch for web, where `view`'s type has changed.
diff --git a/patches/react-native-worklets@0.8.3.patch b/patches/react-native-worklets@0.11.3.patch
similarity index 86%
rename from patches/react-native-worklets@0.8.3.patch
rename to patches/react-native-worklets@0.11.3.patch
index 44b839e7fe..3b85b954f7 100644
--- a/patches/react-native-worklets@0.8.3.patch
+++ b/patches/react-native-worklets@0.11.3.patch
@@ -1,16 +1,16 @@
diff --git a/lib/module/threads.js b/lib/module/threads.js
-index dd3a7f1ab12e5a8030af7f17b6a7a891e0b645d2..7d48ccbf95f00724db6b083a7155f25aadd6b8f5 100644
+index c17e314..71f3cf7 100644
--- a/lib/module/threads.js
+++ b/lib/module/threads.js
-@@ -2,7 +2,6 @@
+@@ -1,7 +1,6 @@
+ 'use strict';
- import { WorkletsError } from './debug/WorkletsError';
import { IS_JEST } from './platformChecker';
--import { mockedRequestAnimationFrame } from './runLoop/uiRuntime/mockedRequestAnimationFrame';
+-import { mockedRequestAnimationFrame } from "./runLoop/uiRuntime/mockedRequestAnimationFrame.js";
export function scheduleOnUI(worklet, ...args) {
enqueueUI(worklet, args);
}
-@@ -24,38 +23,50 @@ export function scheduleOnRN(fun, ...args) {
+@@ -23,38 +22,50 @@ export function scheduleOnRN(fun, ...args) {
queueMicrotask(args.length ? () => fun(...args) : fun);
}
export function runOnUIAsync(worklet, ...args) {
@@ -73,6 +73,8 @@ index dd3a7f1ab12e5a8030af7f17b6a7a891e0b645d2..7d48ccbf95f00724db6b083a7155f25a
});
}
-const requestAnimationFrameImpl = !globalThis.requestAnimationFrame ? mockedRequestAnimationFrame : globalThis.requestAnimationFrame;
+-//# sourceMappingURL=threads.js.map
+\ No newline at end of file
+function drainUIQueue(queue) {
+ while (queue.length > offset) {
+ const [workletFunction, workletArgs, jobResolve] = queue[offset];
@@ -83,4 +85,4 @@ index dd3a7f1ab12e5a8030af7f17b6a7a891e0b645d2..7d48ccbf95f00724db6b083a7155f25a
+ }
+ }
+}
- //# sourceMappingURL=threads.js.map
++//# sourceMappingURL=threads.js.map
diff --git a/patches/react-native-worklets@0.8.3.patch.md b/patches/react-native-worklets@0.11.3.patch.md
similarity index 97%
rename from patches/react-native-worklets@0.8.3.patch.md
rename to patches/react-native-worklets@0.11.3.patch.md
index 0ba4b26aa9..fb9e2feaeb 100644
--- a/patches/react-native-worklets@0.8.3.patch.md
+++ b/patches/react-native-worklets@0.11.3.patch.md
@@ -1,4 +1,4 @@
-# react-native-worklets@0.8.3.patch
+# react-native-worklets@0.11.3.patch
Backport of https://github.com/software-mansion/react-native-reanimated/pull/10167
("fix(Worklets): web scheduleOnUI implementation on errors").
diff --git a/patches/react-native@0.81.5.patch b/patches/react-native@0.81.5.patch
deleted file mode 100644
index b4c01a1ef3..0000000000
--- a/patches/react-native@0.81.5.patch
+++ /dev/null
@@ -1,239 +0,0 @@
-diff --git a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm
-index c593d9ee2155a826352ebca34845aa5792b2eec3..3c26cd737f21116ff0aa48190e97e6c0649b5fac 100644
---- a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm
-+++ b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm
-@@ -101,6 +101,20 @@ - (void)setContentOffset:(CGPoint)contentOffset
- RCTSanitizeNaNValue(contentOffset.y, @"scrollView.contentOffset.y"));
- }
-
-+- (void)setCenterContent:(BOOL)centerContent
-+{
-+ if (_centerContent != centerContent) {
-+ _centerContent = centerContent;
-+ [self centerContentIfNeeded];
-+ }
-+}
-+
-+- (void)setContentSize:(CGSize)contentSize
-+{
-+ [super setContentSize:contentSize];
-+ [self centerContentIfNeeded];
-+}
-+
- - (void)setFrame:(CGRect)frame
- {
- [super setFrame:frame];
-diff --git a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm
-index 0d231bc8aa938da296eb3b981e8ac9595a43b87f..be0a10d9c4de1892fa00bcbf8d63d739b66d8ffe 100644
---- a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm
-+++ b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm
-@@ -76,7 +76,17 @@ - (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &
- return;
- }
-
-- const auto &oldConcreteProps = static_cast(*_props);
-+ /*
-+ * TODO: Remove after upgrading React Native to 0.82+ (fixed upstream by
-+ * facebook/react-native#52615, #52584 and #53231).
-+ * Diff against oldProps instead of _props. During the initial-layout replay
-+ * from layoutSubviews, _props already holds the new props, so diffing
-+ * against it is a no-op and tintColor/progressViewOffset are never applied
-+ * on mount (facebook/react-native#56343). oldProps is null-guarded because
-+ * the create-mutation path passes nullptr.
-+ */
-+ const auto &oldConcreteProps = static_cast(
-+ oldProps ? *oldProps : *PullToRefreshViewShadowNode::defaultSharedProps());
- const auto &newConcreteProps = static_cast(*props);
-
- if (newConcreteProps.tintColor != oldConcreteProps.tintColor) {
-diff --git a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm
-index 1494fd225aff1fa0429e917404d6b4ca5fc961c5..d0cce700090245444f8ce51e517d5ceca09526f6 100644
---- a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm
-+++ b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm
-@@ -380,7 +380,15 @@ - (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &
-
- MAP_SCROLL_VIEW_PROP(zoomScale);
-
-- if (oldScrollViewProps.contentInset != newScrollViewProps.contentInset) {
-+ // When disabling centerContent, reset inset to prop value
-+ // (enabling is handled automatically by the setCenterContent: setter)
-+ if (oldScrollViewProps.centerContent && !newScrollViewProps.centerContent) {
-+ _scrollView.contentInset = RCTUIEdgeInsetsFromEdgeInsets(newScrollViewProps.contentInset);
-+ }
-+
-+ // Only apply contentInset from props if centerContent is disabled
-+ // When centerContent is enabled, the inset is calculated by centerContentIfNeeded
-+ if (oldScrollViewProps.contentInset != newScrollViewProps.contentInset && !newScrollViewProps.centerContent) {
- _scrollView.contentInset = RCTUIEdgeInsetsFromEdgeInsets(newScrollViewProps.contentInset);
- }
-
-@@ -507,7 +515,7 @@ - (UIView *)betterHitTest:(CGPoint)point withEvent:(UIEvent *)event
- }
- }
-
-- return isPointInside ? self : nil;
-+ return isPointInside ? _scrollView : nil;
- }
-
- /*
-@@ -1038,6 +1046,11 @@ - (void)_adjustForMaintainVisibleContentPosition
- }
- }
-
-++ (BOOL)shouldBeRecycled
-+{
-+ return NO;
-+}
-+
- @end
-
- Class RCTScrollViewCls(void)
-diff --git a/React/Views/RefreshControl/RCTRefreshControl.h b/React/Views/RefreshControl/RCTRefreshControl.h
-index e9b330fa7c29c42653a3b0191d0f8a1b13b2d3de..5fbb2e05cadfc06fd7a18bf52b81bc399e92f3ca 100644
---- a/React/Views/RefreshControl/RCTRefreshControl.h
-+++ b/React/Views/RefreshControl/RCTRefreshControl.h
-@@ -15,5 +15,6 @@
- @property (nonatomic, copy) NSString *title;
- @property (nonatomic, copy) RCTDirectEventBlock onRefresh;
- @property (nonatomic, weak) UIScrollView *scrollView;
-+@property (nonatomic, copy) UIColor *customTintColor;
-
- @end
-diff --git a/React/Views/RefreshControl/RCTRefreshControl.m b/React/Views/RefreshControl/RCTRefreshControl.m
-index 53bfd04703502d5b8e932c47a528bb03cd79d330..e2e0c9f4e5d1a3a3b178a7ec69aa63e3039b6dec 100644
---- a/React/Views/RefreshControl/RCTRefreshControl.m
-+++ b/React/Views/RefreshControl/RCTRefreshControl.m
-@@ -23,6 +23,7 @@ @implementation RCTRefreshControl {
- UIColor *_titleColor;
- CGFloat _progressViewOffset;
- BOOL _hasMovedToWindow;
-+ UIColor *_customTintColor;
- }
-
- - (instancetype)init
-@@ -58,6 +59,12 @@ - (void)layoutSubviews
- _isInitialRender = false;
- }
-
-+- (void)didMoveToSuperview
-+{
-+ [super didMoveToSuperview];
-+ [self setTintColor:_customTintColor];
-+}
-+
- - (void)didMoveToWindow
- {
- [super didMoveToWindow];
-@@ -221,4 +228,16 @@ - (void)refreshControlValueChanged
- }
- }
-
-+// Fix for https://github.com/facebook/react-native/issues/43388
-+// A bug in iOS 17.4 causes the haptic to not play when refreshing if the tintColor
-+// is set before the refresh control gets added to the scrollview. We'll call this
-+// function whenever the superview changes. We'll also call it if the value of customTintColor
-+// changes.
-+- (void)setTintColor:(UIColor *)tintColor
-+{
-+ if ([self.superview isKindOfClass:[UIScrollView class]] && self.tintColor != tintColor) {
-+ [super setTintColor:tintColor];
-+ }
-+}
-+
- @end
-diff --git a/React/Views/RefreshControl/RCTRefreshControlManager.m b/React/Views/RefreshControl/RCTRefreshControlManager.m
-index 40aaf9c51ebda9fedb1d1db2e9aacec84b4c39c8..1c60164b69762997b3369b46609a07768a06bad3 100644
---- a/React/Views/RefreshControl/RCTRefreshControlManager.m
-+++ b/React/Views/RefreshControl/RCTRefreshControlManager.m
-@@ -22,11 +22,12 @@ - (UIView *)view
-
- RCT_EXPORT_VIEW_PROPERTY(onRefresh, RCTDirectEventBlock)
- RCT_EXPORT_VIEW_PROPERTY(refreshing, BOOL)
--RCT_EXPORT_VIEW_PROPERTY(tintColor, UIColor)
- RCT_EXPORT_VIEW_PROPERTY(title, NSString)
- RCT_EXPORT_VIEW_PROPERTY(titleColor, UIColor)
- RCT_EXPORT_VIEW_PROPERTY(progressViewOffset, CGFloat)
-
-+RCT_REMAP_VIEW_PROPERTY(tintColor, customTintColor, UIColor)
-+
- RCT_EXPORT_METHOD(setNativeRefreshing : (nonnull NSNumber *)viewTag toRefreshing : (BOOL)refreshing)
- {
- [self.bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, NSDictionary *viewRegistry) {
-diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt b/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt
-index 8b6571698fc5dd091a0d8980a33bb40295faf305..27c97bfeb6f13907c89f1d85f2bb8b8af7bdfb43 100644
---- a/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt
-+++ b/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt
-@@ -313,8 +313,9 @@ public open class JavaTimerManager(
- // We also capture the idleCallbackRunnable to tentatively fix:
- // https://github.com/facebook/react-native/issues/44842
- currentIdleCallbackRunnable?.cancel()
-- currentIdleCallbackRunnable = IdleCallbackRunnable(frameTimeNanos)
-- reactApplicationContext.runOnJSQueueThread(currentIdleCallbackRunnable)
-+ val idleCallbackRunnable = IdleCallbackRunnable(frameTimeNanos)
-+ currentIdleCallbackRunnable = idleCallbackRunnable
-+ reactApplicationContext.runOnJSQueueThread(idleCallbackRunnable)
- reactChoreographer.postFrameCallback(ReactChoreographer.CallbackType.IDLE_EVENT, this)
- }
- }
-diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt b/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt
-index 89b666dcf0258df0702c812600b685463128294c..2b1c3971f0c31a0d7a592b90170e4cc53a8a69dd 100644
---- a/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt
-+++ b/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt
-@@ -431,6 +431,13 @@ public open class ReactViewGroup public constructor(context: Context?) :
- inSubviewClippingLoop = true
- var clippedSoFar = 0
- for (i in 0.. RCTScrollViewCls(void)
+diff --git a/React/Views/RefreshControl/RCTRefreshControl.h b/React/Views/RefreshControl/RCTRefreshControl.h
+index ed306d7cadbf36a2fed79be8bd9d68b5dca135bd..d447dad534fefa9fcbdbbde6dcbbdcddadd5a824 100644
+--- a/React/Views/RefreshControl/RCTRefreshControl.h
++++ b/React/Views/RefreshControl/RCTRefreshControl.h
+@@ -18,6 +18,7 @@ __attribute__((deprecated("This API will be removed along with the legacy archit
+ @property (nonatomic, copy) NSString *title;
+ @property (nonatomic, copy) RCTDirectEventBlock onRefresh;
+ @property (nonatomic, weak) UIScrollView *scrollView;
++@property (nonatomic, copy) UIColor *customTintColor;
+
+ @end
+
+diff --git a/React/Views/RefreshControl/RCTRefreshControl.m b/React/Views/RefreshControl/RCTRefreshControl.m
+index 2dc86e464264c9450eef18d7b153d35bf6a5cc55..6661dc69a04766afa0284d6e83839b219e98cf57 100644
+--- a/React/Views/RefreshControl/RCTRefreshControl.m
++++ b/React/Views/RefreshControl/RCTRefreshControl.m
+@@ -25,6 +25,7 @@ @implementation RCTRefreshControl {
+ UIColor *_titleColor;
+ CGFloat _progressViewOffset;
+ BOOL _hasMovedToWindow;
++ UIColor *_customTintColor;
+ }
+
+ - (instancetype)init
+@@ -60,6 +61,12 @@ - (void)layoutSubviews
+ _isInitialRender = false;
+ }
+
++- (void)didMoveToSuperview
++{
++ [super didMoveToSuperview];
++ [self setTintColor:_customTintColor];
++}
++
+ - (void)didMoveToWindow
+ {
+ [super didMoveToWindow];
+@@ -225,6 +232,18 @@ - (void)refreshControlValueChanged
+ }
+ }
+
++// Fix for https://github.com/facebook/react-native/issues/43388
++// A bug in iOS 17.4 causes the haptic to not play when refreshing if the tintColor
++// is set before the refresh control gets added to the scrollview. We'll call this
++// function whenever the superview changes. We'll also call it if the value of customTintColor
++// changes.
++- (void)setTintColor:(UIColor *)tintColor
++{
++ if ([self.superview isKindOfClass:[UIScrollView class]] && self.tintColor != tintColor) {
++ [super setTintColor:tintColor];
++ }
++}
++
+ @end
+
+ #endif // RCT_REMOVE_LEGACY_ARCH
+diff --git a/React/Views/RefreshControl/RCTRefreshControlManager.m b/React/Views/RefreshControl/RCTRefreshControlManager.m
+index 1e9ff527f4e6691d716da624031113a397876981..44329c5422c6f24d8a437fa35c6f2bad6bf8622b 100644
+--- a/React/Views/RefreshControl/RCTRefreshControlManager.m
++++ b/React/Views/RefreshControl/RCTRefreshControlManager.m
+@@ -24,11 +24,12 @@ - (UIView *)view
+
+ RCT_EXPORT_VIEW_PROPERTY(onRefresh, RCTDirectEventBlock)
+ RCT_EXPORT_VIEW_PROPERTY(refreshing, BOOL)
+-RCT_EXPORT_VIEW_PROPERTY(tintColor, UIColor)
+ RCT_EXPORT_VIEW_PROPERTY(title, NSString)
+ RCT_EXPORT_VIEW_PROPERTY(titleColor, UIColor)
+ RCT_EXPORT_VIEW_PROPERTY(progressViewOffset, CGFloat)
+
++RCT_REMAP_VIEW_PROPERTY(tintColor, customTintColor, UIColor)
++
+ RCT_EXPORT_METHOD(setNativeRefreshing : (nonnull NSNumber *)viewTag toRefreshing : (BOOL)refreshing)
+ {
+ [self.bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, NSDictionary *viewRegistry) {
+diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt b/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt
+index 59775241c80bec99ad3ec080f2425aacc8900c24..426de3aa77cda2032d7b0991e2ca3f8482a438d3 100644
+--- a/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt
++++ b/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt
+@@ -459,6 +459,13 @@ public open class ReactViewGroup public constructor(context: Context?) :
+ inSubviewClippingLoop = true
+ var clippedSoFar = 0
+ for (i in 0..();
+ }
+
++// Recycled instances get all props force-applied in updateProps, which runs
++// before the new UIRefreshControl is inserted into the scroll view hierarchy;
++// touching the control that early suppresses the pull-to-refresh haptic on
++// iOS 17.4+ (react-native#43388). Opting out of recycling keeps every mount on
++// the untouched-before-attach path. Refresh controls are rare and cheap, so
++// losing recycling for them is negligible.
+++ (BOOL)shouldBeRecycled
++{
++ return NO;
++}
++
+ - (void)prepareForRecycle
+ {
+ [super prepareForRecycle];
+ _scrollViewComponentView = nil;
++ _pendingTintColor = nil;
++ _hasPendingTintColor = NO;
++ _pendingProgressViewOffset = 0;
++ _hasPendingProgressViewOffset = NO;
+ [self _initializeUIRefreshControl];
+ _recycled = YES;
+ }
+@@ -93,7 +134,8 @@ - (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &
+ const auto &newConcreteProps = static_cast(*props);
+
+ if (_recycled || newConcreteProps.tintColor != oldConcreteProps.tintColor) {
+- _refreshControl.tintColor = RCTUIColorFromSharedColor(newConcreteProps.tintColor);
++ // Deferred until the control is inside the scroll view (#43388).
++ [self _updateTintColor:RCTUIColorFromSharedColor(newConcreteProps.tintColor)];
+ }
+
+ if (_recycled || newConcreteProps.progressViewOffset != oldConcreteProps.progressViewOffset) {
+@@ -141,11 +183,50 @@ - (void)handleUIControlEventValueChanged
+
+ - (void)_updateProgressViewOffset:(Float)progressViewOffset
+ {
++ _pendingProgressViewOffset = progressViewOffset;
++ _hasPendingProgressViewOffset = YES;
++ // Applies immediately for runtime changes while the control is attached;
++ // pre-attach sets wait until the control is inside the scroll view (see the
++ // _pendingProgressViewOffset declaration).
++ [self _applyPendingProgressViewOffsetIfPossible];
++ if (_hasPendingProgressViewOffset) {
++ [self setNeedsLayout];
++ }
++}
++
++- (void)_applyPendingProgressViewOffsetIfPossible
++{
++ if (!_hasPendingProgressViewOffset || ![_refreshControl.superview isKindOfClass:[UIScrollView class]]) {
++ return;
++ }
+ _refreshControl.bounds = CGRectMake(
+ _refreshControl.bounds.origin.x,
+- -progressViewOffset,
++ -_pendingProgressViewOffset,
+ _refreshControl.bounds.size.width,
+ _refreshControl.bounds.size.height);
++ _hasPendingProgressViewOffset = NO;
++}
++
++- (void)_updateTintColor:(UIColor *)tintColor
++{
++ _pendingTintColor = tintColor;
++ _hasPendingTintColor = YES;
++ // Applies immediately for runtime changes while the control is attached;
++ // pre-attach sets wait until the control is inside the scroll view.
++ [self _applyPendingTintColorIfPossible];
++ if (_hasPendingTintColor) {
++ [self setNeedsLayout];
++ }
++}
++
++- (void)_applyPendingTintColorIfPossible
++{
++ if (!_hasPendingTintColor || ![_refreshControl.superview isKindOfClass:[UIScrollView class]]) {
++ return;
++ }
++ _refreshControl.tintColor = _pendingTintColor;
++ _pendingTintColor = nil;
++ _hasPendingTintColor = NO;
+ }
+
+ - (void)_updateTitle
+@@ -153,7 +234,12 @@ - (void)_updateTitle
+ const auto &concreteProps = static_cast(*_props);
+
+ if (concreteProps.title.empty()) {
+- _refreshControl.attributedTitle = nil;
++ // Avoid touching the control when there is nothing to clear - writing
++ // attributedTitle (even nil) before the control is in the scroll view
++ // hierarchy can suppress the pull-to-refresh haptic (#43388).
++ if (_refreshControl.attributedTitle != nil) {
++ _refreshControl.attributedTitle = nil;
++ }
+ return;
+ }
+
+@@ -172,6 +258,18 @@ - (void)layoutSubviews
+ {
+ [super layoutSubviews];
+
++ /*
++ * Fallback for the pending props: _attach applies them right after the
++ * refreshControl assignment (insertion is synchronous there on current iOS),
++ * but should UIKit ever defer the insertion to a later layout pass, re-arm
++ * and retry until the control is actually inside the scroll view.
++ */
++ [self _applyPendingTintColorIfPossible];
++ [self _applyPendingProgressViewOffsetIfPossible];
++ if ((_hasPendingTintColor || _hasPendingProgressViewOffset) && _scrollViewComponentView != nil) {
++ [self setNeedsLayout];
++ }
++
+ // Attempts to begin refreshing before the initial layout are ignored by _refreshControl. So if the control is
+ // refreshing when mounted, we need to call beginRefreshing in layoutSubviews or it won't work.
+ if (self.window) {
+@@ -209,6 +307,15 @@ - (void)_attach
+
+ // This ensures that layoutSubviews is called. Without this, recycled instances won't refresh on mount
+ [self setNeedsLayout];
++
++ /*
++ * The assignment above inserts the control (and creates its content view)
++ * synchronously on current iOS - verified via frame logging - so the
++ * pending props can be applied immediately. layoutSubviews is the fallback
++ * if insertion is ever deferred.
++ */
++ [self _applyPendingTintColorIfPossible];
++ [self _applyPendingProgressViewOffsetIfPossible];
+ }
+ }
+
diff --git a/patches/react-native@0.81.5.patch.md b/patches/react-native@0.86.0.patch.md
similarity index 56%
rename from patches/react-native@0.81.5.patch.md
rename to patches/react-native@0.86.0.patch.md
index 1121fb7363..e024b0cdcf 100644
--- a/patches/react-native@0.81.5.patch.md
+++ b/patches/react-native@0.86.0.patch.md
@@ -6,18 +6,62 @@ Patching `RCTRefreshControl.mm` temporarily to play an impact haptic on refresh
17.4, there has been a regression somewhere causing haptics to not play on iOS on refresh. Should monitor for an update
in the RN repo: https://github.com/facebook/react-native/issues/43388
-## RCTPullToRefreshViewComponentView.mm Patch - RefreshControl initial props dropped on New Arch
+## RCTPullToRefreshViewComponentView.mm Patch - iOS 17.4+ haptic regression and iOS 26 progressViewOffset cancellation on New Arch
-**TODO: Remove after bumping React Native to 0.82+** (fixed upstream by facebook/react-native#52615, #52584
-and #53231).
+Both bugs share one root cause, established by instrumented frame-logging runs on the iOS 26
+simulator (Aug 2026): **writes to a detached `UIRefreshControl` are hazardous, because the
+control's `_UIRefreshControlModernContentView` bakes in the state it observes at its own
+creation.** Facts proven by the logs:
-On Fabric, `updateProps` diffs against `_props`, but the initial-layout replay in `layoutSubviews` passes
-`_props` as the new props too, so the diff is a no-op and `tintColor`/`progressViewOffset`/`title` are never
-applied on mount. This hides the pull-to-refresh spinner behind the floating home header (it stays at offset
-0 instead of `headerOffset`). We diff against the `oldProps` argument instead, null-guarded with default
-props for the create-mutation path.
+- `scrollView.refreshControl` assignment inserts the control and creates its content view
+ **synchronously** on iOS 26 (the "UIKit inserts lazily on a later layout pass" folklore is
+ false there).
+- The content view can also be materialized **earlier** by a pre-attach property write (observed
+ with `tintColor`) while the control is still detached.
+- The content view positions itself at whatever `bounds.origin` exists at its creation and keeps
+ that y forever - width tracks on later layouts, y never re-pins.
-Issue: https://github.com/facebook/react-native/issues/56343
+Consequences:
+
+**1. progressViewOffset.** Stock Fabric writes the offset as a `bounds.origin` shift in
+`updateProps`, pre-attach. The content view is then created (at insertion) already inside the
+shifted bounds, pins to it, and cancels the shift exactly - spinner hidden behind the floating
+home header (home is the only screen passing a non-zero offset). Stock RN appeared to work only
+by accident: its own pre-attach `tintColor` write materialized the content view at origin 0
+*before* the offset write. Possibly related upstream: react-native#54183.
+
+**2. Haptic (react-native#43388).** The Paper fix above does not cover Fabric: `updateProps`
+writes `tintColor` pre-attach, and a tint write on a detached control materializes the content
+view outside the scroll view, permanently suppressing the trigger haptic on iOS 17.4+ (the
+creation-time-state story likely explains this too, though the haptic wiring itself is not
+observable in logs).
+
+**The fix**: both `tintColor` and `progressViewOffset` are parked in the component view
+(`_pendingTintColor` / `_pendingProgressViewOffset`, no `UIRefreshControl` subclass) and applied
+only once `_refreshControl.superview` is the scroll view - by then the content view exists,
+was created at origin 0, and a bounds shift lands visibly. Application points: immediately in
+`_updateX` for runtime changes while attached; in `_attach` right after the assignment (insertion
+is synchronous); and from `layoutSubviews` with a `setNeedsLayout` re-arm as a fallback should
+insertion ever be deferred.
+
+Supporting changes:
+
+- `shouldBeRecycled = NO`: recycled instances get all props force-applied in `updateProps` before
+ the new control is attached, which would re-trigger the pre-attach hazards; opting out keeps
+ every mount on the untouched-before-attach path.
+- `_updateTitle` no longer writes `attributedTitle = nil` when there is nothing to clear - even a
+ nil write before attach suppresses the haptic.
+
+History: an earlier iteration fixed the offset by porting Paper's frame-offset trick into an
+`RCTHapticCompatibleRefreshControl` subclass (worked, verified on device) - replaced by the
+deferral once the root cause was understood. The control's `didMoveToSuperview` appeared broken
+as a tint application point in early non-rigorous testing; unproven, not disproven.
+
+Upstream issue #43388 still open as of Aug 2026. Haptics cannot be verified on the simulator -
+physical device only. Spinner position verified via frame logs; haptic on this variant NOT yet
+device-verified.
+
+Opened issue in RN repo: https://github.com/react/react-native/issues/57843
## RCTEnhancedScrollView.mm / RCTScrollViewComponentView.mm Patch - centerContent insets stale after content resize on New Arch
@@ -86,6 +130,16 @@ the prebuilt AAR from Maven Central instead, where this hunk (like any ReactAndr
source change) has no effect - do not expect to see the fix in a local debug build unless
you prebuild with EXPO_PUBLIC_ENV=production or add the substitution block manually.
+## RCTFontUtils.mm Patch - Custom font weights render as the heaviest face on New Arch
+
+**TODO: Remove after bumping React Native to a release that contains facebook/react-native#57483**
+(commit 918fb15bfe5f, on `main`; not in 0.86 and not yet released).
+
+Backport of the upstream one-liner: use a real ternary so the numeric weight is returned instead of
+the boolean. For a double, `(A != 0.0) ? A : B` is exactly equivalent to the original `A ?: B`.
+
+PR: https://github.com/facebook/react-native/pull/57483
+
## RCTTextLayoutManager.mm Patch - Text overflows instead of wrapping on the last line
Issue: https://github.com/react/react-native/issues/53450#issuecomment-3298157830
diff --git a/plugins/starterPackAppClipExtension/withXcodeTarget.js b/plugins/starterPackAppClipExtension/withXcodeTarget.js
index 0f96fa33f7..2c6cd40069 100644
--- a/plugins/starterPackAppClipExtension/withXcodeTarget.js
+++ b/plugins/starterPackAppClipExtension/withXcodeTarget.js
@@ -56,7 +56,7 @@ const withXcodeTarget = (config, {targetName}) => {
buildSettingsObj.SWIFT_VERSION = '5.0'
buildSettingsObj.TARGETED_DEVICE_FAMILY = `"1"`
buildSettingsObj.DEVELOPMENT_TEAM = 'B3LX46C5HS'
- buildSettingsObj.IPHONEOS_DEPLOYMENT_TARGET = '15.1'
+ buildSettingsObj.IPHONEOS_DEPLOYMENT_TARGET = '16.4'
buildSettingsObj.ASSETCATALOG_COMPILER_APPICON_NAME = 'AppIcon'
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6ffd6a36f6..86133a02ef 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -204,113 +204,119 @@ settings:
excludeLinksFromLockfile: false
overrides:
- '@react-native/babel-preset': 0.81.5
- '@react-native/normalize-colors': 0.81.5
+ '@react-native/babel-preset': 0.86.0
+ '@react-native/normalize-colors': 0.86.0
'@expo/image-utils': 0.8.12
'@types/estree': 1.0.6
react-native-compressor: 1.13.0
- react-native-reanimated: 4.3.2
- react-native-worklets: 0.8.3
+ react-native-reanimated: 4.5.3
+ react-native-worklets: 0.11.3
psl: 1.9.0
'@types/psl': 1.1.1
- react-native-screens: 4.24.0
+ react-native-screens: 4.26.2
+
+packageExtensionsChecksum: sha256-KbeCj471Qk3TA758q8nLPkiGCPDA0TX18iO/Coy89lo=
patchedDependencies:
'@sentry/expo-upload-sourcemaps@8.18.0': 2368e1e1986165e7ead3c60017b78b2f9ade1b6a6b2f5ad27cd428608c6f12ae
- expo-age-range@0.2.18: c325225749993424461eeece1d97a99b19c00da2ebc958a73c12e4eca0c39306
- expo-haptics@15.0.8: b33910ba2753c4eccdc885b449e6e33aa90b9cefa75ca8639762a26013141410
- expo-image-picker@17.0.11: 47b28f6ddb8bcaa6483f8714c82daaa0001122f2b0dac6c05d19e98a61a6ceab
- expo-image@3.0.11: 6d46ffac33426c5285777da5bf5f88c68c8ce27290595dfa65f38c478930c2c4
- expo-media-library@18.2.1: 2b84c17999bb0c977eaef7fa8ac297f7074d91c94fb63726b42d2a277b26b39a
- expo-modules-core@3.0.30: 952fb1c8cb6dc8a0d8ef4e1114942a341d89b025e011f1acfff788929997346e
- expo-notifications@0.32.17: a45a8dcf3d8c4b5df4ee0e62bc79b755fcf9d28ca51a6f685b85830bf4afc2e5
- expo-updates@29.0.17: 04f28cb005b770e9ae8f0065eab96e43cbb1e58107f5f6ad1bdd18f6deb66487
+ expo-age-range@57.0.2: c325225749993424461eeece1d97a99b19c00da2ebc958a73c12e4eca0c39306
+ expo-haptics@57.0.1: b33910ba2753c4eccdc885b449e6e33aa90b9cefa75ca8639762a26013141410
+ expo-media-library@57.0.3: 2b84c17999bb0c977eaef7fa8ac297f7074d91c94fb63726b42d2a277b26b39a
+ expo-modules-core@57.0.8: 86e57bb33bc6c3f7021e948e099c2b5378772147b92a82a16e2e90ddcb857ace
+ expo-notifications@57.0.7: 542d7d2024b364ba601b7f2af041353dccde555db0e6ecf0b5948c90e6b33a75
+ expo-updates@57.0.10: 04f28cb005b770e9ae8f0065eab96e43cbb1e58107f5f6ad1bdd18f6deb66487
+ expo@57.0.8: 1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a
react-native-compressor@1.13.0: 58379dfaace6ced8590cb341c77f2ca8099dfa8f7df6297032ec51de767a9925
react-native-date-picker@5.0.13: 92943fb79d17d7342a29bbb12b0d8ee3cf6f7bca12ed322dc8d124a3e9fb75bd
+ react-native-dotenv@3.4.11: 16b34eb974399935d3cf7c2526534f906991ccd876215176658347059cdd2021
react-native-drawer-layout@4.2.3: 74f2c043cc22ab87054f219e7c7373a509b779b18bfa79d27e7d051d73355130
- react-native-gesture-handler: 39b9e51b3977fae8ff61764b8c32934fe3fbddaf21587b4661fd73b7c6dd325b
- react-native-keyboard-controller@1.21.8: ac52bf7502ff3ad34a8594b5e1a916b96bf87a2523b6abc87c31f03607d52271
+ react-native-keyboard-controller@1.21.9: ac52bf7502ff3ad34a8594b5e1a916b96bf87a2523b6abc87c31f03607d52271
react-native-pager-view@6.8.0: c8316acd33c9aef6531e8c272c2bfab7bd02af1255969eeaab2bad5ab48531cc
- react-native-reanimated@4.3.2: ab1c095bc473ec5bfd9ead76e870c566660e355e11c5078cfdeb35922d7b2f05
- react-native-screens@4.24.0: 74a74b489f8074a1974c2792c9c97aec30d8e251669aa37fc5c99993bb4a19e6
- react-native-svg@15.12.1: ae309e9542214f5ae54935e253dedd236765feedac7be343f81d532d7fe09310
- react-native-view-shot@4.0.3: a2457dc30a82cc8c21f371a6f860d9396d450a2a1b4265b1a4ee13bdb24d3268
- react-native-worklets@0.8.3: f7263a59ae1c0170af8dfe9a5704cb374d29214a430b4b2841f9b7886c9ba8ad
- react-native@0.81.5: 91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403
+ react-native-reanimated@4.5.3: cb7a94c574c89fae48a259ea1ba4c4c97b1db634237336237805491b7c1234de
+ react-native-screens@4.26.2: ba3295d44434a729f143a6b2c24e4a9b2f911ab200b2bc47e46cdfeaa1536f7c
+ react-native-svg@15.15.4: ae309e9542214f5ae54935e253dedd236765feedac7be343f81d532d7fe09310
+ react-native-worklets@0.11.3: 8ebbcf528fc731459ac4a4eff612a50dfb7e24462a9df201e4aaa81a201343f0
+ react-native@0.86.0: dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909
importers:
.:
dependencies:
- '@atproto/api':
- specifier: 0.20.39
- version: 0.20.39
'@atproto/common-web':
- specifier: 0.5.7
- version: 0.5.7
+ specifier: 0.5.9
+ version: 0.5.9
+ '@atproto/lex':
+ specifier: 0.3.6
+ version: 0.3.6
+ '@atproto/lex-password-session':
+ specifier: 0.2.0
+ version: 0.2.0
'@atproto/syntax':
- specifier: 0.7.2
- version: 0.7.2
+ specifier: 0.7.4
+ version: 0.7.4
'@bitdrift/react-native':
specifier: ^0.6.8
- version: 0.6.14(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 0.6.14(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1)
'@braintree/sanitize-url':
specifier: ^6.0.2
version: 6.0.4
'@bsky.app/alf':
specifier: ^0.1.15
- version: 0.1.15(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 0.1.15(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
'@bsky.app/expo-dynamic-app-icon':
specifier: ^1.8.5
- version: 1.8.5(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 1.8.5(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
'@bsky.app/expo-guess-language':
specifier: ^0.2.8
- version: 0.2.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 0.2.8(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
'@bsky.app/expo-image-crop-tool':
specifier: ^0.5.1
- version: 0.5.1(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 0.5.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
'@bsky.app/expo-scroll-edge-effect':
specifier: ^0.1.9
- version: 0.1.9(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 0.1.9(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
'@bsky.app/expo-translate-text':
specifier: ^0.2.9
- version: 0.2.9(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 0.2.9(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
'@bsky.app/peek-menu':
specifier: ^0.3.2
- version: 0.3.2(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 0.3.2(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
'@bsky.app/react-native-uitextview':
specifier: ^2.7.0
- version: 2.7.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 2.7.0(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
'@bsky.app/sift':
specifier: ^0.3.9
- version: 0.3.9(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 0.3.9(expo@57.0.8)(react-native-safe-area-context@5.7.0(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
'@bsky.app/tapper':
specifier: ^0.6.1
- version: 0.6.1(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(tlds@1.261.0)
+ version: 0.6.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(tlds@1.261.0)
'@bsky.app/video':
specifier: 0.3.6
- version: 0.3.6(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 0.3.6(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
'@bsky.app/video-compressor':
specifier: 0.2.0
- version: 0.2.0(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 0.2.0(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ '@bsky/sdk':
+ specifier: 1.0.1
+ version: 1.0.1(@atproto/lex@0.3.6)
'@emoji-mart/data':
specifier: ^1.2.1
version: 1.2.1
'@emoji-mart/react':
specifier: ^1.1.1
- version: 1.1.1(emoji-mart@5.6.0)(react@19.1.0)
+ version: 1.1.1(emoji-mart@5.6.0)(react@19.2.3)
'@expo/html-elements':
specifier: ^0.12.5
version: 0.12.5
'@expo/webpack-config':
specifier: ^19.0.1
- version: 19.0.1(clean-css@5.3.3)(csso@5.0.5)(esbuild@0.25.12)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(html-minifier-terser@6.1.0)(postcss@8.5.14)
+ version: 19.0.1(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(debug@4.4.3(supports-color@8.1.1))(esbuild@0.25.12)(expo@57.0.8)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)(supports-color@8.1.1)
'@floating-ui/dom':
specifier: ^1.6.3
version: 1.7.6
'@floating-ui/react-dom':
specifier: ^2.0.8
- version: 2.1.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ version: 2.1.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
'@formatjs/intl-displaynames':
specifier: ^7.3.9
version: 7.3.9
@@ -328,40 +334,40 @@ importers:
version: 1.6.5
'@growthbook/growthbook-react':
specifier: ^1.6.5
- version: 1.6.5(react@19.1.0)
+ version: 1.6.5(react@19.2.3)
'@ipld/dag-cbor':
specifier: ^9.2.7
version: 9.2.7
'@lingui/core':
specifier: ^5.9.2
- version: 5.9.5(@lingui/babel-plugin-lingui-macro@5.9.5(@typescript/typescript6@6.0.2))
+ version: 5.9.5(@lingui/babel-plugin-lingui-macro@5.9.5(@typescript/typescript6@6.0.2)(supports-color@8.1.1))
'@lingui/react':
specifier: ^5.9.2
- version: 5.9.5(@lingui/babel-plugin-lingui-macro@5.9.5(@typescript/typescript6@6.0.2))(react@19.1.0)
+ version: 5.9.5(@lingui/babel-plugin-lingui-macro@5.9.5(@typescript/typescript6@6.0.2)(supports-color@8.1.1))(react@19.2.3)
'@react-native-async-storage/async-storage':
specifier: 2.2.0
- version: 2.2.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))
+ version: 2.2.0(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))
'@react-navigation/bottom-tabs':
specifier: ^7.15.5
- version: 7.16.0(91eab7bd987834c4c877d5cbf9d3796c)
+ version: 7.16.0(69582b62b99c5a25dfa1fbf4667c7e56)
'@react-navigation/native':
specifier: ^7.1.33
- version: 7.2.4(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 7.2.4(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
'@react-navigation/native-stack':
specifier: ^7.14.4
- version: 7.15.0(91eab7bd987834c4c877d5cbf9d3796c)
+ version: 7.15.0(69582b62b99c5a25dfa1fbf4667c7e56)
'@sentry/react-native':
specifier: ~8.18.0
- version: 8.18.0(@expo/env@2.0.11)(dotenv@16.6.1)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 8.18.0(@expo/env@2.4.2(supports-color@8.1.1))(dotenv@16.6.1)(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
'@tanstack/query-async-storage-persister':
specifier: ^5.96.2
version: 5.100.10
'@tanstack/react-query':
specifier: ^5.96.2
- version: 5.100.10(react@19.1.0)
+ version: 5.100.10(react@19.2.3)
'@tanstack/react-query-persist-client':
specifier: ^5.96.2
- version: 5.100.10(@tanstack/react-query@5.100.10(react@19.1.0))(react@19.1.0)
+ version: 5.100.10(@tanstack/react-query@5.100.10(react@19.2.3))(react@19.2.3)
'@tiptap/core':
specifier: ^2.9.1
version: 2.27.2(@tiptap/pm@2.27.2)
@@ -391,7 +397,7 @@ importers:
version: 2.27.2
'@tiptap/react':
specifier: ^2.9.1
- version: 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ version: 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
'@tiptap/suggestion':
specifier: ^2.9.1
version: 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)
@@ -432,116 +438,119 @@ importers:
specifier: ^5.0.1
version: 5.0.4
expo:
- specifier: 54.0.35
- version: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: 57.0.8
+ version: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
expo-age-range:
- specifier: 0.2.18
- version: 0.2.18(patch_hash=c325225749993424461eeece1d97a99b19c00da2ebc958a73c12e4eca0c39306)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))
+ specifier: 57.0.2
+ version: 57.0.2(patch_hash=c325225749993424461eeece1d97a99b19c00da2ebc958a73c12e4eca0c39306)(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))
expo-application:
- specifier: ~7.0.8
- version: 7.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
+ specifier: ~57.0.2
+ version: 57.0.2(expo@57.0.8)
expo-asset:
- specifier: ~12.0.13
- version: 12.0.13(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: ~57.0.7
+ version: 57.0.12(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1)
expo-blur:
- specifier: ~15.0.8
- version: 15.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: ~57.0.2
+ version: 57.0.2(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
expo-build-properties:
- specifier: ~1.0.10
- version: 1.0.10(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
+ specifier: ~57.0.7
+ version: 57.0.12(expo@57.0.8)
expo-camera:
- specifier: ~17.0.10
- version: 17.0.10(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: ~57.0.3
+ version: 57.0.3(@types/emscripten@1.41.5)(expo@57.0.8)(react-native-web@0.21.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
expo-clipboard:
- specifier: ~8.0.8
- version: 8.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: ~57.0.1
+ version: 57.0.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
expo-contacts:
- specifier: ^15.0.10
- version: 15.0.11(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: ^57.0.2
+ version: 57.0.4(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
expo-dev-client:
- specifier: ~6.0.20
- version: 6.0.21(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
+ specifier: ~57.0.9
+ version: 57.0.13(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))
expo-device:
- specifier: ~8.0.10
- version: 8.0.10(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
+ specifier: ~57.0.1
+ version: 57.0.1(expo@57.0.8)
expo-file-system:
- specifier: ~19.0.21
- version: 19.0.22(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))
+ specifier: ~57.0.1
+ version: 57.0.4(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))
expo-font:
- specifier: ~14.0.11
- version: 14.0.11(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: ~57.0.1
+ version: 57.0.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
expo-glass-effect:
- specifier: 0.1.10
- version: 0.1.10(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: 57.0.1
+ version: 57.0.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
expo-haptics:
- specifier: ~15.0.8
- version: 15.0.8(patch_hash=b33910ba2753c4eccdc885b449e6e33aa90b9cefa75ca8639762a26013141410)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
+ specifier: ~57.0.1
+ version: 57.0.1(patch_hash=b33910ba2753c4eccdc885b449e6e33aa90b9cefa75ca8639762a26013141410)(expo@57.0.8)
expo-image:
- specifier: ~3.0.11
- version: 3.0.11(patch_hash=6d46ffac33426c5285777da5bf5f88c68c8ce27290595dfa65f38c478930c2c4)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: 57.0.1
+ version: 57.0.1(expo@57.0.8)(react-native-web@0.21.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
expo-image-manipulator:
- specifier: ~14.0.8
- version: 14.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
+ specifier: ~57.0.6
+ version: 57.0.10(expo@57.0.8)
expo-image-picker:
- specifier: ~17.0.10
- version: 17.0.11(patch_hash=47b28f6ddb8bcaa6483f8714c82daaa0001122f2b0dac6c05d19e98a61a6ceab)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
+ specifier: ~57.0.6
+ version: 57.0.11(expo@57.0.8)
expo-intent-launcher:
- specifier: ~13.0.8
- version: 13.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
+ specifier: ~57.0.1
+ version: 57.0.1(expo@57.0.8)
expo-keep-awake:
- specifier: ~15.0.8
- version: 15.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react@19.1.0)
+ specifier: ~57.0.1
+ version: 57.0.1(expo@57.0.8)(react@19.2.3)
expo-linear-gradient:
- specifier: ~15.0.8
- version: 15.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: ~57.0.1
+ version: 57.0.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
expo-linking:
- specifier: ~8.0.11
- version: 8.0.12(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: ~57.0.4
+ version: 57.0.6(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1)
expo-localization:
- specifier: ~17.0.8
- version: 17.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react@19.1.0)
+ specifier: ~57.0.1
+ version: 57.0.1(expo@57.0.8)(react@19.2.3)
expo-location:
- specifier: ~19.0.8
- version: 19.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
+ specifier: ~57.0.6
+ version: 57.0.11(expo@57.0.8)
expo-media-library:
- specifier: ~18.2.1
- version: 18.2.1(patch_hash=2b84c17999bb0c977eaef7fa8ac297f7074d91c94fb63726b42d2a277b26b39a)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))
+ specifier: 57.0.3
+ version: 57.0.3(patch_hash=2b84c17999bb0c977eaef7fa8ac297f7074d91c94fb63726b42d2a277b26b39a)(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))
+ expo-modules-core:
+ specifier: 57.0.8
+ version: 57.0.8(patch_hash=86e57bb33bc6c3f7021e948e099c2b5378772147b92a82a16e2e90ddcb857ace)(c6ee2c3257efee1775b3ba0a37d05090)
expo-notifications:
- specifier: ~0.32.17
- version: 0.32.17(patch_hash=a45a8dcf3d8c4b5df4ee0e62bc79b755fcf9d28ca51a6f685b85830bf4afc2e5)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: 57.0.7
+ version: 57.0.7(patch_hash=542d7d2024b364ba601b7f2af041353dccde555db0e6ecf0b5948c90e6b33a75)(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1)
expo-paste-input:
specifier: ^0.2.1
- version: 0.2.1(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 0.2.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
expo-privacy-sensitive:
specifier: ^0.2.0
- version: 0.2.0(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 0.2.0(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
expo-screen-orientation:
- specifier: ~9.0.8
- version: 9.0.9(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))
+ specifier: ~57.0.1
+ version: 57.0.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))
expo-sharing:
- specifier: ~14.0.8
- version: 14.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
+ specifier: ~57.0.7
+ version: 57.0.13(@typescript/typescript6@6.0.2)(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1)
expo-sms:
- specifier: ^14.0.7
- version: 14.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
+ specifier: ^57.0.1
+ version: 57.0.1(expo@57.0.8)
expo-splash-screen:
- specifier: ~31.0.13
- version: 31.0.13(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
+ specifier: ~57.0.5
+ version: 57.0.7(@typescript/typescript6@6.0.2)(expo@57.0.8)(supports-color@8.1.1)
expo-system-ui:
- specifier: ~6.0.9
- version: 6.0.9(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))
+ specifier: ~57.0.1
+ version: 57.0.2(expo@57.0.8)(react-native-web@0.21.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(supports-color@8.1.1)
expo-updates:
- specifier: ~29.0.17
- version: 29.0.17(patch_hash=04f28cb005b770e9ae8f0065eab96e43cbb1e58107f5f6ad1bdd18f6deb66487)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: 57.0.10
+ version: 57.0.10(patch_hash=04f28cb005b770e9ae8f0065eab96e43cbb1e58107f5f6ad1bdd18f6deb66487)(expo-dev-client@57.0.13(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)))(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1)
expo-video:
- specifier: ~3.0.16
- version: 3.0.16(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: ~57.0.2
+ version: 57.0.2(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
expo-video-thumbnails:
- specifier: ^10.0.8
- version: 10.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
+ specifier: ^57.0.1
+ version: 57.0.1(expo@57.0.8)
expo-web-browser:
- specifier: ~15.0.10
- version: 15.0.11(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))
+ specifier: ~57.0.2
+ version: 57.0.2(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))
fast-deep-equal:
specifier: ^3.1.3
version: 3.1.3
@@ -598,106 +607,106 @@ importers:
version: 1.9.0
radix-ui:
specifier: ^1.4.3
- version: 1.4.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ version: 1.4.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
react:
- specifier: 19.1.0
- version: 19.1.0
+ specifier: 19.2.3
+ version: 19.2.3
react-compiler-runtime:
- specifier: 19.1.0-rc.3
- version: 19.1.0-rc.3(react@19.1.0)
+ specifier: 1.0.0
+ version: 1.0.0(react@19.2.3)
react-dom:
- specifier: 19.1.0
- version: 19.1.0(react@19.1.0)
+ specifier: 19.2.3
+ version: 19.2.3(react@19.2.3)
react-hotkeys-hook:
specifier: 5.2.4
- version: 5.2.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ version: 5.2.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
react-image-crop:
specifier: ^11.0.7
- version: 11.0.10(react@19.1.0)
+ version: 11.0.10(react@19.2.3)
react-is:
specifier: '19'
version: 19.2.6
react-keyed-flatten-children:
specifier: ^5.0.0
- version: 5.1.2(react-is@19.2.6)(react@19.1.0)
+ version: 5.1.2(react-is@19.2.6)(react@19.2.3)
react-native:
- specifier: 0.81.5
- version: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ specifier: 0.86.0
+ version: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
react-native-compressor:
specifier: 1.13.0
- version: 1.13.0(patch_hash=58379dfaace6ced8590cb341c77f2ca8099dfa8f7df6297032ec51de767a9925)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 1.13.0(patch_hash=58379dfaace6ced8590cb341c77f2ca8099dfa8f7df6297032ec51de767a9925)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
react-native-date-picker:
specifier: ^5.0.13
- version: 5.0.13(patch_hash=92943fb79d17d7342a29bbb12b0d8ee3cf6f7bca12ed322dc8d124a3e9fb75bd)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 5.0.13(patch_hash=92943fb79d17d7342a29bbb12b0d8ee3cf6f7bca12ed322dc8d124a3e9fb75bd)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
react-native-device-attest:
specifier: ^0.1.6
- version: 0.1.6(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 0.1.6(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
react-native-drawer-layout:
specifier: ^4.2.3
- version: 4.2.3(patch_hash=74f2c043cc22ab87054f219e7c7373a509b779b18bfa79d27e7d051d73355130)(f8669ab0fde0772e831a7516fba74dd4)
+ version: 4.2.3(patch_hash=74f2c043cc22ab87054f219e7c7373a509b779b18bfa79d27e7d051d73355130)(ac885d87795f1c83dff851cd6dfdabcc)
react-native-edge-to-edge:
specifier: ^1.8.1
- version: 1.8.1(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 1.8.1(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
react-native-gesture-handler:
- specifier: ~2.30.0
- version: 2.30.1(patch_hash=39b9e51b3977fae8ff61764b8c32934fe3fbddaf21587b4661fd73b7c6dd325b)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: ~2.32.0
+ version: 2.32.0(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
react-native-keyboard-controller:
- specifier: ^1.21.8
- version: 1.21.8(patch_hash=ac52bf7502ff3ad34a8594b5e1a916b96bf87a2523b6abc87c31f03607d52271)(react-native-reanimated@4.3.2(patch_hash=ab1c095bc473ec5bfd9ead76e870c566660e355e11c5078cfdeb35922d7b2f05)(react-native-worklets@0.8.3(patch_hash=f7263a59ae1c0170af8dfe9a5704cb374d29214a430b4b2841f9b7886c9ba8ad)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: 1.21.9
+ version: 1.21.9(patch_hash=ac52bf7502ff3ad34a8594b5e1a916b96bf87a2523b6abc87c31f03607d52271)(react-native-reanimated@4.5.3(patch_hash=cb7a94c574c89fae48a259ea1ba4c4c97b1db634237336237805491b7c1234de)(c6ee2c3257efee1775b3ba0a37d05090))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
react-native-mmkv:
specifier: ^3.3.3
- version: 3.3.3(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 3.3.3(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
react-native-pager-view:
specifier: 6.8.0
- version: 6.8.0(patch_hash=c8316acd33c9aef6531e8c272c2bfab7bd02af1255969eeaab2bad5ab48531cc)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 6.8.0(patch_hash=c8316acd33c9aef6531e8c272c2bfab7bd02af1255969eeaab2bad5ab48531cc)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
react-native-progress:
specifier: ^5.0.1
- version: 5.0.1(react-native-svg@15.12.1(patch_hash=ae309e9542214f5ae54935e253dedd236765feedac7be343f81d532d7fe09310)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
+ version: 5.0.1(react-native-svg@15.15.4(patch_hash=ae309e9542214f5ae54935e253dedd236765feedac7be343f81d532d7fe09310)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3))
react-native-qrcode-styled:
specifier: ^0.3.3
- version: 0.3.3(react-native-svg@15.12.1(patch_hash=ae309e9542214f5ae54935e253dedd236765feedac7be343f81d532d7fe09310)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ version: 0.3.3(react-native-svg@15.15.4(patch_hash=ae309e9542214f5ae54935e253dedd236765feedac7be343f81d532d7fe09310)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
react-native-reanimated:
- specifier: 4.3.2
- version: 4.3.2(patch_hash=ab1c095bc473ec5bfd9ead76e870c566660e355e11c5078cfdeb35922d7b2f05)(react-native-worklets@0.8.3(patch_hash=f7263a59ae1c0170af8dfe9a5704cb374d29214a430b4b2841f9b7886c9ba8ad)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: 4.5.3
+ version: 4.5.3(patch_hash=cb7a94c574c89fae48a259ea1ba4c4c97b1db634237336237805491b7c1234de)(c6ee2c3257efee1775b3ba0a37d05090)
react-native-safe-area-context:
- specifier: ~5.6.0
- version: 5.6.2(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: ~5.7.0
+ version: 5.7.0(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
react-native-screens:
- specifier: 4.24.0
- version: 4.24.0(patch_hash=74a74b489f8074a1974c2792c9c97aec30d8e251669aa37fc5c99993bb4a19e6)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: 4.26.2
+ version: 4.26.2(patch_hash=ba3295d44434a729f143a6b2c24e4a9b2f911ab200b2bc47e46cdfeaa1536f7c)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
react-native-scroll-forwarder:
specifier: link:./modules/react-native-scroll-forwarder
version: link:modules/react-native-scroll-forwarder
react-native-svg:
- specifier: 15.12.1
- version: 15.12.1(patch_hash=ae309e9542214f5ae54935e253dedd236765feedac7be343f81d532d7fe09310)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: 15.15.4
+ version: 15.15.4(patch_hash=ae309e9542214f5ae54935e253dedd236765feedac7be343f81d532d7fe09310)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
react-native-uuid:
specifier: ^2.0.3
version: 2.0.4
react-native-view-shot:
- specifier: ^4.0.3
- version: 4.0.3(patch_hash=a2457dc30a82cc8c21f371a6f860d9396d450a2a1b4265b1a4ee13bdb24d3268)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: ^5.1.0
+ version: 5.1.1(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
react-native-web:
specifier: ^0.21.0
- version: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ version: 0.21.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
react-native-web-webview:
specifier: ^1.0.2
- version: 1.0.2(file-loader@6.2.0(webpack@5.106.2(postcss@8.5.14)))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))
+ version: 1.0.2(file-loader@6.2.0(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)))(react-native-web@0.21.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))
react-native-webview:
- specifier: ^13.15.0
- version: 13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: ^13.16.1
+ version: 13.17.0(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
react-native-worklets:
- specifier: 0.8.3
- version: 0.8.3(patch_hash=f7263a59ae1c0170af8dfe9a5704cb374d29214a430b4b2841f9b7886c9ba8ad)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: 0.11.3
+ version: 0.11.3(patch_hash=8ebbcf528fc731459ac4a4eff612a50dfb7e24462a9df201e4aaa81a201343f0)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1)
react-remove-scroll-bar:
specifier: ^2.3.8
- version: 2.3.8(@types/react@19.1.17)(react@19.1.0)
+ version: 2.3.8(@types/react@19.2.18)(react@19.2.3)
react-responsive:
specifier: ^10.0.1
- version: 10.0.1(react@19.1.0)
+ version: 10.0.1(react@19.2.3)
react-textarea-autosize:
specifier: ^8.5.3
- version: 8.5.9(@types/react@19.1.17)(react@19.1.0)
+ version: 8.5.9(@types/react@19.2.18)(react@19.2.3)
setimmediate:
specifier: ^1.0.5
version: 1.0.5
@@ -706,10 +715,10 @@ importers:
version: 1.6.9
sonner:
specifier: ^2.0.7
- version: 2.0.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ version: 2.0.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
sonner-native:
specifier: 0.26.4
- version: 0.26.4(c538f2bb3fa64bd80a9a262f75d56c17)
+ version: 0.26.4(669e6adb8ceb9d91fb46b2f510aae203)
tippy.js:
specifier: ^6.3.7
version: 6.3.7
@@ -728,10 +737,10 @@ importers:
devDependencies:
'@babel/core':
specifier: ^7.26.0
- version: 7.29.0
+ version: 7.29.0(supports-color@8.1.1)
'@babel/preset-env':
specifier: ^7.26.0
- version: 7.29.5(@babel/core@7.29.0)
+ version: 7.29.5(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
'@babel/runtime':
specifier: ^7.26.0
version: 7.29.2
@@ -740,25 +749,28 @@ importers:
version: 4.14.2
'@lingui/babel-plugin-lingui-macro':
specifier: ^5.9.2
- version: 5.9.5(@typescript/typescript6@6.0.2)
+ version: 5.9.5(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
'@lingui/cli':
specifier: ^5.9.2
- version: 5.9.5(@typescript/typescript6@6.0.2)
+ version: 5.9.5(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
'@pmmmwh/react-refresh-webpack-plugin':
specifier: ^0.5.15
- version: 0.5.17(react-refresh@0.14.2)(type-fest@1.4.0)(webpack-dev-server@4.15.2(webpack@5.106.2(postcss@8.5.14)))(webpack@5.106.2(postcss@8.5.14))
+ version: 0.5.17(react-refresh@0.14.2)(type-fest@1.4.0)(webpack-dev-server@4.15.2(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))
'@react-native/babel-preset':
- specifier: 0.81.5
- version: 0.81.5(@babel/core@7.29.0)
+ specifier: 0.86.0
+ version: 0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@react-native/jest-preset':
+ specifier: 0.86.0
+ version: 0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1)
'@react-native/typescript-config':
specifier: ^0.81.5
version: 0.81.6
'@sentry/webpack-plugin':
specifier: ^3.2.2
- version: 3.6.1(webpack@5.106.2(postcss@8.5.14))
+ version: 3.6.1(supports-color@8.1.1)(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))
'@testing-library/react-native':
specifier: ^13.2.0
- version: 13.3.3(jest@29.7.0(@types/node@24.12.4))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react-test-renderer@19.1.0(react@19.1.0))(react@19.1.0)
+ version: 13.3.3(jest@29.7.0(@types/node@24.12.4)(supports-color@8.1.1))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react-test-renderer@19.2.3(react@19.2.3))(react@19.2.3)
'@types/jest':
specifier: 29.5.14
version: 29.5.14
@@ -775,44 +787,38 @@ importers:
specifier: 1.1.1
version: 1.1.1
'@types/react':
- specifier: ^19.1.17
- version: 19.1.17
+ specifier: ^19.2.17
+ version: 19.2.18
'@types/react-dom':
- specifier: ^19.1.11
- version: 19.1.11(@types/react@19.1.17)
+ specifier: ^19.2.3
+ version: 19.2.4(@types/react@19.2.18)
'@typescript/native':
specifier: npm:typescript@^7.0.2
version: typescript@7.0.2
babel-jest:
specifier: ^29.7.0
- version: 29.7.0(@babel/core@7.29.0)
+ version: 29.7.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
babel-plugin-module-resolver:
specifier: ^5.0.2
version: 5.0.3
babel-plugin-react-compiler:
- specifier: 19.1.0-rc.3
- version: 19.1.0-rc.3
+ specifier: 1.0.0
+ version: 1.0.0
babel-preset-expo:
- specifier: ~54.0.10
- version: 54.0.10(@babel/core@7.29.0)(@babel/runtime@7.29.2)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-refresh@0.14.2)
+ specifier: ~57.0.4
+ version: 57.0.7(@babel/core@7.29.0(supports-color@8.1.1))(@babel/runtime@7.29.2)(expo@57.0.8)(react-refresh@0.14.2)(supports-color@8.1.1)
eslint-plugin-bsky-internal:
- specifier: link:eslint
- version: link:eslint
- eslint-plugin-react-compiler:
- specifier: 19.1.0-rc.2
- version: 19.1.0-rc.2(eslint@eslint)
- eslint-plugin-react-native:
- specifier: ^5.0.0
- version: 5.0.0(eslint@eslint)
+ specifier: link:lint-rules
+ version: link:lint-rules
eslint-plugin-react-native-a11y:
specifier: ^3.5.1
- version: 3.5.1(eslint@eslint)
+ version: 3.5.1(eslint@8.57.1(supports-color@8.1.1))
eslint-plugin-simple-import-sort:
specifier: ^13.0.0
- version: 13.0.0(eslint@eslint)
+ version: 13.0.0(eslint@8.57.1(supports-color@8.1.1))
file-loader:
specifier: 6.2.0
- version: 6.2.0(webpack@5.106.2(postcss@8.5.14))
+ version: 6.2.0(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))
globals:
specifier: ^17.0.0
version: 17.6.0
@@ -824,10 +830,10 @@ importers:
version: 3.0.1
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@24.12.4)
+ version: 29.7.0(@types/node@24.12.4)(supports-color@8.1.1)
jest-expo:
- specifier: ~54.0.17
- version: 54.0.17(@babel/core@7.29.0)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(jest@29.7.0(@types/node@24.12.4))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ specifier: ~57.0.2
+ version: 57.0.4(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(expo@57.0.8)(jest@29.7.0(@types/node@24.12.4)(supports-color@8.1.1))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1)
jest-junit:
specifier: ^16.0.0
version: 16.0.0
@@ -835,8 +841,8 @@ importers:
specifier: ^17.0.8
version: 17.0.8
node:
- specifier: runtime:^24.18.0
- version: runtime:24.18.0
+ specifier: runtime:^24.19.0
+ version: runtime:24.19.0
oxlint:
specifier: ^1.73.0
version: 1.73.0(oxlint-tsgolint@7.0.2001)
@@ -844,11 +850,11 @@ importers:
specifier: ^7.0.2001
version: 7.0.2001
prettier:
- specifier: ^3.8.3
- version: 3.8.3
+ specifier: 3.9.6
+ version: 3.9.6
react-native-dotenv:
specifier: ^3.4.11
- version: 3.4.11(@babel/runtime@7.29.2)
+ version: 3.4.11(patch_hash=16b34eb974399935d3cf7c2526534f906991ccd876215176658347059cdd2021)(@babel/runtime@7.29.2)
react-refresh:
specifier: ^0.14.0
version: 0.14.2
@@ -867,58 +873,99 @@ importers:
packages:
- '@0no-co/graphql.web@1.2.0':
- resolution: {integrity: sha512-/1iHy9TTr63gE1YcR5idjx8UREz1s0kFhydf3bBLCXyqjhkIc6igAzTOx3zPifCwFR87tsh/4Pa9cNts6d2otw==}
- peerDependencies:
- graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
- peerDependenciesMeta:
- graphql:
- optional: true
-
- '@atproto/api@0.20.39':
- resolution: {integrity: sha512-FRjwAmYe0kKlWsAe8IvfbmAAKyjpXnl2NV67vWEEjux0FwIEIG6JbOo6YkD5tjK2xjL0Daa429R0E8phmxRrrQ==}
+ '@atproto-labs/did-resolver@0.3.7':
+ resolution: {integrity: sha512-F3M3U5cU1QSAXX3J5auGEc5N2pgDgpirAjvyDFsytXuyWfrjWfTPd/H+DZrrED7gK+noW0cAWtxxjdX7/cTSVQ==}
engines: {node: '>=22'}
- '@atproto/common-web@0.5.7':
- resolution: {integrity: sha512-lvU8lFO5UByacsl3AReXkpTWjcPBS8mBqt40B45HwCt+s58a+xT/YI/+AUpmzSmsPVZCpeCmP6wgsOSC8RILXg==}
+ '@atproto-labs/fetch@0.3.5':
+ resolution: {integrity: sha512-iDFZEoNqfL17EVKE+uNzdUD7YF8LWhEhxeBtP6x+PNuAxoXv3ip9vLmB8nNzNxFwVn++FipfDtSiPqmziv1bdA==}
+ engines: {node: '>=22'}
+
+ '@atproto-labs/handle-resolver@0.4.8':
+ resolution: {integrity: sha512-38I+j8Efs+cCgW/NX9RFKKu7qv/AF+FqxlKS8sWjXlNZSHQZqPj5cnKVQhSsJCs4ypPB84iKch8w4/STd33bLg==}
+ engines: {node: '>=22'}
+
+ '@atproto-labs/pipe@0.2.4':
+ resolution: {integrity: sha512-n67jCcrC+ouAeO10cWkpPzzLMlDi/lDCU30Us+LGqhOPhT6c4t5ASdBLQi9W3jUQtRzQBt3G9zipF+xKWNvVbw==}
+ engines: {node: '>=22'}
+
+ '@atproto-labs/simple-store-memory@0.2.6':
+ resolution: {integrity: sha512-DD1v7MEfYF3BAcEpMTTpzfBLWLoI2HuyBhku2YpjHoqPrRrhCtE1alkxfPHjtjJVIjuU/XNU0cF/wB3+5FiKsA==}
+ engines: {node: '>=22'}
+
+ '@atproto-labs/simple-store@0.5.1':
+ resolution: {integrity: sha512-vfvoDhu6ds6BT3Pqe+d2/LBU1WpDRtt69y6zltlfMCoucPm82m1j50/Wb6xTvv+oZ+2j0JyZVXsmXQ12SWYQJg==}
engines: {node: '>=22'}
'@atproto/common-web@0.5.9':
resolution: {integrity: sha512-2c5C6YV8352JJz9Z5fNfcsstllaKGAb3cQW9aO7unMAGh/FzTGFq+xOwNMW2lTeagO6z530uxYm8AiSRM6O+DQ==}
engines: {node: '>=22'}
- '@atproto/lex-data@0.1.6':
- resolution: {integrity: sha512-rvovRrYWDEuerX+ZeQbdI5dKs0bYvuMjhwDOtT+pkOvdY4MkfN41DJCz/RAYVAQ7noPdaalB6pAX9euukheE/w==}
+ '@atproto/common@0.8.0':
+ resolution: {integrity: sha512-fBtd08LdouLqNaL8SaGLEIa0l3Ue27yR810jhUu+iBv/xdoXp+1G0pxvPe6JUStH7YGtf/v/v0w/cRGh1xUOaA==}
+ engines: {node: '>=22'}
+
+ '@atproto/crypto@0.5.4':
+ resolution: {integrity: sha512-UR0BkuYNYuFtw+dA+y/oPPxzX0SWRnGJ+1Cfh/jGP1BvjRUyezK3omjpeLms5fYrXbM9vnfX+ckJFJqkBgLOdw==}
+ engines: {node: '>=22'}
+
+ '@atproto/did@0.5.4':
+ resolution: {integrity: sha512-BlnwQ+obL+4ZA71KH/EzZ3TY+cpSxnLiUI85mjBJIQwvDF/oN2sQA18wIj9jpduviIt2b/cMtlJuzHjzBkfXvw==}
+ engines: {node: '>=22'}
+
+ '@atproto/lex-builder@0.1.12':
+ resolution: {integrity: sha512-uo3mcdoOgqBfQnf+PhYYLNEBdUTgoNe2ARYb3cUaiec8O0oritOeZndUDgmths06ACrlqFkZNTV1YJX6CsH71g==}
+ engines: {node: '>=22'}
+
+ '@atproto/lex-cbor@0.1.6':
+ resolution: {integrity: sha512-PxLQy7jzV8u9zTGURNF8ZczLPk+ZH+WNx/2z/z7RacJbu7sWNpx26U2pC7cIkWtt4jyDaruaLhssw3w3atLotA==}
+ engines: {node: '>=22'}
+
+ '@atproto/lex-client@0.3.3':
+ resolution: {integrity: sha512-sWChe7Jukm9uxDfxT6ElICp6vMTqAFmwcHdSLdMDtsKBZSrwO7vWL9F6rpoMPyxS29Ob9nNAhMg30kKfZrb+uw==}
engines: {node: '>=22'}
'@atproto/lex-data@0.1.7':
resolution: {integrity: sha512-kW/dPLqo/WgCLV+XESR4JKwV6c1rZWJGOfuPupZGTjEDAKoBbKXdaEzX9/1vKQYbZ9U3j0DS/n7OFFK7wBugyQ==}
engines: {node: '>=22'}
- '@atproto/lex-json@0.1.5':
- resolution: {integrity: sha512-qOp6+Za5p/xDXACYIP3vySbKaf9CJDwiZEN78ghPT1gRoJohKG3ONt/WmvOxBVJqc6VTRaqEpbG9vX9oLF2qsA==}
+ '@atproto/lex-document@0.1.9':
+ resolution: {integrity: sha512-TmpwttQ9pKCXlvwUlJ/5HMZPtJMFBvgZ1bunEeQD5JfU6n/sgK/fob8tfjhTdL2QrpZMtM6opMEk3w5STm1RDQ==}
+ engines: {node: '>=22'}
+
+ '@atproto/lex-installer@0.1.15':
+ resolution: {integrity: sha512-4/xDyY7yxxs66vF0WZB+7fcuEy4I5IRDyDoQFzLQx7C6PlQ76/e/PxvYTff7x0/N6hknmOlANODnnxo3rtdnCA==}
engines: {node: '>=22'}
'@atproto/lex-json@0.1.6':
resolution: {integrity: sha512-mvrAd0lbyuecIHjyld8QN6MN6CBf4j0GCxLzegsvLh0SvDf+GbYWklkcQqmITL44yFQOwmA/QNIQj0Uvh7+R/g==}
engines: {node: '>=22'}
- '@atproto/lexicon@0.7.11':
- resolution: {integrity: sha512-ukCZMCWmiu7fAlssBbLs+IMaf2K2R9mADaTKz2jEeC/xeZ3jT77Ka0S2G+ELBB+Dc9ijBACU0iPMQLhquOkuzQ==}
+ '@atproto/lex-password-session@0.2.0':
+ resolution: {integrity: sha512-u958Etax/bPVr9FWko+/B5nRcU1klQHvrdiVtYb4lkgrM6uvV7BvaFJZYEu5DzlEeqNAZ9a65PmbC1F5oyUBjQ==}
engines: {node: '>=22'}
- '@atproto/syntax@0.7.2':
- resolution: {integrity: sha512-tZ1Tr0R9pK4bI4Zs69t29cjMlCFQvRNBeNkqJC5pGeNuCt64D0eoF7s/AlqeVmYppClmQ0xJquggGgsMDP6j7w==}
+ '@atproto/lex-resolver@0.2.8':
+ resolution: {integrity: sha512-j3dIxeEAStp/RzJS4MECRDPuOFX41mX9fnteGgrQhe9053eRuTnl2oTyJbV7rKgzy+hEI4jH6X6Y4wOStjUb/Q==}
+ engines: {node: '>=22'}
+
+ '@atproto/lex-schema@0.2.5':
+ resolution: {integrity: sha512-/tP3dRqaZu0EIoq0BSVzhvFGL6u0uu2KFDV21i73DpFsg6TXOTddKJ9bvgK83XdAJYL7PWi703XsaR31v9u5Qg==}
+ engines: {node: '>=22'}
+
+ '@atproto/lex@0.3.6':
+ resolution: {integrity: sha512-8Hpc6MbfkPJKaO5CvvIerEylbihI5GfrY5DzapZD4rV2TWfm3RU+DzeRpsxQJ0W9WOZRYvp1JnBcq/gZ48Qb0g==}
+ engines: {node: '>=22'}
+ hasBin: true
+
+ '@atproto/repo@0.10.11':
+ resolution: {integrity: sha512-QqDzEv8d6NUuqZ0xvWG+n8DfWd4Vuka04nyuD9oglKsj5avB1zbEsWx3Oit1oYtZFUf9JSVWMDqMXhu3UbB+lA==}
engines: {node: '>=22'}
'@atproto/syntax@0.7.4':
resolution: {integrity: sha512-EHsEHtasH/DGPljBYecVDjweGMQ5eTu6Ns0GZ5z0qdqpOI8ipBvldWnMIxWkA+5HfZ9Dsu4V1MX0WP7wgL8cuA==}
engines: {node: '>=22'}
- '@atproto/xrpc@0.8.10':
- resolution: {integrity: sha512-++FNpTVF61fF8+3Kk1RYtdTO7xyUTdIc/Cmfk2CMn29Qw9tZD8bmW+M5db1Z0okYWFWK8Wqu7bc9VmF8tUB8Jg==}
- engines: {node: '>=22'}
-
'@babel/code-frame@7.10.4':
resolution: {integrity: sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==}
@@ -1082,13 +1129,6 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-proposal-private-methods@7.18.6':
- resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==}
- engines: {node: '>=6.9.0'}
- deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
'@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2':
resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
engines: {node: '>=6.9.0'}
@@ -1592,12 +1632,6 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
- '@babel/preset-react@7.28.5':
- resolution: {integrity: sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
'@babel/preset-typescript@7.28.5':
resolution: {integrity: sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==}
engines: {node: '>=6.9.0'}
@@ -1716,6 +1750,12 @@ packages:
react: '*'
react-native: '*'
+ '@bsky/sdk@1.0.1':
+ resolution: {integrity: sha512-COhrmIZFsUJ1gj4gvqm2UWkRhTbmXZAL1osTZKgSaFftD4Xy0RRl8S9SRluCxo4/VPw/R3p7NQZ4X3BQFbUjVQ==}
+ engines: {node: '>=22.12.0'}
+ peerDependencies:
+ '@atproto/lex': ^0.3.0
+
'@crowdin/cli@4.14.2':
resolution: {integrity: sha512-JRrHvitc0w+r/h6XXSOq917HxsjRoxPEtyNYSmylKirjiPNrRx84VKtqFlOIWIFCOZI5BoXg6hNpE0Zq7CwVBA==}
hasBin: true
@@ -1893,8 +1933,26 @@ packages:
cpu: [x64]
os: [win32]
- '@expo/cli@54.0.25':
- resolution: {integrity: sha512-WnUqIb8oMBhtwSfIqdCHCzcaDIpLNXItRVd5miuvWi4GO0SGo89PSsAkbVJ+LJgcaY+v5rbgMELJS9I/CqOulA==}
+ '@eslint-community/eslint-utils@4.10.1':
+ resolution: {integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+
+ '@eslint-community/regexpp@4.12.2':
+ resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ '@eslint/eslintrc@2.1.4':
+ resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ '@eslint/js@8.57.1':
+ resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ '@expo/cli@57.0.16':
+ resolution: {integrity: sha512-+HyMY2nAS6QBJb0nSeMz92p11bZ1AtWSRnhWnklznN07IRoQirisnKq2vr18Ayjb/fnb5F/um+n6FRhF0fZm1Q==}
hasBin: true
peerDependencies:
expo: '*'
@@ -1909,8 +1967,8 @@ packages:
'@expo/code-signing-certificates@0.0.6':
resolution: {integrity: sha512-iNe0puxwBNEcuua9gmTGzq+SuMDa0iATai1FlFTMHJ/vUmKvN/V//drXoLJkVb5i5H3iE/n/qIJxyoBnXouD0w==}
- '@expo/config-plugins@54.0.4':
- resolution: {integrity: sha512-g2yXGICdoOw5i3LkQSDxl2Q5AlQCrG7oniu0pCPPO+UxGb7He4AFqSvPSy8HpRUj55io17hT62FTjYRD+d6j3Q==}
+ '@expo/config-plugins@57.0.8':
+ resolution: {integrity: sha512-x6lx4s/19i39/+1dMPwb9tFCc4WR843dG5Yi+C64lhKL3YHX+6oKrT2Kv72PCEalnUY+usQDkB3NrLSrYOWtDg==}
'@expo/config-plugins@9.1.7':
resolution: {integrity: sha512-8dJzOesaQS+8XuT49pdSHej1z6XG3x2fqN2O3v807ri8uhxm2N9P6+iZBn19xv9+7OxraOc2tH3nEIWE19Za0w==}
@@ -1918,17 +1976,17 @@ packages:
'@expo/config-types@53.0.5':
resolution: {integrity: sha512-kqZ0w44E+HEGBjy+Lpyn0BVL5UANg/tmNixxaRMLS6nf37YsDrLk2VMAmeKMMk5CKG0NmOdVv3ngeUjRQMsy9g==}
- '@expo/config-types@54.0.10':
- resolution: {integrity: sha512-/J16SC2an1LdtCZ67xhSkGXpALYUVUNyZws7v+PVsFZxClYehDSoKLqyRaGkpHlYrCc08bS0RF5E0JV6g50psA==}
+ '@expo/config-types@57.0.2':
+ resolution: {integrity: sha512-ewW08OonrcRIsRKIlFvvcmmafE5zemb1ocu3HkNwtVPyRtj2w42pZCAkMIROYpcVBaPnc3mDT9UZDzwXWC3i6g==}
- '@expo/config@12.0.13':
- resolution: {integrity: sha512-Cu52arBa4vSaupIWsF0h7F/Cg//N374nYb7HAxV0I4KceKA7x2UXpYaHOL7EEYYvp7tZdThBjvGpVmr8ScIvaQ==}
+ '@expo/config@57.0.8':
+ resolution: {integrity: sha512-7VpAu2ZMXNZI0+Kn+nD3vQBIyST89LATNkZpnp/cXh8/aj7zUXO8d/T+hOxsvhOFwR8eQO+jKXEw8tQbidiMxA==}
'@expo/devcert@1.2.1':
resolution: {integrity: sha512-qC4eaxmKMTmJC2ahwyui6ud8f3W60Ss7pMkpBq40Hu3zyiAaugPXnZ24145U7K36qO9UHdZUVxsCvIpz2RYYCA==}
- '@expo/devtools@0.1.8':
- resolution: {integrity: sha512-SVLxbuanDjJPgc0sy3EfXUMLb/tXzp6XIHkhtPVmTWJAp+FOr6+5SeiCfJrCzZFet0Ifyke2vX3sFcKwEvCXwQ==}
+ '@expo/devtools@57.0.1':
+ resolution: {integrity: sha512-GyUf+wFNkbttaX0jR7MZa9bm77U0IrLg6d2AjpxdyoXw/w4abHoXG0oFufwLMgP9zLTd5+Ct4X/ffNUTnlzZgg==}
peerDependencies:
react: '*'
react-native: '*'
@@ -1938,11 +1996,22 @@ packages:
react-native:
optional: true
- '@expo/env@2.0.11':
- resolution: {integrity: sha512-xV+ps6YCW7XIPVUwFVCRN2nox09dnRwy8uIjwHWTODu0zFw4kp4omnVkl0OOjuu2XOe7tdgAHxikrkJt9xB/7Q==}
+ '@expo/dom-webview@57.0.1':
+ resolution: {integrity: sha512-lAKsME4SAq+8sf56oN0DX5TBYyruupoRxbWbD2xf9RnKY8y6x8eb9LCE5pxSN0qyWdqnp+0wmyWzDkKboThKAw==}
+ peerDependencies:
+ expo: '*'
+ react: '*'
+ react-native: '*'
- '@expo/fingerprint@0.15.5':
- resolution: {integrity: sha512-mdVoAMcux1WlM6kd1RoWiHRNqKqS+J6mKmWQ/BKgeh937S/fcW58EE68O6nc4KDXtWi3PBeNHskOFcgyIuD4hw==}
+ '@expo/env@2.4.2':
+ resolution: {integrity: sha512-28pqaEqwnmLduZ00Pq9HkSzE5wbj1MTwp5/n8nm8rD8MCjR9eUnVOwmNksPI3Be2ReAPO/DbPn1puy0mvoocsQ==}
+ engines: {node: '>=20.12.0'}
+
+ '@expo/expo-modules-macros-plugin@0.6.1':
+ resolution: {integrity: sha512-cpsLZE4rqkc1Y3eZTkxB98jrqY1YXgetmtxFt8q89jBRmk3quRuk1BZo+VcnCSObZardjg99r1k5xijEMONFGA==}
+
+ '@expo/fingerprint@0.20.8':
+ resolution: {integrity: sha512-0UOg9dVepR0LO4iUacoFuWZ9GNSUdUkdx9GX+Rj0mRpOTAtavyiem8IfewCAHij3cppqjBic134JD2lUxsZcJw==}
hasBin: true
'@expo/html-elements@0.12.5':
@@ -1951,52 +2020,88 @@ packages:
'@expo/image-utils@0.8.12':
resolution: {integrity: sha512-3KguH7kyKqq7pNwLb9j6BBdD/bjmNwXZG/HPWT6GWIXbwrvAJt2JNyYTP5agWJ8jbbuys1yuCzmkX+TU6rmI7A==}
- '@expo/json-file@10.0.14':
- resolution: {integrity: sha512-yWwBFywFv+SxkJp/pIzzA416JVYflNUh7pqQzgaA6nXDqRyK7KfrqVzk8PdUfDnqbBcaZZxpzNssfQZzp5KHrA==}
+ '@expo/inline-modules@0.1.6':
+ resolution: {integrity: sha512-5f6EiOIKsFj9zlrCBet4ZIQRPEa9dBUdQgTzpjYwdZ8Z/M8W5lqMVL9dEs4HYKvEmDnqv0dQuDkFLyRSwu/DAQ==}
- '@expo/json-file@10.0.16':
- resolution: {integrity: sha512-fcVkWEj+hLuP2yt5W0aw6LmDRqSPWDLUSxOMcmFeV+algmIF59sQVKCwB9btjQLd4V6x9N0pISkQEkBubUHrCw==}
-
- '@expo/json-file@10.2.0':
- resolution: {integrity: sha512-S6XzKe3R9GQeHiUPXc3xJjOv2VJhOEwFYf7xdC2z2cUqt3kZJ9mSO877sNQloVdnW/SUCtPY3bexlM7nwq+CAQ==}
+ '@expo/json-file@11.0.1':
+ resolution: {integrity: sha512-zxHWj4MKKMAL29ZQSY/Fssx4Thluk40JmuGNaeS078wy/NhlFhnVi+rHHunulE3xJAJ0CM73m8VK2+GkF9eRwQ==}
'@expo/json-file@9.1.5':
resolution: {integrity: sha512-prWBhLUlmcQtvN6Y7BpW2k9zXGd3ySa3R6rAguMJkp1z22nunLN64KYTUWfijFlprFoxm9r2VNnGkcbndAlgKA==}
- '@expo/metro-config@54.0.16':
- resolution: {integrity: sha512-3LLb9ZQl0VlqSlsalJ7+CYjfz60PBoSDHvpE1UF71aTM1Nx0Vb4LhXo7bCCC+PYP9q/GPB58LLbIROQ8PjKX2w==}
+ '@expo/local-build-cache-provider@57.0.6':
+ resolution: {integrity: sha512-6aFMROb1SzIvrefpwhgS5QGNELU9T2lpK0Hcl6oiZ4/mbKgZRk0WEPauo/dHH6IgDmyK25InCMHF5nj7XY4LWg==}
+
+ '@expo/log-box@57.0.3':
+ resolution: {integrity: sha512-qv/cMliNax6es07Un/4IGJIcs4PUuhTKKTrJZX/0X2YRcOT5cqm/QicibZwTIbiZWi1i8P4YBRQTfFT2B17giw==}
+ peerDependencies:
+ '@expo/dom-webview': ^57.0.1
+ expo: '*'
+ react: '*'
+ react-native: '*'
+
+ '@expo/metro-config@57.0.8':
+ resolution: {integrity: sha512-cZOVjbljqRBMCXcloc5k23gsFOhWdiKXhDkp5jU/wY6IXR6G7cYtNOwxKfxI1QLhs0KcXY0gDmZ2UIueoHzY7g==}
peerDependencies:
expo: '*'
peerDependenciesMeta:
expo:
optional: true
- '@expo/metro@54.2.0':
- resolution: {integrity: sha512-h68TNZPGsk6swMmLm9nRSnE2UXm48rWwgcbtAHVMikXvbxdS41NDHHeqg1rcQ9AbznDRp6SQVC2MVpDnsRKU1w==}
+ '@expo/metro-file-map@57.0.1':
+ resolution: {integrity: sha512-8JXfVstZN7QnP4NianZZnlTVboOWR0sG8trUDNajOjnbGlPln29vponXM84tY+3tAHapz5/TxE53L0ixUwqPtA==}
- '@expo/osascript@2.4.3':
- resolution: {integrity: sha512-wbuj3EebM7W9hN/Wp4xTzKd6rQ2zKJzAxkFxkOOwyysLp0HOAgQ4/5RINyoS241pZUX2rUHq7mAJ7pcCQ8U0Ow==}
+ '@expo/metro@56.0.0':
+ resolution: {integrity: sha512-5gIgQHtEpjjvsjKfVtIv23a98LLRV0/y07PDShEwYSytAMlE3FSF8RHXqtHc1sUJL6dn7hnuIBpIbrLXXuVi0A==}
+
+ '@expo/osascript@2.7.1':
+ resolution: {integrity: sha512-Zn03EX6In7ts2lPUW2ESUSkEhEWQN1qqsiXjadtZMJOuZRkMiAg1ZQHuvz9DjByDWNJ2pBwAGyrts9lj9k389g==}
engines: {node: '>=12'}
- '@expo/package-manager@1.10.5':
- resolution: {integrity: sha512-nCP9Mebfl3jvOr0/P6VAuyah6PAtun+aihIL2zAtuE8uSe94JWkVZ7051i0MUVO+y3gFpBqnr8IIH5ch+VJjHA==}
+ '@expo/package-manager@1.13.1':
+ resolution: {integrity: sha512-y/K+CaYYpZpNGZhSX4HyLT/vyIunFjNfyoxNysPBCefeLKI/VCx6f9LNPzrxayr3rCYO5bl9O8H+HRQK265Nkg==}
'@expo/plist@0.3.5':
resolution: {integrity: sha512-9RYVU1iGyCJ7vWfg3e7c/NVyMFs8wbl+dMWZphtFtsqyN9zppGREU3ctlD3i8KUE0sCUTVnLjCWr+VeUIDep2g==}
- '@expo/plist@0.4.8':
- resolution: {integrity: sha512-pfNtErGGzzRwHP+5+RqswzPDKkZrx+Cli0mzjQaus1ZWFsog5ibL+nVT3NcporW51o8ggnt7x813vtRbPiyOrQ==}
+ '@expo/plist@0.8.1':
+ resolution: {integrity: sha512-3gTReGIUm0oRaMClsAJYxBnVPCl6fVpsl8HS+DTVxDhW4GyVyxg9E/Znm3BvcHtUJ51RJJI14pC1wvrNilCRHw==}
- '@expo/plist@0.4.9':
- resolution: {integrity: sha512-MPVpmKGfnQEnrCzgxuXcmPP/y/t6AVm+DcSb2Myp21LKWv1N3l8uFxMggesfF4ixAxkRlGmMMx9GyDC9M+XklQ==}
+ '@expo/prebuild-config@57.0.12':
+ resolution: {integrity: sha512-3vwrQ2DSGijJUa8K/j3xUfOdhYgygKdWAjJ7o3r143BGnKD1SwPIMEN7dSDhkmDWR4FAXTQwgaD8dHh5VZd/jA==}
- '@expo/prebuild-config@54.0.8':
- resolution: {integrity: sha512-EA7N4dloty2t5Rde+HP0IEE+nkAQiu4A/+QGZGT9mFnZ5KKjPPkqSyYcRvP5bhQE10D+tvz6X0ngZpulbMdbsg==}
+ '@expo/require-utils@57.0.4':
+ resolution: {integrity: sha512-e7xbg/9BTQcsZE/oErafZXtI7kh5IgfasLJ97J5sFSzX2cA74pDvdlhW1KHVSaDkQyQv6h1LSLhsY7dEeOk7hw==}
peerDependencies:
- expo: '*'
+ typescript: ^5.0.0 || ^5.0.0-0 || ^6.0.0 || ^7.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
- '@expo/schema-utils@0.1.8':
- resolution: {integrity: sha512-9I6ZqvnAvKKDiO+ZF8BpQQFYWXOJvTAL5L/227RUbWG1OVZDInFifzCBiqAZ3b67NRfeAgpgvbA7rejsqhY62A==}
+ '@expo/router-server@57.0.6':
+ resolution: {integrity: sha512-/0H7OIilU4lmdR3V9UZuKou71cwaJ11sneW8/T6Rtr46LA71lgBWzdRldvVxaWv8dT+cu90f4jl+M3DYXN9MqQ==}
+ peerDependencies:
+ '@expo/metro-runtime': ^57.0.10
+ expo: '*'
+ expo-constants: ^57.0.11
+ expo-font: ^57.0.1
+ expo-router: '*'
+ expo-server: ^57.0.3
+ react: '*'
+ react-dom: '*'
+ react-server-dom-webpack: ~19.0.1 || ~19.1.2 || ~19.2.1
+ peerDependenciesMeta:
+ '@expo/metro-runtime':
+ optional: true
+ expo-router:
+ optional: true
+ react-dom:
+ optional: true
+ react-server-dom-webpack:
+ optional: true
+
+ '@expo/schema-utils@57.0.2':
+ resolution: {integrity: sha512-fMu/jyN0l1Wzv7XkeWR4IYCx1M8ryui3FdBNGrWwbRgJ7EhxXxK8E2jxP2W3pbgUwUY0V3hG8+GyfCZwny+Lxw==}
'@expo/sdk-runtime-versions@1.0.0':
resolution: {integrity: sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==}
@@ -2005,24 +2110,23 @@ packages:
resolution: {integrity: sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==}
engines: {node: '>=12'}
+ '@expo/spawn-async@1.8.0':
+ resolution: {integrity: sha512-eb9xxd/LbuEGSdua4NumCu/McVB9EM+F/JxB9pWgnERw4HQ9XyTNH1KapG6oqLWR8TuRK2LQfzJlmNi94CVobw==}
+ engines: {node: '>=12'}
+
'@expo/sudo-prompt@9.3.2':
resolution: {integrity: sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw==}
- '@expo/vector-icons@15.1.1':
- resolution: {integrity: sha512-Iu2VkcoI5vygbtYngm7jb4ifxElNVXQYdDrYkT7UCEIiKLeWnQY0wf2ZhHZ+Wro6Sc5TaumpKUOqDRpLi5rkvw==}
- peerDependencies:
- expo-font: '>=14.0.4'
- react: '*'
- react-native: '*'
-
'@expo/webpack-config@19.0.1':
resolution: {integrity: sha512-5bSxXTUd/DCF44+1dSyU23YKLOOYCr9pMJ+C5Vw7PAi6v6OEyNp4uOVMk2x5DAEpXtvOsJCxvNZdmtY/IqmO/A==}
engines: {node: '>=12'}
peerDependencies:
expo: ^49.0.7 || ^50.0.0-0
- '@expo/ws-tunnel@1.0.6':
- resolution: {integrity: sha512-nDRbLmSrJar7abvUjp3smDwH8HcbZcoOEa5jVPUv9/9CajgmWw20JNRwTuBRzWIWIkEJDkz20GoNA+tSwUqk0Q==}
+ '@expo/ws-tunnel@2.0.0':
+ resolution: {integrity: sha512-j+JfTRdCk820J9dU0sA2SqshQIKFOMo7ED84w9MJFcebfbNQgsLztEY/SABDkGnjatrW4xGqnUhVRxSBVyCkXw==}
+ peerDependencies:
+ ws: ^8.0.0
'@expo/xcpretty@4.4.4':
resolution: {integrity: sha512-4aQzz9vgxcNXFfo/iyNgDDYfsU5XGKKxWxZopw0cVotHiW+U8IJbIxMaxsINs6bHhtkG3StKNPcOrn3eBuxKPw==}
@@ -2083,8 +2187,18 @@ packages:
resolution: {integrity: sha512-mUaMsgeUTpRIUOTn33EUXHRK6j7pxBjwqH4WpQyq+pukjd1AIzWlEa6w7i6bInJUcweGgP2beXZmaP6b6UPn7A==}
engines: {node: '>=10'}
- '@ide/backoff@1.0.0':
- resolution: {integrity: sha512-F0YfUDjvT+Mtt/R4xdl2X0EYCHMMiJqNLdxHD++jDT5ydEFIyqbCHh51Qx2E211dgZprPKhV7sHmnXKpLuvc5g==}
+ '@humanwhocodes/config-array@0.13.0':
+ resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
+ engines: {node: '>=10.10.0'}
+ deprecated: Use @eslint/config-array instead
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+
+ '@humanwhocodes/object-schema@2.0.3':
+ resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
+ deprecated: Use @eslint/object-schema instead
'@ipld/dag-cbor@9.2.7':
resolution: {integrity: sha512-ZmfXmElRWATr+hoUTSAOr6HUcjVhOcNHDqgczc76qte2DHHFEK0ZhNzUcdTDQhF/VSIvf2ioaRTRLWwLc83sNw==}
@@ -2287,6 +2401,14 @@ packages:
'@messageformat/parser@5.1.1':
resolution: {integrity: sha512-3p0YRGCcTUCYvBKLIxtDDyrJ0YijGIwrTRu1DT8gIviIDZru8H23+FkY6MJBzM1n9n20CiM4VeDYuBsrrwnLjg==}
+ '@noble/curves@1.9.7':
+ resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
+ engines: {node: ^14.21.3 || >=16}
+
+ '@noble/hashes@1.8.0':
+ resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
+ engines: {node: ^14.21.3 || >=16}
+
'@nodelib/fs.scandir@2.1.5':
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
@@ -2451,6 +2573,9 @@ packages:
cpu: [x64]
os: [win32]
+ '@pinojs/redact@0.4.0':
+ resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==}
+
'@pkgjs/parseargs@0.11.0':
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
@@ -3182,53 +3307,81 @@ packages:
peerDependencies:
react-native: ^0.0.0-0 || >=0.65 <1.0
- '@react-native/assets-registry@0.81.5':
- resolution: {integrity: sha512-705B6x/5Kxm1RKRvSv0ADYWm5JOnoiQ1ufW7h8uu2E6G9Of/eE6hP/Ivw3U5jI16ERqZxiKQwk34VJbB0niX9w==}
- engines: {node: '>= 20.19.4'}
+ '@react-native/assets-registry@0.86.0':
+ resolution: {integrity: sha512-nIaXbm2jX1OTYp0qbviJ3O6KZivoE8z3BnhUQ2LsqfZSWRoOK/n1qsiAr6oALiNKWnXY3j2KPwtYORnZzp8xew==}
+ engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
- '@react-native/babel-plugin-codegen@0.81.5':
- resolution: {integrity: sha512-oF71cIH6je3fSLi6VPjjC3Sgyyn57JLHXs+mHWc9MoCiJJcM4nqsS5J38zv1XQ8d3zOW2JtHro+LF0tagj2bfQ==}
- engines: {node: '>= 20.19.4'}
+ '@react-native/babel-plugin-codegen@0.86.0':
+ resolution: {integrity: sha512-qdsABWNW7uTll90l4Vh03gjeyu3WVDi2CyiiyvYGMRDcoYbjbQi6df3BMAm9lQI2yslZ1T14LlDDAsgTwNxplA==}
+ engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
- '@react-native/babel-preset@0.81.5':
- resolution: {integrity: sha512-UoI/x/5tCmi+pZ3c1+Ypr1DaRMDLI3y+Q70pVLLVgrnC3DHsHRIbHcCHIeG/IJvoeFqFM2sTdhSOLJrf8lOPrA==}
- engines: {node: '>= 20.19.4'}
+ '@react-native/babel-plugin-codegen@0.86.2':
+ resolution: {integrity: sha512-NNDZqOlNbH5SzgPks1jFDYH3234Rpa5e/nhZymxhIiBH3NcE3uD+rGj/HWXhH7nHF2ToGK6XbUpqy7nmJPeh+g==}
+ engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
+
+ '@react-native/babel-preset@0.86.0':
+ resolution: {integrity: sha512-bYQcWiPySNvF4dns9Ls9gMmwgq66ohvM9Fwc/Kn8r85t66UNHxch3p1QwPiSorDelFauZwJbgo9+ReibTgvpbA==}
+ engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
peerDependencies:
'@babel/core': '*'
- '@react-native/codegen@0.81.5':
- resolution: {integrity: sha512-a2TDA03Up8lpSa9sh5VRGCQDXgCTOyDOFH+aqyinxp1HChG8uk89/G+nkJ9FPd0rqgi25eCTR16TWdS3b+fA6g==}
- engines: {node: '>= 20.19.4'}
+ '@react-native/codegen@0.86.0':
+ resolution: {integrity: sha512-uTs9DBo3+/lUqinsGZK0FKJRBVClrwMXoZToaDxE1Q2SL2e55vs2GwyZfIKzPl5uJnbu4PfFMIp0/mLXLWUMuA==}
+ engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
peerDependencies:
'@babel/core': '*'
- '@react-native/community-cli-plugin@0.81.5':
- resolution: {integrity: sha512-yWRlmEOtcyvSZ4+OvqPabt+NS36vg0K/WADTQLhrYrm9qdZSuXmq8PmdJWz/68wAqKQ+4KTILiq2kjRQwnyhQw==}
- engines: {node: '>= 20.19.4'}
+ '@react-native/codegen@0.86.2':
+ resolution: {integrity: sha512-xKkudsahUJ1n//55g4fXk5BStVqqmZlz8HQveL45ZxcfDnwvhuYe2GymksQANFsSN+slvrarjrfq8kIxJzbceA==}
+ engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
+ peerDependencies:
+ '@babel/core': '*'
+
+ '@react-native/community-cli-plugin@0.86.0':
+ resolution: {integrity: sha512-Jv8p1ebEPfTzs8gmrjsdT2XMXFfeAg45Pman+XPLFGaSeGAZkutRFRyX9Cs9aGTSOyIA9YPJ6vDNb1ayTf1FKQ==}
+ engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
peerDependencies:
'@react-native-community/cli': '*'
- '@react-native/metro-config': '*'
+ '@react-native/metro-config': 0.86.0
peerDependenciesMeta:
'@react-native-community/cli':
optional: true
'@react-native/metro-config':
optional: true
- '@react-native/debugger-frontend@0.81.5':
- resolution: {integrity: sha512-bnd9FSdWKx2ncklOetCgrlwqSGhMHP2zOxObJbOWXoj7GHEmih4MKarBo5/a8gX8EfA1EwRATdfNBQ81DY+h+w==}
- engines: {node: '>= 20.19.4'}
+ '@react-native/debugger-frontend@0.86.0':
+ resolution: {integrity: sha512-7Mb3nDfyJeys+ELF75Ageu7VKERlnIMoO+aNPoXqTXvz+b41L6l2CqMyLpDHxkBSlenij6gEepPNgaIyWHbJZw==}
+ engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
- '@react-native/dev-middleware@0.81.5':
- resolution: {integrity: sha512-WfPfZzboYgo/TUtysuD5xyANzzfka8Ebni6RIb2wDxhb56ERi7qDrE4xGhtPsjCL4pQBXSVxyIlCy0d8I6EgGA==}
- engines: {node: '>= 20.19.4'}
+ '@react-native/debugger-frontend@0.86.2':
+ resolution: {integrity: sha512-KGS1aV5F6cIqpnoIUhLBXyVzy1oAj8jBFGau6vX4Vy0HXRJN7p+68RU7x6NuyraHvQcR14ccMGT5TkFuNjQ4gA==}
+ engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
- '@react-native/gradle-plugin@0.81.5':
- resolution: {integrity: sha512-hORRlNBj+ReNMLo9jme3yQ6JQf4GZpVEBLxmTXGGlIL78MAezDZr5/uq9dwElSbcGmLEgeiax6e174Fie6qPLg==}
- engines: {node: '>= 20.19.4'}
+ '@react-native/debugger-shell@0.86.0':
+ resolution: {integrity: sha512-Y0zEkZzLz8ou6o/VLml1A31X/rMgc6DRjwxwzPMa94qRTMY070WeBCNTITQo4kKTBAUgbxh07oXPQqp0Tpja8w==}
+ engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
- '@react-native/js-polyfills@0.81.5':
- resolution: {integrity: sha512-fB7M1CMOCIUudTRuj7kzxIBTVw2KXnsgbQ6+4cbqSxo8NmRRhA0Ul4ZUzZj3rFd3VznTL4Brmocv1oiN0bWZ8w==}
+ '@react-native/debugger-shell@0.86.2':
+ resolution: {integrity: sha512-/TaVJ2+gGajZPJGrFaObUQmHmlaxAlfmOPZicl6pNKDUjzSgFMpcLkdTOExvb+USYTVdGX1XwxXyvjQdUO2bvg==}
+ engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
+
+ '@react-native/dev-middleware@0.86.0':
+ resolution: {integrity: sha512-20pTO6yTybmvXvro520H6C7jydIQnLKOl5qFtVEcHSdFrY63r3OGei+Rx9bILgSRmH6jgnfEcijcMx7pwWuQtw==}
+ engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
+
+ '@react-native/dev-middleware@0.86.2':
+ resolution: {integrity: sha512-B7L0vKvg+IcEElT7Vpqh1xj5yJAqWUegjbP+bQRaorJMAYnv11GkliTnZV2AdTDfZQJWgOEx8i8LGkHkUg7bnA==}
+ engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
+
+ '@react-native/gradle-plugin@0.86.0':
+ resolution: {integrity: sha512-a1RcfaEDqWExCGfCwadIxt4l8FvKYgFqeMf2uzeKyAOnb+vTGNIeCvifFL2MqvgaeYxlER437HbMIajGcuJ1pQ==}
+ engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
+
+ '@react-native/jest-preset@0.86.0':
+ resolution: {integrity: sha512-KA+xpIP3DvJy7PQJ9c6ZdEKkOPChl+Rk/rV2MhQACEAzfhWU84407KZQv4ccyO3B4caD0gPrFjE96a4P993nsQ==}
engines: {node: '>= 20.19.4'}
+ peerDependencies:
+ react: ^19.2.3
'@react-native/js-polyfills@0.86.0':
resolution: {integrity: sha512-zYy/Cjd1VTnZ2iCNaG9bDF9C3l2ntESiPRscjIlI5FKugu6aeTwsDSv1aI8Bc4Kp3vEdoVg+UQhLAhE4svREaQ==}
@@ -3244,19 +3397,19 @@ packages:
resolution: {integrity: sha512-7v+xbTeEci9ZcQ/Z1OqI4RXcqN69wSMDYL5BAMvOReZ7U04+aDQ0/SQhClYPn6x2/RxM4WzMKSAuNyLKqvYVtw==}
engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
- '@react-native/normalize-colors@0.81.5':
- resolution: {integrity: sha512-0HuJ8YtqlTVRXGZuGeBejLE04wSQsibpTI+RGOyVqxZvgtlLLC/Ssw0UmbHhT4lYMp2fhdtvKZSs5emWB1zR/g==}
+ '@react-native/normalize-colors@0.86.0':
+ resolution: {integrity: sha512-kG0wfCGghUKlfxkJyyHCDVutWVYWK7/DG58ojA/4v9EfulgF+osuSQmlbNb3rcKX58qutm7JcldSeVLgGFha9g==}
'@react-native/typescript-config@0.81.6':
resolution: {integrity: sha512-1eu60ilbT8dm8euTvzmlqQ+oC2eb0g6hXEcvVj/TJtLWDLl7GSmAmT8oD+5445D1zTiEIMIhpK70OAPgoRk/zg==}
- '@react-native/virtualized-lists@0.81.5':
- resolution: {integrity: sha512-UVXgV/db25OPIvwZySeToXD/9sKKhOdkcWmmf4Jh8iBZuyfML+/5CasaZ1E7Lqg6g3uqVQq75NqIwkYmORJMPw==}
- engines: {node: '>= 20.19.4'}
+ '@react-native/virtualized-lists@0.86.0':
+ resolution: {integrity: sha512-4/ZLXdf/OSpPDVO0AsQ1SJdRIzt5t9BNQ46QwGgxvX7/cirYR5k8KXctNGGgW8lQo2gZChEfY2zFCZg9nM/jiw==}
+ engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
peerDependencies:
- '@types/react': ^19.1.0
+ '@types/react': ^19.2.0
react: '*'
- react-native: '*'
+ react-native: 0.86.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -3268,7 +3421,7 @@ packages:
react: '>= 18.2.0'
react-native: '*'
react-native-safe-area-context: '>= 4.0.0'
- react-native-screens: 4.24.0
+ react-native-screens: 4.26.2
'@react-navigation/core@7.17.4':
resolution: {integrity: sha512-Rv9E2oNNQEkPGpmu9q+vJwGJRSQR6LBg5L+Yo1QHjtwGbHUbjkIKOdYymDZoZYgNzX2OD4rAIlfuzbDKa3cCeA==}
@@ -3294,7 +3447,7 @@ packages:
react: '>= 18.2.0'
react-native: '*'
react-native-safe-area-context: '>= 4.0.0'
- react-native-screens: 4.24.0
+ react-native-screens: 4.26.2
'@react-navigation/native@7.2.4':
resolution: {integrity: sha512-eWC2D3JjhYLId2fVTZhhCiUpWIaPhO9XyEb7Wq8ElmOHyIODlbOzgZ0rKia02OIsDKr9BzZl2sK1dL70yMxDaw==}
@@ -3500,6 +3653,9 @@ packages:
'@sinonjs/fake-timers@10.3.0':
resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
+ '@standard-schema/spec@1.1.0':
+ resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
+
'@tanstack/query-async-storage-persister@5.100.10':
resolution: {integrity: sha512-NbxsCI9qyMbEooFnFsAR2dbVQ6cmxZpOWSjLFy62qfMkxXnNjkskqex7YgtzWSaD/ozOOLgrbDiyYWEPYKmMyQ==}
@@ -3609,6 +3765,9 @@ packages:
resolution: {integrity: sha512-HqmEUIGRJ5fSXchkVgR5F7qn48bDBzv0kWj/Kfu5e6uci4UlEeng4331LnBkWffb++Ei3FOVLxo8JJWMFBDMeQ==}
engines: {node: '>= 10'}
+ '@ts-morph/common@0.28.1':
+ resolution: {integrity: sha512-W74iWf7ILp1ZKNYXY5qbddNaml7e9Sedv5lvU1V8lftlitkc9Pq1A+jlH23ltDgWYeZFFEqGCD1Ies9hqu3O+g==}
+
'@types/babel__core@7.20.5':
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
@@ -3639,6 +3798,9 @@ packages:
'@types/dom-webcodecs@0.1.13':
resolution: {integrity: sha512-O5hkiFIcjjszPIYyUSyvScyvrBoV3NOEEZx/pMlsu44TKzWNkLVBBxnxJz42in5n3QIolYOcBYFCPZZ0h8SkwQ==}
+ '@types/emscripten@1.41.5':
+ resolution: {integrity: sha512-cMQm7pxu6BxtHyqJ7mQZ2kXWV5SLmugybFdHCBbJ5eHzOo6VhBckEgAT3//rP5FwPHNPeEiq4SmQ5ucBwsOo4Q==}
+
'@types/eslint-scope@3.7.7':
resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
@@ -3745,14 +3907,20 @@ packages:
'@types/range-parser@1.2.7':
resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
- '@types/react-dom@19.1.11':
- resolution: {integrity: sha512-3BKc/yGdNTYQVVw4idqHtSOcFsgGuBbMveKCOgF8wQ5QtrYOc3jDIlzg3jef04zcXFIHLelyGlj0T+BJ8+KN+w==}
+ '@types/react-dom@19.2.4':
+ resolution: {integrity: sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==}
peerDependencies:
- '@types/react': ^19.0.0
+ '@types/react': ^19.2.0
+
+ '@types/react-test-renderer@19.1.0':
+ resolution: {integrity: sha512-XD0WZrHqjNrxA/MaR9O22w/RNidWR9YZmBdRGI7wcnWGrv/3dA8wKCJ8m63Sn+tLJhcjmuhOi629N66W6kgWzQ==}
'@types/react@19.1.17':
resolution: {integrity: sha512-Qec1E3mhALmaspIrhWt9jkQMNdw6bReVu64mjvhbhq2NFPftLPVr+l1SZgmw/66WwBNpDh7ao5AT6gF5v41PFA==}
+ '@types/react@19.2.18':
+ resolution: {integrity: sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==}
+
'@types/retry@0.12.0':
resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
@@ -3789,6 +3957,53 @@ packages:
'@types/yargs@17.0.35':
resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==}
+ '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260707.2':
+ resolution: {integrity: sha512-wny2pgKjGbiZtnOIHVa3tXC1UfDqxNEFzyPGmiqybedG8hipG2Nfp0l5UxbaKCjkLacUpH/W5bP2hBOMVhCOzg==}
+ engines: {node: '>=16.20.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@typescript/native-preview-darwin-x64@7.0.0-dev.20260707.2':
+ resolution: {integrity: sha512-Afc7M5zOwo+GpfcYwz5Z8HMB2tPVsui7nNIqEuuFB73MPdVqNn/Wmpe4tP4MRri0AtJnJknoHBaTJ/VDAp/Jhw==}
+ engines: {node: '>=16.20.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@typescript/native-preview-linux-arm64@7.0.0-dev.20260707.2':
+ resolution: {integrity: sha512-iITBa2WjjTI5N9t5l7Z4KoOSI+2zBlhbvFzsD/f8qX8QoKjz/Y4DPyBDgezYi8nkqjjksbgSOJ3/ykzhwrB9cg==}
+ engines: {node: '>=16.20.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@typescript/native-preview-linux-arm@7.0.0-dev.20260707.2':
+ resolution: {integrity: sha512-hJm/UOqZTr9FHmR7uNm8VGX4oKtfWk0Jem0zPeJFNC8ckGUfSBueyiEYMZB+XmRc1aG4x1E46y3CplP4CLHvGQ==}
+ engines: {node: '>=16.20.0'}
+ cpu: [arm]
+ os: [linux]
+
+ '@typescript/native-preview-linux-x64@7.0.0-dev.20260707.2':
+ resolution: {integrity: sha512-du0dzi6y97Po5vDNdPJTyyijHCpaS22JLRnKZEJXBDaO9gCIymOv/5QQokFRuOlQm0bWl3i9PF4OVdGP6uAOQA==}
+ engines: {node: '>=16.20.0'}
+ cpu: [x64]
+ os: [linux]
+
+ '@typescript/native-preview-win32-arm64@7.0.0-dev.20260707.2':
+ resolution: {integrity: sha512-SsAwfhyHJ1akgBc+99z4+hwdbHsdWaKB8EwCNIMA6JfSLMeUjffrYvxu+vfMyxVtOVOz7RrRXRoiDiu4a2sCtg==}
+ engines: {node: '>=16.20.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@typescript/native-preview-win32-x64@7.0.0-dev.20260707.2':
+ resolution: {integrity: sha512-DL4u27stv0fo71sVhOzHSwE+YMZsbBijVI+kg5dLDLilSH79WFTJ8RSQ46vJrCMt+Gjlv/JOZP1PuLJDfioYeQ==}
+ engines: {node: '>=16.20.0'}
+ cpu: [x64]
+ os: [win32]
+
+ '@typescript/native-preview@7.0.0-dev.20260707.2':
+ resolution: {integrity: sha512-oUGp+Rep/hqMhPunyinsALUwSlzHINSxitifPiSaeqoKOKD2OlR9NE3TaPqwsl4NlGslsOSUXI1JotWQzpYCPg==}
+ engines: {node: '>=16.20.0'}
+ hasBin: true
+
'@typescript/typescript-aix-ppc64@7.0.2':
resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==}
engines: {node: '>=16.20.0'}
@@ -3916,14 +4131,6 @@ packages:
'@ungap/structured-clone@1.3.1':
resolution: {integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==}
- '@urql/core@5.2.0':
- resolution: {integrity: sha512-/n0ieD0mvvDnVAXEQgX/7qJiVcvYvNkOHeBvkwtylfjydar123caCXcl58PXFY11oU1oquJocVXHxLAbtv4x1A==}
-
- '@urql/exchange-retry@1.3.2':
- resolution: {integrity: sha512-TQMCz2pFJMfpNxmSfX1VSfTjwUIFx/mL+p1bnfM1xjjdla7Z+KnGMW/EhFbpckp3LyWAH4PgOsMwOMnIN+MBFg==}
- peerDependencies:
- '@urql/core': ^5.0.0
-
'@webassemblyjs/ast@1.14.1':
resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==}
@@ -3972,10 +4179,12 @@ packages:
'@xmldom/xmldom@0.8.13':
resolution: {integrity: sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw==}
engines: {node: '>=10.0.0'}
+ deprecated: this version has critical issues, please update to the latest version
'@xmldom/xmldom@0.9.10':
resolution: {integrity: sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==}
engines: {node: '>=14.6'}
+ deprecated: this version has critical issues, please update to the latest version
'@xtuc/ieee754@1.2.0':
resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
@@ -4008,6 +4217,11 @@ packages:
peerDependencies:
acorn: ^8.14.0
+ acorn-jsx@5.3.2:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
acorn-walk@8.3.5:
resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==}
engines: {node: '>=0.4.0'}
@@ -4025,6 +4239,11 @@ packages:
resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==}
engines: {node: '>= 14'}
+ agent-cli-detector@0.1.5:
+ resolution: {integrity: sha512-6xvLw0EGPuxoYGZeqyMV4AK+WoZ31jsqb7a5pln1BTf6oDFsrgvfCJT7E7y9oAqifJZhJ3fZ0J36H7o6JzrB0Q==}
+ engines: {node: '>=18.18'}
+ hasBin: true
+
ajv-formats@2.1.1:
resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
peerDependencies:
@@ -4110,9 +4329,6 @@ packages:
resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==}
engines: {node: '>=12'}
- any-promise@1.3.0:
- resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
-
anymatch@3.1.3:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
@@ -4171,9 +4387,6 @@ packages:
asap@2.0.6:
resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
- assert@2.1.0:
- resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==}
-
ast-types-flow@0.0.7:
resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==}
@@ -4181,19 +4394,17 @@ packages:
resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
engines: {node: '>= 0.4'}
- async-limiter@1.0.1:
- resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==}
-
asynckit@0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+ atomic-sleep@1.0.0:
+ resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==}
+ engines: {node: '>=8.0.0'}
+
available-typed-arrays@1.0.7:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
- await-lock@3.0.0:
- resolution: {integrity: sha512-eO6fLiSnrJrMdjWMNK8zbVRXPs2TKJg78iKZd9wDpN3na5tcoV6EoeiOlMgk2QaAQ1gIrK1YuMsJHXWqz89tSA==}
-
babel-jest@29.7.0:
resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -4241,14 +4452,14 @@ packages:
babel-plugin-react-compiler@1.0.0:
resolution: {integrity: sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==}
- babel-plugin-react-compiler@19.1.0-rc.3:
- resolution: {integrity: sha512-mjRn69WuTz4adL0bXGx8Rsyk1086zFJeKmes6aK0xPuK3aaXmDJdLHqwKKMrpm6KAI1MCoUK72d2VeqQbu8YIA==}
-
babel-plugin-react-native-web@0.21.2:
resolution: {integrity: sha512-SPD0J6qjJn8231i0HZhlAGH6NORe+QvRSQM2mwQEzJ2Fb3E4ruWTiiicPlHjmeWShDXLcvoorOCXjeR7k/lyWA==}
- babel-plugin-syntax-hermes-parser@0.29.1:
- resolution: {integrity: sha512-2WFYnoWGdmih1I1J5eIqxATOeycOqRwYxAQBu3cUu/rhwInwHUg7k60AFNbuGjSDL8tje5GDrAnxzRLcu2pYcA==}
+ babel-plugin-syntax-hermes-parser@0.36.0:
+ resolution: {integrity: sha512-LhD0xdoedDw7ansQgXbB2DADLZIK/LRXuWNBPuVzMc5S2WK5GyT89tCM+cQzxFGO0mGyLK6D5TrVOJJzAoDy8Q==}
+
+ babel-plugin-syntax-hermes-parser@0.36.1:
+ resolution: {integrity: sha512-ycduwJbvdvIMmVvlAZqGggS+pm5Eu4Bk9pcV9Sm2Z4PJNRVsKkv0g7vHj+LeuC1gHTeF67sJXFOq61IlqCa2hA==}
babel-plugin-transform-flow-enums@0.0.2:
resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==}
@@ -4261,28 +4472,19 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0 || ^8.0.0-0
- babel-preset-expo@54.0.10:
- resolution: {integrity: sha512-wTt7POavLFypLcPW/uC5v8y+mtQKDJiyGLzYCjqr9tx0Qc3vCXcDKk1iCFIj/++Iy5CWhhTflEa7VvVPNWeCfw==}
+ babel-preset-expo@57.0.7:
+ resolution: {integrity: sha512-/1RLnZTJVoTNo6nCdSv27BSA2LBzM/qEkNLznwWvztg64DhsAz7ByZIiAqdbau9FK3YqF+IV5a2ZsPXFclwq4A==}
peerDependencies:
'@babel/runtime': ^7.20.0
expo: '*'
+ expo-widgets: ^57.0.10
react-refresh: '>=0.14.0 <1.0.0'
peerDependenciesMeta:
'@babel/runtime':
optional: true
expo:
optional: true
-
- babel-preset-expo@54.0.12:
- resolution: {integrity: sha512-6xeSkdaixmQhWSYL7tfLu0pOS0BY+8ftwmdNSHtpEFSizrXYZkCjk/B6Dxr+6nwNRihixMcS0aBlWS1wlDl3pw==}
- peerDependencies:
- '@babel/runtime': ^7.20.0
- expo: '*'
- react-refresh: '>=0.14.0 <1.0.0'
- peerDependenciesMeta:
- '@babel/runtime':
- optional: true
- expo:
+ expo-widgets:
optional: true
babel-preset-jest@29.6.3:
@@ -4301,6 +4503,9 @@ packages:
resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
engines: {node: 18 || 20 || >=22}
+ barcode-detector@3.2.2:
+ resolution: {integrity: sha512-/4QOrrNrCRmDSBWiiP4aC72dnkuXUEdcFRidHgbPRXUpy82XcCMvJssI6fEs6JT42LS7DvBVZO70qasJbYKyrA==}
+
base64-arraybuffer@1.0.2:
resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==}
engines: {node: '>= 0.6.0'}
@@ -4322,10 +4527,6 @@ packages:
bcp-47@2.1.0:
resolution: {integrity: sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==}
- better-opn@3.0.2:
- resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==}
- engines: {node: '>=12.0.0'}
-
big-integer@1.6.52:
resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==}
engines: {node: '>=0.6'}
@@ -4429,6 +4630,10 @@ packages:
caniuse-lite@1.0.30001792:
resolution: {integrity: sha512-hVLMUZFgR4JJ6ACt1uEESvQN1/dBVqPAKY0hgrV70eN3391K6juAfTjKZLKvOMsx8PxA7gsY1/tLMMTcfFLLpw==}
+ cborg@4.5.8:
+ resolution: {integrity: sha512-6/viltD51JklRhq4L7jC3zgy6gryuG5xfZ3kzpE+PravtyeQLeQmCYLREhQH7pWENg5pY4Yu/XCd6a7dKScVlw==}
+ hasBin: true
+
cborg@5.1.1:
resolution: {integrity: sha512-BDbSRIp6XrQXkTc7g+DN0RB9RrDPTUfals2ecWUlt3juPLjbAvy/V72mJcXY0Ehu0Dq/3WpNCOCT68HUTbW+lw==}
hasBin: true
@@ -4474,8 +4679,8 @@ packages:
resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==}
engines: {node: '>=6.0'}
- chromium-edge-launcher@0.2.0:
- resolution: {integrity: sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==}
+ chromium-edge-launcher@0.3.0:
+ resolution: {integrity: sha512-p03azHlGjtyRvFEee3cyvtsRYdniSkwjkzmM/KmVnqT5d7QkkwpJBhis/zCLMYdQMVJ5tt140TBNqqrZPaWeFA==}
ci-info@2.0.0:
resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==}
@@ -4532,6 +4737,10 @@ packages:
resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
engines: {node: '>=12'}
+ cliui@9.0.1:
+ resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==}
+ engines: {node: '>=20'}
+
clone@1.0.4:
resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
engines: {node: '>=0.8'}
@@ -4540,6 +4749,9 @@ packages:
resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
+ code-block-writer@13.0.3:
+ resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==}
+
collect-v8-coverage@1.0.3:
resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==}
@@ -4599,10 +4811,6 @@ packages:
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
- commander@4.1.1:
- resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
- engines: {node: '>= 6'}
-
commander@7.2.0:
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
engines: {node: '>= 10'}
@@ -4663,6 +4871,9 @@ packages:
core-js-pure@3.49.0:
resolution: {integrity: sha512-XM4RFka59xATyJv/cS3O3Kml72hQXUeGRuuTmMYFxwzc9/7C8OYTaIR/Ji+Yt8DXzsFLNhat15cE/JP15HrCgw==}
+ core-js@3.50.0:
+ resolution: {integrity: sha512-BRWgOLKkFeCgRudR6zrs8p9XJZcE14grzKMMssoYrk6krtuEZ7MTKPIY5RzOnqsEKIR9kst7wNzphttraT+Yqw==}
+
core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
@@ -4875,6 +5086,9 @@ packages:
resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
engines: {node: '>=4.0.0'}
+ deep-is@0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+
deepmerge@4.3.1:
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'}
@@ -4951,6 +5165,13 @@ packages:
resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==}
engines: {node: '>=6'}
+ dnssd-advertise@1.1.6:
+ resolution: {integrity: sha512-Ndrrf6BMPalkQPd/zubL+4YghH2J9NspapQ09uDXwYbvOPkP0oaqf5CkcwJ0b50kS2O3ul6yVu+jz+RY62Cejg==}
+
+ doctrine@3.0.0:
+ resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
+ engines: {node: '>=6.0.0'}
+
dom-converter@0.2.0:
resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==}
@@ -4989,14 +5210,6 @@ packages:
dot-case@3.0.4:
resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
- dotenv-expand@11.0.7:
- resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==}
- engines: {node: '>=12'}
-
- dotenv@16.4.7:
- resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==}
- engines: {node: '>=12'}
-
dotenv@16.6.1:
resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==}
engines: {node: '>=12'}
@@ -5064,10 +5277,6 @@ packages:
resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
engines: {node: '>=0.12'}
- env-editor@0.4.2:
- resolution: {integrity: sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==}
- engines: {node: '>=8'}
-
environment@1.1.0:
resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
engines: {node: '>=18'}
@@ -5138,44 +5347,58 @@ packages:
engines: {node: '>=6.0'}
hasBin: true
- eslint-plugin-react-compiler@19.1.0-rc.2:
- resolution: {integrity: sha512-oKalwDGcD+RX9mf3NEO4zOoUMeLvjSvcbbEOpquzmzqEEM2MQdp7/FY/Hx9NzmUwFzH1W9SKTz5fihfMldpEYw==}
- engines: {node: ^14.17.0 || ^16.0.0 || >= 18.0.0}
- peerDependencies:
- eslint: '>=7'
-
eslint-plugin-react-native-a11y@3.5.1:
resolution: {integrity: sha512-vqnXZpAiov0lxYNfEYgwABpkiBYRrt0dbtOafPkw6QaFeA0uZ+s3w9opeEMoFmV36WFxLiCxHb9fvOJ+EUc2xQ==}
engines: {node: '>=12.0'}
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
-
- eslint-plugin-react-native-globals@0.1.2:
- resolution: {integrity: sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==}
-
- eslint-plugin-react-native@5.0.0:
- resolution: {integrity: sha512-VyWlyCC/7FC/aONibOwLkzmyKg4j9oI8fzrk9WYNs4I8/m436JuOTAFwLvEn1CVvc7La4cPfbCyspP4OYpP52Q==}
- peerDependencies:
- eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
+ peerDependenciesMeta:
+ eslint:
+ optional: true
eslint-plugin-simple-import-sort@13.0.0:
resolution: {integrity: sha512-McAc+/Nlvcg4byY/CABGH8kqnefWBj8s3JA2okEtz8ixbECQgU46p0HkTUKa4YS7wvgGceimlc34p1nXqbWqtA==}
peerDependencies:
eslint: '>=5.0.0'
+ peerDependenciesMeta:
+ eslint:
+ optional: true
eslint-scope@5.1.1:
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
engines: {node: '>=8.0.0'}
+ eslint-scope@7.2.2:
+ resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint-visitor-keys@3.4.3:
+ resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint@8.57.1:
+ resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
+ hasBin: true
+
esm@3.2.25:
resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==}
engines: {node: '>=6'}
+ espree@9.6.1:
+ resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
esprima@4.0.1:
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
engines: {node: '>=4'}
hasBin: true
+ esquery@1.7.0:
+ resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
+ engines: {node: '>=0.10'}
+
esrecurse@4.3.0:
resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
engines: {node: '>=4.0'}
@@ -5226,38 +5449,38 @@ packages:
resolution: {integrity: sha512-PMARsyh/JtqC20HoGqlFcIlQAyqUtW4PlI1rup1uhYJtKuwAjbvWi3GQMAn+STdHum/dk8xrKfUM1+5SAwpolA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- expo-age-range@0.2.18:
- resolution: {integrity: sha512-WThjp0/islDlysxRkamXmS9D2zU/T7P5fIizIBPaajfG4C+tjL7psFZp6R6l0eDkYJkYO+VPJRMr5NrQQAu6nQ==}
+ expo-age-range@57.0.2:
+ resolution: {integrity: sha512-WgMBasOzw0YVhWzWEMgj8tpCxyuh+GztYRsPFNHLz4jjneskyKXL+o0QAFchml3UnKqSPnM8ZB3oCldHyRs2dA==}
peerDependencies:
expo: '*'
react-native: '*'
- expo-application@7.0.8:
- resolution: {integrity: sha512-qFGyxk7VJbrNOQWBbE09XUuGuvkOgFS9QfToaK2FdagM2aQ+x3CvGV2DuVgl/l4ZxPgIf3b/MNh9xHpwSwn74Q==}
+ expo-application@57.0.2:
+ resolution: {integrity: sha512-q31YwcXyymviAmdrtDfAg3Dld4VMxLCNAfgMHip7vZpPX4lzF/AfwsywqBJUAjQnJknzaNAkzqvMVjO5XmKYDA==}
peerDependencies:
expo: '*'
- expo-asset@12.0.13:
- resolution: {integrity: sha512-x/p7WvQUnkn6K43b9eL6SPeq5Vnf1E8BDe9bDrWrvMqzyUvJnUFvl+ctg3034s/+UHe7Ne2pAmc0+yzbl8CrDQ==}
+ expo-asset@57.0.12:
+ resolution: {integrity: sha512-DbNxGsmqCaE2LWyabXEkDqV/8/mrZ2ikmVzi1V1Dp4MaQO9Kde6VcvQk7h6NVsklmo4xPT1J2Lnrs8Vd18sXOg==}
peerDependencies:
expo: '*'
react: '*'
react-native: '*'
- expo-blur@15.0.8:
- resolution: {integrity: sha512-rWyE1NBRZEu9WD+X+5l7gyPRszw7n12cW3IRNAb5i6KFzaBp8cxqT5oeaphJapqURvcqhkOZn2k5EtBSbsuU7w==}
+ expo-blur@57.0.2:
+ resolution: {integrity: sha512-Aoud8H8lmlNkbRufyvRLefmGFELdBf1n5Te/Xm+Zx8ORINH+aXL+gKb5mbftFSha860+I7pMArz77TBYz8HDVg==}
peerDependencies:
expo: '*'
react: '*'
react-native: '*'
- expo-build-properties@1.0.10:
- resolution: {integrity: sha512-mFCZbrbrv0AP5RB151tAoRzwRJelqM7bCJzCkxpu+owOyH+p/rFC/q7H5q8B9EpVWj8etaIuszR+gKwohpmu1Q==}
+ expo-build-properties@57.0.12:
+ resolution: {integrity: sha512-0muBJPDLiIGTkNb6oqH37rhFfzQrrK/XcnU2LrvZVo8rB/ElIxsWt+Rhm6n0KWH8DmFnS+17gEb0oFqpJIwrlQ==}
peerDependencies:
expo: '*'
- expo-camera@17.0.10:
- resolution: {integrity: sha512-w1RBw83mAGVk4BPPwNrCZyFop0VLiVSRE3c2V9onWbdFwonpRhzmB4drygG8YOUTl1H3wQvALJHyMPTbgsK1Jg==}
+ expo-camera@57.0.3:
+ resolution: {integrity: sha512-Q+3aZ63eQCkdB6/FZrO/lfacNAg/j8JCeKQL2nBdf6vBeOo1Y2PKYx1/vK+U5LaRnIo/0tMGmCOzZ1JGhTeMIw==}
peerDependencies:
expo: '*'
react: '*'
@@ -5267,109 +5490,98 @@ packages:
react-native-web:
optional: true
- expo-clipboard@8.0.8:
- resolution: {integrity: sha512-VKoBkHIpZZDJTB0jRO4/PZskHdMNOEz3P/41tmM6fDuODMpqhvyWK053X0ebspkxiawJX9lX33JXHBCvVsTTOA==}
+ expo-clipboard@57.0.1:
+ resolution: {integrity: sha512-HWICri4+1ao7S6QEfcorxVumXDiDnx1guGGewjZgGJWLGxFYs0RgH8ujBs+lkTzBkMmlwADaWSlaesR+nDJt5Q==}
peerDependencies:
expo: '*'
react: '*'
react-native: '*'
- expo-constants@18.0.13:
- resolution: {integrity: sha512-FnZn12E1dRYKDHlAdIyNFhBurKTS3F9CrfrBDJI5m3D7U17KBHMQ6JEfYlSj7LG7t+Ulr+IKaj58L1k5gBwTcQ==}
+ expo-constants@57.0.12:
+ resolution: {integrity: sha512-js9qxZw4G9ulSc72GGpYGwtmk/IzFcf6/tTcEG6wB8HTlkunMS4W86R+4e6oHIrIkHA7W6s/79Se+E+DC3RAqA==}
peerDependencies:
expo: '*'
react-native: '*'
- expo-contacts@15.0.11:
- resolution: {integrity: sha512-buKkoQuWJgVSEvR1Yloa5SvGC/ud7T2YeYDe0R7Aa0oz8pwQpjk3W7OoL3QrXIfYcuKTrIz6ffqC8lc3peaAyg==}
+ expo-contacts@57.0.4:
+ resolution: {integrity: sha512-PX+LXr+oLPtkRI38L+ttLoSkgi6SBNFH0DbJK1N2Y1vyUwLqPkqqd5U4ibH5equ4qg6F1RbIYs0sZpyegEO6KA==}
peerDependencies:
expo: '*'
react: '*'
react-native: '*'
- expo-dev-client@6.0.21:
- resolution: {integrity: sha512-SWI6HD0pa4eJujkYFkvvpezUE1zmJXGLu+34azpu7+QJgO+FLutDYDj8BSTdeH/NYDEClDFjCGqVMcWETvmsCQ==}
+ expo-dev-client@57.0.13:
+ resolution: {integrity: sha512-6wtJ22BAGKNeqYxaA8NyVwNbFj0fet+pRphMvneTqtE9aoawrJKLVHDJ+Gln5lZpcCQd92utpYFwiBmdS/2LRg==}
peerDependencies:
expo: '*'
- expo-dev-launcher@6.0.21:
- resolution: {integrity: sha512-QZ9gcKMZbp6EsIhzS0QoGB8Cf4xeVJhjbNgWUwcoBIk8gshoFz8CkCQOnX+HNv2sSY3rdCaNpx3Xo0Rflyq7rA==}
- peerDependencies:
- expo: '*'
-
- expo-dev-menu-interface@2.0.0:
- resolution: {integrity: sha512-BvAMPt6x+vyXpThsyjjOYyjwfjREV4OOpQkZ0tNl+nGpsPfcY9mc6DRACoWnH9KpLzyIt3BOgh3cuy/h/OxQjw==}
- peerDependencies:
- expo: '*'
-
- expo-dev-menu@7.0.19:
- resolution: {integrity: sha512-ju5MZiBCPhUKKvHy0ElZdnlhq01mkEEiR8jfrgQVvW26aWjzjLiOhppNAyXtvGbhk7WxJim3wYMiqFFrjGdfKA==}
- peerDependencies:
- expo: '*'
-
- expo-device@8.0.10:
- resolution: {integrity: sha512-jd5BxjaF7382JkDMaC+P04aXXknB2UhWaVx5WiQKA05ugm/8GH5uaz9P9ckWdMKZGQVVEOC8MHaUADoT26KmFA==}
- peerDependencies:
- expo: '*'
-
- expo-eas-client@1.0.8:
- resolution: {integrity: sha512-5or11NJhSeDoHHI6zyvQDW2cz/yFyE+1Cz8NTs5NK8JzC7J0JrkUgptWtxyfB6Xs/21YRNifd3qgbBN3hfKVgA==}
-
- expo-file-system@19.0.22:
- resolution: {integrity: sha512-l9pgahSc7sJD0bP9vBNeXvZjy8QKDpVHVxWmei/ESQOrzmoj5BidziqLVsyZdxsi+PfdbTtttLTAmddH/JafYA==}
+ expo-dev-launcher@57.0.13:
+ resolution: {integrity: sha512-o3vz98Sdivei1rDclIiRpiOtqWsex/+w6NqpeJkyvjDj4nrte2s5dN/4BNfjJZKxy5+SMRZqD+wZI2JUIAVHdQ==}
peerDependencies:
expo: '*'
react-native: '*'
- expo-file-system@19.0.23:
- resolution: {integrity: sha512-MeGkid9OeNILfT/qonaXHp4f2c15xaB28U/bcN7pqZej0Kx0+6+V7e9ZIXpPHm07zVatxA+QkMTPQEGfmvVOxA==}
+ expo-dev-menu-interface@57.0.0:
+ resolution: {integrity: sha512-F47VdzOHYc19FhI/jBgctpO8a5UskTIxG6a1E5t3W5gF8VImuvBQffdXXfLHhsuCl7dS3v3U0R45cleeVXO1Zg==}
+ peerDependencies:
+ expo: '*'
+
+ expo-dev-menu@57.0.13:
+ resolution: {integrity: sha512-Xs2wOVpbAaOvNWl4gMEjZPi0uaFnCoNB6Qsd4+jqnsUdYb/Q7HSBrGd7QttKZ2KHnaG1Q2cTtR9saHOXVWFaEg==}
peerDependencies:
expo: '*'
react-native: '*'
- expo-font@14.0.11:
- resolution: {integrity: sha512-ga0q61ny4s/kr4k8JX9hVH69exVSIfcIc19+qZ7gt71Mqtm7xy2c6kwsPTCyhBW2Ro5yXTT8EaZOpuRi35rHbg==}
+ expo-device@57.0.1:
+ resolution: {integrity: sha512-jyEMDUticH+dhcL3GHa2aiifOvGXJsmb3oVT2R2q4i8bN7Bddy61+NkpMmuS2VAZrvoLQwf0TJJ/1vi1ukvutA==}
+ peerDependencies:
+ expo: '*'
+
+ expo-eas-client@57.0.1:
+ resolution: {integrity: sha512-4w51+zsl/ziUHQMJgLgUdgsNhRPAwHBfySpPB1hpWU21X74QS9T4SqDftaRnrDagn/DfcrXUMJvHbDQUxLPJNA==}
+
+ expo-file-system@57.0.4:
+ resolution: {integrity: sha512-h8qDOxSW1SQfnZyvH0+HeOfXCr2X4v3x50+d19JuyQcjDR+JA3tng20TlQxIHazzLPPbwtSKA1Dj3+XIOpnoKg==}
+ peerDependencies:
+ expo: '*'
+ react-native: '*'
+
+ expo-font@57.0.1:
+ resolution: {integrity: sha512-QyS9L1Kh9sKJg4gfU6rdbpxpmH+DyzBX8z6jVvXMUDoqLr1GqmkO/Wu379KCXjL///kWbhpNlbi7AgBuj4VdIQ==}
peerDependencies:
expo: '*'
react: '*'
react-native: '*'
- expo-font@14.0.12:
- resolution: {integrity: sha512-QQzunE2Mxk45AsCWm3tK7OpVljbtVnKD58q4/qliev+cbye1IOduUnRIdD+P7DyButw17G9MTX795kgaQiz5hQ==}
+ expo-glass-effect@57.0.1:
+ resolution: {integrity: sha512-m/n8maxqNcHk6ZDhuqXBfD5Kt1Iz3M8xykVgdB0iSCIXvF70IqWXmQhX8Psswhrp8eZ+3r0mAD0Jh/2gFA3QaA==}
peerDependencies:
expo: '*'
react: '*'
react-native: '*'
- expo-glass-effect@0.1.10:
- resolution: {integrity: sha512-R0OrsMbs2TxFQZp26rRDl1Wxu5PaBXM7qAxiT0Bfyb1bojr3eI90bMKry9lBM3aKbq7DOBXYT7ePrE3vUaf41g==}
- peerDependencies:
- expo: '*'
- react: '*'
- react-native: '*'
-
- expo-haptics@15.0.8:
- resolution: {integrity: sha512-lftutojy8Qs8zaDzzjwM3gKHFZ8bOOEZDCkmh2Ddpe95Ra6kt2izeOfOfKuP/QEh0MZ1j9TfqippyHdRd1ZM9g==}
+ expo-haptics@57.0.1:
+ resolution: {integrity: sha512-8VhbnxlIrfXjP0syZr1JT197nafYicQu9119adOJnX62osU9Cw+PdDnAx/6LxuKJRzQdwxOMq7b7eWjhNL5zAQ==}
peerDependencies:
expo: '*'
- expo-image-loader@6.0.0:
- resolution: {integrity: sha512-nKs/xnOGw6ACb4g26xceBD57FKLFkSwEUTDXEDF3Gtcu3MqF3ZIYd3YM+sSb1/z9AKV1dYT7rMSGVNgsveXLIQ==}
+ expo-image-loader@57.0.1:
+ resolution: {integrity: sha512-uhrZKLT/cTl2mXyR28kPpVkS5O+PK9N1QA/07IFM4f5T4g0lTW1JHT3NEWwEEsGFldPmVX4j7LwUVVZxE+woug==}
peerDependencies:
expo: '*'
- expo-image-manipulator@14.0.8:
- resolution: {integrity: sha512-sXsXjm7rIxLWZe0j2A41J/Ph53PpFJRdyzJ3EQ/qetxLUvS2m3K1sP5xy37px43qCf0l79N/i6XgFgenFV36/Q==}
+ expo-image-manipulator@57.0.10:
+ resolution: {integrity: sha512-KTxf31ozEJnnCHxpMz6Illg8SIswUyPgex4IT/YTCH8yvvBFw1Tc7YE90Tik1103gMUWn5crXq2om6iw1RLQHQ==}
peerDependencies:
expo: '*'
- expo-image-picker@17.0.11:
- resolution: {integrity: sha512-/apkoyukDvsCHHb9fzP+F34A1uQqSzUtYH/2P/xJACNEwq+mwEXjXvVU8bzlJq6ih0Qo1+tpVivIa7B9kYSwOQ==}
+ expo-image-picker@57.0.11:
+ resolution: {integrity: sha512-CyeQuGeA2Jei8zQb8S2fxmK6OIvdvUOYpxXegy8Dyc2WsI0GfWcgH8f+6uZmBaMlxakMPP4cfNvT1LeSMbB0PA==}
peerDependencies:
expo: '*'
- expo-image@3.0.11:
- resolution: {integrity: sha512-4TudfUCLgYgENv+f48omnU8tjS2S0Pd9EaON5/s1ZUBRwZ7K8acEr4NfvLPSaeXvxW24iLAiyQ7sV7BXQH3RoA==}
+ expo-image@57.0.1:
+ resolution: {integrity: sha512-EP0lisd2bUqtErry4weRcMW9bLMxtKsht/MLLK3/3do5u4ZMiJbWkY5zfYV+WYmeGab7x9G0sjbeFeEagYGjMw==}
peerDependencies:
expo: '*'
react: '*'
@@ -5379,67 +5591,76 @@ packages:
react-native-web:
optional: true
- expo-intent-launcher@13.0.8:
- resolution: {integrity: sha512-sgGFotttKKN6dIatjOEJT8M6Arfakus7vIxgshg5VkxarVhZBGJzOJam7rbUlB1O/gQ8em9G8vhEU9AfjEIe7A==}
+ expo-intent-launcher@57.0.1:
+ resolution: {integrity: sha512-BYiPEOUeW3AkW/uxEESbS2UBw9LasJ8Heb6A8kF9Ueh6pqrXQHMNJFHzfrOP8qZfv9G2e8CTzrtzpN5p0vH5fA==}
peerDependencies:
expo: '*'
- expo-json-utils@0.15.0:
- resolution: {integrity: sha512-duRT6oGl80IDzH2LD2yEFWNwGIC2WkozsB6HF3cDYNoNNdUvFk6uN3YiwsTsqVM/D0z6LEAQ01/SlYvN+Fw0JQ==}
+ expo-json-utils@57.0.1:
+ resolution: {integrity: sha512-cgTe1NqzQdYs/WN+3nIY5IZg8s0pb0xaTUbhYvxQDn137GbwRfHoGM2se3m3Vsl4Qu+B9G4RPEK5WJDEU2Do7g==}
- expo-keep-awake@15.0.8:
- resolution: {integrity: sha512-YK9M1VrnoH1vLJiQzChZgzDvVimVoriibiDIFLbQMpjYBnvyfUeHJcin/Gx1a+XgupNXy92EQJLgI/9ZuXajYQ==}
+ expo-keep-awake@57.0.1:
+ resolution: {integrity: sha512-28lkFImeXTS+bhAjuCFV7w7tW5bXg27BJVrxv+nC/nyYa86qEa0oFeHwqol6ha5k4pdVDQgBF09GM4A1k76Ssg==}
peerDependencies:
expo: '*'
react: '*'
- expo-linear-gradient@15.0.8:
- resolution: {integrity: sha512-V2d8Wjn0VzhPHO+rrSBtcl+Fo+jUUccdlmQ6OoL9/XQB7Qk3d9lYrqKDJyccwDxmQT10JdST3Tmf2K52NLc3kw==}
+ expo-linear-gradient@57.0.1:
+ resolution: {integrity: sha512-CpS8eMqoIWcHVGKV66zbDvzotCw9qYp3f8CuI9N+h1LaO0tMLUzBpkhAKePUsXlpN3yolYlHFSPkfVZ/uSh+iA==}
peerDependencies:
expo: '*'
react: '*'
react-native: '*'
- expo-linking@8.0.12:
- resolution: {integrity: sha512-FpXeIpFgZuxihwT9lBo86YD3y6LphBuAhN680MMxm/Y7fmsc57vimn2d3vFu68VI0+Z9w457t494mu2wvlgWTQ==}
+ expo-linking@57.0.6:
+ resolution: {integrity: sha512-NdKjEGk+ywwGRNvgQCq9KettM1eVHfR1+uLov+0ohb6rmmMEgnstfLcc3f0DKMQ0PnROsY5G5+ZkNeiairYRXA==}
peerDependencies:
react: '*'
react-native: '*'
- expo-localization@17.0.8:
- resolution: {integrity: sha512-UrdwklZBDJ+t+ZszMMiE0SXZ2eJxcquCuQcl6EvGHM9K+e6YqKVRQ+w8qE+iIB3H75v2RJy6MHAaLK+Mqeo04g==}
+ expo-localization@57.0.1:
+ resolution: {integrity: sha512-8Ffl4UTbOsQeGT0v5fxMbyPHyPMPnhSPDFQJa8p9rjJrthFoAtNi+fL6Ssmrvf1/7dmPq1mVY52MEt0TMEfgjA==}
peerDependencies:
expo: '*'
react: '*'
- expo-location@19.0.8:
- resolution: {integrity: sha512-H/FI75VuJ1coodJbbMu82pf+Zjess8X8Xkiv9Bv58ZgPKS/2ztjC1YO1/XMcGz7+s9DrbLuMIw22dFuP4HqneA==}
+ expo-location@57.0.11:
+ resolution: {integrity: sha512-MwUroPjIWAnwac6aNHeGcqq9Il6/Mqrz36uVrbBi6MOjABcaeQK96WJo7+hbJP/CGZSa9enxxWpROgvH3m0DlQ==}
peerDependencies:
expo: '*'
- expo-manifests@1.0.11:
- resolution: {integrity: sha512-6zItytTewN37Cjhp3glUg0ozrgW2GwB8x9wtfzUNoJIMmxO38nnGdTLMaotYhRqdf5PP2Dzdmej1HDHXVNUpRw==}
+ expo-manifests@57.0.1:
+ resolution: {integrity: sha512-qB/mDG2dYdl+EvUeQuqP8KFYCFgFCQjJYdWIHo8SFBgDzMYmdF286DFY2M1M9Okr99wkb5M4tgA3aCcwv3aEQA==}
peerDependencies:
expo: '*'
- expo-media-library@18.2.1:
- resolution: {integrity: sha512-dV1acx6Aseu+I5hmF61wY8UkD4vdt8d7YXHDfgNp6ZSs06qxayUxgrBsiG2eigLe54VLm3ycbFBbWi31lhfsCA==}
+ expo-media-library@57.0.3:
+ resolution: {integrity: sha512-VI2NEDaMWIfz9Gxgibzu8BxxxVvgwHRAeZDjV9gci9YH+JkXn5vdvNAnRdmojaPxpp3tbWMfMDB1ympFcrak9A==}
peerDependencies:
expo: '*'
react-native: '*'
- expo-modules-autolinking@3.0.26:
- resolution: {integrity: sha512-WOaud6UKg16ciCOj8raKcMOoKFMHLXKI29U29yhgu1lf+Y7VxJyCktUcYo6AM+ccZ7zLD1uWZdMtgnpf+95OXA==}
+ expo-modules-autolinking@57.0.10:
+ resolution: {integrity: sha512-jNqLswMx8QHN8VXRgud+xT+9q+J9U63CEGlx+k4V/IE9Qyt9HrKbWp+pIDma0fOquta5HBfSfsShcI+NkEpTiA==}
hasBin: true
- expo-modules-core@3.0.30:
- resolution: {integrity: sha512-a6IrpAn/Jbmwxi9L+hMmXKpNqnkUpoF7WHOpn02rVLyax2J0gB1vvCVE5rNydplEnt41Q6WxQwvcOjZaIkcSUg==}
+ expo-modules-core@57.0.8:
+ resolution: {integrity: sha512-ZUU943Oso3B8jFggC+2+LOk8oa+im66IQlleYay6WP5iexbdF2fqpgC4BcYsN4xhCkDKh7KDINSt1FlcxyRRjQ==}
peerDependencies:
react: '*'
react-native: '*'
+ react-native-worklets: 0.11.3
+ peerDependenciesMeta:
+ react-native-worklets:
+ optional: true
- expo-notifications@0.32.17:
- resolution: {integrity: sha512-lwwzn7tImuzTzn9PAglZlS2VfZEvsfFGJTK9Eb8I4cqkGh2DI23YJFJH+WPEIu4QhDvk5JeBjklenJ8IZbmA4A==}
+ expo-modules-jsi@57.0.4:
+ resolution: {integrity: sha512-vt7FyqUqqFXiRVnBqYD7y+GSPTgeua5Ocoy0+SYt+RSHkZEA2Fyop7If3g1TYDzQObYybPRo7TG2Rle1XLaWFw==}
+ peerDependencies:
+ react-native: '*'
+
+ expo-notifications@57.0.7:
+ resolution: {integrity: sha512-77cqQ1E3B8RQ7FadKSl+bOeSzUfbMhbjMxklqQffXIHx1dILrRELFhq5/UkBW66r+F58KtGEMlw0atPVY2qJyQ==}
peerDependencies:
expo: '*'
react: '*'
@@ -5465,36 +5686,38 @@ packages:
peerDependencies:
expo: '*'
- expo-screen-orientation@9.0.9:
- resolution: {integrity: sha512-UTU745XoqBvQJkZ820GTfMuOxlkppYqaeQ+x0wdu44cyrZiZugqe+egFF2+zC+SaxgAltU5EuO8GIj9xSF+YMw==}
+ expo-screen-orientation@57.0.1:
+ resolution: {integrity: sha512-pvMaOf2N5mcJNiYijIj0+Anza6vrHvcnAfFeO2yjquvPbejiE8oEh9BP9+Hx8VRnzFMoxiO6bG9W/oOFhtFIDA==}
peerDependencies:
expo: '*'
react-native: '*'
- expo-server@1.0.7:
- resolution: {integrity: sha512-mcmyML3oXcqFUXUxtdtCL1O00ztNI2v76d+MdniXRUgHNxIcHZ05zo+DqBaOOT6LQnPk4vA4YHqQl7iGUfRb3g==}
+ expo-server@57.0.3:
+ resolution: {integrity: sha512-aK+LdKzauHSGmsOStZtyxdzv0zWssCkxTw3m4QuOhfDSJsZaMRTd9O41d8ixU/QfELTbaJ0oRNcF7JFV/7O9YQ==}
engines: {node: '>=20.16.0'}
- expo-sharing@14.0.8:
- resolution: {integrity: sha512-A1pPr2iBrxypFDCWVAESk532HK+db7MFXbvO2sCV9ienaFXAk7lIBm6bkqgE6vzRd9O3RGdEGzYx80cYlc089Q==}
+ expo-sharing@57.0.13:
+ resolution: {integrity: sha512-8kRUBikuR+c90++PF4PaP8pj+McUNi7AIZkwmn0iXcA8QobkJDSAjSB3fP8qoFm8bzHDhyibHIlODTAsxrMYMw==}
+ peerDependencies:
+ expo: '*'
+ react: '*'
+ react-native: '*'
+
+ expo-sms@57.0.1:
+ resolution: {integrity: sha512-N5WGAA2Hw0nCGQIE8MAaL74ITwRhJdhtjIKryvExaGBxLXHZMgDD3kGdP4+feTo310kZBsGmXC5EtDqcrizE5Q==}
peerDependencies:
expo: '*'
- expo-sms@14.0.8:
- resolution: {integrity: sha512-yNdUUP4Y+arvQByXsSzY8UFPadezxcFPH4u1Ubab2VIRNmDJZf7TIAFmDi8dAbm5CPxbzjKBEbBIkmkVKppHHA==}
+ expo-splash-screen@57.0.7:
+ resolution: {integrity: sha512-QxqfjOCTnTGnqK2BxfEtxUJOcnsJbUXO873Q342r3VkgHAG877eozsNzgYWQXcCFj/asMwx2uy9OXxBShxc5rQ==}
peerDependencies:
expo: '*'
- expo-splash-screen@31.0.13:
- resolution: {integrity: sha512-1epJLC1cDlwwj089R2h8cxaU5uk4ONVAC+vzGiTZH4YARQhL4Stlz1MbR6yAS173GMosvkE6CAeihR7oIbCkDA==}
- peerDependencies:
- expo: '*'
+ expo-structured-headers@57.0.0:
+ resolution: {integrity: sha512-//t9UNPbJSEysc2x4VKJG/u7Osvv5DYJWsET5bqt/B+qcD1by/JXvSQzX3Q/YAgA96xFPontrz6OAPLbO4JKEA==}
- expo-structured-headers@5.0.0:
- resolution: {integrity: sha512-RmrBtnSphk5REmZGV+lcdgdpxyzio5rJw8CXviHE6qH5pKQQ83fhMEcigvrkBdsn2Efw2EODp4Yxl1/fqMvOZw==}
-
- expo-system-ui@6.0.9:
- resolution: {integrity: sha512-eQTYGzw1V4RYiYHL9xDLYID3Wsec2aZS+ypEssmF64D38aDrqbDgz1a2MSlHLQp2jHXSs3FvojhZ9FVela1Zcg==}
+ expo-system-ui@57.0.2:
+ resolution: {integrity: sha512-zABCRqFSioDBAo/RtmS0dQiGgDtDPZUVk01Y3Ti4ducobNM4HTM2sNAtq+YPpEUhaVW3hccPVsEUH4LK/ADVhA==}
peerDependencies:
expo: '*'
react-native: '*'
@@ -5503,51 +5726,61 @@ packages:
react-native-web:
optional: true
- expo-updates-interface@2.0.0:
- resolution: {integrity: sha512-pTzAIufEZdVPKql6iMi5ylVSPqV1qbEopz9G6TSECQmnNde2nwq42PxdFBaUEd8IZJ/fdJLQnOT3m6+XJ5s7jg==}
+ expo-updates-interface@57.0.1:
+ resolution: {integrity: sha512-+LUWwJ0gf/TEKMVdQAw/Gjih4dvrk+URgy24X9qEGKuuMDZqjBRm9T4yQyBVALGL5TTdPUaB6ILxx3lshm3pwQ==}
peerDependencies:
expo: '*'
- expo-updates@29.0.17:
- resolution: {integrity: sha512-9h78cs6Q2rs/dEY7zAgyEm/m6J5rHy8RNpRyhilEAvrzrGLHChVZJT+bSR2RwNJg1DtwUNEjCgZrxDlM7LnNkg==}
+ expo-updates@57.0.10:
+ resolution: {integrity: sha512-1j6wIrF7rFAnfiiMxaSfaA6nV5oOeJnAIpquQDpQ70Jd9hKGt9PPDtf0iByiz+AM+PgNbKFpGYuk13sGI+kd1g==}
hasBin: true
peerDependencies:
expo: '*'
+ expo-dev-client: '*'
react: '*'
react-native: '*'
+ peerDependenciesMeta:
+ expo-dev-client:
+ optional: true
- expo-video-thumbnails@10.0.8:
- resolution: {integrity: sha512-nPUtP7ERLf5DY5V2A6gquRP5rP3Uvq6+FVkDwG9R3KKhFeTYkWZ5Ce1iQ7Yt5qDNQqcUcgEqmRpGCbJmn9ckKA==}
+ expo-video-thumbnails@57.0.1:
+ resolution: {integrity: sha512-AO06Oz1OXTtk69ajF9Lv8Y4tNTeCMPXpxN9imi3faCfdI7GbpYbQlQJTifbQfkmVcZPC9WoKS+gXE2gbumNKCw==}
peerDependencies:
expo: '*'
- expo-video@3.0.16:
- resolution: {integrity: sha512-H1HlxcHGomZItqisGfW3YL/G9BHtNBfVSimDJcLuyxyU87wFnV8loO9tCjuhufkfh/aTa2sW5BYAjLjg9DvnBQ==}
+ expo-video@57.0.2:
+ resolution: {integrity: sha512-s8KDRpGNWOE7Vx7+1o89hGeXZ3evx00SrQ2+5odYcmvUikNvF59/VuFkg55+YIS981wVQz/07csK6hLAK/w4bQ==}
peerDependencies:
expo: '*'
react: '*'
react-native: '*'
- expo-web-browser@15.0.11:
- resolution: {integrity: sha512-r2LS4Ro6DgUPZkcaEfgt8mp9eJuoA93x11Jh7S6utFe0FEzvUNn2yFhxg8XVwESaaHGt2k5V8LuK36rsp0BeIw==}
+ expo-web-browser@57.0.2:
+ resolution: {integrity: sha512-3vl5kvd7PB48ub6PpNIJUuPxO8xVa6D8RnIgNba6SXRwqFprOfeEZgwTgtm41kz0AAtvMOztUVNEUkwrHKjqMQ==}
peerDependencies:
expo: '*'
react-native: '*'
- expo@54.0.35:
- resolution: {integrity: sha512-E+tXpQwjGm5fK/uwa55p0Xx/kuo5dXDKfVJ95IargTNa5KiFt26lSTXXa9KnHbI4EDLwFD38/xTKZvzPTlGTdg==}
+ expo@57.0.8:
+ resolution: {integrity: sha512-0IxxoPZbT54IH4fHL5NihkvED9HBVQx3uNdPvyv8pFUHWJ81RdFjL0aJys1IB7hbo09KTz4xW4I2aWVOXKAcJQ==}
hasBin: true
peerDependencies:
'@expo/dom-webview': '*'
'@expo/metro-runtime': '*'
react: '*'
+ react-dom: '*'
react-native: '*'
+ react-native-web: '*'
react-native-webview: '*'
peerDependenciesMeta:
'@expo/dom-webview':
optional: true
'@expo/metro-runtime':
optional: true
+ react-dom:
+ optional: true
+ react-native-web:
+ optional: true
react-native-webview:
optional: true
@@ -5571,6 +5804,9 @@ packages:
fast-json-stringify@6.4.0:
resolution: {integrity: sha512-ibRCQ0GZKJIQ+P3Et1h0LhPgp3PMTYk0MH8O+kW3lNYsvmaQww5Nn3f1jf73Q0jR1Yz3a1CDP4/NZD3vOajWJQ==}
+ fast-levenshtein@2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+
fast-text-encoding@1.0.6:
resolution: {integrity: sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==}
@@ -5584,6 +5820,11 @@ packages:
resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
engines: {node: '>=0.8.0'}
+ fb-dotslash@0.5.8:
+ resolution: {integrity: sha512-XHYLKk9J4BupDxi9bSEhkfss0m+Vr9ChTrjhf9l2iw3jB5C7BnY4GVPoMcqbrTutsKJso6yj2nAB6BI/F2oZaA==}
+ engines: {node: '>=20'}
+ hasBin: true
+
fb-watchman@2.0.2:
resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
@@ -5602,6 +5843,13 @@ packages:
picomatch:
optional: true
+ fetch-nodeshim@0.4.10:
+ resolution: {integrity: sha512-m6I8ALe4L4XpdETy7MJZWs6L1IVMbjs99bwbpIKphxX+0CTns4IKDWJY0LWfr4YsFjfg+z1TjzTMU8lKl8rG0w==}
+
+ file-entry-cache@6.0.1:
+ resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+
file-loader@6.2.0:
resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
engines: {node: '>= 10.13.0'}
@@ -5646,6 +5894,13 @@ packages:
find-yarn-workspace-root@2.0.0:
resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==}
+ flat-cache@3.2.0:
+ resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+
+ flatted@3.4.4:
+ resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==}
+
flow-enums-runtime@0.0.6:
resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==}
@@ -5677,10 +5932,6 @@ packages:
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
engines: {node: '>= 0.6'}
- freeport-async@2.0.0:
- resolution: {integrity: sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==}
- engines: {node: '>=8'}
-
fresh@0.5.2:
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
engines: {node: '>= 0.6'}
@@ -5797,6 +6048,10 @@ packages:
engines: {node: '>=16 || 14 >=14.17'}
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
+ globals@13.24.0:
+ resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
+ engines: {node: '>=8'}
+
globals@17.6.0:
resolution: {integrity: sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==}
engines: {node: '>=18'}
@@ -5820,6 +6075,9 @@ packages:
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+ graphemer@1.4.0:
+ resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+
gzip-size@6.0.0:
resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
engines: {node: '>=10'}
@@ -5862,14 +6120,8 @@ packages:
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
hasBin: true
- hermes-estree@0.25.1:
- resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==}
-
- hermes-estree@0.29.1:
- resolution: {integrity: sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==}
-
- hermes-estree@0.32.0:
- resolution: {integrity: sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==}
+ hermes-compiler@250829098.0.14:
+ resolution: {integrity: sha512-5meXwsZxgiqFaJjNzwjzI9IyUkuGGBisu+z9BvQWmGVpjH6nz11hgqkyxe4dl8UAdyIV4lTbz91+Dlnjz0VxqA==}
hermes-estree@0.35.0:
resolution: {integrity: sha512-xVx5Opwy8Oo1I5yGpVRhCvWL/iV3M+ylksSKVNlxxD90cpDpR/AR1jLYqK8HWihm065a6UI3HeyAmYzwS8NOOg==}
@@ -5877,14 +6129,8 @@ packages:
hermes-estree@0.36.0:
resolution: {integrity: sha512-A1+8zn5oss2CFP7pKsOaxorQG6FNIz1WU1VDqruLPPZl3LVgeE2C5xfFg8Ow6/Ow4mSslLLtYP1J3n38eKyW9w==}
- hermes-parser@0.25.1:
- resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==}
-
- hermes-parser@0.29.1:
- resolution: {integrity: sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==}
-
- hermes-parser@0.32.0:
- resolution: {integrity: sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==}
+ hermes-estree@0.36.1:
+ resolution: {integrity: sha512-guv1nQ6IJ7S83NRFPWc3SA7IBZrdNC9kapwOq6uXvF4wP+sDCgjzQbKPCoyYmoyZRzztF/n/c36l/rccCZSiCw==}
hermes-parser@0.35.0:
resolution: {integrity: sha512-9JLjeHxBx8T4CAsydZR49PNZUaix+WpQJwu9p2010lu+7Kwl6D/7wYFFJxoz+aXkaaClp9Zfg6W6/zVlSJORaA==}
@@ -5892,6 +6138,9 @@ packages:
hermes-parser@0.36.0:
resolution: {integrity: sha512-GdpwMmH5x6IpC1cijvcvYnlPB60Mh6kTSF/NFdYV/j56gYdi+0RIakYs+eqOV+bbO0SW7mgVVGSsTJxyPQfo3w==}
+ hermes-parser@0.36.1:
+ resolution: {integrity: sha512-GApNk4zLHi2UWoWZZkx7LNCOSzLSc5lB55pZ/PhK7ycFeg7u5LcF88p/WbpIi1XUDtE0MpHE3uRR3u3KB7TjSQ==}
+
hls.js@1.6.16:
resolution: {integrity: sha512-VSIRpLfRwlAAdGL4wiTucx2ScRipo0ed1FBatWkyt832jC4CReKstga6yIhYVwGu9LOBjuX9wzmRMeQdBJtzEA==}
@@ -6070,10 +6319,6 @@ packages:
is-alphanumerical@2.0.1:
resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
- is-arguments@1.2.0:
- resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==}
- engines: {node: '>= 0.4'}
-
is-array-buffer@3.0.5:
resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
engines: {node: '>= 0.4'}
@@ -6164,10 +6409,6 @@ packages:
resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
engines: {node: '>= 0.4'}
- is-nan@1.3.2:
- resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==}
- engines: {node: '>= 0.4'}
-
is-negative-zero@2.0.3:
resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
engines: {node: '>= 0.4'}
@@ -6196,6 +6437,10 @@ packages:
resolution: {integrity: sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==}
engines: {node: '>=6'}
+ is-path-inside@3.0.3:
+ resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
+ engines: {node: '>=8'}
+
is-plain-obj@2.1.0:
resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
engines: {node: '>=8'}
@@ -6357,14 +6602,17 @@ packages:
resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-expo@54.0.17:
- resolution: {integrity: sha512-LyIhrsP4xvHEEcR1R024u/LBj3uPpAgB+UljgV+YXWkEHjprnr0KpE4tROsMNYCVTM1pPlAnPuoBmn5gnAN9KA==}
+ jest-expo@57.0.4:
+ resolution: {integrity: sha512-EpTc8zizYWepKXHdHYuYBdEP0mZLjZfB1ldb2dyLKHug0HYFGuBnQ3Qp3gmBWCj3rSRaJYP90Lq/qPozzx2Khg==}
hasBin: true
peerDependencies:
+ '@react-native/jest-preset': ^0.86.2
expo: '*'
react-native: '*'
react-server-dom-webpack: ~19.0.4 || ~19.1.5 || ~19.2.4
peerDependenciesMeta:
+ expo:
+ optional: true
react-server-dom-webpack:
optional: true
@@ -6529,6 +6777,9 @@ packages:
engines: {node: '>=6'}
hasBin: true
+ json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+
json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
@@ -6541,6 +6792,9 @@ packages:
json-schema-traverse@1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+ json-stable-stringify-without-jsonify@1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+
json5@2.2.3:
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines: {node: '>=6'}
@@ -6557,6 +6811,9 @@ packages:
resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==}
engines: {node: '>=18'}
+ keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+
kleur@3.0.3:
resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
engines: {node: '>=6'}
@@ -6575,6 +6832,10 @@ packages:
resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
engines: {node: '>=6'}
+ levn@0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+
libphonenumber-js@1.13.1:
resolution: {integrity: sha512-GEw0GLL7YUUA6nv21IsCvVjtI5Ejn84sjbdfQ9KxdbqEVOk1PZh7xejn01EEiniKw+dBeCfim+8MGeuvVuE2BA==}
@@ -6703,6 +6964,9 @@ packages:
lodash.memoize@4.1.2:
resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
+ lodash.merge@4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+
lodash.shuffle@4.2.0:
resolution: {integrity: sha512-V/rTAABKLFjoecTZjKSv+A1ZomG8hZg8hlgeG6wwQVD9AGv+10zqqSf6mFq2tVA703Zd5R0YhSuSlXA+E/Ei+Q==}
@@ -6824,117 +7088,59 @@ packages:
resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
engines: {node: '>= 0.6'}
- metro-babel-transformer@0.83.3:
- resolution: {integrity: sha512-1vxlvj2yY24ES1O5RsSIvg4a4WeL7PFXgKOHvXTXiW0deLvQr28ExXj6LjwCCDZ4YZLhq6HddLpZnX4dEdSq5g==}
- engines: {node: '>=20.19.4'}
-
metro-babel-transformer@0.84.4:
resolution: {integrity: sha512-rvCfz8snl9h20VcvpOHxZuHP1SlAkv4HXbzw7nyyVwu6Eqo5PRerbakQ9XmUCOsRy70spJ37O+G1TK8oMzo48g==}
engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
- metro-cache-key@0.83.3:
- resolution: {integrity: sha512-59ZO049jKzSmvBmG/B5bZ6/dztP0ilp0o988nc6dpaDsU05Cl1c/lRf+yx8m9WW/JVgbmfO5MziBU559XjI5Zw==}
- engines: {node: '>=20.19.4'}
-
metro-cache-key@0.84.4:
resolution: {integrity: sha512-wVO79aGrkYImpnaVS4+d5RrRBRPX31QtvKB3wKGBuiNSznduZTQHzsrJZRroFJSwnygrzdsGUtDQPuqqFjFdvw==}
engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
- metro-cache@0.83.3:
- resolution: {integrity: sha512-3jo65X515mQJvKqK3vWRblxDEcgY55Sk3w4xa6LlfEXgQ9g1WgMh9m4qVZVwgcHoLy0a2HENTPCCX4Pk6s8c8Q==}
- engines: {node: '>=20.19.4'}
-
metro-cache@0.84.4:
resolution: {integrity: sha512-gpcFQdSLUwUCk71saKoE64jLFbx2nwTfVCcPSULMNT8QYq0p1eZZE29Jvd0HtT/UlhC3ZOutLxJME5xqD2JUZg==}
engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
- metro-config@0.83.3:
- resolution: {integrity: sha512-mTel7ipT0yNjKILIan04bkJkuCzUUkm2SeEaTads8VfEecCh+ltXchdq6DovXJqzQAXuR2P9cxZB47Lg4klriA==}
- engines: {node: '>=20.19.4'}
-
metro-config@0.84.4:
resolution: {integrity: sha512-PMotGDjXcXLWo2TMRH+VR99phFNgYTwqh4OoieIKK3yTJa1Jmkl+fZJxDO0jfBvNF+WESHciHvpNuBtXaF3B0Q==}
engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
- metro-core@0.83.3:
- resolution: {integrity: sha512-M+X59lm7oBmJZamc96usuF1kusd5YimqG/q97g4Ac7slnJ3YiGglW5CsOlicTR5EWf8MQFxxjDoB6ytTqRe8Hw==}
- engines: {node: '>=20.19.4'}
-
metro-core@0.84.4:
resolution: {integrity: sha512-HONpWC5LGXZn3ffkd4Hu6AIrfE7j4Z0g0wMo/goV24WOB3lhuFZ40KgvaDiSw8iyQHloMYay5N/wPX+z8oN/PQ==}
engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
- metro-file-map@0.83.3:
- resolution: {integrity: sha512-jg5AcyE0Q9Xbbu/4NAwwZkmQn7doJCKGW0SLeSJmzNB9Z24jBe0AL2PHNMy4eu0JiKtNWHz9IiONGZWq7hjVTA==}
- engines: {node: '>=20.19.4'}
-
metro-file-map@0.84.4:
resolution: {integrity: sha512-KSVDi/u60hKPx++NLu3MTIvyjzNoJnFAF8PQFxaj1jiSka/wjw+Ua6sNuJ0TDHQv+7AAoFQxeMgaRAe8Yic5wQ==}
engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
- metro-minify-terser@0.83.3:
- resolution: {integrity: sha512-O2BmfWj6FSfzBLrNCXt/rr2VYZdX5i6444QJU0fFoc7Ljg+Q+iqebwE3K0eTvkI6TRjELsXk1cjU+fXwAR4OjQ==}
- engines: {node: '>=20.19.4'}
-
metro-minify-terser@0.84.4:
resolution: {integrity: sha512-5qpbaVOMC7CPitIpuewzVeGw7E+C3ykbv2mqTjQLl85Z3annSVGlSCTcsZjqXZzjupfK4Ztj3dDc4kc44NZwtQ==}
engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
- metro-resolver@0.83.3:
- resolution: {integrity: sha512-0js+zwI5flFxb1ktmR///bxHYg7OLpRpWZlBBruYG8OKYxeMP7SV0xQ/o/hUelrEMdK4LJzqVtHAhBm25LVfAQ==}
- engines: {node: '>=20.19.4'}
-
metro-resolver@0.84.4:
resolution: {integrity: sha512-1qLgbxQ5ZGhhutuPot1Yp348ofDsATL2WkrHF65TobqTT9K3P9qJXw38bomk7ncp5B7OYMfWwtyBZo1lCV792A==}
engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
- metro-runtime@0.83.3:
- resolution: {integrity: sha512-JHCJb9ebr9rfJ+LcssFYA2x1qPYuSD/bbePupIGhpMrsla7RCwC/VL3yJ9cSU+nUhU4c9Ixxy8tBta+JbDeZWw==}
- engines: {node: '>=20.19.4'}
-
metro-runtime@0.84.4:
resolution: {integrity: sha512-Jibypds4g7AhzdRKY+kDoj51s5EXMwgyp5ddtlreDAsWefMdOx+agWqgm0H2XSZ/ueanHHVM89fnf5OJnlxa8Q==}
engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
- metro-source-map@0.83.3:
- resolution: {integrity: sha512-xkC3qwUBh2psVZgVavo8+r2C9Igkk3DibiOXSAht1aYRRcztEZNFtAMtfSB7sdO2iFMx2Mlyu++cBxz/fhdzQg==}
- engines: {node: '>=20.19.4'}
-
metro-source-map@0.84.4:
resolution: {integrity: sha512-jbWkPxIesVuo1IWkvezmMJld6iu8nD62GsrZiV6jP37AOdbo4OBq1FJ+qkOg8sV05wAHB//jAbziuW0SlJfW4g==}
engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
- metro-symbolicate@0.83.3:
- resolution: {integrity: sha512-F/YChgKd6KbFK3eUR5HdUsfBqVsanf5lNTwFd4Ca7uuxnHgBC3kR/Hba/RGkenR3pZaGNp5Bu9ZqqP52Wyhomw==}
- engines: {node: '>=20.19.4'}
- hasBin: true
-
metro-symbolicate@0.84.4:
resolution: {integrity: sha512-OnfpacxUqGPZQ27t8qK9mFa7uqHIlVWeqRqkCbvMvreEBiamEeOn8krKtcwgP5M4cYDPwuSmCTopHMVthqG4zA==}
engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
hasBin: true
- metro-transform-plugins@0.83.3:
- resolution: {integrity: sha512-eRGoKJU6jmqOakBMH5kUB7VitEWiNrDzBHpYbkBXW7C5fUGeOd2CyqrosEzbMK5VMiZYyOcNFEphvxk3OXey2A==}
- engines: {node: '>=20.19.4'}
-
metro-transform-plugins@0.84.4:
resolution: {integrity: sha512-kehr6HbAecqD0/a3xLXobELdPaAmRAl8bel0qagPF4vhZtux93nS8S4eq2kgKt6J2GnQpVjSoW1PXdst04mwow==}
engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
- metro-transform-worker@0.83.3:
- resolution: {integrity: sha512-Ztekew9t/gOIMZX1tvJOgX7KlSLL5kWykl0Iwu2cL2vKMKVALRl1hysyhUw0vjpAvLFx+Kfq9VLjnHIkW32fPA==}
- engines: {node: '>=20.19.4'}
-
metro-transform-worker@0.84.4:
resolution: {integrity: sha512-W1IYMvvXTu4MxYr7d9h7CeG2vpIr3bmLLIavkPY4O1ilzDrvS8z/NEe6y+pC44Ff7raMXQgYSfdqDUwN/i39gg==}
engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
- metro@0.83.3:
- resolution: {integrity: sha512-+rP+/GieOzkt97hSJ0MrPOuAH/jpaS21ZDvL9DJ35QYRDlQcwzcvUlGUf79AnQxq/2NPiS/AULhhM4TKutIt8Q==}
- engines: {node: '>=20.19.4'}
- hasBin: true
-
metro@0.84.4:
resolution: {integrity: sha512-8ETTubqfD6ornDy2zYDvRcKnVDOXdFJsjetYDBsY4oAsb6NJkiwFR+FaMESyGppFmQUyBQA4H4sFGxzcQSGtFA==}
engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
@@ -7045,8 +7251,8 @@ packages:
multiformats@13.4.2:
resolution: {integrity: sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==}
- mz@2.7.0:
- resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
+ multitars@1.0.2:
+ resolution: {integrity: sha512-6GwVw5eLi9sThdtlS4PKwC7yRLaf45pYhIEzKBHdKxi+YOXGKFX8acIniH+Uh/+k9mS2lQOupTccjoe5r0/1IQ==}
nanoid@3.3.12:
resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==}
@@ -7076,9 +7282,6 @@ packages:
neo-async@2.6.2:
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
- nested-error-stacks@2.0.1:
- resolution: {integrity: sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==}
-
no-case@3.0.4:
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
@@ -7104,7 +7307,7 @@ packages:
node-releases@2.0.44:
resolution: {integrity: sha512-5WUyunoPMsvvEhS8AxHtRzP+oA8UCkJ7YRxatWKjngndhDGLiqEVAQKWjFAiAiuL8zMRGzGSJxFnLetoa43qGQ==}
- node@runtime:24.18.0:
+ node@runtime:24.19.0:
resolution:
type: variations
variants:
@@ -7112,9 +7315,9 @@ packages:
archive: tarball
bin:
node: bin/node
- integrity: sha256-ZGOiNzn2sjAOvsXM1gJ14TjjhY/Br8bo+bxOT2pLdvo=
+ integrity: sha256-9ONcExZd5ogMqiVYwKpIyoitpH/iI0vtB9Ztu4CkfI0=
type: binary
- url: https://nodejs.org/download/release/v24.18.0/node-v24.18.0-aix-ppc64.tar.gz
+ url: https://nodejs.org/download/release/v24.19.0/node-v24.19.0-aix-ppc64.tar.gz
targets:
- cpu: ppc64
os: aix
@@ -7122,9 +7325,9 @@ packages:
archive: tarball
bin:
node: bin/node
- integrity: sha256-4al+FMmcgD6WxzOUAyguoFpJnDL42D3v6e9exm+XntE=
+ integrity: sha256-gpS3qpsDmXSBwGur8eiycMhZNY8n2lehFQmv5TesOB0=
type: binary
- url: https://nodejs.org/download/release/v24.18.0/node-v24.18.0-darwin-arm64.tar.gz
+ url: https://nodejs.org/download/release/v24.19.0/node-v24.19.0-darwin-arm64.tar.gz
targets:
- cpu: arm64
os: darwin
@@ -7132,9 +7335,9 @@ packages:
archive: tarball
bin:
node: bin/node
- integrity: sha256-39Db0+chUDQ033tyBecZ9hs6OjGyvPlym4uR/qJA8IA=
+ integrity: sha256-0bXpmdsVjGL+j3JnpEdrA12L2TsaYFusJKPw3RZuMxY=
type: binary
- url: https://nodejs.org/download/release/v24.18.0/node-v24.18.0-darwin-x64.tar.gz
+ url: https://nodejs.org/download/release/v24.19.0/node-v24.19.0-darwin-x64.tar.gz
targets:
- cpu: x64
os: darwin
@@ -7142,9 +7345,9 @@ packages:
archive: tarball
bin:
node: bin/node
- integrity: sha256-a0SEwhkCdBdd+aqPKOLXWKgZyxwf5qtIHi+VtGOrhQg=
+ integrity: sha256-0oyKW/CoCPDtQ0odzoxUrpjwNxwL2GrFirxhP3PmZD8=
type: binary
- url: https://nodejs.org/download/release/v24.18.0/node-v24.18.0-linux-arm64.tar.gz
+ url: https://nodejs.org/download/release/v24.19.0/node-v24.19.0-linux-arm64.tar.gz
targets:
- cpu: arm64
os: linux
@@ -7152,9 +7355,9 @@ packages:
archive: tarball
bin:
node: bin/node
- integrity: sha256-/hM4ly95KDxrwh5h2/RXa76MBa3tKZnUHIZDrTAmUUI=
+ integrity: sha256-sxqMTLxYn5FS8y/bQxhGl1nhZViltdk7f/L7KHsBPbI=
type: binary
- url: https://nodejs.org/download/release/v24.18.0/node-v24.18.0-linux-ppc64le.tar.gz
+ url: https://nodejs.org/download/release/v24.19.0/node-v24.19.0-linux-ppc64le.tar.gz
targets:
- cpu: ppc64le
os: linux
@@ -7162,9 +7365,9 @@ packages:
archive: tarball
bin:
node: bin/node
- integrity: sha256-Nx68E5RfwWlJPnUvLdr6+rbs2My0Ubz/RuCfacXdjHo=
+ integrity: sha256-s6tqQ5KCjbn9TtloOY1VGIKSvMFYGVQtU74LEQDjMvw=
type: binary
- url: https://nodejs.org/download/release/v24.18.0/node-v24.18.0-linux-s390x.tar.gz
+ url: https://nodejs.org/download/release/v24.19.0/node-v24.19.0-linux-s390x.tar.gz
targets:
- cpu: s390x
os: linux
@@ -7172,9 +7375,9 @@ packages:
archive: tarball
bin:
node: bin/node
- integrity: sha256-eDEwmElj23upy9AQierywu+wVcfBaTyUMXS5Z7MFDLg=
+ integrity: sha256-9iXZfNcH30/5YlSRb7xf8BTwnAnv/loeDKj21BqHidQ=
type: binary
- url: https://nodejs.org/download/release/v24.18.0/node-v24.18.0-linux-x64.tar.gz
+ url: https://nodejs.org/download/release/v24.19.0/node-v24.19.0-linux-x64.tar.gz
targets:
- cpu: x64
os: linux
@@ -7182,10 +7385,10 @@ packages:
archive: zip
bin:
node: node.exe
- integrity: sha256-8nRmmtuTsf0Pv48h/QeGCencyEMz1PJxjS3eP5oWGgE=
- prefix: node-v24.18.0-win-arm64
+ integrity: sha256-hQL0pQtFjUzDjtjyABVWws0jnUZJIPdAF5Jsyx4cFX8=
+ prefix: node-v24.19.0-win-arm64
type: binary
- url: https://nodejs.org/download/release/v24.18.0/node-v24.18.0-win-arm64.zip
+ url: https://nodejs.org/download/release/v24.19.0/node-v24.19.0-win-arm64.zip
targets:
- cpu: arm64
os: win32
@@ -7193,10 +7396,10 @@ packages:
archive: zip
bin:
node: node.exe
- integrity: sha256-CuaEBrQtdyVmHal5sUA+yZJtogXGdwgn8zqsnY8m6CE=
- prefix: node-v24.18.0-win-x64
+ integrity: sha256-V/cas2UueX2ErN3HnIHMn/HG3bKhl0zbg/AP7pv/THM=
+ prefix: node-v24.19.0-win-x64
type: binary
- url: https://nodejs.org/download/release/v24.18.0/node-v24.18.0-win-x64.zip
+ url: https://nodejs.org/download/release/v24.19.0/node-v24.19.0-win-x64.zip
targets:
- cpu: x64
os: win32
@@ -7204,9 +7407,9 @@ packages:
archive: tarball
bin:
node: bin/node
- integrity: sha256-scbC3DG0bdj7IyL0/nWwfndcUSC8NyUd7uoo9SnUVns=
+ integrity: sha256-IIJOTTWUj65bM33M70eBOwTYmVMS9Z33OG8iVtn5q34=
type: binary
- url: https://unofficial-builds.nodejs.org/download/release/v24.18.0/node-v24.18.0-linux-arm64-musl.tar.gz
+ url: https://unofficial-builds.nodejs.org/download/release/v24.19.0/node-v24.19.0-linux-arm64-musl.tar.gz
targets:
- cpu: arm64
os: linux
@@ -7215,14 +7418,14 @@ packages:
archive: tarball
bin:
node: bin/node
- integrity: sha256-6lhAmRHhQexrGdkXjvotkYWhMpUAWxy/VSGzFX7tHZU=
+ integrity: sha256-xgIjeG3xSl0j4iDruOYDGPUyJkCmL5Dm2eVNOhjaUy4=
type: binary
- url: https://unofficial-builds.nodejs.org/download/release/v24.18.0/node-v24.18.0-linux-x64-musl.tar.gz
+ url: https://unofficial-builds.nodejs.org/download/release/v24.19.0/node-v24.19.0-linux-x64-musl.tar.gz
targets:
- cpu: x64
os: linux
libc: musl
- version: 24.18.0
+ version: 24.19.0
hasBin: true
normalize-path@3.0.0:
@@ -7254,10 +7457,6 @@ packages:
nwsapi@2.2.23:
resolution: {integrity: sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==}
- ob1@0.83.3:
- resolution: {integrity: sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA==}
- engines: {node: '>=20.19.4'}
-
ob1@0.84.4:
resolution: {integrity: sha512-eJXMpz4aQHXF/YBB9ddqZDIS+ooO91hObo9FoW/xBkr54/zCwYYCDqT/O54vNo8kOkWs5Ou/y28NgdrV0edQNA==}
engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
@@ -7270,10 +7469,6 @@ packages:
resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
engines: {node: '>= 0.4'}
- object-is@1.1.6:
- resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
- engines: {node: '>= 0.4'}
-
object-keys@1.1.1:
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
engines: {node: '>= 0.4'}
@@ -7292,6 +7487,10 @@ packages:
obuf@1.1.2:
resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
+ on-exit-leak-free@2.1.2:
+ resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==}
+ engines: {node: '>=14.0.0'}
+
on-finished@2.3.0:
resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==}
engines: {node: '>= 0.8'}
@@ -7331,6 +7530,10 @@ packages:
resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
hasBin: true
+ optionator@0.9.4:
+ resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
+ engines: {node: '>= 0.8.0'}
+
ora@3.4.0:
resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==}
engines: {node: '>=6'}
@@ -7423,6 +7626,9 @@ packages:
pascal-case@3.1.2:
resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
+ path-browserify@1.0.1:
+ resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
+
path-exists@3.0.0:
resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
engines: {node: '>=4'}
@@ -7490,6 +7696,16 @@ packages:
resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==}
engines: {node: '>=0.10.0'}
+ pino-abstract-transport@3.0.0:
+ resolution: {integrity: sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==}
+
+ pino-std-serializers@7.1.0:
+ resolution: {integrity: sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw==}
+
+ pino@10.3.1:
+ resolution: {integrity: sha512-r34yH/GlQpKZbU1BvFFqOjhISRo1MNx1tWYsYvmj6KIRHSPMT2+yHOEb1SG6NMvRoHRF0a07kCOox/9yakl1vg==}
+ hasBin: true
+
pirates@4.0.7:
resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
engines: {node: '>= 6'}
@@ -7717,23 +7933,19 @@ packages:
postcss-value-parser@4.2.0:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
- postcss@8.4.49:
- resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==}
- engines: {node: ^10 || ^12 || >=14}
-
postcss@8.5.14:
resolution: {integrity: sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==}
engines: {node: ^10 || ^12 || >=14}
- prettier@3.8.3:
- resolution: {integrity: sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==}
+ prelude-ls@1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+
+ prettier@3.9.6:
+ resolution: {integrity: sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==}
engines: {node: '>=14'}
hasBin: true
- pretty-bytes@5.6.0:
- resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
- engines: {node: '>=6'}
-
pretty-error@4.0.0:
resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==}
@@ -7752,6 +7964,9 @@ packages:
process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+ process-warning@5.1.0:
+ resolution: {integrity: sha512-jQSaVHsPgtyw60e1rQ/A+/ArPEj/S8pS/vFnyGa/gYFXrKk/6RuDkoqVDQ5NI5MmS01698ltlAk0NoDBNLujRw==}
+
progress@2.0.3:
resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==}
engines: {node: '>=0.4.0'}
@@ -7853,10 +8068,6 @@ packages:
pure-rand@6.1.0:
resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
- qrcode-terminal@0.11.0:
- resolution: {integrity: sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==}
- hasBin: true
-
qrcode@1.5.4:
resolution: {integrity: sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==}
engines: {node: '>=10.13.0'}
@@ -7879,6 +8090,9 @@ packages:
queue@6.0.2:
resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
+ quick-format-unescaped@4.0.4:
+ resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==}
+
radix-ui@1.4.3:
resolution: {integrity: sha512-aWizCQiyeAenIdUbqEpXgRA1ya65P13NKn/W8rWkcN0OPkRDxdBVLWnIEDsS2RpwCK2nobI7oMUSmexzTDyAmA==}
peerDependencies:
@@ -7907,18 +8121,18 @@ packages:
resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
hasBin: true
- react-compiler-runtime@19.1.0-rc.3:
- resolution: {integrity: sha512-Cssogys2XZu6SqxRdX2xd8cQAf57BBvFbLEBlIa77161lninbKUn/EqbecCe7W3eqDQfg3rIoOwzExzgCh7h/g==}
+ react-compiler-runtime@1.0.0:
+ resolution: {integrity: sha512-rRfjYv66HlG8896yPUDONgKzG5BxZD1nV9U6rkm+7VCuvQc903C4MjcoZR4zPw53IKSOX9wMQVpA1IAbRtzQ7w==}
peerDependencies:
react: ^17.0.0 || ^18.0.0 || ^19.0.0 || ^0.0.0-experimental
react-devtools-core@6.1.5:
resolution: {integrity: sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA==}
- react-dom@19.1.0:
- resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==}
+ react-dom@19.2.3:
+ resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==}
peerDependencies:
- react: ^19.1.0
+ react: ^19.2.3
react-fast-compare@3.2.2:
resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
@@ -7986,7 +8200,7 @@ packages:
react: '>= 18.2.0'
react-native: '*'
react-native-gesture-handler: '>= 2.0.0'
- react-native-reanimated: 4.3.2
+ react-native-reanimated: 4.5.3
react-native-edge-to-edge@1.8.1:
resolution: {integrity: sha512-bhvsKqeX9PGkY9wBUk9vni/tJNJdKtLPbs/j3e/3CdV4JmUWfTXYYoL+4Hc8Wmej+5eJxkc8KOFa454ruFWBCA==}
@@ -7994,8 +8208,8 @@ packages:
react: '*'
react-native: '*'
- react-native-gesture-handler@2.30.1:
- resolution: {integrity: sha512-xIUBDo5ktmJs++0fZlavQNvDEE4PsihWhSeJsJtoz4Q6p0MiTM9TgrTgfEgzRR36qGPytFoeq+ShLrVwGdpUdA==}
+ react-native-gesture-handler@2.32.0:
+ resolution: {integrity: sha512-uYIMOKlKENORq2SABE+jIjbPU+h5I/sQKcq2v16zRq848nwEp1fWRVwML4QWqijc8UcXJC25o54S8GQd4Mf2OA==}
peerDependencies:
react: '*'
react-native: '*'
@@ -8006,12 +8220,12 @@ packages:
react: '*'
react-native: '*'
- react-native-keyboard-controller@1.21.8:
- resolution: {integrity: sha512-fPpRb1DkG0mgjNdsVvwKTeEqbTdUymZ7ZEqe5kXPEhEjnvo+3BX3p4CBhg3dEzfonL/hGGSS1dBDMDjiQbAkBQ==}
+ react-native-keyboard-controller@1.21.9:
+ resolution: {integrity: sha512-+TkkFldht4+AXBQeDy1hLE7iqiW8/NkY/ekhcFsKIiRdI9qC5JDzx0TfAg1iYZB2IeOXppmURIy2jFCUjOcV1w==}
peerDependencies:
react: '*'
react-native: '*'
- react-native-reanimated: 4.3.2
+ react-native-reanimated: 4.5.3
react-native-mmkv@3.3.3:
resolution: {integrity: sha512-GMsfOmNzx0p5+CtrCFRVtpOOMYNJXuksBVARSQrCFaZwjUyHJdQzcN900GGaFFNTxw2fs8s5Xje//RDKj9+PZA==}
@@ -8038,27 +8252,27 @@ packages:
react-native: '*'
react-native-svg: '*'
- react-native-reanimated@4.3.2:
- resolution: {integrity: sha512-lDie7N6FQbALmdAFqP1RbM/Rrj6eHLHu+qAPCgVCam5WLSwUwIGGtZZEn2lVftWRWNCx4oemVGlcL7X9nsLHqA==}
+ react-native-reanimated@4.5.3:
+ resolution: {integrity: sha512-+owIckpD4sA13XKHaLrr8V1RP4paqoxKvz/jy2wl/ULjMsfcRlfIJdKJxR1kcQr4McBZ6hAoPo01NyLnmy2ycQ==}
peerDependencies:
react: '*'
- react-native: 0.81 - 0.85
- react-native-worklets: 0.8.3
+ react-native: 0.83 - 0.86
+ react-native-worklets: 0.11.3
- react-native-safe-area-context@5.6.2:
- resolution: {integrity: sha512-4XGqMNj5qjUTYywJqpdWZ9IG8jgkS3h06sfVjfw5yZQZfWnRFXczi0GnYyFyCc2EBps/qFmoCH8fez//WumdVg==}
+ react-native-safe-area-context@5.7.0:
+ resolution: {integrity: sha512-/9/MtQz8ODphjsLdZ+GZAIcC/RtoqW9EeShf7Uvnfgm/pzYrJ75y3PV/J1wuAV1T5Dye5ygq4EAW20RoBq0ABQ==}
peerDependencies:
react: '*'
react-native: '*'
- react-native-screens@4.24.0:
- resolution: {integrity: sha512-SyoiGaDofiyGPFrUkn1oGsAzkRuX1JUvTD9YQQK3G1JGQ5VWkvHgYSsc1K9OrLsDQxN7NmV71O0sHCAh8cBetA==}
+ react-native-screens@4.26.2:
+ resolution: {integrity: sha512-2XnWsZToKj76trGtEZzx5ELD/qOICFEprEeUntImmitQFVUkea27fiWdUSITArI356Y1qynpXZINW+Unbhky/A==}
peerDependencies:
react: '*'
react-native: '*'
- react-native-svg@15.12.1:
- resolution: {integrity: sha512-vCuZJDf8a5aNC2dlMovEv4Z0jjEUET53lm/iILFnFewa15b4atjVxU6Wirm6O9y6dEsdjDZVD7Q3QM4T1wlI8g==}
+ react-native-svg@15.15.4:
+ resolution: {integrity: sha512-boT/vIRgj6zZKBpfTPJJiYWMbZE9duBMOwPK6kCSTgxsS947IFMOq9OgIFkpWZTB7t229H24pDRkh3W9ZK/J1A==}
peerDependencies:
react: '*'
react-native: '*'
@@ -8067,11 +8281,12 @@ packages:
resolution: {integrity: sha512-LSJNeh559qC17fgVPBsWuTSW/OygFp2dwTcf94IQBLYft5FzIQS9pCsuT36OPvyvDOMb6yiGr6TafaJDnz9PPQ==}
engines: {node: '>=18.0.0', npm: '>=9.0.0'}
- react-native-view-shot@4.0.3:
- resolution: {integrity: sha512-USNjYmED7C0me02c1DxKA0074Hw+y/nxo+xJKlffMvfUWWzL5ELh/TJA/pTnVqFurIrzthZDPtDM7aBFJuhrHQ==}
+ react-native-view-shot@5.1.1:
+ resolution: {integrity: sha512-jOTLQrMGNBgv/nRA81VR2x2AdiCGoCjc63c9a5P4A0gStCbh9oDeJ6W+GtRxxQmxXXf6LDSrvG+mmWYulIrOkg==}
+ engines: {node: '>=20.19.4', npm: '>=10'}
peerDependencies:
- react: '*'
- react-native: '*'
+ react: '>=18.0.0'
+ react-native: '>=0.76.0'
react-native-web-webview@1.0.2:
resolution: {integrity: sha512-oNAYNuqUqeqTuAAdIejzDqvUtYA+k5lrvhUYmASdUznZNmyIaoQFA6OKoA4K9F3wdMvark42vUXkUWIp875ewg==}
@@ -8085,28 +8300,31 @@ packages:
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
- react-native-webview@13.15.0:
- resolution: {integrity: sha512-Vzjgy8mmxa/JO6l5KZrsTC7YemSdq+qB01diA0FqjUTaWGAGwuykpJ73MDj3+mzBSlaDxAEugHzTtkUQkQEQeQ==}
+ react-native-webview@13.17.0:
+ resolution: {integrity: sha512-nu0OCC4xa9K5nihup2l2eDlOtQZ4mgMf0LN0EuP0/0JsLtqmMjGihIEO3NZ/rDHZ8uErORYUTp73naVeH0tG1g==}
peerDependencies:
react: '*'
react-native: '*'
- react-native-worklets@0.8.3:
- resolution: {integrity: sha512-oCBJROyLU7yG/1R8s0INMflygTH71bx+5XcYkH0CM938TlhSoVbiunE1WVW5FZa51vwYqfLie/IXMX2s1Kh3eg==}
+ react-native-worklets@0.11.3:
+ resolution: {integrity: sha512-paLRlVFTrrGhkGTi37LHwtaJbrTftA54/zAx1h/ONSBw7XejZn6XUUl1KpM6EOMwsbw7TEGuxJXTAp/wkvuMqQ==}
peerDependencies:
'@babel/core': '*'
'@react-native/metro-config': '*'
react: '*'
- react-native: 0.81 - 0.85
+ react-native: 0.83 - 0.86
- react-native@0.81.5:
- resolution: {integrity: sha512-1w+/oSjEXZjMqsIvmkCRsOc8UBYv163bTWKTI8+1mxztvQPhCRYGTvZ/PL1w16xXHneIj/SLGfxWg2GWN2uexw==}
- engines: {node: '>= 20.19.4'}
+ react-native@0.86.0:
+ resolution: {integrity: sha512-17ALh/dd6AO4pgOVmOO5Axll5PbErEo3XFyLokyzW6usyi+OShIEPwUW26wLPlhVifgSOIfECCH0WN+0IqtJ1w==}
+ engines: {node: ^20.19.4 || ^22.13.0 || ^24.3.0 || >= 25.0.0}
hasBin: true
peerDependencies:
- '@types/react': ^19.1.0
- react: ^19.1.0
+ '@react-native/jest-preset': 0.86.0
+ '@types/react': ^19.1.1
+ react: ^19.2.3
peerDependenciesMeta:
+ '@react-native/jest-preset':
+ optional: true
'@types/react':
optional: true
@@ -8150,10 +8368,10 @@ packages:
'@types/react':
optional: true
- react-test-renderer@19.1.0:
- resolution: {integrity: sha512-jXkSl3CpvPYEF+p/eGDLB4sPoDX8pKkYvRl9+rR8HxLY0X04vW7hCm1/0zHoUSjPZ3bDa+wXWNTDVIw/R8aDVw==}
+ react-test-renderer@19.2.3:
+ resolution: {integrity: sha512-TMR1LnSFiWZMJkCgNf5ATSvAheTT2NvKIwiVwdBPHxjBI7n/JbWd4gaZ16DVd9foAXdvDz+sB5yxZTwMjPRxpw==}
peerDependencies:
- react: ^19.1.0
+ react: ^19.2.3
react-textarea-autosize@8.5.9:
resolution: {integrity: sha512-U1DGlIQN5AwgjTyOEnI1oCcMuEr1pv1qOtklB2l4nyMGbHzWrI0eFsYK0zos2YWqAolJyG0IWJaqWmWj5ETh0A==}
@@ -8161,8 +8379,8 @@ packages:
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- react@19.1.0:
- resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==}
+ react@19.2.3:
+ resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==}
engines: {node: '>=0.10.0'}
readable-stream@2.3.8:
@@ -8180,6 +8398,13 @@ packages:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'}
+ real-require@0.2.0:
+ resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==}
+ engines: {node: '>= 12.13.0'}
+
+ real-require@1.0.0:
+ resolution: {integrity: sha512-P4nbQYQfePJxRSmY+v/KINxVucm4NF3p3s7pJveMTtom52FR4YGltUQLB8idDXwDDWW+eYrWDFbuzUnjoWHF7g==}
+
redent@3.0.0:
resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
engines: {node: '>=8'}
@@ -8238,10 +8463,6 @@ packages:
require-main-filename@2.0.0:
resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
- requireg@0.2.2:
- resolution: {integrity: sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==}
- engines: {node: '>= 4.0.0'}
-
requires-port@1.0.0:
resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
@@ -8272,9 +8493,6 @@ packages:
engines: {node: '>= 0.4'}
hasBin: true
- resolve@1.7.1:
- resolution: {integrity: sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==}
-
restore-cursor@2.0.0:
resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==}
engines: {node: '>=4'}
@@ -8335,9 +8553,18 @@ packages:
resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
engines: {node: '>= 0.4'}
+ safe-stable-stringify@2.5.0:
+ resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==}
+ engines: {node: '>=10'}
+
safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+ sandbox-cli-detector@0.2.0:
+ resolution: {integrity: sha512-4lyHX0ZU0AZKwjgZ1InxZAa3PNpyEb8rOQ+Zss1ReYmhNzW0Q+h1zE5nvniXN0HaAWZaZE1zgVNEirb0R7LmNg==}
+ engines: {node: '>=18.18'}
+ hasBin: true
+
sax@1.6.0:
resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==}
engines: {node: '>=11.0.0'}
@@ -8346,8 +8573,8 @@ packages:
resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
engines: {node: '>=v12.22.7'}
- scheduler@0.26.0:
- resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==}
+ scheduler@0.27.0:
+ resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==}
schema-utils@2.7.1:
resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==}
@@ -8511,17 +8738,20 @@ packages:
sockjs@0.3.24:
resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==}
+ sonic-boom@4.2.1:
+ resolution: {integrity: sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==}
+
sonner-native@0.26.4:
resolution: {integrity: sha512-wBE/pctNfz+ieXjpYX7uu5hH38ws8xRmH0AFmEdEgkOS363k6N8QfFoyjGqDmdUDy15m4AAvOjd2Wz/jATukIA==}
peerDependencies:
react: '*'
react-native: '*'
react-native-gesture-handler: '>=2.28.0'
- react-native-reanimated: 4.3.2
+ react-native-reanimated: 4.5.3
react-native-safe-area-context: ^5.6.0
- react-native-screens: 4.24.0
+ react-native-screens: 4.26.2
react-native-svg: ^15.12.1
- react-native-worklets: 0.8.3
+ react-native-worklets: 0.11.3
sonner@2.0.7:
resolution: {integrity: sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==}
@@ -8575,6 +8805,10 @@ packages:
resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==}
engines: {node: '>=6'}
+ split2@4.2.0:
+ resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
+ engines: {node: '>= 10.x'}
+
sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
@@ -8718,11 +8952,6 @@ packages:
styleq@0.1.3:
resolution: {integrity: sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA==}
- sucrase@3.35.1:
- resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==}
- engines: {node: '>=16 || 14 >=14.17'}
- hasBin: true
-
supports-color@5.5.0:
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
engines: {node: '>=4'}
@@ -8756,6 +8985,10 @@ packages:
symbol-tree@3.2.4:
resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
+ tagged-tag@1.0.0:
+ resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==}
+ engines: {node: '>=20'}
+
tapable@2.3.3:
resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==}
engines: {node: '>=6'}
@@ -8823,12 +9056,12 @@ packages:
text-segmentation@1.0.3:
resolution: {integrity: sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==}
- thenify-all@1.6.0:
- resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
- engines: {node: '>=0.8'}
+ text-table@0.2.0:
+ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
- thenify@3.3.1:
- resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
+ thread-stream@4.2.0:
+ resolution: {integrity: sha512-e2zZ96wSChazBsbENf/Pcm/4swHt2cEKQ92rhUjkL9GCKiTDJIaTBenjE/m9DXi0QBmTMDkFDdOomUy20A1tDQ==}
+ engines: {node: '>=20'}
threads@1.7.0:
resolution: {integrity: sha512-Mx5NBSHX3sQYR6iI9VYbgHKBLisyB+xROCBGjjWm1O9wb9vfLxdaGtmT/KCjUqMsSNW6nERzCW3T6H43LqjDZQ==}
@@ -8875,6 +9108,9 @@ packages:
resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
engines: {node: '>=0.6'}
+ toqr@0.1.1:
+ resolution: {integrity: sha512-FWAPzCIHZHnrE/5/w9MPk0kK25hSQSH2IKhYh9PyjS3SG/+IEMvlwIHbhz+oF7xl54I+ueZlVnMjyzdSwLmAwA==}
+
totalist@3.0.1:
resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
engines: {node: '>=6'}
@@ -8893,8 +9129,8 @@ packages:
resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
engines: {node: '>=12'}
- ts-interface-checker@0.1.13:
- resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
+ ts-morph@27.0.2:
+ resolution: {integrity: sha512-fhUhgeljcrdZ+9DZND1De1029PrE+cMkIP7ooqkLRTrRLTqcki2AstsyJm0vRNbTbVCNJ0idGlbBrfqc7/nA8w==}
ts-plugin-sort-import-suggestions@1.0.4:
resolution: {integrity: sha512-85n5lm2OQQ+b7aRNK9omU1gmjMNXRsgeLwojm5u4OSY5sVBkAHTcgMQPEeHMNlyyfFW0uXnwgqAU0pNfhD96Bw==}
@@ -8902,10 +9138,18 @@ packages:
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+ type-check@0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+
type-detect@4.0.8:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
+ type-fest@0.20.2:
+ resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
+ engines: {node: '>=10'}
+
type-fest@0.21.3:
resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
engines: {node: '>=10'}
@@ -8918,6 +9162,10 @@ packages:
resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
engines: {node: '>=10'}
+ type-fest@5.8.0:
+ resolution: {integrity: sha512-YGYEVz3Fm5iy/AybuA0oyNFq7H4CgQNfRp/qfe8nurE1kuCeNm3/vfm9X4Mtl+qLyaKJUh5xrFZwogr41SMjYA==}
+ engines: {node: '>=20'}
+
type-is@1.6.18:
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
engines: {node: '>= 0.6'}
@@ -8959,6 +9207,9 @@ packages:
uc.micro@2.1.0:
resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
+ uint8arrays@5.1.1:
+ resolution: {integrity: sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==}
+
unbox-primitive@1.1.0:
resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
engines: {node: '>= 0.4'}
@@ -9079,9 +9330,6 @@ packages:
util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
- util@0.12.5:
- resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
-
utila@0.4.0:
resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==}
@@ -9115,6 +9363,9 @@ packages:
resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ varint@6.0.0:
+ resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==}
+
vary@1.1.2:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
@@ -9148,10 +9399,6 @@ packages:
webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
- webidl-conversions@5.0.0:
- resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==}
- engines: {node: '>=8'}
-
webidl-conversions@7.0.0:
resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
engines: {node: '>=12'}
@@ -9227,9 +9474,8 @@ packages:
resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
engines: {node: '>=12'}
- whatwg-url-without-unicode@8.0.0-3:
- resolution: {integrity: sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==}
- engines: {node: '>=10'}
+ whatwg-url-minimum@0.1.2:
+ resolution: {integrity: sha512-XPEm0XFQWNVG292lII1PrRRJl3sItrs7CettZ4ncYxuDVpLyy+NwlGyut2hXI0JswcJUxeCH+CyOJK0ZzAXD6A==}
whatwg-url@11.0.0:
resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
@@ -9262,8 +9508,9 @@ packages:
engines: {node: '>= 8'}
hasBin: true
- wonka@6.3.6:
- resolution: {integrity: sha512-MXH+6mDHAZ2GuMpgKS055FR6v0xVP3XwquxIMYXgiW+FejHQlMGlvVRZT4qMCxR+bEo/FCtIdKxwej9WV3YQag==}
+ word-wrap@1.2.5:
+ resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
+ engines: {node: '>=0.10.0'}
wrap-ansi@10.0.0:
resolution: {integrity: sha512-SGcvg80f0wUy2/fXES19feHMz8E0JoXv2uNgHOu4Dgi2OrCy1lqwFYEJz1BLbDI0exjPMe/ZdzZ/YpGECBG/aQ==}
@@ -9292,17 +9539,6 @@ packages:
resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
- ws@6.2.3:
- resolution: {integrity: sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==}
- peerDependencies:
- bufferutil: ^4.0.1
- utf-8-validate: ^5.0.2
- peerDependenciesMeta:
- bufferutil:
- optional: true
- utf-8-validate:
- optional: true
-
ws@7.5.10:
resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==}
engines: {node: '>=8.3.0'}
@@ -9387,6 +9623,10 @@ packages:
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
engines: {node: '>=12'}
+ yargs-parser@22.0.0:
+ resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==}
+ engines: {node: ^20.19.0 || ^22.12.0 || >=23}
+
yargs@15.4.1:
resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==}
engines: {node: '>=8'}
@@ -9395,6 +9635,10 @@ packages:
resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
engines: {node: '>=12'}
+ yargs@18.1.0:
+ resolution: {integrity: sha512-2rAgRKu54VsHkqI0/tYkmluGXHD4KW7yZoycuqDQ15QOTnc2VVfy0nN/1eMhnQLO00A+dwtK20xuCnc1YGeUyg==}
+ engines: {node: ^20.19.0 || ^22.12.0 || >=23}
+
yauzl@3.3.0:
resolution: {integrity: sha512-PtGEvEP30p7sbIBJKUBjUnqgTVOyMURc4dLo9iNyAJnNIEz9pm88cCXF21w94Kg3k6RXkeZh5DHOGS0qEONvNQ==}
engines: {node: '>=12'}
@@ -9403,37 +9647,45 @@ packages:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
- zod-validation-error@3.5.4:
- resolution: {integrity: sha512-+hEiRIiPobgyuFlEojnqjJnhFvg4r/i3cqgcm67eehZf/WBaK3g6cD02YU9mtdVxZjv8CzCA9n/Rhrs3yAAvAw==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- zod: ^3.24.4
-
zod@3.25.76:
resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
+ zxing-wasm@3.1.3:
+ resolution: {integrity: sha512-3lC9BJk4fR5ZJxcGjb0hVnDFOW7KpLXHIebiBmVd4FDRQZVeObztoTKxRUPxlWwSgxrMRONK0u50hBD1aTYEKg==}
+ peerDependencies:
+ '@types/emscripten': '>=1.39.6'
+
snapshots:
- '@0no-co/graphql.web@1.2.0': {}
-
- '@atproto/api@0.20.39':
+ '@atproto-labs/did-resolver@0.3.7':
dependencies:
- '@atproto/common-web': 0.5.9
- '@atproto/lexicon': 0.7.11
- '@atproto/syntax': 0.7.4
- '@atproto/xrpc': 0.8.10
- await-lock: 3.0.0
- multiformats: 13.4.2
- tlds: 1.261.0
+ '@atproto-labs/fetch': 0.3.5
+ '@atproto-labs/pipe': 0.2.4
+ '@atproto-labs/simple-store': 0.5.1
+ '@atproto-labs/simple-store-memory': 0.2.6
+ '@atproto/did': 0.5.4
zod: 3.25.76
- '@atproto/common-web@0.5.7':
+ '@atproto-labs/fetch@0.3.5':
dependencies:
- '@atproto/lex-data': 0.1.6
- '@atproto/lex-json': 0.1.5
- '@atproto/syntax': 0.7.2
+ '@atproto-labs/pipe': 0.2.4
+
+ '@atproto-labs/handle-resolver@0.4.8':
+ dependencies:
+ '@atproto-labs/simple-store': 0.5.1
+ '@atproto-labs/simple-store-memory': 0.2.6
+ '@atproto/did': 0.5.4
zod: 3.25.76
+ '@atproto-labs/pipe@0.2.4': {}
+
+ '@atproto-labs/simple-store-memory@0.2.6':
+ dependencies:
+ '@atproto-labs/simple-store': 0.5.1
+ lru-cache: 10.4.3
+
+ '@atproto-labs/simple-store@0.5.1': {}
+
'@atproto/common-web@0.5.9':
dependencies:
'@atproto/lex-data': 0.1.7
@@ -9441,11 +9693,44 @@ snapshots:
'@atproto/syntax': 0.7.4
zod: 3.25.76
- '@atproto/lex-data@0.1.6':
+ '@atproto/common@0.8.0':
dependencies:
+ '@atproto/common-web': 0.5.9
+ '@atproto/lex-cbor': 0.1.6
+ '@atproto/lex-data': 0.1.7
multiformats: 13.4.2
+ pino: 10.3.1
+
+ '@atproto/crypto@0.5.4':
+ dependencies:
+ '@noble/curves': 1.9.7
+ '@noble/hashes': 1.8.0
+ uint8arrays: 5.1.1
+
+ '@atproto/did@0.5.4':
+ dependencies:
+ zod: 3.25.76
+
+ '@atproto/lex-builder@0.1.12':
+ dependencies:
+ '@atproto/lex-document': 0.1.9
+ '@atproto/lex-schema': 0.2.5
+ prettier: 3.9.6
+ ts-morph: 27.0.2
+ tslib: 2.8.1
+
+ '@atproto/lex-cbor@0.1.6':
+ dependencies:
+ '@atproto/lex-data': 0.1.7
+ cborg: 4.5.8
+ tslib: 2.8.1
+
+ '@atproto/lex-client@0.3.3':
+ dependencies:
+ '@atproto/lex-data': 0.1.7
+ '@atproto/lex-json': 0.1.6
+ '@atproto/lex-schema': 0.2.5
tslib: 2.8.1
- unicode-segmenter: 0.14.5
'@atproto/lex-data@0.1.7':
dependencies:
@@ -9453,9 +9738,21 @@ snapshots:
tslib: 2.8.1
unicode-segmenter: 0.14.5
- '@atproto/lex-json@0.1.5':
+ '@atproto/lex-document@0.1.9':
dependencies:
- '@atproto/lex-data': 0.1.6
+ '@atproto/lex-schema': 0.2.5
+ core-js: 3.50.0
+ tslib: 2.8.1
+
+ '@atproto/lex-installer@0.1.15':
+ dependencies:
+ '@atproto/lex-builder': 0.1.12
+ '@atproto/lex-cbor': 0.1.6
+ '@atproto/lex-data': 0.1.7
+ '@atproto/lex-document': 0.1.9
+ '@atproto/lex-resolver': 0.2.8
+ '@atproto/lex-schema': 0.2.5
+ '@atproto/syntax': 0.7.4
tslib: 2.8.1
'@atproto/lex-json@0.1.6':
@@ -9463,28 +9760,58 @@ snapshots:
'@atproto/lex-data': 0.1.7
tslib: 2.8.1
- '@atproto/lexicon@0.7.11':
+ '@atproto/lex-password-session@0.2.0':
dependencies:
- '@atproto/common-web': 0.5.9
- '@atproto/syntax': 0.7.4
- multiformats: 13.4.2
- zod: 3.25.76
-
- '@atproto/syntax@0.7.2':
- dependencies:
- iso-datestring-validator: 2.2.2
+ '@atproto/lex-client': 0.3.3
+ '@atproto/lex-schema': 0.2.5
tslib: 2.8.1
+ '@atproto/lex-resolver@0.2.8':
+ dependencies:
+ '@atproto-labs/did-resolver': 0.3.7
+ '@atproto/crypto': 0.5.4
+ '@atproto/lex-client': 0.3.3
+ '@atproto/lex-data': 0.1.7
+ '@atproto/lex-document': 0.1.9
+ '@atproto/lex-schema': 0.2.5
+ '@atproto/repo': 0.10.11
+ '@atproto/syntax': 0.7.4
+ tslib: 2.8.1
+
+ '@atproto/lex-schema@0.2.5':
+ dependencies:
+ '@atproto/lex-data': 0.1.7
+ '@atproto/syntax': 0.7.4
+ '@standard-schema/spec': 1.1.0
+ tslib: 2.8.1
+
+ '@atproto/lex@0.3.6':
+ dependencies:
+ '@atproto/lex-builder': 0.1.12
+ '@atproto/lex-client': 0.3.3
+ '@atproto/lex-data': 0.1.7
+ '@atproto/lex-installer': 0.1.15
+ '@atproto/lex-json': 0.1.6
+ '@atproto/lex-schema': 0.2.5
+ tslib: 2.8.1
+ yargs: 18.1.0
+
+ '@atproto/repo@0.10.11':
+ dependencies:
+ '@atproto/common': 0.8.0
+ '@atproto/common-web': 0.5.9
+ '@atproto/crypto': 0.5.4
+ '@atproto/lex-cbor': 0.1.6
+ '@atproto/lex-data': 0.1.7
+ '@atproto/syntax': 0.7.4
+ varint: 6.0.0
+ zod: 3.25.76
+
'@atproto/syntax@0.7.4':
dependencies:
iso-datestring-validator: 2.2.2
tslib: 2.8.1
- '@atproto/xrpc@0.8.10':
- dependencies:
- '@atproto/lexicon': 0.7.11
- zod: 3.25.76
-
'@babel/code-frame@7.10.4':
dependencies:
'@babel/highlight': 7.25.9
@@ -9497,20 +9824,20 @@ snapshots:
'@babel/compat-data@7.29.3': {}
- '@babel/core@7.29.0':
+ '@babel/core@7.29.0(supports-color@8.1.1)':
dependencies:
'@babel/code-frame': 7.29.0
'@babel/generator': 7.29.1
'@babel/helper-compilation-targets': 7.28.6
- '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0)
+ '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
'@babel/helpers': 7.29.2
'@babel/parser': 7.29.3
'@babel/template': 7.28.6
- '@babel/traverse': 7.29.0
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
'@babel/types': 7.29.0
'@jridgewell/remapping': 2.3.5
convert-source-map: 2.0.0
- debug: 4.4.3
+ debug: 4.4.3(supports-color@8.1.1)
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
@@ -9537,32 +9864,32 @@ snapshots:
lru-cache: 5.1.1
semver: 6.3.1
- '@babel/helper-create-class-features-plugin@7.29.3(@babel/core@7.29.0)':
+ '@babel/helper-create-class-features-plugin@7.29.3(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-annotate-as-pure': 7.27.3
- '@babel/helper-member-expression-to-functions': 7.28.5
+ '@babel/helper-member-expression-to-functions': 7.28.5(supports-color@8.1.1)
'@babel/helper-optimise-call-expression': 7.27.1
- '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0)
- '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
- '@babel/traverse': 7.29.0
+ '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1(supports-color@8.1.1)
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.29.0)':
+ '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-annotate-as-pure': 7.27.3
regexpu-core: 6.4.0
semver: 6.3.1
- '@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.0)':
+ '@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-compilation-targets': 7.28.6
'@babel/helper-plugin-utils': 7.28.6
- debug: 4.4.3
+ debug: 4.4.3(supports-color@8.1.1)
lodash.debounce: 4.0.8
resolve: 1.22.12
transitivePeerDependencies:
@@ -9570,26 +9897,26 @@ snapshots:
'@babel/helper-globals@7.28.0': {}
- '@babel/helper-member-expression-to-functions@7.28.5':
+ '@babel/helper-member-expression-to-functions@7.28.5(supports-color@8.1.1)':
dependencies:
- '@babel/traverse': 7.29.0
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
'@babel/types': 7.29.0
transitivePeerDependencies:
- supports-color
- '@babel/helper-module-imports@7.28.6':
+ '@babel/helper-module-imports@7.28.6(supports-color@8.1.1)':
dependencies:
- '@babel/traverse': 7.29.0
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
'@babel/types': 7.29.0
transitivePeerDependencies:
- supports-color
- '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)':
+ '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-module-imports': 7.28.6
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-module-imports': 7.28.6(supports-color@8.1.1)
'@babel/helper-validator-identifier': 7.28.5
- '@babel/traverse': 7.29.0
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -9599,27 +9926,27 @@ snapshots:
'@babel/helper-plugin-utils@7.28.6': {}
- '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.29.0)':
+ '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-annotate-as-pure': 7.27.3
- '@babel/helper-wrap-function': 7.28.6
- '@babel/traverse': 7.29.0
+ '@babel/helper-wrap-function': 7.28.6(supports-color@8.1.1)
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0)':
+ '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-member-expression-to-functions': 7.28.5
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-member-expression-to-functions': 7.28.5(supports-color@8.1.1)
'@babel/helper-optimise-call-expression': 7.27.1
- '@babel/traverse': 7.29.0
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- '@babel/helper-skip-transparent-expression-wrappers@7.27.1':
+ '@babel/helper-skip-transparent-expression-wrappers@7.27.1(supports-color@8.1.1)':
dependencies:
- '@babel/traverse': 7.29.0
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
'@babel/types': 7.29.0
transitivePeerDependencies:
- supports-color
@@ -9630,10 +9957,10 @@ snapshots:
'@babel/helper-validator-option@7.27.1': {}
- '@babel/helper-wrap-function@7.28.6':
+ '@babel/helper-wrap-function@7.28.6(supports-color@8.1.1)':
dependencies:
'@babel/template': 7.28.6
- '@babel/traverse': 7.29.0
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
'@babel/types': 7.29.0
transitivePeerDependencies:
- supports-color
@@ -9654,696 +9981,676 @@ snapshots:
dependencies:
'@babel/types': 7.29.0
- '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.29.0)':
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/traverse': 7.29.0
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.3(@babel/core@7.29.0)':
+ '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.3(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
- '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1(supports-color@8.1.1)
+ '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/traverse': 7.29.0
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0)':
+ '@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-syntax-decorators': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-syntax-decorators': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
transitivePeerDependencies:
- supports-color
- '@babel/plugin-proposal-export-default-from@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-proposal-export-default-from@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.29.0)':
+ '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+
+ '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-decorators@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-export-default-from@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-flow@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-import-assertions@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-import-attributes@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-transform-async-generator-functions@7.29.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+ '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-module-imports': 7.28.6(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+ '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-transform-block-scoping@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-transform-class-properties@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
transitivePeerDependencies:
- supports-color
- '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0)':
+ '@babel/plugin-transform-class-static-block@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
-
- '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-decorators@7.28.6(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-export-default-from@7.28.6(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-flow@7.28.6(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-import-assertions@7.28.6(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-import-attributes@7.28.6(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0)
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-transform-async-generator-functions@7.29.0(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
- '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0)
- '@babel/traverse': 7.29.0
- transitivePeerDependencies:
- - supports-color
-
- '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-module-imports': 7.28.6
- '@babel/helper-plugin-utils': 7.28.6
- '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0)
- transitivePeerDependencies:
- - supports-color
-
- '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-transform-block-scoping@7.28.6(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
-
- '@babel/plugin-transform-class-properties@7.28.6(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-class-static-block@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-classes@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0)
- '@babel/helper-plugin-utils': 7.28.6
- transitivePeerDependencies:
- - supports-color
-
- '@babel/plugin-transform-classes@7.28.6(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-annotate-as-pure': 7.27.3
'@babel/helper-compilation-targets': 7.28.6
'@babel/helper-globals': 7.28.0
'@babel/helper-plugin-utils': 7.28.6
- '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0)
- '@babel/traverse': 7.29.0
+ '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-computed-properties@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-computed-properties@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
'@babel/template': 7.28.6
- '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.29.0)':
+ '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/traverse': 7.29.0
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-dotall-regex@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-dotall-regex@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0(supports-color@8.1.1))
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)':
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0(supports-color@8.1.1))
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-explicit-resource-management@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-explicit-resource-management@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0)
+ '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-exponentiation-operator@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-exponentiation-operator@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-syntax-flow': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-syntax-flow': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
- '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-compilation-targets': 7.28.6
'@babel/helper-plugin-utils': 7.28.6
- '@babel/traverse': 7.29.0
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-json-strings@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-json-strings@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-logical-assignment-operators@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-logical-assignment-operators@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-systemjs@7.29.4(@babel/core@7.29.0)':
+ '@babel/plugin-transform-modules-systemjs@7.29.4(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
'@babel/helper-validator-identifier': 7.28.5
- '@babel/traverse': 7.29.0
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)':
+ '@babel/plugin-transform-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0(supports-color@8.1.1))
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-nullish-coalescing-operator@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-nullish-coalescing-operator@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-numeric-separator@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-numeric-separator@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-object-rest-spread@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-object-rest-spread@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-compilation-targets': 7.28.6
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0)
- '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0)
- '@babel/traverse': 7.29.0
+ '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0)
+ '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-optional-catch-binding@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-optional-catch-binding@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-optional-chaining@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-optional-chaining@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.0)':
+ '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-private-methods@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-private-methods@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-private-property-in-object@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-private-property-in-object@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-annotate-as-pure': 7.27.3
- '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0)
+ '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.29.0)':
+ '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
- '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-annotate-as-pure': 7.27.3
- '@babel/helper-module-imports': 7.28.6
+ '@babel/helper-module-imports': 7.28.6(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
'@babel/types': 7.29.0
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-annotate-as-pure': 7.27.3
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-regenerator@7.29.0(@babel/core@7.29.0)':
+ '@babel/plugin-transform-regenerator@7.29.0(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-regexp-modifiers@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-regexp-modifiers@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0(supports-color@8.1.1))
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-runtime@7.29.0(@babel/core@7.29.0)':
+ '@babel/plugin-transform-runtime@7.29.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-module-imports': 7.28.6
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-module-imports': 7.28.6(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.0)
- babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.0)
- babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.0)
+ babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-spread@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-spread@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-typescript@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-typescript@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-annotate-as-pure': 7.27.3
- '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0)
+ '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
- '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1(supports-color@8.1.1)
+ '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-unicode-property-regex@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-unicode-property-regex@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0(supports-color@8.1.1))
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.29.0)':
+ '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0(supports-color@8.1.1))
'@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-unicode-sets-regex@7.28.6(@babel/core@7.29.0)':
+ '@babel/plugin-transform-unicode-sets-regex@7.28.6(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0(supports-color@8.1.1))
'@babel/helper-plugin-utils': 7.28.6
- '@babel/preset-env@7.29.5(@babel/core@7.29.0)':
+ '@babel/preset-env@7.29.5(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
'@babel/compat-data': 7.29.3
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-compilation-targets': 7.28.6
'@babel/helper-plugin-utils': 7.28.6
'@babel/helper-validator-option': 7.27.1
- '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.29.0)
- '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array': 7.29.3(@babel/core@7.29.0)
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0)
- '@babel/plugin-syntax-import-assertions': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.0)
- '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0)
- '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0)
- '@babel/plugin-transform-dotall-regex': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0)
- '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-explicit-resource-management': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-exponentiation-operator': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-json-strings': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-modules-systemjs': 7.29.4(@babel/core@7.29.0)
- '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0)
- '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-numeric-separator': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0)
- '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.29.0)
- '@babel/plugin-transform-regexp-modifiers': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-unicode-property-regex': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-unicode-sets-regex': 7.28.6(@babel/core@7.29.0)
- '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.0)
- babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.0)
- babel-plugin-polyfill-corejs3: 0.14.2(@babel/core@7.29.0)
- babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.0)
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array': 7.29.3(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-import-assertions': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-dotall-regex': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-explicit-resource-management': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-exponentiation-operator': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-json-strings': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-modules-systemjs': 7.29.4(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-numeric-separator': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-regexp-modifiers': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-unicode-property-regex': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-unicode-sets-regex': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.0(supports-color@8.1.1))
+ babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ babel-plugin-polyfill-corejs3: 0.14.2(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
core-js-compat: 3.49.0
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.0)':
+ '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
'@babel/types': 7.29.0
esutils: 2.0.3
- '@babel/preset-react@7.28.5(@babel/core@7.29.0)':
+ '@babel/preset-typescript@7.28.5(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/helper-plugin-utils': 7.28.6
'@babel/helper-validator-option': 7.27.1
- '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.29.0)
- '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.29.0)
- transitivePeerDependencies:
- - supports-color
-
- '@babel/preset-typescript@7.28.5(@babel/core@7.29.0)':
- dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-plugin-utils': 7.28.6
- '@babel/helper-validator-option': 7.27.1
- '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -10355,7 +10662,7 @@ snapshots:
'@babel/parser': 7.29.3
'@babel/types': 7.29.0
- '@babel/traverse@7.29.0':
+ '@babel/traverse@7.29.0(supports-color@8.1.1)':
dependencies:
'@babel/code-frame': 7.29.0
'@babel/generator': 7.29.1
@@ -10363,7 +10670,7 @@ snapshots:
'@babel/parser': 7.29.3
'@babel/template': 7.28.6
'@babel/types': 7.29.0
- debug: 4.4.3
+ debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -10374,94 +10681,101 @@ snapshots:
'@bcoe/v8-coverage@0.2.3': {}
- '@bitdrift/react-native@0.6.14(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)':
+ '@bitdrift/react-native@0.6.14(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1)':
dependencies:
- '@expo/config-plugins': 9.1.7
+ '@expo/config-plugins': 9.1.7(supports-color@8.1.1)
fast-json-stringify: 6.4.0
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
'@braintree/sanitize-url@6.0.4': {}
- '@bsky.app/alf@0.1.15(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)':
+ '@bsky.app/alf@0.1.15(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)':
dependencies:
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
- react-responsive: 10.0.1(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+ react-responsive: 10.0.1(react@19.2.3)
- '@bsky.app/expo-dynamic-app-icon@1.8.5(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)':
+ '@bsky.app/expo-dynamic-app-icon@1.8.5(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)':
dependencies:
'@expo/image-utils': 0.8.12
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
xcode: 3.0.1
- '@bsky.app/expo-guess-language@0.2.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)':
+ '@bsky.app/expo-guess-language@0.2.8(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)':
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
lande: 1.0.10
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- '@bsky.app/expo-image-crop-tool@0.5.1(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)':
+ '@bsky.app/expo-image-crop-tool@0.5.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)':
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- '@bsky.app/expo-scroll-edge-effect@0.1.9(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)':
+ '@bsky.app/expo-scroll-edge-effect@0.1.9(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)':
dependencies:
'@types/jest': 30.0.0
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- '@bsky.app/expo-translate-text@0.2.9(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)':
+ '@bsky.app/expo-translate-text@0.2.9(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)':
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- '@bsky.app/peek-menu@0.3.2(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)':
+ '@bsky.app/peek-menu@0.3.2(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)':
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- '@bsky.app/react-native-uitextview@2.7.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)':
+ '@bsky.app/react-native-uitextview@2.7.0(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)':
dependencies:
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- '@bsky.app/sift@0.3.9(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)':
+ '@bsky.app/sift@0.3.9(expo@57.0.8)(react-native-safe-area-context@5.7.0(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)':
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
- react-native-safe-area-context: 5.6.2(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+ react-native-safe-area-context: 5.7.0(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
- '@bsky.app/tapper@0.6.1(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(tlds@1.261.0)':
+ '@bsky.app/tapper@0.6.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(tlds@1.261.0)':
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
tlds: 1.261.0
- '@bsky.app/video-compressor@0.2.0(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)':
+ '@bsky.app/video-compressor@0.2.0(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)':
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
mediabunny: 1.49.0
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- '@bsky.app/video@0.3.6(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)':
+ '@bsky.app/video@0.3.6(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)':
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+
+ '@bsky/sdk@1.0.1(@atproto/lex@0.3.6)':
+ dependencies:
+ '@atproto-labs/handle-resolver': 0.4.8
+ '@atproto/lex': 0.3.6
+ '@atproto/syntax': 0.7.4
+ tlds: 1.261.0
'@crowdin/cli@4.14.2':
dependencies:
@@ -10481,10 +10795,10 @@ snapshots:
'@emoji-mart/data@1.2.1': {}
- '@emoji-mart/react@1.1.1(emoji-mart@5.6.0)(react@19.1.0)':
+ '@emoji-mart/react@1.1.1(emoji-mart@5.6.0)(react@19.2.3)':
dependencies:
emoji-mart: 5.6.0
- react: 19.1.0
+ react: 19.2.3
'@esbuild/aix-ppc64@0.25.12':
optional: true
@@ -10564,111 +10878,141 @@ snapshots:
'@esbuild/win32-x64@0.25.12':
optional: true
- '@expo/cli@54.0.25(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))':
+ '@eslint-community/eslint-utils@4.10.1(eslint@8.57.1(supports-color@8.1.1))':
+ dependencies:
+ eslint: 8.57.1(supports-color@8.1.1)
+ eslint-visitor-keys: 3.4.3
+ optional: true
+
+ '@eslint-community/regexpp@4.12.2':
+ optional: true
+
+ '@eslint/eslintrc@2.1.4(supports-color@8.1.1)':
+ dependencies:
+ ajv: 6.15.0
+ debug: 4.4.3(supports-color@8.1.1)
+ espree: 9.6.1
+ globals: 13.24.0
+ ignore: 5.3.2
+ import-fresh: 3.3.1
+ js-yaml: 4.1.1
+ minimatch: 3.1.5
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ '@eslint/js@8.57.1':
+ optional: true
+
+ '@expo/cli@57.0.16(190a2f1debf63fd2383c9ce3f4eda816)':
dependencies:
- '@0no-co/graphql.web': 1.2.0
'@expo/code-signing-certificates': 0.0.6
- '@expo/config': 12.0.13
- '@expo/config-plugins': 54.0.4
- '@expo/devcert': 1.2.1
- '@expo/env': 2.0.11
+ '@expo/config': 57.0.8(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
+ '@expo/config-plugins': 57.0.8(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
+ '@expo/devcert': 1.2.1(supports-color@8.1.1)
+ '@expo/env': 2.4.2(supports-color@8.1.1)
'@expo/image-utils': 0.8.12
- '@expo/json-file': 10.2.0
- '@expo/metro': 54.2.0
- '@expo/metro-config': 54.0.16(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
- '@expo/osascript': 2.4.3
- '@expo/package-manager': 1.10.5
- '@expo/plist': 0.4.9
- '@expo/prebuild-config': 54.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
- '@expo/schema-utils': 0.1.8
- '@expo/spawn-async': 1.7.2
- '@expo/ws-tunnel': 1.0.6
+ '@expo/inline-modules': 0.1.6(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
+ '@expo/json-file': 11.0.1
+ '@expo/log-box': 57.0.3(@expo/dom-webview@57.0.1)(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ '@expo/metro': 56.0.0(supports-color@8.1.1)
+ '@expo/metro-config': 57.0.8(@typescript/typescript6@6.0.2)(expo@57.0.8)(supports-color@8.1.1)
+ '@expo/metro-file-map': 57.0.1(supports-color@8.1.1)
+ '@expo/osascript': 2.7.1
+ '@expo/package-manager': 1.13.1
+ '@expo/plist': 0.8.1
+ '@expo/prebuild-config': 57.0.12(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
+ '@expo/require-utils': 57.0.4(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
+ '@expo/router-server': 57.0.6(cb97be171d73e541f78f885e29e29406)
+ '@expo/schema-utils': 57.0.2
+ '@expo/spawn-async': 1.8.0
+ '@expo/ws-tunnel': 2.0.0(ws@8.20.1)
'@expo/xcpretty': 4.4.4
- '@react-native/dev-middleware': 0.81.5
- '@urql/core': 5.2.0
- '@urql/exchange-retry': 1.3.2(@urql/core@5.2.0)
+ '@react-native/dev-middleware': 0.86.2(supports-color@8.1.1)
accepts: 1.3.8
+ agent-cli-detector: 0.1.5
arg: 5.0.2
- better-opn: 3.0.2
bplist-creator: 0.1.0
bplist-parser: 0.3.2
chalk: 4.1.2
ci-info: 3.9.0
- compression: 1.8.1
- connect: 3.7.0
- debug: 4.4.3
- env-editor: 0.4.2
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- expo-server: 1.0.7
- freeport-async: 2.0.0
+ compression: 1.8.1(supports-color@8.1.1)
+ connect: 3.7.0(supports-color@8.1.1)
+ debug: 4.4.3(supports-color@8.1.1)
+ dnssd-advertise: 1.1.6
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ expo-server: 57.0.3
+ fetch-nodeshim: 0.4.10
getenv: 2.0.0
glob: 13.0.6
lan-network: 0.2.1
- minimatch: 9.0.9
+ multitars: 1.0.2
node-forge: 1.4.0
npm-package-arg: 11.0.3
ora: 3.4.0
picomatch: 4.0.4
- pretty-bytes: 5.6.0
pretty-format: 29.7.0
progress: 2.0.3
prompts: 2.4.2
- qrcode-terminal: 0.11.0
- require-from-string: 2.0.2
- requireg: 0.2.2
- resolve: 1.22.12
resolve-from: 5.0.0
- resolve.exports: 2.0.3
+ sandbox-cli-detector: 0.2.0
semver: 7.8.0
- send: 0.19.2
+ send: 0.19.2(supports-color@8.1.1)
slugify: 1.6.9
- source-map-support: 0.5.21
stacktrace-parser: 0.1.11
structured-headers: 0.4.1
- tar: 7.5.15
terminal-link: 2.1.1
- undici: 6.25.0
+ toqr: 0.1.1
wrap-ansi: 7.0.0
ws: 8.20.1
+ zod: 3.25.76
optionalDependencies:
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
transitivePeerDependencies:
+ - '@expo/dom-webview'
+ - '@expo/metro-runtime'
- bufferutil
- - graphql
+ - expo-constants
+ - expo-font
+ - react
+ - react-dom
+ - react-server-dom-webpack
- supports-color
+ - typescript
- utf-8-validate
'@expo/code-signing-certificates@0.0.6':
dependencies:
node-forge: 1.4.0
- '@expo/config-plugins@54.0.4':
+ '@expo/config-plugins@57.0.8(@typescript/typescript6@6.0.2)(supports-color@8.1.1)':
dependencies:
- '@expo/config-types': 54.0.10
- '@expo/json-file': 10.0.14
- '@expo/plist': 0.4.8
+ '@expo/config-types': 57.0.2
+ '@expo/json-file': 11.0.1
+ '@expo/plist': 0.8.1
+ '@expo/require-utils': 57.0.4(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
'@expo/sdk-runtime-versions': 1.0.0
chalk: 4.1.2
- debug: 4.4.3
+ debug: 4.4.3(supports-color@8.1.1)
getenv: 2.0.0
glob: 13.0.6
- resolve-from: 5.0.0
semver: 7.8.0
- slash: 3.0.0
slugify: 1.6.9
xcode: 3.0.1
xml2js: 0.6.0
transitivePeerDependencies:
- supports-color
+ - typescript
- '@expo/config-plugins@9.1.7':
+ '@expo/config-plugins@9.1.7(supports-color@8.1.1)':
dependencies:
'@expo/config-types': 53.0.5
'@expo/json-file': 9.1.5
'@expo/plist': 0.3.5
'@expo/sdk-runtime-versions': 1.0.0
chalk: 4.1.2
- debug: 4.4.3
+ debug: 4.4.3(supports-color@8.1.1)
getenv: 1.0.0
glob: 10.5.0
resolve-from: 5.0.0
@@ -10682,61 +11026,65 @@ snapshots:
'@expo/config-types@53.0.5': {}
- '@expo/config-types@54.0.10': {}
+ '@expo/config-types@57.0.2': {}
- '@expo/config@12.0.13':
+ '@expo/config@57.0.8(@typescript/typescript6@6.0.2)(supports-color@8.1.1)':
dependencies:
- '@babel/code-frame': 7.10.4
- '@expo/config-plugins': 54.0.4
- '@expo/config-types': 54.0.10
- '@expo/json-file': 10.0.14
+ '@expo/config-plugins': 57.0.8(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
+ '@expo/config-types': 57.0.2
+ '@expo/json-file': 11.0.1
+ '@expo/require-utils': 57.0.4(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
deepmerge: 4.3.1
getenv: 2.0.0
glob: 13.0.6
- require-from-string: 2.0.2
- resolve-from: 5.0.0
resolve-workspace-root: 2.0.1
semver: 7.8.0
slugify: 1.6.9
- sucrase: 3.35.1
transitivePeerDependencies:
- supports-color
+ - typescript
- '@expo/devcert@1.2.1':
+ '@expo/devcert@1.2.1(supports-color@8.1.1)':
dependencies:
'@expo/sudo-prompt': 9.3.2
- debug: 3.2.7
+ debug: 3.2.7(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- '@expo/devtools@0.1.8(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)':
+ '@expo/devtools@57.0.1(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)':
dependencies:
chalk: 4.1.2
optionalDependencies:
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- '@expo/env@2.0.11':
+ '@expo/dom-webview@57.0.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)':
+ dependencies:
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+
+ '@expo/env@2.4.2(supports-color@8.1.1)':
dependencies:
chalk: 4.1.2
- debug: 4.4.3
- dotenv: 16.4.7
- dotenv-expand: 11.0.7
+ debug: 4.4.3(supports-color@8.1.1)
getenv: 2.0.0
transitivePeerDependencies:
- supports-color
- '@expo/fingerprint@0.15.5':
+ '@expo/expo-modules-macros-plugin@0.6.1': {}
+
+ '@expo/fingerprint@0.20.8(supports-color@8.1.1)':
dependencies:
- '@expo/spawn-async': 1.7.2
+ '@expo/env': 2.4.2(supports-color@8.1.1)
+ '@expo/spawn-async': 1.8.0
arg: 5.0.2
chalk: 4.1.2
- debug: 4.4.3
+ debug: 4.4.3(supports-color@8.1.1)
getenv: 2.0.0
glob: 13.0.6
ignore: 5.3.2
minimatch: 10.2.5
- p-limit: 3.1.0
resolve-from: 5.0.0
semver: 7.8.0
transitivePeerDependencies:
@@ -10754,17 +11102,14 @@ snapshots:
resolve-from: 5.0.0
semver: 7.8.0
- '@expo/json-file@10.0.14':
+ '@expo/inline-modules@0.1.6(@typescript/typescript6@6.0.2)(supports-color@8.1.1)':
dependencies:
- '@babel/code-frame': 7.29.0
- json5: 2.2.3
+ '@expo/config-plugins': 57.0.8(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
- '@expo/json-file@10.0.16':
- dependencies:
- '@babel/code-frame': 7.10.4
- json5: 2.2.3
-
- '@expo/json-file@10.2.0':
+ '@expo/json-file@11.0.1':
dependencies:
'@babel/code-frame': 7.29.0
json5: 2.2.3
@@ -10774,65 +11119,96 @@ snapshots:
'@babel/code-frame': 7.10.4
json5: 2.2.3
- '@expo/metro-config@54.0.16(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))':
+ '@expo/local-build-cache-provider@57.0.6(@typescript/typescript6@6.0.2)(supports-color@8.1.1)':
+ dependencies:
+ '@expo/config': 57.0.8(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
+ chalk: 4.1.2
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ '@expo/log-box@57.0.3(@expo/dom-webview@57.0.1)(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)':
+ dependencies:
+ '@expo/dom-webview': 57.0.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ anser: 1.4.10
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+ stacktrace-parser: 0.1.11
+
+ '@expo/metro-config@57.0.8(@typescript/typescript6@6.0.2)(expo@57.0.8)(supports-color@8.1.1)':
dependencies:
'@babel/code-frame': 7.29.0
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/generator': 7.29.1
- '@expo/config': 12.0.13
- '@expo/env': 2.0.11
- '@expo/json-file': 10.0.16
- '@expo/metro': 54.2.0
- '@expo/spawn-async': 1.7.2
+ '@expo/config': 57.0.8(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
+ '@expo/env': 2.4.2(supports-color@8.1.1)
+ '@expo/json-file': 11.0.1
+ '@expo/metro': 56.0.0(supports-color@8.1.1)
+ '@expo/require-utils': 57.0.4(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
+ '@expo/spawn-async': 1.8.0
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/remapping': 2.3.5
+ '@jridgewell/sourcemap-codec': 1.5.5
browserslist: 4.28.2
chalk: 4.1.2
- debug: 4.4.3
- dotenv: 16.4.7
- dotenv-expand: 11.0.7
+ debug: 4.4.3(supports-color@8.1.1)
getenv: 2.0.0
glob: 13.0.6
- hermes-parser: 0.29.1
+ hermes-parser: 0.36.0
jsc-safe-url: 0.2.4
lightningcss: 1.32.0
picomatch: 4.0.4
- postcss: 8.4.49
+ postcss: 8.5.14
resolve-from: 5.0.0
optionalDependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - typescript
+ - utf-8-validate
+
+ '@expo/metro-file-map@57.0.1(supports-color@8.1.1)':
+ dependencies:
+ debug: 4.4.3(supports-color@8.1.1)
+ fb-watchman: 2.0.2
+ invariant: 2.2.4
+ jest-worker: 29.7.0
+ micromatch: 4.0.8
+ walker: 1.0.8
+ transitivePeerDependencies:
+ - supports-color
+
+ '@expo/metro@56.0.0(supports-color@8.1.1)':
+ dependencies:
+ metro: 0.84.4(supports-color@8.1.1)
+ metro-babel-transformer: 0.84.4(supports-color@8.1.1)
+ metro-cache: 0.84.4(supports-color@8.1.1)
+ metro-cache-key: 0.84.4
+ metro-config: 0.84.4(supports-color@8.1.1)
+ metro-core: 0.84.4
+ metro-file-map: 0.84.4(supports-color@8.1.1)
+ metro-minify-terser: 0.84.4
+ metro-resolver: 0.84.4
+ metro-runtime: 0.84.4
+ metro-source-map: 0.84.4(supports-color@8.1.1)
+ metro-symbolicate: 0.84.4(supports-color@8.1.1)
+ metro-transform-plugins: 0.84.4(supports-color@8.1.1)
+ metro-transform-worker: 0.84.4(supports-color@8.1.1)
transitivePeerDependencies:
- bufferutil
- supports-color
- utf-8-validate
- '@expo/metro@54.2.0':
+ '@expo/osascript@2.7.1':
dependencies:
- metro: 0.83.3
- metro-babel-transformer: 0.83.3
- metro-cache: 0.83.3
- metro-cache-key: 0.83.3
- metro-config: 0.83.3
- metro-core: 0.83.3
- metro-file-map: 0.83.3
- metro-minify-terser: 0.83.3
- metro-resolver: 0.83.3
- metro-runtime: 0.83.3
- metro-source-map: 0.83.3
- metro-symbolicate: 0.83.3
- metro-transform-plugins: 0.83.3
- metro-transform-worker: 0.83.3
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
+ '@expo/spawn-async': 1.8.0
- '@expo/osascript@2.4.3':
+ '@expo/package-manager@1.13.1':
dependencies:
- '@expo/spawn-async': 1.7.2
-
- '@expo/package-manager@1.10.5':
- dependencies:
- '@expo/json-file': 10.0.14
- '@expo/spawn-async': 1.7.2
+ '@expo/json-file': 11.0.1
+ '@expo/spawn-async': 1.8.0
chalk: 4.1.2
npm-package-arg: 11.0.3
ora: 3.4.0
@@ -10844,35 +11220,52 @@ snapshots:
base64-js: 1.5.1
xmlbuilder: 15.1.1
- '@expo/plist@0.4.8':
+ '@expo/plist@0.8.1':
dependencies:
'@xmldom/xmldom': 0.8.13
base64-js: 1.5.1
xmlbuilder: 15.1.1
- '@expo/plist@0.4.9':
+ '@expo/prebuild-config@57.0.12(@typescript/typescript6@6.0.2)(supports-color@8.1.1)':
dependencies:
- '@xmldom/xmldom': 0.8.13
- base64-js: 1.5.1
- xmlbuilder: 15.1.1
-
- '@expo/prebuild-config@54.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))':
- dependencies:
- '@expo/config': 12.0.13
- '@expo/config-plugins': 54.0.4
- '@expo/config-types': 54.0.10
+ '@expo/config': 57.0.8(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
+ '@expo/config-plugins': 57.0.8(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
+ '@expo/config-types': 57.0.2
'@expo/image-utils': 0.8.12
- '@expo/json-file': 10.0.14
- '@react-native/normalize-colors': 0.81.5
- debug: 4.4.3
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ '@expo/json-file': 11.0.1
+ '@react-native/normalize-colors': 0.86.0
+ debug: 4.4.3(supports-color@8.1.1)
+ expo-modules-autolinking: 57.0.10(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
resolve-from: 5.0.0
semver: 7.8.0
- xml2js: 0.6.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ '@expo/require-utils@57.0.4(@typescript/typescript6@6.0.2)(supports-color@8.1.1)':
+ dependencies:
+ '@babel/code-frame': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ optionalDependencies:
+ typescript: '@typescript/typescript6@6.0.2'
transitivePeerDependencies:
- supports-color
- '@expo/schema-utils@0.1.8': {}
+ '@expo/router-server@57.0.6(cb97be171d73e541f78f885e29e29406)':
+ dependencies:
+ debug: 4.4.3(supports-color@8.1.1)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ expo-constants: 57.0.12(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(supports-color@8.1.1)
+ expo-font: 57.0.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ expo-server: 57.0.3
+ react: 19.2.3
+ optionalDependencies:
+ react-dom: 19.2.3(react@19.2.3)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@expo/schema-utils@57.0.2': {}
'@expo/sdk-runtime-versions@1.0.0': {}
@@ -10880,40 +11273,38 @@ snapshots:
dependencies:
cross-spawn: 7.0.6
+ '@expo/spawn-async@1.8.0':
+ dependencies:
+ cross-spawn: 7.0.6
+
'@expo/sudo-prompt@9.3.2': {}
- '@expo/vector-icons@15.1.1(expo-font@14.0.12(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)':
+ '@expo/webpack-config@19.0.1(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(debug@4.4.3(supports-color@8.1.1))(esbuild@0.25.12)(expo@57.0.8)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)(supports-color@8.1.1)':
dependencies:
- expo-font: 14.0.12(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
-
- '@expo/webpack-config@19.0.1(clean-css@5.3.3)(csso@5.0.5)(esbuild@0.25.12)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(html-minifier-terser@6.1.0)(postcss@8.5.14)':
- dependencies:
- '@babel/core': 7.29.0
- babel-loader: 8.4.1(@babel/core@7.29.0)(webpack@5.106.2(postcss@8.5.14))
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ babel-loader: 8.4.1(@babel/core@7.29.0(supports-color@8.1.1))(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))
chalk: 4.1.2
- clean-webpack-plugin: 4.0.0(webpack@5.106.2(postcss@8.5.14))
- copy-webpack-plugin: 10.2.4(webpack@5.106.2(postcss@8.5.14))
- css-loader: 6.11.0(webpack@5.106.2(postcss@8.5.14))
- css-minimizer-webpack-plugin: 3.4.1(clean-css@5.3.3)(csso@5.0.5)(esbuild@0.25.12)(webpack@5.106.2(postcss@8.5.14))
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- expo-pwa: 0.0.127(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
+ clean-webpack-plugin: 4.0.0(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))
+ copy-webpack-plugin: 10.2.4(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))
+ css-loader: 6.11.0(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))
+ css-minimizer-webpack-plugin: 3.4.1(clean-css@5.3.3)(csso@5.0.5)(esbuild@0.25.12)(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ expo-pwa: 0.0.127(expo@57.0.8)
find-up: 5.0.0
find-yarn-workspace-root: 2.0.0
fs-extra: 11.3.5
getenv: 1.0.0
- html-webpack-plugin: 5.6.7(webpack@5.106.2(postcss@8.5.14))
+ html-webpack-plugin: 5.6.7(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))
is-wsl: 2.2.0
- mini-css-extract-plugin: 2.10.2(webpack@5.106.2(postcss@8.5.14))
+ mini-css-extract-plugin: 2.10.2(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))
node-html-parser: 5.4.2
semver: 7.5.4
- source-map-loader: 3.0.2(webpack@5.106.2(postcss@8.5.14))
- style-loader: 3.3.4(webpack@5.106.2(postcss@8.5.14))
- terser-webpack-plugin: 5.6.0(clean-css@5.3.3)(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(postcss@8.5.14)(webpack@5.106.2(postcss@8.5.14))
- webpack: 5.106.2(postcss@8.5.14)
- webpack-dev-server: 4.15.2(webpack@5.106.2(postcss@8.5.14))
- webpack-manifest-plugin: 4.1.1(webpack@5.106.2(postcss@8.5.14))
+ source-map-loader: 3.0.2(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))
+ style-loader: 3.3.4(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))
+ terser-webpack-plugin: 5.6.0(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))
+ webpack: 5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)
+ webpack-dev-server: 4.15.2(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))
+ webpack-manifest-plugin: 4.1.1(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))
transitivePeerDependencies:
- '@minify-html/node'
- '@parcel/css'
@@ -10935,7 +11326,9 @@ snapshots:
- utf-8-validate
- webpack-cli
- '@expo/ws-tunnel@1.0.6': {}
+ '@expo/ws-tunnel@2.0.0(ws@8.20.1)':
+ dependencies:
+ ws: 8.20.1
'@expo/xcpretty@4.4.4':
dependencies:
@@ -10956,11 +11349,11 @@ snapshots:
'@floating-ui/core': 1.7.5
'@floating-ui/utils': 0.2.11
- '@floating-ui/react-dom@2.1.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@floating-ui/react-dom@2.1.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@floating-ui/dom': 1.7.6
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
'@floating-ui/utils@0.2.11': {}
@@ -10997,16 +11390,29 @@ snapshots:
dependencies:
'@formatjs/fast-memoize': 3.1.5
- '@growthbook/growthbook-react@1.6.5(react@19.1.0)':
+ '@growthbook/growthbook-react@1.6.5(react@19.2.3)':
dependencies:
'@growthbook/growthbook': 1.6.5
- react: 19.1.0
+ react: 19.2.3
'@growthbook/growthbook@1.6.5':
dependencies:
dom-mutator: 0.6.0
- '@ide/backoff@1.0.0': {}
+ '@humanwhocodes/config-array@0.13.0(supports-color@8.1.1)':
+ dependencies:
+ '@humanwhocodes/object-schema': 2.0.3
+ debug: 4.4.3(supports-color@8.1.1)
+ minimatch: 3.1.5
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ '@humanwhocodes/module-importer@1.0.1':
+ optional: true
+
+ '@humanwhocodes/object-schema@2.0.3':
+ optional: true
'@ipld/dag-cbor@9.2.7':
dependencies:
@@ -11049,12 +11455,12 @@ snapshots:
jest-util: 29.7.0
slash: 3.0.0
- '@jest/core@29.7.0':
+ '@jest/core@29.7.0(supports-color@8.1.1)':
dependencies:
'@jest/console': 29.7.0
- '@jest/reporters': 29.7.0
+ '@jest/reporters': 29.7.0(supports-color@8.1.1)
'@jest/test-result': 29.7.0
- '@jest/transform': 29.7.0
+ '@jest/transform': 29.7.0(supports-color@8.1.1)
'@jest/types': 29.6.3
'@types/node': 24.12.4
ansi-escapes: 4.3.2
@@ -11063,15 +11469,15 @@ snapshots:
exit: 0.1.2
graceful-fs: 4.2.11
jest-changed-files: 29.7.0
- jest-config: 29.7.0(@types/node@24.12.4)
+ jest-config: 29.7.0(@types/node@24.12.4)(supports-color@8.1.1)
jest-haste-map: 29.7.0
jest-message-util: 29.7.0
jest-regex-util: 29.6.3
jest-resolve: 29.7.0
- jest-resolve-dependencies: 29.7.0
- jest-runner: 29.7.0
- jest-runtime: 29.7.0
- jest-snapshot: 29.7.0
+ jest-resolve-dependencies: 29.7.0(supports-color@8.1.1)
+ jest-runner: 29.7.0(supports-color@8.1.1)
+ jest-runtime: 29.7.0(supports-color@8.1.1)
+ jest-snapshot: 29.7.0(supports-color@8.1.1)
jest-util: 29.7.0
jest-validate: 29.7.0
jest-watcher: 29.7.0
@@ -11105,10 +11511,10 @@ snapshots:
dependencies:
'@jest/get-type': 30.1.0
- '@jest/expect@29.7.0':
+ '@jest/expect@29.7.0(supports-color@8.1.1)':
dependencies:
expect: 29.7.0
- jest-snapshot: 29.7.0
+ jest-snapshot: 29.7.0(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -11123,10 +11529,10 @@ snapshots:
'@jest/get-type@30.1.0': {}
- '@jest/globals@29.7.0':
+ '@jest/globals@29.7.0(supports-color@8.1.1)':
dependencies:
'@jest/environment': 29.7.0
- '@jest/expect': 29.7.0
+ '@jest/expect': 29.7.0(supports-color@8.1.1)
'@jest/types': 29.6.3
jest-mock: 29.7.0
transitivePeerDependencies:
@@ -11137,12 +11543,12 @@ snapshots:
'@types/node': 24.12.4
jest-regex-util: 30.4.0
- '@jest/reporters@29.7.0':
+ '@jest/reporters@29.7.0(supports-color@8.1.1)':
dependencies:
'@bcoe/v8-coverage': 0.2.3
'@jest/console': 29.7.0
'@jest/test-result': 29.7.0
- '@jest/transform': 29.7.0
+ '@jest/transform': 29.7.0(supports-color@8.1.1)
'@jest/types': 29.6.3
'@jridgewell/trace-mapping': 0.3.31
'@types/node': 24.12.4
@@ -11152,9 +11558,9 @@ snapshots:
glob: 7.2.3
graceful-fs: 4.2.11
istanbul-lib-coverage: 3.2.2
- istanbul-lib-instrument: 6.0.3
+ istanbul-lib-instrument: 6.0.3(supports-color@8.1.1)
istanbul-lib-report: 3.0.1
- istanbul-lib-source-maps: 4.0.1
+ istanbul-lib-source-maps: 4.0.1(supports-color@8.1.1)
istanbul-reports: 3.2.0
jest-message-util: 29.7.0
jest-util: 29.7.0
@@ -11194,12 +11600,12 @@ snapshots:
jest-haste-map: 29.7.0
slash: 3.0.0
- '@jest/transform@29.7.0':
+ '@jest/transform@29.7.0(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@jest/types': 29.6.3
'@jridgewell/trace-mapping': 0.3.31
- babel-plugin-istanbul: 6.1.1
+ babel-plugin-istanbul: 6.1.1(supports-color@8.1.1)
chalk: 4.1.2
convert-source-map: 2.0.0
fast-json-stable-stringify: 2.1.0
@@ -11261,29 +11667,29 @@ snapshots:
'@lingui/babel-plugin-extract-messages@5.9.5': {}
- '@lingui/babel-plugin-lingui-macro@5.9.5(@typescript/typescript6@6.0.2)':
+ '@lingui/babel-plugin-lingui-macro@5.9.5(@typescript/typescript6@6.0.2)(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/runtime': 7.29.2
'@babel/types': 7.29.0
'@lingui/conf': 5.9.5(@typescript/typescript6@6.0.2)
- '@lingui/core': 5.9.5(@lingui/babel-plugin-lingui-macro@5.9.5(@typescript/typescript6@6.0.2))
+ '@lingui/core': 5.9.5(@lingui/babel-plugin-lingui-macro@5.9.5(@typescript/typescript6@6.0.2)(supports-color@8.1.1))
'@lingui/message-utils': 5.9.5
transitivePeerDependencies:
- supports-color
- typescript
- '@lingui/cli@5.9.5(@typescript/typescript6@6.0.2)':
+ '@lingui/cli@5.9.5(@typescript/typescript6@6.0.2)(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/generator': 7.29.1
'@babel/parser': 7.29.3
'@babel/runtime': 7.29.2
'@babel/types': 7.29.0
'@lingui/babel-plugin-extract-messages': 5.9.5
- '@lingui/babel-plugin-lingui-macro': 5.9.5(@typescript/typescript6@6.0.2)
+ '@lingui/babel-plugin-lingui-macro': 5.9.5(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
'@lingui/conf': 5.9.5(@typescript/typescript6@6.0.2)
- '@lingui/core': 5.9.5(@lingui/babel-plugin-lingui-macro@5.9.5(@typescript/typescript6@6.0.2))
+ '@lingui/core': 5.9.5(@lingui/babel-plugin-lingui-macro@5.9.5(@typescript/typescript6@6.0.2)(supports-color@8.1.1))
'@lingui/format-po': 5.9.5(@typescript/typescript6@6.0.2)
'@lingui/message-utils': 5.9.5
chokidar: 3.5.1
@@ -11301,7 +11707,7 @@ snapshots:
pofile: 1.1.4
pseudolocale: 2.2.0
source-map: 0.7.6
- threads: 1.7.0
+ threads: 1.7.0(supports-color@8.1.1)
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
@@ -11317,12 +11723,12 @@ snapshots:
transitivePeerDependencies:
- typescript
- '@lingui/core@5.9.5(@lingui/babel-plugin-lingui-macro@5.9.5(@typescript/typescript6@6.0.2))':
+ '@lingui/core@5.9.5(@lingui/babel-plugin-lingui-macro@5.9.5(@typescript/typescript6@6.0.2)(supports-color@8.1.1))':
dependencies:
'@babel/runtime': 7.29.2
'@lingui/message-utils': 5.9.5
optionalDependencies:
- '@lingui/babel-plugin-lingui-macro': 5.9.5(@typescript/typescript6@6.0.2)
+ '@lingui/babel-plugin-lingui-macro': 5.9.5(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
'@lingui/format-po@5.9.5(@typescript/typescript6@6.0.2)':
dependencies:
@@ -11338,18 +11744,24 @@ snapshots:
'@messageformat/parser': 5.1.1
js-sha256: 0.10.1
- '@lingui/react@5.9.5(@lingui/babel-plugin-lingui-macro@5.9.5(@typescript/typescript6@6.0.2))(react@19.1.0)':
+ '@lingui/react@5.9.5(@lingui/babel-plugin-lingui-macro@5.9.5(@typescript/typescript6@6.0.2)(supports-color@8.1.1))(react@19.2.3)':
dependencies:
'@babel/runtime': 7.29.2
- '@lingui/core': 5.9.5(@lingui/babel-plugin-lingui-macro@5.9.5(@typescript/typescript6@6.0.2))
- react: 19.1.0
+ '@lingui/core': 5.9.5(@lingui/babel-plugin-lingui-macro@5.9.5(@typescript/typescript6@6.0.2)(supports-color@8.1.1))
+ react: 19.2.3
optionalDependencies:
- '@lingui/babel-plugin-lingui-macro': 5.9.5(@typescript/typescript6@6.0.2)
+ '@lingui/babel-plugin-lingui-macro': 5.9.5(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
'@messageformat/parser@5.1.1':
dependencies:
moo: 0.5.3
+ '@noble/curves@1.9.7':
+ dependencies:
+ '@noble/hashes': 1.8.0
+
+ '@noble/hashes@1.8.0': {}
+
'@nodelib/fs.scandir@2.1.5':
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -11437,10 +11849,12 @@ snapshots:
'@oxlint/binding-win32-x64-msvc@1.73.0':
optional: true
+ '@pinojs/redact@0.4.0': {}
+
'@pkgjs/parseargs@0.11.0':
optional: true
- '@pmmmwh/react-refresh-webpack-plugin@0.5.17(react-refresh@0.14.2)(type-fest@1.4.0)(webpack-dev-server@4.15.2(webpack@5.106.2(postcss@8.5.14)))(webpack@5.106.2(postcss@8.5.14))':
+ '@pmmmwh/react-refresh-webpack-plugin@0.5.17(react-refresh@0.14.2)(type-fest@1.4.0)(webpack-dev-server@4.15.2(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))':
dependencies:
ansi-html: 0.0.9
core-js-pure: 3.49.0
@@ -11450,10 +11864,10 @@ snapshots:
react-refresh: 0.14.2
schema-utils: 4.3.3
source-map: 0.7.6
- webpack: 5.106.2(postcss@8.5.14)
+ webpack: 5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)
optionalDependencies:
type-fest: 1.4.0
- webpack-dev-server: 4.15.2(webpack@5.106.2(postcss@8.5.14))
+ webpack-dev-server: 4.15.2(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))
'@polka/url@1.0.0-next.29': {}
@@ -11463,880 +11877,934 @@ snapshots:
'@radix-ui/primitive@1.1.3': {}
- '@radix-ui/react-accessible-icon@1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-accessible-icon@1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
- '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-aspect-ratio@1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-aspect-ratio@1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-avatar@1.1.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-avatar@1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.17)(react@19.1.0)':
+ '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.18)(react@19.2.3)':
dependencies:
- react: 19.1.0
+ react: 19.2.3
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- '@radix-ui/react-context-menu@2.2.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-context-menu@2.2.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-context@1.1.2(@types/react@19.1.17)(react@19.1.0)':
+ '@radix-ui/react-context@1.1.2(@types/react@19.2.18)(react@19.2.3)':
dependencies:
- react: 19.1.0
+ react: 19.2.3
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
aria-hidden: 1.2.6
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
- react-remove-scroll: 2.7.2(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
+ react-remove-scroll: 2.7.2(@types/react@19.2.18)(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-direction@1.1.1(@types/react@19.1.17)(react@19.1.0)':
+ '@radix-ui/react-direction@1.1.1(@types/react@19.2.18)(react@19.2.3)':
dependencies:
- react: 19.1.0
+ react: 19.2.3
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-focus-guards@1.1.3(@types/react@19.1.17)(react@19.1.0)':
+ '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.18)(react@19.2.3)':
dependencies:
- react: 19.1.0
+ react: 19.2.3
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-form@0.1.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-form@0.1.8(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-label': 2.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-label': 2.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-hover-card@1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-hover-card@1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-id@1.1.1(@types/react@19.1.17)(react@19.1.0)':
+ '@radix-ui/react-id@1.1.1(@types/react@19.2.18)(react@19.2.3)':
dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- '@radix-ui/react-label@2.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-label@2.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-menu@2.1.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-menu@2.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0)
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.2.3)
aria-hidden: 1.2.6
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
- react-remove-scroll: 2.7.2(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
+ react-remove-scroll: 2.7.2(@types/react@19.2.18)(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-menubar@1.1.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-menubar@1.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-one-time-password-field@0.1.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-one-time-password-field@0.1.8(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/number': 1.1.1
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-password-toggle-field@0.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-password-toggle-field@0.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-popover@1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
aria-hidden: 1.2.6
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
- react-remove-scroll: 2.7.2(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
+ react-remove-scroll: 2.7.2(@types/react@19.2.18)(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-popper@1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
- '@floating-ui/react-dom': 2.1.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.17)(react@19.1.0)
+ '@floating-ui/react-dom': 2.1.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.18)(react@19.2.3)
'@radix-ui/rect': 1.1.1
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-presence@1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
- '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-progress@1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-progress@1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/number': 1.1.1
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-select@2.2.6(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/number': 1.1.1
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
aria-hidden: 1.2.6
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
- react-remove-scroll: 2.7.2(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
+ react-remove-scroll: 2.7.2(@types/react@19.2.18)(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-separator@1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-separator@1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-slider@1.3.6(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-slider@1.3.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/number': 1.1.1
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-slot@1.2.3(@types/react@19.1.17)(react@19.1.0)':
+ '@radix-ui/react-slot@1.2.3(@types/react@19.2.18)(react@19.2.3)':
dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- '@radix-ui/react-switch@1.2.6(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-switch@1.2.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-toast@1.2.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-toast@1.2.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-toggle-group@1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-toggle-group@1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-toggle@1.1.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-toggle@1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-toolbar@1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-toolbar@1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-separator': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-toggle-group': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-separator': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-toggle-group': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-id': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
- '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.17)(react@19.1.0)':
+ '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.18)(react@19.2.3)':
dependencies:
- react: 19.1.0
+ react: 19.2.3
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.17)(react@19.1.0)':
+ '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.18)(react@19.2.3)':
dependencies:
- '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
+ '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.17)(react@19.1.0)':
+ '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.18)(react@19.2.3)':
dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.17)(react@19.1.0)':
+ '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.18)(react@19.2.3)':
dependencies:
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.17)(react@19.1.0)':
+ '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.2.18)(react@19.2.3)':
dependencies:
- react: 19.1.0
- use-sync-external-store: 1.6.0(react@19.1.0)
+ react: 19.2.3
+ use-sync-external-store: 1.6.0(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.17)(react@19.1.0)':
+ '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.18)(react@19.2.3)':
dependencies:
- react: 19.1.0
+ react: 19.2.3
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.17)(react@19.1.0)':
+ '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.18)(react@19.2.3)':
dependencies:
- react: 19.1.0
+ react: 19.2.3
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.17)(react@19.1.0)':
+ '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.18)(react@19.2.3)':
dependencies:
'@radix-ui/rect': 1.1.1
- react: 19.1.0
+ react: 19.2.3
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- '@radix-ui/react-use-size@1.1.1(@types/react@19.1.17)(react@19.1.0)':
+ '@radix-ui/react-use-size@1.1.1(@types/react@19.2.18)(react@19.2.3)':
dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- react: 19.1.0
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ react: 19.2.3
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
'@radix-ui/rect@1.1.1': {}
- '@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))':
+ '@react-native-async-storage/async-storage@2.2.0(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))':
dependencies:
merge-options: 3.0.4
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- '@react-native/assets-registry@0.81.5': {}
+ '@react-native/assets-registry@0.86.0': {}
- '@react-native/babel-plugin-codegen@0.81.5(@babel/core@7.29.0)':
+ '@react-native/babel-plugin-codegen@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/traverse': 7.29.0
- '@react-native/codegen': 0.81.5(@babel/core@7.29.0)
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
+ '@react-native/codegen': 0.86.0(@babel/core@7.29.0(supports-color@8.1.1))
transitivePeerDependencies:
- '@babel/core'
- supports-color
- '@react-native/babel-preset@0.81.5(@babel/core@7.29.0)':
+ '@react-native/babel-plugin-codegen@0.86.2(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
- '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.0)
- '@babel/plugin-syntax-export-default-from': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0)
- '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0)
- '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0)
- '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0)
- '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-numeric-separator': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0)
- '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.29.0)
- '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.29.0)
- '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0)
- '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0)
- '@babel/template': 7.28.6
- '@react-native/babel-plugin-codegen': 0.81.5(@babel/core@7.29.0)
- babel-plugin-syntax-hermes-parser: 0.29.1
- babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.29.0)
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
+ '@react-native/codegen': 0.86.2(@babel/core@7.29.0(supports-color@8.1.1))
+ transitivePeerDependencies:
+ - '@babel/core'
+ - supports-color
+
+ '@react-native/babel-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-export-default-from': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@react-native/babel-plugin-codegen': 0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ babel-plugin-syntax-hermes-parser: 0.36.0
+ babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.29.0(supports-color@8.1.1))
react-refresh: 0.14.2
transitivePeerDependencies:
- supports-color
- '@react-native/codegen@0.81.5(@babel/core@7.29.0)':
+ '@react-native/codegen@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/parser': 7.29.3
- glob: 7.2.3
- hermes-parser: 0.29.1
+ hermes-parser: 0.36.0
invariant: 2.2.4
nullthrows: 1.1.1
+ tinyglobby: 0.2.16
yargs: 17.7.2
- '@react-native/community-cli-plugin@0.81.5(@react-native/metro-config@0.86.0(@babel/core@7.29.0))':
+ '@react-native/codegen@0.86.2(@babel/core@7.29.0(supports-color@8.1.1))':
dependencies:
- '@react-native/dev-middleware': 0.81.5
- debug: 4.4.3
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/parser': 7.29.3
+ hermes-parser: 0.36.0
invariant: 2.2.4
- metro: 0.83.3
- metro-config: 0.83.3
- metro-core: 0.83.3
+ nullthrows: 1.1.1
+ tinyglobby: 0.2.16
+ yargs: 17.7.2
+
+ '@react-native/community-cli-plugin@0.86.0(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(supports-color@8.1.1)':
+ dependencies:
+ '@react-native/dev-middleware': 0.86.0(supports-color@8.1.1)
+ debug: 4.4.3(supports-color@8.1.1)
+ invariant: 2.2.4
+ metro: 0.84.4(supports-color@8.1.1)
+ metro-config: 0.84.4(supports-color@8.1.1)
+ metro-core: 0.84.4
semver: 7.8.0
optionalDependencies:
- '@react-native/metro-config': 0.86.0(@babel/core@7.29.0)
+ '@react-native/metro-config': 0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
transitivePeerDependencies:
- bufferutil
- supports-color
- utf-8-validate
- '@react-native/debugger-frontend@0.81.5': {}
+ '@react-native/debugger-frontend@0.86.0': {}
- '@react-native/dev-middleware@0.81.5':
+ '@react-native/debugger-frontend@0.86.2': {}
+
+ '@react-native/debugger-shell@0.86.0(supports-color@8.1.1)':
+ dependencies:
+ cross-spawn: 7.0.6
+ debug: 4.4.3(supports-color@8.1.1)
+ fb-dotslash: 0.5.8
+ transitivePeerDependencies:
+ - supports-color
+
+ '@react-native/debugger-shell@0.86.2(supports-color@8.1.1)':
+ dependencies:
+ cross-spawn: 7.0.6
+ debug: 4.4.3(supports-color@8.1.1)
+ fb-dotslash: 0.5.8
+ transitivePeerDependencies:
+ - supports-color
+
+ '@react-native/dev-middleware@0.86.0(supports-color@8.1.1)':
dependencies:
'@isaacs/ttlcache': 1.4.1
- '@react-native/debugger-frontend': 0.81.5
- chrome-launcher: 0.15.2
- chromium-edge-launcher: 0.2.0
- connect: 3.7.0
- debug: 4.4.3
+ '@react-native/debugger-frontend': 0.86.0
+ '@react-native/debugger-shell': 0.86.0(supports-color@8.1.1)
+ chrome-launcher: 0.15.2(supports-color@8.1.1)
+ chromium-edge-launcher: 0.3.0(supports-color@8.1.1)
+ connect: 3.7.0(supports-color@8.1.1)
+ debug: 4.4.3(supports-color@8.1.1)
invariant: 2.2.4
nullthrows: 1.1.1
open: 7.4.2
- serve-static: 1.16.3
- ws: 6.2.3
+ serve-static: 1.16.3(supports-color@8.1.1)
+ ws: 7.5.10
transitivePeerDependencies:
- bufferutil
- supports-color
- utf-8-validate
- '@react-native/gradle-plugin@0.81.5': {}
+ '@react-native/dev-middleware@0.86.2(supports-color@8.1.1)':
+ dependencies:
+ '@isaacs/ttlcache': 1.4.1
+ '@react-native/debugger-frontend': 0.86.2
+ '@react-native/debugger-shell': 0.86.2(supports-color@8.1.1)
+ chrome-launcher: 0.15.2(supports-color@8.1.1)
+ chromium-edge-launcher: 0.3.0(supports-color@8.1.1)
+ connect: 3.7.0(supports-color@8.1.1)
+ debug: 4.4.3(supports-color@8.1.1)
+ invariant: 2.2.4
+ nullthrows: 1.1.1
+ open: 7.4.2
+ serve-static: 1.16.3(supports-color@8.1.1)
+ ws: 7.5.10
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
- '@react-native/js-polyfills@0.81.5': {}
+ '@react-native/gradle-plugin@0.86.0': {}
+
+ '@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1)':
+ dependencies:
+ '@jest/create-cache-key-function': 29.7.0
+ '@react-native/js-polyfills': 0.86.0
+ babel-jest: 29.7.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ jest-environment-node: 29.7.0
+ react: 19.2.3
+ regenerator-runtime: 0.13.11
+ transitivePeerDependencies:
+ - '@babel/core'
+ - supports-color
'@react-native/js-polyfills@0.86.0': {}
- '@react-native/metro-babel-transformer@0.86.0(@babel/core@7.29.0)':
+ '@react-native/metro-babel-transformer@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
- '@react-native/babel-preset': 0.81.5(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@react-native/babel-preset': 0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
hermes-parser: 0.36.0
nullthrows: 1.1.1
transitivePeerDependencies:
- supports-color
- '@react-native/metro-config@0.86.0(@babel/core@7.29.0)':
+ '@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)':
dependencies:
'@react-native/js-polyfills': 0.86.0
- '@react-native/metro-babel-transformer': 0.86.0(@babel/core@7.29.0)
- metro-config: 0.84.4
+ '@react-native/metro-babel-transformer': 0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ metro-config: 0.84.4(supports-color@8.1.1)
metro-runtime: 0.84.4
transitivePeerDependencies:
- '@babel/core'
@@ -12344,77 +12812,77 @@ snapshots:
- supports-color
- utf-8-validate
- '@react-native/normalize-colors@0.81.5': {}
+ '@react-native/normalize-colors@0.86.0': {}
'@react-native/typescript-config@0.81.6': {}
- '@react-native/virtualized-lists@0.81.5(@types/react@19.1.17)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)':
+ '@react-native/virtualized-lists@0.86.0(@types/react@19.2.18)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)':
dependencies:
invariant: 2.2.4
nullthrows: 1.1.1
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- '@react-navigation/bottom-tabs@7.16.0(91eab7bd987834c4c877d5cbf9d3796c)':
+ '@react-navigation/bottom-tabs@7.16.0(69582b62b99c5a25dfa1fbf4667c7e56)':
dependencies:
- '@react-navigation/elements': 2.9.17(@react-navigation/native@7.2.4(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- '@react-navigation/native': 7.2.4(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ '@react-navigation/elements': 2.9.17(caae3333d744f2ce6dff023298657fe1)
+ '@react-navigation/native': 7.2.4(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
color: 4.2.3
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
- react-native-safe-area-context: 5.6.2(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react-native-screens: 4.24.0(patch_hash=74a74b489f8074a1974c2792c9c97aec30d8e251669aa37fc5c99993bb4a19e6)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+ react-native-safe-area-context: 5.7.0(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ react-native-screens: 4.26.2(patch_hash=ba3295d44434a729f143a6b2c24e4a9b2f911ab200b2bc47e46cdfeaa1536f7c)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
sf-symbols-typescript: 2.2.0
transitivePeerDependencies:
- '@react-native-masked-view/masked-view'
- '@react-navigation/core@7.17.4(react@19.1.0)':
+ '@react-navigation/core@7.17.4(react@19.2.3)':
dependencies:
'@react-navigation/routers': 7.5.5
escape-string-regexp: 4.0.0
fast-deep-equal: 3.1.3
nanoid: 3.3.12
query-string: 7.1.3
- react: 19.1.0
+ react: 19.2.3
react-is: 19.2.6
- use-latest-callback: 0.2.6(react@19.1.0)
- use-sync-external-store: 1.6.0(react@19.1.0)
+ use-latest-callback: 0.2.6(react@19.2.3)
+ use-sync-external-store: 1.6.0(react@19.2.3)
- '@react-navigation/elements@2.9.17(@react-navigation/native@7.2.4(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)':
+ '@react-navigation/elements@2.9.17(caae3333d744f2ce6dff023298657fe1)':
dependencies:
- '@react-navigation/native': 7.2.4(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ '@react-navigation/native': 7.2.4(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
color: 4.2.3
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
- react-native-safe-area-context: 5.6.2(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- use-latest-callback: 0.2.6(react@19.1.0)
- use-sync-external-store: 1.6.0(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+ react-native-safe-area-context: 5.7.0(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ use-latest-callback: 0.2.6(react@19.2.3)
+ use-sync-external-store: 1.6.0(react@19.2.3)
- '@react-navigation/native-stack@7.15.0(91eab7bd987834c4c877d5cbf9d3796c)':
+ '@react-navigation/native-stack@7.15.0(69582b62b99c5a25dfa1fbf4667c7e56)':
dependencies:
- '@react-navigation/elements': 2.9.17(@react-navigation/native@7.2.4(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- '@react-navigation/native': 7.2.4(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ '@react-navigation/elements': 2.9.17(caae3333d744f2ce6dff023298657fe1)
+ '@react-navigation/native': 7.2.4(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
color: 4.2.3
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
- react-native-safe-area-context: 5.6.2(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react-native-screens: 4.24.0(patch_hash=74a74b489f8074a1974c2792c9c97aec30d8e251669aa37fc5c99993bb4a19e6)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+ react-native-safe-area-context: 5.7.0(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ react-native-screens: 4.26.2(patch_hash=ba3295d44434a729f143a6b2c24e4a9b2f911ab200b2bc47e46cdfeaa1536f7c)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
sf-symbols-typescript: 2.2.0
warn-once: 0.1.1
transitivePeerDependencies:
- '@react-native-masked-view/masked-view'
- '@react-navigation/native@7.2.4(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)':
+ '@react-navigation/native@7.2.4(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)':
dependencies:
- '@react-navigation/core': 7.17.4(react@19.1.0)
+ '@react-navigation/core': 7.17.4(react@19.2.3)
escape-string-regexp: 4.0.0
fast-deep-equal: 3.1.3
nanoid: 3.3.12
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
- use-latest-callback: 0.2.6(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+ use-latest-callback: 0.2.6(react@19.2.3)
'@react-navigation/routers@7.5.5':
dependencies:
@@ -12438,11 +12906,11 @@ snapshots:
'@sentry/replay': 10.64.0
'@sentry/replay-canvas': 10.64.0
- '@sentry/bundler-plugin-core@3.6.1':
+ '@sentry/bundler-plugin-core@3.6.1(supports-color@8.1.1)':
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@sentry/babel-plugin-component-annotate': 3.6.1
- '@sentry/cli': 2.58.5
+ '@sentry/cli': 2.58.5(supports-color@8.1.1)
dotenv: 16.6.1
find-up: 5.0.0
glob: 9.3.5
@@ -12500,9 +12968,9 @@ snapshots:
'@sentry/cli-win32-x64@3.6.0':
optional: true
- '@sentry/cli@2.58.5':
+ '@sentry/cli@2.58.5(supports-color@8.1.1)':
dependencies:
- https-proxy-agent: 5.0.1
+ https-proxy-agent: 5.0.1(supports-color@8.1.1)
node-fetch: 2.7.0
progress: 2.0.3
proxy-from-env: 1.1.0
@@ -12542,38 +13010,38 @@ snapshots:
dependencies:
'@sentry/conventions': 0.15.1
- '@sentry/expo-upload-sourcemaps@8.18.0(patch_hash=2368e1e1986165e7ead3c60017b78b2f9ade1b6a6b2f5ad27cd428608c6f12ae)(@expo/env@2.0.11)(dotenv@16.6.1)':
+ '@sentry/expo-upload-sourcemaps@8.18.0(patch_hash=2368e1e1986165e7ead3c60017b78b2f9ade1b6a6b2f5ad27cd428608c6f12ae)(@expo/env@2.4.2(supports-color@8.1.1))(dotenv@16.6.1)':
dependencies:
'@sentry/cli': 3.6.0
optionalDependencies:
- '@expo/env': 2.0.11
+ '@expo/env': 2.4.2(supports-color@8.1.1)
dotenv: 16.6.1
'@sentry/feedback@10.64.0':
dependencies:
'@sentry/core': 10.64.0
- '@sentry/react-native@8.18.0(@expo/env@2.0.11)(dotenv@16.6.1)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)':
+ '@sentry/react-native@8.18.0(@expo/env@2.4.2(supports-color@8.1.1))(dotenv@16.6.1)(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)':
dependencies:
'@sentry/babel-plugin-component-annotate': 5.3.0
'@sentry/browser': 10.64.0
'@sentry/cli': 3.6.0
'@sentry/core': 10.64.0
- '@sentry/expo-upload-sourcemaps': 8.18.0(patch_hash=2368e1e1986165e7ead3c60017b78b2f9ade1b6a6b2f5ad27cd428608c6f12ae)(@expo/env@2.0.11)(dotenv@16.6.1)
- '@sentry/react': 10.64.0(react@19.1.0)
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ '@sentry/expo-upload-sourcemaps': 8.18.0(patch_hash=2368e1e1986165e7ead3c60017b78b2f9ade1b6a6b2f5ad27cd428608c6f12ae)(@expo/env@2.4.2(supports-color@8.1.1))(dotenv@16.6.1)
+ '@sentry/react': 10.64.0(react@19.2.3)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
optionalDependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
transitivePeerDependencies:
- '@expo/env'
- dotenv
- '@sentry/react@10.64.0(react@19.1.0)':
+ '@sentry/react@10.64.0(react@19.2.3)':
dependencies:
'@sentry/browser': 10.64.0
'@sentry/core': 10.64.0
- react: 19.1.0
+ react: 19.2.3
'@sentry/replay-canvas@10.64.0':
dependencies:
@@ -12585,12 +13053,12 @@ snapshots:
'@sentry/browser-utils': 10.64.0
'@sentry/core': 10.64.0
- '@sentry/webpack-plugin@3.6.1(webpack@5.106.2(postcss@8.5.14))':
+ '@sentry/webpack-plugin@3.6.1(supports-color@8.1.1)(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))':
dependencies:
- '@sentry/bundler-plugin-core': 3.6.1
+ '@sentry/bundler-plugin-core': 3.6.1(supports-color@8.1.1)
unplugin: 1.0.1
uuid: 9.0.1
- webpack: 5.106.2(postcss@8.5.14)
+ webpack: 5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)
transitivePeerDependencies:
- encoding
- supports-color
@@ -12607,6 +13075,8 @@ snapshots:
dependencies:
'@sinonjs/commons': 3.0.1
+ '@standard-schema/spec@1.1.0': {}
+
'@tanstack/query-async-storage-persister@5.100.10':
dependencies:
'@tanstack/query-core': 5.100.10
@@ -12618,28 +13088,28 @@ snapshots:
dependencies:
'@tanstack/query-core': 5.100.10
- '@tanstack/react-query-persist-client@5.100.10(@tanstack/react-query@5.100.10(react@19.1.0))(react@19.1.0)':
+ '@tanstack/react-query-persist-client@5.100.10(@tanstack/react-query@5.100.10(react@19.2.3))(react@19.2.3)':
dependencies:
'@tanstack/query-persist-client-core': 5.100.10
- '@tanstack/react-query': 5.100.10(react@19.1.0)
- react: 19.1.0
+ '@tanstack/react-query': 5.100.10(react@19.2.3)
+ react: 19.2.3
- '@tanstack/react-query@5.100.10(react@19.1.0)':
+ '@tanstack/react-query@5.100.10(react@19.2.3)':
dependencies:
'@tanstack/query-core': 5.100.10
- react: 19.1.0
+ react: 19.2.3
- '@testing-library/react-native@13.3.3(jest@29.7.0(@types/node@24.12.4))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react-test-renderer@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@testing-library/react-native@13.3.3(jest@29.7.0(@types/node@24.12.4)(supports-color@8.1.1))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react-test-renderer@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
jest-matcher-utils: 30.4.1
picocolors: 1.1.1
pretty-format: 30.4.1
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
- react-test-renderer: 19.1.0(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+ react-test-renderer: 19.2.3(react@19.2.3)
redent: 3.0.0
optionalDependencies:
- jest: 29.7.0(@types/node@24.12.4)
+ jest: 29.7.0(@types/node@24.12.4)(supports-color@8.1.1)
'@tiptap/core@2.27.2(@tiptap/pm@2.27.2)':
dependencies:
@@ -12710,7 +13180,7 @@ snapshots:
prosemirror-transform: 1.12.0
prosemirror-view: 1.41.8
- '@tiptap/react@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ '@tiptap/react@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@tiptap/core': 2.27.2(@tiptap/pm@2.27.2)
'@tiptap/extension-bubble-menu': 2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)
@@ -12718,9 +13188,9 @@ snapshots:
'@tiptap/pm': 2.27.2
'@types/use-sync-external-store': 0.0.6
fast-deep-equal: 3.1.3
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
- use-sync-external-store: 1.6.0(react@19.1.0)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
+ use-sync-external-store: 1.6.0(react@19.2.3)
'@tiptap/suggestion@2.27.2(@tiptap/core@2.27.2(@tiptap/pm@2.27.2))(@tiptap/pm@2.27.2)':
dependencies:
@@ -12729,6 +13199,12 @@ snapshots:
'@tootallnate/once@2.0.1': {}
+ '@ts-morph/common@0.28.1':
+ dependencies:
+ minimatch: 10.2.5
+ path-browserify: 1.0.1
+ tinyglobby: 0.2.16
+
'@types/babel__core@7.20.5':
dependencies:
'@babel/parser': 7.29.3
@@ -12774,6 +13250,8 @@ snapshots:
'@types/dom-webcodecs@0.1.13': {}
+ '@types/emscripten@1.41.5': {}
+
'@types/eslint-scope@3.7.7':
dependencies:
'@types/eslint': 9.6.1
@@ -12903,7 +13381,11 @@ snapshots:
'@types/range-parser@1.2.7': {}
- '@types/react-dom@19.1.11(@types/react@19.1.17)':
+ '@types/react-dom@19.2.4(@types/react@19.2.18)':
+ dependencies:
+ '@types/react': 19.2.18
+
+ '@types/react-test-renderer@19.1.0':
dependencies:
'@types/react': 19.1.17
@@ -12911,6 +13393,10 @@ snapshots:
dependencies:
csstype: 3.2.3
+ '@types/react@19.2.18':
+ dependencies:
+ csstype: 3.2.3
+
'@types/retry@0.12.0': {}
'@types/send@0.17.6':
@@ -12952,6 +13438,37 @@ snapshots:
dependencies:
'@types/yargs-parser': 21.0.3
+ '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260707.2':
+ optional: true
+
+ '@typescript/native-preview-darwin-x64@7.0.0-dev.20260707.2':
+ optional: true
+
+ '@typescript/native-preview-linux-arm64@7.0.0-dev.20260707.2':
+ optional: true
+
+ '@typescript/native-preview-linux-arm@7.0.0-dev.20260707.2':
+ optional: true
+
+ '@typescript/native-preview-linux-x64@7.0.0-dev.20260707.2':
+ optional: true
+
+ '@typescript/native-preview-win32-arm64@7.0.0-dev.20260707.2':
+ optional: true
+
+ '@typescript/native-preview-win32-x64@7.0.0-dev.20260707.2':
+ optional: true
+
+ '@typescript/native-preview@7.0.0-dev.20260707.2':
+ optionalDependencies:
+ '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260707.2
+ '@typescript/native-preview-darwin-x64': 7.0.0-dev.20260707.2
+ '@typescript/native-preview-linux-arm': 7.0.0-dev.20260707.2
+ '@typescript/native-preview-linux-arm64': 7.0.0-dev.20260707.2
+ '@typescript/native-preview-linux-x64': 7.0.0-dev.20260707.2
+ '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260707.2
+ '@typescript/native-preview-win32-x64': 7.0.0-dev.20260707.2
+
'@typescript/typescript-aix-ppc64@7.0.2':
optional: true
@@ -13018,18 +13535,6 @@ snapshots:
'@ungap/structured-clone@1.3.1': {}
- '@urql/core@5.2.0':
- dependencies:
- '@0no-co/graphql.web': 1.2.0
- wonka: 6.3.6
- transitivePeerDependencies:
- - graphql
-
- '@urql/exchange-retry@1.3.2(@urql/core@5.2.0)':
- dependencies:
- '@urql/core': 5.2.0
- wonka: 6.3.6
-
'@webassemblyjs/ast@1.14.1':
dependencies:
'@webassemblyjs/helper-numbers': 1.13.2
@@ -13139,20 +13644,27 @@ snapshots:
dependencies:
acorn: 8.16.0
+ acorn-jsx@5.3.2(acorn@8.16.0):
+ dependencies:
+ acorn: 8.16.0
+ optional: true
+
acorn-walk@8.3.5:
dependencies:
acorn: 8.16.0
acorn@8.16.0: {}
- agent-base@6.0.2:
+ agent-base@6.0.2(supports-color@8.1.1):
dependencies:
- debug: 4.4.3
+ debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
agent-base@7.1.4: {}
+ agent-cli-detector@0.1.5: {}
+
ajv-formats@2.1.1(ajv@8.20.0):
optionalDependencies:
ajv: 8.20.0
@@ -13218,8 +13730,6 @@ snapshots:
ansi-styles@6.2.3: {}
- any-promise@1.3.0: {}
-
anymatch@3.1.3:
dependencies:
normalize-path: 3.0.0
@@ -13293,56 +13803,46 @@ snapshots:
asap@2.0.6: {}
- assert@2.1.0:
- dependencies:
- call-bind: 1.0.9
- is-nan: 1.3.2
- object-is: 1.1.6
- object.assign: 4.1.7
- util: 0.12.5
-
ast-types-flow@0.0.7: {}
async-function@1.0.0: {}
- async-limiter@1.0.1: {}
-
asynckit@0.4.0: {}
+ atomic-sleep@1.0.0: {}
+
available-typed-arrays@1.0.7:
dependencies:
possible-typed-array-names: 1.1.0
- await-lock@3.0.0: {}
-
- babel-jest@29.7.0(@babel/core@7.29.0):
+ babel-jest@29.7.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1):
dependencies:
- '@babel/core': 7.29.0
- '@jest/transform': 29.7.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@jest/transform': 29.7.0(supports-color@8.1.1)
'@types/babel__core': 7.20.5
- babel-plugin-istanbul: 6.1.1
- babel-preset-jest: 29.6.3(@babel/core@7.29.0)
+ babel-plugin-istanbul: 6.1.1(supports-color@8.1.1)
+ babel-preset-jest: 29.6.3(@babel/core@7.29.0(supports-color@8.1.1))
chalk: 4.1.2
graceful-fs: 4.2.11
slash: 3.0.0
transitivePeerDependencies:
- supports-color
- babel-loader@8.4.1(@babel/core@7.29.0)(webpack@5.106.2(postcss@8.5.14)):
+ babel-loader@8.4.1(@babel/core@7.29.0(supports-color@8.1.1))(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)):
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
find-cache-dir: 3.3.2
loader-utils: 2.0.4
make-dir: 3.1.0
schema-utils: 2.7.1
- webpack: 5.106.2(postcss@8.5.14)
+ webpack: 5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)
- babel-plugin-istanbul@6.1.1:
+ babel-plugin-istanbul@6.1.1(supports-color@8.1.1):
dependencies:
'@babel/helper-plugin-utils': 7.28.6
'@istanbuljs/load-nyc-config': 1.1.0
'@istanbuljs/schema': 0.1.6
- istanbul-lib-instrument: 5.2.1
+ istanbul-lib-instrument: 5.2.1(supports-color@8.1.1)
test-exclude: 6.0.0
transitivePeerDependencies:
- supports-color
@@ -13362,35 +13862,35 @@ snapshots:
reselect: 4.1.8
resolve: 1.22.12
- babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.0):
+ babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1):
dependencies:
'@babel/compat-data': 7.29.3
- '@babel/core': 7.29.0
- '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.29.0):
+ babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1):
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
core-js-compat: 3.49.0
transitivePeerDependencies:
- supports-color
- babel-plugin-polyfill-corejs3@0.14.2(@babel/core@7.29.0):
+ babel-plugin-polyfill-corejs3@0.14.2(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1):
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
core-js-compat: 3.49.0
transitivePeerDependencies:
- supports-color
- babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.29.0):
+ babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1):
dependencies:
- '@babel/core': 7.29.0
- '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -13398,112 +13898,100 @@ snapshots:
dependencies:
'@babel/types': 7.29.0
- babel-plugin-react-compiler@19.1.0-rc.3:
- dependencies:
- '@babel/types': 7.29.0
-
babel-plugin-react-native-web@0.21.2: {}
- babel-plugin-syntax-hermes-parser@0.29.1:
+ babel-plugin-syntax-hermes-parser@0.36.0:
dependencies:
- hermes-parser: 0.29.1
+ hermes-parser: 0.36.0
- babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.29.0):
+ babel-plugin-syntax-hermes-parser@0.36.1:
dependencies:
- '@babel/plugin-syntax-flow': 7.28.6(@babel/core@7.29.0)
+ hermes-parser: 0.36.1
+
+ babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.29.0(supports-color@8.1.1)):
+ dependencies:
+ '@babel/plugin-syntax-flow': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
transitivePeerDependencies:
- '@babel/core'
babel-plugin-transform-remove-console@6.9.4: {}
- babel-preset-current-node-syntax@1.2.0(@babel/core@7.29.0):
+ babel-preset-current-node-syntax@1.2.0(@babel/core@7.29.0(supports-color@8.1.1)):
dependencies:
- '@babel/core': 7.29.0
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.29.0)
- '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.29.0)
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.0)
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.29.0)
- '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.0)
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.0)
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.0)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0)
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.0)
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.0)
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.29.0)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0)
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.0)
- '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.0(supports-color@8.1.1))
- babel-preset-expo@54.0.10(@babel/core@7.29.0)(@babel/runtime@7.29.2)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-refresh@0.14.2):
+ babel-preset-expo@57.0.7(@babel/core@7.29.0(supports-color@8.1.1))(@babel/runtime@7.29.2)(expo@57.0.8)(react-refresh@0.14.2)(supports-color@8.1.1):
dependencies:
- '@babel/helper-module-imports': 7.28.6
- '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0)
- '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-syntax-export-default-from': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0)
- '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0)
- '@babel/preset-react': 7.28.5(@babel/core@7.29.0)
- '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0)
- '@react-native/babel-preset': 0.81.5(@babel/core@7.29.0)
+ '@babel/generator': 7.29.1
+ '@babel/helper-module-imports': 7.28.6(supports-color@8.1.1)
+ '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-export-default-from': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@react-native/babel-plugin-codegen': 0.86.2(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
babel-plugin-react-compiler: 1.0.0
babel-plugin-react-native-web: 0.21.2
- babel-plugin-syntax-hermes-parser: 0.29.1
- babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.29.0)
- debug: 4.4.3
+ babel-plugin-syntax-hermes-parser: 0.36.1
+ babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.29.0(supports-color@8.1.1))
+ debug: 4.4.3(supports-color@8.1.1)
react-refresh: 0.14.2
- resolve-from: 5.0.0
optionalDependencies:
'@babel/runtime': 7.29.2
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
transitivePeerDependencies:
- '@babel/core'
- supports-color
- babel-preset-expo@54.0.12(@babel/core@7.29.0)(@babel/runtime@7.29.2)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-refresh@0.14.2):
+ babel-preset-jest@29.6.3(@babel/core@7.29.0(supports-color@8.1.1)):
dependencies:
- '@babel/helper-module-imports': 7.28.6
- '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0)
- '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-syntax-export-default-from': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0)
- '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0)
- '@babel/preset-react': 7.28.5(@babel/core@7.29.0)
- '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0)
- '@react-native/babel-preset': 0.81.5(@babel/core@7.29.0)
- babel-plugin-react-compiler: 1.0.0
- babel-plugin-react-native-web: 0.21.2
- babel-plugin-syntax-hermes-parser: 0.29.1
- babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.29.0)
- debug: 4.4.3
- react-refresh: 0.14.2
- resolve-from: 5.0.0
- optionalDependencies:
- '@babel/runtime': 7.29.2
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- transitivePeerDependencies:
- - '@babel/core'
- - supports-color
-
- babel-preset-jest@29.6.3(@babel/core@7.29.0):
- dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
babel-plugin-jest-hoist: 29.6.3
- babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0)
+ babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0(supports-color@8.1.1))
badgin@1.2.3: {}
@@ -13511,6 +13999,12 @@ snapshots:
balanced-match@4.0.4: {}
+ barcode-detector@3.2.2(@types/emscripten@1.41.5):
+ dependencies:
+ zxing-wasm: 3.1.3(@types/emscripten@1.41.5)
+ transitivePeerDependencies:
+ - '@types/emscripten'
+
base64-arraybuffer@1.0.2: {}
base64-js@1.5.1: {}
@@ -13527,10 +14021,6 @@ snapshots:
is-alphanumerical: 2.0.1
is-decimal: 2.0.1
- better-opn@3.0.2:
- dependencies:
- open: 8.4.2
-
big-integer@1.6.52: {}
big.js@5.2.2: {}
@@ -13543,11 +14033,11 @@ snapshots:
inherits: 2.0.4
readable-stream: 3.6.2
- body-parser@1.20.5:
+ body-parser@1.20.5(supports-color@8.1.1):
dependencies:
bytes: 3.1.2
content-type: 1.0.5
- debug: 2.6.9
+ debug: 2.6.9(supports-color@8.1.1)
depd: 2.0.0
destroy: 1.2.0
http-errors: 2.0.1
@@ -13656,6 +14146,8 @@ snapshots:
caniuse-lite@1.0.30001792: {}
+ cborg@4.5.8: {}
+
cborg@5.1.1: {}
chalk@2.4.2:
@@ -13704,25 +14196,24 @@ snapshots:
chownr@3.0.0: {}
- chrome-launcher@0.15.2:
+ chrome-launcher@0.15.2(supports-color@8.1.1):
dependencies:
'@types/node': 24.12.4
escape-string-regexp: 4.0.0
is-wsl: 2.2.0
- lighthouse-logger: 1.4.2
+ lighthouse-logger: 1.4.2(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
chrome-trace-event@1.0.4: {}
- chromium-edge-launcher@0.2.0:
+ chromium-edge-launcher@0.3.0(supports-color@8.1.1):
dependencies:
'@types/node': 24.12.4
escape-string-regexp: 4.0.0
is-wsl: 2.2.0
- lighthouse-logger: 1.4.2
+ lighthouse-logger: 1.4.2(supports-color@8.1.1)
mkdirp: 1.0.4
- rimraf: 3.0.2
transitivePeerDependencies:
- supports-color
@@ -13738,10 +14229,10 @@ snapshots:
dependencies:
source-map: 0.6.1
- clean-webpack-plugin@4.0.0(webpack@5.106.2(postcss@8.5.14)):
+ clean-webpack-plugin@4.0.0(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)):
dependencies:
del: 4.1.1
- webpack: 5.106.2(postcss@8.5.14)
+ webpack: 5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)
cli-cursor@2.1.0:
dependencies:
@@ -13778,10 +14269,18 @@ snapshots:
strip-ansi: 6.0.1
wrap-ansi: 7.0.0
+ cliui@9.0.1:
+ dependencies:
+ string-width: 7.2.0
+ strip-ansi: 7.2.0
+ wrap-ansi: 9.0.2
+
clone@1.0.4: {}
co@4.6.0: {}
+ code-block-writer@13.0.3: {}
+
collect-v8-coverage@1.0.3: {}
color-convert@1.9.3:
@@ -13828,8 +14327,6 @@ snapshots:
commander@2.20.3: {}
- commander@4.1.1: {}
-
commander@7.2.0: {}
commander@8.3.0: {}
@@ -13840,11 +14337,11 @@ snapshots:
dependencies:
mime-db: 1.54.0
- compression@1.8.1:
+ compression@1.8.1(supports-color@8.1.1):
dependencies:
bytes: 3.1.2
compressible: 2.0.18
- debug: 2.6.9
+ debug: 2.6.9(supports-color@8.1.1)
negotiator: 0.6.4
on-headers: 1.1.0
safe-buffer: 5.2.1
@@ -13856,10 +14353,10 @@ snapshots:
connect-history-api-fallback@2.0.0: {}
- connect@3.7.0:
+ connect@3.7.0(supports-color@8.1.1):
dependencies:
- debug: 2.6.9
- finalhandler: 1.1.2
+ debug: 2.6.9(supports-color@8.1.1)
+ finalhandler: 1.1.2(supports-color@8.1.1)
parseurl: 1.3.3
utils-merge: 1.0.1
transitivePeerDependencies:
@@ -13877,7 +14374,7 @@ snapshots:
cookie@0.7.2: {}
- copy-webpack-plugin@10.2.4(webpack@5.106.2(postcss@8.5.14)):
+ copy-webpack-plugin@10.2.4(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)):
dependencies:
fast-glob: 3.3.3
glob-parent: 6.0.2
@@ -13885,7 +14382,7 @@ snapshots:
normalize-path: 3.0.0
schema-utils: 4.3.3
serialize-javascript: 6.0.2
- webpack: 5.106.2(postcss@8.5.14)
+ webpack: 5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)
core-js-compat@3.49.0:
dependencies:
@@ -13893,6 +14390,8 @@ snapshots:
core-js-pure@3.49.0: {}
+ core-js@3.50.0: {}
+
core-util-is@1.0.3: {}
cosmiconfig@8.3.6(@typescript/typescript6@6.0.2):
@@ -13904,13 +14403,13 @@ snapshots:
optionalDependencies:
typescript: '@typescript/typescript6@6.0.2'
- create-jest@29.7.0(@types/node@24.12.4):
+ create-jest@29.7.0(@types/node@24.12.4)(supports-color@8.1.1):
dependencies:
'@jest/types': 29.6.3
chalk: 4.1.2
exit: 0.1.2
graceful-fs: 4.2.11
- jest-config: 29.7.0(@types/node@24.12.4)
+ jest-config: 29.7.0(@types/node@24.12.4)(supports-color@8.1.1)
jest-util: 29.7.0
prompts: 2.4.2
transitivePeerDependencies:
@@ -13945,7 +14444,7 @@ snapshots:
dependencies:
utrie: 1.0.2
- css-loader@6.11.0(webpack@5.106.2(postcss@8.5.14)):
+ css-loader@6.11.0(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)):
dependencies:
icss-utils: 5.1.0(postcss@8.5.14)
postcss: 8.5.14
@@ -13956,11 +14455,11 @@ snapshots:
postcss-value-parser: 4.2.0
semver: 7.8.0
optionalDependencies:
- webpack: 5.106.2(postcss@8.5.14)
+ webpack: 5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)
css-mediaquery@0.1.2: {}
- css-minimizer-webpack-plugin@3.4.1(clean-css@5.3.3)(csso@5.0.5)(esbuild@0.25.12)(webpack@5.106.2(postcss@8.5.14)):
+ css-minimizer-webpack-plugin@3.4.1(clean-css@5.3.3)(csso@5.0.5)(esbuild@0.25.12)(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)):
dependencies:
cssnano: 5.1.15(postcss@8.5.14)
jest-worker: 27.5.1
@@ -13968,7 +14467,7 @@ snapshots:
schema-utils: 4.3.3
serialize-javascript: 6.0.2
source-map: 0.6.1
- webpack: 5.106.2(postcss@8.5.14)
+ webpack: 5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)
optionalDependencies:
clean-css: 5.3.3
csso: 5.0.5
@@ -14101,17 +14600,23 @@ snapshots:
debounce@1.2.1: {}
- debug@2.6.9:
+ debug@2.6.9(supports-color@8.1.1):
dependencies:
ms: 2.0.0
+ optionalDependencies:
+ supports-color: 8.1.1
- debug@3.2.7:
+ debug@3.2.7(supports-color@8.1.1):
dependencies:
ms: 2.1.3
+ optionalDependencies:
+ supports-color: 8.1.1
- debug@4.4.3:
+ debug@4.4.3(supports-color@8.1.1):
dependencies:
ms: 2.1.3
+ optionalDependencies:
+ supports-color: 8.1.1
decamelize@1.2.0: {}
@@ -14123,6 +14628,9 @@ snapshots:
deep-extend@0.6.0: {}
+ deep-is@0.1.4:
+ optional: true
+
deepmerge@4.3.1: {}
default-gateway@6.0.3:
@@ -14187,6 +14695,13 @@ snapshots:
dependencies:
'@leichtgewicht/ip-codec': 2.0.5
+ dnssd-advertise@1.1.6: {}
+
+ doctrine@3.0.0:
+ dependencies:
+ esutils: 2.0.3
+ optional: true
+
dom-converter@0.2.0:
dependencies:
utila: 0.4.0
@@ -14236,12 +14751,6 @@ snapshots:
no-case: 3.0.4
tslib: 2.8.1
- dotenv-expand@11.0.7:
- dependencies:
- dotenv: 16.6.1
-
- dotenv@16.4.7: {}
-
dotenv@16.6.1: {}
dunder-proto@1.0.1:
@@ -14287,8 +14796,6 @@ snapshots:
entities@6.0.1: {}
- env-editor@0.4.2: {}
-
environment@1.1.0: {}
error-ex@1.3.4:
@@ -14430,46 +14937,93 @@ snapshots:
optionalDependencies:
source-map: 0.6.1
- eslint-plugin-react-compiler@19.1.0-rc.2(eslint@eslint):
- dependencies:
- '@babel/core': 7.29.0
- '@babel/parser': 7.29.3
- '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.29.0)
- eslint: link:eslint
- hermes-parser: 0.25.1
- zod: 3.25.76
- zod-validation-error: 3.5.4(zod@3.25.76)
- transitivePeerDependencies:
- - supports-color
-
- eslint-plugin-react-native-a11y@3.5.1(eslint@eslint):
+ eslint-plugin-react-native-a11y@3.5.1(eslint@8.57.1(supports-color@8.1.1)):
dependencies:
'@babel/runtime': 7.29.2
ast-types-flow: 0.0.7
- eslint: link:eslint
jsx-ast-utils: 3.3.5
+ optionalDependencies:
+ eslint: 8.57.1(supports-color@8.1.1)
- eslint-plugin-react-native-globals@0.1.2: {}
-
- eslint-plugin-react-native@5.0.0(eslint@eslint):
- dependencies:
- eslint: link:eslint
- eslint-plugin-react-native-globals: 0.1.2
-
- eslint-plugin-simple-import-sort@13.0.0(eslint@eslint):
- dependencies:
- eslint: link:eslint
+ eslint-plugin-simple-import-sort@13.0.0(eslint@8.57.1(supports-color@8.1.1)):
+ optionalDependencies:
+ eslint: 8.57.1(supports-color@8.1.1)
eslint-scope@5.1.1:
dependencies:
esrecurse: 4.3.0
estraverse: 4.3.0
+ eslint-scope@7.2.2:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+ optional: true
+
+ eslint-visitor-keys@3.4.3:
+ optional: true
+
+ eslint@8.57.1(supports-color@8.1.1):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.10.1(eslint@8.57.1(supports-color@8.1.1))
+ '@eslint-community/regexpp': 4.12.2
+ '@eslint/eslintrc': 2.1.4(supports-color@8.1.1)
+ '@eslint/js': 8.57.1
+ '@humanwhocodes/config-array': 0.13.0(supports-color@8.1.1)
+ '@humanwhocodes/module-importer': 1.0.1
+ '@nodelib/fs.walk': 1.2.8
+ '@ungap/structured-clone': 1.3.1
+ ajv: 6.15.0
+ chalk: 4.1.2
+ cross-spawn: 7.0.6
+ debug: 4.4.3(supports-color@8.1.1)
+ doctrine: 3.0.0
+ escape-string-regexp: 4.0.0
+ eslint-scope: 7.2.2
+ eslint-visitor-keys: 3.4.3
+ espree: 9.6.1
+ esquery: 1.7.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 6.0.1
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ globals: 13.24.0
+ graphemer: 1.4.0
+ ignore: 5.3.2
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ is-path-inside: 3.0.3
+ js-yaml: 4.1.1
+ json-stable-stringify-without-jsonify: 1.0.1
+ levn: 0.4.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.5
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ strip-ansi: 6.0.1
+ text-table: 0.2.0
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
esm@3.2.25:
optional: true
+ espree@9.6.1:
+ dependencies:
+ acorn: 8.16.0
+ acorn-jsx: 5.3.2(acorn@8.16.0)
+ eslint-visitor-keys: 3.4.3
+ optional: true
+
esprima@4.0.1: {}
+ esquery@1.7.0:
+ dependencies:
+ estraverse: 5.3.0
+ optional: true
+
esrecurse@4.3.0:
dependencies:
estraverse: 5.3.0
@@ -14521,386 +15075,404 @@ snapshots:
jest-mock: 30.4.1
jest-util: 30.4.1
- expo-age-range@0.2.18(patch_hash=c325225749993424461eeece1d97a99b19c00da2ebc958a73c12e4eca0c39306)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)):
+ expo-age-range@57.0.2(patch_hash=c325225749993424461eeece1d97a99b19c00da2ebc958a73c12e4eca0c39306)(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- expo-application@7.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
+ expo-application@57.0.2(expo@57.0.8):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
- expo-asset@12.0.13(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ expo-asset@57.0.12(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1):
dependencies:
'@expo/image-utils': 0.8.12
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- expo-constants: 18.0.13(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ expo-constants: 57.0.12(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(supports-color@8.1.1)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- expo-blur@15.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ expo-blur@57.0.2(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- expo-build-properties@1.0.10(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
+ expo-build-properties@57.0.12(expo@57.0.8):
dependencies:
- ajv: 8.20.0
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ '@expo/schema-utils': 57.0.2
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ resolve-from: 5.0.0
semver: 7.8.0
- expo-camera@17.0.10(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ expo-camera@57.0.3(@types/emscripten@1.41.5)(expo@57.0.8)(react-native-web@0.21.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- invariant: 2.2.4
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ barcode-detector: 3.2.2(@types/emscripten@1.41.5)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
optionalDependencies:
- react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ react-native-web: 0.21.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ transitivePeerDependencies:
+ - '@types/emscripten'
- expo-clipboard@8.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ expo-clipboard@57.0.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- expo-constants@18.0.13(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)):
+ expo-constants@57.0.12(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(supports-color@8.1.1):
dependencies:
- '@expo/config': 12.0.13
- '@expo/env': 2.0.11
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ '@expo/env': 2.4.2(supports-color@8.1.1)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- expo-contacts@15.0.11(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ expo-contacts@57.0.4(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- expo-dev-client@6.0.21(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
+ expo-dev-client@57.0.13(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- expo-dev-launcher: 6.0.21(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
- expo-dev-menu: 7.0.19(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
- expo-dev-menu-interface: 2.0.0(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
- expo-manifests: 1.0.11(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
- expo-updates-interface: 2.0.0(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ expo-dev-launcher: 57.0.13(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))
+ expo-dev-menu: 57.0.13(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))
+ expo-dev-menu-interface: 57.0.0(expo@57.0.8)
+ expo-manifests: 57.0.1(expo@57.0.8)
+ expo-updates-interface: 57.0.1(expo@57.0.8)
transitivePeerDependencies:
- - supports-color
+ - react-native
- expo-dev-launcher@6.0.21(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
+ expo-dev-launcher@57.0.13(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)):
dependencies:
- ajv: 8.20.0
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- expo-dev-menu: 7.0.19(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
- expo-manifests: 1.0.11(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
- transitivePeerDependencies:
- - supports-color
+ '@expo/schema-utils': 57.0.2
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ expo-dev-menu: 57.0.13(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))
+ expo-manifests: 57.0.1(expo@57.0.8)
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- expo-dev-menu-interface@2.0.0(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
+ expo-dev-menu-interface@57.0.0(expo@57.0.8):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
- expo-dev-menu@7.0.19(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
+ expo-dev-menu@57.0.13(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- expo-dev-menu-interface: 2.0.0(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ expo-dev-menu-interface: 57.0.0(expo@57.0.8)
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- expo-device@8.0.10(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
+ expo-device@57.0.1(expo@57.0.8):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
ua-parser-js: 0.7.41
- expo-eas-client@1.0.8: {}
+ expo-eas-client@57.0.1: {}
- expo-file-system@19.0.22(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)):
+ expo-file-system@57.0.4(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- expo-file-system@19.0.23(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)):
+ expo-font@57.0.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
-
- expo-font@14.0.11(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
- dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
fontfaceobserver: 2.3.0
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- expo-font@14.0.12(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ expo-glass-effect@57.0.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- fontfaceobserver: 2.3.0
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- expo-glass-effect@0.1.10(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ expo-haptics@57.0.1(patch_hash=b33910ba2753c4eccdc885b449e6e33aa90b9cefa75ca8639762a26013141410)(expo@57.0.8):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
- expo-haptics@15.0.8(patch_hash=b33910ba2753c4eccdc885b449e6e33aa90b9cefa75ca8639762a26013141410)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
+ expo-image-loader@57.0.1(expo@57.0.8):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
- expo-image-loader@6.0.0(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
+ expo-image-manipulator@57.0.10(expo@57.0.8):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ expo-image-loader: 57.0.1(expo@57.0.8)
- expo-image-manipulator@14.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
+ expo-image-picker@57.0.11(expo@57.0.8):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- expo-image-loader: 6.0.0(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ expo-image-loader: 57.0.1(expo@57.0.8)
- expo-image-picker@17.0.11(patch_hash=47b28f6ddb8bcaa6483f8714c82daaa0001122f2b0dac6c05d19e98a61a6ceab)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
+ expo-image@57.0.1(expo@57.0.8)(react-native-web@0.21.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- expo-image-loader: 6.0.0(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
-
- expo-image@3.0.11(patch_hash=6d46ffac33426c5285777da5bf5f88c68c8ce27290595dfa65f38c478930c2c4)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
- dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+ sf-symbols-typescript: 2.2.0
optionalDependencies:
- react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ react-native-web: 0.21.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
- expo-intent-launcher@13.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
+ expo-intent-launcher@57.0.1(expo@57.0.8):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
- expo-json-utils@0.15.0: {}
+ expo-json-utils@57.0.1: {}
- expo-keep-awake@15.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react@19.1.0):
+ expo-keep-awake@57.0.1(expo@57.0.8)(react@19.2.3):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
- expo-linear-gradient@15.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ expo-linear-gradient@57.0.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- expo-linking@8.0.12(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ expo-linking@57.0.6(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1):
dependencies:
- expo-constants: 18.0.13(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))
+ expo-constants: 57.0.12(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(supports-color@8.1.1)
invariant: 2.2.4
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
transitivePeerDependencies:
- expo
- supports-color
- expo-localization@17.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react@19.1.0):
+ expo-localization@57.0.1(expo@57.0.8)(react@19.2.3):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
rtl-detect: 1.1.2
- expo-location@19.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
- dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
-
- expo-manifests@1.0.11(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
- dependencies:
- '@expo/config': 12.0.13
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- expo-json-utils: 0.15.0
- transitivePeerDependencies:
- - supports-color
-
- expo-media-library@18.2.1(patch_hash=2b84c17999bb0c977eaef7fa8ac297f7074d91c94fb63726b42d2a277b26b39a)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)):
- dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
-
- expo-modules-autolinking@3.0.26:
- dependencies:
- '@expo/spawn-async': 1.7.2
- chalk: 4.1.2
- commander: 7.2.0
- require-from-string: 2.0.2
- resolve-from: 5.0.0
-
- expo-modules-core@3.0.30(patch_hash=952fb1c8cb6dc8a0d8ef4e1114942a341d89b025e011f1acfff788929997346e)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
- dependencies:
- invariant: 2.2.4
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
-
- expo-notifications@0.32.17(patch_hash=a45a8dcf3d8c4b5df4ee0e62bc79b755fcf9d28ca51a6f685b85830bf4afc2e5)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ expo-location@57.0.11(expo@57.0.8):
+ dependencies:
+ '@expo/image-utils': 0.8.12
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+
+ expo-manifests@57.0.1(expo@57.0.8):
+ dependencies:
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ expo-json-utils: 57.0.1
+
+ expo-media-library@57.0.3(patch_hash=2b84c17999bb0c977eaef7fa8ac297f7074d91c94fb63726b42d2a277b26b39a)(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)):
+ dependencies:
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+
+ expo-modules-autolinking@57.0.10(@typescript/typescript6@6.0.2)(supports-color@8.1.1):
+ dependencies:
+ '@expo/require-utils': 57.0.4(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
+ '@expo/spawn-async': 1.8.0
+ chalk: 4.1.2
+ commander: 7.2.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ expo-modules-core@57.0.8(patch_hash=86e57bb33bc6c3f7021e948e099c2b5378772147b92a82a16e2e90ddcb857ace)(c6ee2c3257efee1775b3ba0a37d05090):
+ dependencies:
+ '@expo/expo-modules-macros-plugin': 0.6.1
+ expo-modules-jsi: 57.0.4(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))
+ invariant: 2.2.4
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+ optionalDependencies:
+ react-native-worklets: 0.11.3(patch_hash=8ebbcf528fc731459ac4a4eff612a50dfb7e24462a9df201e4aaa81a201343f0)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1)
+
+ expo-modules-jsi@57.0.4(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)):
+ dependencies:
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+
+ expo-notifications@57.0.7(patch_hash=542d7d2024b364ba601b7f2af041353dccde555db0e6ecf0b5948c90e6b33a75)(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1):
dependencies:
'@expo/image-utils': 0.8.12
- '@ide/backoff': 1.0.0
abort-controller: 3.0.0
- assert: 2.1.0
badgin: 1.2.3
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- expo-application: 7.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
- expo-constants: 18.0.13(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ expo-application: 57.0.2(expo@57.0.8)
+ expo-constants: 57.0.12(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(supports-color@8.1.1)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- expo-paste-input@0.2.1(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ expo-paste-input@0.2.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- expo-privacy-sensitive@0.2.0(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ expo-privacy-sensitive@0.2.0(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- expo-pwa@0.0.127(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
+ expo-pwa@0.0.127(expo@57.0.8):
dependencies:
'@expo/image-utils': 0.8.12
chalk: 4.1.2
commander: 2.20.0
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
update-check: 1.5.3
- expo-screen-orientation@9.0.9(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)):
+ expo-screen-orientation@57.0.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- expo-server@1.0.7: {}
+ expo-server@57.0.3: {}
- expo-sharing@14.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
+ expo-sharing@57.0.13(@typescript/typescript6@6.0.2)(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
-
- expo-sms@14.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
- dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
-
- expo-splash-screen@31.0.13(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
- dependencies:
- '@expo/prebuild-config': 54.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ '@expo/config-plugins': 57.0.8(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
+ '@expo/config-types': 57.0.2
+ '@expo/plist': 0.8.1
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
+ - typescript
- expo-structured-headers@5.0.0: {}
-
- expo-system-ui@6.0.9(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)):
+ expo-sms@57.0.1(expo@57.0.8):
dependencies:
- '@react-native/normalize-colors': 0.81.5
- debug: 4.4.3
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+
+ expo-splash-screen@57.0.7(@typescript/typescript6@6.0.2)(expo@57.0.8)(supports-color@8.1.1):
+ dependencies:
+ '@expo/config-plugins': 57.0.8(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
+ '@expo/image-utils': 0.8.12
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ xml2js: 0.6.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ expo-structured-headers@57.0.0: {}
+
+ expo-system-ui@57.0.2(expo@57.0.8)(react-native-web@0.21.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(supports-color@8.1.1):
+ dependencies:
+ '@react-native/normalize-colors': 0.86.0
+ debug: 4.4.3(supports-color@8.1.1)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
optionalDependencies:
- react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ react-native-web: 0.21.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
transitivePeerDependencies:
- supports-color
- expo-updates-interface@2.0.0(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
+ expo-updates-interface@57.0.1(expo@57.0.8):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
- expo-updates@29.0.17(patch_hash=04f28cb005b770e9ae8f0065eab96e43cbb1e58107f5f6ad1bdd18f6deb66487)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ expo-updates@57.0.10(patch_hash=04f28cb005b770e9ae8f0065eab96e43cbb1e58107f5f6ad1bdd18f6deb66487)(expo-dev-client@57.0.13(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)))(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1):
dependencies:
'@expo/code-signing-certificates': 0.0.6
- '@expo/plist': 0.4.8
- '@expo/spawn-async': 1.7.2
+ '@expo/plist': 0.8.1
+ '@expo/spawn-async': 1.8.0
arg: 4.1.0
chalk: 4.1.2
- debug: 4.4.3
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- expo-eas-client: 1.0.8
- expo-manifests: 1.0.11(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
- expo-structured-headers: 5.0.0
- expo-updates-interface: 2.0.0(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
+ debug: 4.4.3(supports-color@8.1.1)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ expo-eas-client: 57.0.1
+ expo-manifests: 57.0.1(expo@57.0.8)
+ expo-structured-headers: 57.0.0
+ expo-updates-interface: 57.0.1(expo@57.0.8)
getenv: 2.0.0
glob: 13.0.6
ignore: 5.3.2
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ nullthrows: 1.1.1
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
resolve-from: 5.0.0
+ optionalDependencies:
+ expo-dev-client: 57.0.13(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))
transitivePeerDependencies:
- supports-color
- expo-video-thumbnails@10.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
+ expo-video-thumbnails@57.0.1(expo@57.0.8):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
- expo-video@3.0.16(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ expo-video@57.0.2(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- expo-web-browser@15.0.11(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)):
+ expo-web-browser@57.0.2(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ expo@57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a):
dependencies:
'@babel/runtime': 7.29.2
- '@expo/cli': 54.0.25(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))
- '@expo/config': 12.0.13
- '@expo/config-plugins': 54.0.4
- '@expo/devtools': 0.1.8(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- '@expo/fingerprint': 0.15.5
- '@expo/metro': 54.2.0
- '@expo/metro-config': 54.0.16(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))
- '@expo/vector-icons': 15.1.1(expo-font@14.0.12(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ '@expo/cli': 57.0.16(190a2f1debf63fd2383c9ce3f4eda816)
+ '@expo/config': 57.0.8(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
+ '@expo/config-plugins': 57.0.8(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
+ '@expo/devtools': 57.0.1(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ '@expo/fingerprint': 0.20.8(supports-color@8.1.1)
+ '@expo/local-build-cache-provider': 57.0.6(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
+ '@expo/log-box': 57.0.3(@expo/dom-webview@57.0.1)(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ '@expo/metro': 56.0.0(supports-color@8.1.1)
+ '@expo/metro-config': 57.0.8(@typescript/typescript6@6.0.2)(expo@57.0.8)(supports-color@8.1.1)
'@ungap/structured-clone': 1.3.1
- babel-preset-expo: 54.0.12(@babel/core@7.29.0)(@babel/runtime@7.29.2)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-refresh@0.14.2)
- expo-asset: 12.0.13(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- expo-constants: 18.0.13(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))
- expo-file-system: 19.0.23(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))
- expo-font: 14.0.12(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- expo-keep-awake: 15.0.8(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react@19.1.0)
- expo-modules-autolinking: 3.0.26
- expo-modules-core: 3.0.30(patch_hash=952fb1c8cb6dc8a0d8ef4e1114942a341d89b025e011f1acfff788929997346e)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ babel-preset-expo: 57.0.7(@babel/core@7.29.0(supports-color@8.1.1))(@babel/runtime@7.29.2)(expo@57.0.8)(react-refresh@0.14.2)(supports-color@8.1.1)
+ expo-asset: 57.0.12(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1)
+ expo-constants: 57.0.12(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(supports-color@8.1.1)
+ expo-file-system: 57.0.4(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))
+ expo-font: 57.0.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ expo-keep-awake: 57.0.1(expo@57.0.8)(react@19.2.3)
+ expo-modules-autolinking: 57.0.10(@typescript/typescript6@6.0.2)(supports-color@8.1.1)
+ expo-modules-core: 57.0.8(patch_hash=86e57bb33bc6c3f7021e948e099c2b5378772147b92a82a16e2e90ddcb857ace)(c6ee2c3257efee1775b3ba0a37d05090)
pretty-format: 29.7.0
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
react-refresh: 0.14.2
- whatwg-url-without-unicode: 8.0.0-3
+ whatwg-url-minimum: 0.1.2
optionalDependencies:
- react-native-webview: 13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ '@expo/dom-webview': 57.0.1(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ react-dom: 19.2.3(react@19.2.3)
+ react-native-web: 0.21.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ react-native-webview: 13.17.0(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
transitivePeerDependencies:
- '@babel/core'
- bufferutil
- expo-router
- - graphql
+ - expo-widgets
+ - react-native-worklets
+ - react-server-dom-webpack
- supports-color
+ - typescript
- utf-8-validate
exponential-backoff@3.1.3: {}
- express@4.22.2:
+ express@4.22.2(supports-color@8.1.1):
dependencies:
accepts: 1.3.8
array-flatten: 1.1.1
- body-parser: 1.20.5
+ body-parser: 1.20.5(supports-color@8.1.1)
content-disposition: 0.5.4
content-type: 1.0.5
cookie: 0.7.2
cookie-signature: 1.0.7
- debug: 2.6.9
+ debug: 2.6.9(supports-color@8.1.1)
depd: 2.0.0
encodeurl: 2.0.0
escape-html: 1.0.3
etag: 1.8.1
- finalhandler: 1.3.2
+ finalhandler: 1.3.2(supports-color@8.1.1)
fresh: 0.5.2
http-errors: 2.0.1
merge-descriptors: 1.0.3
@@ -14912,8 +15484,8 @@ snapshots:
qs: 6.15.1
range-parser: 1.2.1
safe-buffer: 5.2.1
- send: 0.19.2
- serve-static: 1.16.3
+ send: 0.19.2(supports-color@8.1.1)
+ serve-static: 1.16.3(supports-color@8.1.1)
setprototypeof: 1.2.0
statuses: 2.0.2
type-is: 1.6.18
@@ -14943,6 +15515,9 @@ snapshots:
json-schema-ref-resolver: 3.0.0
rfdc: 1.4.1
+ fast-levenshtein@2.0.6:
+ optional: true
+
fast-text-encoding@1.0.6: {}
fast-uri@3.1.2: {}
@@ -14955,6 +15530,8 @@ snapshots:
dependencies:
websocket-driver: 0.7.4
+ fb-dotslash@0.5.8: {}
+
fb-watchman@2.0.2:
dependencies:
bser: 2.1.1
@@ -14977,11 +15554,18 @@ snapshots:
optionalDependencies:
picomatch: 4.0.4
- file-loader@6.2.0(webpack@5.106.2(postcss@8.5.14)):
+ fetch-nodeshim@0.4.10: {}
+
+ file-entry-cache@6.0.1:
+ dependencies:
+ flat-cache: 3.2.0
+ optional: true
+
+ file-loader@6.2.0(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)):
dependencies:
loader-utils: 2.0.4
schema-utils: 3.3.0
- webpack: 5.106.2(postcss@8.5.14)
+ webpack: 5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)
fill-range@7.1.1:
dependencies:
@@ -14989,9 +15573,9 @@ snapshots:
filter-obj@1.1.0: {}
- finalhandler@1.1.2:
+ finalhandler@1.1.2(supports-color@8.1.1):
dependencies:
- debug: 2.6.9
+ debug: 2.6.9(supports-color@8.1.1)
encodeurl: 1.0.2
escape-html: 1.0.3
on-finished: 2.3.0
@@ -15001,9 +15585,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- finalhandler@1.3.2:
+ finalhandler@1.3.2(supports-color@8.1.1):
dependencies:
- debug: 2.6.9
+ debug: 2.6.9(supports-color@8.1.1)
encodeurl: 2.0.0
escape-html: 1.0.3
on-finished: 2.4.1
@@ -15041,9 +15625,21 @@ snapshots:
dependencies:
micromatch: 4.0.8
+ flat-cache@3.2.0:
+ dependencies:
+ flatted: 3.4.4
+ keyv: 4.5.4
+ rimraf: 3.0.2
+ optional: true
+
+ flatted@3.4.4:
+ optional: true
+
flow-enums-runtime@0.0.6: {}
- follow-redirects@1.16.0: {}
+ follow-redirects@1.16.0(debug@4.4.3(supports-color@8.1.1)):
+ optionalDependencies:
+ debug: 4.4.3(supports-color@8.1.1)
fontfaceobserver@2.3.0: {}
@@ -15066,8 +15662,6 @@ snapshots:
forwarded@0.2.0: {}
- freeport-async@2.0.0: {}
-
fresh@0.5.2: {}
fs-extra@11.3.5:
@@ -15190,6 +15784,11 @@ snapshots:
minipass: 4.2.8
path-scurry: 1.11.1
+ globals@13.24.0:
+ dependencies:
+ type-fest: 0.20.2
+ optional: true
+
globals@17.6.0: {}
globalthis@1.0.4:
@@ -15218,6 +15817,9 @@ snapshots:
graceful-fs@4.2.11: {}
+ graphemer@1.4.0:
+ optional: true
+
gzip-size@6.0.0:
dependencies:
duplexer: 0.1.2
@@ -15250,27 +15852,13 @@ snapshots:
he@1.2.0: {}
- hermes-estree@0.25.1: {}
-
- hermes-estree@0.29.1: {}
-
- hermes-estree@0.32.0: {}
+ hermes-compiler@250829098.0.14: {}
hermes-estree@0.35.0: {}
hermes-estree@0.36.0: {}
- hermes-parser@0.25.1:
- dependencies:
- hermes-estree: 0.25.1
-
- hermes-parser@0.29.1:
- dependencies:
- hermes-estree: 0.29.1
-
- hermes-parser@0.32.0:
- dependencies:
- hermes-estree: 0.32.0
+ hermes-estree@0.36.1: {}
hermes-parser@0.35.0:
dependencies:
@@ -15280,6 +15868,10 @@ snapshots:
dependencies:
hermes-estree: 0.36.0
+ hermes-parser@0.36.1:
+ dependencies:
+ hermes-estree: 0.36.1
+
hls.js@1.6.16: {}
hoist-non-react-statics@3.3.2:
@@ -15315,7 +15907,7 @@ snapshots:
relateurl: 0.2.7
terser: 5.47.1
- html-webpack-plugin@5.6.7(webpack@5.106.2(postcss@8.5.14)):
+ html-webpack-plugin@5.6.7(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)):
dependencies:
'@types/html-minifier-terser': 6.1.0
html-minifier-terser: 6.1.0
@@ -15323,7 +15915,7 @@ snapshots:
pretty-error: 4.0.0
tapable: 2.3.3
optionalDependencies:
- webpack: 5.106.2(postcss@8.5.14)
+ webpack: 5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)
html2canvas@1.4.1:
dependencies:
@@ -15357,18 +15949,18 @@ snapshots:
http-parser-js@0.5.10: {}
- http-proxy-agent@5.0.0:
+ http-proxy-agent@5.0.0(supports-color@8.1.1):
dependencies:
'@tootallnate/once': 2.0.1
- agent-base: 6.0.2
- debug: 4.4.3
+ agent-base: 6.0.2(supports-color@8.1.1)
+ debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- http-proxy-middleware@2.0.9(@types/express@4.17.25):
+ http-proxy-middleware@2.0.9(@types/express@4.17.25)(debug@4.4.3(supports-color@8.1.1)):
dependencies:
'@types/http-proxy': 1.17.17
- http-proxy: 1.18.1
+ http-proxy: 1.18.1(debug@4.4.3(supports-color@8.1.1))
is-glob: 4.0.3
is-plain-obj: 3.0.0
micromatch: 4.0.8
@@ -15377,25 +15969,25 @@ snapshots:
transitivePeerDependencies:
- debug
- http-proxy@1.18.1:
+ http-proxy@1.18.1(debug@4.4.3(supports-color@8.1.1)):
dependencies:
eventemitter3: 4.0.7
- follow-redirects: 1.16.0
+ follow-redirects: 1.16.0(debug@4.4.3(supports-color@8.1.1))
requires-port: 1.0.0
transitivePeerDependencies:
- debug
- https-proxy-agent@5.0.1:
+ https-proxy-agent@5.0.1(supports-color@8.1.1):
dependencies:
- agent-base: 6.0.2
- debug: 4.4.3
+ agent-base: 6.0.2(supports-color@8.1.1)
+ debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- https-proxy-agent@7.0.6:
+ https-proxy-agent@7.0.6(supports-color@8.1.1):
dependencies:
agent-base: 7.1.4
- debug: 4.4.3
+ debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -15475,11 +16067,6 @@ snapshots:
is-alphabetical: 2.0.1
is-decimal: 2.0.1
- is-arguments@1.2.0:
- dependencies:
- call-bound: 1.0.4
- has-tostringtag: 1.0.2
-
is-array-buffer@3.0.5:
dependencies:
call-bind: 1.0.9
@@ -15566,11 +16153,6 @@ snapshots:
is-map@2.0.3: {}
- is-nan@1.3.2:
- dependencies:
- call-bind: 1.0.9
- define-properties: 1.2.1
-
is-negative-zero@2.0.3: {}
is-number-object@1.1.1:
@@ -15592,6 +16174,9 @@ snapshots:
dependencies:
path-is-inside: 1.0.2
+ is-path-inside@3.0.3:
+ optional: true
+
is-plain-obj@2.1.0: {}
is-plain-obj@3.0.0: {}
@@ -15655,9 +16240,9 @@ snapshots:
istanbul-lib-coverage@3.2.2: {}
- istanbul-lib-instrument@5.2.1:
+ istanbul-lib-instrument@5.2.1(supports-color@8.1.1):
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/parser': 7.29.3
'@istanbuljs/schema': 0.1.6
istanbul-lib-coverage: 3.2.2
@@ -15665,9 +16250,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- istanbul-lib-instrument@6.0.3:
+ istanbul-lib-instrument@6.0.3(supports-color@8.1.1):
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/parser': 7.29.3
'@istanbuljs/schema': 0.1.6
istanbul-lib-coverage: 3.2.2
@@ -15681,9 +16266,9 @@ snapshots:
make-dir: 4.0.0
supports-color: 7.2.0
- istanbul-lib-source-maps@4.0.1:
+ istanbul-lib-source-maps@4.0.1(supports-color@8.1.1):
dependencies:
- debug: 4.4.3
+ debug: 4.4.3(supports-color@8.1.1)
istanbul-lib-coverage: 3.2.2
source-map: 0.6.1
transitivePeerDependencies:
@@ -15710,10 +16295,10 @@ snapshots:
jest-util: 29.7.0
p-limit: 3.1.0
- jest-circus@29.7.0:
+ jest-circus@29.7.0(supports-color@8.1.1):
dependencies:
'@jest/environment': 29.7.0
- '@jest/expect': 29.7.0
+ '@jest/expect': 29.7.0(supports-color@8.1.1)
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
'@types/node': 24.12.4
@@ -15724,8 +16309,8 @@ snapshots:
jest-each: 29.7.0
jest-matcher-utils: 29.7.0
jest-message-util: 29.7.0
- jest-runtime: 29.7.0
- jest-snapshot: 29.7.0
+ jest-runtime: 29.7.0(supports-color@8.1.1)
+ jest-snapshot: 29.7.0(supports-color@8.1.1)
jest-util: 29.7.0
p-limit: 3.1.0
pretty-format: 29.7.0
@@ -15736,16 +16321,16 @@ snapshots:
- babel-plugin-macros
- supports-color
- jest-cli@29.7.0(@types/node@24.12.4):
+ jest-cli@29.7.0(@types/node@24.12.4)(supports-color@8.1.1):
dependencies:
- '@jest/core': 29.7.0
+ '@jest/core': 29.7.0(supports-color@8.1.1)
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
chalk: 4.1.2
- create-jest: 29.7.0(@types/node@24.12.4)
+ create-jest: 29.7.0(@types/node@24.12.4)(supports-color@8.1.1)
exit: 0.1.2
import-local: 3.2.0
- jest-config: 29.7.0(@types/node@24.12.4)
+ jest-config: 29.7.0(@types/node@24.12.4)(supports-color@8.1.1)
jest-util: 29.7.0
jest-validate: 29.7.0
yargs: 17.7.2
@@ -15755,23 +16340,23 @@ snapshots:
- supports-color
- ts-node
- jest-config@29.7.0(@types/node@24.12.4):
+ jest-config@29.7.0(@types/node@24.12.4)(supports-color@8.1.1):
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@jest/test-sequencer': 29.7.0
'@jest/types': 29.6.3
- babel-jest: 29.7.0(@babel/core@7.29.0)
+ babel-jest: 29.7.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
chalk: 4.1.2
ci-info: 3.9.0
deepmerge: 4.3.1
glob: 7.2.3
graceful-fs: 4.2.11
- jest-circus: 29.7.0
+ jest-circus: 29.7.0(supports-color@8.1.1)
jest-environment-node: 29.7.0
jest-get-type: 29.6.3
jest-regex-util: 29.6.3
jest-resolve: 29.7.0
- jest-runner: 29.7.0
+ jest-runner: 29.7.0(supports-color@8.1.1)
jest-util: 29.7.0
jest-validate: 29.7.0
micromatch: 4.0.8
@@ -15811,7 +16396,7 @@ snapshots:
jest-util: 29.7.0
pretty-format: 29.7.0
- jest-environment-jsdom@29.7.0:
+ jest-environment-jsdom@29.7.0(supports-color@8.1.1):
dependencies:
'@jest/environment': 29.7.0
'@jest/fake-timers': 29.7.0
@@ -15820,7 +16405,7 @@ snapshots:
'@types/node': 24.12.4
jest-mock: 29.7.0
jest-util: 29.7.0
- jsdom: 20.0.3
+ jsdom: 20.0.3(supports-color@8.1.1)
transitivePeerDependencies:
- bufferutil
- supports-color
@@ -15835,24 +16420,24 @@ snapshots:
jest-mock: 29.7.0
jest-util: 29.7.0
- jest-expo@54.0.17(@babel/core@7.29.0)(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(jest@29.7.0(@types/node@24.12.4))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ jest-expo@57.0.4(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(expo@57.0.8)(jest@29.7.0(@types/node@24.12.4)(supports-color@8.1.1))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1):
dependencies:
- '@expo/config': 12.0.13
- '@expo/json-file': 10.0.14
'@jest/create-cache-key-function': 29.7.0
- '@jest/globals': 29.7.0
- babel-jest: 29.7.0(@babel/core@7.29.0)
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- jest-environment-jsdom: 29.7.0
- jest-snapshot: 29.7.0
+ '@jest/globals': 29.7.0(supports-color@8.1.1)
+ '@react-native/jest-preset': 0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1)
+ babel-jest: 29.7.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ jest-environment-jsdom: 29.7.0(supports-color@8.1.1)
+ jest-snapshot: 29.7.0(supports-color@8.1.1)
jest-watch-select-projects: 2.0.0
- jest-watch-typeahead: 2.2.1(jest@29.7.0(@types/node@24.12.4))
+ jest-watch-typeahead: 2.2.1(jest@29.7.0(@types/node@24.12.4)(supports-color@8.1.1))
json5: 2.2.3
lodash: 4.18.1
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
- react-test-renderer: 19.1.0(react@19.1.0)
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+ react-test-renderer: 19.2.3(react@19.2.3)
server-only: 0.0.1
stacktrace-js: 2.0.2
+ optionalDependencies:
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
transitivePeerDependencies:
- '@babel/core'
- bufferutil
@@ -15951,10 +16536,10 @@ snapshots:
jest-regex-util@30.4.0: {}
- jest-resolve-dependencies@29.7.0:
+ jest-resolve-dependencies@29.7.0(supports-color@8.1.1):
dependencies:
jest-regex-util: 29.6.3
- jest-snapshot: 29.7.0
+ jest-snapshot: 29.7.0(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -15970,12 +16555,12 @@ snapshots:
resolve.exports: 2.0.3
slash: 3.0.0
- jest-runner@29.7.0:
+ jest-runner@29.7.0(supports-color@8.1.1):
dependencies:
'@jest/console': 29.7.0
'@jest/environment': 29.7.0
'@jest/test-result': 29.7.0
- '@jest/transform': 29.7.0
+ '@jest/transform': 29.7.0(supports-color@8.1.1)
'@jest/types': 29.6.3
'@types/node': 24.12.4
chalk: 4.1.2
@@ -15987,7 +16572,7 @@ snapshots:
jest-leak-detector: 29.7.0
jest-message-util: 29.7.0
jest-resolve: 29.7.0
- jest-runtime: 29.7.0
+ jest-runtime: 29.7.0(supports-color@8.1.1)
jest-util: 29.7.0
jest-watcher: 29.7.0
jest-worker: 29.7.0
@@ -15996,14 +16581,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
- jest-runtime@29.7.0:
+ jest-runtime@29.7.0(supports-color@8.1.1):
dependencies:
'@jest/environment': 29.7.0
'@jest/fake-timers': 29.7.0
- '@jest/globals': 29.7.0
+ '@jest/globals': 29.7.0(supports-color@8.1.1)
'@jest/source-map': 29.6.3
'@jest/test-result': 29.7.0
- '@jest/transform': 29.7.0
+ '@jest/transform': 29.7.0(supports-color@8.1.1)
'@jest/types': 29.6.3
'@types/node': 24.12.4
chalk: 4.1.2
@@ -16016,24 +16601,24 @@ snapshots:
jest-mock: 29.7.0
jest-regex-util: 29.6.3
jest-resolve: 29.7.0
- jest-snapshot: 29.7.0
+ jest-snapshot: 29.7.0(supports-color@8.1.1)
jest-util: 29.7.0
slash: 3.0.0
strip-bom: 4.0.0
transitivePeerDependencies:
- supports-color
- jest-snapshot@29.7.0:
+ jest-snapshot@29.7.0(supports-color@8.1.1):
dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/generator': 7.29.1
- '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
'@babel/types': 7.29.0
'@jest/expect-utils': 29.7.0
- '@jest/transform': 29.7.0
+ '@jest/transform': 29.7.0(supports-color@8.1.1)
'@jest/types': 29.6.3
- babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0)
+ babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0(supports-color@8.1.1))
chalk: 4.1.2
expect: 29.7.0
graceful-fs: 4.2.11
@@ -16081,11 +16666,11 @@ snapshots:
chalk: 3.0.0
prompts: 2.4.2
- jest-watch-typeahead@2.2.1(jest@29.7.0(@types/node@24.12.4)):
+ jest-watch-typeahead@2.2.1(jest@29.7.0(@types/node@24.12.4)(supports-color@8.1.1)):
dependencies:
ansi-escapes: 6.2.1
chalk: 4.1.2
- jest: 29.7.0(@types/node@24.12.4)
+ jest: 29.7.0(@types/node@24.12.4)(supports-color@8.1.1)
jest-regex-util: 29.6.3
jest-watcher: 29.7.0
slash: 5.1.0
@@ -16116,12 +16701,12 @@ snapshots:
merge-stream: 2.0.0
supports-color: 8.1.1
- jest@29.7.0(@types/node@24.12.4):
+ jest@29.7.0(@types/node@24.12.4)(supports-color@8.1.1):
dependencies:
- '@jest/core': 29.7.0
+ '@jest/core': 29.7.0(supports-color@8.1.1)
'@jest/types': 29.6.3
import-local: 3.2.0
- jest-cli: 29.7.0(@types/node@24.12.4)
+ jest-cli: 29.7.0(@types/node@24.12.4)(supports-color@8.1.1)
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -16149,7 +16734,7 @@ snapshots:
jsc-safe-url@0.2.4: {}
- jsdom@20.0.3:
+ jsdom@20.0.3(supports-color@8.1.1):
dependencies:
abab: 2.0.6
acorn: 8.16.0
@@ -16162,8 +16747,8 @@ snapshots:
escodegen: 2.1.0
form-data: 4.0.5
html-encoding-sniffer: 3.0.0
- http-proxy-agent: 5.0.0
- https-proxy-agent: 5.0.1
+ http-proxy-agent: 5.0.0(supports-color@8.1.1)
+ https-proxy-agent: 5.0.1(supports-color@8.1.1)
is-potential-custom-element-name: 1.0.1
nwsapi: 2.2.23
parse5: 7.3.0
@@ -16184,6 +16769,9 @@ snapshots:
jsesc@3.1.0: {}
+ json-buffer@3.0.1:
+ optional: true
+
json-parse-even-better-errors@2.3.1: {}
json-schema-ref-resolver@3.0.0:
@@ -16194,6 +16782,9 @@ snapshots:
json-schema-traverse@1.0.0: {}
+ json-stable-stringify-without-jsonify@1.0.1:
+ optional: true
+
json5@2.2.3: {}
jsonfile@6.2.1:
@@ -16211,6 +16802,11 @@ snapshots:
jwt-decode@4.0.0: {}
+ keyv@4.5.4:
+ dependencies:
+ json-buffer: 3.0.1
+ optional: true
+
kleur@3.0.3: {}
lan-network@0.2.1: {}
@@ -16226,11 +16822,17 @@ snapshots:
leven@3.1.0: {}
+ levn@0.4.1:
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ optional: true
+
libphonenumber-js@1.13.1: {}
- lighthouse-logger@1.4.2:
+ lighthouse-logger@1.4.2(supports-color@8.1.1):
dependencies:
- debug: 2.6.9
+ debug: 2.6.9(supports-color@8.1.1)
marky: 1.3.0
transitivePeerDependencies:
- supports-color
@@ -16336,6 +16938,9 @@ snapshots:
lodash.memoize@4.1.2: {}
+ lodash.merge@4.6.2:
+ optional: true
+
lodash.shuffle@4.2.0: {}
lodash.throttle@4.1.1: {}
@@ -16449,18 +17054,9 @@ snapshots:
methods@1.1.2: {}
- metro-babel-transformer@0.83.3:
+ metro-babel-transformer@0.84.4(supports-color@8.1.1):
dependencies:
- '@babel/core': 7.29.0
- flow-enums-runtime: 0.0.6
- hermes-parser: 0.32.0
- nullthrows: 1.1.1
- transitivePeerDependencies:
- - supports-color
-
- metro-babel-transformer@0.84.4:
- dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
flow-enums-runtime: 0.0.6
hermes-parser: 0.35.0
metro-cache-key: 0.84.4
@@ -16468,54 +17064,26 @@ snapshots:
transitivePeerDependencies:
- supports-color
- metro-cache-key@0.83.3:
- dependencies:
- flow-enums-runtime: 0.0.6
-
metro-cache-key@0.84.4:
dependencies:
flow-enums-runtime: 0.0.6
- metro-cache@0.83.3:
+ metro-cache@0.84.4(supports-color@8.1.1):
dependencies:
exponential-backoff: 3.1.3
flow-enums-runtime: 0.0.6
- https-proxy-agent: 7.0.6
- metro-core: 0.83.3
- transitivePeerDependencies:
- - supports-color
-
- metro-cache@0.84.4:
- dependencies:
- exponential-backoff: 3.1.3
- flow-enums-runtime: 0.0.6
- https-proxy-agent: 7.0.6
+ https-proxy-agent: 7.0.6(supports-color@8.1.1)
metro-core: 0.84.4
transitivePeerDependencies:
- supports-color
- metro-config@0.83.3:
+ metro-config@0.84.4(supports-color@8.1.1):
dependencies:
- connect: 3.7.0
+ connect: 3.7.0(supports-color@8.1.1)
flow-enums-runtime: 0.0.6
jest-validate: 29.7.0
- metro: 0.83.3
- metro-cache: 0.83.3
- metro-core: 0.83.3
- metro-runtime: 0.83.3
- yaml: 2.9.0
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
-
- metro-config@0.84.4:
- dependencies:
- connect: 3.7.0
- flow-enums-runtime: 0.0.6
- jest-validate: 29.7.0
- metro: 0.84.4
- metro-cache: 0.84.4
+ metro: 0.84.4(supports-color@8.1.1)
+ metro-cache: 0.84.4(supports-color@8.1.1)
metro-core: 0.84.4
metro-runtime: 0.84.4
yaml: 2.9.0
@@ -16524,21 +17092,15 @@ snapshots:
- supports-color
- utf-8-validate
- metro-core@0.83.3:
- dependencies:
- flow-enums-runtime: 0.0.6
- lodash.throttle: 4.1.1
- metro-resolver: 0.83.3
-
metro-core@0.84.4:
dependencies:
flow-enums-runtime: 0.0.6
lodash.throttle: 4.1.1
metro-resolver: 0.84.4
- metro-file-map@0.83.3:
+ metro-file-map@0.84.4(supports-color@8.1.1):
dependencies:
- debug: 4.4.3
+ debug: 4.4.3(supports-color@8.1.1)
fb-watchman: 2.0.2
flow-enums-runtime: 0.0.6
graceful-fs: 4.2.11
@@ -16550,70 +17112,27 @@ snapshots:
transitivePeerDependencies:
- supports-color
- metro-file-map@0.84.4:
- dependencies:
- debug: 4.4.3
- fb-watchman: 2.0.2
- flow-enums-runtime: 0.0.6
- graceful-fs: 4.2.11
- invariant: 2.2.4
- jest-worker: 29.7.0
- micromatch: 4.0.8
- nullthrows: 1.1.1
- walker: 1.0.8
- transitivePeerDependencies:
- - supports-color
-
- metro-minify-terser@0.83.3:
- dependencies:
- flow-enums-runtime: 0.0.6
- terser: 5.47.1
-
metro-minify-terser@0.84.4:
dependencies:
flow-enums-runtime: 0.0.6
terser: 5.47.1
- metro-resolver@0.83.3:
- dependencies:
- flow-enums-runtime: 0.0.6
-
metro-resolver@0.84.4:
dependencies:
flow-enums-runtime: 0.0.6
- metro-runtime@0.83.3:
- dependencies:
- '@babel/runtime': 7.29.2
- flow-enums-runtime: 0.0.6
-
metro-runtime@0.84.4:
dependencies:
'@babel/runtime': 7.29.2
flow-enums-runtime: 0.0.6
- metro-source-map@0.83.3:
+ metro-source-map@0.84.4(supports-color@8.1.1):
dependencies:
- '@babel/traverse': 7.29.0
- '@babel/traverse--for-generate-function-map': '@babel/traverse@7.29.0'
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
'@babel/types': 7.29.0
flow-enums-runtime: 0.0.6
invariant: 2.2.4
- metro-symbolicate: 0.83.3
- nullthrows: 1.1.1
- ob1: 0.83.3
- source-map: 0.5.7
- vlq: 1.0.1
- transitivePeerDependencies:
- - supports-color
-
- metro-source-map@0.84.4:
- dependencies:
- '@babel/traverse': 7.29.0
- '@babel/types': 7.29.0
- flow-enums-runtime: 0.0.6
- invariant: 2.2.4
- metro-symbolicate: 0.84.4
+ metro-symbolicate: 0.84.4(supports-color@8.1.1)
nullthrows: 1.1.1
ob1: 0.84.4
source-map: 0.5.7
@@ -16621,150 +17140,61 @@ snapshots:
transitivePeerDependencies:
- supports-color
- metro-symbolicate@0.83.3:
+ metro-symbolicate@0.84.4(supports-color@8.1.1):
dependencies:
flow-enums-runtime: 0.0.6
invariant: 2.2.4
- metro-source-map: 0.83.3
+ metro-source-map: 0.84.4(supports-color@8.1.1)
nullthrows: 1.1.1
source-map: 0.5.7
vlq: 1.0.1
transitivePeerDependencies:
- supports-color
- metro-symbolicate@0.84.4:
+ metro-transform-plugins@0.84.4(supports-color@8.1.1):
dependencies:
- flow-enums-runtime: 0.0.6
- invariant: 2.2.4
- metro-source-map: 0.84.4
- nullthrows: 1.1.1
- source-map: 0.5.7
- vlq: 1.0.1
- transitivePeerDependencies:
- - supports-color
-
- metro-transform-plugins@0.83.3:
- dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/generator': 7.29.1
'@babel/template': 7.28.6
- '@babel/traverse': 7.29.0
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
flow-enums-runtime: 0.0.6
nullthrows: 1.1.1
transitivePeerDependencies:
- supports-color
- metro-transform-plugins@0.84.4:
+ metro-transform-worker@0.84.4(supports-color@8.1.1):
dependencies:
- '@babel/core': 7.29.0
- '@babel/generator': 7.29.1
- '@babel/template': 7.28.6
- '@babel/traverse': 7.29.0
- flow-enums-runtime: 0.0.6
- nullthrows: 1.1.1
- transitivePeerDependencies:
- - supports-color
-
- metro-transform-worker@0.83.3:
- dependencies:
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/generator': 7.29.1
'@babel/parser': 7.29.3
'@babel/types': 7.29.0
flow-enums-runtime: 0.0.6
- metro: 0.83.3
- metro-babel-transformer: 0.83.3
- metro-cache: 0.83.3
- metro-cache-key: 0.83.3
- metro-minify-terser: 0.83.3
- metro-source-map: 0.83.3
- metro-transform-plugins: 0.83.3
- nullthrows: 1.1.1
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
-
- metro-transform-worker@0.84.4:
- dependencies:
- '@babel/core': 7.29.0
- '@babel/generator': 7.29.1
- '@babel/parser': 7.29.3
- '@babel/types': 7.29.0
- flow-enums-runtime: 0.0.6
- metro: 0.84.4
- metro-babel-transformer: 0.84.4
- metro-cache: 0.84.4
+ metro: 0.84.4(supports-color@8.1.1)
+ metro-babel-transformer: 0.84.4(supports-color@8.1.1)
+ metro-cache: 0.84.4(supports-color@8.1.1)
metro-cache-key: 0.84.4
metro-minify-terser: 0.84.4
- metro-source-map: 0.84.4
- metro-transform-plugins: 0.84.4
+ metro-source-map: 0.84.4(supports-color@8.1.1)
+ metro-transform-plugins: 0.84.4(supports-color@8.1.1)
nullthrows: 1.1.1
transitivePeerDependencies:
- bufferutil
- supports-color
- utf-8-validate
- metro@0.83.3:
+ metro@0.84.4(supports-color@8.1.1):
dependencies:
'@babel/code-frame': 7.29.0
- '@babel/core': 7.29.0
+ '@babel/core': 7.29.0(supports-color@8.1.1)
'@babel/generator': 7.29.1
'@babel/parser': 7.29.3
'@babel/template': 7.28.6
- '@babel/traverse': 7.29.0
- '@babel/types': 7.29.0
- accepts: 1.3.8
- chalk: 4.1.2
- ci-info: 2.0.0
- connect: 3.7.0
- debug: 4.4.3
- error-stack-parser: 2.1.4
- flow-enums-runtime: 0.0.6
- graceful-fs: 4.2.11
- hermes-parser: 0.32.0
- image-size: 1.2.1
- invariant: 2.2.4
- jest-worker: 29.7.0
- jsc-safe-url: 0.2.4
- lodash.throttle: 4.1.1
- metro-babel-transformer: 0.83.3
- metro-cache: 0.83.3
- metro-cache-key: 0.83.3
- metro-config: 0.83.3
- metro-core: 0.83.3
- metro-file-map: 0.83.3
- metro-resolver: 0.83.3
- metro-runtime: 0.83.3
- metro-source-map: 0.83.3
- metro-symbolicate: 0.83.3
- metro-transform-plugins: 0.83.3
- metro-transform-worker: 0.83.3
- mime-types: 2.1.35
- nullthrows: 1.1.1
- serialize-error: 2.1.0
- source-map: 0.5.7
- throat: 5.0.0
- ws: 7.5.10
- yargs: 17.7.2
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
-
- metro@0.84.4:
- dependencies:
- '@babel/code-frame': 7.29.0
- '@babel/core': 7.29.0
- '@babel/generator': 7.29.1
- '@babel/parser': 7.29.3
- '@babel/template': 7.28.6
- '@babel/traverse': 7.29.0
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
'@babel/types': 7.29.0
accepts: 2.0.0
ci-info: 2.0.0
- connect: 3.7.0
- debug: 4.4.3
+ connect: 3.7.0(supports-color@8.1.1)
+ debug: 4.4.3(supports-color@8.1.1)
error-stack-parser: 2.1.4
flow-enums-runtime: 0.0.6
graceful-fs: 4.2.11
@@ -16774,18 +17204,18 @@ snapshots:
jest-worker: 29.7.0
jsc-safe-url: 0.2.4
lodash.throttle: 4.1.1
- metro-babel-transformer: 0.84.4
- metro-cache: 0.84.4
+ metro-babel-transformer: 0.84.4(supports-color@8.1.1)
+ metro-cache: 0.84.4(supports-color@8.1.1)
metro-cache-key: 0.84.4
- metro-config: 0.84.4
+ metro-config: 0.84.4(supports-color@8.1.1)
metro-core: 0.84.4
- metro-file-map: 0.84.4
+ metro-file-map: 0.84.4(supports-color@8.1.1)
metro-resolver: 0.84.4
metro-runtime: 0.84.4
- metro-source-map: 0.84.4
- metro-symbolicate: 0.84.4
- metro-transform-plugins: 0.84.4
- metro-transform-worker: 0.84.4
+ metro-source-map: 0.84.4(supports-color@8.1.1)
+ metro-symbolicate: 0.84.4(supports-color@8.1.1)
+ metro-transform-plugins: 0.84.4(supports-color@8.1.1)
+ metro-transform-worker: 0.84.4(supports-color@8.1.1)
mime-types: 3.0.2
nullthrows: 1.1.1
serialize-error: 2.1.0
@@ -16825,11 +17255,11 @@ snapshots:
min-indent@1.0.1: {}
- mini-css-extract-plugin@2.10.2(webpack@5.106.2(postcss@8.5.14)):
+ mini-css-extract-plugin@2.10.2(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)):
dependencies:
schema-utils: 4.3.3
tapable: 2.3.3
- webpack: 5.106.2(postcss@8.5.14)
+ webpack: 5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)
minimalistic-assert@1.0.1: {}
@@ -16876,11 +17306,7 @@ snapshots:
multiformats@13.4.2: {}
- mz@2.7.0:
- dependencies:
- any-promise: 1.3.0
- object-assign: 4.1.1
- thenify-all: 1.6.0
+ multitars@1.0.2: {}
nanoid@3.3.12: {}
@@ -16896,8 +17322,6 @@ snapshots:
neo-async@2.6.2: {}
- nested-error-stacks@2.0.1: {}
-
no-case@3.0.4:
dependencies:
lower-case: 2.0.2
@@ -16918,7 +17342,7 @@ snapshots:
node-releases@2.0.44: {}
- node@runtime:24.18.0: {}
+ node@runtime:24.19.0: {}
normalize-path@3.0.0: {}
@@ -16945,10 +17369,6 @@ snapshots:
nwsapi@2.2.23: {}
- ob1@0.83.3:
- dependencies:
- flow-enums-runtime: 0.0.6
-
ob1@0.84.4:
dependencies:
flow-enums-runtime: 0.0.6
@@ -16957,11 +17377,6 @@ snapshots:
object-inspect@1.13.4: {}
- object-is@1.1.6:
- dependencies:
- call-bind: 1.0.9
- define-properties: 1.2.1
-
object-keys@1.1.1: {}
object.assign@4.1.7:
@@ -16984,6 +17399,8 @@ snapshots:
obuf@1.1.2: {}
+ on-exit-leak-free@2.1.2: {}
+
on-finished@2.3.0:
dependencies:
ee-first: 1.1.1
@@ -17023,6 +17440,16 @@ snapshots:
opener@1.5.2: {}
+ optionator@0.9.4:
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.5
+ optional: true
+
ora@3.4.0:
dependencies:
chalk: 2.4.2
@@ -17146,6 +17573,8 @@ snapshots:
no-case: 3.0.4
tslib: 2.8.1
+ path-browserify@1.0.1: {}
+
path-exists@3.0.0: {}
path-exists@4.0.0: {}
@@ -17190,6 +17619,26 @@ snapshots:
pinkie@2.0.4: {}
+ pino-abstract-transport@3.0.0:
+ dependencies:
+ split2: 4.2.0
+
+ pino-std-serializers@7.1.0: {}
+
+ pino@10.3.1:
+ dependencies:
+ '@pinojs/redact': 0.4.0
+ atomic-sleep: 1.0.0
+ on-exit-leak-free: 2.1.2
+ pino-abstract-transport: 3.0.0
+ pino-std-serializers: 7.1.0
+ process-warning: 5.1.0
+ quick-format-unescaped: 4.0.4
+ real-require: 0.2.0
+ safe-stable-stringify: 2.5.0
+ sonic-boom: 4.2.1
+ thread-stream: 4.2.0
+
pirates@4.0.7: {}
pkg-dir@4.2.0:
@@ -17395,21 +17844,16 @@ snapshots:
postcss-value-parser@4.2.0: {}
- postcss@8.4.49:
- dependencies:
- nanoid: 3.3.12
- picocolors: 1.1.1
- source-map-js: 1.2.1
-
postcss@8.5.14:
dependencies:
nanoid: 3.3.12
picocolors: 1.1.1
source-map-js: 1.2.1
- prettier@3.8.3: {}
+ prelude-ls@1.2.1:
+ optional: true
- pretty-bytes@5.6.0: {}
+ prettier@3.9.6: {}
pretty-error@4.0.0:
dependencies:
@@ -17433,6 +17877,8 @@ snapshots:
process-nextick-args@2.0.1: {}
+ process-warning@5.1.0: {}
+
progress@2.0.3: {}
promise@7.3.1:
@@ -17576,8 +18022,6 @@ snapshots:
pure-rand@6.1.0: {}
- qrcode-terminal@0.11.0: {}
-
qrcode@1.5.4:
dependencies:
dijkstrajs: 1.0.3
@@ -17603,68 +18047,70 @@ snapshots:
dependencies:
inherits: 2.0.4
- radix-ui@1.4.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
+ quick-format-unescaped@4.0.4: {}
+
+ radix-ui@1.4.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
dependencies:
'@radix-ui/primitive': 1.1.3
- '@radix-ui/react-accessible-icon': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-alert-dialog': 1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-aspect-ratio': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-avatar': 1.1.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-checkbox': 1.3.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-context-menu': 2.2.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-dropdown-menu': 2.1.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-form': 0.1.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-hover-card': 1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-label': 2.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-menubar': 1.1.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-one-time-password-field': 0.1.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-password-toggle-field': 0.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-progress': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-radio-group': 1.3.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-select': 2.2.6(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-separator': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-slider': 1.3.6(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-switch': 1.2.6(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-toast': 1.2.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-toggle-group': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-toolbar': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-tooltip': 1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.17)(react@19.1.0)
- '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ '@radix-ui/react-accessible-icon': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-alert-dialog': 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-aspect-ratio': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-avatar': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-checkbox': 1.3.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context': 1.1.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-context-menu': 2.2.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-direction': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-dropdown-menu': 2.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-form': 0.1.8(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-hover-card': 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-label': 2.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-menubar': 1.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-one-time-password-field': 0.1.8(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-password-toggle-field': 0.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-progress': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-radio-group': 1.3.8(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-select': 2.2.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-separator': 1.1.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-slider': 1.3.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-slot': 1.2.3(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-switch': 1.2.6(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-toast': 1.2.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-toggle-group': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-toolbar': 1.1.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-tooltip': 1.2.8(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.18)(react@19.2.3)
+ '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
- '@types/react-dom': 19.1.11(@types/react@19.1.17)
+ '@types/react': 19.2.18
+ '@types/react-dom': 19.2.4(@types/react@19.2.18)
randombytes@2.1.0:
dependencies:
@@ -17686,9 +18132,9 @@ snapshots:
minimist: 1.2.8
strip-json-comments: 2.0.1
- react-compiler-runtime@19.1.0-rc.3(react@19.1.0):
+ react-compiler-runtime@1.0.0(react@19.2.3):
dependencies:
- react: 19.1.0
+ react: 19.2.3
react-devtools-core@6.1.5:
dependencies:
@@ -17698,25 +18144,25 @@ snapshots:
- bufferutil
- utf-8-validate
- react-dom@19.1.0(react@19.1.0):
+ react-dom@19.2.3(react@19.2.3):
dependencies:
- react: 19.1.0
- scheduler: 0.26.0
+ react: 19.2.3
+ scheduler: 0.27.0
react-fast-compare@3.2.2: {}
- react-freeze@1.0.4(react@19.1.0):
+ react-freeze@1.0.4(react@19.2.3):
dependencies:
- react: 19.1.0
+ react: 19.2.3
- react-hotkeys-hook@5.2.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
+ react-hotkeys-hook@5.2.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
dependencies:
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
- react-image-crop@11.0.10(react@19.1.0):
+ react-image-crop@11.0.10(react@19.2.3):
dependencies:
- react: 19.1.0
+ react: 19.2.3
react-is@16.13.1: {}
@@ -17724,212 +18170,216 @@ snapshots:
react-is@19.2.6: {}
- react-keyed-flatten-children@5.1.2(react-is@19.2.6)(react@19.1.0):
+ react-keyed-flatten-children@5.1.2(react-is@19.2.6)(react@19.2.3):
dependencies:
- react: 19.1.0
+ react: 19.2.3
react-is: 19.2.6
- react-native-compressor@1.13.0(patch_hash=58379dfaace6ced8590cb341c77f2ca8099dfa8f7df6297032ec51de767a9925)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ react-native-compressor@1.13.0(patch_hash=58379dfaace6ced8590cb341c77f2ca8099dfa8f7df6297032ec51de767a9925)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- react-native-date-picker@5.0.13(patch_hash=92943fb79d17d7342a29bbb12b0d8ee3cf6f7bca12ed322dc8d124a3e9fb75bd)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ react-native-date-picker@5.0.13(patch_hash=92943fb79d17d7342a29bbb12b0d8ee3cf6f7bca12ed322dc8d124a3e9fb75bd)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- react-native-device-attest@0.1.6(expo@54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ react-native-device-attest@0.1.6(expo@57.0.8)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
- expo: 54.0.35(@babel/core@7.29.0)(react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ expo: 57.0.8(patch_hash=1722861d12907a2d412d04230545b2fcbfa5547a79f99d763cb3e8de6f3a6f2a)(b32afa45429c882ad113a248f683620a)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- react-native-dotenv@3.4.11(@babel/runtime@7.29.2):
+ react-native-dotenv@3.4.11(patch_hash=16b34eb974399935d3cf7c2526534f906991ccd876215176658347059cdd2021)(@babel/runtime@7.29.2):
dependencies:
'@babel/runtime': 7.29.2
dotenv: 16.6.1
- react-native-drawer-layout@4.2.3(patch_hash=74f2c043cc22ab87054f219e7c7373a509b779b18bfa79d27e7d051d73355130)(f8669ab0fde0772e831a7516fba74dd4):
+ react-native-drawer-layout@4.2.3(patch_hash=74f2c043cc22ab87054f219e7c7373a509b779b18bfa79d27e7d051d73355130)(ac885d87795f1c83dff851cd6dfdabcc):
dependencies:
color: 4.2.3
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
- react-native-gesture-handler: 2.30.1(patch_hash=39b9e51b3977fae8ff61764b8c32934fe3fbddaf21587b4661fd73b7c6dd325b)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react-native-reanimated: 4.3.2(patch_hash=ab1c095bc473ec5bfd9ead76e870c566660e355e11c5078cfdeb35922d7b2f05)(react-native-worklets@0.8.3(patch_hash=f7263a59ae1c0170af8dfe9a5704cb374d29214a430b4b2841f9b7886c9ba8ad)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- use-latest-callback: 0.2.6(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+ react-native-gesture-handler: 2.32.0(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ react-native-reanimated: 4.5.3(patch_hash=cb7a94c574c89fae48a259ea1ba4c4c97b1db634237336237805491b7c1234de)(c6ee2c3257efee1775b3ba0a37d05090)
+ use-latest-callback: 0.2.6(react@19.2.3)
- react-native-edge-to-edge@1.8.1(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ react-native-edge-to-edge@1.8.1(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- react-native-gesture-handler@2.30.1(patch_hash=39b9e51b3977fae8ff61764b8c32934fe3fbddaf21587b4661fd73b7c6dd325b)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ react-native-gesture-handler@2.32.0(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
'@egjs/hammerjs': 2.0.17
+ '@types/react-test-renderer': 19.1.0
hoist-non-react-statics: 3.3.2
invariant: 2.2.4
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- react-native-is-edge-to-edge@1.3.1(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ react-native-is-edge-to-edge@1.3.1(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- ? react-native-keyboard-controller@1.21.8(patch_hash=ac52bf7502ff3ad34a8594b5e1a916b96bf87a2523b6abc87c31f03607d52271)(react-native-reanimated@4.3.2(patch_hash=ab1c095bc473ec5bfd9ead76e870c566660e355e11c5078cfdeb35922d7b2f05)(react-native-worklets@0.8.3(patch_hash=f7263a59ae1c0170af8dfe9a5704cb374d29214a430b4b2841f9b7886c9ba8ad)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- : dependencies:
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
- react-native-is-edge-to-edge: 1.3.1(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react-native-reanimated: 4.3.2(patch_hash=ab1c095bc473ec5bfd9ead76e870c566660e355e11c5078cfdeb35922d7b2f05)(react-native-worklets@0.8.3(patch_hash=f7263a59ae1c0170af8dfe9a5704cb374d29214a430b4b2841f9b7886c9ba8ad)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
-
- react-native-mmkv@3.3.3(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ react-native-keyboard-controller@1.21.9(patch_hash=ac52bf7502ff3ad34a8594b5e1a916b96bf87a2523b6abc87c31f03607d52271)(react-native-reanimated@4.5.3(patch_hash=cb7a94c574c89fae48a259ea1ba4c4c97b1db634237336237805491b7c1234de)(c6ee2c3257efee1775b3ba0a37d05090))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+ react-native-is-edge-to-edge: 1.3.1(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ react-native-reanimated: 4.5.3(patch_hash=cb7a94c574c89fae48a259ea1ba4c4c97b1db634237336237805491b7c1234de)(c6ee2c3257efee1775b3ba0a37d05090)
- react-native-pager-view@6.8.0(patch_hash=c8316acd33c9aef6531e8c272c2bfab7bd02af1255969eeaab2bad5ab48531cc)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ react-native-mmkv@3.3.3(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- react-native-progress@5.0.1(react-native-svg@15.12.1(patch_hash=ae309e9542214f5ae54935e253dedd236765feedac7be343f81d532d7fe09310)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)):
+ react-native-pager-view@6.8.0(patch_hash=c8316acd33c9aef6531e8c272c2bfab7bd02af1255969eeaab2bad5ab48531cc)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
+ dependencies:
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+
+ react-native-progress@5.0.1(react-native-svg@15.15.4(patch_hash=ae309e9542214f5ae54935e253dedd236765feedac7be343f81d532d7fe09310)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)):
dependencies:
prop-types: 15.8.1
- react-native-svg: 15.12.1(patch_hash=ae309e9542214f5ae54935e253dedd236765feedac7be343f81d532d7fe09310)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ react-native-svg: 15.15.4(patch_hash=ae309e9542214f5ae54935e253dedd236765feedac7be343f81d532d7fe09310)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
- react-native-qrcode-styled@0.3.3(react-native-svg@15.12.1(patch_hash=ae309e9542214f5ae54935e253dedd236765feedac7be343f81d532d7fe09310)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ react-native-qrcode-styled@0.3.3(react-native-svg@15.15.4(patch_hash=ae309e9542214f5ae54935e253dedd236765feedac7be343f81d532d7fe09310)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
qrcode: 1.5.4
- react: 19.1.0
+ react: 19.2.3
react-fast-compare: 3.2.2
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
- react-native-svg: 15.12.1(patch_hash=ae309e9542214f5ae54935e253dedd236765feedac7be343f81d532d7fe09310)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+ react-native-svg: 15.15.4(patch_hash=ae309e9542214f5ae54935e253dedd236765feedac7be343f81d532d7fe09310)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
- react-native-reanimated@4.3.2(patch_hash=ab1c095bc473ec5bfd9ead76e870c566660e355e11c5078cfdeb35922d7b2f05)(react-native-worklets@0.8.3(patch_hash=f7263a59ae1c0170af8dfe9a5704cb374d29214a430b4b2841f9b7886c9ba8ad)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ react-native-reanimated@4.5.3(patch_hash=cb7a94c574c89fae48a259ea1ba4c4c97b1db634237336237805491b7c1234de)(c6ee2c3257efee1775b3ba0a37d05090):
dependencies:
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
- react-native-is-edge-to-edge: 1.3.1(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react-native-worklets: 0.8.3(patch_hash=f7263a59ae1c0170af8dfe9a5704cb374d29214a430b4b2841f9b7886c9ba8ad)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+ react-native-is-edge-to-edge: 1.3.1(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ react-native-worklets: 0.11.3(patch_hash=8ebbcf528fc731459ac4a4eff612a50dfb7e24462a9df201e4aaa81a201343f0)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1)
semver: 7.8.0
- react-native-safe-area-context@5.6.2(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ react-native-safe-area-context@5.7.0(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- react-native-screens@4.24.0(patch_hash=74a74b489f8074a1974c2792c9c97aec30d8e251669aa37fc5c99993bb4a19e6)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ react-native-screens@4.26.2(patch_hash=ba3295d44434a729f143a6b2c24e4a9b2f911ab200b2bc47e46cdfeaa1536f7c)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
- react: 19.1.0
- react-freeze: 1.0.4(react@19.1.0)
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-freeze: 1.0.4(react@19.2.3)
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
warn-once: 0.1.1
- react-native-svg@15.12.1(patch_hash=ae309e9542214f5ae54935e253dedd236765feedac7be343f81d532d7fe09310)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ react-native-svg@15.15.4(patch_hash=ae309e9542214f5ae54935e253dedd236765feedac7be343f81d532d7fe09310)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
css-select: 5.2.2
css-tree: 1.1.3
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
warn-once: 0.1.1
react-native-uuid@2.0.4: {}
- react-native-view-shot@4.0.3(patch_hash=a2457dc30a82cc8c21f371a6f860d9396d450a2a1b4265b1a4ee13bdb24d3268)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ react-native-view-shot@5.1.1(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
html2canvas: 1.4.1
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- react-native-web-webview@1.0.2(file-loader@6.2.0(webpack@5.106.2(postcss@8.5.14)))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)):
+ react-native-web-webview@1.0.2(file-loader@6.2.0(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)))(react-native-web@0.21.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)):
dependencies:
- file-loader: 6.2.0(webpack@5.106.2(postcss@8.5.14))
+ file-loader: 6.2.0(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))
qs: 6.15.1
- react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ react-native-web: 0.21.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
- react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
+ react-native-web@0.21.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
dependencies:
'@babel/runtime': 7.29.2
- '@react-native/normalize-colors': 0.81.5
+ '@react-native/normalize-colors': 0.86.0
fbjs: 3.0.5
inline-style-prefixer: 7.0.1
memoize-one: 6.0.0
nullthrows: 1.1.1
postcss-value-parser: 4.2.0
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
styleq: 0.1.3
transitivePeerDependencies:
- encoding
- react-native-webview@13.15.0(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ react-native-webview@13.17.0(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3):
dependencies:
+ '@typescript/native-preview': 7.0.0-dev.20260707.2
escape-string-regexp: 4.0.0
invariant: 2.2.4
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
- react-native-worklets@0.8.3(patch_hash=f7263a59ae1c0170af8dfe9a5704cb374d29214a430b4b2841f9b7886c9ba8ad)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0):
+ react-native-worklets@0.11.3(patch_hash=8ebbcf528fc731459ac4a4eff612a50dfb7e24462a9df201e4aaa81a201343f0)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1):
dependencies:
- '@babel/core': 7.29.0
- '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0)
- '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.29.0)
- '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0)
- '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0)
- '@react-native/metro-config': 0.86.0(@babel/core@7.29.0)
+ '@babel/core': 7.29.0(supports-color@8.1.1)
+ '@babel/generator': 7.29.1
+ '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0(supports-color@8.1.1))
+ '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
+ '@babel/traverse': 7.29.0(supports-color@8.1.1)
+ '@babel/types': 7.29.0
+ '@react-native/metro-config': 0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1)
convert-source-map: 2.0.0
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
semver: 7.8.0
transitivePeerDependencies:
- supports-color
- react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0):
+ react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1):
dependencies:
- '@jest/create-cache-key-function': 29.7.0
- '@react-native/assets-registry': 0.81.5
- '@react-native/codegen': 0.81.5(@babel/core@7.29.0)
- '@react-native/community-cli-plugin': 0.81.5(@react-native/metro-config@0.86.0(@babel/core@7.29.0))
- '@react-native/gradle-plugin': 0.81.5
- '@react-native/js-polyfills': 0.81.5
- '@react-native/normalize-colors': 0.81.5
- '@react-native/virtualized-lists': 0.81.5(@types/react@19.1.17)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ '@react-native/assets-registry': 0.86.0
+ '@react-native/codegen': 0.86.0(@babel/core@7.29.0(supports-color@8.1.1))
+ '@react-native/community-cli-plugin': 0.86.0(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(supports-color@8.1.1)
+ '@react-native/gradle-plugin': 0.86.0
+ '@react-native/js-polyfills': 0.86.0
+ '@react-native/normalize-colors': 0.86.0
+ '@react-native/virtualized-lists': 0.86.0(@types/react@19.2.18)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
abort-controller: 3.0.0
anser: 1.4.10
ansi-regex: 5.0.1
- babel-jest: 29.7.0(@babel/core@7.29.0)
- babel-plugin-syntax-hermes-parser: 0.29.1
+ babel-plugin-syntax-hermes-parser: 0.36.0
base64-js: 1.5.1
commander: 12.1.0
flow-enums-runtime: 0.0.6
- glob: 7.2.3
+ hermes-compiler: 250829098.0.14
invariant: 2.2.4
- jest-environment-node: 29.7.0
memoize-one: 5.2.1
- metro-runtime: 0.83.3
- metro-source-map: 0.83.3
+ metro-runtime: 0.84.4
+ metro-source-map: 0.84.4(supports-color@8.1.1)
nullthrows: 1.1.1
pretty-format: 29.7.0
promise: 8.3.0
- react: 19.1.0
+ react: 19.2.3
react-devtools-core: 6.1.5
react-refresh: 0.14.2
regenerator-runtime: 0.13.11
- scheduler: 0.26.0
+ scheduler: 0.27.0
semver: 7.8.0
stacktrace-parser: 0.1.11
+ tinyglobby: 0.2.16
whatwg-fetch: 3.6.20
- ws: 6.2.3
+ ws: 7.5.10
yargs: 17.7.2
optionalDependencies:
- '@types/react': 19.1.17
+ '@react-native/jest-preset': 0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1)
+ '@types/react': 19.2.18
transitivePeerDependencies:
- '@babel/core'
- '@react-native-community/cli'
@@ -17940,57 +18390,57 @@ snapshots:
react-refresh@0.14.2: {}
- react-remove-scroll-bar@2.3.8(@types/react@19.1.17)(react@19.1.0):
+ react-remove-scroll-bar@2.3.8(@types/react@19.2.18)(react@19.2.3):
dependencies:
- react: 19.1.0
- react-style-singleton: 2.2.3(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-style-singleton: 2.2.3(@types/react@19.2.18)(react@19.2.3)
tslib: 2.8.1
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- react-remove-scroll@2.7.2(@types/react@19.1.17)(react@19.1.0):
+ react-remove-scroll@2.7.2(@types/react@19.2.18)(react@19.2.3):
dependencies:
- react: 19.1.0
- react-remove-scroll-bar: 2.3.8(@types/react@19.1.17)(react@19.1.0)
- react-style-singleton: 2.2.3(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ react-remove-scroll-bar: 2.3.8(@types/react@19.2.18)(react@19.2.3)
+ react-style-singleton: 2.2.3(@types/react@19.2.18)(react@19.2.3)
tslib: 2.8.1
- use-callback-ref: 1.3.3(@types/react@19.1.17)(react@19.1.0)
- use-sidecar: 1.1.3(@types/react@19.1.17)(react@19.1.0)
+ use-callback-ref: 1.3.3(@types/react@19.2.18)(react@19.2.3)
+ use-sidecar: 1.1.3(@types/react@19.2.18)(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- react-responsive@10.0.1(react@19.1.0):
+ react-responsive@10.0.1(react@19.2.3):
dependencies:
hyphenate-style-name: 1.1.0
matchmediaquery: 0.4.2
prop-types: 15.8.1
- react: 19.1.0
+ react: 19.2.3
shallow-equal: 3.1.0
- react-style-singleton@2.2.3(@types/react@19.1.17)(react@19.1.0):
+ react-style-singleton@2.2.3(@types/react@19.2.18)(react@19.2.3):
dependencies:
get-nonce: 1.0.1
- react: 19.1.0
+ react: 19.2.3
tslib: 2.8.1
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- react-test-renderer@19.1.0(react@19.1.0):
+ react-test-renderer@19.2.3(react@19.2.3):
dependencies:
- react: 19.1.0
+ react: 19.2.3
react-is: 19.2.6
- scheduler: 0.26.0
+ scheduler: 0.27.0
- react-textarea-autosize@8.5.9(@types/react@19.1.17)(react@19.1.0):
+ react-textarea-autosize@8.5.9(@types/react@19.2.18)(react@19.2.3):
dependencies:
'@babel/runtime': 7.29.2
- react: 19.1.0
- use-composed-ref: 1.4.0(@types/react@19.1.17)(react@19.1.0)
- use-latest: 1.3.0(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ use-composed-ref: 1.4.0(@types/react@19.2.18)(react@19.2.3)
+ use-latest: 1.3.0(@types/react@19.2.18)(react@19.2.3)
transitivePeerDependencies:
- '@types/react'
- react@19.1.0: {}
+ react@19.2.3: {}
readable-stream@2.3.8:
dependencies:
@@ -18016,6 +18466,10 @@ snapshots:
dependencies:
picomatch: 2.3.2
+ real-require@0.2.0: {}
+
+ real-require@1.0.0: {}
+
redent@3.0.0:
dependencies:
indent-string: 4.0.0
@@ -18089,12 +18543,6 @@ snapshots:
require-main-filename@2.0.0: {}
- requireg@0.2.2:
- dependencies:
- nested-error-stacks: 2.0.1
- rc: 1.2.8
- resolve: 1.7.1
-
requires-port@1.0.0: {}
reselect@4.1.8: {}
@@ -18118,10 +18566,6 @@ snapshots:
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
- resolve@1.7.1:
- dependencies:
- path-parse: 1.0.7
-
restore-cursor@2.0.0:
dependencies:
onetime: 2.0.1
@@ -18182,15 +18626,19 @@ snapshots:
es-errors: 1.3.0
is-regex: 1.2.1
+ safe-stable-stringify@2.5.0: {}
+
safer-buffer@2.1.2: {}
+ sandbox-cli-detector@0.2.0: {}
+
sax@1.6.0: {}
saxes@6.0.0:
dependencies:
xmlchars: 2.2.0
- scheduler@0.26.0: {}
+ scheduler@0.27.0: {}
schema-utils@2.7.1:
dependencies:
@@ -18226,9 +18674,9 @@ snapshots:
semver@7.8.0: {}
- send@0.19.2:
+ send@0.19.2(supports-color@8.1.1):
dependencies:
- debug: 2.6.9
+ debug: 2.6.9(supports-color@8.1.1)
depd: 2.0.0
destroy: 1.2.0
encodeurl: 2.0.0
@@ -18250,11 +18698,11 @@ snapshots:
dependencies:
randombytes: 2.1.0
- serve-index@1.9.2:
+ serve-index@1.9.2(supports-color@8.1.1):
dependencies:
accepts: 1.3.8
batch: 0.6.1
- debug: 2.6.9
+ debug: 2.6.9(supports-color@8.1.1)
escape-html: 1.0.3
http-errors: 1.8.1
mime-types: 2.1.35
@@ -18262,12 +18710,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
- serve-static@1.16.3:
+ serve-static@1.16.3(supports-color@8.1.1):
dependencies:
encodeurl: 2.0.0
escape-html: 1.0.3
parseurl: 1.3.3
- send: 0.19.2
+ send: 0.19.2(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -18392,32 +18840,36 @@ snapshots:
uuid: 8.3.2
websocket-driver: 0.7.4
- sonner-native@0.26.4(c538f2bb3fa64bd80a9a262f75d56c17):
+ sonic-boom@4.2.1:
dependencies:
- react: 19.1.0
- react-native: 0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0)
- react-native-gesture-handler: 2.30.1(patch_hash=39b9e51b3977fae8ff61764b8c32934fe3fbddaf21587b4661fd73b7c6dd325b)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react-native-reanimated: 4.3.2(patch_hash=ab1c095bc473ec5bfd9ead76e870c566660e355e11c5078cfdeb35922d7b2f05)(react-native-worklets@0.8.3(patch_hash=f7263a59ae1c0170af8dfe9a5704cb374d29214a430b4b2841f9b7886c9ba8ad)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react-native-safe-area-context: 5.6.2(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react-native-screens: 4.24.0(patch_hash=74a74b489f8074a1974c2792c9c97aec30d8e251669aa37fc5c99993bb4a19e6)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react-native-svg: 15.12.1(patch_hash=ae309e9542214f5ae54935e253dedd236765feedac7be343f81d532d7fe09310)(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
- react-native-worklets: 0.8.3(patch_hash=f7263a59ae1c0170af8dfe9a5704cb374d29214a430b4b2841f9b7886c9ba8ad)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(react-native@0.81.5(patch_hash=91fd85363059530dea649a5ca6012b933f79c8491737fbfdc685abc727e48403)(@babel/core@7.29.0)(@react-native/metro-config@0.86.0(@babel/core@7.29.0))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
+ atomic-sleep: 1.0.0
- sonner@2.0.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
+ sonner-native@0.26.4(669e6adb8ceb9d91fb46b2f510aae203):
dependencies:
- react: 19.1.0
- react-dom: 19.1.0(react@19.1.0)
+ react: 19.2.3
+ react-native: 0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1)
+ react-native-gesture-handler: 2.32.0(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ react-native-reanimated: 4.5.3(patch_hash=cb7a94c574c89fae48a259ea1ba4c4c97b1db634237336237805491b7c1234de)(c6ee2c3257efee1775b3ba0a37d05090)
+ react-native-safe-area-context: 5.7.0(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ react-native-screens: 4.26.2(patch_hash=ba3295d44434a729f143a6b2c24e4a9b2f911ab200b2bc47e46cdfeaa1536f7c)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ react-native-svg: 15.15.4(patch_hash=ae309e9542214f5ae54935e253dedd236765feedac7be343f81d532d7fe09310)(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)
+ react-native-worklets: 0.11.3(patch_hash=8ebbcf528fc731459ac4a4eff612a50dfb7e24462a9df201e4aaa81a201343f0)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(react-native@0.86.0(patch_hash=dd549527bb84c88acc7b0b1d521c9f4b666fda484c75cd0b282f8e9838524909)(@babel/core@7.29.0(supports-color@8.1.1))(@react-native/jest-preset@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1))(@react-native/metro-config@0.86.0(@babel/core@7.29.0(supports-color@8.1.1))(supports-color@8.1.1))(@types/react@19.2.18)(react@19.2.3)(supports-color@8.1.1))(react@19.2.3)(supports-color@8.1.1)
+
+ sonner@2.0.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
+ dependencies:
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
source-list-map@2.0.1: {}
source-map-js@1.2.1: {}
- source-map-loader@3.0.2(webpack@5.106.2(postcss@8.5.14)):
+ source-map-loader@3.0.2(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)):
dependencies:
abab: 2.0.6
iconv-lite: 0.6.3
source-map-js: 1.2.1
- webpack: 5.106.2(postcss@8.5.14)
+ webpack: 5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)
source-map-support@0.5.13:
dependencies:
@@ -18437,9 +18889,9 @@ snapshots:
source-map@0.7.6: {}
- spdy-transport@3.0.0:
+ spdy-transport@3.0.0(supports-color@8.1.1):
dependencies:
- debug: 4.4.3
+ debug: 4.4.3(supports-color@8.1.1)
detect-node: 2.1.0
hpack.js: 2.1.6
obuf: 1.1.2
@@ -18448,18 +18900,20 @@ snapshots:
transitivePeerDependencies:
- supports-color
- spdy@4.0.2:
+ spdy@4.0.2(supports-color@8.1.1):
dependencies:
- debug: 4.4.3
+ debug: 4.4.3(supports-color@8.1.1)
handle-thing: 2.0.1
http-deceiver: 1.2.7
select-hose: 2.0.0
- spdy-transport: 3.0.0
+ spdy-transport: 3.0.0(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
split-on-first@1.1.0: {}
+ split2@4.2.0: {}
+
sprintf-js@1.0.3: {}
stable@0.1.8: {}
@@ -18594,9 +19048,9 @@ snapshots:
structured-headers@0.4.1: {}
- style-loader@3.3.4(webpack@5.106.2(postcss@8.5.14)):
+ style-loader@3.3.4(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)):
dependencies:
- webpack: 5.106.2(postcss@8.5.14)
+ webpack: 5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)
stylehacks@5.1.1(postcss@8.5.14):
dependencies:
@@ -18606,16 +19060,6 @@ snapshots:
styleq@0.1.3: {}
- sucrase@3.35.1:
- dependencies:
- '@jridgewell/gen-mapping': 0.3.13
- commander: 4.1.1
- lines-and-columns: 1.2.4
- mz: 2.7.0
- pirates: 4.0.7
- tinyglobby: 0.2.16
- ts-interface-checker: 0.1.13
-
supports-color@5.5.0:
dependencies:
has-flag: 3.0.0
@@ -18657,6 +19101,8 @@ snapshots:
symbol-tree@3.2.4: {}
+ tagged-tag@1.0.0: {}
+
tapable@2.3.3: {}
tar@7.5.15:
@@ -18672,18 +19118,20 @@ snapshots:
ansi-escapes: 4.3.2
supports-hyperlinks: 2.3.0
- terser-webpack-plugin@5.6.0(clean-css@5.3.3)(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(postcss@8.5.14)(webpack@5.106.2(postcss@8.5.14)):
+ terser-webpack-plugin@5.6.0(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)):
dependencies:
'@jridgewell/trace-mapping': 0.3.31
jest-worker: 27.5.1
schema-utils: 4.3.3
terser: 5.47.1
- webpack: 5.106.2(postcss@8.5.14)
+ webpack: 5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)
optionalDependencies:
clean-css: 5.3.3
+ cssnano: 5.1.15(postcss@8.5.14)
csso: 5.0.5
esbuild: 0.25.12
html-minifier-terser: 6.1.0
+ lightningcss: 1.32.0
postcss: 8.5.14
terser@5.47.1:
@@ -18703,18 +19151,17 @@ snapshots:
dependencies:
utrie: 1.0.2
- thenify-all@1.6.0:
- dependencies:
- thenify: 3.3.1
+ text-table@0.2.0:
+ optional: true
- thenify@3.3.1:
+ thread-stream@4.2.0:
dependencies:
- any-promise: 1.3.0
+ real-require: 1.0.0
- threads@1.7.0:
+ threads@1.7.0(supports-color@8.1.1):
dependencies:
callsites: 3.1.0
- debug: 4.4.3
+ debug: 4.4.3(supports-color@8.1.1)
is-observable: 2.1.0
observable-fns: 0.6.1
optionalDependencies:
@@ -18758,6 +19205,8 @@ snapshots:
toidentifier@1.0.1: {}
+ toqr@0.1.1: {}
+
totalist@3.0.1: {}
tough-cookie@4.1.4:
@@ -18775,14 +19224,25 @@ snapshots:
dependencies:
punycode: 2.3.1
- ts-interface-checker@0.1.13: {}
+ ts-morph@27.0.2:
+ dependencies:
+ '@ts-morph/common': 0.28.1
+ code-block-writer: 13.0.3
ts-plugin-sort-import-suggestions@1.0.4: {}
tslib@2.8.1: {}
+ type-check@0.4.0:
+ dependencies:
+ prelude-ls: 1.2.1
+ optional: true
+
type-detect@4.0.8: {}
+ type-fest@0.20.2:
+ optional: true
+
type-fest@0.21.3: {}
type-fest@0.7.1: {}
@@ -18790,6 +19250,10 @@ snapshots:
type-fest@1.4.0:
optional: true
+ type-fest@5.8.0:
+ dependencies:
+ tagged-tag: 1.0.0
+
type-is@1.6.18:
dependencies:
media-typer: 0.3.0
@@ -18859,6 +19323,10 @@ snapshots:
uc.micro@2.1.0: {}
+ uint8arrays@5.1.1:
+ dependencies:
+ multiformats: 13.4.2
+
unbox-primitive@1.1.0:
dependencies:
call-bound: 1.0.4
@@ -18916,58 +19384,50 @@ snapshots:
querystringify: 2.2.0
requires-port: 1.0.0
- use-callback-ref@1.3.3(@types/react@19.1.17)(react@19.1.0):
+ use-callback-ref@1.3.3(@types/react@19.2.18)(react@19.2.3):
dependencies:
- react: 19.1.0
+ react: 19.2.3
tslib: 2.8.1
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- use-composed-ref@1.4.0(@types/react@19.1.17)(react@19.1.0):
+ use-composed-ref@1.4.0(@types/react@19.2.18)(react@19.2.3):
dependencies:
- react: 19.1.0
+ react: 19.2.3
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- use-isomorphic-layout-effect@1.2.1(@types/react@19.1.17)(react@19.1.0):
+ use-isomorphic-layout-effect@1.2.1(@types/react@19.2.18)(react@19.2.3):
dependencies:
- react: 19.1.0
+ react: 19.2.3
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- use-latest-callback@0.2.6(react@19.1.0):
+ use-latest-callback@0.2.6(react@19.2.3):
dependencies:
- react: 19.1.0
+ react: 19.2.3
- use-latest@1.3.0(@types/react@19.1.17)(react@19.1.0):
+ use-latest@1.3.0(@types/react@19.2.18)(react@19.2.3):
dependencies:
- react: 19.1.0
- use-isomorphic-layout-effect: 1.2.1(@types/react@19.1.17)(react@19.1.0)
+ react: 19.2.3
+ use-isomorphic-layout-effect: 1.2.1(@types/react@19.2.18)(react@19.2.3)
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- use-sidecar@1.1.3(@types/react@19.1.17)(react@19.1.0):
+ use-sidecar@1.1.3(@types/react@19.2.18)(react@19.2.3):
dependencies:
detect-node-es: 1.1.0
- react: 19.1.0
+ react: 19.2.3
tslib: 2.8.1
optionalDependencies:
- '@types/react': 19.1.17
+ '@types/react': 19.2.18
- use-sync-external-store@1.6.0(react@19.1.0):
+ use-sync-external-store@1.6.0(react@19.2.3):
dependencies:
- react: 19.1.0
+ react: 19.2.3
util-deprecate@1.0.2: {}
- util@0.12.5:
- dependencies:
- inherits: 2.0.4
- is-arguments: 1.2.0
- is-generator-function: 1.1.2
- is-typed-array: 1.1.15
- which-typed-array: 1.1.20
-
utila@0.4.0: {}
utils-merge@1.0.1: {}
@@ -18990,6 +19450,8 @@ snapshots:
validate-npm-package-name@5.0.1: {}
+ varint@6.0.0: {}
+
vary@1.1.2: {}
vlq@1.0.1: {}
@@ -19021,8 +19483,6 @@ snapshots:
webidl-conversions@3.0.1: {}
- webidl-conversions@5.0.0: {}
-
webidl-conversions@7.0.0: {}
webpack-bundle-analyzer@4.10.2:
@@ -19043,16 +19503,16 @@ snapshots:
- bufferutil
- utf-8-validate
- webpack-dev-middleware@5.3.4(webpack@5.106.2(postcss@8.5.14)):
+ webpack-dev-middleware@5.3.4(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)):
dependencies:
colorette: 2.0.20
memfs: 3.5.3
mime-types: 2.1.35
range-parser: 1.2.1
schema-utils: 4.3.3
- webpack: 5.106.2(postcss@8.5.14)
+ webpack: 5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)
- webpack-dev-server@4.15.2(webpack@5.106.2(postcss@8.5.14)):
+ webpack-dev-server@4.15.2(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1)(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)):
dependencies:
'@types/bonjour': 3.5.13
'@types/connect-history-api-fallback': 1.5.4
@@ -19065,13 +19525,13 @@ snapshots:
bonjour-service: 1.3.0
chokidar: 3.6.0
colorette: 2.0.20
- compression: 1.8.1
+ compression: 1.8.1(supports-color@8.1.1)
connect-history-api-fallback: 2.0.0
default-gateway: 6.0.3
- express: 4.22.2
+ express: 4.22.2(supports-color@8.1.1)
graceful-fs: 4.2.11
html-entities: 2.6.0
- http-proxy-middleware: 2.0.9(@types/express@4.17.25)
+ http-proxy-middleware: 2.0.9(@types/express@4.17.25)(debug@4.4.3(supports-color@8.1.1))
ipaddr.js: 2.4.0
launch-editor: 2.13.2
open: 8.4.2
@@ -19079,23 +19539,23 @@ snapshots:
rimraf: 3.0.2
schema-utils: 4.3.3
selfsigned: 2.4.1
- serve-index: 1.9.2
+ serve-index: 1.9.2(supports-color@8.1.1)
sockjs: 0.3.24
- spdy: 4.0.2
- webpack-dev-middleware: 5.3.4(webpack@5.106.2(postcss@8.5.14))
+ spdy: 4.0.2(supports-color@8.1.1)
+ webpack-dev-middleware: 5.3.4(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))
ws: 8.20.1
optionalDependencies:
- webpack: 5.106.2(postcss@8.5.14)
+ webpack: 5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)
transitivePeerDependencies:
- bufferutil
- debug
- supports-color
- utf-8-validate
- webpack-manifest-plugin@4.1.1(webpack@5.106.2(postcss@8.5.14)):
+ webpack-manifest-plugin@4.1.1(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)):
dependencies:
tapable: 2.3.3
- webpack: 5.106.2(postcss@8.5.14)
+ webpack: 5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)
webpack-sources: 2.3.1
webpack-sources@2.3.1:
@@ -19107,7 +19567,7 @@ snapshots:
webpack-virtual-modules@0.5.0: {}
- webpack@5.106.2(postcss@8.5.14):
+ webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14):
dependencies:
'@types/eslint-scope': 3.7.7
'@types/estree': 1.0.6
@@ -19130,7 +19590,7 @@ snapshots:
neo-async: 2.6.2
schema-utils: 4.3.3
tapable: 2.3.3
- terser-webpack-plugin: 5.6.0(clean-css@5.3.3)(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(postcss@8.5.14)(webpack@5.106.2(postcss@8.5.14))
+ terser-webpack-plugin: 5.6.0(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(clean-css@5.3.3)(cssnano@5.1.15(postcss@8.5.14))(csso@5.0.5)(esbuild@0.25.12)(html-minifier-terser@6.1.0)(lightningcss@1.32.0)(postcss@8.5.14))
watchpack: 2.5.1
webpack-sources: 3.4.1
transitivePeerDependencies:
@@ -19163,11 +19623,7 @@ snapshots:
whatwg-mimetype@3.0.0: {}
- whatwg-url-without-unicode@8.0.0-3:
- dependencies:
- buffer: 5.7.1
- punycode: 2.3.1
- webidl-conversions: 5.0.0
+ whatwg-url-minimum@0.1.2: {}
whatwg-url@11.0.0:
dependencies:
@@ -19226,7 +19682,8 @@ snapshots:
dependencies:
isexe: 2.0.0
- wonka@6.3.6: {}
+ word-wrap@1.2.5:
+ optional: true
wrap-ansi@10.0.0:
dependencies:
@@ -19265,10 +19722,6 @@ snapshots:
imurmurhash: 0.1.4
signal-exit: 3.0.7
- ws@6.2.3:
- dependencies:
- async-limiter: 1.0.1
-
ws@7.5.10: {}
ws@8.20.1: {}
@@ -19314,6 +19767,8 @@ snapshots:
yargs-parser@21.1.1: {}
+ yargs-parser@22.0.0: {}
+
yargs@15.4.1:
dependencies:
cliui: 6.0.0
@@ -19338,6 +19793,15 @@ snapshots:
y18n: 5.0.8
yargs-parser: 21.1.1
+ yargs@18.1.0:
+ dependencies:
+ cliui: 9.0.1
+ escalade: 3.2.0
+ get-caller-file: 2.0.5
+ string-width: 8.2.1
+ y18n: 5.0.8
+ yargs-parser: 22.0.0
+
yauzl@3.3.0:
dependencies:
buffer-crc32: 0.2.13
@@ -19345,8 +19809,9 @@ snapshots:
yocto-queue@0.1.0: {}
- zod-validation-error@3.5.4(zod@3.25.76):
- dependencies:
- zod: 3.25.76
-
zod@3.25.76: {}
+
+ zxing-wasm@3.1.3(@types/emscripten@1.41.5):
+ dependencies:
+ '@types/emscripten': 1.41.5
+ type-fest: 5.8.0
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index aa9a37f930..b627e1d3a8 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -1,54 +1,56 @@
nodeLinker: 'hoisted'
autoInstallPeers: true # default: true
strictPeerDependencies: false # default: false
+packageExtensions:
+ eslint-plugin-react-native-a11y:
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ eslint-plugin-simple-import-sort:
+ peerDependenciesMeta:
+ eslint:
+ optional: true
trustPolicy: 'no-downgrade' # default: off
trustPolicyIgnoreAfter: 10080 # 7 days, default: undefined
overrides:
- '@react-native/babel-preset': '0.81.5'
- '@react-native/normalize-colors': '0.81.5'
+ '@react-native/babel-preset': '0.86.0'
+ '@react-native/normalize-colors': '0.86.0'
'@expo/image-utils': '0.8.12'
'@types/estree': '1.0.6'
'react-native-compressor': '1.13.0'
- 'react-native-reanimated': '4.3.2'
- 'react-native-worklets': '0.8.3'
+ 'react-native-reanimated': '4.5.3'
+ 'react-native-worklets': '0.11.3'
'psl': '1.9.0'
'@types/psl': '1.1.1'
- 'react-native-screens': '4.24.0'
+ 'react-native-screens': '4.26.2'
allowBuilds:
'@sentry/cli': true
- 'core-js-pure': true
- 'esbuild': true
+ 'core-js': false
+ 'core-js-pure': false
+ 'esbuild': false
'unrs-resolver': true
patchedDependencies:
'@sentry/expo-upload-sourcemaps@8.18.0': patches/@sentry__expo-upload-sourcemaps@8.18.0.patch
- 'expo-age-range@0.2.18': patches/expo-age-range@0.2.18.patch
- 'expo-haptics@15.0.8': patches/expo-haptics@15.0.8.patch
- 'expo-image-picker@17.0.11': patches/expo-image-picker@17.0.11.patch
- 'expo-image@3.0.11': patches/expo-image@3.0.11.patch
- 'expo-media-library@18.2.1': patches/expo-media-library@18.2.1.patch
- 'expo-modules-core@3.0.30': patches/expo-modules-core@3.0.30.patch
- 'expo-notifications@0.32.17': patches/expo-notifications@0.32.17.patch
- 'expo-updates@29.0.17': patches/expo-updates@29.0.17.patch
+ 'expo-age-range@57.0.2': patches/expo-age-range@57.0.2.patch
+ 'expo-haptics@57.0.1': patches/expo-haptics@57.0.1.patch
+ 'expo-media-library@57.0.3': patches/expo-media-library@57.0.3.patch
+ 'expo-modules-core@57.0.8': patches/expo-modules-core@57.0.8.patch
+ 'expo-notifications@57.0.7': patches/expo-notifications@57.0.7.patch
+ 'expo-updates@57.0.10': patches/expo-updates@57.0.10.patch
+ expo@57.0.8: patches/expo@57.0.8.patch
'react-native-compressor@1.13.0': patches/react-native-compressor@1.13.0.patch
'react-native-date-picker@5.0.13': patches/react-native-date-picker@5.0.13.patch
+ 'react-native-dotenv@3.4.11': patches/react-native-dotenv@3.4.11.patch
'react-native-drawer-layout@4.2.3': patches/react-native-drawer-layout@4.2.3.patch
- 'react-native-gesture-handler': patches/react-native-gesture-handler.patch
- 'react-native-keyboard-controller@1.21.8': patches/react-native-keyboard-controller@1.21.8.patch
+ 'react-native-keyboard-controller@1.21.9': patches/react-native-keyboard-controller@1.21.9.patch
'react-native-pager-view@6.8.0': patches/react-native-pager-view@6.8.0.patch
- 'react-native-reanimated@4.3.2': patches/react-native-reanimated@4.3.2.patch
- react-native-screens@4.24.0: patches/react-native-screens@4.24.0.patch
- 'react-native-svg@15.12.1': patches/react-native-svg@15.12.1.patch
- 'react-native-view-shot@4.0.3': patches/react-native-view-shot@4.0.3.patch
- react-native-worklets@0.8.3: patches/react-native-worklets@0.8.3.patch
- 'react-native@0.81.5': patches/react-native@0.81.5.patch
+ 'react-native-reanimated@4.5.3': patches/react-native-reanimated@4.5.3.patch
+ 'react-native-screens@4.26.2': patches/react-native-screens@4.26.2.patch
+ 'react-native-svg@15.15.4': patches/react-native-svg@15.15.4.patch
+ react-native-worklets@0.11.3: patches/react-native-worklets@0.11.3.patch
+ 'react-native@0.86.0': patches/react-native@0.86.0.patch
minimumReleaseAgeExclude:
- '@atproto/*'
+ - '@atproto-labs/*'
- '@bsky.app/*'
- # todo: remove when old enough
- - '@oxlint-tsgolint/darwin-arm64@7.0.2001'
- - '@oxlint-tsgolint/darwin-x64@7.0.2001'
- - '@oxlint-tsgolint/linux-arm64@7.0.2001'
- - '@oxlint-tsgolint/linux-x64@7.0.2001'
- - '@oxlint-tsgolint/win32-arm64@7.0.2001'
- - '@oxlint-tsgolint/win32-x64@7.0.2001'
- - oxlint-tsgolint@7.0.2001
+ - '@bsky/*'
diff --git a/scripts/buildAndroidRelease.sh b/scripts/buildAndroidRelease.sh
index 0d5d0698a8..7cc6c669b0 100755
--- a/scripts/buildAndroidRelease.sh
+++ b/scripts/buildAndroidRelease.sh
@@ -14,7 +14,7 @@ SETTINGS_GRADLE="$ANDROID_DIR/settings.gradle"
# Guard against building with the wrong app identity. The New Arch build must
# use a distinct rootProject.name so it installs alongside the store app rather
# than overwriting it.
-EXPECTED_APP_NAME="rootProject.name = 'Bluesky (New Arch)'"
+EXPECTED_APP_NAME="rootProject.name = 'Bluesky'"
if ! grep -qF "$EXPECTED_APP_NAME" "$SETTINGS_GRADLE"; then
echo "Error: expected \"$EXPECTED_APP_NAME\" in $SETTINGS_GRADLE" >&2
echo "(Set the app name in settings.gradle before building the New Arch release.)" >&2
diff --git a/src/Navigation.tsx b/src/Navigation.tsx
index ec3072f46d..c03e65af69 100644
--- a/src/Navigation.tsx
+++ b/src/Navigation.tsx
@@ -87,6 +87,7 @@ import {MessagesJoinRequestsScreen} from '#/screens/Messages/JoinRequests'
import {MessagesSettingsScreen} from '#/screens/Messages/Settings'
import {ModerationScreen} from '#/screens/Moderation'
import {Screen as ModerationVerificationSettings} from '#/screens/Moderation/VerificationSettings'
+import {ModerationInboxScreen} from '#/screens/ModerationInbox'
import {Screen as ModerationInteractionSettings} from '#/screens/ModerationInteractionSettings'
import {NotificationsActivityListScreen} from '#/screens/Notifications/ActivityList'
import {PostLikedByScreen} from '#/screens/Post/PostLikedBy'
@@ -178,6 +179,11 @@ function commonScreens(Stack: typeof Flat, unreadCountLabel?: string) {
getComponent={() => ModerationScreen}
options={{title: title(msg`Moderation`), requireAuth: true}}
/>
+ ModerationInboxScreen}
+ options={{title: title(msg`Moderation inbox`), requireAuth: true}}
+ />
ModerationModlistsScreen}
@@ -919,7 +925,7 @@ function RoutesContainer({children}: React.PropsWithChildren<{}>) {
// chat-removed-from-group, chat-join-request-rejected: the convo is
// no longer accessible to the recipient, so just open the list.
// @ts-expect-error nested navigators aren't typed -sfn
- navigate('MessagesTab', {screen: 'Messages'})
+ void navigate('MessagesTab', {screen: 'Messages'})
}
},
)
@@ -1006,7 +1012,7 @@ function RoutesContainer({children}: React.PropsWithChildren<{}>) {
ax.metric('init', {
initMs: Math.round(
- // @ts-ignore Emitted by Metro in the bundle prelude
+ // @ts-expect-error Emitted by Metro in the bundle prelude
performance.now() - global.__BUNDLE_START_TIME__,
),
})
@@ -1081,7 +1087,7 @@ function navigate(
}
navigationRef.addListener('state', handler)
- // @ts-ignore I don't know what would make typescript happy but I have a life -prf
+ // @ts-expect-error I don't know what would make typescript happy but I have a life -prf
navigationRef.navigate(name, params)
}),
timeout(1e3),
diff --git a/src/Splash.tsx b/src/Splash.tsx
index b450a2ddcd..76c9c7de82 100644
--- a/src/Splash.tsx
+++ b/src/Splash.tsx
@@ -2,7 +2,6 @@ import {forwardRef, useCallback, useEffect, useState} from 'react'
import {
AccessibilityInfo,
Image as RNImage,
- StyleSheet,
useColorScheme,
View,
} from 'react-native'
@@ -20,14 +19,16 @@ import {Image} from 'expo-image'
import * as SplashScreen from 'expo-splash-screen'
import {Logotype} from '#/view/icons/Logotype'
-// @ts-ignore
+import {atoms as a} from '#/alf'
+// @ts-expect-error
import splashImagePointer from '../assets/splash/splash.png'
-// @ts-ignore
+// @ts-expect-error
import darkSplashImagePointer from '../assets/splash/splash-dark.png'
-const splashImageUri = RNImage.resolveAssetSource(splashImagePointer).uri
+
+const splashImageUri = RNImage.resolveAssetSource(splashImagePointer)!.uri
const darkSplashImageUri = RNImage.resolveAssetSource(
darkSplashImagePointer,
-).uri
+)!.uri
export const Logo = forwardRef(function LogoImpl(props: SvgProps, ref) {
const width = 1000
@@ -35,7 +36,7 @@ export const Logo = forwardRef(function LogoImpl(props: SvgProps, ref) {
return (