diff --git a/package-lock.json b/package-lock.json index d835b385a86..e68fbfa8590 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30940,11 +30940,11 @@ }, "packages/chrome-extension": { "name": "@clerk/chrome-extension", - "version": "0.2.0-staging.1", + "version": "0.2.0-staging.2", "license": "MIT", "dependencies": { - "@clerk/clerk-js": "^4.35.0-staging.2", - "@clerk/clerk-react": "^4.14.1-staging.2" + "@clerk/clerk-js": "^4.35.0-staging.3", + "@clerk/clerk-react": "^4.14.1-staging.3" }, "devDependencies": { "@testing-library/dom": "^8.19.0", @@ -30973,11 +30973,11 @@ }, "packages/clerk-js": { "name": "@clerk/clerk-js", - "version": "4.35.0-staging.2", + "version": "4.35.0-staging.3", "license": "MIT", "dependencies": { "@clerk/localizations": "^1.9.1-staging.2", - "@clerk/shared": "^0.15.1-staging.2", + "@clerk/shared": "^0.15.1-staging.3", "@clerk/types": "^3.33.0-staging.2", "@emotion/cache": "11.10.5", "@emotion/react": "11.10.5", @@ -31066,11 +31066,11 @@ }, "packages/expo": { "name": "@clerk/clerk-expo", - "version": "0.14.2-staging.2", + "version": "0.14.2-staging.3", "license": "MIT", "dependencies": { - "@clerk/clerk-js": "^4.35.0-staging.2", - "@clerk/clerk-react": "^4.14.1-staging.2", + "@clerk/clerk-js": "^4.35.0-staging.3", + "@clerk/clerk-react": "^4.14.1-staging.3", "base-64": "1.0.0", "react-native-url-polyfill": "1.3.0" }, @@ -32299,11 +32299,11 @@ } }, "packages/gatsby-plugin-clerk": { - "version": "4.2.1-staging.3", + "version": "4.2.1-staging.4", "license": "MIT", "dependencies": { "@clerk/backend": "^0.16.0-staging.2", - "@clerk/clerk-react": "^4.14.1-staging.2", + "@clerk/clerk-react": "^4.14.1-staging.3", "@clerk/clerk-sdk-node": "^4.8.1-staging.3", "@clerk/types": "^3.33.0-staging.2", "cookie": "0.5.0", @@ -32347,11 +32347,11 @@ }, "packages/nextjs": { "name": "@clerk/nextjs", - "version": "4.14.0-staging.2", + "version": "4.14.0-staging.3", "license": "MIT", "dependencies": { "@clerk/backend": "^0.16.0-staging.2", - "@clerk/clerk-react": "^4.14.1-staging.2", + "@clerk/clerk-react": "^4.14.1-staging.3", "@clerk/clerk-sdk-node": "^4.8.1-staging.3", "@clerk/types": "^3.33.0-staging.2", "tslib": "2.4.1" @@ -33516,10 +33516,10 @@ }, "packages/react": { "name": "@clerk/clerk-react", - "version": "4.14.1-staging.2", + "version": "4.14.1-staging.3", "license": "MIT", "dependencies": { - "@clerk/shared": "^0.15.1-staging.2", + "@clerk/shared": "^0.15.1-staging.3", "@clerk/types": "^3.33.0-staging.2", "swr": "1.3.0", "tslib": "2.4.1" @@ -33552,12 +33552,12 @@ }, "packages/remix": { "name": "@clerk/remix", - "version": "2.5.0-staging.2", + "version": "2.5.0-staging.3", "license": "MIT", "dependencies": { "@clerk/backend": "^0.16.0-staging.2", - "@clerk/clerk-react": "^4.14.1-staging.2", - "@clerk/shared": "^0.15.1-staging.2", + "@clerk/clerk-react": "^4.14.1-staging.3", + "@clerk/shared": "^0.15.1-staging.3", "@clerk/types": "^3.33.0-staging.2", "cookie": "0.5.0", "tslib": "2.4.1" @@ -34762,7 +34762,7 @@ }, "packages/shared": { "name": "@clerk/shared", - "version": "0.15.1-staging.2", + "version": "0.15.1-staging.3", "license": "ISC", "devDependencies": { "@clerk/types": "^3.33.0-staging.2", @@ -36286,8 +36286,8 @@ "@clerk/chrome-extension": { "version": "file:packages/chrome-extension", "requires": { - "@clerk/clerk-js": "^4.35.0-staging.2", - "@clerk/clerk-react": "^4.14.1-staging.2", + "@clerk/clerk-js": "^4.35.0-staging.3", + "@clerk/clerk-react": "^4.14.1-staging.3", "@testing-library/dom": "^8.19.0", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", @@ -36314,8 +36314,8 @@ "@clerk/clerk-expo": { "version": "file:packages/expo", "requires": { - "@clerk/clerk-js": "^4.35.0-staging.2", - "@clerk/clerk-react": "^4.14.1-staging.2", + "@clerk/clerk-js": "^4.35.0-staging.3", + "@clerk/clerk-react": "^4.14.1-staging.3", "@clerk/types": "^3.33.0-staging.2", "@types/jest": "^27.4.0", "@types/node": "^16.11.55", @@ -37253,7 +37253,7 @@ "@babel/preset-react": "^7.12.5", "@babel/preset-typescript": "^7.12.1", "@clerk/localizations": "^1.9.1-staging.2", - "@clerk/shared": "^0.15.1-staging.2", + "@clerk/shared": "^0.15.1-staging.3", "@clerk/types": "^3.33.0-staging.2", "@emotion/cache": "11.10.5", "@emotion/jest": "^11.10.5", @@ -37297,7 +37297,7 @@ "@clerk/clerk-react": { "version": "file:packages/react", "requires": { - "@clerk/shared": "^0.15.1-staging.2", + "@clerk/shared": "^0.15.1-staging.3", "@clerk/types": "^3.33.0-staging.2", "@testing-library/dom": "^8.19.0", "@testing-library/jest-dom": "^5.16.5", @@ -38269,7 +38269,7 @@ "version": "file:packages/nextjs", "requires": { "@clerk/backend": "^0.16.0-staging.2", - "@clerk/clerk-react": "^4.14.1-staging.2", + "@clerk/clerk-react": "^4.14.1-staging.3", "@clerk/clerk-sdk-node": "^4.8.1-staging.3", "@clerk/types": "^3.33.0-staging.2", "@types/node": "^16.11.55", @@ -39184,8 +39184,8 @@ "version": "file:packages/remix", "requires": { "@clerk/backend": "^0.16.0-staging.2", - "@clerk/clerk-react": "^4.14.1-staging.2", - "@clerk/shared": "^0.15.1-staging.2", + "@clerk/clerk-react": "^4.14.1-staging.3", + "@clerk/shared": "^0.15.1-staging.3", "@clerk/types": "^3.33.0-staging.2", "@types/cookie": "^0.5.0", "@types/node": "^16.11.55", @@ -50011,7 +50011,7 @@ "version": "file:packages/gatsby-plugin-clerk", "requires": { "@clerk/backend": "^0.16.0-staging.2", - "@clerk/clerk-react": "^4.14.1-staging.2", + "@clerk/clerk-react": "^4.14.1-staging.3", "@clerk/clerk-sdk-node": "^4.8.1-staging.3", "@clerk/types": "^3.33.0-staging.2", "@types/cookie": "^0.5.0", diff --git a/packages/chrome-extension/CHANGELOG.md b/packages/chrome-extension/CHANGELOG.md new file mode 100644 index 00000000000..808a7516d68 --- /dev/null +++ b/packages/chrome-extension/CHANGELOG.md @@ -0,0 +1,8 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [0.2.0-staging.2](https://github.com/clerkinc/javascript/compare/@clerk/chrome-extension@0.2.0-staging.1...@clerk/chrome-extension@0.2.0-staging.2) (2023-03-31) + +**Note:** Version bump only for package @clerk/chrome-extension diff --git a/packages/chrome-extension/package.json b/packages/chrome-extension/package.json index b2fad8af82c..6d46238445c 100644 --- a/packages/chrome-extension/package.json +++ b/packages/chrome-extension/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/chrome-extension", - "version": "0.2.0-staging.1", + "version": "0.2.0-staging.2", "license": "MIT", "description": "Clerk SDK for Chrome extensions", "keywords": [ @@ -28,8 +28,8 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@clerk/clerk-js": "^4.35.0-staging.2", - "@clerk/clerk-react": "^4.14.1-staging.2" + "@clerk/clerk-js": "^4.35.0-staging.3", + "@clerk/clerk-react": "^4.14.1-staging.3" }, "devDependencies": { "@testing-library/dom": "^8.19.0", diff --git a/packages/clerk-js/CHANGELOG.md b/packages/clerk-js/CHANGELOG.md index 1c2fa2fc391..65c660164a1 100644 --- a/packages/clerk-js/CHANGELOG.md +++ b/packages/clerk-js/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.35.0-staging.3](https://github.com/clerkinc/javascript/compare/@clerk/clerk-js@4.35.0-staging.2...@clerk/clerk-js@4.35.0-staging.3) (2023-03-31) + +### Bug Fixes + +- **clerk-js:** Run multidomain getters only in browser ([ad10705](https://github.com/clerkinc/javascript/commit/ad1070506d1b529e6b19483234e5137c539b353c)) + ### [4.34.1](https://github.com/clerkinc/javascript/compare/@clerk/clerk-js@4.34.1-staging.0...@clerk/clerk-js@4.34.1) (2023-03-29) **Note:** Version bump only for package @clerk/clerk-js diff --git a/packages/clerk-js/package.json b/packages/clerk-js/package.json index ac9d7200339..501af2ecaa0 100644 --- a/packages/clerk-js/package.json +++ b/packages/clerk-js/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/clerk-js", - "version": "4.35.0-staging.2", + "version": "4.35.0-staging.3", "license": "MIT", "description": "Clerk JS library", "keywords": [ @@ -42,7 +42,7 @@ }, "dependencies": { "@clerk/localizations": "^1.9.1-staging.2", - "@clerk/shared": "^0.15.1-staging.2", + "@clerk/shared": "^0.15.1-staging.3", "@clerk/types": "^3.33.0-staging.2", "@emotion/cache": "11.10.5", "@emotion/react": "11.10.5", diff --git a/packages/clerk-js/src/core/clerk.ts b/packages/clerk-js/src/core/clerk.ts index 1397d73975b..5b57fc47453 100644 --- a/packages/clerk-js/src/core/clerk.ts +++ b/packages/clerk-js/src/core/clerk.ts @@ -156,15 +156,21 @@ export default class Clerk implements ClerkInterface { } get isSatellite(): boolean { - return handleValueOrFn(this.#options.isSatellite, new URL(window.location.href), false); + if (inBrowser()) { + return handleValueOrFn(this.#options.isSatellite, new URL(window.location.href), false); + } + return false; } get domain(): string { - const strippedDomainString = stripScheme(handleValueOrFn(this.#domain, new URL(window.location.href))); - if (this.#instanceType === 'production') { - return addClerkPrefix(strippedDomainString); + if (inBrowser()) { + const strippedDomainString = stripScheme(handleValueOrFn(this.#domain, new URL(window.location.href))); + if (this.#instanceType === 'production') { + return addClerkPrefix(strippedDomainString); + } + return strippedDomainString; } - return strippedDomainString; + return ''; } get instanceType() { @@ -581,7 +587,7 @@ export default class Clerk implements ClerkInterface { }; public navigate = async (to: string | undefined): Promise => { - if (!to) { + if (!to || !inBrowser()) { return; } diff --git a/packages/expo/CHANGELOG.md b/packages/expo/CHANGELOG.md index 47d5b9822ea..b3d7f85c034 100644 --- a/packages/expo/CHANGELOG.md +++ b/packages/expo/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [0.14.2-staging.3](https://github.com/clerkinc/javascript/compare/@clerk/clerk-expo@0.14.2-staging.2...@clerk/clerk-expo@0.14.2-staging.3) (2023-03-31) + +**Note:** Version bump only for package @clerk/clerk-expo + ### [0.14.1](https://github.com/clerkinc/javascript/compare/@clerk/clerk-expo@0.14.1-staging.0...@clerk/clerk-expo@0.14.1) (2023-03-29) **Note:** Version bump only for package @clerk/clerk-expo diff --git a/packages/expo/package.json b/packages/expo/package.json index eb4f8bd241e..8f1a645d0f7 100644 --- a/packages/expo/package.json +++ b/packages/expo/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/clerk-expo", - "version": "0.14.2-staging.2", + "version": "0.14.2-staging.3", "license": "MIT", "description": "Clerk React Native/Expo library", "keywords": [ @@ -27,8 +27,8 @@ "lint": "eslint ." }, "dependencies": { - "@clerk/clerk-js": "^4.35.0-staging.2", - "@clerk/clerk-react": "^4.14.1-staging.2", + "@clerk/clerk-js": "^4.35.0-staging.3", + "@clerk/clerk-react": "^4.14.1-staging.3", "base-64": "1.0.0", "react-native-url-polyfill": "1.3.0" }, diff --git a/packages/gatsby-plugin-clerk/CHANGELOG.md b/packages/gatsby-plugin-clerk/CHANGELOG.md index 21aaeb0755a..b99caa0b0b7 100644 --- a/packages/gatsby-plugin-clerk/CHANGELOG.md +++ b/packages/gatsby-plugin-clerk/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [4.2.1-staging.4](https://github.com/clerkinc/javascript/compare/gatsby-plugin-clerk@4.2.1-staging.3...gatsby-plugin-clerk@4.2.1-staging.4) (2023-03-31) + +**Note:** Version bump only for package gatsby-plugin-clerk + ### [4.2.1-staging.1](https://github.com/clerkinc/javascript/compare/gatsby-plugin-clerk@4.2.1-staging.0...gatsby-plugin-clerk@4.2.1-staging.1) (2023-03-31) **Note:** Version bump only for package gatsby-plugin-clerk diff --git a/packages/gatsby-plugin-clerk/package.json b/packages/gatsby-plugin-clerk/package.json index d73864c4d93..f3619614929 100644 --- a/packages/gatsby-plugin-clerk/package.json +++ b/packages/gatsby-plugin-clerk/package.json @@ -1,6 +1,6 @@ { "name": "gatsby-plugin-clerk", - "version": "4.2.1-staging.3", + "version": "4.2.1-staging.4", "license": "MIT", "description": "Clerk SDK for Gatsby", "keywords": [ @@ -34,7 +34,7 @@ }, "dependencies": { "@clerk/backend": "^0.16.0-staging.2", - "@clerk/clerk-react": "^4.14.1-staging.2", + "@clerk/clerk-react": "^4.14.1-staging.3", "@clerk/clerk-sdk-node": "^4.8.1-staging.3", "@clerk/types": "^3.33.0-staging.2", "cookie": "0.5.0", diff --git a/packages/nextjs/CHANGELOG.md b/packages/nextjs/CHANGELOG.md index d81758668c2..b836a93c83d 100644 --- a/packages/nextjs/CHANGELOG.md +++ b/packages/nextjs/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.14.0-staging.3](https://github.com/clerkinc/javascript/compare/@clerk/nextjs@4.14.0-staging.2...@clerk/nextjs@4.14.0-staging.3) (2023-03-31) + +**Note:** Version bump only for package @clerk/nextjs + ## [4.14.0-staging.0](https://github.com/clerkinc/javascript/compare/@clerk/nextjs@4.13.1-staging.0...@clerk/nextjs@4.14.0-staging.0) (2023-03-31) ### Features diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json index 7a35cf41d4d..3f148888479 100644 --- a/packages/nextjs/package.json +++ b/packages/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/nextjs", - "version": "4.14.0-staging.2", + "version": "4.14.0-staging.3", "license": "MIT", "description": "Clerk SDK for NextJS", "keywords": [ @@ -38,7 +38,7 @@ }, "dependencies": { "@clerk/backend": "^0.16.0-staging.2", - "@clerk/clerk-react": "^4.14.1-staging.2", + "@clerk/clerk-react": "^4.14.1-staging.3", "@clerk/clerk-sdk-node": "^4.8.1-staging.3", "@clerk/types": "^3.33.0-staging.2", "tslib": "2.4.1" diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index d17b85dd5d5..788e5179b76 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [4.14.1-staging.3](https://github.com/clerkinc/javascript/compare/@clerk/clerk-react@4.14.1-staging.2...@clerk/clerk-react@4.14.1-staging.3) (2023-03-31) + +### Bug Fixes + +- **clerk-react:** Check for window in isomorphicClerk ([fe82852](https://github.com/clerkinc/javascript/commit/fe828523c2bbdc2f3fc35ad5e30aea52b5438922)) + ## [4.14.0](https://github.com/clerkinc/javascript/compare/@clerk/clerk-react@4.14.0-staging.1...@clerk/clerk-react@4.14.0) (2023-03-29) **Note:** Version bump only for package @clerk/clerk-react diff --git a/packages/react/package.json b/packages/react/package.json index ed6934648eb..2645c84e0cd 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/clerk-react", - "version": "4.14.1-staging.2", + "version": "4.14.1-staging.3", "license": "MIT", "description": "Clerk React library", "keywords": [ @@ -29,7 +29,7 @@ "test": "jest" }, "dependencies": { - "@clerk/shared": "^0.15.1-staging.2", + "@clerk/shared": "^0.15.1-staging.3", "@clerk/types": "^3.33.0-staging.2", "swr": "1.3.0", "tslib": "2.4.1" diff --git a/packages/react/src/info.ts b/packages/react/src/info.ts index f31284f0709..6f367c442df 100644 --- a/packages/react/src/info.ts +++ b/packages/react/src/info.ts @@ -1,3 +1,3 @@ /** DO NOT EDIT: This file is automatically generated by ../scripts/info.js */ -export const LIB_VERSION = '4.14.1-staging.2'; +export const LIB_VERSION = '4.14.1-staging.3'; export const LIB_NAME = '@clerk/clerk-react'; diff --git a/packages/react/src/isomorphicClerk.ts b/packages/react/src/isomorphicClerk.ts index 3ba2d89f6c4..16ca483f07d 100644 --- a/packages/react/src/isomorphicClerk.ts +++ b/packages/react/src/isomorphicClerk.ts @@ -94,13 +94,13 @@ export default class IsomorphicClerk { get domain(): string { // This getter can run in environments where window is not available. // In those cases we should expect and use domain as a string - if (!inClientSide()) { - if (typeof this.#domain === 'function') { - throw new Error(unsupportedNonBrowserDomainFunction); - } - return this.#domain || ''; + if (typeof window !== 'undefined' && window.location) { + return handleValueOrFn(this.#domain, new URL(window.location.href), ''); + } + if (typeof this.#domain === 'function') { + throw new Error(unsupportedNonBrowserDomainFunction); } - return handleValueOrFn(this.#domain, new URL(window.location.href), ''); + return this.#domain || ''; } constructor(options: IsomorphicClerkOptions) { @@ -130,10 +130,12 @@ export default class IsomorphicClerk { // For more information refer to: // - https://github.com/remix-run/remix/issues/2947 // - https://github.com/facebook/react/issues/24430 - window.__clerk_frontend_api = this.frontendApi; - window.__clerk_publishable_key = this.publishableKey; - window.__clerk_proxy_url = this.proxyUrl; - window.__clerk_domain = this.domain; + if (typeof window !== 'undefined') { + window.__clerk_frontend_api = this.frontendApi; + window.__clerk_publishable_key = this.publishableKey; + window.__clerk_proxy_url = this.proxyUrl; + window.__clerk_domain = this.domain; + } try { if (this.Clerk) { diff --git a/packages/remix/CHANGELOG.md b/packages/remix/CHANGELOG.md index ea773f9b632..e1e32581134 100644 --- a/packages/remix/CHANGELOG.md +++ b/packages/remix/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.5.0-staging.3](https://github.com/clerkinc/javascript/compare/@clerk/remix@2.5.0-staging.2...@clerk/remix@2.5.0-staging.3) (2023-03-31) + +**Note:** Version bump only for package @clerk/remix + ## [2.5.0-staging.0](https://github.com/clerkinc/javascript/compare/@clerk/remix@2.4.1-staging.0...@clerk/remix@2.5.0-staging.0) (2023-03-31) ### Features diff --git a/packages/remix/package.json b/packages/remix/package.json index 6b5b37d5a04..7bd91a49439 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/remix", - "version": "2.5.0-staging.2", + "version": "2.5.0-staging.3", "license": "MIT", "description": "Clerk SDK for Remix", "keywords": [ @@ -32,8 +32,8 @@ }, "dependencies": { "@clerk/backend": "^0.16.0-staging.2", - "@clerk/clerk-react": "^4.14.1-staging.2", - "@clerk/shared": "^0.15.1-staging.2", + "@clerk/clerk-react": "^4.14.1-staging.3", + "@clerk/shared": "^0.15.1-staging.3", "@clerk/types": "^3.33.0-staging.2", "cookie": "0.5.0", "tslib": "2.4.1" diff --git a/packages/shared/CHANGELOG.md b/packages/shared/CHANGELOG.md index f99d4643072..0dbc78d1eda 100644 --- a/packages/shared/CHANGELOG.md +++ b/packages/shared/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [0.15.1-staging.3](https://github.com/clerkinc/clerk_docker/compare/@clerk/shared@0.15.1-staging.2...@clerk/shared@0.15.1-staging.3) (2023-03-31) + +### Bug Fixes + +- **shared:** Check if in clientSide only via window ([bef819e](https://github.com/clerkinc/clerk_docker/commit/bef819e7596337a96f073bb130fbc14244975d8c)) + ## [0.15.0](https://github.com/clerkinc/clerk_docker/compare/@clerk/shared@0.15.0-staging.0...@clerk/shared@0.15.0) (2023-03-29) **Note:** Version bump only for package @clerk/shared diff --git a/packages/shared/package.json b/packages/shared/package.json index e878c26d154..70eefa9fd82 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/shared", - "version": "0.15.1-staging.2", + "version": "0.15.1-staging.3", "description": "Internal package utils used by the Clerk SDKs", "types": "./dist/types/index.d.ts", "main": "./dist/index.js", diff --git a/packages/shared/src/utils/ssr.ts b/packages/shared/src/utils/ssr.ts index 7619b0063f5..e0ede1979d2 100644 --- a/packages/shared/src/utils/ssr.ts +++ b/packages/shared/src/utils/ssr.ts @@ -1,3 +1,3 @@ export const inClientSide = (): boolean => { - return typeof window !== 'undefined' && typeof document !== 'undefined'; + return typeof window !== 'undefined'; };