From 23969d9e8cff8e0992b1341df0347f309352fe95 Mon Sep 17 00:00:00 2001 From: Ralf Kistner Date: Tue, 8 Oct 2024 14:57:27 +0200 Subject: [PATCH 1/7] Support powersync-sqlite-core 0.3.0. --- .../src/client/AbstractPowerSyncDatabase.ts | 8 ++++---- .../src/app/views/sync-diagnostics.tsx | 19 +++++++++++-------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/packages/common/src/client/AbstractPowerSyncDatabase.ts b/packages/common/src/client/AbstractPowerSyncDatabase.ts index 86560f3d..ece2cb04 100644 --- a/packages/common/src/client/AbstractPowerSyncDatabase.ts +++ b/packages/common/src/client/AbstractPowerSyncDatabase.ts @@ -314,13 +314,13 @@ export abstract class AbstractPowerSyncDatabase extends BaseObserver parseInt(n)); } catch (e) { throw new Error( - `Unsupported powersync extension version. Need ^0.2.0, got: ${this.sdkVersion}. Details: ${e.message}` + `Unsupported powersync extension version. Need >=0.2.0 <0.4.0, got: ${this.sdkVersion}. Details: ${e.message}` ); } - // Validate ^0.2.0 - if (versionInts[0] != 0 || versionInts[1] != 2 || versionInts[2] < 0) { - throw new Error(`Unsupported powersync extension version. Need ^0.2.0, got: ${this.sdkVersion}`); + // Validate >=0.2.0 <0.4.0 + if (versionInts[0] != 0 || (versionInts[1] != 2 && versionInts[1] != 3) || versionInts[2] < 0) { + throw new Error(`Unsupported powersync extension version. Need >=0.2.0 <0.4.0, got: ${this.sdkVersion}`); } } diff --git a/tools/diagnostics-app/src/app/views/sync-diagnostics.tsx b/tools/diagnostics-app/src/app/views/sync-diagnostics.tsx index 68f24d31..1b3e3dec 100644 --- a/tools/diagnostics-app/src/app/views/sync-diagnostics.tsx +++ b/tools/diagnostics-app/src/app/views/sync-diagnostics.tsx @@ -23,19 +23,21 @@ WITH (SELECT bucket, row_type, - sum(case when op = 3 and superseded = 0 then length(data) else 0 end) as data_size, - sum(length(row_type) + length(row_id) + length(bucket) + length(key) + 40) as metadata_size, - sum(case when op = 3 and superseded = 0 then 1 else 0 end) as row_count - FROM ps_oplog GROUP BY bucket, row_type), + sum(length(ifnull(data, ''))) as data_size, + sum(length(row_type) + length(row_id) + length(key) + 44) as metadata_size, + count() as row_count + FROM ps_oplog + GROUP BY bucket, row_type), oplog_stats AS (SELECT - bucket as name, + bucket as bucket_id, sum(data_size) as data_size, sum(metadata_size) as metadata_size, sum(row_count) as row_count, json_group_array(row_type) tables - FROM oplog_by_table GROUP BY bucket) + FROM oplog_by_table + GROUP BY bucket) SELECT local.id as name, @@ -47,10 +49,11 @@ SELECT local.total_operations, local.downloading FROM local_bucket_data local -LEFT JOIN oplog_stats stats ON stats.name = local.id`; +LEFT JOIN ps_buckets ON ps_buckets.name = local.id +LEFT JOIN oplog_stats stats ON stats.bucket_id = ps_buckets.id`; const TABLES_QUERY = ` -SELECT row_type as name, count() as count, sum(length(data)) as size FROM ps_oplog WHERE superseded = 0 and op = 3 GROUP BY row_type +SELECT row_type as name, count() as count, sum(length(data)) as size FROM ps_oplog GROUP BY row_type `; const BUCKETS_QUERY_FAST = ` From 38944fb3ae34395a43ba86baa3dd73620045857e Mon Sep 17 00:00:00 2001 From: Ralf Kistner Date: Tue, 8 Oct 2024 14:57:42 +0200 Subject: [PATCH 2/7] Further increase cache_size for diagnostics-app. --- .../diagnostics-app/src/library/powersync/ConnectionManager.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/diagnostics-app/src/library/powersync/ConnectionManager.ts b/tools/diagnostics-app/src/library/powersync/ConnectionManager.ts index 7248b9aa..5407218c 100644 --- a/tools/diagnostics-app/src/library/powersync/ConnectionManager.ts +++ b/tools/diagnostics-app/src/library/powersync/ConnectionManager.ts @@ -23,7 +23,7 @@ export const db = new PowerSyncDatabase({ }, schema: schemaManager.buildSchema() }); -db.execute('PRAGMA cache_size=-50000'); +db.execute('PRAGMA cache_size=-500000'); export const connector = new TokenConnector(); From e9b40fe0ef881027f6f28ec9b594a14b6f35162a Mon Sep 17 00:00:00 2001 From: Ralf Kistner Date: Wed, 9 Oct 2024 13:06:54 +0200 Subject: [PATCH 3/7] @journeyapps/wa-sqlite 0.4.0 --- demos/angular-supabase-todolist/package.json | 2 +- demos/example-capacitor/package.json | 2 +- demos/example-electron/package.json | 2 +- demos/example-nextjs/package.json | 2 +- demos/react-multi-client/package.json | 2 +- .../package.json | 2 +- demos/react-supabase-todolist/package.json | 2 +- .../package.json | 2 +- packages/kysely-driver/package.json | 2 +- packages/web/package.json | 4 +- pnpm-lock.yaml | 52 ++++++++++--------- tools/diagnostics-app/package.json | 2 +- 12 files changed, 39 insertions(+), 37 deletions(-) diff --git a/demos/angular-supabase-todolist/package.json b/demos/angular-supabase-todolist/package.json index 31cee7b3..de4a892a 100644 --- a/demos/angular-supabase-todolist/package.json +++ b/demos/angular-supabase-todolist/package.json @@ -21,7 +21,7 @@ "@angular/platform-browser-dynamic": "^18.1.1", "@angular/router": "^18.1.1", "@angular/service-worker": "^18.1.1", - "@journeyapps/wa-sqlite": "^0.3.0", + "@journeyapps/wa-sqlite": "^0.4.0", "@powersync/web": "workspace:*", "@supabase/supabase-js": "^2.44.4", "rxjs": "~7.8.1", diff --git a/demos/example-capacitor/package.json b/demos/example-capacitor/package.json index 3c2fd328..d1e0ca07 100644 --- a/demos/example-capacitor/package.json +++ b/demos/example-capacitor/package.json @@ -23,7 +23,7 @@ "@capacitor/core": "latest", "@capacitor/ios": "^6.0.0", "@capacitor/splash-screen": "latest", - "@journeyapps/wa-sqlite": "^0.3.0", + "@journeyapps/wa-sqlite": "^0.4.0", "@powersync/react": "workspace:*", "@powersync/web": "workspace:*", "js-logger": "^1.6.1", diff --git a/demos/example-electron/package.json b/demos/example-electron/package.json index 613002fa..35424940 100644 --- a/demos/example-electron/package.json +++ b/demos/example-electron/package.json @@ -21,7 +21,7 @@ "dependencies": { "@emotion/react": "^11.13.0", "@emotion/styled": "^11.13.0", - "@journeyapps/wa-sqlite": "^0.3.0", + "@journeyapps/wa-sqlite": "^0.4.0", "@mui/icons-material": "^5.15.16", "@mui/material": "^5.15.16", "@mui/x-data-grid": "^6.19.11", diff --git a/demos/example-nextjs/package.json b/demos/example-nextjs/package.json index 86767ab0..808079b1 100644 --- a/demos/example-nextjs/package.json +++ b/demos/example-nextjs/package.json @@ -14,7 +14,7 @@ "@emotion/react": "^11.11.4", "@emotion/styled": "^11.11.5", "@fontsource/roboto": "^5.0.13", - "@journeyapps/wa-sqlite": "^0.3.0", + "@journeyapps/wa-sqlite": "^0.4.0", "@lexical/react": "^0.15.0", "@mui/icons-material": "^5.15.18", "@mui/material": "^5.15.18", diff --git a/demos/react-multi-client/package.json b/demos/react-multi-client/package.json index 20164c4c..3cf2cbd2 100644 --- a/demos/react-multi-client/package.json +++ b/demos/react-multi-client/package.json @@ -10,7 +10,7 @@ "test:build": "pnpm build" }, "dependencies": { - "@journeyapps/wa-sqlite": "^0.3.0", + "@journeyapps/wa-sqlite": "^0.4.0", "@powersync/react": "workspace:*", "@powersync/web": "workspace:*", "@supabase/supabase-js": "^2.43.1", diff --git a/demos/react-supabase-todolist-optional-sync/package.json b/demos/react-supabase-todolist-optional-sync/package.json index db516dce..501e1aa7 100644 --- a/demos/react-supabase-todolist-optional-sync/package.json +++ b/demos/react-supabase-todolist-optional-sync/package.json @@ -13,7 +13,7 @@ "@powersync/web": "workspace:*", "@emotion/react": "11.11.4", "@emotion/styled": "11.11.5", - "@journeyapps/wa-sqlite": "^0.3.0", + "@journeyapps/wa-sqlite": "^0.4.0", "@mui/icons-material": "^5.15.12", "@mui/material": "^5.15.12", "@mui/x-data-grid": "^6.19.6", diff --git a/demos/react-supabase-todolist/package.json b/demos/react-supabase-todolist/package.json index bfebdb9e..17f108d3 100644 --- a/demos/react-supabase-todolist/package.json +++ b/demos/react-supabase-todolist/package.json @@ -13,7 +13,7 @@ "@powersync/web": "workspace:*", "@emotion/react": "11.11.4", "@emotion/styled": "11.11.5", - "@journeyapps/wa-sqlite": "^0.3.0", + "@journeyapps/wa-sqlite": "^0.4.0", "@mui/icons-material": "^5.15.12", "@mui/material": "^5.15.12", "@mui/x-data-grid": "^6.19.6", diff --git a/demos/yjs-react-supabase-text-collab/package.json b/demos/yjs-react-supabase-text-collab/package.json index a39c80d2..e06f23dc 100644 --- a/demos/yjs-react-supabase-text-collab/package.json +++ b/demos/yjs-react-supabase-text-collab/package.json @@ -14,7 +14,7 @@ "@fontsource/roboto": "^5.0.12", "@powersync/react": "workspace:*", "@powersync/web": "workspace:*", - "@journeyapps/wa-sqlite": "^0.3.0", + "@journeyapps/wa-sqlite": "^0.4.0", "@lexical/react": "^0.11.3", "@mui/icons-material": "^5.15.12", "@mui/material": "^5.15.12", diff --git a/packages/kysely-driver/package.json b/packages/kysely-driver/package.json index e48f69b2..92bf77bc 100644 --- a/packages/kysely-driver/package.json +++ b/packages/kysely-driver/package.json @@ -33,7 +33,7 @@ }, "devDependencies": { "@powersync/web": "workspace:*", - "@journeyapps/wa-sqlite": "^0.3.0", + "@journeyapps/wa-sqlite": "^0.4.0", "@types/node": "^20.11.17", "@vitest/browser": "^1.3.1", "ts-loader": "^9.5.1", diff --git a/packages/web/package.json b/packages/web/package.json index de568ab3..90b12c8d 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -56,7 +56,7 @@ "author": "JOURNEYAPPS", "license": "Apache-2.0", "peerDependencies": { - "@journeyapps/wa-sqlite": "^0.3.0", + "@journeyapps/wa-sqlite": "^0.4.0", "@powersync/common": "workspace:^1.19.0" }, "dependencies": { @@ -67,7 +67,7 @@ "js-logger": "^1.6.1" }, "devDependencies": { - "@journeyapps/wa-sqlite": "^0.3.0", + "@journeyapps/wa-sqlite": "^0.4.0", "@types/uuid": "^9.0.6", "@vitest/browser": "^1.3.1", "crypto-browserify": "^3.12.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e46757a5..3ce8f902 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,8 +57,8 @@ importers: specifier: ^18.1.1 version: 18.2.5(@angular/common@18.2.5(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.5(rxjs@7.8.1)(zone.js@0.14.10)) '@journeyapps/wa-sqlite': - specifier: ^0.3.0 - version: 0.3.0 + specifier: ^0.4.0 + version: 0.4.0 '@powersync/web': specifier: workspace:* version: link:../../packages/web @@ -245,8 +245,8 @@ importers: specifier: latest version: 6.0.2(@capacitor/core@6.1.2) '@journeyapps/wa-sqlite': - specifier: ^0.3.0 - version: 0.3.0 + specifier: ^0.4.0 + version: 0.4.0 '@powersync/react': specifier: workspace:* version: link:../../packages/react @@ -303,8 +303,8 @@ importers: specifier: ^11.13.0 version: 11.13.0(@emotion/react@11.13.3(@types/react@18.3.8)(react@18.2.0))(@types/react@18.3.8)(react@18.2.0) '@journeyapps/wa-sqlite': - specifier: ^0.3.0 - version: 0.3.0 + specifier: ^0.4.0 + version: 0.4.0 '@mui/icons-material': specifier: ^5.15.16 version: 5.16.7(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.8)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.8)(react@18.2.0))(@types/react@18.3.8)(react@18.2.0))(@types/react@18.3.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.8)(react@18.2.0) @@ -424,8 +424,8 @@ importers: specifier: ^5.0.13 version: 5.1.0 '@journeyapps/wa-sqlite': - specifier: ^0.3.0 - version: 0.3.0 + specifier: ^0.4.0 + version: 0.4.0 '@lexical/react': specifier: ^0.15.0 version: 0.15.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(yjs@13.6.19) @@ -544,8 +544,8 @@ importers: demos/react-multi-client: dependencies: '@journeyapps/wa-sqlite': - specifier: ^0.3.0 - version: 0.3.0 + specifier: ^0.4.0 + version: 0.4.0 '@powersync/react': specifier: workspace:* version: link:../../packages/react @@ -1070,8 +1070,8 @@ importers: specifier: 11.11.5 version: 11.11.5(@emotion/react@11.11.4(@types/react@18.3.8)(react@18.2.0))(@types/react@18.3.8)(react@18.2.0) '@journeyapps/wa-sqlite': - specifier: ^0.3.0 - version: 0.3.0 + specifier: ^0.4.0 + version: 0.4.0 '@mui/icons-material': specifier: ^5.15.12 version: 5.16.7(@mui/material@5.16.7(@emotion/react@11.11.4(@types/react@18.3.8)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.8)(react@18.2.0))(@types/react@18.3.8)(react@18.2.0))(@types/react@18.3.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.8)(react@18.2.0) @@ -1158,8 +1158,8 @@ importers: specifier: 11.11.5 version: 11.11.5(@emotion/react@11.11.4(@types/react@18.3.8)(react@18.2.0))(@types/react@18.3.8)(react@18.2.0) '@journeyapps/wa-sqlite': - specifier: ^0.3.0 - version: 0.3.0 + specifier: ^0.4.0 + version: 0.4.0 '@mui/icons-material': specifier: ^5.15.12 version: 5.16.7(@mui/material@5.16.7(@emotion/react@11.11.4(@types/react@18.3.8)(react@18.2.0))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.8)(react@18.2.0))(@types/react@18.3.8)(react@18.2.0))(@types/react@18.3.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.3.8)(react@18.2.0) @@ -1322,8 +1322,8 @@ importers: specifier: ^5.0.12 version: 5.1.0 '@journeyapps/wa-sqlite': - specifier: ^0.3.0 - version: 0.3.0 + specifier: ^0.4.0 + version: 0.4.0 '@lexical/react': specifier: ^0.11.3 version: 0.11.3(lexical@0.11.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(yjs@13.6.19) @@ -1608,8 +1608,8 @@ importers: version: 0.27.4 devDependencies: '@journeyapps/wa-sqlite': - specifier: ^0.3.0 - version: 0.3.0 + specifier: ^0.4.0 + version: 0.4.0 '@powersync/web': specifier: workspace:* version: link:../web @@ -1774,8 +1774,8 @@ importers: version: 1.6.1 devDependencies: '@journeyapps/wa-sqlite': - specifier: ^0.3.0 - version: 0.3.0 + specifier: ^0.4.0 + version: 0.4.0 '@types/uuid': specifier: ^9.0.6 version: 9.0.8 @@ -1834,8 +1834,8 @@ importers: tools/diagnostics-app: dependencies: '@journeyapps/wa-sqlite': - specifier: ^0.3.0 - version: 0.3.0 + specifier: ^0.4.0 + version: 0.4.0 '@mui/material': specifier: ^5.15.12 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.8)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.8)(react@18.2.0))(@types/react@18.3.8)(react@18.2.0))(@types/react@18.3.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -4370,8 +4370,8 @@ packages: react: '*' react-native: '*' - '@journeyapps/wa-sqlite@0.3.0': - resolution: {integrity: sha512-LQMjcMh92myqzq9kpKFJJ+t1zY7owHTq8TvVYG83luCKzaZepNk86jNB/56fb/vCEy1PQBRc/cI7BTt10SfItA==} + '@journeyapps/wa-sqlite@0.4.0': + resolution: {integrity: sha512-ahwxlOYnjmRLojKXU7b6/uibzc6qt7EJXW54AUBU5+0FjvxEKH2AUsqmehlqF5jvdd29Kwcn3Phb2Y37qEuTDw==} '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} @@ -9965,11 +9965,13 @@ packages: eslint@8.55.0: resolution: {integrity: sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==} 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 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 espree@9.6.1: @@ -22595,7 +22597,7 @@ snapshots: react: 18.2.0 react-native: 0.74.5(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.2.79)(encoding@0.1.13)(react@18.2.0) - '@journeyapps/wa-sqlite@0.3.0': {} + '@journeyapps/wa-sqlite@0.4.0': {} '@jridgewell/gen-mapping@0.3.5': dependencies: diff --git a/tools/diagnostics-app/package.json b/tools/diagnostics-app/package.json index 6ca071e9..4df60038 100644 --- a/tools/diagnostics-app/package.json +++ b/tools/diagnostics-app/package.json @@ -11,7 +11,7 @@ "dependencies": { "@powersync/react": "workspace:*", "@powersync/web": "workspace:*", - "@journeyapps/wa-sqlite": "^0.3.0", + "@journeyapps/wa-sqlite": "^0.4.0", "@mui/material": "^5.15.12", "@mui/x-data-grid": "^6.19.6", "js-logger": "^1.6.1", From e276b25b0ded1ad136f699606e5392473f3fb880 Mon Sep 17 00:00:00 2001 From: Ralf Kistner Date: Wed, 9 Oct 2024 13:20:31 +0200 Subject: [PATCH 4/7] Update test with new table structure. --- packages/web/tests/on_change.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/web/tests/on_change.test.ts b/packages/web/tests/on_change.test.ts index 71ee7d92..676866df 100644 --- a/packages/web/tests/on_change.test.ts +++ b/packages/web/tests/on_change.test.ts @@ -32,7 +32,7 @@ describe('OnChange Tests', () => { }); powersync.onChange({ onChange }, { tables: tablesToWatch, signal: abortController.signal }); - powersync.execute('INSERT INTO assets(id, make, customer_id) VALUES (uuid(), ?, ?)', ['test', uuid()]); + await powersync.execute('INSERT INTO assets(id, make, customer_id) VALUES (uuid(), ?, ?)', ['test', uuid()]); await vi.waitFor( () => { expect(onChange).toHaveBeenCalled(); @@ -54,7 +54,7 @@ describe('OnChange Tests', () => { await runOnChangeTest(['ps_data__assets'], ['ps_data__assets']); }); - it('internal "ps_oplog" table onChange test', async () => { - await runOnChangeTest(['ps_oplog'], ['ps_oplog']); + it('internal "ps_crud" table onChange test', async () => { + await runOnChangeTest(['ps_crud'], ['ps_crud']); }); }); From a51b1d96e3a7059625f9cf228e807328b611908f Mon Sep 17 00:00:00 2001 From: Ralf Kistner Date: Thu, 10 Oct 2024 16:23:39 +0200 Subject: [PATCH 5/7] @journeyapps/react-native-quick-sqlite@2.0.0 --- .../django-react-native-todolist/package.json | 2 +- .../package.json | 2 +- .../package.json | 2 +- .../package.json | 2 +- packages/react-native/package.json | 4 +-- pnpm-lock.yaml | 32 +++++++++---------- 6 files changed, 22 insertions(+), 22 deletions(-) diff --git a/demos/django-react-native-todolist/package.json b/demos/django-react-native-todolist/package.json index 20205156..bd95709f 100644 --- a/demos/django-react-native-todolist/package.json +++ b/demos/django-react-native-todolist/package.json @@ -10,7 +10,7 @@ "dependencies": { "@azure/core-asynciterator-polyfill": "^1.0.2", "@expo/vector-icons": "^14.0.0", - "@journeyapps/react-native-quick-sqlite": "^1.3.0", + "@journeyapps/react-native-quick-sqlite": "^2.0.0", "@powersync/common": "workspace:*", "@powersync/react": "workspace:*", "@powersync/react-native": "workspace:*", diff --git a/demos/react-native-supabase-group-chat/package.json b/demos/react-native-supabase-group-chat/package.json index 248b6dd0..dd7c9ae9 100644 --- a/demos/react-native-supabase-group-chat/package.json +++ b/demos/react-native-supabase-group-chat/package.json @@ -21,7 +21,7 @@ "dependencies": { "@azure/core-asynciterator-polyfill": "^1.0.2", "@faker-js/faker": "8.3.1", - "@journeyapps/react-native-quick-sqlite": "^1.3.0", + "@journeyapps/react-native-quick-sqlite": "^2.0.0", "@powersync/common": "workspace:*", "@powersync/react": "workspace:*", "@powersync/react-native": "workspace:*", diff --git a/demos/react-native-supabase-todolist/package.json b/demos/react-native-supabase-todolist/package.json index 05c80fed..dcd80c93 100644 --- a/demos/react-native-supabase-todolist/package.json +++ b/demos/react-native-supabase-todolist/package.json @@ -10,7 +10,7 @@ "dependencies": { "@azure/core-asynciterator-polyfill": "^1.0.2", "@expo/vector-icons": "^14.0.0", - "@journeyapps/react-native-quick-sqlite": "^1.3.0", + "@journeyapps/react-native-quick-sqlite": "^2.0.0", "@powersync/attachments": "workspace:*", "@powersync/common": "workspace:*", "@powersync/react": "workspace:*", diff --git a/demos/react-native-web-supabase-todolist/package.json b/demos/react-native-web-supabase-todolist/package.json index fdd8e002..e094afde 100644 --- a/demos/react-native-web-supabase-todolist/package.json +++ b/demos/react-native-web-supabase-todolist/package.json @@ -13,7 +13,7 @@ "@azure/core-asynciterator-polyfill": "^1.0.2", "@expo/metro-runtime": "^3.2.1", "@expo/vector-icons": "^14.0.0", - "@journeyapps/react-native-quick-sqlite": "^1.3.0", + "@journeyapps/react-native-quick-sqlite": "^2.0.0", "@powersync/attachments": "workspace:*", "@powersync/common": "workspace:*", "@powersync/react": "workspace:*", diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 2874e060..ff574510 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -29,7 +29,7 @@ }, "homepage": "https://docs.powersync.com/", "peerDependencies": { - "@journeyapps/react-native-quick-sqlite": "^1.3.0", + "@journeyapps/react-native-quick-sqlite": "^2.0.0", "@powersync/common": "workspace:^1.19.0", "react": "*", "react-native": "*" @@ -40,7 +40,7 @@ }, "devDependencies": { "@craftzdog/react-native-buffer": "^6.0.5", - "@journeyapps/react-native-quick-sqlite": "^1.3.0", + "@journeyapps/react-native-quick-sqlite": "^2.0.0", "@rollup/plugin-alias": "^5.1.0", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-inject": "^5.0.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3ce8f902..9643c783 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -106,8 +106,8 @@ importers: specifier: ^14.0.0 version: 14.0.3 '@journeyapps/react-native-quick-sqlite': - specifier: ^1.3.0 - version: 1.3.1(react-native@0.74.5(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.2.79)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + specifier: ^2.0.0 + version: 2.0.0(react-native@0.74.5(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.2.79)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) '@powersync/common': specifier: workspace:* version: link:../../packages/common @@ -632,8 +632,8 @@ importers: specifier: 8.3.1 version: 8.3.1 '@journeyapps/react-native-quick-sqlite': - specifier: ^1.3.0 - version: 1.3.1(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.25.4(@babel/core@7.24.5))(@types/react@18.3.8)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + specifier: ^2.0.0 + version: 2.0.0(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.25.4(@babel/core@7.24.5))(@types/react@18.3.8)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) '@powersync/common': specifier: workspace:* version: link:../../packages/common @@ -768,8 +768,8 @@ importers: specifier: ^14.0.0 version: 14.0.3 '@journeyapps/react-native-quick-sqlite': - specifier: ^1.3.0 - version: 1.3.1(react-native@0.74.5(@babel/core@7.24.5)(@babel/preset-env@7.25.4(@babel/core@7.24.5))(@types/react@18.2.79)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + specifier: ^2.0.0 + version: 2.0.0(react-native@0.74.5(@babel/core@7.24.5)(@babel/preset-env@7.25.4(@babel/core@7.24.5))(@types/react@18.2.79)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) '@powersync/attachments': specifier: workspace:* version: link:../../packages/attachments @@ -916,8 +916,8 @@ importers: specifier: ^14.0.0 version: 14.0.3 '@journeyapps/react-native-quick-sqlite': - specifier: ^1.3.0 - version: 1.3.1(react-native@0.74.5(@babel/core@7.24.5)(@babel/preset-env@7.25.4(@babel/core@7.24.5))(@types/react@18.2.79)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + specifier: ^2.0.0 + version: 2.0.0(react-native@0.74.5(@babel/core@7.24.5)(@babel/preset-env@7.25.4(@babel/core@7.24.5))(@types/react@18.2.79)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) '@powersync/attachments': specifier: workspace:* version: link:../../packages/attachments @@ -1679,8 +1679,8 @@ importers: specifier: ^6.0.5 version: 6.0.5(react-native@0.72.4(@babel/core@7.24.5)(@babel/preset-env@7.25.4(@babel/core@7.24.5))(encoding@0.1.13)(react@18.2.0))(react@18.2.0) '@journeyapps/react-native-quick-sqlite': - specifier: ^1.3.0 - version: 1.3.1(react-native@0.72.4(@babel/core@7.24.5)(@babel/preset-env@7.25.4(@babel/core@7.24.5))(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + specifier: ^2.0.0 + version: 2.0.0(react-native@0.72.4(@babel/core@7.24.5)(@babel/preset-env@7.25.4(@babel/core@7.24.5))(encoding@0.1.13)(react@18.2.0))(react@18.2.0) '@rollup/plugin-alias': specifier: ^5.1.0 version: 5.1.0(rollup@4.14.3) @@ -4364,8 +4364,8 @@ packages: resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@journeyapps/react-native-quick-sqlite@1.3.1': - resolution: {integrity: sha512-RJtSTDfHMgWwuRdBPhnFUU3OBR1DS3gLK3+LVRcu7IuGrjhWy7bBzCdnZGyvJKG1zNmKXNyQJcfW8LIkE2HI4g==} + '@journeyapps/react-native-quick-sqlite@2.0.0': + resolution: {integrity: sha512-jOmIOB1K49564eWd0GJP6ZvGTXiipsIShFQWhGJO4HCF0r8DdX1ll3RLbLBVaeclJYGl0KWIf8/6FhYst8FR8g==} peerDependencies: react: '*' react-native: '*' @@ -22577,22 +22577,22 @@ snapshots: '@types/yargs': 17.0.33 chalk: 4.1.2 - '@journeyapps/react-native-quick-sqlite@1.3.1(react-native@0.72.4(@babel/core@7.24.5)(@babel/preset-env@7.25.4(@babel/core@7.24.5))(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': + '@journeyapps/react-native-quick-sqlite@2.0.0(react-native@0.72.4(@babel/core@7.24.5)(@babel/preset-env@7.25.4(@babel/core@7.24.5))(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': dependencies: react: 18.2.0 react-native: 0.72.4(@babel/core@7.24.5)(@babel/preset-env@7.25.4(@babel/core@7.24.5))(encoding@0.1.13)(react@18.2.0) - '@journeyapps/react-native-quick-sqlite@1.3.1(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.25.4(@babel/core@7.24.5))(@types/react@18.3.8)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': + '@journeyapps/react-native-quick-sqlite@2.0.0(react-native@0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.25.4(@babel/core@7.24.5))(@types/react@18.3.8)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': dependencies: react: 18.2.0 react-native: 0.74.1(@babel/core@7.24.5)(@babel/preset-env@7.25.4(@babel/core@7.24.5))(@types/react@18.3.8)(encoding@0.1.13)(react@18.2.0) - '@journeyapps/react-native-quick-sqlite@1.3.1(react-native@0.74.5(@babel/core@7.24.5)(@babel/preset-env@7.25.4(@babel/core@7.24.5))(@types/react@18.2.79)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': + '@journeyapps/react-native-quick-sqlite@2.0.0(react-native@0.74.5(@babel/core@7.24.5)(@babel/preset-env@7.25.4(@babel/core@7.24.5))(@types/react@18.2.79)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': dependencies: react: 18.2.0 react-native: 0.74.5(@babel/core@7.24.5)(@babel/preset-env@7.25.4(@babel/core@7.24.5))(@types/react@18.2.79)(encoding@0.1.13)(react@18.2.0) - '@journeyapps/react-native-quick-sqlite@1.3.1(react-native@0.74.5(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.2.79)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': + '@journeyapps/react-native-quick-sqlite@2.0.0(react-native@0.74.5(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.2.79)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': dependencies: react: 18.2.0 react-native: 0.74.5(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.2.79)(encoding@0.1.13)(react@18.2.0) From 77e196da5f4afa9ccc3d0d594d551b1497f58ff6 Mon Sep 17 00:00:00 2001 From: Ralf Kistner Date: Mon, 14 Oct 2024 09:29:17 +0200 Subject: [PATCH 6/7] Add changeset. --- .changeset/rare-pillows-drop.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .changeset/rare-pillows-drop.md diff --git a/.changeset/rare-pillows-drop.md b/.changeset/rare-pillows-drop.md new file mode 100644 index 00000000..8d58216f --- /dev/null +++ b/.changeset/rare-pillows-drop.md @@ -0,0 +1,8 @@ +--- +'@powersync/react-native': minor +'@powersync/diagnostics-app': minor +'@powersync/common': minor +'@powersync/web': minor +--- + +Use powersync-sqlite-core 0.3.0 - faster incremental sync From 5c840c249f188c5f377496b033ea297d2a63545d Mon Sep 17 00:00:00 2001 From: Ralf Kistner Date: Mon, 14 Oct 2024 09:48:23 +0200 Subject: [PATCH 7/7] Increase supported version range. --- packages/common/src/client/AbstractPowerSyncDatabase.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/common/src/client/AbstractPowerSyncDatabase.ts b/packages/common/src/client/AbstractPowerSyncDatabase.ts index ece2cb04..d587d976 100644 --- a/packages/common/src/client/AbstractPowerSyncDatabase.ts +++ b/packages/common/src/client/AbstractPowerSyncDatabase.ts @@ -314,13 +314,13 @@ export abstract class AbstractPowerSyncDatabase extends BaseObserver parseInt(n)); } catch (e) { throw new Error( - `Unsupported powersync extension version. Need >=0.2.0 <0.4.0, got: ${this.sdkVersion}. Details: ${e.message}` + `Unsupported powersync extension version. Need >=0.2.0 <1.0.0, got: ${this.sdkVersion}. Details: ${e.message}` ); } - // Validate >=0.2.0 <0.4.0 - if (versionInts[0] != 0 || (versionInts[1] != 2 && versionInts[1] != 3) || versionInts[2] < 0) { - throw new Error(`Unsupported powersync extension version. Need >=0.2.0 <0.4.0, got: ${this.sdkVersion}`); + // Validate >=0.2.0 <1.0.0 + if (versionInts[0] != 0 || versionInts[1] < 2 || versionInts[2] < 0) { + throw new Error(`Unsupported powersync extension version. Need >=0.2.0 <1.0.0, got: ${this.sdkVersion}`); } }