@powersync/web 0.0.0-dev-20240905154001 → 0.0.0-dev-20240920093037

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/fe5d98632ac68b2022d7.wasm +0 -0
  2. package/dist/index.umd.js +40347 -0
  3. package/dist/index.umd.js.map +1 -0
  4. package/dist/worker/SharedSyncImplementation.umd.js +4175 -0
  5. package/dist/worker/SharedSyncImplementation.umd.js.map +1 -0
  6. package/dist/worker/WASQLiteDB.umd.js +2780 -0
  7. package/dist/worker/WASQLiteDB.umd.js.map +1 -0
  8. package/dist/worker/node_modules_bson_lib_bson_mjs.umd.js +4437 -0
  9. package/dist/worker/node_modules_bson_lib_bson_mjs.umd.js.map +1 -0
  10. package/dist/worker/node_modules_crypto-browserify_index_js.umd.js +33593 -0
  11. package/dist/worker/node_modules_crypto-browserify_index_js.umd.js.map +1 -0
  12. package/dist/worker/node_modules_journeyapps_wa-sqlite_dist_wa-sqlite-async_mjs.umd.js +175 -0
  13. package/dist/worker/node_modules_journeyapps_wa-sqlite_dist_wa-sqlite-async_mjs.umd.js.map +1 -0
  14. package/dist/worker/node_modules_journeyapps_wa-sqlite_src_examples_IDBBatchAtomicVFS_js.umd.js +1926 -0
  15. package/dist/worker/node_modules_journeyapps_wa-sqlite_src_examples_IDBBatchAtomicVFS_js.umd.js.map +1 -0
  16. package/lib/package.json +38 -15
  17. package/lib/src/db/PowerSyncDatabase.d.ts +19 -7
  18. package/lib/src/db/adapters/AbstractWebSQLOpenFactory.d.ts +2 -2
  19. package/lib/src/db/adapters/AbstractWebSQLOpenFactory.js +4 -4
  20. package/lib/src/db/adapters/wa-sqlite/WASQLiteDBAdapter.d.ts +3 -2
  21. package/lib/src/db/adapters/wa-sqlite/WASQLiteDBAdapter.js +10 -3
  22. package/lib/src/db/adapters/web-sql-flags.d.ts +13 -2
  23. package/lib/src/db/sync/SSRWebStreamingSyncImplementation.d.ts +34 -2
  24. package/lib/src/db/sync/SSRWebStreamingSyncImplementation.js +43 -3
  25. package/lib/src/db/sync/SharedWebStreamingSyncImplementation.js +32 -9
  26. package/lib/src/db/sync/WebStreamingSyncImplementation.d.ts +9 -2
  27. package/lib/src/db/sync/userAgent.js +1 -0
  28. package/lib/src/shared/open-db.js +34 -28
  29. package/lib/src/worker/db/WASQLiteDB.worker.d.ts +4 -1
  30. package/lib/src/worker/db/WASQLiteDB.worker.js +60 -1
  31. package/lib/src/worker/db/open-worker-database.d.ts +4 -2
  32. package/lib/src/worker/db/open-worker-database.js +40 -20
  33. package/lib/tsconfig.tsbuildinfo +1 -1
  34. package/package.json +38 -15
  35. package/lib/src/worker/db/SharedWASQLiteDB.worker.d.ts +0 -1
  36. package/lib/src/worker/db/SharedWASQLiteDB.worker.js +0 -49
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@powersync/web",
3
- "version": "0.0.0-dev-20240905154001",
3
+ "version": "0.0.0-dev-20240920093037",
4
4
  "description": "A Web SDK for JourneyApps PowerSync",
5
5
  "main": "lib/src/index.js",
6
6
  "types": "lib/src/index.d.ts",
@@ -9,6 +9,24 @@
9
9
  "!lib/tests",
10
10
  "dist"
11
11
  ],
12
+ "exports": {
13
+ ".": "./lib/src/index.js",
14
+ "./umd": {
15
+ "import": "./dist/index.umd.js",
16
+ "require": "./dist/index.umd.js",
17
+ "types": "./lib/src/index.d.ts"
18
+ },
19
+ "./umd/worker/db": {
20
+ "import": "./dist/worker/WASQLiteDB.umd.js",
21
+ "require": "./dist/worker/WASQLiteDB.umd.js",
22
+ "types": "./lib/src/index.d.ts"
23
+ },
24
+ "./umd/worker/sync": {
25
+ "import": "./dist/worker/SharedSyncImplementation.umd.js",
26
+ "require": "./dist/worker/SharedSyncImplementation.umd.js",
27
+ "types": "./lib/src/index.d.ts"
28
+ }
29
+ },
12
30
  "repository": "https://github.com/powersync-ja/powersync-js",
