diff --git a/.changeset/green-ducks-admire.md b/.changeset/green-ducks-admire.md new file mode 100644 index 000000000..aedbc36d6 --- /dev/null +++ b/.changeset/green-ducks-admire.md @@ -0,0 +1,18 @@ +--- +'@powersync/tanstack-react-query': patch +'@powersync/op-sqlite': patch +'@powersync/adapter-sql-js': patch +'@powersync/drizzle-driver': patch +'@powersync/kysely-driver': patch +'@powersync/react-native': patch +'@powersync/diagnostics-app': patch +'@powersync/attachments': patch +'@powersync/capacitor': patch +'@powersync/common': patch +'@powersync/react': patch +'@powersync/node': patch +'@powersync/vue': patch +'@powersync/web': patch +--- + +Update dependencies. diff --git a/.github/workflows/audit.yaml b/.github/workflows/audit.yaml index 686da3637..45c601bf0 100644 --- a/.github/workflows/audit.yaml +++ b/.github/workflows/audit.yaml @@ -12,11 +12,14 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Repo - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - name: Install pnpm + uses: actions/checkout@v5 + - name: Enable Corepack + run: corepack enable + - name: Setup Node.js + uses: actions/setup-node@v6 with: - version: 9 - run_install: false + node-version-file: '.nvmrc' + cache: pnpm + - name: Audit for vulnerabilities - run: npx audit-ci@^7 --config ./audit-ci.jsonc + run: pnpx audit-ci@^7 --config ./audit-ci.jsonc diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml index 64d40e25d..337861c05 100644 --- a/.github/workflows/build-docs.yaml +++ b/.github/workflows/build-docs.yaml @@ -12,27 +12,14 @@ jobs: GH_URL: http://example.test steps: - name: Checkout - uses: actions/checkout@v4 - - name: Setup NodeJS - uses: actions/setup-node@v4 + uses: actions/checkout@v5 + - name: Enable Corepack + run: corepack enable + - name: Setup Node.js + uses: actions/setup-node@v6 with: node-version-file: '.nvmrc' - - uses: pnpm/action-setup@v2 - name: Install pnpm - with: - version: 9 - run_install: false - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - - uses: actions/cache@v3 - name: Setup pnpm cache - with: - path: ${{ env.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- + cache: pnpm - name: Install dependencies run: pnpm install - name: Build Packages diff --git a/.github/workflows/build-packages.yaml b/.github/workflows/build-packages.yaml index 7d3964618..4c1476ef7 100644 --- a/.github/workflows/build-packages.yaml +++ b/.github/workflows/build-packages.yaml @@ -10,33 +10,17 @@ jobs: name: Build Packages runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: persist-credentials: false - - name: Setup NodeJS - uses: actions/setup-node@v4 + - name: Enable Corepack + run: corepack enable + - name: Setup Node.js + uses: actions/setup-node@v6 with: node-version-file: '.nvmrc' - - - uses: pnpm/action-setup@v2 - name: Install pnpm - with: - version: 9 - run_install: false - - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - - - uses: actions/cache@v3 - name: Setup pnpm cache - with: - path: ${{ env.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- + cache: pnpm - name: Install dependencies run: pnpm install diff --git a/.github/workflows/deploy-docs.yaml b/.github/workflows/deploy-docs.yaml index 137a555e7..faf2d3252 100644 --- a/.github/workflows/deploy-docs.yaml +++ b/.github/workflows/deploy-docs.yaml @@ -27,27 +27,14 @@ jobs: GH_PROJECT_NAME: ${{vars.GH_PROJECT_NAME}} steps: - name: Checkout - uses: actions/checkout@v4 - - name: Setup NodeJS - uses: actions/setup-node@v4 + uses: actions/checkout@v5 + - name: Enable Corepack + run: corepack enable + - name: Setup Node.js + uses: actions/setup-node@v6 with: node-version-file: '.nvmrc' - - uses: pnpm/action-setup@v2 - name: Install pnpm - with: - version: 9 - run_install: false - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - - uses: actions/cache@v3 - name: Setup pnpm cache - with: - path: ${{ env.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- + cache: pnpm - name: Install dependencies run: pnpm install - name: Build Packages diff --git a/.github/workflows/dev-packages.yaml b/.github/workflows/dev-packages.yaml index d8d34e9e0..3695dd410 100644 --- a/.github/workflows/dev-packages.yaml +++ b/.github/workflows/dev-packages.yaml @@ -9,31 +9,16 @@ jobs: name: Publish Dev Packages runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: persist-credentials: false - - name: Setup NodeJS - uses: actions/setup-node@v4 + - name: Enable Corepack + run: corepack enable + - name: Setup Node.js + uses: actions/setup-node@v6 with: node-version-file: '.nvmrc' - - uses: pnpm/action-setup@v2 - name: Install pnpm - with: - version: 9 - run_install: false - - name: Add NPM auth - run: echo "//registry.npmjs.org/:_authToken=${{secrets.NPM_TOKEN}}" >> ~/.npmrc - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - - uses: actions/cache@v3 - name: Setup pnpm cache - with: - path: ${{ env.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- + cache: pnpm - name: Install dependencies run: pnpm install - name: Build diff --git a/.github/workflows/diagnostics-image-build.yaml b/.github/workflows/diagnostics-image-build.yaml index f50a0fe9a..d2f01ddf5 100644 --- a/.github/workflows/diagnostics-image-build.yaml +++ b/.github/workflows/diagnostics-image-build.yaml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 diff --git a/.github/workflows/diagnostics-image-release.yaml b/.github/workflows/diagnostics-image-release.yaml index fc6ccba4b..080c479c3 100644 --- a/.github/workflows/diagnostics-image-release.yaml +++ b/.github/workflows/diagnostics-image-release.yaml @@ -17,7 +17,7 @@ jobs: if: github.ref == 'refs/heads/main' steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 813d1d011..a8b0a934a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,24 +18,13 @@ jobs: uses: actions/setup-node@v4 with: node-version-file: '.nvmrc' - - uses: pnpm/action-setup@v2 - name: Install pnpm - with: - # Pnpm 9.4 introduces this https://github.com/pnpm/pnpm/pull/7633 - # which causes workspace:^1.2.0 to be converted to 1.2.0^1.2.0 - version: 9.3 - run_install: false - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - - uses: actions/cache@v3 - name: Setup pnpm cache + - name: Enable Corepack + run: corepack enable + - name: Setup Node.js + uses: actions/setup-node@v6 with: - path: ${{ env.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- + node-version-file: '.nvmrc' + cache: pnpm - name: Install dependencies run: pnpm install - name: Create Release Pull Request or Publish to npm diff --git a/.github/workflows/test-isolated.yaml b/.github/workflows/test-isolated.yaml index 8581dfbbc..19fa36938 100644 --- a/.github/workflows/test-isolated.yaml +++ b/.github/workflows/test-isolated.yaml @@ -10,16 +10,19 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 30 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: persist-credentials: false - - name: Setup NodeJS - uses: actions/setup-node@v4 + - name: Enable Corepack + run: corepack enable + - name: Setup Node.js + uses: actions/setup-node@v6 with: - node-version-file: ".nvmrc" + node-version-file: '.nvmrc' + cache: pnpm - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: java-version: "21" @@ -28,27 +31,6 @@ jobs: - name: Set up Gradle uses: gradle/actions/setup-gradle@v4 - - uses: pnpm/action-setup@v2 - name: Install pnpm - with: - # Pnpm 9.4 introduces this https://github.com/pnpm/pnpm/pull/7633 - # which causes workspace:^1.2.0 to be converted to 1.2.0^1.2.0 - version: 9.3 - run_install: false - - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - - - uses: actions/cache@v3 - name: Setup pnpm cache - with: - path: ${{ env.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- - - name: Install run: pnpm install diff --git a/.github/workflows/test-simulators.yaml b/.github/workflows/test-simulators.yaml index d219cba72..e99861d64 100644 --- a/.github/workflows/test-simulators.yaml +++ b/.github/workflows/test-simulators.yaml @@ -10,7 +10,7 @@ jobs: outputs: should_run: ${{ steps.check.outputs.should_run }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: fetch-depth: 0 - name: Check for changes @@ -32,7 +32,7 @@ jobs: env: AVD_NAME: ubuntu-avd-x86_64-31 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: persist-credentials: false @@ -61,29 +61,13 @@ jobs: distribution: 'adopt' cache: 'gradle' - - name: Setup NodeJS - uses: actions/setup-node@v4 + - name: Enable Corepack + run: corepack enable + - name: Setup Node.js + uses: actions/setup-node@v6 with: node-version-file: '.nvmrc' - - - uses: pnpm/action-setup@v2 - name: Install pnpm - with: - version: 9 - run_install: false - - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - - - uses: actions/cache@v3 - name: Setup pnpm cache - with: - path: ${{ env.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- + cache: pnpm - name: Install dependencies run: pnpm install @@ -138,7 +122,7 @@ jobs: timeout-minutes: 30 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: persist-credentials: false @@ -165,29 +149,13 @@ jobs: restore-keys: | xcode-derived-${{ runner.os }}- - - name: Setup NodeJS - uses: actions/setup-node@v4 + - name: Enable Corepack + run: corepack enable + - name: Setup Node.js + uses: actions/setup-node@v6 with: node-version-file: '.nvmrc' - - - uses: pnpm/action-setup@v2 - name: Install pnpm - with: - version: 9 - run_install: false - - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - - - uses: actions/cache@v3 - name: Setup pnpm cache - with: - path: ${{ env.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- + cache: pnpm - name: Install dependencies run: pnpm install diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1d8892809..7eadbe38f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,33 +10,17 @@ jobs: runs-on: ubuntu-xl timeout-minutes: 30 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: persist-credentials: false - - name: Setup NodeJS - uses: actions/setup-node@v4 + - name: Enable Corepack + run: corepack enable + - name: Setup Node.js + uses: actions/setup-node@v6 with: node-version-file: '.nvmrc' - - - uses: pnpm/action-setup@v2 - name: Install pnpm - with: - version: 9 - run_install: false - - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - - - uses: actions/cache@v3 - name: Setup pnpm cache - with: - path: ${{ env.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- + cache: pnpm - name: Install dependencies run: pnpm install diff --git a/.nvmrc b/.nvmrc index 805b5a4e0..c519bf5ba 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v20.9.0 +v24.11.0 diff --git a/demos/angular-supabase-todolist/package.json b/demos/angular-supabase-todolist/package.json index 075eb38ac..16103a3d1 100644 --- a/demos/angular-supabase-todolist/package.json +++ b/demos/angular-supabase-todolist/package.json @@ -14,29 +14,29 @@ }, "private": true, "dependencies": { - "@angular/animations": "^19.2.4", - "@angular/common": "^19.2.4", - "@angular/compiler": "^19.2.4", - "@angular/core": "^19.2.4", - "@angular/forms": "^19.2.4", - "@angular/platform-browser": "^19.2.4", - "@angular/platform-browser-dynamic": "^19.2.4", - "@angular/router": "^19.2.4", - "@angular/service-worker": "^19.2.4", - "@journeyapps/wa-sqlite": "^1.3.2", + "@angular/animations": "catalog:", + "@angular/common": "catalog:", + "@angular/compiler": "catalog:", + "@angular/core": "catalog:", + "@angular/forms": "catalog:", + "@angular/platform-browser": "catalog:", + "@angular/platform-browser-dynamic": "catalog:", + "@angular/router": "catalog:", + "@angular/service-worker": "catalog:", + "@journeyapps/wa-sqlite": "catalog:", "@powersync/web": "workspace:*", - "@supabase/supabase-js": "^2.44.4", - "rxjs": "~7.8.1", - "tslib": "^2.6.3", - "zone.js": "~0.15.0" + "@supabase/supabase-js": "catalog:", + "rxjs": "catalog:", + "tslib": "catalog:", + "zone.js": "catalog:" }, "devDependencies": { - "@angular-builders/custom-webpack": "^19.0.0", - "@angular-devkit/build-angular": "^19.2.5", - "@angular/cli": "^19.2.5", - "@angular/compiler-cli": "^19.2.4", - "dotenv": "^16.4.5", - "http-server": "^14.1.1", - "typescript": "~5.5.3" + "@angular-builders/custom-webpack": "catalog:", + "@angular-devkit/build-angular": "catalog:", + "@angular/cli": "catalog:", + "@angular/compiler-cli": "catalog:", + "dotenv": "catalog:", + "http-server": "catalog:", + "typescript": "catalog:" } } diff --git a/demos/django-react-native-todolist/package.json b/demos/django-react-native-todolist/package.json index 59323a45c..28e4e36f7 100644 --- a/demos/django-react-native-todolist/package.json +++ b/demos/django-react-native-todolist/package.json @@ -8,50 +8,48 @@ "clean": "watchman watch-del-all && rm -rf .expo" }, "dependencies": { - "@azure/core-asynciterator-polyfill": "^1.0.2", - "@expo/metro-runtime": "^4.0.1", - "@expo/vector-icons": "^14.0.0", - "@journeyapps/react-native-quick-sqlite": "^2.4.9", + "@azure/core-asynciterator-polyfill": "catalog:", + "@expo/metro-runtime": "catalog:", + "@expo/vector-icons": "catalog:", + "@journeyapps/react-native-quick-sqlite": "catalog:", "@powersync/common": "workspace:*", "@powersync/react": "workspace:*", "@powersync/react-native": "workspace:*", - "@react-native-community/async-storage": "^1.12.1", - "@react-native-community/masked-view": "^0.1.11", - "@react-navigation/drawer": "^7.1.1", - "@react-navigation/native": "^7.0.14", - "@supabase/supabase-js": "^2.42.4", - "expo": "52.0.46", - "expo-build-properties": "~0.13.2", - "expo-constants": "~17.0.8", - "expo-linking": "~7.0.5", - "expo-modules-autolinking": "^2.0.8", - "expo-router": "4.0.21", - "expo-splash-screen": "~0.29.22", - "expo-status-bar": "~2.0.1", - "lodash": "^4.17.21", - "react": "18.3.1", - "react-native": "0.76.9", - "react-native-elements": "^3.4.3", - "react-native-encrypted-storage": "^4.0.3", - "react-native-gesture-handler": "~2.20.2", - "react-native-prompt-android": "^1.1.0", - "react-native-reanimated": "~3.16.7", - "react-native-safe-area-context": "4.12.0", - "react-native-safe-area-view": "^1.1.1", - "react-native-screens": "~4.4.0", - "react-native-table-component": "^1.2.2", - "react-native-vector-icons": "^10.0.0", - "react-navigation-stack": "^2.10.4", - "typed-async-storage": "^3.1.2" + "@react-native-async-storage/async-storage": "catalog:", + "@react-native-masked-view/masked-view": "catalog:", + "@react-navigation/drawer": "catalog:", + "@react-navigation/native": "catalog:", + "@supabase/supabase-js": "catalog:", + "expo": "catalog:", + "expo-build-properties": "catalog:", + "expo-constants": "catalog:", + "expo-linking": "catalog:", + "expo-modules-autolinking": "catalog:", + "expo-router": "catalog:", + "expo-splash-screen": "catalog:", + "expo-status-bar": "catalog:", + "lodash": "catalog:", + "react": "catalog:", + "react-native": "catalog:", + "react-native-elements": "catalog:", + "react-native-encrypted-storage": "catalog:", + "react-native-gesture-handler": "catalog:", + "react-native-prompt-android": "catalog:", + "react-native-reanimated": "catalog:", + "react-native-safe-area-context": "catalog:", + "react-native-screens": "catalog:", + "react-native-table-component": "catalog:", + "@react-navigation/stack": "catalog:", + "typed-async-storage": "catalog:" }, "devDependencies": { - "@babel/plugin-transform-async-generator-functions": "^7.24.3", - "@babel/preset-env": "^7.24.4", - "@types/lodash": "^4.17.0", - "@types/react": "~18.3.18", - "@types/react-dom": "18.3.6", - "@types/react-native-table-component": "^1.2.8", - "typescript": "^5.3.3" + "@babel/plugin-transform-async-generator-functions": "catalog:", + "@babel/preset-env": "catalog:", + "@types/lodash": "catalog:", + "@types/react": "catalog:", + "@types/react-dom": "catalog:", + "@types/react-native-table-component": "catalog:", + "typescript": "catalog:" }, "private": true } diff --git a/demos/example-capacitor/package.json b/demos/example-capacitor/package.json index 9ba20f697..7dee899f0 100644 --- a/demos/example-capacitor/package.json +++ b/demos/example-capacitor/package.json @@ -20,31 +20,31 @@ "preview": "vite preview" }, "dependencies": { - "@capacitor-community/sqlite": "^7.0.2", - "@capacitor/android": "^7.4.3", - "@capacitor/core": "latest", - "@capacitor/ios": "^7.4.3", - "@capacitor/splash-screen": "latest", + "@capacitor-community/sqlite": "catalog:", + "@capacitor/android": "catalog:", + "@capacitor/core": "catalog:", + "@capacitor/ios": "catalog:", + "@capacitor/splash-screen": "catalog:", "@powersync/capacitor": "workspace:*", - "@journeyapps/wa-sqlite": "^1.3.2", + "@journeyapps/wa-sqlite": "catalog:", "@powersync/react": "workspace:*", "@powersync/web": "workspace:*", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-router-dom": "^6.23.0" + "react": "catalog:", + "react-dom": "catalog:", + "react-router-dom": "catalog:" }, "devDependencies": { - "@capacitor/cli": "^7.4.3", - "@swc/core": "~1.6.0", - "@mui/material": "^5.15.12", - "@emotion/react": "11.11.4", - "@emotion/styled": "11.11.5", - "@types/node": "^20.12.12", - "@types/react": "^18.3.2", - "@types/react-dom": "^18.3.0", - "vite": "^5.2.11", - "vite-plugin-require": "^1.2.14", - "vite-plugin-top-level-await": "^1.4.1", - "vite-plugin-wasm": "^3.3.0" + "@capacitor/cli": "catalog:", + "@swc/core": "catalog:", + "@mui/material": "catalog:", + "@emotion/react": "catalog:", + "@emotion/styled": "catalog:", + "@types/node": "catalog:", + "@types/react": "catalog:", + "@types/react-dom": "catalog:", + "vite": "catalog:", + "vite-plugin-require": "catalog:", + "vite-plugin-top-level-await": "catalog:", + "vite-plugin-wasm": "catalog:" } } diff --git a/demos/example-electron-node/package.json b/demos/example-electron-node/package.json index f394e3b55..e7d3bee45 100644 --- a/demos/example-electron-node/package.json +++ b/demos/example-electron-node/package.json @@ -17,31 +17,31 @@ "publish": "electron-forge publish" }, "devDependencies": { - "@electron-forge/cli": "^7.7.0", - "@electron-forge/maker-deb": "^7.7.0", - "@electron-forge/maker-squirrel": "^7.7.0", - "@electron-forge/maker-zip": "^7.7.0", - "@electron-forge/plugin-auto-unpack-natives": "^7.7.0", - "@electron-forge/plugin-webpack": "^7.7.0", - "@types/better-sqlite3": "^7.6.13", - "@vercel/webpack-asset-relocator-loader": "1.7.3", - "copy-webpack-plugin": "^13.0.0", - "css-loader": "^6.11.0", - "dotenv": "^16.4.7", - "electron": "37.0.0", - "electron-rebuild": "^3.2.9", - "fork-ts-checker-webpack-plugin": "^9.0.2", - "node-loader": "^2.1.0", - "style-loader": "^3.3.4", - "ts-loader": "^9.5.2", - "ts-node": "^10.9.2", - "tsx": "^4.19.3", - "typescript": "^5.8.2", - "webpack": "^5.90.1" + "@electron-forge/cli": "catalog:", + "@electron-forge/maker-deb": "catalog:", + "@electron-forge/maker-squirrel": "catalog:", + "@electron-forge/maker-zip": "catalog:", + "@electron-forge/plugin-auto-unpack-natives": "catalog:", + "@electron-forge/plugin-webpack": "catalog:", + "@types/better-sqlite3": "catalog:", + "@vercel/webpack-asset-relocator-loader": "catalog:", + "copy-webpack-plugin": "catalog:", + "css-loader": "catalog:", + "dotenv": "catalog:", + "electron": "catalog:", + "@electron/rebuild": "catalog:", + "fork-ts-checker-webpack-plugin": "catalog:", + "node-loader": "catalog:", + "style-loader": "catalog:", + "ts-loader": "catalog:", + "ts-node": "catalog:", + "tsx": "catalog:", + "typescript": "catalog:", + "webpack": "catalog:" }, "dependencies": { "@powersync/node": "workspace:*", - "better-sqlite3": "^12.2.0", - "electron-squirrel-startup": "^1.0.1" + "better-sqlite3": "catalog:", + "electron-squirrel-startup": "catalog:" } } diff --git a/demos/example-electron/package.json b/demos/example-electron/package.json index 4b9f6b397..1e2509eb6 100644 --- a/demos/example-electron/package.json +++ b/demos/example-electron/package.json @@ -19,44 +19,44 @@ }, "license": "MIT", "dependencies": { - "@emotion/react": "^11.13.0", - "@emotion/styled": "^11.13.0", - "@journeyapps/wa-sqlite": "^1.3.2", - "@mui/icons-material": "^5.15.16", - "@mui/material": "^5.15.16", - "@mui/x-data-grid": "^6.19.11", - "express": "^4.19.2", + "@emotion/react": "catalog:", + "@emotion/styled": "catalog:", + "@journeyapps/wa-sqlite": "catalog:", + "@mui/icons-material": "catalog:", + "@mui/material": "catalog:", + "@mui/x-data-grid": "catalog:", + "express": "catalog:", "@powersync/react": "workspace:*", "@powersync/web": "workspace:*", - "electron-squirrel-startup": "^1.0.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-router-dom": "^6.23.0" + "electron-squirrel-startup": "catalog:", + "react": "catalog:", + "react-dom": "catalog:", + "react-router-dom": "catalog:" }, "devDependencies": { - "@electron-forge/cli": "^7.4.0", - "@electron-forge/maker-deb": "^7.4.0", - "@electron-forge/maker-rpm": "^7.4.0", - "@electron-forge/maker-squirrel": "^7.4.0", - "@electron-forge/maker-zip": "^7.4.0", - "@electron-forge/plugin-auto-unpack-natives": "^7.4.0", - "@electron-forge/plugin-fuses": "^7.4.0", - "@electron-forge/plugin-vite": "^7.4.0", - "@electron/fuses": "^1.8.0", - "@swc/core": "~1.6.0", - "@types/express": "^4.17.21", - "@types/node": "^20.12.8", - "@types/react": "^18.3.1", - "@types/react-dom": "^18.3.0", - "@vitejs/plugin-react": "^4.2.1", - "autoprefixer": "^10.4.19", - "babel-loader": "^9.1.3", - "electron": "30.0.2", - "ts-node": "^10.9.2", - "typescript": "~4.5.5", - "vite": "^5.2.11", - "vite-plugin-require": "^1.1.14", - "vite-plugin-top-level-await": "^1.4.1", - "vite-plugin-wasm": "^3.3.0" + "@electron-forge/cli": "catalog:", + "@electron-forge/maker-deb": "catalog:", + "@electron-forge/maker-rpm": "catalog:", + "@electron-forge/maker-squirrel": "catalog:", + "@electron-forge/maker-zip": "catalog:", + "@electron-forge/plugin-auto-unpack-natives": "catalog:", + "@electron-forge/plugin-fuses": "catalog:", + "@electron-forge/plugin-vite": "catalog:", + "@electron/fuses": "catalog:", + "@swc/core": "catalog:", + "@types/express": "catalog:", + "@types/node": "catalog:", + "@types/react": "catalog:", + "@types/react-dom": "catalog:", + "@vitejs/plugin-react": "catalog:", + "autoprefixer": "catalog:", + "babel-loader": "catalog:", + "electron": "catalog:", + "ts-node": "catalog:", + "typescript": "catalog:", + "vite": "catalog:", + "vite-plugin-require": "catalog:", + "vite-plugin-top-level-await": "catalog:", + "vite-plugin-wasm": "catalog:" } } diff --git a/demos/example-nextjs/package.json b/demos/example-nextjs/package.json index 9cdf7a9b1..019b8e7ef 100644 --- a/demos/example-nextjs/package.json +++ b/demos/example-nextjs/package.json @@ -11,34 +11,34 @@ "test:build": "pnpm build" }, "dependencies": { - "@emotion/react": "^11.11.4", - "@emotion/styled": "^11.11.5", - "@fontsource/roboto": "^5.0.13", - "@journeyapps/wa-sqlite": "^1.3.2", - "@lexical/react": "^0.15.0", - "@mui/icons-material": "^5.15.18", - "@mui/material": "^5.15.18", + "@emotion/react": "catalog:", + "@emotion/styled": "catalog:", + "@fontsource/roboto": "catalog:", + "@journeyapps/wa-sqlite": "catalog:", + "@lexical/react": "catalog:", + "@mui/icons-material": "catalog:", + "@mui/material": "catalog:", "@powersync/react": "workspace:*", "@powersync/web": "workspace:*", - "lato-font": "^3.0.0", - "lexical": "^0.15.0", - "next": "14.2.3", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "lato-font": "catalog:", + "lexical": "catalog:", + "next": "catalog:", + "react": "catalog:", + "react-dom": "catalog:" }, "devDependencies": { - "@types/node": "^20.12.12", - "@types/react": "^18.3.2", - "@types/react-dom": "^18.3.0", - "autoprefixer": "^10.4.19", - "babel-loader": "^9.1.3", - "css-loader": "^6.11.0", - "eslint": "^8.57.0", - "eslint-config-next": "14.0.0", - "postcss": "^8.4.35", - "sass": "^1.77.2", - "sass-loader": "^13.3.3", - "style-loader": "^3.3.4", - "tailwindcss": "^3.4.3" + "@types/node": "catalog:", + "@types/react": "catalog:", + "@types/react-dom": "catalog:", + "autoprefixer": "catalog:", + "babel-loader": "catalog:", + "css-loader": "catalog:", + "eslint": "catalog:", + "eslint-config-next": "catalog:", + "postcss": "catalog:", + "sass": "catalog:", + "sass-loader": "catalog:", + "style-loader": "catalog:", + "tailwindcss": "catalog:" } } diff --git a/demos/example-node/package.json b/demos/example-node/package.json index f7bfa4f34..6645bd014 100644 --- a/demos/example-node/package.json +++ b/demos/example-node/package.json @@ -11,14 +11,14 @@ }, "dependencies": { "@powersync/node": "workspace:*", - "better-sqlite3": "^12.2.0", - "better-sqlite3-multiple-ciphers": "^12.2.0", - "dotenv": "^16.4.7", - "undici": "^7.11.0" + "better-sqlite3": "catalog:", + "better-sqlite3-multiple-ciphers": "catalog:", + "dotenv": "catalog:", + "undici": "catalog:" }, "devDependencies": { - "@types/better-sqlite3": "^7.6.13", - "ts-node": "^10.9.2", - "typescript": "^5.8.2" + "@types/better-sqlite3": "catalog:", + "ts-node": "catalog:", + "typescript": "catalog:" } } diff --git a/demos/example-vite-encryption/package.json b/demos/example-vite-encryption/package.json index 34b93d69e..15e8f26de 100644 --- a/demos/example-vite-encryption/package.json +++ b/demos/example-vite-encryption/package.json @@ -14,9 +14,9 @@ "@powersync/web": "workspace:*" }, "devDependencies": { - "@swc/core": "~1.6.0", - "vite": "^5.0.12", - "vite-plugin-top-level-await": "^1.4.1", - "vite-plugin-wasm": "^3.3.0" + "@swc/core": "catalog:", + "vite": "catalog:", + "vite-plugin-top-level-await": "catalog:", + "vite-plugin-wasm": "catalog:" } } diff --git a/demos/example-vite/package.json b/demos/example-vite/package.json index 9a3afcf33..ee0160da5 100644 --- a/demos/example-vite/package.json +++ b/demos/example-vite/package.json @@ -14,9 +14,9 @@ "@powersync/web": "workspace:*" }, "devDependencies": { - "@swc/core": "~1.6.0", - "vite": "^5.0.12", - "vite-plugin-top-level-await": "^1.4.1", - "vite-plugin-wasm": "^3.3.0" + "@swc/core": "catalog:", + "vite": "catalog:", + "vite-plugin-top-level-await": "catalog:", + "vite-plugin-wasm": "catalog:" } } diff --git a/demos/example-webpack/package.json b/demos/example-webpack/package.json index 1d65cb6ee..d92ac968c 100644 --- a/demos/example-webpack/package.json +++ b/demos/example-webpack/package.json @@ -12,10 +12,10 @@ "@powersync/web": "workspace:*" }, "devDependencies": { - "@types/webpack": "^5.28.5", - "html-webpack-plugin": "^5.6.0", - "serve": "^14.2.1", - "webpack": "^5.90.1", - "webpack-cli": "^5.1.4" + "@types/webpack": "catalog:", + "html-webpack-plugin": "catalog:", + "serve": "catalog:", + "webpack": "catalog:", + "webpack-cli": "catalog:" } } diff --git a/demos/react-multi-client/package.json b/demos/react-multi-client/package.json index 1d7f1735b..758dfc996 100644 --- a/demos/react-multi-client/package.json +++ b/demos/react-multi-client/package.json @@ -10,32 +10,31 @@ "test:build": "pnpm build" }, "dependencies": { - "@journeyapps/wa-sqlite": "^1.3.2", + "@journeyapps/wa-sqlite": "catalog:", "@powersync/react": "workspace:*", "@powersync/web": "workspace:*", - "@supabase/supabase-js": "^2.43.1", - "@vitejs/plugin-react": "^4.2.1", - "@webflow/webflow-cli": "^1.6.9", - "async-mutex": "^0.5.0", - "autoprefixer": "10.4.14", - "lodash": "^4.17.21", - "postcss": "8.4.27", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "@supabase/supabase-js": "catalog:", + "@vitejs/plugin-react": "catalog:", + "@webflow/webflow-cli": "catalog:", + "async-mutex": "catalog:", + "autoprefixer": "catalog:", + "lodash": "catalog:", + "postcss": "catalog:", + "react": "catalog:", + "react-dom": "catalog:" }, "devDependencies": { - "@swc/core": "~1.6.0", - "@types/cors": "~2.8.17", - "@types/lodash": "^4.14.202", - "@types/node": "^20.10.0", - "@types/react": "^18.2.38", - "@types/react-dom": "^18.2.17", - "prettier": "^3.1.0", - "supabase": "^1.165.0", - "typescript": "^5.3.2", - "vite": "^5.1.5", - "vite-plugin-pwa": "^0.19.2", - "vite-plugin-top-level-await": "^1.4.1", - "vite-plugin-wasm": "^3.3.0" + "@swc/core": "catalog:", + "@types/lodash": "catalog:", + "@types/node": "catalog:", + "@types/react": "catalog:", + "@types/react-dom": "catalog:", + "prettier": "catalog:", + "supabase": "catalog:", + "typescript": "catalog:", + "vite": "catalog:", + "vite-plugin-pwa": "catalog:", + "vite-plugin-top-level-await": "catalog:", + "vite-plugin-wasm": "catalog:" } } diff --git a/demos/react-native-barebones-opsqlite/package.json b/demos/react-native-barebones-opsqlite/package.json index 4aa90cc35..2b6ab6285 100644 --- a/demos/react-native-barebones-opsqlite/package.json +++ b/demos/react-native-barebones-opsqlite/package.json @@ -9,29 +9,29 @@ "start": "react-native start" }, "dependencies": { - "@azure/core-asynciterator-polyfill": "^1.0.2", - "@op-engineering/op-sqlite": "^14.0.2", + "@azure/core-asynciterator-polyfill": "catalog:", + "@op-engineering/op-sqlite": "catalog:", "@powersync/op-sqlite": "workspace:*", "@powersync/common": "workspace:*", "@powersync/react-native": "workspace:*", "@powersync/react": "workspace:*", - "react": "18.3.1", - "react-native": "0.77.0" + "react": "catalog:", + "react-native": "catalog:" }, "devDependencies": { - "@babel/core": "^7.26.7", - "@babel/plugin-transform-async-generator-functions": "^7.26.8", - "@babel/preset-env": "^7.26.7", - "@babel/runtime": "^7.26.7", - "@react-native-community/cli": "15.1.3", - "@react-native-community/cli-platform-android": "15.1.3", - "@react-native-community/cli-platform-ios": "15.1.3", - "@react-native/babel-preset": "0.77.0", - "@react-native/eslint-config": "0.77.0", - "@react-native/metro-config": "0.77.0", - "@react-native/typescript-config": "0.77.0", - "@types/react": "^18.3.18", - "typescript": "^5.3.3" + "@babel/core": "catalog:", + "@babel/plugin-transform-async-generator-functions": "catalog:", + "@babel/preset-env": "catalog:", + "@babel/runtime": "catalog:", + "@react-native-community/cli": "catalog:", + "@react-native-community/cli-platform-android": "catalog:", + "@react-native-community/cli-platform-ios": "catalog:", + "@react-native/babel-preset": "catalog:", + "@react-native/eslint-config": "catalog:", + "@react-native/metro-config": "catalog:", + "@react-native/typescript-config": "catalog:", + "@types/react": "catalog:", + "typescript": "catalog:" }, "engines": { "node": ">=18" diff --git a/demos/react-native-supabase-group-chat/package.json b/demos/react-native-supabase-group-chat/package.json index f9d3ef76a..a4cfbe3fb 100644 --- a/demos/react-native-supabase-group-chat/package.json +++ b/demos/react-native-supabase-group-chat/package.json @@ -19,52 +19,52 @@ "lint": "eslint src" }, "dependencies": { - "@azure/core-asynciterator-polyfill": "^1.0.2", - "@expo/metro-runtime": "^4.0.1", - "@faker-js/faker": "8.3.1", - "@journeyapps/react-native-quick-sqlite": "^2.4.9", + "@azure/core-asynciterator-polyfill": "catalog:", + "@expo/metro-runtime": "catalog:", + "@faker-js/faker": "catalog:", + "@journeyapps/react-native-quick-sqlite": "catalog:", "@powersync/common": "workspace:*", "@powersync/react": "workspace:*", "@powersync/react-native": "workspace:*", - "@react-native-async-storage/async-storage": "1.23.1", - "@shopify/flash-list": "1.7.3", - "@supabase/supabase-js": "2.39.0", - "@tamagui/animations-react-native": "1.79.6", - "@tamagui/babel-plugin": "1.79.6", - "@tamagui/config": "1.79.6", - "@tamagui/font-inter": "1.79.6", - "@tamagui/lucide-icons": "1.79.6", - "@tamagui/theme-base": "1.79.6", - "date-fns": "^2.30.0", - "expo": "52.0.46", - "expo-build-properties": "~0.13.2", - "expo-crypto": "~14.0.2", - "expo-dev-client": "~5.0.20", - "expo-linking": "~7.0.5", - "expo-router": "4.0.21", - "expo-splash-screen": "~0.29.22", - "expo-status-bar": "~2.0.1", - "react": "18.3.1", - "react-dom": "18.3.1", - "react-native": "0.76.9", - "react-native-gesture-handler": "~2.20.2", - "react-native-pager-view": "6.5.1", - "react-native-reanimated": "~3.16.7", - "react-native-safe-area-context": "4.12.0", - "react-native-screens": "~4.4.0", - "react-native-svg": "15.8.0", - "react-native-web": "0.19.13", - "tamagui": "1.79.6" + "@react-native-async-storage/async-storage": "catalog:", + "@shopify/flash-list": "catalog:", + "@supabase/supabase-js": "catalog:", + "@tamagui/animations-react-native": "catalog:", + "@tamagui/babel-plugin": "catalog:", + "@tamagui/config": "catalog:", + "@tamagui/font-inter": "catalog:", + "@tamagui/lucide-icons": "catalog:", + "@tamagui/theme-base": "catalog:", + "date-fns": "catalog:", + "expo": "catalog:", + "expo-build-properties": "catalog:", + "expo-crypto": "catalog:", + "expo-dev-client": "catalog:", + "expo-linking": "catalog:", + "expo-router": "catalog:", + "expo-splash-screen": "catalog:", + "expo-status-bar": "catalog:", + "react": "catalog:", + "react-dom": "catalog:", + "react-native": "catalog:", + "react-native-gesture-handler": "catalog:", + "react-native-pager-view": "catalog:", + "react-native-reanimated": "catalog:", + "react-native-safe-area-context": "catalog:", + "react-native-screens": "catalog:", + "react-native-svg": "catalog:", + "react-native-web": "catalog:", + "tamagui": "catalog:" }, "devDependencies": { - "@babel/core": "7.26.10", - "@babel/plugin-transform-async-generator-functions": "^7.23.4", - "@types/react": "^18.3.18", - "eas-cli": "^7.2.0", - "eslint": "8.55.0", - "eslint-config-universe": "12.0.0", - "prettier": "^3.1.0", - "typescript": "5.3.3" + "@babel/core": "catalog:", + "@babel/plugin-transform-async-generator-functions": "catalog:", + "@types/react": "catalog:", + "eas-cli": "catalog:", + "eslint": "catalog:", + "eslint-config-universe": "catalog:", + "prettier": "catalog:", + "typescript": "catalog:" }, "license": "UNLICENSED", "private": true diff --git a/demos/react-native-supabase-todolist/package.json b/demos/react-native-supabase-todolist/package.json index 1d841b4b1..9f4f49983 100644 --- a/demos/react-native-supabase-todolist/package.json +++ b/demos/react-native-supabase-todolist/package.json @@ -8,52 +8,52 @@ "clean": "watchman watch-del-all && rm -rf .expo" }, "dependencies": { - "@azure/core-asynciterator-polyfill": "^1.0.2", - "@expo/vector-icons": "^14.0.3", - "@journeyapps/react-native-quick-sqlite": "^2.4.9", + "@azure/core-asynciterator-polyfill": "catalog:", + "@expo/vector-icons": "catalog:", + "@journeyapps/react-native-quick-sqlite": "catalog:", "@powersync/attachments": "workspace:*", "@powersync/common": "workspace:*", "@powersync/react": "workspace:*", "@powersync/react-native": "workspace:*", - "@react-native-community/masked-view": "^0.1.11", - "@react-navigation/drawer": "^7.1.1", - "@react-navigation/native": "^7.0.14", - "@rneui/base": "4.0.0-rc.8", - "@rneui/themed": "4.0.0-rc.8", - "@supabase/supabase-js": "~2.33.1", - "base64-arraybuffer": "^1.0.2", - "expo": "52.0.46", - "expo-build-properties": "~0.13.2", - "expo-camera": "~16.0.18", - "expo-constants": "~17.0.8", - "expo-crypto": "~14.0.2", - "expo-file-system": "18.0.12", - "expo-linking": "~7.0.5", - "expo-router": "4.0.21", - "expo-secure-store": "~14.0.1", - "expo-splash-screen": "~0.29.22", - "expo-status-bar": "~2.0.1", - "lodash": "^4.17.21", - "react": "18.3.1", - "react-native": "0.76.9", - "react-native-encrypted-storage": "^4.0.3", - "react-native-gesture-handler": "~2.20.2", - "react-native-prompt-android": "^1.1.0", - "react-native-reanimated": "~3.16.7", - "react-native-reanimated-table": "^0.0.2", - "react-native-safe-area-context": "4.12.0", - "react-native-screens": "~4.4.0", - "react-navigation-stack": "^2.10.4" + "@react-native-masked-view/masked-view": "catalog:", + "@react-navigation/drawer": "catalog:", + "@react-navigation/native": "catalog:", + "@rneui/base": "catalog:", + "@rneui/themed": "catalog:", + "@supabase/supabase-js": "catalog:", + "base64-arraybuffer": "catalog:", + "expo": "catalog:", + "expo-build-properties": "catalog:", + "expo-camera": "catalog:", + "expo-constants": "catalog:", + "expo-crypto": "catalog:", + "expo-file-system": "catalog:", + "expo-linking": "catalog:", + "expo-router": "catalog:", + "expo-secure-store": "catalog:", + "expo-splash-screen": "catalog:", + "expo-status-bar": "catalog:", + "lodash": "catalog:", + "react": "catalog:", + "react-native": "catalog:", + "react-native-encrypted-storage": "catalog:", + "react-native-gesture-handler": "catalog:", + "react-native-prompt-android": "catalog:", + "react-native-reanimated": "catalog:", + "react-native-reanimated-table": "catalog:", + "react-native-safe-area-context": "catalog:", + "react-native-screens": "catalog:", + "@react-navigation/stack": "catalog:" }, "devDependencies": { - "@babel/core": "^7.26.10", - "@babel/plugin-transform-async-generator-functions": "^7.23.9", - "@babel/preset-env": "^7.23.9", - "@types/lodash": "^4.14.202", - "@types/react": "~18.3.18", - "babel-preset-expo": "^12.0.10", - "prettier": "^3.2.5", - "typescript": "^5.3.3" + "@babel/core": "catalog:", + "@babel/plugin-transform-async-generator-functions": "catalog:", + "@babel/preset-env": "catalog:", + "@types/lodash": "catalog:", + "@types/react": "catalog:", + "babel-preset-expo": "catalog:", + "prettier": "catalog:", + "typescript": "catalog:" }, "private": true } diff --git a/demos/react-native-web-supabase-todolist/package.json b/demos/react-native-web-supabase-todolist/package.json index a88d0993f..0898713c2 100644 --- a/demos/react-native-web-supabase-todolist/package.json +++ b/demos/react-native-web-supabase-todolist/package.json @@ -10,60 +10,60 @@ "clean": "watchman watch-del-all && rm -rf .expo" }, "dependencies": { - "@azure/core-asynciterator-polyfill": "^1.0.2", - "@expo/metro-runtime": "^4.0.1", - "@expo/vector-icons": "^14.0.2", - "@journeyapps/react-native-quick-sqlite": "^2.4.9", - "@journeyapps/wa-sqlite": "^1.3.2", + "@azure/core-asynciterator-polyfill": "catalog:", + "@expo/metro-runtime": "catalog:", + "@expo/vector-icons": "catalog:", + "@journeyapps/react-native-quick-sqlite": "catalog:", + "@journeyapps/wa-sqlite": "catalog:", "@powersync/attachments": "workspace:*", "@powersync/react": "workspace:*", "@powersync/react-native": "workspace:*", "@powersync/web": "workspace:*", - "@react-native-async-storage/async-storage": "1.23.1", - "@react-navigation/bottom-tabs": "^7.2.0", - "@react-navigation/drawer": "^7.1.1", - "@react-navigation/native": "^7.0.14", - "@supabase/supabase-js": "^2.45.4", - "@tanstack/react-query": "^5.66.0", - "base64-arraybuffer": "^1.0.2", - "expo": "52.0.46", - "expo-blur": "~14.0.3", - "expo-camera": "~16.0.18", - "expo-constants": "~17.0.5", - "expo-crypto": "~14.0.2", - "expo-font": "~13.0.3", - "expo-haptics": "~14.0.1", - "expo-linking": "~7.0.5", - "expo-router": "4.0.21", - "expo-secure-store": "^14.0.1", - "expo-splash-screen": "~0.29.21", - "expo-status-bar": "~2.0.1", - "expo-symbols": "~0.2.2", - "expo-system-ui": "~4.0.8", - "expo-web-browser": "~14.0.2", - "react": "18.3.1", - "react-dom": "18.3.1", - "react-native": "0.76.9", - "react-native-elements": "^3.4.3", - "react-native-gesture-handler": "~2.20.2", - "react-native-logs": "^5.3.0", - "react-native-prompt-android": "^1.1.0", - "react-native-reanimated": "~3.16.1", - "react-native-safe-area-context": "4.12.0", - "react-native-screens": "~4.4.0", - "react-native-web": "~0.19.13", - "react-native-webview": "13.12.5", - "zod": "^3.24.2" + "@react-native-async-storage/async-storage": "catalog:", + "@react-navigation/bottom-tabs": "catalog:", + "@react-navigation/drawer": "catalog:", + "@react-navigation/native": "catalog:", + "@supabase/supabase-js": "catalog:", + "@tanstack/react-query": "catalog:", + "base64-arraybuffer": "catalog:", + "expo": "catalog:", + "expo-blur": "catalog:", + "expo-camera": "catalog:", + "expo-constants": "catalog:", + "expo-crypto": "catalog:", + "expo-font": "catalog:", + "expo-haptics": "catalog:", + "expo-linking": "catalog:", + "expo-router": "catalog:", + "expo-secure-store": "catalog:", + "expo-splash-screen": "catalog:", + "expo-status-bar": "catalog:", + "expo-symbols": "catalog:", + "expo-system-ui": "catalog:", + "expo-web-browser": "catalog:", + "react": "catalog:", + "react-dom": "catalog:", + "react-native": "catalog:", + "react-native-elements": "catalog:", + "react-native-gesture-handler": "catalog:", + "react-native-logs": "catalog:", + "react-native-prompt-android": "catalog:", + "react-native-reanimated": "catalog:", + "react-native-safe-area-context": "catalog:", + "react-native-screens": "catalog:", + "react-native-web": "catalog:", + "react-native-webview": "catalog:", + "zod": "catalog:" }, "devDependencies": { - "@babel/core": "^7.25.2", - "@types/jest": "^29.5.12", - "@types/react": "~18.3.12", - "@types/react-test-renderer": "^18.3.0", - "jest": "^29.2.1", - "jest-expo": "~52.0.3", - "react-test-renderer": "18.3.1", - "typescript": "^5.3.3" + "@babel/core": "catalog:", + "@types/jest": "catalog:", + "@types/react": "catalog:", + "@types/react-test-renderer": "catalog:", + "jest": "catalog:", + "jest-expo": "catalog:", + "react-test-renderer": "catalog:", + "typescript": "catalog:" }, "private": true } diff --git a/demos/react-supabase-todolist-optional-sync/package.json b/demos/react-supabase-todolist-optional-sync/package.json index 7c51c0e54..2c612f1dc 100644 --- a/demos/react-supabase-todolist-optional-sync/package.json +++ b/demos/react-supabase-todolist-optional-sync/package.json @@ -11,32 +11,32 @@ "dependencies": { "@powersync/react": "workspace:*", "@powersync/web": "workspace:*", - "@emotion/react": "11.11.4", - "@emotion/styled": "11.11.5", - "@journeyapps/wa-sqlite": "^1.3.2", - "@mui/icons-material": "^5.15.12", - "@mui/material": "^5.15.12", - "@mui/x-data-grid": "^6.19.6", - "@supabase/supabase-js": "^2.39.7", - "formik": "^2.4.6", - "lodash": "^4.17.21", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-router-dom": "^6.22.3" + "@emotion/react": "catalog:", + "@emotion/styled": "catalog:", + "@journeyapps/wa-sqlite": "catalog:", + "@mui/icons-material": "catalog:", + "@mui/material": "catalog:", + "@mui/x-data-grid": "catalog:", + "@supabase/supabase-js": "catalog:", + "formik": "catalog:", + "lodash": "catalog:", + "react": "catalog:", + "react-dom": "catalog:", + "react-router-dom": "catalog:" }, "devDependencies": { - "@swc/core": "~1.6.0", - "@types/lodash": "^4.14.202", - "@types/node": "^20.11.25", - "@types/react": "^18.2.64", - "@types/react-dom": "^18.2.21", - "@vitejs/plugin-react": "^4.2.1", - "autoprefixer": "^10.4.18", - "babel-loader": "^9.1.3", - "typescript": "^5.4.2", - "vite": "^5.1.5", - "vite-plugin-pwa": "^0.19.2", - "vite-plugin-top-level-await": "^1.4.1", - "vite-plugin-wasm": "^3.3.0" + "@swc/core": "catalog:", + "@types/lodash": "catalog:", + "@types/node": "catalog:", + "@types/react": "catalog:", + "@types/react-dom": "catalog:", + "@vitejs/plugin-react": "catalog:", + "autoprefixer": "catalog:", + "babel-loader": "catalog:", + "typescript": "catalog:", + "vite": "catalog:", + "vite-plugin-pwa": "catalog:", + "vite-plugin-top-level-await": "catalog:", + "vite-plugin-wasm": "catalog:" } } diff --git a/demos/react-supabase-todolist-optional-sync/src/app/page.tsx b/demos/react-supabase-todolist-optional-sync/src/app/page.tsx index 9be225013..1c64ec434 100644 --- a/demos/react-supabase-todolist-optional-sync/src/app/page.tsx +++ b/demos/react-supabase-todolist-optional-sync/src/app/page.tsx @@ -45,7 +45,7 @@ export default function EntryPage() { return ( - + diff --git a/demos/react-supabase-todolist-optional-sync/src/app/views/sql-console/page.tsx b/demos/react-supabase-todolist-optional-sync/src/app/views/sql-console/page.tsx index 6b0a13e1d..72e84395f 100644 --- a/demos/react-supabase-todolist-optional-sync/src/app/views/sql-console/page.tsx +++ b/demos/react-supabase-todolist-optional-sync/src/app/views/sql-console/page.tsx @@ -12,7 +12,7 @@ export type LoginFormParams = { const DEFAULT_QUERY = 'SELECT * FROM lists'; export default function SQLConsolePage() { - const inputRef = React.useRef(); + const inputRef = React.useRef(null); const [query, setQuery] = React.useState(DEFAULT_QUERY); const { data: querySQLResult } = useQuery(query); @@ -34,7 +34,7 @@ export default function SQLConsolePage() { - + - + diff --git a/demos/react-supabase-todolist-optional-sync/vite.config.mts b/demos/react-supabase-todolist-optional-sync/vite.config.mts index ab0b7d202..91bdb7e6c 100644 --- a/demos/react-supabase-todolist-optional-sync/vite.config.mts +++ b/demos/react-supabase-todolist-optional-sync/vite.config.mts @@ -34,6 +34,9 @@ export default defineConfig({ VitePWA({ registerType: 'autoUpdate', includeAssets: ['powersync-logo.svg', 'supabase-logo.png', 'favicon.ico'], + workbox: { + maximumFileSizeToCacheInBytes: 3000000 + }, manifest: { theme_color: '#c44eff', background_color: '#c44eff', diff --git a/demos/react-supabase-todolist-sync-streams/package.json b/demos/react-supabase-todolist-sync-streams/package.json index 41b859460..a13c65f14 100644 --- a/demos/react-supabase-todolist-sync-streams/package.json +++ b/demos/react-supabase-todolist-sync-streams/package.json @@ -11,32 +11,32 @@ "dependencies": { "@powersync/react": "workspace:*", "@powersync/web": "workspace:*", - "@emotion/react": "11.11.4", - "@emotion/styled": "11.11.5", - "@journeyapps/wa-sqlite": "^1.3.1", - "@mui/icons-material": "^5.15.12", - "@mui/material": "^5.15.12", - "@mui/x-data-grid": "^6.19.6", - "@supabase/supabase-js": "^2.39.7", - "formik": "^2.4.6", - "lodash": "^4.17.21", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-router-dom": "^6.22.3" + "@emotion/react": "catalog:", + "@emotion/styled": "catalog:", + "@journeyapps/wa-sqlite": "catalog:", + "@mui/icons-material": "catalog:", + "@mui/material": "catalog:", + "@mui/x-data-grid": "catalog:", + "@supabase/supabase-js": "catalog:", + "formik": "catalog:", + "lodash": "catalog:", + "react": "catalog:", + "react-dom": "catalog:", + "react-router-dom": "catalog:" }, "devDependencies": { - "@swc/core": "~1.6.0", - "@types/lodash": "^4.14.202", - "@types/node": "^20.11.25", - "@types/react": "^18.2.64", - "@types/react-dom": "^18.2.21", - "@vitejs/plugin-react": "^4.2.1", - "autoprefixer": "^10.4.18", - "babel-loader": "^9.1.3", - "typescript": "^5.4.2", - "vite": "^5.1.5", - "vite-plugin-pwa": "^0.19.2", - "vite-plugin-top-level-await": "^1.4.1", - "vite-plugin-wasm": "^3.3.0" + "@swc/core": "catalog:", + "@types/lodash": "catalog:", + "@types/node": "catalog:", + "@types/react": "catalog:", + "@types/react-dom": "catalog:", + "@vitejs/plugin-react": "catalog:", + "autoprefixer": "catalog:", + "babel-loader": "catalog:", + "typescript": "catalog:", + "vite": "catalog:", + "vite-plugin-pwa": "catalog:", + "vite-plugin-top-level-await": "catalog:", + "vite-plugin-wasm": "catalog:" } } diff --git a/demos/react-supabase-todolist-sync-streams/src/app/page.tsx b/demos/react-supabase-todolist-sync-streams/src/app/page.tsx index f17886aac..8740b327d 100644 --- a/demos/react-supabase-todolist-sync-streams/src/app/page.tsx +++ b/demos/react-supabase-todolist-sync-streams/src/app/page.tsx @@ -51,7 +51,7 @@ export default function EntryPage() { return ( - + diff --git a/demos/react-supabase-todolist-sync-streams/src/app/router.tsx b/demos/react-supabase-todolist-sync-streams/src/app/router.tsx index 93647f6a9..e304e9c1d 100644 --- a/demos/react-supabase-todolist-sync-streams/src/app/router.tsx +++ b/demos/react-supabase-todolist-sync-streams/src/app/router.tsx @@ -7,7 +7,7 @@ import TodoListsPage from '@/app/views/todo-lists/page'; import ViewsLayout from '@/app/views/layout'; import SQLConsolePage from '@/app/views/sql-console/page'; import { useSupabase } from '@/components/providers/SystemProvider'; -import React from 'react'; +import React, { ReactNode } from 'react'; export const TODO_LISTS_ROUTE = '/views/todo-lists'; export const TODO_EDIT_ROUTE = '/views/todo-lists/:id'; @@ -16,11 +16,11 @@ export const REGISTER_ROUTE = '/auth/register'; export const SQL_CONSOLE_ROUTE = '/sql-console'; interface AuthGuardProps { - children: JSX.Element; + children: ReactNode; } const AuthGuard = ({ children }: AuthGuardProps) => { - const connector = useSupabase() + const connector = useSupabase(); const navigate = useNavigate(); React.useEffect(() => { @@ -39,7 +39,7 @@ const AuthGuard = ({ children }: AuthGuardProps) => { if (!connector.currentSession) { navigate(LOGIN_ROUTE); } - } + }; if (connector.ready) { loginGuard(); } else { @@ -50,7 +50,6 @@ const AuthGuard = ({ children }: AuthGuardProps) => { }); return () => l?.(); } - }, []); return children; }; @@ -96,4 +95,4 @@ export const router = createBrowserRouter([ } ] } -]); \ No newline at end of file +]); diff --git a/demos/react-supabase-todolist-sync-streams/src/app/views/sql-console/page.tsx b/demos/react-supabase-todolist-sync-streams/src/app/views/sql-console/page.tsx index 4cb0e84fb..294aefd02 100644 --- a/demos/react-supabase-todolist-sync-streams/src/app/views/sql-console/page.tsx +++ b/demos/react-supabase-todolist-sync-streams/src/app/views/sql-console/page.tsx @@ -51,7 +51,7 @@ const TableDisplay = React.memo(({ data }: { data: ReadonlyArray }) => { }); export default function SQLConsolePage() { - const inputRef = React.useRef(); + const inputRef = React.useRef(null); const [query, setQuery] = React.useState(DEFAULT_QUERY); const { data, error } = useQuery(query, [], { @@ -73,7 +73,7 @@ export default function SQLConsolePage() { - + - +