diff --git a/desktop/app/package.json b/desktop/app/package.json index 5dfd414c3..ab58d6d81 100644 --- a/desktop/app/package.json +++ b/desktop/app/package.json @@ -70,6 +70,7 @@ }, "devDependencies": { "@testing-library/react": "^10.0.2", + "mac-ca": "^1.0.4", "metro": "^0.59.0", "pretty-format": "^25.4.0", "react-refresh": "^0.8.1", diff --git a/desktop/app/src/init.tsx b/desktop/app/src/init.tsx index bcf59d67d..5c9fc329c 100644 --- a/desktop/app/src/init.tsx +++ b/desktop/app/src/init.tsx @@ -33,6 +33,16 @@ import {registerRecordingHooks} from './utils/pluginStateRecorder'; import {cache} from 'emotion'; import {CacheProvider} from '@emotion/core'; import {enableMapSet} from 'immer'; +import os from 'os'; + +if (process.env.NODE_ENV === 'development' && os.platform() === 'darwin') { + // By default Node.JS has its internal certificate storage and doesn't use + // the system store. Because of this, it's impossible to access ondemand / devserver + // which are signed using some internal self-issued FB certificates. These certificates + // are automatically installed to MacOS system store on FB machines, so here we're using + // this "mac-ca" library to load them into Node.JS. + global.electronRequire('mac-ca'); +} const logger = initLogger(store); diff --git a/desktop/yarn.lock b/desktop/yarn.lock index 6846ee5c8..be8ca45d4 100644 --- a/desktop/yarn.lock +++ b/desktop/yarn.lock @@ -8812,6 +8812,13 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +mac-ca@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mac-ca/-/mac-ca-1.0.4.tgz#4c8ae50f003dec4bc63f4688791f9321ff84e5f5" + integrity sha512-6Yf4IKnH2Irv9nm2QjoQg7DcNY+wYygYeU2EM+xWmQ0M7cwboPv9O3U2eZ378KwAIWJUiVh5BC9QzmcqmTyrPw== + dependencies: + node-forge "^0.7.5" + make-dir@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" @@ -9443,7 +9450,7 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" -node-forge@^0.7.1: +node-forge@^0.7.1, node-forge@^0.7.5: version "0.7.6" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.6.tgz#fdf3b418aee1f94f0ef642cd63486c77ca9724ac" integrity sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==