13
31
  "bugs": {
14
32
  "url": "https://github.com/powersync-ja/powersync-js/issues"
@@ -28,39 +46,44 @@
28
46
  "author": "JOURNEYAPPS",
29
47
  "license": "Apache-2.0",
30
48
  "peerDependencies": {
31
- "@journeyapps/wa-sqlite": "0.0.0-dev-20240905151914",
32
- "@powersync/common": "0.0.0-dev-20240905154001"
49
+ "@journeyapps/wa-sqlite": "^0.3.0",
50
+ "@powersync/common": "0.0.0-dev-20240920093037"
33
51
  },
34
52
  "dependencies": {
35
53
  "async-mutex": "^0.4.0",
36
54
  "bson": "^6.6.0",
37
55
  "comlink": "^4.4.1",
38
56
  "js-logger": "^1.6.1",
39
- "lodash": "^4.17.21",
40
- "@powersync/common": "0.0.0-dev-20240905154001"
57
+ "@powersync/common": "0.0.0-dev-20240920093037"
41
58
  },
42
59
  "devDependencies": {
43
- "@journeyapps/wa-sqlite": "0.0.0-dev-20240905151914",
44
- "@rollup/plugin-commonjs": "^25.0.7",
45
- "@rollup/plugin-inject": "^5.0.5",
46
- "@rollup/plugin-json": "^6.1.0",
47
- "@rollup/plugin-node-resolve": "15.2.3",
48
- "@types/lodash": "^4.14.200",
60
+ "@journeyapps/wa-sqlite": "^0.3.0",
49
61
  "@types/uuid": "^9.0.6",
50
62
  "@vitest/browser": "^1.3.1",
63
+ "crypto-browserify": "^3.12.0",
51
64
  "p-defer": "^4.0.1",
52
- "rollup": "4.14.3",
65
+ "source-map-loader": "^5.0.0",
66
+ "stream-browserify": "^3.0.0",
67
+ "terser-webpack-plugin": "^5.3.9",
53
68
  "typescript": "^5.5.3",
54
69
  "uuid": "^9.0.1",
55
70
  "vite": "^5.1.1",
56
71
  "vite-plugin-top-level-await": "^1.4.1",
57
72
  "vite-plugin-wasm": "^3.3.0",
58
73
  "vitest": "^1.3.1",
59
- "webdriverio": "^8.32.3"
74
+ "vm-browserify": "^1.1.2",
75
+ "webdriverio": "^8.32.3",
76
+ "webpack": "^5.90.1",
77
+ "webpack-cli": "^5.1.4",
78
+ "webpack-node-externals": "^3.0.0"
60
79
  },
61
80
  "scripts": {
62
- "build": "tsc --build",
63
- "clean": "rm -rf lib tsconfig.tsbuildinfo",
81
+ "build:tsc": "tsc --build",
82
+ "build:webpack-main": "webpack",
83
+ "build:webpack-workers": "webpack --config webpack.workers.config.js",
84
+ "build": "pnpm run build:tsc && pnpm run build:webpack-main && pnpm run build:webpack-workers",
85
+ "build:prod": "pnpm run build:tsc --sourceMap false && pnpm run build:webpack-main && pnpm run build:webpack-workers",
86
+ "clean": "rm -rf lib dist tsconfig.tsbuildinfo",
64
87
  "watch": "tsc --build -w",
65
88
  "test": "pnpm build && vitest"
66
89
  }
@@ -1 +0,0 @@
1
- import '@journeyapps/wa-sqlite';
@@ -1,49 +0,0 @@
1
- import '@journeyapps/wa-sqlite';
2
- import * as Comlink from 'comlink';
3
- import { _openDB } from '../../shared/open-db';
4
- const _self = self;
5
- const DBMap = new Map();
6
- const OPEN_DB_LOCK = 'open-wasqlite-db';
7
- let nextClientId = 1;
8
- const openDB = async (dbFileName) => {
9
- // Prevent multiple simultaneous opens from causing race conditions
10
- return navigator.locks.request(OPEN_DB_LOCK, async () => {
11
- const clientId = nextClientId++;
12
- if (!DBMap.has(dbFileName)) {
13
- const clientIds = new Set();
14
- const connection = await _openDB(dbFileName);
15
- DBMap.set(dbFileName, {
16
- clientIds,
17
- db: connection
18
- });
19
- }
20
- const dbEntry = DBMap.get(dbFileName);
21
- dbEntry.clientIds.add(clientId);
22
- const { db } = dbEntry;
23
- const wrappedConnection = {
24
- ...db,
25
- close: Comlink.proxy(() => {
26
- const { clientIds } = dbEntry;
27
- clientIds.delete(clientId);
28
- if (clientIds.size == 0) {
29
- console.debug(`Closing connection to ${dbFileName}.`);
30
- DBMap.delete(dbFileName);
31
- return db.close?.();
32
- }
33
- console.debug(`Connection to ${dbFileName} not closed yet due to active clients.`);
34
- })
35
- };
36
- return Comlink.proxy(wrappedConnection);
37
- });
38
- };
39
- _self.onconnect = function (event) {
40
- const port = event.ports[0];
41
- console.debug('Exposing db on port', port);
42
- Comlink.expose(openDB, port);
43
- };
44
- addEventListener('unload', () => {
45
- Array.from(DBMap.values()).forEach(async (dbConnection) => {
46
- const db = await dbConnection.db;
47
- db.close?.();
48
- });
49
- });