@plasmicapp/auth-react 0.0.20 → 0.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -2
- package/dist/index.esm.js +3 -2
- package/dist/index.esm.js.map +2 -2
- package/dist/index.js +3 -2
- package/dist/index.js.map +2 -2
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -7,8 +7,8 @@ export declare function usePlasmicAuth(opts: {
|
|
|
7
7
|
host?: string;
|
|
8
8
|
appId?: string;
|
|
9
9
|
}): {
|
|
10
|
-
user: PlasmicUser | null
|
|
11
|
-
token: string | null
|
|
10
|
+
user: PlasmicUser | null;
|
|
11
|
+
token: string | null;
|
|
12
12
|
isUserLoading: boolean | undefined;
|
|
13
13
|
};
|
|
14
14
|
|
package/dist/index.esm.js
CHANGED
|
@@ -113,6 +113,7 @@ function checkAlreadyLoggedUser(opts) {
|
|
|
113
113
|
});
|
|
114
114
|
}
|
|
115
115
|
function usePlasmicAuth(opts) {
|
|
116
|
+
var _a, _b;
|
|
116
117
|
const { host, appId } = opts;
|
|
117
118
|
const authKey = `$csq$plasmic-auth-${appId}`;
|
|
118
119
|
const { data: userData, isLoading } = useMutablePlasmicQueryData(
|
|
@@ -162,8 +163,8 @@ function usePlasmicAuth(opts) {
|
|
|
162
163
|
})
|
|
163
164
|
);
|
|
164
165
|
return {
|
|
165
|
-
user: userData == null ? void 0 : userData.user,
|
|
166
|
-
token: userData == null ? void 0 : userData.token,
|
|
166
|
+
user: (_a = userData == null ? void 0 : userData.user) != null ? _a : null,
|
|
167
|
+
token: (_b = userData == null ? void 0 : userData.token) != null ? _b : null,
|
|
167
168
|
isUserLoading: isLoading
|
|
168
169
|
};
|
|
169
170
|
}
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts", "../src/hooks.ts"],
|
|
4
|
-
"sourcesContent": ["export * from '@plasmicapp/auth-api';\nexport * from './hooks';\n", "import {\n getPlasmicAppUser,\n getPlasmicAppUserFromToken,\n PlasmicUser,\n} from
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc;;;ACAd;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP,SAAS,kCAAkC;AAO3C,IAAM,iBAAiB,CAAC,UAAkB,SAAS;AAEnD,IAAM,YAAY,OAAO,WAAW;AAEpC,SAAS,oBAAoB;AAC3B,QAAM,SAAS,IAAI,gBAAgB,OAAO,SAAS,MAAM;AACzD,QAAM,QAAQ,OAAO,IAAI,OAAO;AAChC,QAAM,OAAO,OAAO,IAAI,MAAM;AAC9B,QAAM,QAAQ,OAAO,IAAI,OAAO;AAEhC,SAAO;AAAA,IACL,iBAAiB,CAAC,CAAC;AAAA,IACnB,gBAAgB,CAAC,CAAC,QAAQ,CAAC,CAAC;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,kBAAkB;AACzB,MAAI;AACF,WAAO,aAAa,QAAQ,eAAe;AAAA,EAC7C,SAAS,KAAP;AACA,WAAO;AAAA,EACT;AACF;AAEA,SAAS,uBAAuB;AAC9B,MAAI;AACF,WAAO,QAAQ,aAAa,CAAC,GAAG,IAAI,SAAS,QAAQ;AAAA,EACvD,SAAS,KAAP;AACA,YAAQ,MAAM,yCAAyC,KAAK;AAAA,EAC9D;AACF;AAKA,SAAS,yBAAyB,YAAoB;AACpD,QAAM,WAAW,OAAO,SAAS;AACjC,QAAM,SAAS,OAAO,SAAS;AAC/B,SAAO,eAAe,YAAY,eAAe,SAAS;AAC5D;AAEA,SAAe,eAAe,MAMW;AAAA;AACvC,UAAM,EAAE,MAAM,OAAO,MAAM,OAAO,aAAa,IAAI;AAEnD,QAAI,aAAa;AACjB,QAAI;AACF,UAAI,OAAO;AACT,cAAM,cAAc,KAAK,MAAM,KAAK;AACpC,qBAAa,YAAY;AAAA,MAC3B;AAAA,IACF,SAAS,KAAP;AACA,cAAQ,MAAM,8BAA8B,KAAK;AAAA,IACnD;AAEA,UAAM,SAAS,MAAM,kBAAkB;AAAA,MACrC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAED,QAAI,OAAO,OAAO;AAChB,cAAQ,IAAI,yCAAyC,OAAO,OAAO;AACnE,aAAO;AAAA,IACT;AAEA,iBAAa,QAAQ,eAAe,KAAK,GAAG,OAAO,KAAK;AAExD,QAAI,CAAC,yBAAyB,UAAU,GAAG;AACzC,aAAO,SAAS,OAAO,UAAU;AAAA,IACnC,OAAO;AACL,2BAAqB;AAAA,IACvB;AAEA,WAAO,EAAE,OAAO,OAAO,OAAO,MAAM,OAAO,KAAK;AAAA,EAClD;AAAA;AAEA,SAAe,uBAAuB,MAGT;AAAA;AAC3B,UAAM,EAAE,OAAO,KAAK,IAAI;AAExB,UAAM,QAAQ,aAAa,QAAQ,eAAe,KAAK,CAAC;AACxD,QAAI,CAAC,OAAO;AACV,aAAO,EAAE,MAAM,MAAM,OAAO,KAAK;AAAA,IACnC;AAEA,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,2BAA2B;AAAA,MACvD;AAAA,MACA;AAAA,IACF,CAAC;AAED,QAAI,OAAO;AAGT,mBAAa,WAAW,eAAe,KAAK,CAAC;AAC7C,cAAQ,IAAI,kCAAkC;AAC9C,aAAO,EAAE,MAAM,MAAM,OAAO,KAAK;AAAA,IACnC;AAEA,WAAO,EAAE,MAAM,MAAM;AAAA,EACvB;AAAA;AAKO,SAAS,eAAe,MAAyC;
|
|
4
|
+
"sourcesContent": ["export * from '@plasmicapp/auth-api';\nexport * from './hooks';\n", "import {\n getPlasmicAppUser,\n getPlasmicAppUserFromToken,\n PlasmicUser,\n} from \"@plasmicapp/auth-api\";\nimport { useMutablePlasmicQueryData } from \"@plasmicapp/query\";\n\ninterface PlasmicAuthData {\n user: PlasmicUser | null;\n token: string | null;\n}\n\nconst storageUserKey = (appId: string) => `$user.${appId}`;\n\nconst isBrowser = typeof window !== \"undefined\";\n\nfunction getCallbackParams() {\n const params = new URLSearchParams(window.location.search);\n const error = params.get(\"error\");\n const code = params.get(\"code\");\n const state = params.get(\"state\");\n\n return {\n isCallbackError: !!error,\n isCodeExchange: !!code && !!state,\n error,\n code,\n state,\n };\n}\n\nfunction getCodeVerifier() {\n try {\n return localStorage.getItem(\"code_verifier\");\n } catch (err) {\n return null;\n }\n}\n\nfunction removeCallbackParams() {\n try {\n window.history.replaceState({}, \"\", location.pathname);\n } catch (err) {\n console.error(`Error while removing callback params: ${err}`);\n }\n}\n\n// continueTo can be only a pathname or a full url with origin\n// we can consider that currently we are at the callback page\n// with callback params, so ignore the search params\nfunction isContinueToSameLocation(continueTo: string) {\n const pathname = window.location.pathname;\n const origin = window.location.origin;\n return continueTo === pathname || continueTo === origin + pathname;\n}\n\nasync function handleCallback(opts: {\n host?: string;\n appId: string;\n code: string;\n state: string;\n codeVerifier: string;\n}): Promise<PlasmicAuthData | undefined> {\n const { host, appId, code, state, codeVerifier } = opts;\n\n let continueTo = \"/\";\n try {\n if (state) {\n const parsedState = JSON.parse(state);\n continueTo = parsedState.continueTo;\n }\n } catch (err) {\n console.error(`Error while parsing state: ${err}`);\n }\n\n const result = await getPlasmicAppUser({\n host,\n appId,\n code,\n codeVerifier,\n });\n\n if (result.error) {\n console.log(`Error while performing code exchange: ${result.error}`);\n return undefined;\n }\n\n localStorage.setItem(storageUserKey(appId), result.token);\n\n if (!isContinueToSameLocation(continueTo)) {\n window.location.assign(continueTo);\n } else {\n removeCallbackParams();\n }\n\n return { token: result.token, user: result.user };\n}\n\nasync function checkAlreadyLoggedUser(opts: {\n appId: string;\n host?: string;\n}): Promise<PlasmicAuthData> {\n const { appId, host } = opts;\n\n const token = localStorage.getItem(storageUserKey(appId));\n if (!token) {\n return { user: null, token: null };\n }\n\n const { user, error } = await getPlasmicAppUserFromToken({\n host,\n token,\n });\n\n if (error) {\n // If there is an error, we just remove the token\n // But ideally we should check if the reason is token expired\n localStorage.removeItem(storageUserKey(appId));\n console.log(`Error while checking logged user`);\n return { user: null, token: null };\n }\n\n return { user, token };\n}\n\n/**\n * Handles the authentication flow for Plasmic Auth and returns the user and token\n */\nexport function usePlasmicAuth(opts: { host?: string; appId?: string }) {\n const { host, appId } = opts;\n const authKey = `$csq$plasmic-auth-${appId}`;\n const { data: userData, isLoading } = useMutablePlasmicQueryData(\n authKey,\n async (): Promise<PlasmicAuthData> => {\n if (!appId || !isBrowser) {\n return { user: null, token: null };\n }\n\n // Fail silently for now\n try {\n // We first check if we are currently in the callback flow\n const callbackParams = getCallbackParams();\n if (callbackParams.isCallbackError || callbackParams.isCodeExchange) {\n if (callbackParams.isCallbackError) {\n // If there is an error, we just remove the callback params\n removeCallbackParams();\n console.error(`Error: ${callbackParams.error}`);\n return { user: null, token: null };\n } else {\n const codeVerifier = getCodeVerifier();\n if (!codeVerifier) {\n // If there is no codeVerifier, we just remove the callback params\n removeCallbackParams();\n console.error(\"No code verifier found\");\n return { user: null, token: null };\n } else {\n // Perform code exchange, by the end of the callback handling we will either still be\n // in the callback page or we will be redirected to the continueTo page.\n\n const result = await handleCallback({\n host,\n appId,\n code: callbackParams.code!,\n state: callbackParams.state!,\n codeVerifier,\n });\n\n // Undefined result means that the code exchange failed\n if (!result) {\n removeCallbackParams();\n return { user: null, token: null };\n }\n\n // In the above case where the code exchange failed and the callback page requires login\n // a login redirect will be triggered\n return result;\n }\n }\n } else {\n return await checkAlreadyLoggedUser({\n appId,\n host,\n });\n }\n } catch (err) {\n console.error(`Error while handling auth: ${err}`);\n }\n\n return { user: null, token: null };\n }\n );\n\n return {\n user: userData?.user ?? null,\n token: userData?.token ?? null,\n isUserLoading: isLoading,\n };\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/index.js
CHANGED
|
@@ -134,6 +134,7 @@ function checkAlreadyLoggedUser(opts) {
|
|
|
134
134
|
});
|
|
135
135
|
}
|
|
136
136
|
function usePlasmicAuth(opts) {
|
|
137
|
+
var _a, _b;
|
|
137
138
|
const { host, appId } = opts;
|
|
138
139
|
const authKey = `$csq$plasmic-auth-${appId}`;
|
|
139
140
|
const { data: userData, isLoading } = (0, import_query.useMutablePlasmicQueryData)(
|
|
@@ -183,8 +184,8 @@ function usePlasmicAuth(opts) {
|
|
|
183
184
|
})
|
|
184
185
|
);
|
|
185
186
|
return {
|
|
186
|
-
user: userData == null ? void 0 : userData.user,
|
|
187
|
-
token: userData == null ? void 0 : userData.token,
|
|
187
|
+
user: (_a = userData == null ? void 0 : userData.user) != null ? _a : null,
|
|
188
|
+
token: (_b = userData == null ? void 0 : userData.token) != null ? _b : null,
|
|
188
189
|
isUserLoading: isLoading
|
|
189
190
|
};
|
|
190
191
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts", "../src/hooks.ts"],
|
|
4
|
-
"sourcesContent": ["export * from '@plasmicapp/auth-api';\nexport * from './hooks';\n", "import {\n getPlasmicAppUser,\n getPlasmicAppUserFromToken,\n PlasmicUser,\n} from
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAc,iCAAd;;;ACAA,sBAIO;AACP,mBAA2C;AAO3C,IAAM,iBAAiB,CAAC,UAAkB,SAAS;AAEnD,IAAM,YAAY,OAAO,WAAW;AAEpC,SAAS,oBAAoB;AAC3B,QAAM,SAAS,IAAI,gBAAgB,OAAO,SAAS,MAAM;AACzD,QAAM,QAAQ,OAAO,IAAI,OAAO;AAChC,QAAM,OAAO,OAAO,IAAI,MAAM;AAC9B,QAAM,QAAQ,OAAO,IAAI,OAAO;AAEhC,SAAO;AAAA,IACL,iBAAiB,CAAC,CAAC;AAAA,IACnB,gBAAgB,CAAC,CAAC,QAAQ,CAAC,CAAC;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,kBAAkB;AACzB,MAAI;AACF,WAAO,aAAa,QAAQ,eAAe;AAAA,EAC7C,SAAS,KAAP;AACA,WAAO;AAAA,EACT;AACF;AAEA,SAAS,uBAAuB;AAC9B,MAAI;AACF,WAAO,QAAQ,aAAa,CAAC,GAAG,IAAI,SAAS,QAAQ;AAAA,EACvD,SAAS,KAAP;AACA,YAAQ,MAAM,yCAAyC,KAAK;AAAA,EAC9D;AACF;AAKA,SAAS,yBAAyB,YAAoB;AACpD,QAAM,WAAW,OAAO,SAAS;AACjC,QAAM,SAAS,OAAO,SAAS;AAC/B,SAAO,eAAe,YAAY,eAAe,SAAS;AAC5D;AAEA,SAAe,eAAe,MAMW;AAAA;AACvC,UAAM,EAAE,MAAM,OAAO,MAAM,OAAO,aAAa,IAAI;AAEnD,QAAI,aAAa;AACjB,QAAI;AACF,UAAI,OAAO;AACT,cAAM,cAAc,KAAK,MAAM,KAAK;AACpC,qBAAa,YAAY;AAAA,MAC3B;AAAA,IACF,SAAS,KAAP;AACA,cAAQ,MAAM,8BAA8B,KAAK;AAAA,IACnD;AAEA,UAAM,SAAS,UAAM,mCAAkB;AAAA,MACrC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAED,QAAI,OAAO,OAAO;AAChB,cAAQ,IAAI,yCAAyC,OAAO,OAAO;AACnE,aAAO;AAAA,IACT;AAEA,iBAAa,QAAQ,eAAe,KAAK,GAAG,OAAO,KAAK;AAExD,QAAI,CAAC,yBAAyB,UAAU,GAAG;AACzC,aAAO,SAAS,OAAO,UAAU;AAAA,IACnC,OAAO;AACL,2BAAqB;AAAA,IACvB;AAEA,WAAO,EAAE,OAAO,OAAO,OAAO,MAAM,OAAO,KAAK;AAAA,EAClD;AAAA;AAEA,SAAe,uBAAuB,MAGT;AAAA;AAC3B,UAAM,EAAE,OAAO,KAAK,IAAI;AAExB,UAAM,QAAQ,aAAa,QAAQ,eAAe,KAAK,CAAC;AACxD,QAAI,CAAC,OAAO;AACV,aAAO,EAAE,MAAM,MAAM,OAAO,KAAK;AAAA,IACnC;AAEA,UAAM,EAAE,MAAM,MAAM,IAAI,UAAM,4CAA2B;AAAA,MACvD;AAAA,MACA;AAAA,IACF,CAAC;AAED,QAAI,OAAO;AAGT,mBAAa,WAAW,eAAe,KAAK,CAAC;AAC7C,cAAQ,IAAI,kCAAkC;AAC9C,aAAO,EAAE,MAAM,MAAM,OAAO,KAAK;AAAA,IACnC;AAEA,WAAO,EAAE,MAAM,MAAM;AAAA,EACvB;AAAA;AAKO,SAAS,eAAe,MAAyC;
|
|
4
|
+
"sourcesContent": ["export * from '@plasmicapp/auth-api';\nexport * from './hooks';\n", "import {\n getPlasmicAppUser,\n getPlasmicAppUserFromToken,\n PlasmicUser,\n} from \"@plasmicapp/auth-api\";\nimport { useMutablePlasmicQueryData } from \"@plasmicapp/query\";\n\ninterface PlasmicAuthData {\n user: PlasmicUser | null;\n token: string | null;\n}\n\nconst storageUserKey = (appId: string) => `$user.${appId}`;\n\nconst isBrowser = typeof window !== \"undefined\";\n\nfunction getCallbackParams() {\n const params = new URLSearchParams(window.location.search);\n const error = params.get(\"error\");\n const code = params.get(\"code\");\n const state = params.get(\"state\");\n\n return {\n isCallbackError: !!error,\n isCodeExchange: !!code && !!state,\n error,\n code,\n state,\n };\n}\n\nfunction getCodeVerifier() {\n try {\n return localStorage.getItem(\"code_verifier\");\n } catch (err) {\n return null;\n }\n}\n\nfunction removeCallbackParams() {\n try {\n window.history.replaceState({}, \"\", location.pathname);\n } catch (err) {\n console.error(`Error while removing callback params: ${err}`);\n }\n}\n\n// continueTo can be only a pathname or a full url with origin\n// we can consider that currently we are at the callback page\n// with callback params, so ignore the search params\nfunction isContinueToSameLocation(continueTo: string) {\n const pathname = window.location.pathname;\n const origin = window.location.origin;\n return continueTo === pathname || continueTo === origin + pathname;\n}\n\nasync function handleCallback(opts: {\n host?: string;\n appId: string;\n code: string;\n state: string;\n codeVerifier: string;\n}): Promise<PlasmicAuthData | undefined> {\n const { host, appId, code, state, codeVerifier } = opts;\n\n let continueTo = \"/\";\n try {\n if (state) {\n const parsedState = JSON.parse(state);\n continueTo = parsedState.continueTo;\n }\n } catch (err) {\n console.error(`Error while parsing state: ${err}`);\n }\n\n const result = await getPlasmicAppUser({\n host,\n appId,\n code,\n codeVerifier,\n });\n\n if (result.error) {\n console.log(`Error while performing code exchange: ${result.error}`);\n return undefined;\n }\n\n localStorage.setItem(storageUserKey(appId), result.token);\n\n if (!isContinueToSameLocation(continueTo)) {\n window.location.assign(continueTo);\n } else {\n removeCallbackParams();\n }\n\n return { token: result.token, user: result.user };\n}\n\nasync function checkAlreadyLoggedUser(opts: {\n appId: string;\n host?: string;\n}): Promise<PlasmicAuthData> {\n const { appId, host } = opts;\n\n const token = localStorage.getItem(storageUserKey(appId));\n if (!token) {\n return { user: null, token: null };\n }\n\n const { user, error } = await getPlasmicAppUserFromToken({\n host,\n token,\n });\n\n if (error) {\n // If there is an error, we just remove the token\n // But ideally we should check if the reason is token expired\n localStorage.removeItem(storageUserKey(appId));\n console.log(`Error while checking logged user`);\n return { user: null, token: null };\n }\n\n return { user, token };\n}\n\n/**\n * Handles the authentication flow for Plasmic Auth and returns the user and token\n */\nexport function usePlasmicAuth(opts: { host?: string; appId?: string }) {\n const { host, appId } = opts;\n const authKey = `$csq$plasmic-auth-${appId}`;\n const { data: userData, isLoading } = useMutablePlasmicQueryData(\n authKey,\n async (): Promise<PlasmicAuthData> => {\n if (!appId || !isBrowser) {\n return { user: null, token: null };\n }\n\n // Fail silently for now\n try {\n // We first check if we are currently in the callback flow\n const callbackParams = getCallbackParams();\n if (callbackParams.isCallbackError || callbackParams.isCodeExchange) {\n if (callbackParams.isCallbackError) {\n // If there is an error, we just remove the callback params\n removeCallbackParams();\n console.error(`Error: ${callbackParams.error}`);\n return { user: null, token: null };\n } else {\n const codeVerifier = getCodeVerifier();\n if (!codeVerifier) {\n // If there is no codeVerifier, we just remove the callback params\n removeCallbackParams();\n console.error(\"No code verifier found\");\n return { user: null, token: null };\n } else {\n // Perform code exchange, by the end of the callback handling we will either still be\n // in the callback page or we will be redirected to the continueTo page.\n\n const result = await handleCallback({\n host,\n appId,\n code: callbackParams.code!,\n state: callbackParams.state!,\n codeVerifier,\n });\n\n // Undefined result means that the code exchange failed\n if (!result) {\n removeCallbackParams();\n return { user: null, token: null };\n }\n\n // In the above case where the code exchange failed and the callback page requires login\n // a login redirect will be triggered\n return result;\n }\n }\n } else {\n return await checkAlreadyLoggedUser({\n appId,\n host,\n });\n }\n } catch (err) {\n console.error(`Error while handling auth: ${err}`);\n }\n\n return { user: null, token: null };\n }\n );\n\n return {\n user: userData?.user ?? null,\n token: userData?.token ?? null,\n isUserLoading: isLoading,\n };\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.0.
|
|
2
|
+
"version": "0.0.22",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"types": "./dist/index.d.ts",
|
|
5
5
|
"main": "./dist/index.js",
|
|
@@ -39,12 +39,12 @@
|
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@plasmicapp/auth-api": "0.0.17",
|
|
41
41
|
"@plasmicapp/isomorphic-unfetch": "1.0.3",
|
|
42
|
-
"@plasmicapp/query": "0.1.
|
|
42
|
+
"@plasmicapp/query": "0.1.79"
|
|
43
43
|
},
|
|
44
44
|
"publishConfig": {
|
|
45
45
|
"access": "public"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "ceaa65b07eecbbc65adfd49094bd166c0fcbd614",
|
|
48
48
|
"peerDependencies": {
|
|
49
49
|
"react": ">=16.8.0"
|
|
50
50
|
}
|