From eda0a05454eabcd6372c50d0141fab62e8e928df Mon Sep 17 00:00:00 2001 From: NavaceSystem Date: Mon, 10 Jun 2024 20:55:02 +1000 Subject: [PATCH 01/11] upgraded replicache to v15 to fix dropAllDatabases and dropDatabase not working, updated custom store signature to match v15 kvStore interface --- .tool-versions | 3 ++ README.md | 4 +- packages/deep-freeze/package.json | 2 +- .../example/mobile-react-native/package.json | 2 +- .../mobile-react-native/src/use-replicache.ts | 3 +- packages/react-native-expo-sqlite/README.md | 4 +- .../react-native-expo-sqlite/src/index.ts | 8 ++- packages/react-native-op-sqlite/README.md | 4 +- packages/react-native-op-sqlite/src/index.ts | 9 ++-- packages/replicache-generic-sqlite/README.md | 2 +- .../replicache-generic-sqlite/package.json | 4 +- .../replicache-generic-sqlite-read-impl.ts | 6 +-- .../src/replicache-generic-sqlite-store.ts | 10 ++-- .../replicache-generic-sqlite-write-impl.ts | 7 ++- yarn.lock | 52 +++++++++++++++++-- 15 files changed, 86 insertions(+), 34 deletions(-) create mode 100644 .tool-versions diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..77d66ec --- /dev/null +++ b/.tool-versions @@ -0,0 +1,3 @@ +nodejs 16.19.0 +yarn 1.22.10 +ruby 2.7.6 \ No newline at end of file diff --git a/README.md b/README.md index 01ee310..29a545e 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Replicache enables us to build applications that are performant, offline-capable and collaborative. By default, it uses [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) for client-side persistance. Unfortunately, this technology is not available in React Native and is only supported in web-browsers. -Thankfully, Replicache allows us to provide our own transactional data-store via [`experimentalCreateKVStore`](https://doc.replicache.dev/api/interfaces/ReplicacheOptions#experimentalcreatekvstore). The goal of this project is to provide some implementations of such a store, along with some guidance in getting up and running with Replicache in React Native. +Thankfully, Replicache allows us to provide our own transactional data-store via [`kvStore`](https://doc.replicache.dev/api/interfaces/ReplicacheOptions#experimentalcreatekvstore). The goal of this project is to provide some implementations of such a store, along with some guidance in getting up and running with Replicache in React Native. ## What are the strategies? @@ -38,7 +38,7 @@ You most likely want to use web-sockets for this. This is relatively trivial wit - `yarn add expo-sqlite @react-native-replicache/expo-sqlite` 2. Ensure that you've polyfilled `crypto.getRandomValues` on the global namespace. - See [here for an example](https://github.com/Braden1996/react-native-replicache/blob/master/packages/example/mobile-react-native/src/crypto-polyfill.ts). -3. Pass in your chosen SQLite binding's React Native Replicache binding into Replicache's `experimentalCreateKVStore` option. +3. Pass in your chosen SQLite binding's React Native Replicache binding into Replicache's `kvStore` option. - This will be one of the following, depending on the binding you chose: - `createReplicacheOPSQLiteExperimentalCreateKVStore` - `createReplicacheExpoSQLiteExperimentalCreateKVStore` diff --git a/packages/deep-freeze/package.json b/packages/deep-freeze/package.json index 3f22951..67bf95a 100644 --- a/packages/deep-freeze/package.json +++ b/packages/deep-freeze/package.json @@ -37,7 +37,7 @@ "react-native-builder-bob": "^0.20.3" }, "peerDependencies": { - "replicache": ">=12.2.0" + "replicache": ">=15.0.0" }, "react-native-builder-bob": { "source": "src", diff --git a/packages/example/mobile-react-native/package.json b/packages/example/mobile-react-native/package.json index 04da565..3d62b65 100644 --- a/packages/example/mobile-react-native/package.json +++ b/packages/example/mobile-react-native/package.json @@ -35,7 +35,7 @@ "react-dom": "18.2.0", "react-native": "0.74.1", "react-native-sse": "^1.1.0", - "replicache": "12.2.0", + "replicache": "15.0.0", "replicache-react": "^2.10.0" }, "devDependencies": { diff --git a/packages/example/mobile-react-native/src/use-replicache.ts b/packages/example/mobile-react-native/src/use-replicache.ts index 827a793..07dda14 100644 --- a/packages/example/mobile-react-native/src/use-replicache.ts +++ b/packages/example/mobile-react-native/src/use-replicache.ts @@ -18,8 +18,7 @@ export function useReplicache(listID: string) { licenseKey, pushURL: `http://127.0.0.1:8080/api/replicache/push?spaceID=${listID}`, pullURL: `http://127.0.0.1:8080/api/replicache/pull?spaceID=${listID}`, - experimentalCreateKVStore: - createReplicacheExpoSQLiteExperimentalCreateKVStore, + kvStore: createReplicacheExpoSQLiteExperimentalCreateKVStore, name: listID, mutators, }), diff --git a/packages/react-native-expo-sqlite/README.md b/packages/react-native-expo-sqlite/README.md index 595100b..cab6c5c 100644 --- a/packages/react-native-expo-sqlite/README.md +++ b/packages/react-native-expo-sqlite/README.md @@ -8,7 +8,7 @@ Replicache enables us to build applications that are performant, offline-capable and collaborative. By default, it uses [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) for client-side persistance. Unfortunately, this technology is not available in React Native and is only supported in web-browsers. -Thankfully, Replicache allows us to provide our own transactional data-store via [`experimentalCreateKVStore`](https://doc.replicache.dev/api/interfaces/ReplicacheOptions#experimentalcreatekvstore). The goal of this project is to provide some implementations of such a store, along with some guidance in getting up and running with Replicache in React Native. +Thankfully, Replicache allows us to provide our own transactional data-store via [`kvStore`](https://doc.replicache.dev/api/interfaces/ReplicacheOptions#experimentalcreatekvstore). The goal of this project is to provide some implementations of such a store, along with some guidance in getting up and running with Replicache in React Native. ## What are the strategies? @@ -28,5 +28,5 @@ You most likely want to use web-sockets for this. This is relatively trivial wit - `yarn add expo-crypto expo-sqlite @react-native-replicache/react-native-expo-sqlite` 2. Ensure that you've polyfilled `crypto.getRandomValues` on the global namespace. - See [here for an example](https://github.com/Braden1996/react-native-replicache/blob/master/packages/example/mobile-react-native/src/crypto-polyfill.ts). -3. Pass in `createReplicacheExpoSQLiteExperimentalCreateKVStore` to Replicache's `experimentalCreateKVStore` option. +3. Pass in `createReplicacheExpoSQLiteExperimentalCreateKVStore` to Replicache's `kvStore` option. - See [here for an example](https://github.com/Braden1996/react-native-replicache/blob/master/packages/example/mobile-react-native/src/use-replicache.ts). diff --git a/packages/react-native-expo-sqlite/src/index.ts b/packages/react-native-expo-sqlite/src/index.ts index 63a201f..231238e 100644 --- a/packages/react-native-expo-sqlite/src/index.ts +++ b/packages/react-native-expo-sqlite/src/index.ts @@ -29,5 +29,9 @@ const expoDbManagerInstance = new ReplicacheGenericSQLiteDatabaseManager( genericDatabase, ); -export const createReplicacheExpoSQLiteExperimentalCreateKVStore = - getCreateReplicacheSQLiteExperimentalCreateKVStore(expoDbManagerInstance); +export const createReplicacheExpoSQLiteExperimentalCreateKVStore = { + create: getCreateReplicacheSQLiteExperimentalCreateKVStore( + expoDbManagerInstance + ), + drop: expoDbManagerInstance.destroy, +}; diff --git a/packages/react-native-op-sqlite/README.md b/packages/react-native-op-sqlite/README.md index 263e5ff..755d101 100644 --- a/packages/react-native-op-sqlite/README.md +++ b/packages/react-native-op-sqlite/README.md @@ -8,7 +8,7 @@ Replicache enables us to build applications that are performant, offline-capable and collaborative. By default, it uses [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) for client-side persistance. Unfortunately, this technology is not available in React Native and is only supported in web-browsers. -Thankfully, Replicache allows us to provide our own transactional data-store via [`experimentalCreateKVStore`](https://doc.replicache.dev/api/interfaces/ReplicacheOptions#experimentalcreatekvstore). The goal of this project is to provide some implementations of such a store, along with some guidance in getting up and running with Replicache in React Native. +Thankfully, Replicache allows us to provide our own transactional data-store via [`kvStore`](https://doc.replicache.dev/api/interfaces/ReplicacheOptions#experimentalcreatekvstore). The goal of this project is to provide some implementations of such a store, along with some guidance in getting up and running with Replicache in React Native. ## What are the strategies? @@ -28,5 +28,5 @@ You most likely want to use web-sockets for this. This is relatively trivial wit - `yarn add expo-crypto @op-engineering/op-sqlite @react-native-replicache/react-native-op-sqlite` 2. Ensure that you've polyfilled `crypto.getRandomValues` on the global namespace. - See [here for an example](https://github.com/Braden1996/react-native-replicache/blob/master/packages/example/mobile-react-native/src/crypto-polyfill.ts). -3. Pass in `createReplicacheOPSQLiteExperimentalCreateKVStore` to Replicache's `experimentalCreateKVStore` option. +3. Pass in `createReplicacheOPSQLiteExperimentalCreateKVStore` to Replicache's `kvStore` option. - See [here for an example](https://github.com/Braden1996/react-native-replicache/blob/master/packages/example/mobile-react-native/src/use-replicache.ts). diff --git a/packages/react-native-op-sqlite/src/index.ts b/packages/react-native-op-sqlite/src/index.ts index 07deb8f..56a17f6 100644 --- a/packages/react-native-op-sqlite/src/index.ts +++ b/packages/react-native-op-sqlite/src/index.ts @@ -20,8 +20,11 @@ const genericDatabase: GenericDatabaseManager = { }; const opSqlManagerInstance = new ReplicacheGenericSQLiteDatabaseManager( - genericDatabase, + genericDatabase ); -export const createReplicacheReactNativeOPSQLiteExperimentalCreateKVStore = - getCreateReplicacheSQLiteExperimentalCreateKVStore(opSqlManagerInstance); +export const createReplicacheReactNativeOPSQLiteExperimentalCreateKVStore = { + create: + getCreateReplicacheSQLiteExperimentalCreateKVStore(opSqlManagerInstance), + drop: opSqlManagerInstance.destroy, +}; diff --git a/packages/replicache-generic-sqlite/README.md b/packages/replicache-generic-sqlite/README.md index e897ad8..aeab23e 100644 --- a/packages/replicache-generic-sqlite/README.md +++ b/packages/replicache-generic-sqlite/README.md @@ -6,4 +6,4 @@ ## Why is this needed? -This package provides a generic SQLite implementation of [`experimentalCreateKVStore`](https://doc.replicache.dev/api/interfaces/ReplicacheOptions#experimentalcreatekvstore) that is agnostic of the underlying SQLite binding. This abstraction enables us to easily support multiple SQLite bindings. It isn't coupled to React Native either, so could work on other platforms - but that remains to be explored. +This package provides a generic SQLite implementation of [`kvStore`](https://doc.replicache.dev/api/interfaces/ReplicacheOptions#experimentalcreatekvstore) that is agnostic of the underlying SQLite binding. This abstraction enables us to easily support multiple SQLite bindings. It isn't coupled to React Native either, so could work on other platforms - but that remains to be explored. diff --git a/packages/replicache-generic-sqlite/package.json b/packages/replicache-generic-sqlite/package.json index 0cdeac6..671daae 100644 --- a/packages/replicache-generic-sqlite/package.json +++ b/packages/replicache-generic-sqlite/package.json @@ -41,10 +41,10 @@ "devDependencies": { "@braden1996/tsconfig": "^0.0.1", "react-native-builder-bob": "^0.20.3", - "replicache": "12.2.0" + "replicache": "15.0.0" }, "peerDependencies": { - "replicache": ">=12.2.0" + "replicache": ">=15.0.0" }, "react-native-builder-bob": { "source": "src", diff --git a/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-read-impl.ts b/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-read-impl.ts index 9b3b060..02abffe 100644 --- a/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-read-impl.ts +++ b/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-read-impl.ts @@ -1,10 +1,10 @@ import { deepFreeze } from "@react-native-replicache/deep-freeze"; -import type { ExperimentalCreateKVStore, ReadonlyJSONValue } from "replicache"; +import type { KVStore, ReadonlyJSONValue } from "replicache"; import { ReplicacheGenericSQLiteTransaction } from "./generic-sqlite-adapter"; export class ReplicacheGenericSQLiteReadImpl - implements Awaited["read"]>> + implements Awaited> { protected _tx: ReplicacheGenericSQLiteTransaction | null; @@ -38,7 +38,7 @@ export class ReplicacheGenericSQLiteReadImpl private async _getSql(key: string) { const rows = await this._assertTx().execute( "SELECT value FROM entry WHERE key = ?", - [key], + [key] ); if (rows.length === 0) return undefined; diff --git a/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-store.ts b/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-store.ts index d794029..6e89cd1 100644 --- a/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-store.ts +++ b/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-store.ts @@ -1,11 +1,11 @@ -import type { ExperimentalCreateKVStore } from "replicache"; +import type { KVStore } from "replicache"; import { ReplicacheGenericSQLiteDatabaseManager } from "./replicache-generic-sqlite-database-manager"; import { ReplicacheGenericSQLiteReadImpl } from "./replicache-generic-sqlite-read-impl"; import { ReplicacheGenericSQLiteWriteImpl } from "./replicache-generic-sqlite-write-impl"; export class ReplicacheGenericStore - implements ReturnType + implements KVStore { private _closed = false; @@ -23,7 +23,7 @@ export class ReplicacheGenericStore async withRead( fn: ( - read: Awaited["read"]>>, + read: Awaited>, ) => R | Promise, ): Promise { const read = await this.read(); @@ -35,7 +35,7 @@ export class ReplicacheGenericStore } async write(): Promise< - Awaited["write"]>> + Awaited> > { const db = await this._getDb(); const tx = db.transaction(); @@ -46,7 +46,7 @@ export class ReplicacheGenericStore async withWrite( fn: ( write: Awaited< - ReturnType["write"]> + ReturnType >, ) => R | Promise, ): Promise { diff --git a/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-write-impl.ts b/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-write-impl.ts index f5609f8..fff04a8 100644 --- a/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-write-impl.ts +++ b/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-write-impl.ts @@ -1,17 +1,16 @@ -import type { ExperimentalCreateKVStore, ReadonlyJSONValue } from "replicache"; +import type { KVStore, ReadonlyJSONValue } from "replicache"; import { ReplicacheGenericSQLiteReadImpl } from "./replicache-generic-sqlite-read-impl"; export class ReplicacheGenericSQLiteWriteImpl extends ReplicacheGenericSQLiteReadImpl - implements - Awaited["write"]>> + implements Awaited> { async put(key: string, value: ReadonlyJSONValue) { const jsonValueString = JSON.stringify(value); await this._assertTx().execute( "INSERT OR REPLACE INTO entry (key, value) VALUES (?, ?)", - [key, jsonValueString], + [key, jsonValueString] ); } diff --git a/yarn.lock b/yarn.lock index 1aeed6b..d0cad57 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2108,6 +2108,13 @@ __metadata: languageName: node linkType: hard +"@badrap/valita@npm:^0.3.0": + version: 0.3.8 + resolution: "@badrap/valita@npm:0.3.8" + checksum: 8df32993815baeb86182de4c79a2eae5c749bc871debc3225defc1fc5ff93de2e4f80dfc2e2b28277e609ade6f56aee03201d20129fee3930c71e05684a6c194 + languageName: node + linkType: hard + "@braden1996/tsconfig@npm:^0.0.1": version: 0.0.1 resolution: "@braden1996/tsconfig@npm:0.0.1" @@ -3213,7 +3220,7 @@ __metadata: "@braden1996/tsconfig": ^0.0.1 react-native-builder-bob: ^0.20.3 peerDependencies: - replicache: ">=12.2.0" + replicache: ">=15.0.0" languageName: unknown linkType: soft @@ -3255,7 +3262,7 @@ __metadata: react-dom: 18.2.0 react-native: 0.74.1 react-native-sse: ^1.1.0 - replicache: 12.2.0 + replicache: 15.0.0 replicache-react: ^2.10.0 languageName: unknown linkType: soft @@ -3351,9 +3358,9 @@ __metadata: "@braden1996/tsconfig": ^0.0.1 "@react-native-replicache/deep-freeze": 1.1.0 react-native-builder-bob: ^0.20.3 - replicache: 12.2.0 + replicache: 15.0.0 peerDependencies: - replicache: ">=12.2.0" + replicache: ">=15.0.0" languageName: unknown linkType: soft @@ -3557,6 +3564,29 @@ __metadata: languageName: node linkType: hard +"@rocicorp/lock@npm:^1.0.3": + version: 1.0.4 + resolution: "@rocicorp/lock@npm:1.0.4" + dependencies: + "@rocicorp/resolver": ^1.0.2 + checksum: d585c44f16a303b60e30325b62faf64188cc1718fbde281a8aa8e7a0a5f71736deba98ab4f100679f9e84ce52258ef63cf66e78eb59f2d5ca6852e8092e89d60 + languageName: node + linkType: hard + +"@rocicorp/logger@npm:^5.2.1": + version: 5.2.2 + resolution: "@rocicorp/logger@npm:5.2.2" + checksum: 86b628be61dc74eef38dd2cf10734c8a26f3d22248714915f3aa180c01e10393e532548cc6c6e3e0ca2e278974a1e9516a3a95493602518cfc19b6236c056f87 + languageName: node + linkType: hard + +"@rocicorp/resolver@npm:^1.0.1, @rocicorp/resolver@npm:^1.0.2": + version: 1.0.2 + resolution: "@rocicorp/resolver@npm:1.0.2" + checksum: 924e8b069bdc8e92deec5382da1fad9a69ac518e397165c70c014b87669cb70d822fc0c61924753c2579e0724eb5601189e7d9dd25ef819e48fbb507016af9c0 + languageName: node + linkType: hard + "@segment/loosely-validate-event@npm:^2.0.0": version: 2.0.0 resolution: "@segment/loosely-validate-event@npm:2.0.0" @@ -12678,6 +12708,20 @@ __metadata: languageName: node linkType: hard +"replicache@npm:15.0.0": + version: 15.0.0 + resolution: "replicache@npm:15.0.0" + dependencies: + "@badrap/valita": ^0.3.0 + "@rocicorp/lock": ^1.0.3 + "@rocicorp/logger": ^5.2.1 + "@rocicorp/resolver": ^1.0.1 + bin: + replicache: out/cli.cjs + checksum: b52bdd2020eb0b2ece3fa49643cca2330227d1ce32f0b73cbd635ee85a1f014142b7341e007bec5803c187c02f2925c60e77db6915ef9158c41acd9d3a5b01a1 + languageName: node + linkType: hard + "require-directory@npm:^2.1.1": version: 2.1.1 resolution: "require-directory@npm:2.1.1" From 21f82b731d6e5c7c6a9cd460db8ae5e86765bf0c Mon Sep 17 00:00:00 2001 From: NavaceSystem Date: Sat, 6 Jul 2024 09:39:50 +1000 Subject: [PATCH 02/11] fixed bug when closing and dropping db, updated docs with replicache version support --- README.md | 5 +++ packages/react-native-expo-sqlite/README.md | 5 +++ packages/react-native-op-sqlite/README.md | 5 +++ packages/replicache-generic-sqlite/README.md | 5 +++ ...licache-generic-sqlite-database-manager.ts | 38 ++++++++++++------- .../src/replicache-generic-sqlite-store.ts | 25 ++++-------- 6 files changed, 51 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index 29a545e..5d20adc 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,11 @@ +## Replicache version compatibility + +- 1.0.0 : replicache <= 14.2.2 +- 1.1.0 : replicache >= 15 + ## Why is this needed? Replicache enables us to build applications that are performant, offline-capable and collaborative. By default, it uses [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) for client-side persistance. Unfortunately, this technology is not available in React Native and is only supported in web-browsers. diff --git a/packages/react-native-expo-sqlite/README.md b/packages/react-native-expo-sqlite/README.md index cab6c5c..f6759d6 100644 --- a/packages/react-native-expo-sqlite/README.md +++ b/packages/react-native-expo-sqlite/README.md @@ -4,6 +4,11 @@ +## Replicache version compatibility + +- 1.0.0 : replicache <= 14.2.2 +- 1.1.0 : replicache >= 15 + ## Why is this needed? Replicache enables us to build applications that are performant, offline-capable and collaborative. By default, it uses [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) for client-side persistance. Unfortunately, this technology is not available in React Native and is only supported in web-browsers. diff --git a/packages/react-native-op-sqlite/README.md b/packages/react-native-op-sqlite/README.md index 755d101..1691de0 100644 --- a/packages/react-native-op-sqlite/README.md +++ b/packages/react-native-op-sqlite/README.md @@ -4,6 +4,11 @@ +## Replicache version compatibility + +- 1.0.0 : replicache <= 14.2.2 +- 1.1.0 : replicache >= 15 + ## Why is this needed? Replicache enables us to build applications that are performant, offline-capable and collaborative. By default, it uses [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) for client-side persistance. Unfortunately, this technology is not available in React Native and is only supported in web-browsers. diff --git a/packages/replicache-generic-sqlite/README.md b/packages/replicache-generic-sqlite/README.md index aeab23e..f9a7c4a 100644 --- a/packages/replicache-generic-sqlite/README.md +++ b/packages/replicache-generic-sqlite/README.md @@ -4,6 +4,11 @@ +## Replicache version compatibility + +- 1.0.0 : replicache <= 14.2.2 +- 1.1.0 : replicache >= 15 + ## Why is this needed? This package provides a generic SQLite implementation of [`kvStore`](https://doc.replicache.dev/api/interfaces/ReplicacheOptions#experimentalcreatekvstore) that is agnostic of the underlying SQLite binding. This abstraction enables us to easily support multiple SQLite bindings. It isn't coupled to React Native either, so could work on other platforms - but that remains to be explored. diff --git a/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-database-manager.ts b/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-database-manager.ts index 19aab4b..22e4b09 100644 --- a/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-database-manager.ts +++ b/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-database-manager.ts @@ -4,28 +4,37 @@ import { } from "./generic-sqlite-adapter"; export class ReplicacheGenericSQLiteDatabaseManager { - private _openDbs = new Map(); + private _dbInstances = new Map< + string, + { + db: GenericSQLDatabase; + state: "open" | "closed"; + } + >(); constructor(private readonly _dbm: GenericDatabaseManager) {} async open(name: string) { - const db = this._openDbs.get(name); - if (db) return db; + const dbInstance = this._dbInstances.get(name); + if (dbInstance?.state === "open") return dbInstance.db; const newDb = await this._dbm.open(`replicache-${name}.sqlite`); - - await this._setupSchema(newDb); - this._openDbs.set(name, newDb); + if (!dbInstance) { + await this._setupSchema(newDb); + this._dbInstances.set(name, { state: "open", db: newDb }); + } else { + dbInstance.state = "open"; + } return newDb; } async close(name: string) { - const db = this._openDbs.get(name); - if (!db) return; + const dbInstance = this._dbInstances.get(name); + if (!dbInstance) return; - await db.close(); - this._openDbs.delete(name); + await dbInstance.db.close(); + dbInstance.state = "closed"; } async truncate(name: string) { @@ -37,10 +46,11 @@ export class ReplicacheGenericSQLiteDatabaseManager { } async destroy(name: string) { - const db = this._openDbs.get(name); - if (!db) return; + const dbInstances = this._dbInstances.get(name); + if (!dbInstances) return; - await db.destroy(); + await dbInstances.db.destroy(); + this._dbInstances.delete(name); } private async _setupSchema(db: GenericSQLDatabase) { @@ -48,7 +58,7 @@ export class ReplicacheGenericSQLiteDatabaseManager { await tx.start(false); await tx.execute( "CREATE TABLE IF NOT EXISTS entry (key TEXT PRIMARY KEY, value TEXT)", - [], + [] ); await tx.commit(); } diff --git a/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-store.ts b/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-store.ts index 6e89cd1..418e851 100644 --- a/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-store.ts +++ b/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-store.ts @@ -4,14 +4,12 @@ import { ReplicacheGenericSQLiteDatabaseManager } from "./replicache-generic-sql import { ReplicacheGenericSQLiteReadImpl } from "./replicache-generic-sqlite-read-impl"; import { ReplicacheGenericSQLiteWriteImpl } from "./replicache-generic-sqlite-write-impl"; -export class ReplicacheGenericStore - implements KVStore -{ +export class ReplicacheGenericStore implements KVStore { private _closed = false; constructor( private readonly name: string, - private readonly _dbm: ReplicacheGenericSQLiteDatabaseManager, + private readonly _dbm: ReplicacheGenericSQLiteDatabaseManager ) {} async read() { @@ -22,9 +20,7 @@ export class ReplicacheGenericStore } async withRead( - fn: ( - read: Awaited>, - ) => R | Promise, + fn: (read: Awaited>) => R | Promise ): Promise { const read = await this.read(); try { @@ -34,9 +30,7 @@ export class ReplicacheGenericStore } } - async write(): Promise< - Awaited> - > { + async write(): Promise>> { const db = await this._getDb(); const tx = db.transaction(); await tx.start(false); @@ -44,11 +38,7 @@ export class ReplicacheGenericStore } async withWrite( - fn: ( - write: Awaited< - ReturnType - >, - ) => R | Promise, + fn: (write: Awaited>) => R | Promise ): Promise { const write = await this.write(); try { @@ -59,8 +49,7 @@ export class ReplicacheGenericStore } async close() { - const db = await this._getDb(); - db.close(); + await this._dbm.close(this.name); this._closed = true; } @@ -74,7 +63,7 @@ export class ReplicacheGenericStore } export function getCreateReplicacheSQLiteExperimentalCreateKVStore( - db: ReplicacheGenericSQLiteDatabaseManager, + db: ReplicacheGenericSQLiteDatabaseManager ) { return (name: string) => new ReplicacheGenericStore(name, db); } From 9bc51ff13e678338ec5c71a8f1d102a16d87abbb Mon Sep 17 00:00:00 2001 From: NavaceSystem Date: Sun, 28 Jul 2024 20:44:39 +1000 Subject: [PATCH 03/11] fix build --- packages/react-native-op-sqlite/package.json | 6 +- .../replicache-generic-sqlite-read-impl.ts | 1 + yarn.lock | 1261 ++++++++++++++++- 3 files changed, 1247 insertions(+), 21 deletions(-) diff --git a/packages/react-native-op-sqlite/package.json b/packages/react-native-op-sqlite/package.json index 05b9fbc..64b04ae 100644 --- a/packages/react-native-op-sqlite/package.json +++ b/packages/react-native-op-sqlite/package.json @@ -1,6 +1,6 @@ { "name": "@react-native-replicache/react-native-op-sqlite", - "version": "1.1.0", + "version": "1.2.0", "main": "./dist/commonjs/index.js", "module": "./dist/module/index.js", "react-native": "./src/index.ts", @@ -37,6 +37,8 @@ "@react-native-replicache/replicache-generic-sqlite": "1.1.0" }, "devDependencies": { + "@babel/preset-env": "^7.20.0", + "@babel/runtime": "^7.20.0", "@braden1996/tsconfig": "^0.0.1", "@types/react": "~18.2.79", "react-native-builder-bob": "^0.20.3" @@ -61,4 +63,4 @@ "eslintConfig": { "extends": "universe/native" } -} +} \ No newline at end of file diff --git a/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-read-impl.ts b/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-read-impl.ts index 02abffe..b908b0f 100644 --- a/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-read-impl.ts +++ b/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-read-impl.ts @@ -21,6 +21,7 @@ export class ReplicacheGenericSQLiteReadImpl const unsafeValue = await this._getSql(key); if (unsafeValue === undefined) return; const parsedValue = JSON.parse(unsafeValue) as ReadonlyJSONValue; + // @ts-ignore const frozenValue = deepFreeze(parsedValue); return frozenValue; } diff --git a/yarn.lock b/yarn.lock index d0cad57..49571a5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -53,6 +53,16 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/code-frame@npm:7.24.7" + dependencies: + "@babel/highlight": ^7.24.7 + picocolors: ^1.0.0 + checksum: 830e62cd38775fdf84d612544251ce773d544a8e63df667728cc9e0126eeef14c6ebda79be0f0bc307e8318316b7f58c27ce86702e0a1f5c321d842eb38ffda4 + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.20.1, @babel/compat-data@npm:^7.20.5": version: 7.20.14 resolution: "@babel/compat-data@npm:7.20.14" @@ -60,6 +70,13 @@ __metadata: languageName: node linkType: hard +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.24.8, @babel/compat-data@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/compat-data@npm:7.25.0" + checksum: 2ddcf8517f15eb03a712707b5d4fb146e4db44f8ebd821c29ca19f2808ee2f013c7b2c1d5d686b255ffbfa417368d61ee563ccd5d3639ed4293ce308a5d5d481 + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.24.6": version: 7.24.6 resolution: "@babel/compat-data@npm:7.24.6" @@ -136,6 +153,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/generator@npm:7.25.0" + dependencies: + "@babel/types": ^7.25.0 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + jsesc: ^2.5.1 + checksum: bf25649dde4068bff8e387319bf820f2cb3b1af7b8c0cfba0bd90880656427c8bad96cd5cb6db7058d20cffe93149ee59da16567018ceaa21ecaefbf780a785c + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-annotate-as-pure@npm:7.18.6" @@ -154,6 +183,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-annotate-as-pure@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-annotate-as-pure@npm:7.24.7" + dependencies: + "@babel/types": ^7.24.7 + checksum: 6178566099a6a0657db7a7fa601a54fb4731ca0b8614fbdccfd8e523c210c13963649bc8fdfd53ce7dd14d05e3dda2fb22dea5b30113c488b9eb1a906d60212e + languageName: node + linkType: hard + "@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.18.6": version: 7.18.9 resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.18.9" @@ -164,6 +202,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.24.7" + dependencies: + "@babel/traverse": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: 71a6158a9fdebffb82fdc400d5555ba8f2e370cea81a0d578155877bdc4db7d5252b75c43b2fdf3f72b3f68348891f99bd35ae315542daad1b7ace8322b1abcb + languageName: node + linkType: hard + "@babel/helper-compilation-targets@npm:^7.17.7, @babel/helper-compilation-targets@npm:^7.18.9, @babel/helper-compilation-targets@npm:^7.20.0, @babel/helper-compilation-targets@npm:^7.20.7": version: 7.20.7 resolution: "@babel/helper-compilation-targets@npm:7.20.7" @@ -179,6 +227,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.24.7, @babel/helper-compilation-targets@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-compilation-targets@npm:7.24.8" + dependencies: + "@babel/compat-data": ^7.24.8 + "@babel/helper-validator-option": ^7.24.8 + browserslist: ^4.23.1 + lru-cache: ^5.1.1 + semver: ^6.3.1 + checksum: 40c9e87212fffccca387504b259a629615d7df10fc9080c113da6c51095d3e8b622a1409d9ed09faf2191628449ea28d582179c5148e2e993a3140234076b8da + languageName: node + linkType: hard + "@babel/helper-compilation-targets@npm:^7.24.6": version: 7.24.6 resolution: "@babel/helper-compilation-targets@npm:7.24.6" @@ -229,6 +290,23 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-class-features-plugin@npm:^7.24.7": + version: 7.25.0 + resolution: "@babel/helper-create-class-features-plugin@npm:7.25.0" + dependencies: + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-member-expression-to-functions": ^7.24.8 + "@babel/helper-optimise-call-expression": ^7.24.7 + "@babel/helper-replace-supers": ^7.25.0 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 + "@babel/traverse": ^7.25.0 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: e986c1187e16837b71f12920bd77e672b4bc19ac6dfe30b9d9d515a311c5cc5a085a8e337ac8597b1cb7bd0efdbfcc66f69bf652786c9a022070f9b782deec0d + languageName: node + linkType: hard + "@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.20.5": version: 7.20.5 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.20.5" @@ -241,6 +319,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-regexp-features-plugin@npm:^7.24.7, @babel/helper-create-regexp-features-plugin@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.0" + dependencies: + "@babel/helper-annotate-as-pure": ^7.24.7 + regexpu-core: ^5.3.1 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: eff1edbcffa53f361275bfb4449580fe307fafc76d6e7d30d53638198c92462d797f817ccd5624506d42704051a37b29cb6c2a8441c4ea1ee75a5898975f151e + languageName: node + linkType: hard + "@babel/helper-define-polyfill-provider@npm:^0.3.3": version: 0.3.3 resolution: "@babel/helper-define-polyfill-provider@npm:0.3.3" @@ -257,6 +348,21 @@ __metadata: languageName: node linkType: hard +"@babel/helper-define-polyfill-provider@npm:^0.6.1, @babel/helper-define-polyfill-provider@npm:^0.6.2": + version: 0.6.2 + resolution: "@babel/helper-define-polyfill-provider@npm:0.6.2" + dependencies: + "@babel/helper-compilation-targets": ^7.22.6 + "@babel/helper-plugin-utils": ^7.22.5 + debug: ^4.1.1 + lodash.debounce: ^4.0.8 + resolve: ^1.14.2 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 2bba965ea9a4887ddf9c11d51d740ab473bd7597b787d042c325f6a45912dfe908c2d6bb1d837bf82f7e9fa51e6ad5150563c58131d2bb85515e63d971414a9c + languageName: node + linkType: hard + "@babel/helper-environment-visitor@npm:^7.18.9": version: 7.18.9 resolution: "@babel/helper-environment-visitor@npm:7.18.9" @@ -336,6 +442,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-member-expression-to-functions@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-member-expression-to-functions@npm:7.24.8" + dependencies: + "@babel/traverse": ^7.24.8 + "@babel/types": ^7.24.8 + checksum: bf923d05d81b06857f4ca4fe9c528c9c447a58db5ea39595bb559eae2fce01a8266173db0fd6a2ec129d7bbbb9bb22f4e90008252f7c66b422c76630a878a4bc + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-module-imports@npm:7.18.6" @@ -354,6 +470,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-imports@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-module-imports@npm:7.24.7" + dependencies: + "@babel/traverse": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: 8ac15d96d262b8940bc469052a048e06430bba1296369be695fabdf6799f201dd0b00151762b56012a218464e706bc033f27c07f6cec20c6f8f5fd6543c67054 + languageName: node + linkType: hard + "@babel/helper-module-transforms@npm:^7.18.6, @babel/helper-module-transforms@npm:^7.20.11": version: 7.20.11 resolution: "@babel/helper-module-transforms@npm:7.20.11" @@ -385,6 +511,20 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.24.7, @babel/helper-module-transforms@npm:^7.24.8, @babel/helper-module-transforms@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-module-transforms@npm:7.25.0" + dependencies: + "@babel/helper-module-imports": ^7.24.7 + "@babel/helper-simple-access": ^7.24.7 + "@babel/helper-validator-identifier": ^7.24.7 + "@babel/traverse": ^7.25.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 12270fe101a03e46e68d8166aca423c829472f735cd40b674a50c3061954475c840b0baee57ba546d5a51796715e0db8f781f556fb93e71529e5343bd3b6bd57 + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-optimise-call-expression@npm:7.18.6" @@ -403,6 +543,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-optimise-call-expression@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-optimise-call-expression@npm:7.24.7" + dependencies: + "@babel/types": ^7.24.7 + checksum: 280654eaf90e92bf383d7eed49019573fb35a98c9e992668f701ad099957246721044be2068cf6840cb2299e0ad393705a1981c88c23a1048096a8d59e5f79a3 + languageName: node + linkType: hard + "@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.16.7, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.18.9, @babel/helper-plugin-utils@npm:^7.19.0, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": version: 7.20.2 resolution: "@babel/helper-plugin-utils@npm:7.20.2" @@ -410,6 +559,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-plugin-utils@npm:7.24.8" + checksum: 73b1a83ba8bcee21dc94de2eb7323207391715e4369fd55844bb15cf13e3df6f3d13a40786d990e6370bf0f571d94fc31f70dec96c1d1002058258c35ca3767a + languageName: node + linkType: hard + "@babel/helper-plugin-utils@npm:^7.24.6": version: 7.24.6 resolution: "@babel/helper-plugin-utils@npm:7.24.6" @@ -444,6 +600,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-remap-async-to-generator@npm:^7.24.7, @babel/helper-remap-async-to-generator@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-remap-async-to-generator@npm:7.25.0" + dependencies: + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-wrap-function": ^7.25.0 + "@babel/traverse": ^7.25.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 47f3065e43fe9d6128ddb4291ffb9cf031935379265fd13de972b5f241943121f7583efb69cd2e1ecf39e3d0f76f047547d56c3fcc2c853b326fad5465da0bd7 + languageName: node + linkType: hard + "@babel/helper-replace-supers@npm:^7.18.6, @babel/helper-replace-supers@npm:^7.20.7": version: 7.20.7 resolution: "@babel/helper-replace-supers@npm:7.20.7" @@ -471,6 +640,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-replace-supers@npm:^7.24.7, @babel/helper-replace-supers@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-replace-supers@npm:7.25.0" + dependencies: + "@babel/helper-member-expression-to-functions": ^7.24.8 + "@babel/helper-optimise-call-expression": ^7.24.7 + "@babel/traverse": ^7.25.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: f669fc2487c22d40b808f94b9c3ee41129484d5ef0ba689bdd70f216ff91e10b6b021d2f8cd37e7bdd700235a2a6ae6622526344f064528190383bf661ac65f8 + languageName: node + linkType: hard + "@babel/helper-simple-access@npm:^7.20.2": version: 7.20.2 resolution: "@babel/helper-simple-access@npm:7.20.2" @@ -489,6 +671,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-simple-access@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-simple-access@npm:7.24.7" + dependencies: + "@babel/traverse": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: ddbf55f9dea1900213f2a1a8500fabfd21c5a20f44dcfa957e4b0d8638c730f88751c77f678644f754f1a1dc73f4eb8b766c300deb45a9daad000e4247957819 + languageName: node + linkType: hard + "@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0": version: 7.20.0 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.20.0" @@ -507,6 +699,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.24.7" + dependencies: + "@babel/traverse": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: 11b28fe534ce2b1a67c4d8e51a7b5711a2a0a0cae802f74614eee54cca58c744d9a62f6f60103c41759e81c537d270bfd665bf368a6bea214c6052f2094f8407 + languageName: node + linkType: hard + "@babel/helper-split-export-declaration@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-split-export-declaration@npm:7.18.6" @@ -539,6 +741,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-string-parser@npm:7.24.8" + checksum: 39b03c5119216883878655b149148dc4d2e284791e969b19467a9411fccaa33f7a713add98f4db5ed519535f70ad273cdadfd2eb54d47ebbdeac5083351328ce + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.19.1": version: 7.19.1 resolution: "@babel/helper-validator-identifier@npm:7.19.1" @@ -553,6 +762,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-validator-identifier@npm:7.24.7" + checksum: 6799ab117cefc0ecd35cd0b40ead320c621a298ecac88686a14cffceaac89d80cdb3c178f969861bf5fa5e4f766648f9161ea0752ecfe080d8e89e3147270257 + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-validator-option@npm:7.18.6" @@ -567,6 +783,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-option@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-validator-option@npm:7.24.8" + checksum: a52442dfa74be6719c0608fee3225bd0493c4057459f3014681ea1a4643cd38b68ff477fe867c4b356da7330d085f247f0724d300582fa4ab9a02efaf34d107c + languageName: node + linkType: hard + "@babel/helper-wrap-function@npm:^7.18.9": version: 7.20.5 resolution: "@babel/helper-wrap-function@npm:7.20.5" @@ -590,6 +813,17 @@ __metadata: languageName: node linkType: hard +"@babel/helper-wrap-function@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-wrap-function@npm:7.25.0" + dependencies: + "@babel/template": ^7.25.0 + "@babel/traverse": ^7.25.0 + "@babel/types": ^7.25.0 + checksum: 0095b4741704066d1687f9bbd5370bb88c733919e4275e49615f70c180208148ff5f24ab58d186ce92f8f5d28eab034ec6617e9264590cc4744c75302857629c + languageName: node + linkType: hard + "@babel/helpers@npm:^7.20.7": version: 7.20.13 resolution: "@babel/helpers@npm:7.20.13" @@ -634,6 +868,18 @@ __metadata: languageName: node linkType: hard +"@babel/highlight@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/highlight@npm:7.24.7" + dependencies: + "@babel/helper-validator-identifier": ^7.24.7 + chalk: ^2.4.2 + js-tokens: ^4.0.0 + picocolors: ^1.0.0 + checksum: 5cd3a89f143671c4ac129960024ba678b669e6fc673ce078030f5175002d1d3d52bc10b22c5b916a6faf644b5028e9a4bd2bb264d053d9b05b6a98690f1d46f1 + languageName: node + linkType: hard + "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.20.0, @babel/parser@npm:^7.20.13, @babel/parser@npm:^7.20.7": version: 7.20.15 resolution: "@babel/parser@npm:7.20.15" @@ -652,6 +898,38 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/parser@npm:7.25.0" + bin: + parser: ./bin/babel-parser.js + checksum: e0f0f5a0d323c8ebaa7caa5a982ce82a87d1f7176939642020beed021024af523e69e30b8918be82d02666742dfe0aad562c65edfd1a696785d76a2882e7904c + languageName: node + linkType: hard + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.0" + dependencies: + "@babel/helper-plugin-utils": ^7.24.8 + "@babel/traverse": ^7.25.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: d33738813ac3ed45322da80e8111b18303f6ea39e703c271eeb8cc23163f5fc7c16ed7dfdc9489b2e31bd6a620c806db2edfc719b7a91f340b64921a3d304024 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.0" + dependencies: + "@babel/helper-plugin-utils": ^7.24.8 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: fd56d1e6435f2c008ca9050ea906ff7eedcbec43f532f2bf2e7e905d8bf75bf5e4295ea9593f060394e2c8e45737266ccbf718050bad2dd7be4e7613c60d1b5b + languageName: node + linkType: hard + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.18.6" @@ -663,6 +941,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.0" + dependencies: + "@babel/helper-plugin-utils": ^7.24.8 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 13ed301b108d85867d64226bbc4032b07dd1a23aab68e9e32452c4fe3930f2198bb65bdae9c262c4104bd5e45647bc1830d25d43d356ee9a137edd8d5fab8350 + languageName: node + linkType: hard + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.18.9": version: 7.20.7 resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.20.7" @@ -676,6 +965,31 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 + "@babel/plugin-transform-optional-chaining": ^7.24.7 + peerDependencies: + "@babel/core": ^7.13.0 + checksum: 07b92878ac58a98ea1fdf6a8b4ec3413ba4fa66924e28b694d63ec5b84463123fbf4d7153b56cf3cedfef4a3482c082fe3243c04f8fb2c041b32b0e29b4a9e21 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.0" + dependencies: + "@babel/helper-plugin-utils": ^7.24.8 + "@babel/traverse": ^7.25.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: c8d08b8d6cc71451ad2a50cf7db72ab5b41c1e5e2e4d56cf6837a25a61270abd682c6b8881ab025f11a552d2024b3780519bb051459ebb71c27aed13d9917663 + languageName: node + linkType: hard + "@babel/plugin-proposal-async-generator-functions@npm:^7.0.0, @babel/plugin-proposal-async-generator-functions@npm:^7.20.1": version: 7.20.7 resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.20.7" @@ -879,6 +1193,15 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2": + version: 7.21.0-placeholder-for-preset-env.2 + resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d97745d098b835d55033ff3a7fb2b895b9c5295b08a5759e4f20df325aa385a3e0bc9bd5ad8f2ec554a44d4e6525acfc257b8c5848a1345cb40f26a30e277e91 + languageName: node + linkType: hard + "@babel/plugin-proposal-private-property-in-object@npm:^7.18.6": version: 7.20.5 resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.20.5" @@ -1015,6 +1338,39 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-import-assertions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c4d67be4eb1d4637e361477dbe01f5b392b037d17c1f861cfa0faa120030e137aab90a9237931b8040fd31d1e5d159e11866fa1165f78beef7a3be876a391a17 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-attributes@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 590dbb5d1a15264f74670b427b8d18527672c3d6c91d7bae7e65f80fd810edbc83d90e68065088644cbad3f2457ed265a54a9956fb789fcb9a5b521822b3a275 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-meta@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b + languageName: node + linkType: hard + "@babel/plugin-syntax-json-strings@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" @@ -1158,6 +1514,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: a651d700fe63ff0ddfd7186f4ebc24447ca734f114433139e3c027bc94a900d013cf1ef2e2db8430425ba542e39ae160c3b05f06b59fd4656273a3df97679e9c + languageName: node + linkType: hard + "@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.18.6": version: 7.20.7 resolution: "@babel/plugin-transform-arrow-functions@npm:7.20.7" @@ -1169,6 +1537,31 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-arrow-functions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 707c209b5331c7dc79bd326128c6a6640dbd62a78da1653c844db20c4f36bf7b68454f1bc4d2d051b3fde9136fa291f276ec03a071bb00ee653069ff82f91010 + languageName: node + linkType: hard + +"@babel/plugin-transform-async-generator-functions@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.0" + dependencies: + "@babel/helper-plugin-utils": ^7.24.8 + "@babel/helper-remap-async-to-generator": ^7.25.0 + "@babel/plugin-syntax-async-generators": ^7.8.4 + "@babel/traverse": ^7.25.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cce2bab70ad871ac11751bede006bd4861888f4c63bc9954be38620b14cc6890a4cbc633c1062b89c5fe288ce74b9d1974cc0d43c04baeeb2b13231a236fba85 + languageName: node + linkType: hard + "@babel/plugin-transform-async-to-generator@npm:^7.18.6": version: 7.20.7 resolution: "@babel/plugin-transform-async-to-generator@npm:7.20.7" @@ -1195,6 +1588,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-async-to-generator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.7" + dependencies: + "@babel/helper-module-imports": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-remap-async-to-generator": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 13704fb3b83effc868db2b71bfb2c77b895c56cb891954fc362e95e200afd523313b0e7cf04ce02f45b05e76017c5b5fa8070c92613727a35131bb542c253a36 + languageName: node + linkType: hard + "@babel/plugin-transform-block-scoped-functions@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.18.6" @@ -1206,6 +1612,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-block-scoped-functions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 249cdcbff4e778b177245f9652b014ea4f3cd245d83297f10a7bf6d97790074089aa62bcde8c08eb299c5e68f2faed346b587d3ebac44d625ba9a83a4ee27028 + languageName: node + linkType: hard + "@babel/plugin-transform-block-scoping@npm:^7.0.0, @babel/plugin-transform-block-scoping@npm:^7.20.2": version: 7.20.15 resolution: "@babel/plugin-transform-block-scoping@npm:7.20.15" @@ -1217,6 +1634,42 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-block-scoping@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-block-scoping@npm:7.25.0" + dependencies: + "@babel/helper-plugin-utils": ^7.24.8 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b1a8f932f69ad2a47ae3e02b4cedd2a876bfc2ac9cf72a503fd706cdc87272646fe9eed81e068c0fc639647033de29f7fa0c21cddd1da0026f83dbaac97316a8 + languageName: node + linkType: hard + +"@babel/plugin-transform-class-properties@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-class-properties@npm:7.24.7" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1348d7ce74da38ba52ea85b3b4289a6a86913748569ef92ef0cff30702a9eb849e5eaf59f1c6f3517059aa68115fb3067e389735dccacca39add4e2b0c67e291 + languageName: node + linkType: hard + +"@babel/plugin-transform-class-static-block@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-class-static-block@npm:7.24.7" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/plugin-syntax-class-static-block": ^7.14.5 + peerDependencies: + "@babel/core": ^7.12.0 + checksum: 324049263504f18416f1c3e24033baebfafd05480fdd885c8ebe6f2b415b0fc8e0b98d719360f9e30743cc78ac387fabc0b3c6606d2b54135756ffb92963b382 + languageName: node + linkType: hard + "@babel/plugin-transform-classes@npm:^7.0.0, @babel/plugin-transform-classes@npm:^7.20.2": version: 7.20.7 resolution: "@babel/plugin-transform-classes@npm:7.20.7" @@ -1236,6 +1689,22 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-classes@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-classes@npm:7.25.0" + dependencies: + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-compilation-targets": ^7.24.8 + "@babel/helper-plugin-utils": ^7.24.8 + "@babel/helper-replace-supers": ^7.25.0 + "@babel/traverse": ^7.25.0 + globals: ^11.1.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ff97f168e6a18fa4e7bb439f1a170dc83c470973091c22c74674769350ab572be5af017cdb64fbd261fe99d068a4ee88f1b7fa7f5ab524d84c2f2833b116e577 + languageName: node + linkType: hard + "@babel/plugin-transform-computed-properties@npm:^7.0.0, @babel/plugin-transform-computed-properties@npm:^7.18.9": version: 7.20.7 resolution: "@babel/plugin-transform-computed-properties@npm:7.20.7" @@ -1248,6 +1717,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-computed-properties@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-computed-properties@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/template": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0cf8c1b1e4ea57dec8d4612460d84fd4cdbf71a7499bb61ee34632cf89018a59eee818ffca88a8d99ee7057c20a4257044d7d463fda6daef9bf1db9fa81563cb + languageName: node + linkType: hard + "@babel/plugin-transform-destructuring@npm:^7.20.0": version: 7.24.6 resolution: "@babel/plugin-transform-destructuring@npm:7.24.6" @@ -1270,6 +1751,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-destructuring@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/plugin-transform-destructuring@npm:7.24.8" + dependencies: + "@babel/helper-plugin-utils": ^7.24.8 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0b4bd3d608979a1e5bd97d9d42acd5ad405c7fffa61efac4c7afd8e86ea6c2d91ab2d94b6a98d63919571363fe76e0b03c4ff161f0f60241b895842596e4a999 + languageName: node + linkType: hard + "@babel/plugin-transform-dotall-regex@npm:^7.18.6, @babel/plugin-transform-dotall-regex@npm:^7.4.4": version: 7.18.6 resolution: "@babel/plugin-transform-dotall-regex@npm:7.18.6" @@ -1282,6 +1774,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-dotall-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 67b10fc6abb1f61f0e765288eb4c6d63d1d0f9fc0660e69f6f2170c56fa16bc74e49857afc644beda112b41771cd90cf52df0940d11e97e52617c77c7dcff171 + languageName: node + linkType: hard + "@babel/plugin-transform-duplicate-keys@npm:^7.18.9": version: 7.18.9 resolution: "@babel/plugin-transform-duplicate-keys@npm:7.18.9" @@ -1293,6 +1797,41 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-duplicate-keys@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d1da2ff85ecb56a63f4ccfd9dc9ae69400d85f0dadf44ecddd9e71c6e5c7a9178e74e3a9637555f415a2bb14551e563f09f98534ab54f53d25e8439fdde6ba2d + languageName: node + linkType: hard + +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.0" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.25.0 + "@babel/helper-plugin-utils": ^7.24.8 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 608d6b0e77341189508880fd1a9f605a38d0803dd6f678ea3920ab181b17b377f6d5221ae8cf0104c7a044d30d4ddb0366bd064447695671d78457a656bb264f + languageName: node + linkType: hard + +"@babel/plugin-transform-dynamic-import@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 776509ff62ab40c12be814a342fc56a5cc09b91fb63032b2633414b635875fd7da03734657be0f6db2891fe6e3033b75d5ddb6f2baabd1a02e4443754a785002 + languageName: node + linkType: hard + "@babel/plugin-transform-exponentiation-operator@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.18.6" @@ -1305,6 +1844,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-exponentiation-operator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.7" + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 23c84a23eb56589fdd35a3540f9a1190615be069110a2270865223c03aee3ba4e0fc68fe14850800cf36f0712b26e4964d3026235261f58f0405a29fe8dac9b1 + languageName: node + linkType: hard + "@babel/plugin-transform-export-namespace-from@npm:^7.22.11": version: 7.24.6 resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.6" @@ -1317,6 +1868,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-export-namespace-from@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3bd3a10038f10ae0dea1ee42137f3edcf7036b5e9e570a0d1cbd0865f03658990c6c2d84fa2475f87a754e7dc5b46766c16f7ce5c9b32c3040150b6a21233a80 + languageName: node + linkType: hard + "@babel/plugin-transform-flow-strip-types@npm:^7.18.6": version: 7.19.0 resolution: "@babel/plugin-transform-flow-strip-types@npm:7.19.0" @@ -1352,6 +1915,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-for-of@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-for-of@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a53b42dc93ab4b7d1ebd3c695b52be22b3d592f6a3dbdb3dc2fea2c8e0a7e1508fe919864c455cde552aec44ce7518625fccbb70c7063373ca228d884f4f49ea + languageName: node + linkType: hard + "@babel/plugin-transform-function-name@npm:^7.0.0, @babel/plugin-transform-function-name@npm:^7.18.9": version: 7.18.9 resolution: "@babel/plugin-transform-function-name@npm:7.18.9" @@ -1365,6 +1940,31 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-function-name@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-function-name@npm:7.25.0" + dependencies: + "@babel/helper-compilation-targets": ^7.24.8 + "@babel/helper-plugin-utils": ^7.24.8 + "@babel/traverse": ^7.25.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 878700d90ba232b78ffc29d43971e4bd561cdc6a0c287ea45c94b398e0862b5eeff738e71b71e3576cd966e4fa02b3003f7861125f3e862fdda79a73a745910d + languageName: node + linkType: hard + +"@babel/plugin-transform-json-strings@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-json-strings@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/plugin-syntax-json-strings": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 88874d0b7a1ddea66c097fc0abb68801ffae194468aa44b828dde9a0e20ac5d8647943793de86092eabaa2911c96f67a6b373793d4bb9c932ef81b2711c06c2e + languageName: node + linkType: hard + "@babel/plugin-transform-literals@npm:^7.0.0, @babel/plugin-transform-literals@npm:^7.18.9": version: 7.18.9 resolution: "@babel/plugin-transform-literals@npm:7.18.9" @@ -1376,6 +1976,29 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-literals@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-literals@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3c075cc093a3dd9e294b8b7d6656e65f889e7ca2179ca27978dcd65b4dc4885ebbfb327408d7d8f483c55547deed00ba840956196f3ac8a3c3d2308a330a8c23 + languageName: node + linkType: hard + +"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3367ce0be243704dc6fce23e86a592c4380f01998ee5dd9f94c54b1ef7b971ac6f8a002901eb51599ac6cbdc0d067af8d1a720224fca1c40fde8bb8aab804aac + languageName: node + linkType: hard + "@babel/plugin-transform-member-expression-literals@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-member-expression-literals@npm:7.18.6" @@ -1387,6 +2010,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-member-expression-literals@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2720c57aa3bf70576146ba7d6ea03227f4611852122d76d237924f7b008dafc952e6ae61a19e5024f26c665f44384bbd378466f01b6bd1305b3564a3b7fb1a5d + languageName: node + linkType: hard + "@babel/plugin-transform-modules-amd@npm:^7.19.6": version: 7.20.11 resolution: "@babel/plugin-transform-modules-amd@npm:7.20.11" @@ -1399,6 +2033,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-amd@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-modules-amd@npm:7.24.7" + dependencies: + "@babel/helper-module-transforms": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f1dd0fb2f46c0f8f21076b8c7ccd5b33a85ce6dcb31518ea4c648d9a5bb2474cd4bd87c9b1b752e68591e24b022e334ba0d07631fef2b6b4d8a4b85cf3d581f5 + languageName: node + linkType: hard + "@babel/plugin-transform-modules-commonjs@npm:^7.0.0, @babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.19.6": version: 7.20.11 resolution: "@babel/plugin-transform-modules-commonjs@npm:7.20.11" @@ -1425,6 +2071,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-commonjs@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.8" + dependencies: + "@babel/helper-module-transforms": ^7.24.8 + "@babel/helper-plugin-utils": ^7.24.8 + "@babel/helper-simple-access": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a4cf95b1639c33382064b44558f73ee5fac023f2a94d16e549d2bb55ceebd5cbc10fcddd505d08cd5bc97f5a64af9fd155512358b7dcf7b1a0082e8945cf21c5 + languageName: node + linkType: hard + "@babel/plugin-transform-modules-systemjs@npm:^7.19.6": version: 7.20.11 resolution: "@babel/plugin-transform-modules-systemjs@npm:7.20.11" @@ -1439,38 +2098,111 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-modules-umd@npm:7.18.6" +"@babel/plugin-transform-modules-systemjs@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.0" + dependencies: + "@babel/helper-module-transforms": ^7.25.0 + "@babel/helper-plugin-utils": ^7.24.8 + "@babel/helper-validator-identifier": ^7.24.7 + "@babel/traverse": ^7.25.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: fe673bec08564e491847324bb80a1e6edfb229f5c37e58a094d51e95306e7b098e1d130fc43e992d22debd93b9beac74441ffc3f6ea5d78f6b2535896efa0728 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-umd@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-modules-umd@npm:7.18.6" + dependencies: + "@babel/helper-module-transforms": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c3b6796c6f4579f1ba5ab0cdcc73910c1e9c8e1e773c507c8bb4da33072b3ae5df73c6d68f9126dab6e99c24ea8571e1563f8710d7c421fac1cde1e434c20153 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-umd@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-modules-umd@npm:7.24.7" + dependencies: + "@babel/helper-module-transforms": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9ff1c464892efe042952ba778468bda6131b196a2729615bdcc3f24cdc94014f016a4616ee5643c5845bade6ba698f386833e61056d7201314b13a7fd69fac88 + languageName: node + linkType: hard + +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.0.0, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.19.1": + version: 7.20.5 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.20.5" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.20.5 + "@babel/helper-plugin-utils": ^7.20.2 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 528c95fb1087e212f17e1c6456df041b28a83c772b9c93d2e407c9d03b72182b0d9d126770c1d6e0b23aab052599ceaf25ed6a2c0627f4249be34a83f6fae853 + languageName: node + linkType: hard + +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.24.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: f1c6c7b5d60a86b6d7e4dd098798e1d393d55e993a0b57a73b53640c7a94985b601a96bdacee063f809a9a700bcea3a2ff18e98fa561554484ac56b761d774bd + languageName: node + linkType: hard + +"@babel/plugin-transform-new-target@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-new-target@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bd780e14f46af55d0ae8503b3cb81ca86dcc73ed782f177e74f498fff934754f9e9911df1f8f3bd123777eed7c1c1af4d66abab87c8daae5403e7719a6b845d1 + languageName: node + linkType: hard + +"@babel/plugin-transform-new-target@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-new-target@npm:7.24.7" dependencies: - "@babel/helper-module-transforms": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c3b6796c6f4579f1ba5ab0cdcc73910c1e9c8e1e773c507c8bb4da33072b3ae5df73c6d68f9126dab6e99c24ea8571e1563f8710d7c421fac1cde1e434c20153 + checksum: 3cb94cd1076b270f768f91fdcf9dd2f6d487f8dbfff3df7ca8d07b915900b86d02769a35ba1407d16fe49499012c8f055e1741299e2c880798b953d942a8fa1b languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.0.0, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.19.1": - version: 7.20.5 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.20.5" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.20.5 - "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 peerDependencies: - "@babel/core": ^7.0.0 - checksum: 528c95fb1087e212f17e1c6456df041b28a83c772b9c93d2e407c9d03b72182b0d9d126770c1d6e0b23aab052599ceaf25ed6a2c0627f4249be34a83f6fae853 + "@babel/core": ^7.0.0-0 + checksum: 4a9221356401d87762afbc37a9e8e764afc2daf09c421117537820f8cfbed6876888372ad3a7bcfae2d45c95f026651f050ab4020b777be31d3ffb00908dbdd3 languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-new-target@npm:7.18.6" +"@babel/plugin-transform-numeric-separator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bd780e14f46af55d0ae8503b3cb81ca86dcc73ed782f177e74f498fff934754f9e9911df1f8f3bd123777eed7c1c1af4d66abab87c8daae5403e7719a6b845d1 + checksum: 561b5f1d08b2c3f92ce849f092751558b5e6cfeb7eb55c79e7375c34dd9c3066dce5e630bb439affef6adcf202b6cbcaaa23870070276fa5bb429c8f5b8c7514 languageName: node linkType: hard @@ -1488,6 +2220,20 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-object-rest-spread@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.7" + dependencies: + "@babel/helper-compilation-targets": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-transform-parameters": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 169d257b9800c13e1feb4c37fb05dae84f702e58b342bb76e19e82e6692b7b5337c9923ee89e3916a97c0dd04a3375bdeca14f5e126f110bbacbeb46d1886ca2 + languageName: node + linkType: hard + "@babel/plugin-transform-object-super@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-object-super@npm:7.18.6" @@ -1500,6 +2246,43 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-object-super@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-object-super@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-replace-supers": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f71e607a830ee50a22fa1a2686524d3339440cf9dea63032f6efbd865cfe4e35000e1e3f3492459e5c986f7c0c07dc36938bf3ce61fc9ba5f8ab732d0b64ab37 + languageName: node + linkType: hard + +"@babel/plugin-transform-optional-catch-binding@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7229f3a5a4facaab40f4fdfc7faabc157dc38a67d66bed7936599f4bc509e0bff636f847ac2aa45294881fce9cf8a0a460b85d2a465b7b977de9739fce9b18f6 + languageName: node + linkType: hard + +"@babel/plugin-transform-optional-chaining@npm:^7.24.7, @babel/plugin-transform-optional-chaining@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.8" + dependencies: + "@babel/helper-plugin-utils": ^7.24.8 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 45e55e3a2fffb89002d3f89aef59c141610f23b60eee41e047380bffc40290b59f64fc649aa7ec5281f73d41b2065410d788acc6afaad2a9f44cad6e8af04442 + languageName: node + linkType: hard + "@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.20.1, @babel/plugin-transform-parameters@npm:^7.20.7": version: 7.20.7 resolution: "@babel/plugin-transform-parameters@npm:7.20.7" @@ -1522,6 +2305,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-parameters@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-parameters@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ab534b03ac2eff94bc79342b8f39a4584666f5305a6c63c1964afda0b1b004e6b861e49d1683548030defe248e3590d3ff6338ee0552cb90c064f7e1479968c3 + languageName: node + linkType: hard + "@babel/plugin-transform-private-methods@npm:^7.22.5": version: 7.24.6 resolution: "@babel/plugin-transform-private-methods@npm:7.24.6" @@ -1534,6 +2328,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-private-methods@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-private-methods@npm:7.24.7" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c151548e34909be2adcceb224d8fdd70bafa393bc1559a600906f3f647317575bf40db670470934a360e90ee8084ef36dffa34ec25d387d414afd841e74cf3fe + languageName: node + linkType: hard + "@babel/plugin-transform-private-property-in-object@npm:^7.22.11": version: 7.24.6 resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.6" @@ -1548,6 +2354,20 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-private-property-in-object@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.7" + dependencies: + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-create-class-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 8cee9473095305cc787bb653fd681719b49363281feabf677db8a552e8e41c94441408055d7e5fd5c7d41b315e634fa70b145ad0c7c54456216049df4ed57350 + languageName: node + linkType: hard + "@babel/plugin-transform-property-literals@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-property-literals@npm:7.18.6" @@ -1559,6 +2379,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-property-literals@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-property-literals@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9aeefc3aab6c6bf9d1fae1cf3a2d38c7d886fd3c6c81b7c608c477f5758aee2e7abf52f32724310fe861da61af934ee2508b78a5b5f234b9740c9134e1c14437 + languageName: node + linkType: hard + "@babel/plugin-transform-react-display-name@npm:^7.0.0, @babel/plugin-transform-react-display-name@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-react-display-name@npm:7.18.6" @@ -1691,6 +2522,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-regenerator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-regenerator@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + regenerator-transform: ^0.15.2 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 20c6c3fb6fc9f407829087316653388d311e8c1816b007609bb09aeef254092a7157adace8b3aaa8f34be752503717cb85c88a5fe482180a9b11bcbd676063be + languageName: node + linkType: hard + "@babel/plugin-transform-reserved-words@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-reserved-words@npm:7.18.6" @@ -1702,6 +2545,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-reserved-words@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-reserved-words@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3d5876954d5914d7270819479504f30c4bf5452a65c677f44e2dab2db50b3c9d4b47793c45dfad7abf4f377035dd79e4b3f554ae350df9f422201d370ce9f8dd + languageName: node + linkType: hard + "@babel/plugin-transform-runtime@npm:^7.0.0": version: 7.19.6 resolution: "@babel/plugin-transform-runtime@npm:7.19.6" @@ -1729,6 +2583,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-shorthand-properties@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7b524245814607188212b8eb86d8c850e5974203328455a30881b4a92c364b93353fae14bc2af5b614ef16300b75b8c1d3b8f3a08355985b4794a7feb240adc3 + languageName: node + linkType: hard + "@babel/plugin-transform-spread@npm:^7.0.0, @babel/plugin-transform-spread@npm:^7.19.0": version: 7.20.7 resolution: "@babel/plugin-transform-spread@npm:7.20.7" @@ -1741,6 +2606,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-spread@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-spread@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 4c4254c8b9cceb1a8f975fa9b92257ddb08380a35c0a3721b8f4b9e13a3d82e403af2e0fba577b9f2452dd8f06bc3dea71cc53b1e2c6af595af5db52a13429d6 + languageName: node + linkType: hard + "@babel/plugin-transform-sticky-regex@npm:^7.0.0, @babel/plugin-transform-sticky-regex@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-sticky-regex@npm:7.18.6" @@ -1752,6 +2629,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-sticky-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 118fc7a7ebf7c20411b670c8a030535fdfe4a88bc5643bb625a584dbc4c8a468da46430a20e6bf78914246962b0f18f1b9d6a62561a7762c4f34a038a5a77179 + languageName: node + linkType: hard + "@babel/plugin-transform-template-literals@npm:^7.18.9": version: 7.18.9 resolution: "@babel/plugin-transform-template-literals@npm:7.18.9" @@ -1763,6 +2651,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-template-literals@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-template-literals@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ad44e5826f5a98c1575832dbdbd033adfe683cdff195e178528ead62507564bf02f479b282976cfd3caebad8b06d5fd7349c1cdb880dec3c56daea4f1f179619 + languageName: node + linkType: hard + "@babel/plugin-transform-typeof-symbol@npm:^7.18.9": version: 7.18.9 resolution: "@babel/plugin-transform-typeof-symbol@npm:7.18.9" @@ -1774,6 +2673,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-typeof-symbol@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.8" + dependencies: + "@babel/helper-plugin-utils": ^7.24.8 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 8663a8e7347cedf181001d99c88cf794b6598c3d82f324098510fe8fb8bd22113995526a77aa35a3cc5d70ffd0617a59dd0d10311a9bf0e1a3a7d3e59b900c00 + languageName: node + linkType: hard + "@babel/plugin-transform-typescript@npm:^7.18.6, @babel/plugin-transform-typescript@npm:^7.5.0": version: 7.20.13 resolution: "@babel/plugin-transform-typescript@npm:7.20.13" @@ -1812,6 +2722,29 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-unicode-escapes@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 4af0a193e1ddea6ff82b2b15cc2501b872728050bd625740b813c8062fec917d32d530ff6b41de56c15e7296becdf3336a58db81f5ca8e7c445c1306c52f3e01 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-property-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: aae13350c50973f5802ca7906d022a6a0cc0e3aebac9122d0450bbd51e78252d4c2032ad69385e2759fcbdd3aac5d571bd7e26258907f51f8e1a51b53be626c2 + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-regex@npm:^7.0.0, @babel/plugin-transform-unicode-regex@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-unicode-regex@npm:7.18.6" @@ -1824,6 +2757,30 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-unicode-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1cb4e70678906e431da0a05ac3f8350025fee290304ad7482d9cfaa1ca67b2e898654de537c9268efbdad5b80d3ebadf42b4a88ea84609bd8a4cce7b11b48afd + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-sets-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 08a2844914f33dacd2ce1ab021ce8c1cc35dc6568521a746d8bf29c21571ee5be78787b454231c4bb3526cbbe280f1893223c82726cec5df2be5dae0a3b51837 + languageName: node + linkType: hard + "@babel/preset-env@npm:^7.18.2": version: 7.20.2 resolution: "@babel/preset-env@npm:7.20.2" @@ -1909,6 +2866,99 @@ __metadata: languageName: node linkType: hard +"@babel/preset-env@npm:^7.20.0": + version: 7.25.0 + resolution: "@babel/preset-env@npm:7.25.0" + dependencies: + "@babel/compat-data": ^7.25.0 + "@babel/helper-compilation-targets": ^7.24.8 + "@babel/helper-plugin-utils": ^7.24.8 + "@babel/helper-validator-option": ^7.24.8 + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.25.0 + "@babel/plugin-bugfix-safari-class-field-initializer-scope": ^7.25.0 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.25.0 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.24.7 + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.25.0 + "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 + "@babel/plugin-syntax-async-generators": ^7.8.4 + "@babel/plugin-syntax-class-properties": ^7.12.13 + "@babel/plugin-syntax-class-static-block": ^7.14.5 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 + "@babel/plugin-syntax-import-assertions": ^7.24.7 + "@babel/plugin-syntax-import-attributes": ^7.24.7 + "@babel/plugin-syntax-import-meta": ^7.10.4 + "@babel/plugin-syntax-json-strings": ^7.8.3 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + "@babel/plugin-syntax-top-level-await": ^7.14.5 + "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 + "@babel/plugin-transform-arrow-functions": ^7.24.7 + "@babel/plugin-transform-async-generator-functions": ^7.25.0 + "@babel/plugin-transform-async-to-generator": ^7.24.7 + "@babel/plugin-transform-block-scoped-functions": ^7.24.7 + "@babel/plugin-transform-block-scoping": ^7.25.0 + "@babel/plugin-transform-class-properties": ^7.24.7 + "@babel/plugin-transform-class-static-block": ^7.24.7 + "@babel/plugin-transform-classes": ^7.25.0 + "@babel/plugin-transform-computed-properties": ^7.24.7 + "@babel/plugin-transform-destructuring": ^7.24.8 + "@babel/plugin-transform-dotall-regex": ^7.24.7 + "@babel/plugin-transform-duplicate-keys": ^7.24.7 + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": ^7.25.0 + "@babel/plugin-transform-dynamic-import": ^7.24.7 + "@babel/plugin-transform-exponentiation-operator": ^7.24.7 + "@babel/plugin-transform-export-namespace-from": ^7.24.7 + "@babel/plugin-transform-for-of": ^7.24.7 + "@babel/plugin-transform-function-name": ^7.25.0 + "@babel/plugin-transform-json-strings": ^7.24.7 + "@babel/plugin-transform-literals": ^7.24.7 + "@babel/plugin-transform-logical-assignment-operators": ^7.24.7 + "@babel/plugin-transform-member-expression-literals": ^7.24.7 + "@babel/plugin-transform-modules-amd": ^7.24.7 + "@babel/plugin-transform-modules-commonjs": ^7.24.8 + "@babel/plugin-transform-modules-systemjs": ^7.25.0 + "@babel/plugin-transform-modules-umd": ^7.24.7 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.24.7 + "@babel/plugin-transform-new-target": ^7.24.7 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.24.7 + "@babel/plugin-transform-numeric-separator": ^7.24.7 + "@babel/plugin-transform-object-rest-spread": ^7.24.7 + "@babel/plugin-transform-object-super": ^7.24.7 + "@babel/plugin-transform-optional-catch-binding": ^7.24.7 + "@babel/plugin-transform-optional-chaining": ^7.24.8 + "@babel/plugin-transform-parameters": ^7.24.7 + "@babel/plugin-transform-private-methods": ^7.24.7 + "@babel/plugin-transform-private-property-in-object": ^7.24.7 + "@babel/plugin-transform-property-literals": ^7.24.7 + "@babel/plugin-transform-regenerator": ^7.24.7 + "@babel/plugin-transform-reserved-words": ^7.24.7 + "@babel/plugin-transform-shorthand-properties": ^7.24.7 + "@babel/plugin-transform-spread": ^7.24.7 + "@babel/plugin-transform-sticky-regex": ^7.24.7 + "@babel/plugin-transform-template-literals": ^7.24.7 + "@babel/plugin-transform-typeof-symbol": ^7.24.8 + "@babel/plugin-transform-unicode-escapes": ^7.24.7 + "@babel/plugin-transform-unicode-property-regex": ^7.24.7 + "@babel/plugin-transform-unicode-regex": ^7.24.7 + "@babel/plugin-transform-unicode-sets-regex": ^7.24.7 + "@babel/preset-modules": 0.1.6-no-external-plugins + babel-plugin-polyfill-corejs2: ^0.4.10 + babel-plugin-polyfill-corejs3: ^0.10.4 + babel-plugin-polyfill-regenerator: ^0.6.1 + core-js-compat: ^3.37.1 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10161771c6dd408e440ea634338eeb0bc9f3619c45513b04ccafb9d6a5ad12a6e01fc16506cbb3ea9e8be2123690be65524f6112662cf38c3fbdcda988f47585 + languageName: node + linkType: hard + "@babel/preset-flow@npm:^7.13.13, @babel/preset-flow@npm:^7.17.12": version: 7.18.6 resolution: "@babel/preset-flow@npm:7.18.6" @@ -1922,6 +2972,19 @@ __metadata: languageName: node linkType: hard +"@babel/preset-modules@npm:0.1.6-no-external-plugins": + version: 0.1.6-no-external-plugins + resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins" + dependencies: + "@babel/helper-plugin-utils": ^7.0.0 + "@babel/types": ^7.4.4 + esutils: ^2.0.2 + peerDependencies: + "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 + checksum: 4855e799bc50f2449fb5210f78ea9e8fd46cf4f242243f1e2ed838e2bd702e25e73e822e7f8447722a5f4baa5e67a8f7a0e403f3e7ce04540ff743a9c411c375 + languageName: node + linkType: hard + "@babel/preset-modules@npm:^0.1.5": version: 0.1.5 resolution: "@babel/preset-modules@npm:0.1.5" @@ -2050,6 +3113,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.24.7, @babel/template@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/template@npm:7.25.0" + dependencies: + "@babel/code-frame": ^7.24.7 + "@babel/parser": ^7.25.0 + "@babel/types": ^7.25.0 + checksum: 3f2db568718756d0daf2a16927b78f00c425046b654cd30b450006f2e84bdccaf0cbe6dc04994aa1f5f6a4398da2f11f3640a4d3ee31722e43539c4c919c817b + languageName: node + linkType: hard + "@babel/traverse@npm:^7.20.0, @babel/traverse@npm:^7.20.10, @babel/traverse@npm:^7.20.12, @babel/traverse@npm:^7.20.13, @babel/traverse@npm:^7.20.5, @babel/traverse@npm:^7.20.7": version: 7.20.13 resolution: "@babel/traverse@npm:7.20.13" @@ -2086,6 +3160,21 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.24.8, @babel/traverse@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/traverse@npm:7.25.0" + dependencies: + "@babel/code-frame": ^7.24.7 + "@babel/generator": ^7.25.0 + "@babel/parser": ^7.25.0 + "@babel/template": ^7.25.0 + "@babel/types": ^7.25.0 + debug: ^4.3.1 + globals: ^11.1.0 + checksum: 042180f3187ba9bbf14756fdabbe4cae5c72f3c11e03fd993da9c9c0352832aadffbd257468298d7ce40de7052624de1b379c0fa965cea6856880335a0c771ed + languageName: node + linkType: hard + "@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.19.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.5, @babel/types@npm:^7.20.7, @babel/types@npm:^7.3.0, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": version: 7.20.7 resolution: "@babel/types@npm:7.20.7" @@ -2108,6 +3197,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.24.7, @babel/types@npm:^7.24.8, @babel/types@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/types@npm:7.25.0" + dependencies: + "@babel/helper-string-parser": ^7.24.8 + "@babel/helper-validator-identifier": ^7.24.7 + to-fast-properties: ^2.0.0 + checksum: 58645192c73ea1adf72b3311c46e6f656bb3f52adb285c3ae0566e62a3d9ea1998449e88c6590501cb7aa9fe3411bb66288c961b9ebb5c4e9c433bad8619efaa + languageName: node + linkType: hard + "@badrap/valita@npm:^0.3.0": version: 0.3.8 resolution: "@badrap/valita@npm:0.3.8" @@ -3338,10 +4438,23 @@ __metadata: languageName: unknown linkType: soft -"@react-native-replicache/react-native-op-sqlite@1.1.0, @react-native-replicache/react-native-op-sqlite@workspace:packages/react-native-op-sqlite": +"@react-native-replicache/react-native-op-sqlite@npm:1.1.0": + version: 1.1.0 + resolution: "@react-native-replicache/react-native-op-sqlite@npm:1.1.0" + dependencies: + "@react-native-replicache/replicache-generic-sqlite": 1.1.0 + peerDependencies: + "@op-engineering/op-sqlite": ^6.0.1 + checksum: 3c5ec224cbad399be1bd28fc2152feff68bf40efef0eeb2979a0d084b773e43bbc89b16929812484a51fb8c6dd57dd951bdf559e7ed740397b7c93e40e0bde0c + languageName: node + linkType: hard + +"@react-native-replicache/react-native-op-sqlite@workspace:packages/react-native-op-sqlite": version: 0.0.0-use.local resolution: "@react-native-replicache/react-native-op-sqlite@workspace:packages/react-native-op-sqlite" dependencies: + "@babel/preset-env": ^7.20.0 + "@babel/runtime": ^7.20.0 "@braden1996/tsconfig": ^0.0.1 "@react-native-replicache/replicache-generic-sqlite": 1.1.0 "@types/react": ~18.2.79 @@ -4735,6 +5848,31 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-corejs2@npm:^0.4.10": + version: 0.4.11 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.11" + dependencies: + "@babel/compat-data": ^7.22.6 + "@babel/helper-define-polyfill-provider": ^0.6.2 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: f098353ce7c7dde1a1d2710858e01b471e85689110c9e37813e009072347eb8c55d5f84d20d3bf1cab31755f20078ba90f8855fdc4686a9daa826a95ff280bd7 + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs3@npm:^0.10.4": + version: 0.10.4 + resolution: "babel-plugin-polyfill-corejs3@npm:0.10.4" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.6.1 + core-js-compat: ^3.36.1 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: b96a54495f7cc8b3797251c8c15f5ed015edddc3110fc122f6b32c94bec33af1e8bc56fa99091808f500bde0cccaaa266889cdc5935d9e6e9cf09898214f02dd + languageName: node + linkType: hard + "babel-plugin-polyfill-corejs3@npm:^0.6.0": version: 0.6.0 resolution: "babel-plugin-polyfill-corejs3@npm:0.6.0" @@ -4758,6 +5896,17 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-regenerator@npm:^0.6.1": + version: 0.6.2 + resolution: "babel-plugin-polyfill-regenerator@npm:0.6.2" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.6.2 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 150233571072b6b3dfe946242da39cba8587b7f908d1c006f7545fc88b0e3c3018d445739beb61e7a75835f0c2751dbe884a94ff9b245ec42369d9267e0e1b3f + languageName: node + linkType: hard + "babel-plugin-react-native-web@npm:~0.19.10": version: 0.19.12 resolution: "babel-plugin-react-native-web@npm:0.19.12" @@ -4966,6 +6115,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.23.0, browserslist@npm:^4.23.1": + version: 4.23.2 + resolution: "browserslist@npm:4.23.2" + dependencies: + caniuse-lite: ^1.0.30001640 + electron-to-chromium: ^1.4.820 + node-releases: ^2.0.14 + update-browserslist-db: ^1.1.0 + bin: + browserslist: cli.js + checksum: 8212af37f6ca6355da191cf2d4ad49bd0b82854888b9a7e103638fada70d38cbe36d28feeeaa98344cb15d9128f9f74bcc8ce1bfc9011b5fd14381c1c6fb542c + languageName: node + linkType: hard + "bser@npm:2.1.1": version: 2.1.1 resolution: "bser@npm:2.1.1" @@ -5190,6 +6353,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001640": + version: 1.0.30001643 + resolution: "caniuse-lite@npm:1.0.30001643" + checksum: e39991c13a0fd8f5c2aa99c9128188e4c4e9d6a203c3da6270c36285460ef152c5e9410ee4db560aa723904668946afe50541dce9636ab5e61434ba71dc22955 + languageName: node + linkType: hard + "chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" @@ -5631,6 +6801,15 @@ __metadata: languageName: node linkType: hard +"core-js-compat@npm:^3.36.1, core-js-compat@npm:^3.37.1": + version: 3.37.1 + resolution: "core-js-compat@npm:3.37.1" + dependencies: + browserslist: ^4.23.0 + checksum: 5e7430329358bced08c30950512d2081aea0a5652b4c5892cbb3c4a6db05b0d3893a191a955162a07fdb5f4fe74e61b6429fdb503f54e062336d76e43c9555d9 + languageName: node + linkType: hard + "core-util-is@npm:~1.0.0": version: 1.0.3 resolution: "core-util-is@npm:1.0.3" @@ -6133,6 +7312,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.4.820": + version: 1.5.2 + resolution: "electron-to-chromium@npm:1.5.2" + checksum: 530a9a4dc4aa0220abf564be49b7090470eac6e9a03acb667deadaf139c7f65466b4540ff5699677f9370f2a05619e89fc089f81603d36d33dc5acc75f12171e + languageName: node + linkType: hard + "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -12576,6 +13762,15 @@ __metadata: languageName: node linkType: hard +"regenerator-transform@npm:^0.15.2": + version: 0.15.2 + resolution: "regenerator-transform@npm:0.15.2" + dependencies: + "@babel/runtime": ^7.8.4 + checksum: 20b6f9377d65954980fe044cfdd160de98df415b4bff38fbade67b3337efaf078308c4fed943067cd759827cc8cfeca9cb28ccda1f08333b85d6a2acbd022c27 + languageName: node + linkType: hard + "regex-not@npm:^1.0.0, regex-not@npm:^1.0.2": version: 1.0.2 resolution: "regex-not@npm:1.0.2" @@ -12630,6 +13825,20 @@ __metadata: languageName: node linkType: hard +"regexpu-core@npm:^5.3.1": + version: 5.3.2 + resolution: "regexpu-core@npm:5.3.2" + dependencies: + "@babel/regjsgen": ^0.8.0 + regenerate: ^1.4.2 + regenerate-unicode-properties: ^10.1.0 + regjsparser: ^0.9.1 + unicode-match-property-ecmascript: ^2.0.0 + unicode-match-property-value-ecmascript: ^2.1.0 + checksum: 95bb97088419f5396e07769b7de96f995f58137ad75fac5811fb5fe53737766dfff35d66a0ee66babb1eb55386ef981feaef392f9df6d671f3c124812ba24da2 + languageName: node + linkType: hard + "regjsparser@npm:^0.9.1": version: 0.9.1 resolution: "regjsparser@npm:0.9.1" @@ -14742,6 +15951,20 @@ __metadata: languageName: node linkType: hard +"update-browserslist-db@npm:^1.1.0": + version: 1.1.0 + resolution: "update-browserslist-db@npm:1.1.0" + dependencies: + escalade: ^3.1.2 + picocolors: ^1.0.1 + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 7b74694d96f0c360f01b702e72353dc5a49df4fe6663d3ee4e5c628f061576cddf56af35a3a886238c01dd3d8f231b7a86a8ceaa31e7a9220ae31c1c1238e562 + languageName: node + linkType: hard + "uri-js@npm:^4.2.2": version: 4.4.1 resolution: "uri-js@npm:4.4.1" From e8803e158281add144655e96c64b045155384946 Mon Sep 17 00:00:00 2001 From: Braden Marshall Date: Sun, 28 Jul 2024 13:26:48 +0100 Subject: [PATCH 04/11] Updates --- .github/workflows/ci.yml | 22 +++++++++ README.md | 8 ++-- package.json | 3 +- packages/deep-freeze/package.json | 2 +- packages/deep-freeze/src/deep-freeze.ts | 2 +- packages/deep-freeze/tsconfig.json | 1 + packages/example/client-shared/package.json | 4 +- .../example/mobile-react-native/package.json | 4 +- .../mobile-react-native/src/use-replicache.ts | 6 +-- packages/example/server/package.json | 2 +- packages/example/shared/package.json | 2 +- packages/example/shared/tsconfig.json | 1 + packages/example/web-react/package.json | 2 +- packages/react-native-expo-sqlite/README.md | 6 +-- .../react-native-expo-sqlite/package.json | 4 +- .../react-native-expo-sqlite/src/index.ts | 8 ++-- packages/react-native-op-sqlite/README.md | 6 +-- packages/react-native-op-sqlite/package.json | 6 +-- packages/react-native-op-sqlite/src/index.ts | 9 ++-- packages/replicache-generic-sqlite/README.md | 4 +- .../replicache-generic-sqlite/package.json | 4 +- .../replicache-generic-sqlite/src/index.ts | 2 +- ...licache-generic-sqlite-database-manager.ts | 2 +- .../replicache-generic-sqlite-read-impl.ts | 2 +- .../src/replicache-generic-sqlite-store.ts | 10 ++-- .../replicache-generic-sqlite-write-impl.ts | 2 +- syncpack-snapshot.txt | 4 ++ yarn.lock | 48 ++++++------------- 28 files changed, 91 insertions(+), 85 deletions(-) create mode 100644 syncpack-snapshot.txt diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0bb3953..47c78d9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,3 +42,25 @@ jobs: - name: Lint run: yarn run lint + + check_workspace_dependency_drift: + name: Check Workspace Dependency Drift + runs-on: ubuntu-latest + timeout-minutes: 30 + steps: + - name: Check out code + uses: actions/checkout@v2 + with: + fetch-depth: 2 + + - name: Setup Node.js environment + uses: actions/setup-node@v3 + with: + node-version: 16 + cache: "yarn" + + - name: Generate new syncpack snapshot + run: yarn run update-syncpack-snapshot + shell: bash + - name: Check for unexpected workspace dependency drift + run: git diff --exit-code -- syncpack-snapshot.txt diff --git a/README.md b/README.md index 5d20adc..1ed8ac8 100644 --- a/README.md +++ b/README.md @@ -7,13 +7,13 @@ ## Replicache version compatibility - 1.0.0 : replicache <= 14.2.2 -- 1.1.0 : replicache >= 15 +- 1.3.0 : replicache >= 15 ## Why is this needed? Replicache enables us to build applications that are performant, offline-capable and collaborative. By default, it uses [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) for client-side persistance. Unfortunately, this technology is not available in React Native and is only supported in web-browsers. -Thankfully, Replicache allows us to provide our own transactional data-store via [`kvStore`](https://doc.replicache.dev/api/interfaces/ReplicacheOptions#experimentalcreatekvstore). The goal of this project is to provide some implementations of such a store, along with some guidance in getting up and running with Replicache in React Native. +Thankfully, Replicache allows us to provide our own transactional data-store via [`kvStore`](https://doc.replicache.dev/api/interfaces/ReplicacheOptions#kvstoree). The goal of this project is to provide some implementations of such a store, along with some guidance in getting up and running with Replicache in React Native. ## What are the strategies? @@ -45,8 +45,8 @@ You most likely want to use web-sockets for this. This is relatively trivial wit - See [here for an example](https://github.com/Braden1996/react-native-replicache/blob/master/packages/example/mobile-react-native/src/crypto-polyfill.ts). 3. Pass in your chosen SQLite binding's React Native Replicache binding into Replicache's `kvStore` option. - This will be one of the following, depending on the binding you chose: - - `createReplicacheOPSQLiteExperimentalCreateKVStore` - - `createReplicacheExpoSQLiteExperimentalCreateKVStore` + - `createReplicacheOPSQLiteKVStore` + - `createReplicacheExpoSQLiteKVStore` - See [here for an example](https://github.com/Braden1996/react-native-replicache/blob/master/packages/example/mobile-react-native/src/use-replicache.ts). ## How can I experiment with this locally? diff --git a/package.json b/package.json index e131e73..71a2459 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,8 @@ "graph": "turbo run build --graph=graph.pdf", "root:eslint": "cd $INIT_CWD && eslint", "root:rimraf": "cd $INIT_CWD && rimraf", - "root:tsc": "cd $INIT_CWD && tsc" + "root:tsc": "cd $INIT_CWD && tsc", + "update-syncpack-snapshot": "syncpack list-mismatch --filter '^(?!@react-native-replicache/)(?!react-native-replicache$).*$' | sed '/^-/d' > syncpack-snapshot.txt" }, "devDependencies": { "eslint": "8.56.0", diff --git a/packages/deep-freeze/package.json b/packages/deep-freeze/package.json index 67bf95a..f4eebcd 100644 --- a/packages/deep-freeze/package.json +++ b/packages/deep-freeze/package.json @@ -1,6 +1,6 @@ { "name": "@react-native-replicache/deep-freeze", - "version": "1.1.0", + "version": "1.3.0", "main": "./dist/commonjs/index.js", "module": "./dist/module/index.js", "react-native": "./src/index.ts", diff --git a/packages/deep-freeze/src/deep-freeze.ts b/packages/deep-freeze/src/deep-freeze.ts index 887e7c6..b864461 100644 --- a/packages/deep-freeze/src/deep-freeze.ts +++ b/packages/deep-freeze/src/deep-freeze.ts @@ -87,7 +87,7 @@ function deepFreezeArray( function deepFreezeObject(v: ReadonlyJSONObject, seen: object[]): void { for (const k in v) { if (hasOwn(v, k)) { - deepFreezeInternal(v[k], seen); + deepFreezeInternal(v[k]!, seen); } } } diff --git a/packages/deep-freeze/tsconfig.json b/packages/deep-freeze/tsconfig.json index 3967481..ec8e0d2 100644 --- a/packages/deep-freeze/tsconfig.json +++ b/packages/deep-freeze/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "@braden1996/tsconfig/base.json", "compilerOptions": { + "target": "ES2017", "types": ["./types/globals"] }, "include": ["src"] diff --git a/packages/example/client-shared/package.json b/packages/example/client-shared/package.json index 234e29b..c89adb2 100644 --- a/packages/example/client-shared/package.json +++ b/packages/example/client-shared/package.json @@ -18,8 +18,8 @@ }, "peerDependencies": { "react": ">=18.2.0", - "replicache": ">=12.2.0", - "replicache-react": ">=2.10.0" + "replicache": "15.0.0", + "replicache-react": "^2.10.0" }, "eslintConfig": { "extends": "universe" diff --git a/packages/example/mobile-react-native/package.json b/packages/example/mobile-react-native/package.json index 3d62b65..03161d3 100644 --- a/packages/example/mobile-react-native/package.json +++ b/packages/example/mobile-react-native/package.json @@ -21,8 +21,8 @@ "@op-engineering/op-sqlite": "^6.0.1", "@react-native-replicache/example-client-shared": "0.0.0", "@react-native-replicache/example-shared": "0.0.0", - "@react-native-replicache/react-native-expo-sqlite": "1.1.0", - "@react-native-replicache/react-native-op-sqlite": "1.1.0", + "@react-native-replicache/react-native-expo-sqlite": "1.3.0", + "@react-native-replicache/react-native-op-sqlite": "1.3.0", "expo": "~51.0.8", "expo-build-properties": "~0.12.1", "expo-crypto": "~13.0.2", diff --git a/packages/example/mobile-react-native/src/use-replicache.ts b/packages/example/mobile-react-native/src/use-replicache.ts index 07dda14..7c3ea42 100644 --- a/packages/example/mobile-react-native/src/use-replicache.ts +++ b/packages/example/mobile-react-native/src/use-replicache.ts @@ -1,6 +1,6 @@ import { mutators } from "@react-native-replicache/example-shared"; -import { createReplicacheExpoSQLiteExperimentalCreateKVStore } from "@react-native-replicache/react-native-expo-sqlite"; -// import { createReplicacheReactNativeOpSQLiteExperimentalCreateKVStore } from "@react-native-replicache/react-native-op-sqlite"; +import { createReplicacheExpoSQLiteKVStore } from "@react-native-replicache/react-native-expo-sqlite"; +// import { createReplicacheReactNativeOPSQLiteKVStore } from "@react-native-replicache/react-native-op-sqlite"; import React from "react"; import EventSource from "react-native-sse"; import { Replicache, TEST_LICENSE_KEY } from "replicache"; @@ -18,7 +18,7 @@ export function useReplicache(listID: string) { licenseKey, pushURL: `http://127.0.0.1:8080/api/replicache/push?spaceID=${listID}`, pullURL: `http://127.0.0.1:8080/api/replicache/pull?spaceID=${listID}`, - kvStore: createReplicacheExpoSQLiteExperimentalCreateKVStore, + kvStore: createReplicacheExpoSQLiteKVStore, name: listID, mutators, }), diff --git a/packages/example/server/package.json b/packages/example/server/package.json index e608fe5..c74d5e0 100644 --- a/packages/example/server/package.json +++ b/packages/example/server/package.json @@ -37,7 +37,7 @@ "dotenv": "^16.0.1", "express": "^4.18.1", "pg-mem": "^2.6.4", - "replicache": "12.2.0", + "replicache": "15.0.0", "replicache-express": "^0.2.1" }, "devDependencies": { diff --git a/packages/example/shared/package.json b/packages/example/shared/package.json index 78b8cd6..1a8f50b 100644 --- a/packages/example/shared/package.json +++ b/packages/example/shared/package.json @@ -21,7 +21,7 @@ "ts-node": "^10.9.1" }, "peerDependencies": { - "replicache": ">=12.2.0" + "replicache": ">=15.0.0" }, "eslintConfig": { "extends": "universe" diff --git a/packages/example/shared/tsconfig.json b/packages/example/shared/tsconfig.json index 10165db..31806c1 100644 --- a/packages/example/shared/tsconfig.json +++ b/packages/example/shared/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "@braden1996/tsconfig/base.json", "compilerOptions": { + "target": "ES2017", "rootDir": "./src", "types": ["./types/replicache"] }, diff --git a/packages/example/web-react/package.json b/packages/example/web-react/package.json index 8262581..2a3d00e 100644 --- a/packages/example/web-react/package.json +++ b/packages/example/web-react/package.json @@ -21,7 +21,7 @@ "qs": "^6.11.0", "react": "18.2.0", "react-dom": "18.2.0", - "replicache": "12.2.0", + "replicache": "15.0.0", "replicache-react": "^2.10.0", "todomvc-app-css": "^2.4.2" }, diff --git a/packages/react-native-expo-sqlite/README.md b/packages/react-native-expo-sqlite/README.md index f6759d6..7a2a2d6 100644 --- a/packages/react-native-expo-sqlite/README.md +++ b/packages/react-native-expo-sqlite/README.md @@ -7,13 +7,13 @@ ## Replicache version compatibility - 1.0.0 : replicache <= 14.2.2 -- 1.1.0 : replicache >= 15 +- 1.3.0 : replicache >= 15 ## Why is this needed? Replicache enables us to build applications that are performant, offline-capable and collaborative. By default, it uses [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) for client-side persistance. Unfortunately, this technology is not available in React Native and is only supported in web-browsers. -Thankfully, Replicache allows us to provide our own transactional data-store via [`kvStore`](https://doc.replicache.dev/api/interfaces/ReplicacheOptions#experimentalcreatekvstore). The goal of this project is to provide some implementations of such a store, along with some guidance in getting up and running with Replicache in React Native. +Thankfully, Replicache allows us to provide our own transactional data-store via [`kvStore`](https://doc.replicache.dev/api/interfaces/ReplicacheOptions#kvstoree). The goal of this project is to provide some implementations of such a store, along with some guidance in getting up and running with Replicache in React Native. ## What are the strategies? @@ -33,5 +33,5 @@ You most likely want to use web-sockets for this. This is relatively trivial wit - `yarn add expo-crypto expo-sqlite @react-native-replicache/react-native-expo-sqlite` 2. Ensure that you've polyfilled `crypto.getRandomValues` on the global namespace. - See [here for an example](https://github.com/Braden1996/react-native-replicache/blob/master/packages/example/mobile-react-native/src/crypto-polyfill.ts). -3. Pass in `createReplicacheExpoSQLiteExperimentalCreateKVStore` to Replicache's `kvStore` option. +3. Pass in `createReplicacheExpoSQLiteKVStore` to Replicache's `kvStore` option. - See [here for an example](https://github.com/Braden1996/react-native-replicache/blob/master/packages/example/mobile-react-native/src/use-replicache.ts). diff --git a/packages/react-native-expo-sqlite/package.json b/packages/react-native-expo-sqlite/package.json index b3637b2..4683876 100644 --- a/packages/react-native-expo-sqlite/package.json +++ b/packages/react-native-expo-sqlite/package.json @@ -1,6 +1,6 @@ { "name": "@react-native-replicache/react-native-expo-sqlite", - "version": "1.1.0", + "version": "1.3.0", "main": "./dist/commonjs/index.js", "module": "./dist/module/index.js", "react-native": "./src/index.ts", @@ -34,7 +34,7 @@ "clean": "yarn run root:rimraf dist .turbo" }, "dependencies": { - "@react-native-replicache/replicache-generic-sqlite": "1.1.0" + "@react-native-replicache/replicache-generic-sqlite": "1.3.0" }, "devDependencies": { "@braden1996/tsconfig": "^0.0.1", diff --git a/packages/react-native-expo-sqlite/src/index.ts b/packages/react-native-expo-sqlite/src/index.ts index 231238e..32c2485 100644 --- a/packages/react-native-expo-sqlite/src/index.ts +++ b/packages/react-native-expo-sqlite/src/index.ts @@ -1,7 +1,7 @@ import { GenericDatabaseManager, GenericSQLDatabase, - getCreateReplicacheSQLiteExperimentalCreateKVStore, + getCreateReplicacheSQLiteKVStore, ReplicacheGenericSQLiteDatabaseManager, } from "@react-native-replicache/replicache-generic-sqlite"; import * as SQLite from "expo-sqlite"; @@ -29,9 +29,7 @@ const expoDbManagerInstance = new ReplicacheGenericSQLiteDatabaseManager( genericDatabase, ); -export const createReplicacheExpoSQLiteExperimentalCreateKVStore = { - create: getCreateReplicacheSQLiteExperimentalCreateKVStore( - expoDbManagerInstance - ), +export const createReplicacheExpoSQLiteKVStore = { + create: getCreateReplicacheSQLiteKVStore(expoDbManagerInstance), drop: expoDbManagerInstance.destroy, }; diff --git a/packages/react-native-op-sqlite/README.md b/packages/react-native-op-sqlite/README.md index 1691de0..63a60d2 100644 --- a/packages/react-native-op-sqlite/README.md +++ b/packages/react-native-op-sqlite/README.md @@ -7,13 +7,13 @@ ## Replicache version compatibility - 1.0.0 : replicache <= 14.2.2 -- 1.1.0 : replicache >= 15 +- 1.3.0 : replicache >= 15 ## Why is this needed? Replicache enables us to build applications that are performant, offline-capable and collaborative. By default, it uses [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) for client-side persistance. Unfortunately, this technology is not available in React Native and is only supported in web-browsers. -Thankfully, Replicache allows us to provide our own transactional data-store via [`kvStore`](https://doc.replicache.dev/api/interfaces/ReplicacheOptions#experimentalcreatekvstore). The goal of this project is to provide some implementations of such a store, along with some guidance in getting up and running with Replicache in React Native. +Thankfully, Replicache allows us to provide our own transactional data-store via [`kvStore`](https://doc.replicache.dev/api/interfaces/ReplicacheOptions#kvstoree). The goal of this project is to provide some implementations of such a store, along with some guidance in getting up and running with Replicache in React Native. ## What are the strategies? @@ -33,5 +33,5 @@ You most likely want to use web-sockets for this. This is relatively trivial wit - `yarn add expo-crypto @op-engineering/op-sqlite @react-native-replicache/react-native-op-sqlite` 2. Ensure that you've polyfilled `crypto.getRandomValues` on the global namespace. - See [here for an example](https://github.com/Braden1996/react-native-replicache/blob/master/packages/example/mobile-react-native/src/crypto-polyfill.ts). -3. Pass in `createReplicacheOPSQLiteExperimentalCreateKVStore` to Replicache's `kvStore` option. +3. Pass in `createReplicacheOPSQLiteKVStore` to Replicache's `kvStore` option. - See [here for an example](https://github.com/Braden1996/react-native-replicache/blob/master/packages/example/mobile-react-native/src/use-replicache.ts). diff --git a/packages/react-native-op-sqlite/package.json b/packages/react-native-op-sqlite/package.json index 64b04ae..9967bc5 100644 --- a/packages/react-native-op-sqlite/package.json +++ b/packages/react-native-op-sqlite/package.json @@ -1,6 +1,6 @@ { "name": "@react-native-replicache/react-native-op-sqlite", - "version": "1.2.0", + "version": "1.3.0", "main": "./dist/commonjs/index.js", "module": "./dist/module/index.js", "react-native": "./src/index.ts", @@ -34,7 +34,7 @@ "clean": "yarn run root:rimraf dist .turbo" }, "dependencies": { - "@react-native-replicache/replicache-generic-sqlite": "1.1.0" + "@react-native-replicache/replicache-generic-sqlite": "1.3.0" }, "devDependencies": { "@babel/preset-env": "^7.20.0", @@ -63,4 +63,4 @@ "eslintConfig": { "extends": "universe/native" } -} \ No newline at end of file +} diff --git a/packages/react-native-op-sqlite/src/index.ts b/packages/react-native-op-sqlite/src/index.ts index 56a17f6..abf23b9 100644 --- a/packages/react-native-op-sqlite/src/index.ts +++ b/packages/react-native-op-sqlite/src/index.ts @@ -1,7 +1,7 @@ import * as OPSQLite from "@op-engineering/op-sqlite"; import { GenericDatabaseManager, - getCreateReplicacheSQLiteExperimentalCreateKVStore, + getCreateReplicacheSQLiteKVStore, ReplicacheGenericSQLiteDatabaseManager, } from "@react-native-replicache/replicache-generic-sqlite"; @@ -20,11 +20,10 @@ const genericDatabase: GenericDatabaseManager = { }; const opSqlManagerInstance = new ReplicacheGenericSQLiteDatabaseManager( - genericDatabase + genericDatabase, ); -export const createReplicacheReactNativeOPSQLiteExperimentalCreateKVStore = { - create: - getCreateReplicacheSQLiteExperimentalCreateKVStore(opSqlManagerInstance), +export const createReplicacheReactNativeOPSQLiteKVStore = { + create: getCreateReplicacheSQLiteKVStore(opSqlManagerInstance), drop: opSqlManagerInstance.destroy, }; diff --git a/packages/replicache-generic-sqlite/README.md b/packages/replicache-generic-sqlite/README.md index f9a7c4a..8c2814e 100644 --- a/packages/replicache-generic-sqlite/README.md +++ b/packages/replicache-generic-sqlite/README.md @@ -7,8 +7,8 @@ ## Replicache version compatibility - 1.0.0 : replicache <= 14.2.2 -- 1.1.0 : replicache >= 15 +- 1.3.0 : replicache >= 15 ## Why is this needed? -This package provides a generic SQLite implementation of [`kvStore`](https://doc.replicache.dev/api/interfaces/ReplicacheOptions#experimentalcreatekvstore) that is agnostic of the underlying SQLite binding. This abstraction enables us to easily support multiple SQLite bindings. It isn't coupled to React Native either, so could work on other platforms - but that remains to be explored. +This package provides a generic SQLite implementation of [`kvStore`](https://doc.replicache.dev/api/interfaces/ReplicacheOptions#kvstoree) that is agnostic of the underlying SQLite binding. This abstraction enables us to easily support multiple SQLite bindings. It isn't coupled to React Native either, so could work on other platforms - but that remains to be explored. diff --git a/packages/replicache-generic-sqlite/package.json b/packages/replicache-generic-sqlite/package.json index 671daae..2dcfcdc 100644 --- a/packages/replicache-generic-sqlite/package.json +++ b/packages/replicache-generic-sqlite/package.json @@ -1,6 +1,6 @@ { "name": "@react-native-replicache/replicache-generic-sqlite", - "version": "1.1.0", + "version": "1.3.0", "main": "./dist/commonjs/index.js", "module": "./dist/module/index.js", "react-native": "./src/index.ts", @@ -36,7 +36,7 @@ "clean": "yarn run root:rimraf dist .turbo" }, "dependencies": { - "@react-native-replicache/deep-freeze": "1.1.0" + "@react-native-replicache/deep-freeze": "1.3.0" }, "devDependencies": { "@braden1996/tsconfig": "^0.0.1", diff --git a/packages/replicache-generic-sqlite/src/index.ts b/packages/replicache-generic-sqlite/src/index.ts index 50063f5..69d2217 100644 --- a/packages/replicache-generic-sqlite/src/index.ts +++ b/packages/replicache-generic-sqlite/src/index.ts @@ -1,3 +1,3 @@ export { ReplicacheGenericSQLiteDatabaseManager } from "./replicache-generic-sqlite-database-manager"; -export { getCreateReplicacheSQLiteExperimentalCreateKVStore } from "./replicache-generic-sqlite-store"; +export { getCreateReplicacheSQLiteKVStore } from "./replicache-generic-sqlite-store"; export * from "./generic-sqlite-adapter"; diff --git a/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-database-manager.ts b/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-database-manager.ts index 22e4b09..e2ab29b 100644 --- a/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-database-manager.ts +++ b/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-database-manager.ts @@ -58,7 +58,7 @@ export class ReplicacheGenericSQLiteDatabaseManager { await tx.start(false); await tx.execute( "CREATE TABLE IF NOT EXISTS entry (key TEXT PRIMARY KEY, value TEXT)", - [] + [], ); await tx.commit(); } diff --git a/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-read-impl.ts b/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-read-impl.ts index b908b0f..803ea12 100644 --- a/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-read-impl.ts +++ b/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-read-impl.ts @@ -39,7 +39,7 @@ export class ReplicacheGenericSQLiteReadImpl private async _getSql(key: string) { const rows = await this._assertTx().execute( "SELECT value FROM entry WHERE key = ?", - [key] + [key], ); if (rows.length === 0) return undefined; diff --git a/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-store.ts b/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-store.ts index 418e851..2256f46 100644 --- a/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-store.ts +++ b/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-store.ts @@ -9,7 +9,7 @@ export class ReplicacheGenericStore implements KVStore { constructor( private readonly name: string, - private readonly _dbm: ReplicacheGenericSQLiteDatabaseManager + private readonly _dbm: ReplicacheGenericSQLiteDatabaseManager, ) {} async read() { @@ -20,7 +20,7 @@ export class ReplicacheGenericStore implements KVStore { } async withRead( - fn: (read: Awaited>) => R | Promise + fn: (read: Awaited>) => R | Promise, ): Promise { const read = await this.read(); try { @@ -38,7 +38,7 @@ export class ReplicacheGenericStore implements KVStore { } async withWrite( - fn: (write: Awaited>) => R | Promise + fn: (write: Awaited>) => R | Promise, ): Promise { const write = await this.write(); try { @@ -62,8 +62,8 @@ export class ReplicacheGenericStore implements KVStore { } } -export function getCreateReplicacheSQLiteExperimentalCreateKVStore( - db: ReplicacheGenericSQLiteDatabaseManager +export function getCreateReplicacheSQLiteKVStore( + db: ReplicacheGenericSQLiteDatabaseManager, ) { return (name: string) => new ReplicacheGenericStore(name, db); } diff --git a/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-write-impl.ts b/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-write-impl.ts index fff04a8..8e59931 100644 --- a/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-write-impl.ts +++ b/packages/replicache-generic-sqlite/src/replicache-generic-sqlite-write-impl.ts @@ -10,7 +10,7 @@ export class ReplicacheGenericSQLiteWriteImpl const jsonValueString = JSON.stringify(value); await this._assertTx().execute( "INSERT OR REPLACE INTO entry (key, value) VALUES (?, ?)", - [key, jsonValueString] + [key, jsonValueString], ); } diff --git a/syncpack-snapshot.txt b/syncpack-snapshot.txt new file mode 100644 index 0000000..1be4132 --- /dev/null +++ b/syncpack-snapshot.txt @@ -0,0 +1,4 @@ +✘ expo-sqlite >=14.0.0, ~14.0.3 +✘ react 18.2.0, >=18.2.0 +✘ react-native 0.74.1, >=0.74.0 +✘ replicache 15.0.0, >=15.0.0 diff --git a/yarn.lock b/yarn.lock index 49571a5..7ffdf1b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4313,7 +4313,7 @@ __metadata: languageName: node linkType: hard -"@react-native-replicache/deep-freeze@1.1.0, @react-native-replicache/deep-freeze@workspace:packages/deep-freeze": +"@react-native-replicache/deep-freeze@1.3.0, @react-native-replicache/deep-freeze@workspace:packages/deep-freeze": version: 0.0.0-use.local resolution: "@react-native-replicache/deep-freeze@workspace:packages/deep-freeze" dependencies: @@ -4331,8 +4331,8 @@ __metadata: "@braden1996/tsconfig": ^0.0.1 peerDependencies: react: ">=18.2.0" - replicache: ">=12.2.0" - replicache-react: ">=2.10.0" + replicache: 15.0.0 + replicache-react: ^2.10.0 languageName: unknown linkType: soft @@ -4345,8 +4345,8 @@ __metadata: "@op-engineering/op-sqlite": ^6.0.1 "@react-native-replicache/example-client-shared": 0.0.0 "@react-native-replicache/example-shared": 0.0.0 - "@react-native-replicache/react-native-expo-sqlite": 1.1.0 - "@react-native-replicache/react-native-op-sqlite": 1.1.0 + "@react-native-replicache/react-native-expo-sqlite": 1.3.0 + "@react-native-replicache/react-native-op-sqlite": 1.3.0 "@types/react": ~18.2.79 "@types/react-native": ~0.73.0 expo: ~51.0.8 @@ -4380,7 +4380,7 @@ __metadata: express: ^4.18.1 nodemon: ^2.0.19 pg-mem: ^2.6.4 - replicache: 12.2.0 + replicache: 15.0.0 replicache-express: ^0.2.1 ts-node: ^10.9.1 languageName: unknown @@ -4396,7 +4396,7 @@ __metadata: nodemon: ^2.0.19 ts-node: ^10.9.1 peerDependencies: - replicache: ">=12.2.0" + replicache: ">=15.0.0" languageName: unknown linkType: soft @@ -4416,7 +4416,7 @@ __metadata: qs: ^6.11.0 react: 18.2.0 react-dom: 18.2.0 - replicache: 12.2.0 + replicache: 15.0.0 replicache-react: ^2.10.0 todomvc-app-css: ^2.4.2 typescript: ~5.4.5 @@ -4424,12 +4424,12 @@ __metadata: languageName: unknown linkType: soft -"@react-native-replicache/react-native-expo-sqlite@1.1.0, @react-native-replicache/react-native-expo-sqlite@workspace:packages/react-native-expo-sqlite": +"@react-native-replicache/react-native-expo-sqlite@1.3.0, @react-native-replicache/react-native-expo-sqlite@workspace:packages/react-native-expo-sqlite": version: 0.0.0-use.local resolution: "@react-native-replicache/react-native-expo-sqlite@workspace:packages/react-native-expo-sqlite" dependencies: "@braden1996/tsconfig": ^0.0.1 - "@react-native-replicache/replicache-generic-sqlite": 1.1.0 + "@react-native-replicache/replicache-generic-sqlite": 1.3.0 "@types/react": ~18.2.79 react-native-builder-bob: ^0.20.3 peerDependencies: @@ -4438,25 +4438,14 @@ __metadata: languageName: unknown linkType: soft -"@react-native-replicache/react-native-op-sqlite@npm:1.1.0": - version: 1.1.0 - resolution: "@react-native-replicache/react-native-op-sqlite@npm:1.1.0" - dependencies: - "@react-native-replicache/replicache-generic-sqlite": 1.1.0 - peerDependencies: - "@op-engineering/op-sqlite": ^6.0.1 - checksum: 3c5ec224cbad399be1bd28fc2152feff68bf40efef0eeb2979a0d084b773e43bbc89b16929812484a51fb8c6dd57dd951bdf559e7ed740397b7c93e40e0bde0c - languageName: node - linkType: hard - -"@react-native-replicache/react-native-op-sqlite@workspace:packages/react-native-op-sqlite": +"@react-native-replicache/react-native-op-sqlite@1.3.0, @react-native-replicache/react-native-op-sqlite@workspace:packages/react-native-op-sqlite": version: 0.0.0-use.local resolution: "@react-native-replicache/react-native-op-sqlite@workspace:packages/react-native-op-sqlite" dependencies: "@babel/preset-env": ^7.20.0 "@babel/runtime": ^7.20.0 "@braden1996/tsconfig": ^0.0.1 - "@react-native-replicache/replicache-generic-sqlite": 1.1.0 + "@react-native-replicache/replicache-generic-sqlite": 1.3.0 "@types/react": ~18.2.79 react-native-builder-bob: ^0.20.3 peerDependencies: @@ -4464,12 +4453,12 @@ __metadata: languageName: unknown linkType: soft -"@react-native-replicache/replicache-generic-sqlite@1.1.0, @react-native-replicache/replicache-generic-sqlite@workspace:packages/replicache-generic-sqlite": +"@react-native-replicache/replicache-generic-sqlite@1.3.0, @react-native-replicache/replicache-generic-sqlite@workspace:packages/replicache-generic-sqlite": version: 0.0.0-use.local resolution: "@react-native-replicache/replicache-generic-sqlite@workspace:packages/replicache-generic-sqlite" dependencies: "@braden1996/tsconfig": ^0.0.1 - "@react-native-replicache/deep-freeze": 1.1.0 + "@react-native-replicache/deep-freeze": 1.3.0 react-native-builder-bob: ^0.20.3 replicache: 15.0.0 peerDependencies: @@ -13908,15 +13897,6 @@ __metadata: languageName: node linkType: hard -"replicache@npm:12.2.0": - version: 12.2.0 - resolution: "replicache@npm:12.2.0" - bin: - replicache: out/cli.cjs - checksum: 7df859d45a8a78239aa45fde6d2c90d1cfded38e88bd66f395eff35750c1c60bc030f78c7eb0d23dcdcaf3845cd36db3ce31b7e1497915941aff0ca8fddc8774 - languageName: node - linkType: hard - "replicache@npm:15.0.0": version: 15.0.0 resolution: "replicache@npm:15.0.0" From de20d90f957674f7ed6d1c3ab4ea0eb4958b4ac8 Mon Sep 17 00:00:00 2001 From: Braden Marshall Date: Sun, 28 Jul 2024 13:41:59 +0100 Subject: [PATCH 05/11] Bump replicache-express --- packages/example/server/package.json | 2 +- yarn.lock | 24 +++++++++++------------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/packages/example/server/package.json b/packages/example/server/package.json index c74d5e0..9710557 100644 --- a/packages/example/server/package.json +++ b/packages/example/server/package.json @@ -38,7 +38,7 @@ "express": "^4.18.1", "pg-mem": "^2.6.4", "replicache": "15.0.0", - "replicache-express": "^0.2.1" + "replicache-express": "^0.3.0-beta.2" }, "devDependencies": { "@braden1996/tsconfig": "^0.0.1", diff --git a/yarn.lock b/yarn.lock index 7ffdf1b..c6c6322 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4381,7 +4381,7 @@ __metadata: nodemon: ^2.0.19 pg-mem: ^2.6.4 replicache: 15.0.0 - replicache-express: ^0.2.1 + replicache-express: ^0.3.0-beta.2 ts-node: ^10.9.1 languageName: unknown linkType: soft @@ -13860,19 +13860,19 @@ __metadata: languageName: node linkType: hard -"replicache-express@npm:^0.2.1": - version: 0.2.1 - resolution: "replicache-express@npm:0.2.1" +"replicache-express@npm:^0.3.0-beta.2": + version: 0.3.0-beta.2 + resolution: "replicache-express@npm:0.3.0-beta.2" dependencies: nanoid: ^4.0.0 - replicache-transaction: ^0.2.1 + replicache-transaction: 0.3.1 peerDependencies: express: ">=4.17.13" pg: ">=8.6.0" pg-mem: ">=2.5.0" - replicache: ">=12.0.1" + replicache: 13.0.0-beta.1 zod: ">=3.17.3" - checksum: 36287bcfda90bcf56bff91e16d633d0b6f6575d27d013eb87de333ee6deb7f6e240be204c136964390ab606d123c76acbbc7fcc85318a4281e2a32787e933d45 + checksum: 46a78a9f5b139c4073bd1b60b0caa7b2e217e1f13501b9b082f54c72af93b1f39b64c1e32165e9911cd2b8c10c94f79ad9d87d7c48d22c0907aa69276a18f7ee languageName: node linkType: hard @@ -13886,14 +13886,12 @@ __metadata: languageName: node linkType: hard -"replicache-transaction@npm:^0.2.1": - version: 0.2.1 - resolution: "replicache-transaction@npm:0.2.1" +"replicache-transaction@npm:0.3.1": + version: 0.3.1 + resolution: "replicache-transaction@npm:0.3.1" dependencies: compare-utf8: ^0.1.0 - peerDependencies: - replicache: ">=12.0.1" - checksum: 7e06ef070a67427cad32c1ccf809fdb7c707b80d924ef650ab97607d9d6c0f0c409cc51c8158cf3c597299d6e332faf5a80b75a83d3c5da1cd5806140adfcb90 + checksum: eaede47a52db1a20a4995a02ccee26c91e53526e37c755101c3e192599db9e3bb47bf98f49724ad86897773e0df4a9708e30fc7fc1b3f21ce7c9d6dc42b6add3 languageName: node linkType: hard From ecc8387c59374c36d83bcf1730587dd7fd19a73f Mon Sep 17 00:00:00 2001 From: Braden Marshall Date: Sun, 28 Jul 2024 14:23:00 +0100 Subject: [PATCH 06/11] Add premature 1.3.1 bump and drop fix --- packages/example/mobile-react-native/package.json | 4 ++-- .../mobile-react-native/src/components/todo-list.tsx | 8 +++++++- .../example/mobile-react-native/src/use-replicache.ts | 6 +++--- packages/react-native-expo-sqlite/package.json | 2 +- packages/react-native-expo-sqlite/src/index.ts | 2 +- packages/react-native-op-sqlite/package.json | 2 +- packages/react-native-op-sqlite/src/index.ts | 2 +- yarn.lock | 8 ++++---- 8 files changed, 20 insertions(+), 14 deletions(-) diff --git a/packages/example/mobile-react-native/package.json b/packages/example/mobile-react-native/package.json index 03161d3..5694edc 100644 --- a/packages/example/mobile-react-native/package.json +++ b/packages/example/mobile-react-native/package.json @@ -21,8 +21,8 @@ "@op-engineering/op-sqlite": "^6.0.1", "@react-native-replicache/example-client-shared": "0.0.0", "@react-native-replicache/example-shared": "0.0.0", - "@react-native-replicache/react-native-expo-sqlite": "1.3.0", - "@react-native-replicache/react-native-op-sqlite": "1.3.0", + "@react-native-replicache/react-native-expo-sqlite": "1.3.1", + "@react-native-replicache/react-native-op-sqlite": "1.3.1", "expo": "~51.0.8", "expo-build-properties": "~0.12.1", "expo-crypto": "~13.0.2", diff --git a/packages/example/mobile-react-native/src/components/todo-list.tsx b/packages/example/mobile-react-native/src/components/todo-list.tsx index 92f0653..ea1c56c 100644 --- a/packages/example/mobile-react-native/src/components/todo-list.tsx +++ b/packages/example/mobile-react-native/src/components/todo-list.tsx @@ -1,12 +1,13 @@ import { listTodos, TodoUpdate } from "@react-native-replicache/example-shared"; import { nanoid } from "nanoid"; import React from "react"; -import { FlatList, StyleSheet, Text, View } from "react-native"; +import { Button, FlatList, StyleSheet, Text, View } from "react-native"; import { useSubscribe } from "replicache-react"; import { TodoInput } from "./todo-input"; import { TodoItem } from "./todo-item"; import { useReplicache } from "../use-replicache"; +import { dropAllDatabases } from "replicache"; interface TodoListProps { listId: string; @@ -55,6 +56,11 @@ export function TodoList({ listId }: TodoListProps) { ListFooterComponent={ List: {listId} + + } ItemSeparatorComponent={() => } diff --git a/packages/example/mobile-react-native/src/use-replicache.ts b/packages/example/mobile-react-native/src/use-replicache.ts index 7c3ea42..f6764cc 100644 --- a/packages/example/mobile-react-native/src/use-replicache.ts +++ b/packages/example/mobile-react-native/src/use-replicache.ts @@ -1,6 +1,6 @@ import { mutators } from "@react-native-replicache/example-shared"; -import { createReplicacheExpoSQLiteKVStore } from "@react-native-replicache/react-native-expo-sqlite"; -// import { createReplicacheReactNativeOPSQLiteKVStore } from "@react-native-replicache/react-native-op-sqlite"; +// import { createReplicacheExpoSQLiteKVStore } from "@react-native-replicache/react-native-expo-sqlite"; +import { createReplicacheReactNativeOPSQLiteKVStore } from "@react-native-replicache/react-native-op-sqlite"; import React from "react"; import EventSource from "react-native-sse"; import { Replicache, TEST_LICENSE_KEY } from "replicache"; @@ -18,7 +18,7 @@ export function useReplicache(listID: string) { licenseKey, pushURL: `http://127.0.0.1:8080/api/replicache/push?spaceID=${listID}`, pullURL: `http://127.0.0.1:8080/api/replicache/pull?spaceID=${listID}`, - kvStore: createReplicacheExpoSQLiteKVStore, + kvStore: createReplicacheReactNativeOPSQLiteKVStore, name: listID, mutators, }), diff --git a/packages/react-native-expo-sqlite/package.json b/packages/react-native-expo-sqlite/package.json index 4683876..761a32d 100644 --- a/packages/react-native-expo-sqlite/package.json +++ b/packages/react-native-expo-sqlite/package.json @@ -1,6 +1,6 @@ { "name": "@react-native-replicache/react-native-expo-sqlite", - "version": "1.3.0", + "version": "1.3.1", "main": "./dist/commonjs/index.js", "module": "./dist/module/index.js", "react-native": "./src/index.ts", diff --git a/packages/react-native-expo-sqlite/src/index.ts b/packages/react-native-expo-sqlite/src/index.ts index 32c2485..3af8273 100644 --- a/packages/react-native-expo-sqlite/src/index.ts +++ b/packages/react-native-expo-sqlite/src/index.ts @@ -31,5 +31,5 @@ const expoDbManagerInstance = new ReplicacheGenericSQLiteDatabaseManager( export const createReplicacheExpoSQLiteKVStore = { create: getCreateReplicacheSQLiteKVStore(expoDbManagerInstance), - drop: expoDbManagerInstance.destroy, + drop: (name: string) => expoDbManagerInstance.destroy(name), }; diff --git a/packages/react-native-op-sqlite/package.json b/packages/react-native-op-sqlite/package.json index 9967bc5..4e2cd7e 100644 --- a/packages/react-native-op-sqlite/package.json +++ b/packages/react-native-op-sqlite/package.json @@ -1,6 +1,6 @@ { "name": "@react-native-replicache/react-native-op-sqlite", - "version": "1.3.0", + "version": "1.3.1", "main": "./dist/commonjs/index.js", "module": "./dist/module/index.js", "react-native": "./src/index.ts", diff --git a/packages/react-native-op-sqlite/src/index.ts b/packages/react-native-op-sqlite/src/index.ts index abf23b9..91950cd 100644 --- a/packages/react-native-op-sqlite/src/index.ts +++ b/packages/react-native-op-sqlite/src/index.ts @@ -25,5 +25,5 @@ const opSqlManagerInstance = new ReplicacheGenericSQLiteDatabaseManager( export const createReplicacheReactNativeOPSQLiteKVStore = { create: getCreateReplicacheSQLiteKVStore(opSqlManagerInstance), - drop: opSqlManagerInstance.destroy, + drop: (name: string) => opSqlManagerInstance.destroy(name), }; diff --git a/yarn.lock b/yarn.lock index c6c6322..7ca4582 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4345,8 +4345,8 @@ __metadata: "@op-engineering/op-sqlite": ^6.0.1 "@react-native-replicache/example-client-shared": 0.0.0 "@react-native-replicache/example-shared": 0.0.0 - "@react-native-replicache/react-native-expo-sqlite": 1.3.0 - "@react-native-replicache/react-native-op-sqlite": 1.3.0 + "@react-native-replicache/react-native-expo-sqlite": 1.3.1 + "@react-native-replicache/react-native-op-sqlite": 1.3.1 "@types/react": ~18.2.79 "@types/react-native": ~0.73.0 expo: ~51.0.8 @@ -4424,7 +4424,7 @@ __metadata: languageName: unknown linkType: soft -"@react-native-replicache/react-native-expo-sqlite@1.3.0, @react-native-replicache/react-native-expo-sqlite@workspace:packages/react-native-expo-sqlite": +"@react-native-replicache/react-native-expo-sqlite@1.3.1, @react-native-replicache/react-native-expo-sqlite@workspace:packages/react-native-expo-sqlite": version: 0.0.0-use.local resolution: "@react-native-replicache/react-native-expo-sqlite@workspace:packages/react-native-expo-sqlite" dependencies: @@ -4438,7 +4438,7 @@ __metadata: languageName: unknown linkType: soft -"@react-native-replicache/react-native-op-sqlite@1.3.0, @react-native-replicache/react-native-op-sqlite@workspace:packages/react-native-op-sqlite": +"@react-native-replicache/react-native-op-sqlite@1.3.1, @react-native-replicache/react-native-op-sqlite@workspace:packages/react-native-op-sqlite": version: 0.0.0-use.local resolution: "@react-native-replicache/react-native-op-sqlite@workspace:packages/react-native-op-sqlite" dependencies: From 125470615b07d31ccd77b6fa20b524b6a9820996 Mon Sep 17 00:00:00 2001 From: Braden Marshall Date: Sun, 28 Jul 2024 14:23:53 +0100 Subject: [PATCH 07/11] Fix new CI job --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 47c78d9..5fef07f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,6 +59,9 @@ jobs: node-version: 16 cache: "yarn" + - name: Install dependencies + run: yarn install --immutable + - name: Generate new syncpack snapshot run: yarn run update-syncpack-snapshot shell: bash From c26962701e0693677f96b63ee420bd20b3e146c3 Mon Sep 17 00:00:00 2001 From: Braden Marshall Date: Sun, 28 Jul 2024 14:35:37 +0100 Subject: [PATCH 08/11] Fix logout callback example --- .../src/components/todo-list.tsx | 8 ++------ .../mobile-react-native/src/use-replicache.ts | 15 +++++++++++---- turbo.json | 6 ++++-- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/packages/example/mobile-react-native/src/components/todo-list.tsx b/packages/example/mobile-react-native/src/components/todo-list.tsx index ea1c56c..93ebcc9 100644 --- a/packages/example/mobile-react-native/src/components/todo-list.tsx +++ b/packages/example/mobile-react-native/src/components/todo-list.tsx @@ -7,14 +7,13 @@ import { useSubscribe } from "replicache-react"; import { TodoInput } from "./todo-input"; import { TodoItem } from "./todo-item"; import { useReplicache } from "../use-replicache"; -import { dropAllDatabases } from "replicache"; interface TodoListProps { listId: string; } export function TodoList({ listId }: TodoListProps) { - const rep = useReplicache(listId); + const { rep, close } = useReplicache(listId); // Subscribe to all todos and sort them. const todos = useSubscribe(rep, listTodos, [], [rep]); @@ -57,10 +56,7 @@ export function TodoList({ listId }: TodoListProps) { List: {listId} - +