From f2010c0086f85138812f848c227851b9a2ad9c67 Mon Sep 17 00:00:00 2001 From: Cesare Naldi Date: Wed, 29 Nov 2023 09:16:41 +0100 Subject: [PATCH 1/2] fix: LensClient and Lens React Hookes interoperability --- .changeset/young-carrots-jump.md | 9 ++++++ .../adapters/CredentialsStorage.ts | 14 +++----- .../adapters/CredentialsStorage.ts | 5 +-- .../adapters/CredentialsStorageSchema.ts | 27 ---------------- packages/react/tsconfig.json | 2 +- .../storage/src/CredentialsStorageSchema.ts | 32 +++++++++++++++++++ packages/storage/src/index.ts | 1 + 7 files changed, 50 insertions(+), 40 deletions(-) create mode 100644 .changeset/young-carrots-jump.md delete mode 100644 packages/react/src/authentication/adapters/CredentialsStorageSchema.ts create mode 100644 packages/storage/src/CredentialsStorageSchema.ts diff --git a/.changeset/young-carrots-jump.md b/.changeset/young-carrots-jump.md new file mode 100644 index 0000000000..3a333a2e2a --- /dev/null +++ b/.changeset/young-carrots-jump.md @@ -0,0 +1,9 @@ +--- +"@lens-protocol/storage": patch +"@lens-protocol/client": patch +"@lens-protocol/react": patch +"@lens-protocol/react-native": patch +"@lens-protocol/react-web": patch +--- + +**fix:** `LensClient` and Lens React Hooks interoperability diff --git a/packages/client/src/authentication/adapters/CredentialsStorage.ts b/packages/client/src/authentication/adapters/CredentialsStorage.ts index 29438a7a05..631fa2d7dd 100644 --- a/packages/client/src/authentication/adapters/CredentialsStorage.ts +++ b/packages/client/src/authentication/adapters/CredentialsStorage.ts @@ -1,32 +1,26 @@ import { - BaseStorageSchema, + CredentialsStorageSchema, IStorage, IStorageProvider, + PersistedCredentials, Storage, StorageSubscriber, StorageSubscription, } from '@lens-protocol/storage'; -import { z } from 'zod'; import { Credentials } from './Credentials'; -const AuthData = z.object({ - refreshToken: z.string(), -}); - -type AuthData = z.infer; - /** * Stores auth credentials. * Access token is kept in memory. * Refresh token is persisted permanently. */ export class CredentialsStorage implements IStorage { - private refreshTokenStorage: IStorage; + private refreshTokenStorage: IStorage; private accessToken: string | undefined; constructor(storageProvider: IStorageProvider, namespace: string) { - const authStorageSchema = new BaseStorageSchema(`lens.${namespace}.credentials`, AuthData); + const authStorageSchema = new CredentialsStorageSchema(`lens.${namespace}.credentials`); this.refreshTokenStorage = Storage.createForSchema(authStorageSchema, storageProvider); } diff --git a/packages/react/src/authentication/adapters/CredentialsStorage.ts b/packages/react/src/authentication/adapters/CredentialsStorage.ts index 445183a8c8..49bc1d41e3 100644 --- a/packages/react/src/authentication/adapters/CredentialsStorage.ts +++ b/packages/react/src/authentication/adapters/CredentialsStorage.ts @@ -4,10 +4,11 @@ import { Storage, StorageSubscriber, StorageSubscription, + CredentialsStorageSchema, + PersistedCredentials, } from '@lens-protocol/storage'; import { Credentials } from './Credentials'; -import { AuthData, CredentialsStorageSchema } from './CredentialsStorageSchema'; /** * Stores auth credentials. @@ -15,7 +16,7 @@ import { AuthData, CredentialsStorageSchema } from './CredentialsStorageSchema'; * Refresh token is persisted permanently. */ export class CredentialsStorage implements IStorage { - refreshTokenStorage: IStorage; + refreshTokenStorage: IStorage; accessToken: string | null = null; constructor(storageProvider: IStorageProvider, namespace: string) { diff --git a/packages/react/src/authentication/adapters/CredentialsStorageSchema.ts b/packages/react/src/authentication/adapters/CredentialsStorageSchema.ts deleted file mode 100644 index 743f87ed8d..0000000000 --- a/packages/react/src/authentication/adapters/CredentialsStorageSchema.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { BaseStorageSchema, IStorageItem } from '@lens-protocol/storage'; -import { TypeOf, z } from 'zod'; - -const AuthData = z.object({ - refreshToken: z.string(), -}); - -export type AuthData = z.infer; - -export class CredentialsStorageSchema extends BaseStorageSchema { - version = 2; - - constructor(key: string) { - super(key, AuthData); - } - - protected migrate(storageItem: IStorageItem): TypeOf { - const storageVersion = storageItem.metadata.version; - - if (this.version > storageVersion) { - return this.parseData({ - refreshToken: '', - }); - } - return this.parseData(storageItem.data); - } -} diff --git a/packages/react/tsconfig.json b/packages/react/tsconfig.json index edb77575a3..3a6ec7ddd3 100644 --- a/packages/react/tsconfig.json +++ b/packages/react/tsconfig.json @@ -6,5 +6,5 @@ "module": "ESNext", "outDir": "dist" }, - "include": ["./src"] + "include": ["./src", "../storage/src/CredentialsStorageSchema.ts"] } diff --git a/packages/storage/src/CredentialsStorageSchema.ts b/packages/storage/src/CredentialsStorageSchema.ts new file mode 100644 index 0000000000..f836be76fc --- /dev/null +++ b/packages/storage/src/CredentialsStorageSchema.ts @@ -0,0 +1,32 @@ +import { z } from 'zod'; + +import { BaseStorageSchema, IStorageItem } from './BaseStorageSchema'; + +const PersistedCredentialsSchema = z.object({ + refreshToken: z.string(), +}); + +type PersistedCredentialsSchema = typeof PersistedCredentialsSchema; + +export type PersistedCredentials = z.infer; + +export class CredentialsStorageSchema extends BaseStorageSchema { + version = 2; + + constructor(key: string) { + super(key, PersistedCredentialsSchema); + } + + protected override migrate( + storageItem: IStorageItem, + ): PersistedCredentials { + const storageVersion = storageItem.metadata.version; + + if (this.version > storageVersion) { + return this.parseData({ + refreshToken: '', + }); + } + return this.parseData(storageItem.data); + } +} diff --git a/packages/storage/src/index.ts b/packages/storage/src/index.ts index 1cc4ea9744..caf90bed73 100644 --- a/packages/storage/src/index.ts +++ b/packages/storage/src/index.ts @@ -1,4 +1,5 @@ export * from './BaseStorageSchema'; +export * from './CredentialsStorageSchema'; export * from './IStorage'; export * from './Storage'; export * from './InMemoryStorageProvider'; From b2c0c37c3e0fe0a8ebad9fce87d313b4e35bd497 Mon Sep 17 00:00:00 2001 From: Cesare Naldi Date: Wed, 29 Nov 2023 09:32:28 +0100 Subject: [PATCH 2/2] chore: bumps up versions --- .changeset/pre.json | 1 + packages/client/CHANGELOG.md | 9 +++++++++ packages/client/package.json | 2 +- packages/gated-content/CHANGELOG.md | 7 +++++++ packages/gated-content/package.json | 2 +- packages/react-native/CHANGELOG.md | 9 +++++++++ packages/react-native/package.json | 2 +- packages/react-web/CHANGELOG.md | 9 +++++++++ packages/react-web/package.json | 2 +- packages/react/CHANGELOG.md | 8 ++++++++ packages/react/package.json | 2 +- packages/storage/CHANGELOG.md | 6 ++++++ packages/storage/package.json | 2 +- packages/wagmi/CHANGELOG.md | 7 +++++++ packages/wagmi/package.json | 2 +- 15 files changed, 63 insertions(+), 7 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index fdc08205b9..a98a763e77 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -140,6 +140,7 @@ "violet-ads-warn", "violet-impalas-grab", "yellow-cows-push", + "young-carrots-jump", "young-jeans-reflect" ] } diff --git a/packages/client/CHANGELOG.md b/packages/client/CHANGELOG.md index 85b9f0932d..6e8217b69e 100644 --- a/packages/client/CHANGELOG.md +++ b/packages/client/CHANGELOG.md @@ -1,5 +1,14 @@ # @lens-protocol/client +## 2.0.0-alpha.24 + +### Patch Changes + +- f2010c008: **fix:** `LensClient` and Lens React Hooks interoperability +- Updated dependencies [f2010c008] + - @lens-protocol/storage@0.7.5-alpha.7 + - @lens-protocol/gated-content@0.3.3-alpha.18 + ## 2.0.0-alpha.23 ### Minor Changes diff --git a/packages/client/package.json b/packages/client/package.json index 7c849203bb..248b6585b7 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@lens-protocol/client", - "version": "2.0.0-alpha.23", + "version": "2.0.0-alpha.24", "description": "Low level Lens API client", "repository": { "directory": "packages/client", diff --git a/packages/gated-content/CHANGELOG.md b/packages/gated-content/CHANGELOG.md index 91235f9c47..c3846f2a1e 100644 --- a/packages/gated-content/CHANGELOG.md +++ b/packages/gated-content/CHANGELOG.md @@ -1,5 +1,12 @@ # @lens-protocol/gated-content +## 0.3.3-alpha.18 + +### Patch Changes + +- Updated dependencies [f2010c008] + - @lens-protocol/storage@0.7.5-alpha.7 + ## 0.3.3-alpha.17 ### Patch Changes diff --git a/packages/gated-content/package.json b/packages/gated-content/package.json index cad14afeb0..5dd802e0c7 100644 --- a/packages/gated-content/package.json +++ b/packages/gated-content/package.json @@ -1,6 +1,6 @@ { "name": "@lens-protocol/gated-content", - "version": "0.3.3-alpha.17", + "version": "0.3.3-alpha.18", "description": "Token-gated content for the Lens Protocol", "main": "dist/lens-protocol-gated-content.cjs.js", "module": "dist/lens-protocol-gated-content.esm.js", diff --git a/packages/react-native/CHANGELOG.md b/packages/react-native/CHANGELOG.md index 8f2f031499..8701ba564d 100644 --- a/packages/react-native/CHANGELOG.md +++ b/packages/react-native/CHANGELOG.md @@ -1,5 +1,14 @@ # @lens-protocol/react-native +## 0.0.1-alpha.1 + +### Patch Changes + +- f2010c008: **fix:** `LensClient` and Lens React Hooks interoperability +- Updated dependencies [f2010c008] + - @lens-protocol/storage@0.7.5-alpha.7 + - @lens-protocol/react@2.0.0-alpha.24 + ## 0.0.1-alpha.0 ### Minor Changes diff --git a/packages/react-native/package.json b/packages/react-native/package.json index b0499e5767..ef960a146e 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -1,6 +1,6 @@ { "name": "@lens-protocol/react-native", - "version": "0.0.1-alpha.0", + "version": "0.0.1-alpha.1", "description": "Lens Protocol SDK for React Native", "main": "dist/lens-protocol-react-native.cjs.js", "module": "dist/lens-protocol-react-native.esm.js", diff --git a/packages/react-web/CHANGELOG.md b/packages/react-web/CHANGELOG.md index 7ade8a823b..ab990f659c 100644 --- a/packages/react-web/CHANGELOG.md +++ b/packages/react-web/CHANGELOG.md @@ -1,5 +1,14 @@ # @lens-protocol/react-web +## 2.0.0-alpha.24 + +### Patch Changes + +- f2010c008: **fix:** `LensClient` and Lens React Hooks interoperability +- Updated dependencies [f2010c008] + - @lens-protocol/storage@0.7.5-alpha.7 + - @lens-protocol/react@2.0.0-alpha.24 + ## 2.0.0-alpha.23 ### Minor Changes diff --git a/packages/react-web/package.json b/packages/react-web/package.json index 47b060e39f..9a84a647f0 100644 --- a/packages/react-web/package.json +++ b/packages/react-web/package.json @@ -1,6 +1,6 @@ { "name": "@lens-protocol/react-web", - "version": "2.0.0-alpha.23", + "version": "2.0.0-alpha.24", "description": "Lens Protocol SDK for React web applications", "main": "dist/lens-protocol-react-web.cjs.js", "module": "dist/lens-protocol-react-web.esm.js", diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index c11fae1cd6..2d4c631fa1 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -1,5 +1,13 @@ # @lens-protocol/react +## 2.0.0-alpha.24 + +### Patch Changes + +- f2010c008: **fix:** `LensClient` and Lens React Hooks interoperability +- Updated dependencies [f2010c008] + - @lens-protocol/storage@0.7.5-alpha.7 + ## 2.0.0-alpha.23 ### Minor Changes diff --git a/packages/react/package.json b/packages/react/package.json index f158544db4..2970547bc9 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@lens-protocol/react", - "version": "2.0.0-alpha.23", + "version": "2.0.0-alpha.24", "description": "Interacting with the Lens Protocol API using React.", "main": "dist/lens-protocol-react.cjs.js", "module": "dist/lens-protocol-react.esm.js", diff --git a/packages/storage/CHANGELOG.md b/packages/storage/CHANGELOG.md index 9d4fefe302..b2a61a15d5 100644 --- a/packages/storage/CHANGELOG.md +++ b/packages/storage/CHANGELOG.md @@ -1,5 +1,11 @@ # @lens-protocol/storage +## 0.7.5-alpha.7 + +### Patch Changes + +- f2010c008: **fix:** `LensClient` and Lens React Hooks interoperability + ## 0.7.5-alpha.6 ### Patch Changes diff --git a/packages/storage/package.json b/packages/storage/package.json index 1e5444fe63..d9d4e89419 100644 --- a/packages/storage/package.json +++ b/packages/storage/package.json @@ -1,6 +1,6 @@ { "name": "@lens-protocol/storage", - "version": "0.7.5-alpha.6", + "version": "0.7.5-alpha.7", "description": "Storage", "repository": { "directory": "packages/storage", diff --git a/packages/wagmi/CHANGELOG.md b/packages/wagmi/CHANGELOG.md index 91520e3ed4..28d7d83e9f 100644 --- a/packages/wagmi/CHANGELOG.md +++ b/packages/wagmi/CHANGELOG.md @@ -1,5 +1,12 @@ # @lens-protocol/wagmi +## 3.0.0-alpha.21 + +### Patch Changes + +- Updated dependencies [f2010c008] + - @lens-protocol/react-web@2.0.0-alpha.24 + ## 3.0.0-alpha.20 ### Patch Changes diff --git a/packages/wagmi/package.json b/packages/wagmi/package.json index 351701d2bc..a2fa42ad9f 100644 --- a/packages/wagmi/package.json +++ b/packages/wagmi/package.json @@ -1,6 +1,6 @@ { "name": "@lens-protocol/wagmi", - "version": "3.0.0-alpha.20", + "version": "3.0.0-alpha.21", "description": "wagmi bindings for @lens-protocol/react", "repository": { "directory": "packages/wagmi",