Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat (client): support for PG on the client #1038

Merged
merged 156 commits into from
May 2, 2024
Merged
Show file tree
Hide file tree
Changes from 133 commits
Commits
Show all changes
156 commits
Select commit Hold shift + click to select a range
4ae39be
Add support for ?dialect=postgresql to /api/migrations
alco Feb 15, 2024
1bef2d8
Deprecate PgColumnType.sqlite_type
alco Feb 19, 2024
57cb5c8
Extend protocol with SQL dialect in start replication request.
kevin-dp Mar 14, 2024
73c49d1
Modified SatelliteClient to specify the SQL dialect in the StartRepli…
kevin-dp Mar 14, 2024
072eba4
Support different dialects when encoding migrations for Satellite
alco Mar 14, 2024
6bbe308
Update generated protocol messages
alco Feb 19, 2024
a266d46
Driver for Node Postgres and Tauri Postgres.
kevin-dp Feb 7, 2024
991ae2d
Removed obsolete comments and logs
kevin-dp Feb 15, 2024
d708255
Modify migrator and initial migration to work with both SQLite and Po…
kevin-dp Feb 7, 2024
c0e9ae0
Port triggers to also support Postgres
kevin-dp Feb 8, 2024
a97d0d4
Added test for triggers in PG
kevin-dp Feb 12, 2024
23e076a
Port the Satellite process to Postgres and all unit tests.
kevin-dp Feb 15, 2024
e84583c
Common test file for process timing tests and make PG and SQLite vers…
kevin-dp Feb 21, 2024
f32b06f
Refactored process.tags.test into a common file for both PG and SQLite
kevin-dp Feb 21, 2024
adfa31c
Modified getTableInfo in sqlite builder to return only the columns we…
kevin-dp Feb 22, 2024
31524eb
Refactored process.migration.test
kevin-dp Feb 22, 2024
9ade95f
Refactored unit test for process
kevin-dp Feb 22, 2024
b0e6431
Fix bulk insert for PG
kevin-dp Feb 27, 2024
f5d456a
Refactored Satellite unit tests to have PG and SQLite versions reuse …
kevin-dp Mar 4, 2024
a454749
Refactorings for database adapter
kevin-dp Mar 5, 2024
4c573bf
Refactored migrator bundle tests
kevin-dp Mar 5, 2024
369c56a
Refactor migrator builder tests
kevin-dp Mar 5, 2024
33ae045
Remove obsolete comments
kevin-dp Mar 5, 2024
fa09c20
Port the Satellite process to Postgres and all unit tests.
kevin-dp Feb 15, 2024
f7b59a1
Modified CLI and generator to bundle migrations for both SQLite and P…
kevin-dp Feb 15, 2024
aa1c411
Removed obsolete code
kevin-dp Mar 5, 2024
ecd0ea2
Fixes after rebase
kevin-dp Mar 5, 2024
fca065c
Update minimal expo-sqlite version needed for expo-sqlite/next
kevin-dp Mar 5, 2024
a23910e
Fixes after rebase
kevin-dp Mar 12, 2024
3f34936
Modify DAL to transform JS input to PG values and the other way around.
kevin-dp Mar 12, 2024
7a867d3
Style improvements
kevin-dp Mar 12, 2024
1fcfe74
Reorganize test/client/model structure for PG and SQLite tests
kevin-dp Mar 12, 2024
740404b
Remove obsolete comments
kevin-dp Mar 12, 2024
118391c
Updated package.json
kevin-dp Mar 12, 2024
1cf85ab
Fixes after rebase
kevin-dp Mar 14, 2024
59db241
(WIP) Porting e2e tests for PG
kevin-dp Mar 14, 2024
d7be475
Fixes after rebase
kevin-dp Apr 4, 2024
9c315d0
Modify PG query for table info to return index of column in PK
kevin-dp Apr 4, 2024
c9bfb81
Turn bytea values into hexadecimal strings for encoding in JSON row i…
kevin-dp Apr 4, 2024
561602a
Extend query builder with function to create hexadecimal values.
kevin-dp Apr 4, 2024
e915499
Expect quoted table name in SQL builder tests
kevin-dp Apr 4, 2024
556bc8c
Fix positional params in q2 based on builder
kevin-dp Apr 4, 2024
c5b326c
Fix some blob and tag tests
kevin-dp Apr 4, 2024
72978ba
Fix process tests
kevin-dp Apr 8, 2024
bc31668
Make statement for inserting additional data compatible with Postgres
kevin-dp Apr 8, 2024
f4bd207
Fix some failing process tests
kevin-dp Apr 8, 2024
b28de3d
Fix blob type support unit test for PG
kevin-dp Apr 8, 2024
e458234
Fixes to unit tests
kevin-dp Apr 8, 2024
7cc404f
Remove obsolete method in query builder
kevin-dp Apr 8, 2024
66d02e6
Fix generated client
kevin-dp Apr 8, 2024
390cb68
Adapt client generation unit tests with PG support.
kevin-dp Apr 8, 2024
5964f92
Pass conerter to replication transform
msfstef Apr 9, 2024
bdd6530
Introduce default namespaces for PG and SQLite
kevin-dp Apr 9, 2024
13e6098
Ported unit tests for SQL query building also to Postgres dialect
kevin-dp Apr 10, 2024
0b66b42
Fixes to e2e tests
kevin-dp Apr 10, 2024
b4a014b
Proper quoting of table names and field names
kevin-dp Apr 11, 2024
d6d1323
Float4 conversions for PG
kevin-dp Apr 11, 2024
3743848
Fix BYTEA e2e tests for PG on the client
kevin-dp Apr 16, 2024
ae2a984
Modify GH workflow for e2e to also run PG on client tests
kevin-dp Apr 16, 2024
c7d341f
Modify parsing of timestamptz by Electric to also allow formatting wi…
kevin-dp Apr 16, 2024
f15d86d
Fixes for unit tests and e2e tests
kevin-dp Apr 16, 2024
c7b24af
Fix unit test after rebase
kevin-dp Apr 16, 2024
4348a5c
Fixed query 4 in performSnapshot for PG.
kevin-dp Apr 16, 2024
8a8eff0
Fix unit test
kevin-dp Apr 16, 2024
8510b6e
Remove hardcoded namespace in DAL table class to use default namespace
kevin-dp Apr 16, 2024
b231685
Require all adapters to define a default namespace and fetch it in li…
kevin-dp Apr 16, 2024
80b973f
Extract SQLite/PG type encoders/decoders from common util file to the…
kevin-dp Apr 17, 2024
b8cfe9c
Extracted similar trigger tests for SQLite and PG into a common one.
kevin-dp Apr 17, 2024
530923f
Fix e2e TS client for blob test
kevin-dp Apr 17, 2024
50150bf
Revert unintentional change in e2e tests
kevin-dp Apr 17, 2024
2f9bac0
Fixed style issue
kevin-dp Apr 17, 2024
7dad7f1
Fix unit test for deserialisation of timestamptz values
kevin-dp Apr 17, 2024
6ce3fc6
Fixed date parsing
kevin-dp Apr 17, 2024
adb3eb1
Fixed SQLite compensation trigger
kevin-dp Apr 17, 2024
17a5663
Extend Electric unit test to check that timestamptz with +00 is valid
kevin-dp Apr 17, 2024
270fc6b
Updated CI to run single entrypoint that runs both SQLite and PG e2e …
kevin-dp Apr 17, 2024
566795f
Fix issue with dates that were inconsistent between SQLite and PG.
kevin-dp Apr 17, 2024
fddaaa4
Catch error that is thrown for stopping PG in the unit tests.
kevin-dp Apr 18, 2024
1d61d62
Set replication role to replica to disable FK checks when receiving s…
kevin-dp Apr 18, 2024
516f7ea
feature(client): PGlite driver and example (#1058)
samwillis Apr 18, 2024
5dc8fcc
Added PGlite and tauri sqlite to optional peer deps
kevin-dp Apr 18, 2024
7f20115
PGlite unit tests
kevin-dp Apr 22, 2024
6ed32f8
Fixed date and time support for PGlite
kevin-dp Apr 22, 2024
4b8ad75
Remove obsolete conversions from JSON (they are only needed once we s…
kevin-dp Apr 22, 2024
838a791
Added unit test for performSnapshot being stopped gracefully
kevin-dp Apr 22, 2024
ec294ee
Upgraded PGlite
kevin-dp Apr 22, 2024
b2f2624
Move common query from migrator to query builder
kevin-dp Apr 22, 2024
cf7b2f1
Modified ava configuration to allow running tests for a specific dialect
kevin-dp Apr 22, 2024
5cc79b4
Remove obsolete comment
kevin-dp Apr 22, 2024
af2a1c9
Small changes to tests
kevin-dp Apr 22, 2024
7fa4806
Add support for ?dialect=postgresql to /api/migrations
alco Feb 15, 2024
10f2449
Extend protocol with SQL dialect in start replication request.
kevin-dp Mar 14, 2024
02f3758
Modified SatelliteClient to specify the SQL dialect in the StartRepli…
kevin-dp Mar 14, 2024
ab664d5
Support different dialects when encoding migrations for Satellite
alco Mar 14, 2024
bf14493
Extend the SatOpMigrate message with enum type support
alco Jan 25, 2024
572ef35
Translate enum type DDL for SatOpMigrate messages
alco Jan 25, 2024
a083c29
Update generated protocol messages
alco Apr 17, 2024
ca6fcbe
Format TS code
alco Apr 18, 2024
1f28120
Do not include the CREATE TYPE statement for the SQLite dialecct
alco Apr 22, 2024
48f1783
fixup! Do not include the CREATE TYPE statement for the SQLite dialecct
alco Apr 22, 2024
9266255
Small fixes
kevin-dp Apr 23, 2024
c363718
Do not delay snapshot on start to next tick
kevin-dp Apr 23, 2024
e4934f6
Fix code style issues
kevin-dp Apr 23, 2024
7dfdae3
Fix e2e test for JSON values
kevin-dp Apr 23, 2024
a78f30b
Remove debug statements
kevin-dp Apr 23, 2024
2e4dc87
Fixed duplicate key
kevin-dp Apr 23, 2024
63adf95
Format Electric code
kevin-dp Apr 23, 2024
e0c3336
Fix enum assertion in Electric unit test
kevin-dp Apr 23, 2024
35e0029
Fix path for uploading lux results in CI
kevin-dp Apr 23, 2024
9aeccf0
Fixed path to lux logs in CI
kevin-dp Apr 23, 2024
fdb037d
Let migrationsFilePath take dialect as argument
kevin-dp Apr 23, 2024
b390851
Fixed isObject and isDataObject and their usages.
kevin-dp Apr 23, 2024
03ba5aa
Minor fix in date parsing
kevin-dp Apr 23, 2024
d5b5d57
Remove obsolete comment
kevin-dp Apr 23, 2024
7149f00
Rewrite it statements as switch in Postgres conversions
kevin-dp Apr 24, 2024
9b29216
Renamed variable in SQL builder
kevin-dp Apr 24, 2024
034d956
Turned if statements into switch in triggers
kevin-dp Apr 24, 2024
1d77131
Introduced no-op encoders/decoders for bytea
kevin-dp Apr 24, 2024
8409e4c
Decoder for JSONB
kevin-dp Apr 24, 2024
1c3c0c1
Log when client reconnects and syncs from lsn on Electric and match o…
kevin-dp Apr 25, 2024
bb7cd1a
Address stefanos' comments
kevin-dp Apr 25, 2024
08d3da3
Rename old test files which now contain the common test logic but do …
kevin-dp Apr 25, 2024
6d2c77f
Modify GH workflow to disable embedded-postgres tests in CI
kevin-dp Apr 25, 2024
687a00a
Fix namespace in SQLite trigger
kevin-dp Apr 29, 2024
a18cbfb
Enable PG triggers and fix compensation trigger
kevin-dp Apr 29, 2024
8449079
Remove double entry in package.json after rebase
kevin-dp Apr 29, 2024
a33fa29
Split e2e workflow in 2 in order to run the 03 tests with a matrix fo…
kevin-dp Apr 30, 2024
a0c6161
Do not enable PG triggers to always run, only run on local operations
kevin-dp Apr 30, 2024
7f03af3
Fix compensation trigger to read trigger flag from its own table.
kevin-dp Apr 30, 2024
b4c0952
Fixed lockfile after rebase
kevin-dp Apr 30, 2024
ee3ed1b
Disable restartability e2e test
kevin-dp Apr 30, 2024
b20f531
Remove duplicate key
kevin-dp Apr 30, 2024
eaf50dd
Address style comments
kevin-dp Apr 30, 2024
da2ecc8
Remove Kysely dependency
kevin-dp May 1, 2024
622b601
Remove unused file
kevin-dp May 1, 2024
9f4d49a
Renamed Record type to DbRecord
kevin-dp May 1, 2024
e248677
Serialise qualified table names with quotes around namespace and tabl…
kevin-dp May 1, 2024
42a0816
Modified tableInfo query to also take the namespace into account
kevin-dp May 1, 2024
d8c26e4
Catch PG unexpected rejection in test
kevin-dp May 1, 2024
3cbfca1
Improve countTablesIn signature
kevin-dp May 1, 2024
75c6f89
Address minor comments
kevin-dp May 1, 2024
e176211
Revert to public schema when inferring relations.
kevin-dp May 1, 2024
a247345
Fix the failing restartability e2e test
alco May 1, 2024
9c0ff82
Only build a SatOpLogAck message when it's actually needed
alco May 1, 2024
8ff5890
Fix TS code formatting
alco May 1, 2024
8521dfa
Improved function name in tests
kevin-dp May 2, 2024
acfd0fa
Move deferring and disabling FKs into 1 query builder method
kevin-dp May 2, 2024
e3996b5
Improved regex to parse qualified table names
kevin-dp May 2, 2024
4a5e45b
Modify getLocalTableNames to be more efficient in PG dialect
kevin-dp May 2, 2024
7a87aab
Style improvement
kevin-dp May 2, 2024
aefecbd
Remove unused tauri dependency
kevin-dp May 2, 2024
3fcebf5
Simplified transformFields
kevin-dp May 2, 2024
e8621ca
Properly quote identifiers in DAL
kevin-dp May 2, 2024
c53c877
Remove ElectricDatabase for node-postgres and directly electrify the …
kevin-dp May 2, 2024
94997c3
Remove unused function
kevin-dp May 2, 2024
009b06e
Changeset
kevin-dp May 2, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/clients_typescript_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ jobs:
- name: Build
run: make build
- name: Run tests
run: make tests
run: make tests-CI
maybe_publish:
runs-on: ubuntu-latest
needs: [test, check_types, verify_formatting]
Expand Down
94 changes: 92 additions & 2 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
# Root files
- "*"
- "!pnpm-lock.yaml"
- "!clients/typescript/**" # Satellite tests run in a separate workflow
# CI files not related to GH actions
- ".buildkite/**"
- "**/README.md"
Expand Down Expand Up @@ -80,7 +81,7 @@ jobs:

- run: make lux
- run: make deps pull
- run: make test_only
- run: make test-no-satellite
id: tests
env:
ELECTRIC_IMAGE_NAME: electric-sql-ci/electric
Expand All @@ -92,7 +93,7 @@ jobs:
if: ${{ failure() && steps.tests.outcome == 'failure' }}
with:
name: lux_logs
path: e2e/lux_logs/run_*
path: e2e/**/lux_logs/run_*
- name: Upload test results to Buildkite analytics
if: ${{ !cancelled() && steps.tests.outcome != 'skipped' && env.BUILDKITE_ANALYTICS_TOKEN != '' }}
working-directory: e2e/lux_logs/latest_run
Expand All @@ -110,3 +111,92 @@ jobs:
-F "run_env[commit_sha]=$GITHUB_SHA" \
-F "run_env[url]=https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" \
https://analytics-api.buildkite.com/v1/uploads

e2e_satellite_tests:
name: E2E Satellite tests
runs-on: electric-e2e-8-32
strategy:
matrix:
dialect: [SQLite, Postgres]
defaults:
run:
working-directory: e2e
env:
BUILDKITE_ANALYTICS_TOKEN: ${{ secrets.BUILDKITE_TEST_ANALYTICS_E2E }}
DIALECT: ${{ matrix.dialect }}
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0

- name: Inject slug/short variables
uses: rlespinasse/github-slug-action@v4
- name: Inject variables for `docker buildx` github actions caching
uses: crazy-max/ghaction-github-runtime@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Log in to the Container registry
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: erlef/setup-beam@v1
with:
otp-version: ${{ env.OTP_VERSION }}
elixir-version: ${{ env.ELIXIR_VERSION }}

- run: |
echo "ELECTRIC_VERSION=$(make --silent print_version_from_git)" >> $GITHUB_ENV
working-directory: components/electric
- run: make docker-build-ci
env:
ELECTRIC_IMAGE_NAME: electric-sql-ci/electric
working-directory: components/electric
- run: make docker-build-ws-client
env:
ELECTRIC_CLIENT_IMAGE_NAME: electric-sql-ci/electric-ws-client
working-directory: components/electric

- name: Cache built lux
uses: actions/cache@v3
with:
path: |
e2e/lux/bin
e2e/lux/ebin
e2e/lux/priv
key: ${{ runner.os }}-luxbuilt-${{ env.OTP_VERSION }}-${{ env.ELIXIR_VERSION }}

- run: make lux
- run: make deps pull
- run: make test-satellite-only
id: tests
env:
ELECTRIC_IMAGE_NAME: electric-sql-ci/electric
ELECTRIC_CLIENT_IMAGE_NAME: electric-sql-ci/electric-ws-client
ELECTRIC_IMAGE_TAG: ${{ env.ELECTRIC_VERSION }}

- name: Upload lux logs
uses: actions/upload-artifact@v3
if: ${{ failure() && steps.tests.outcome == 'failure' }}
with:
name: lux_logs
path: e2e/**/lux_logs/run_*
- name: Upload test results to Buildkite analytics
if: ${{ !cancelled() && steps.tests.outcome != 'skipped' && env.BUILDKITE_ANALYTICS_TOKEN != '' }}
working-directory: e2e/lux_logs/latest_run
run: |
curl \
-X POST \
--fail-with-body \
-H "Authorization: Token token=\"$BUILDKITE_ANALYTICS_TOKEN\"" \
-F "data=@lux_junit.xml" \
-F "format=junit" \
-F "run_env[CI]=github_actions" \
-F "run_env[key]=$GITHUB_ACTION-$GITHUB_RUN_NUMBER-$GITHUB_RUN_ATTEMPT" \
-F "run_env[number]=$GITHUB_RUN_NUMBER" \
-F "run_env[branch]=$GITHUB_REF" \
-F "run_env[commit_sha]=$GITHUB_SHA" \
-F "run_env[url]=https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" \
https://analytics-api.buildkite.com/v1/uploads
3 changes: 3 additions & 0 deletions clients/typescript/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ build-dev: node_modules
tests:
pnpm run test

tests-CI:
pnpm run test-CI

style:
prettier --check --loglevel warn . && eslint src --quiet

Expand Down
44 changes: 43 additions & 1 deletion clients/typescript/ava.config.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
const [major, minor, _patch] = process.versions.node.split('.').map(Number)

// Developers can provide a `TEST_ONLY_DIALECT` value of `postgres`, `pglite`, or `sqlite`
// to run the unit tests only for that dialect.
// Developers can also provide a `DISABLE_DIALECT` value of `postgres`, `pglite`, or `sqlite`
// to disable the unit tests for that dialect but run all others.
const testOnlyDialect = process.env.TEST_ONLY_DIALECT
const disableDialect = process.env.DISABLE_DIALECT

if (testOnlyDialect && disableDialect) {
throw new Error(
'Cannot set both TEST_ONLY_DIALECT and DISABLE_DIALECT environment variables.'
)
}

let loaderArg
if (
major > 20 ||
Expand All @@ -11,9 +24,38 @@ if (
loaderArg = '--loader=tsx'
}

const files = ['test/**/*.test.ts', 'test/**/*.test.tsx']
const ignorePostgres = ['!test/**/postgres/**']
const ignorePglite = ['!test/**/pglite/**']
const ignoreSqlite = ['!test/**/sqlite/**']

switch (testOnlyDialect) {
case 'postgres':
files.push(...ignorePglite, ...ignoreSqlite)
break
case 'pglite':
files.push(...ignorePostgres, ...ignoreSqlite)
break
case 'sqlite':
files.push(...ignorePostgres, ...ignorePglite)
break
}

switch (disableDialect) {
case 'postgres':
files.push(...ignorePostgres)
break
case 'pglite':
files.push(...ignorePglite)
break
case 'sqlite':
files.push(...ignoreSqlite)
break
}

export default {
timeout: '10m',
files: ['test/**/*.test.ts', 'test/**/*.test.tsx'],
files,
extensions: {
ts: 'module',
tsx: 'module',
Expand Down
37 changes: 34 additions & 3 deletions clients/typescript/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,10 @@
"./op-sqlite": "./dist/drivers/op-sqlite/index.js",
"./generic": "./dist/drivers/generic/index.js",
"./node": "./dist/drivers/better-sqlite3/index.js",
"./node-postgres": "./dist/drivers/node-postgres/index.js",
"./pglite": "./dist/drivers/pglite/index.js",
"./react": "./dist/frameworks/react/index.js",
"./tauri-postgres": "./dist/drivers/tauri-postgres/index.js",
"./vuejs": "./dist/frameworks/vuejs/index.js",
"./wa-sqlite": "./dist/drivers/wa-sqlite/index.js",
"./tauri": "./dist/drivers/tauri-sqlite/index.js",
Expand Down Expand Up @@ -90,9 +93,18 @@
"node": [
"./dist/drivers/better-sqlite3/index.d.ts"
],
"node-postgres": [
"./dist/drivers/node-postgres/index.d.ts"
],
"pglite": [
"./dist/drivers/pglite/index.d.ts"
],
"react": [
"./dist/frameworks/react/index.d.ts"
],
"tauri-postgres": [
"./dist/drivers/tauri-postgres/index.d.ts"
],
"vuejs": [
"./dist/frameworks/vuejs/index.d.ts"
],
Expand Down Expand Up @@ -152,6 +164,7 @@
"build": "shx rm -rf dist && npm run build:copy-docker && concurrently \"tsup\" \"tsc -p tsconfig.build.json\" && node scripts/fix-imports.js",
"build:copy-docker": "shx mkdir -p ./dist/cli/docker-commands/docker && shx cp -r ./src/cli/docker-commands/docker ./dist/cli/docker-commands",
"test": "ava",
"test-CI": "DISABLE_DIALECT=postgres npm run test",
"generate-test-client": "npx tsx ./test/client/generateTestClient.ts",
"typecheck": "tsc -p tsconfig.json",
"posttest": "npm run typecheck",
Expand All @@ -166,6 +179,7 @@
"dependencies": {
"@electric-sql/prisma-generator": "workspace:*",
"@prisma/client": "4.8.1",
"@tauri-apps/api": "^1.5.3",
kevin-dp marked this conversation as resolved.
Show resolved Hide resolved
"async-mutex": "^0.4.0",
"base-64": "^1.0.0",
"better-sqlite3": "^8.4.0",
Expand All @@ -178,6 +192,7 @@
"frame-stream": "^3.0.1",
"get-port": "^7.0.0",
"jose": "^4.14.4",
"kysely": "^0.27.2",
kevin-dp marked this conversation as resolved.
Show resolved Hide resolved
"lodash.flow": "^3.5.0",
"lodash.groupby": "^4.6.0",
"lodash.isequal": "^4.5.0",
Expand All @@ -202,6 +217,7 @@
"zod": "3.21.1"
},
"devDependencies": {
"@electric-sql/pglite": "^0.1.5",
"@electric-sql/prisma-generator": "workspace:*",
"@op-engineering/op-sqlite": ">= 2.0.16",
"@tauri-apps/plugin-sql": "2.0.0-alpha.5",
Expand All @@ -219,6 +235,7 @@
"@types/lodash.throttle": "^4.1.7",
"@types/lodash.uniqwith": "^4.5.9",
"@types/node": "^18.8.4",
"@types/pg": "^8.11.0",
"@types/prompts": "^2.4.9",
"@types/react": "^18.0.18",
"@types/tcp-port-used": "^1.0.2",
Expand All @@ -229,15 +246,17 @@
"@vue/test-utils": "^2.4.4",
"ava": "^4.3.1",
"concurrently": "^8.2.2",
"embedded-postgres": "16.1.1-beta.9",
"eslint": "^8.22.0",
"expo-sqlite": "^13.0.0",
"expo-sqlite": "^13.1.0",
"glob": "^10.3.10",
"global-jsdom": "24.0.0",
"husky": "^8.0.3",
"jsdom": "24.0.0",
"lint-staged": "^13.1.0",
"memorystorage": "^0.12.0",
"nodemon": "^3.0.2",
"pg": "^8.11.3",
"prettier": "2.8.2",
"react": "^18.2.0",
"react-dom": "^18.2.0",
Expand All @@ -255,9 +274,12 @@
},
"peerDependencies": {
"@capacitor-community/sqlite": ">= 5.6.2",
"@electric-sql/pglite": ">= 0.1.5",
"@op-engineering/op-sqlite": ">= 2.0.16",
"@tauri-apps/plugin-sql": "2.0.0-alpha.5",
"embedded-postgres": "16.1.1-beta.9",
"expo-sqlite": ">= 13.0.0",
"pg": "^8.11.3",
"prisma": "4.8.1",
"react": ">= 16.8.0",
"react-dom": ">= 16.8.0",
Expand All @@ -268,18 +290,27 @@
"zod": "3.21.1"
},
"peerDependenciesMeta": {
"@op-engineering/op-sqlite": {
"@capacitor-community/sqlite": {
"optional": true
},
"@capacitor-community/sqlite": {
"@electric-sql/pglite": {
"optional": true
},
"@op-engineering/op-sqlite": {
"optional": true
},
"@tauri-apps/plugin-sql": {
"optional": true
},
"embedded-postgres": {
"optional": true
},
"expo-sqlite": {
"optional": true
},
"pg": {
"optional": true
},
"prisma": {
"optional": true
},
Expand Down
Loading
Loading