Giter VIP home page Giter VIP logo

finos / symphonyelectron Goto Github PK

View Code? Open in Web Editor NEW
80.0 12.0 103.0 98.65 MB

A desktop client for the Symphony Collaboration Platform built using Electron

Home Page: https://symphony.com

License: Apache License 2.0

JavaScript 0.46% HTML 3.59% Shell 1.34% CSS 0.43% Batchfile 2.26% TypeScript 57.68% Dockerfile 0.05% C# 29.35% VBScript 0.01% PowerShell 0.01% Smalltalk 0.53% ASP.NET 0.06% Less 3.73% NSIS 0.52%
symphony wrapper electron nodejs javascript fintech finos desktop-app windows macos

symphonyelectron's Introduction

FINOS - Active OpenSSF Best Practices Continuous Integration Known Vulnerabilities

SymphonyElectron

About:

SymphonyElectron is a desktop client of the Symphony Communication Platform built for macOS, Windows 10, Windows 7 and Linux (experimental) . We've built this using the popular electron framework to support cross platform desktop apps loaded in a chromium container.

Contributing

  1. Fork it (https://github.com/symphonyoss/SymphonyElectron/fork)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Read our contribution guidelines and Community Code of Conduct
  4. Commit your changes (git commit -am 'Add some fooBar')
  5. Push to the branch (git push origin feature/fooBar)
  6. Create a new Pull Request

NOTE: Commits and pull requests to FINOS repositories will only be accepted from those contributors with an active, executed Individual Contributor License Agreement (ICLA) with FINOS OR who are covered under an existing and active Corporate Contribution License Agreement (CCLA) executed with FINOS. Commits from individuals not covered under an ICLA or CCLA will be flagged and blocked by the FINOS Clabot tool. Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.

Need an ICLA? Unsure if you are covered under an existing CCLA? Email [email protected]

Project Goals:

Our goal is to improve the performance and development agility of Symphony's desktop wrapper and build a path to support other wrappers by:

  1. Standardizing the JS to native interfaces
  2. Standardizing the app to app interfaces (current embedding API)
  3. Provide an open and free reference implementation that anyone can contribute to, modify, and make derivative works.

In order to achieve those goals Symphony is participating and working in close collaboration with the Foundation Desktop Wrapper Working Group

Development Setup & Running

Read Dev Setup

License

The code in this repository is distributed under the Apache License, Version 2.0.

Copyright 2021 Symphony LLC

symphonyelectron's People

Contributors

agitana avatar axeleriksson147 avatar bachlefpt avatar baphony avatar bryanatsymphony avatar danielgronberg avatar eliseschravendeel avatar infotexture avatar johankwarnmarksymphony avatar keerthi16 avatar kiranniranjan avatar maoo avatar mattias-symphony avatar mmaio-symphony avatar nguyentranhoangsym avatar psjostrom avatar renovate[bot] avatar rwestberg avatar sasha-symphony avatar sbenmoussati avatar sergey-su avatar serkanmulayim avatar snyk-bot avatar swasunb avatar symphony-crowdin avatar thaisym1912 avatar tranducanh avatar vantruongt2 avatar vikasshashidhar avatar vishwasshashidhar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

symphonyelectron's Issues

Build is failing on macOS Sierra

As of rev c4fb2ff, the build is failing on macOS Sierra with numerous copies of the Electron GUI app started, and all displaying the following dialog box:

image

Environment
macOS Sierra v10.12.5
npm v5.0.4
node.js v8.1.3

Packaged dist incorrectly detecting network state

Describe the bug
Cloned the most recent repository (1.55.3 version) and compiled and ran it as dev. This all worked quite well after I modified the configuration to point to a company SSO instance of the Symphony services. I then ran unpackaged-mac to create a distro of the executable - it also seemed to build - but in running that distro standalone I am getting an error after it shows me the splash screen indicating an SSO login to my corp instance of Symphony. I imagine as a result reproduction is going to involve me directly helping someone because the steps to reproduce are likely specific to the networking environment that I am involved in.

Expected behavior
I expected that the dist version would run exactly like the dev local version of the build did. The dev running in a shell works perfectly - the dist version of the same config fails.

Screenshots
1 and 2 are from an npm run dev on the command line. #3 is what occurs in the dist version of the application.

Desktop (please complete the following information):

  • OS: MacOS Mojave (10.14.5)
  • App Version 1.55.3

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • Replace dependency npm-run-all with npm-run-all2 5.0.0
  • Update kentaro-m/auto-assign-action digest to d3b7e98
  • Update dependency @types/lazy-brush to v1.0.3
  • Update dependency adm-zip to v0.5.12
  • Update dependency electron-builder to v24.13.3
  • Update dependency electron-dl to v3.5.2
  • Update dependency enzyme-adapter-react-16 to v1.15.8
  • Update dependency enzyme-to-json to v3.6.2
  • Update dependency gulp-replace to v1.1.4
  • Update dependency prettier to v2.8.8
  • Update dependency winreg to v1.2.5
  • Update dependency @types/node to v18.19.33
  • Update dependency electron to v29.4.1
  • Update dependency electron-updater to v6.2.1
  • Update dependency filesize to v10.1.2
  • Update dependency jest-html-reporter to v3.10.2
  • Update dependency node-abi to v3.62.0
  • Update dependency pretty-quick to v3.3.1
  • Update dependency rimraf to v4.4.1
  • Update dependency systeminformation to v5.22.9
  • Update actions/checkout action to v4
  • Update actions/setup-node action to v4
  • Update actions/stale action to v9
  • Update dependency electron to v30
  • Update dependency electron-dl to v4
  • Update dependency electron-log to v5
  • Update dependency gulp to v5
  • Update dependency gulp-template to v6
  • Update dependency husky to v9
  • Update dependency lazy-brush to v2
  • Update dependency less to v4
  • Update dependency node to v20 (node, @types/node)
  • Update dependency prettier to v3
  • Update dependency pretty-quick to v4
  • Update dependency rimraf to v5
  • Update dependency tslint to v6
  • Update dependency typescript to v5
  • Update jest monorepo to v29 (major) (@types/jest, jest, ts-jest)
  • Update react monorepo to v18 (major) (@types/react, @types/react-dom, react, react-dom)
  • 🔐 Create all rate-limited PRs at once 🔐

Warning

Renovate failed to look up the following dependencies: Failed to look up npm package @symphony/symphony-c9-shell.

Files affected: package.json


Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

dockerfile
Dockerfile
github-actions
.github/workflows/assign.yml
  • kentaro-m/auto-assign-action 3e986bf9c274729de0d85191da42484917883328
.github/workflows/ci.yml
  • actions/checkout v3
  • actions/setup-node v3
.github/workflows/cve-scanning-node.yml
  • actions/checkout v3
  • actions/setup-node v3
.github/workflows/semgrep.yml
  • actions/checkout v3
.github/workflows/stale.yml
  • actions/stale v7
npm
package.json
  • @types/lazy-brush ^1.0.0
  • adm-zip ^0.5.10
  • async.map 0.5.2
  • classnames 2.2.6
  • electron-dl 3.5.0
  • electron-fetch 1.9.1
  • electron-log 4.4.8
  • electron-updater ^6.1.9
  • filesize ^10.0.6
  • lazy-brush ^1.0.1
  • lodash.debounce ^4.0.8
  • react 16.14.0
  • react-dom 16.14.0
  • rimraf ^4.3.1
  • save-svg-as-png ^1.4.17
  • shell-path ^3.0.0
  • systeminformation 5.21.7
  • @types/cheerio ^0.22.22
  • @types/enzyme ^3.10.7
  • @types/fs-extra ^9.0.0
  • @types/jest 23.3.12
  • @types/node ^18.16.0
  • @types/react 16.14.34
  • @types/react-dom 16.9.17
  • browserify 17.0.0
  • builder-util-runtime ^9.0.3
  • cross-env 7.0.3
  • del 3.0.0
  • electron 29.3.1
  • electron-builder ^24.13.2
  • electron-devtools-installer ^3.2.0
  • electron-icon-maker 0.0.5
  • electron-osx-sign ^0.6.0
  • enzyme ^3.11.0
  • enzyme-adapter-react-16 ^1.10.0
  • enzyme-to-json ^3.3.5
  • gulp 4.0.2
  • gulp-less 5.0.0
  • gulp-rename ^2.0.0
  • gulp-replace ^1.1.3
  • gulp-sourcemaps 2.6.5
  • gulp-tap ^2.0.0
  • gulp-template ^5.0.0
  • gulp-typescript 5.0.1
  • husky ^4.3.8
  • imgurify ^2.0.1
  • jest 25.2.4
  • jest-html-reporter 3.7.0
  • js-yaml ^4.1.0
  • less ^3.13.1
  • ncp 2.0.0
  • node-abi ^3.8.0
  • npm-run-all 4.1.5
  • prettier 2.8.4
  • pretty-quick ^3.1.0
  • run-script-os ^1.1.6
  • source-map ^0.7.4
  • ts-jest 25.3.0
  • tslint 5.20.1
  • tslint-config-prettier ^1.18.0
  • typescript ^4.9.5
  • @symphony/symphony-c9-shell 3.30.0-37.176
  • screen-share-indicator-frame v1.4.13
  • screen-snippet 9.2.2
  • symphony-native-window-handle-helper 1.0.1
  • winreg ^1.2.4
nvm
.nvmrc
  • node v18.16.0

  • Check this box to trigger a request for Renovate to run again on this repository

Broader gitignore support

We should add a broader support for gitignore to ignore files generated by the following components

Node, VisualStudio, Eclipse, Jetbrains, Linux, Netbeans, SublimeText, TextMate, Vim, Windows, macOS, VisualStudioCode.

The updated file will be as attached.
gitignore-updated.txt

Can't build/install/configure multiple copies of the client

Currently it's difficult and/or impossible to build / install / configure multiple separately installable copies of the client, for different pods. While the earlier dmg distribution allowed this (albeit with some build hackery), the pkg distribution does not appear to support the same capabilities (albeit I've only spent about an hour attempting to hack this up).

This is an issue for anyone who wishes to have different copies of the client installed simultaneously for different pods, which is typical for both Foundation members (who will typically have access to the ODP as well as their production pod) and Symphony's enterprise customers (who have a test pod and a production pod).

ANNOUNCEMENT: Changed the main branch name

Hello contributor, if you are actively contributing to this repository, please note that we have now changed the main branch name from master to main as part of this requirement -> https://perzoinc.atlassian.net/browse/SDA-2530

So, you'll need to update your fork and local repository with the below set of commands:

git branch -m master main
git fetch --all
git branch -u origin/main main
git branch -u upstream/main main

Please reach out if you need any help.

Note that the 3rd and 4th commands do the same, except that they point to different remotes.

In my case, origin points to https://github.com/VishwasShashidhar/SymphonyElectron.git and upstream points to https://github.com/symphonyoss/SymphonyElectron.git

So, you'll need to replace the remote name as per your local repository setting.

--url not taken into account

Describe the bug

The --url=https://local-dev.symphony.com:9090/ is not taken into account:

If I revert this commit:
df14fa1 SDA-3901 (Add new implementation for welcome screen) (#1519)
It works as expected.

window.location.href gives:
'file:///C:/Users/.../SymphonyElectron/lib/src/renderer/react-window.html?componentName=welcome&locale=fr-FR&title=Bienvenue'
It should be 'https://local-dev.symphony.com:9090/' instead.

To Reproduce

SymphonyElectron> npm run dev -- --url=https://local-dev.symphony.com:9090/

That's the exact command I am using on Windows 10 in Powershell:

SymphonyElectron> npm run dev --- --url=https://local-dev.symphony.com:9090/ --c9pipe=testpipe

Expected behavior

It should display the login page of pod target by the --url parameter (either local, st3...).

window.location.href => 'https://local-dev.symphony.com:9090/'

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Windows 10
  • App Version
    POD: local-dev.symphony.com
    SBE: 2.0.1 (0)
    SDA: 20.0.0 (0)
    SFE: 0

Command + Q on Mac should behave like Chrome

I always accidentally press Command + Q when I want to switch tabs closing Symphony. On Chrome a prompt shows up instead "Hold Command + Q to quit". If I press it again, it will close straight away. If I hold Command + Q it will also close the browser.

@sasha-symphony

Build instructions have stopped working (MacOSX)

The build instructions in the README worked just fine last time a tried it (a week or so ago), but seem to have stopped working recently.

Steps to reproduce:

  1. Clone source locally
  2. Switch to directory
  3. Run: npm install (succeeds)
  4. Run npm run dist-mac

Expected result:
DMG file is built.

Actual result:

$ npm run dist-mac
npm ERR! missing script: dist-mac

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/pmonks/.npm/_logs/2017-06-09T21_54_26_796Z-debug.log

Environmental information:

$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.12.5
BuildVersion:	16F73
$ uname -a
Darwin mthay.local 16.6.0 Darwin Kernel Version 16.6.0: Fri Apr 14 16:21:16 PDT 2017; root:xnu-3789.60.24~6/RELEASE_X86_64 x86_64
$ node --version
v8.1.0

NOTICE file non-compliant

The NOTICE file doesn't conform to the Foundation's contribution policy. It should be in this form:

Copyright [XXXX-XXXX] [Copyright holder 1 - name and email]
Copyright [XXXX-XXXX] [Copyright holder 2 - name and email]
...
Copyright [XXXX-XXXX] [Copyright holder N - name and email]
 
This product includes software developed at the Symphony Software Foundation (http://symphony.foundation).

It should include copyright notices for every contributor. In this case, perhaps that's only Symphony LLC?

[FINOS_PROJECT_BLUEPRINT] - Fixes to apply

NOTE! This issue was automatically generated by a FINOS GitHub Action.

We have found some repository configurations that should be changed in order to comply with FINOS Governance and bylaws, see the details below.

List of fixes:

  • no-badge - README.md file is missing the FINOS badge; check the README.md template and make sure that it embeds one of SVG FINOS badges.
  • has-user - One or more user collaborators were found in this GitHub repository. FINOS Governance only allows GitHub users to be added via Teams. Please remove it, therefore it must be removed.
  • no-code-conduct - CODE_OF_CONDUCT.md file is missing; check the CODE_OF_CONDUCT.md template.
  • no-whitesource - WhiteSource configuration was not found; make sure that dependencies are scanned against security vulnerabilities. Read more on the WhiteSource Wiki page.

This is a message generated by the FINOS project compliance scanning action.

For any question, do not hesitate to contact @maoo and @mcleo-d or email [email protected]. Thank you!

Build not working on Mac

The build (specifically npm install) is failing as of rev f4ff287. Here's a typescript:

bash-3.2$ rm -rf ./node_modules/
bash-3.2$ npm install

> @paulcbetts/[email protected] install /Users/pmonks/Development/symphony/SymphonyElectron/node_modules/@paulcbetts/spellchecker
> node-gyp rebuild

  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/base/md5.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/base/strings/string_piece.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/google/bdict_reader.o
../vendor/hunspell/src/google/bdict_reader.cc:670:15: warning: unused variable
      'begin' [-Wunused-variable]
  const char* begin = reinterpret_cast<const char*>(&bdict_data_[cur_offset_]);
              ^
1 warning generated.
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/google/bdict.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/affentry.o
In file included from ../vendor/hunspell/src/hunspell/affentry.cxx:9:
../vendor/hunspell/src/hunspell/affentry.hxx:30:105: warning: implicit
      conversion of NULL constant to 'unsigned short' [-Wnull-conversion]
  ...char * word, int len, char in_compound, const FLAG needflag = NULL);
                                                                 ~ ^~~~
                                                                   0
../vendor/hunspell/src/hunspell/affentry.hxx:93:114: warning: implicit
      conversion of NULL constant to 'unsigned short' [-Wnull-conversion]
  ...int len, int optflags, PfxEntry* ppfx, const FLAG needflag = NULL);
                                                                ~ ^~~~
                                                                  0
../vendor/hunspell/src/hunspell/affentry.cxx:546:57: warning: while loop has
      empty body [-Wempty-body]
                        while (p && *p != ']' && ((p = nextchar(p)) != NULL));
                                                                             ^
../vendor/hunspell/src/hunspell/affentry.cxx:546:57: note: put the semicolon on
      a separate line to silence this warning
3 warnings generated.
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/affixmgr.o
In file included from ../vendor/hunspell/src/hunspell/affixmgr.cxx:12:
../vendor/hunspell/src/hunspell/affentry.hxx:30:105: warning: implicit
      conversion of NULL constant to 'unsigned short' [-Wnull-conversion]
  ...char * word, int len, char in_compound, const FLAG needflag = NULL);
                                                                 ~ ^~~~
                                                                   0
../vendor/hunspell/src/hunspell/affentry.hxx:93:114: warning: implicit
      conversion of NULL constant to 'unsigned short' [-Wnull-conversion]
  ...int len, int optflags, PfxEntry* ppfx, const FLAG needflag = NULL);
                                                                ~ ^~~~
                                                                  0
2 warnings generated.
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/csutil.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/dictmgr.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/filemgr.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/hashmgr.o
In file included from ../vendor/hunspell/src/hunspell/hashmgr.cxx:9:
../vendor/hunspell/src/hunspell/hashmgr.hxx:32:21: warning: private field
      'userword' is not used [-Wunused-private-field]
  int               userword;
                    ^
1 warning generated.
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/hunspell.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/hunzip.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/phonet.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/replist.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/hunspell/suggestmgr.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/parsers/textparser.o
  CXX(target) Release/obj.target/hunspell/vendor/hunspell/src/base/strings/string16.o
  LIBTOOL-STATIC Release/hunspell.a
  CXX(target) Release/obj.target/spellchecker/src/main.o
  CXX(target) Release/obj.target/spellchecker/src/spellchecker_hunspell.o
  CXX(target) Release/obj.target/spellchecker/src/spellchecker_mac.o
  CXX(target) Release/obj.target/spellchecker/src/transcoder_posix.o
  SOLINK_MODULE(target) Release/spellchecker.node
ld: warning: directory not found for option '-L/usr/local/lib�/usr/local/lib'

> [email protected] install /Users/pmonks/Development/symphony/SymphonyElectron/node_modules/keyboard-layout
> node-gyp rebuild

  CXX(target) Release/obj.target/keyboard-layout-manager/src/keyboard-layout-manager-mac.o
  SOLINK_MODULE(target) Release/keyboard-layout-manager.node
ld: warning: directory not found for option '-L/usr/local/lib�/usr/local/lib'

> [email protected] install /Users/pmonks/Development/symphony/SymphonyElectron/node_modules/ref
> node-gyp rebuild

  CXX(target) Release/obj.target/binding/src/binding.o
../src/binding.cc:643:8: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  Nan::ForceSet(target, Nan::New<v8::String>("endianness").ToLocalChecke...
       ^
../../nan/nan_maybe_43_inl.h:116:1: note: 'ForceSet' has been explicitly marked
      deprecated here
NAN_DEPRECATED inline Maybe<bool> ForceSet(
^
../../nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/binding.cc:644:8: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  Nan::ForceSet(target, Nan::New<v8::String>("NULL").ToLocalChecked(), W...
       ^
../../nan/nan_maybe_43_inl.h:116:1: note: 'ForceSet' has been explicitly marked
      deprecated here
NAN_DEPRECATED inline Maybe<bool> ForceSet(
^
../../nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
2 warnings generated.
  SOLINK_MODULE(target) Release/binding.node
ld: warning: directory not found for option '-L/usr/local/lib�/usr/local/lib'

> @paulcbetts/[email protected] install /Users/pmonks/Development/symphony/SymphonyElectron/node_modules/@paulcbetts/cld
> node-gyp rebuild

  CXX(target) Release/obj.target/cld-c/deps/cld/internal/cldutil.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/cldutil_shared.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/compact_lang_det.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/compact_lang_det_hint_code.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/compact_lang_det_impl.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/debug.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/fixunicodevalue.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/generated_entities.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/generated_language.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/generated_ulscript.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/getonescriptspan.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/lang_script.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/offsetmap.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/scoreonescriptspan.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/tote.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/utf8statetable.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/cld_generated_cjk_uni_prop_80.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/cld2_generated_cjk_compatible.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/cld_generated_cjk_delta_bi_32.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/generated_distinct_bi_0.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/cld2_generated_quad0122.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/cld2_generated_deltaocta0122.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/cld2_generated_deltaoctachrome.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/cld2_generated_distinctocta0122.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/cld2_generated_distinctoctachrome.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/cld2_generated_quadchrome_16.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/cld2_generated_quadchrome_2.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/cld_generated_score_quad_octa_0122.o
  CXX(target) Release/obj.target/cld-c/deps/cld/internal/cld_generated_score_quad_octa_2.o
  LIBTOOL-STATIC Release/cld-c.a
  CXX(target) Release/obj.target/cld/src/constants.o
  CXX(target) Release/obj.target/cld/src/cld.o
  SOLINK_MODULE(target) Release/cld.node
ld: warning: directory not found for option '-L/usr/local/lib�/usr/local/lib'

> [email protected] install /Users/pmonks/Development/symphony/SymphonyElectron/node_modules/electron-chromedriver
> node ./download-chromedriver.js


> @paulcbetts/[email protected] install /Users/pmonks/Development/symphony/SymphonyElectron/node_modules/@paulcbetts/system-idle-time
> node-gyp rebuild

  CXX(target) Release/obj.target/system_idle_time/src/module.o
  CXX(target) Release/obj.target/system_idle_time/src/mac/idle.o
  SOLINK_MODULE(target) Release/system_idle_time.node
ld: warning: directory not found for option '-L/usr/local/lib�/usr/local/lib'

> [email protected] install /Users/pmonks/Development/symphony/SymphonyElectron/node_modules/ffi
> node-gyp rebuild

  CC(target) Release/obj.target/ffi/deps/libffi/src/prep_cif.o
  CC(target) Release/obj.target/ffi/deps/libffi/src/types.o
  CC(target) Release/obj.target/ffi/deps/libffi/src/raw_api.o
  CC(target) Release/obj.target/ffi/deps/libffi/src/java_raw_api.o
  CC(target) Release/obj.target/ffi/deps/libffi/src/closures.o
  CC(target) Release/obj.target/ffi/deps/libffi/src/x86/ffi.o
  CC(target) Release/obj.target/ffi/deps/libffi/src/x86/ffi64.o
  CC(target) Release/obj.target/ffi/deps/libffi/src/x86/darwin.o
  CC(target) Release/obj.target/ffi/deps/libffi/src/x86/darwin64.o
  LIBTOOL-STATIC Release/libffi.a
  CXX(target) Release/obj.target/ffi_bindings/src/ffi.o
../src/ffi.cc:58:3: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  SET_ENUM_VALUE(FFI_OK);
  ^
../src/ffi.cc:38:8: note: expanded from macro 'SET_ENUM_VALUE'
  Nan::ForceSet(target, Nan::New<String>(#_value).ToLocalChecked(), \
       ^
../../nan/nan_maybe_43_inl.h:116:1: note: 'ForceSet' has been explicitly marked
      deprecated here
NAN_DEPRECATED inline Maybe<bool> ForceSet(
^
../../nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/ffi.cc:59:3: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  SET_ENUM_VALUE(FFI_BAD_TYPEDEF);
  ^
../src/ffi.cc:38:8: note: expanded from macro 'SET_ENUM_VALUE'
  Nan::ForceSet(target, Nan::New<String>(#_value).ToLocalChecked(), \
       ^
../../nan/nan_maybe_43_inl.h:116:1: note: 'ForceSet' has been explicitly marked
      deprecated here
NAN_DEPRECATED inline Maybe<bool> ForceSet(
^
../../nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/ffi.cc:60:3: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  SET_ENUM_VALUE(FFI_BAD_ABI);
  ^
../src/ffi.cc:38:8: note: expanded from macro 'SET_ENUM_VALUE'
  Nan::ForceSet(target, Nan::New<String>(#_value).ToLocalChecked(), \
       ^
../../nan/nan_maybe_43_inl.h:116:1: note: 'ForceSet' has been explicitly marked
      deprecated here
NAN_DEPRECATED inline Maybe<bool> ForceSet(
^
../../nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/ffi.cc:63:3: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  SET_ENUM_VALUE(FFI_DEFAULT_ABI);
  ^
../src/ffi.cc:38:8: note: expanded from macro 'SET_ENUM_VALUE'
  Nan::ForceSet(target, Nan::New<String>(#_value).ToLocalChecked(), \
       ^
../../nan/nan_maybe_43_inl.h:116:1: note: 'ForceSet' has been explicitly marked
      deprecated here
NAN_DEPRECATED inline Maybe<bool> ForceSet(
^
../../nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/ffi.cc:64:3: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  SET_ENUM_VALUE(FFI_FIRST_ABI);
  ^
../src/ffi.cc:38:8: note: expanded from macro 'SET_ENUM_VALUE'
  Nan::ForceSet(target, Nan::New<String>(#_value).ToLocalChecked(), \
       ^
../../nan/nan_maybe_43_inl.h:116:1: note: 'ForceSet' has been explicitly marked
      deprecated here
NAN_DEPRECATED inline Maybe<bool> ForceSet(
^
../../nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/ffi.cc:65:3: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  SET_ENUM_VALUE(FFI_LAST_ABI);
  ^
../src/ffi.cc:38:8: note: expanded from macro 'SET_ENUM_VALUE'
  Nan::ForceSet(target, Nan::New<String>(#_value).ToLocalChecked(), \
       ^
../../nan/nan_maybe_43_inl.h:116:1: note: 'ForceSet' has been explicitly marked
      deprecated here
NAN_DEPRECATED inline Maybe<bool> ForceSet(
^
../../nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/ffi.cc:81:3: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  SET_ENUM_VALUE(FFI_SYSV);
  ^
../src/ffi.cc:38:8: note: expanded from macro 'SET_ENUM_VALUE'
  Nan::ForceSet(target, Nan::New<String>(#_value).ToLocalChecked(), \
       ^
../../nan/nan_maybe_43_inl.h:116:1: note: 'ForceSet' has been explicitly marked
      deprecated here
NAN_DEPRECATED inline Maybe<bool> ForceSet(
^
../../nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/ffi.cc:83:3: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  SET_ENUM_VALUE(FFI_UNIX64);
  ^
../src/ffi.cc:38:8: note: expanded from macro 'SET_ENUM_VALUE'
  Nan::ForceSet(target, Nan::New<String>(#_value).ToLocalChecked(), \
       ^
../../nan/nan_maybe_43_inl.h:116:1: note: 'ForceSet' has been explicitly marked
      deprecated here
NAN_DEPRECATED inline Maybe<bool> ForceSet(
^
../../nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/ffi.cc:88:3: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  SET_ENUM_VALUE(RTLD_LAZY);
  ^
../src/ffi.cc:38:8: note: expanded from macro 'SET_ENUM_VALUE'
  Nan::ForceSet(target, Nan::New<String>(#_value).ToLocalChecked(), \
       ^
../../nan/nan_maybe_43_inl.h:116:1: note: 'ForceSet' has been explicitly marked
      deprecated here
NAN_DEPRECATED inline Maybe<bool> ForceSet(
^
../../nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/ffi.cc:91:3: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  SET_ENUM_VALUE(RTLD_NOW);
  ^
../src/ffi.cc:38:8: note: expanded from macro 'SET_ENUM_VALUE'
  Nan::ForceSet(target, Nan::New<String>(#_value).ToLocalChecked(), \
       ^
../../nan/nan_maybe_43_inl.h:116:1: note: 'ForceSet' has been explicitly marked
      deprecated here
NAN_DEPRECATED inline Maybe<bool> ForceSet(
^
../../nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/ffi.cc:94:3: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  SET_ENUM_VALUE(RTLD_LOCAL);
  ^
../src/ffi.cc:38:8: note: expanded from macro 'SET_ENUM_VALUE'
  Nan::ForceSet(target, Nan::New<String>(#_value).ToLocalChecked(), \
       ^
../../nan/nan_maybe_43_inl.h:116:1: note: 'ForceSet' has been explicitly marked
      deprecated here
NAN_DEPRECATED inline Maybe<bool> ForceSet(
^
../../nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/ffi.cc:97:3: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  SET_ENUM_VALUE(RTLD_GLOBAL);
  ^
../src/ffi.cc:38:8: note: expanded from macro 'SET_ENUM_VALUE'
  Nan::ForceSet(target, Nan::New<String>(#_value).ToLocalChecked(), \
       ^
../../nan/nan_maybe_43_inl.h:116:1: note: 'ForceSet' has been explicitly marked
      deprecated here
NAN_DEPRECATED inline Maybe<bool> ForceSet(
^
../../nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/ffi.cc:100:3: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  SET_ENUM_VALUE(RTLD_NOLOAD);
  ^
../src/ffi.cc:38:8: note: expanded from macro 'SET_ENUM_VALUE'
  Nan::ForceSet(target, Nan::New<String>(#_value).ToLocalChecked(), \
       ^
../../nan/nan_maybe_43_inl.h:116:1: note: 'ForceSet' has been explicitly marked
      deprecated here
NAN_DEPRECATED inline Maybe<bool> ForceSet(
^
../../nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/ffi.cc:103:3: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  SET_ENUM_VALUE(RTLD_NODELETE);
  ^
../src/ffi.cc:38:8: note: expanded from macro 'SET_ENUM_VALUE'
  Nan::ForceSet(target, Nan::New<String>(#_value).ToLocalChecked(), \
       ^
../../nan/nan_maybe_43_inl.h:116:1: note: 'ForceSet' has been explicitly marked
      deprecated here
NAN_DEPRECATED inline Maybe<bool> ForceSet(
^
../../nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/ffi.cc:106:3: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  SET_ENUM_VALUE(RTLD_FIRST);
  ^
../src/ffi.cc:38:8: note: expanded from macro 'SET_ENUM_VALUE'
  Nan::ForceSet(target, Nan::New<String>(#_value).ToLocalChecked(), \
       ^
../../nan/nan_maybe_43_inl.h:116:1: note: 'ForceSet' has been explicitly marked
      deprecated here
NAN_DEPRECATED inline Maybe<bool> ForceSet(
^
../../nan/nan.h:98:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
../src/ffi.cc:111:11: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  target->ForceSet(Nan::New<String>("RTLD_NEXT").ToLocalChecked(), WrapP...
          ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:3114:3: note: 'ForceSet' has
      been explicitly marked deprecated here
  V8_DEPRECATED("Use CreateDataProperty / DefineOwnProperty",
  ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8config.h:321:29: note: expanded
      from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
../src/ffi.cc:111:100: error: no viable conversion from 'v8::PropertyAttribute'
      to 'Local<v8::Value>'
  ...*)RTLD_NEXT), static_cast<PropertyAttribute>(ReadOnly | DontDelete));
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:197:7: note: candidate
      constructor (the implicit copy constructor) not viable: no known
      conversion from 'v8::PropertyAttribute' to 'const v8::Local<v8::Value> &'
      for 1st argument
class Local {
      ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:197:7: note: candidate
      constructor (the implicit move constructor) not viable: no known
      conversion from 'v8::PropertyAttribute' to 'v8::Local<v8::Value> &&' for
      1st argument
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:201:13: note: candidate template
      ignored: could not match 'Local<type-parameter-0-0>' against
      'v8::PropertyAttribute'
  V8_INLINE Local(Local<S> that)
            ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:3116:51: note: passing argument
      to parameter 'value' here
                                     Local<Value> value,
                                                  ^
../src/ffi.cc:114:11: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  target->ForceSet(Nan::New<String>("RTLD_DEFAULT").ToLocalChecked(), Wr...
          ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:3114:3: note: 'ForceSet' has
      been explicitly marked deprecated here
  V8_DEPRECATED("Use CreateDataProperty / DefineOwnProperty",
  ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8config.h:321:29: note: expanded
      from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
../src/ffi.cc:114:106: error: no viable conversion from 'v8::PropertyAttribute'
      to 'Local<v8::Value>'
  ...*)RTLD_DEFAULT), static_cast<PropertyAttribute>(ReadOnly | DontDelete));
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:197:7: note: candidate
      constructor (the implicit copy constructor) not viable: no known
      conversion from 'v8::PropertyAttribute' to 'const v8::Local<v8::Value> &'
      for 1st argument
class Local {
      ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:197:7: note: candidate
      constructor (the implicit move constructor) not viable: no known
      conversion from 'v8::PropertyAttribute' to 'v8::Local<v8::Value> &&' for
      1st argument
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:201:13: note: candidate template
      ignored: could not match 'Local<type-parameter-0-0>' against
      'v8::PropertyAttribute'
  V8_INLINE Local(Local<S> that)
            ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:3116:51: note: passing argument
      to parameter 'value' here
                                     Local<Value> value,
                                                  ^
../src/ffi.cc:117:11: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  target->ForceSet(Nan::New<String>("RTLD_SELF").ToLocalChecked(), WrapP...
          ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:3114:3: note: 'ForceSet' has
      been explicitly marked deprecated here
  V8_DEPRECATED("Use CreateDataProperty / DefineOwnProperty",
  ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8config.h:321:29: note: expanded
      from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
../src/ffi.cc:117:100: error: no viable conversion from 'v8::PropertyAttribute'
      to 'Local<v8::Value>'
  ...*)RTLD_SELF), static_cast<PropertyAttribute>(ReadOnly|DontDelete));
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:197:7: note: candidate
      constructor (the implicit copy constructor) not viable: no known
      conversion from 'v8::PropertyAttribute' to 'const v8::Local<v8::Value> &'
      for 1st argument
class Local {
      ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:197:7: note: candidate
      constructor (the implicit move constructor) not viable: no known
      conversion from 'v8::PropertyAttribute' to 'v8::Local<v8::Value> &&' for
      1st argument
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:201:13: note: candidate template
      ignored: could not match 'Local<type-parameter-0-0>' against
      'v8::PropertyAttribute'
  V8_INLINE Local(Local<S> that)
            ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:3116:51: note: passing argument
      to parameter 'value' here
                                     Local<Value> value,
                                                  ^
../src/ffi.cc:120:11: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  target->ForceSet(Nan::New<String>("RTLD_MAIN_ONLY").ToLocalChecked(), ...
          ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:3114:3: note: 'ForceSet' has
      been explicitly marked deprecated here
  V8_DEPRECATED("Use CreateDataProperty / DefineOwnProperty",
  ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8config.h:321:29: note: expanded
      from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
../src/ffi.cc:120:110: error: no viable conversion from 'v8::PropertyAttribute'
      to 'Local<v8::Value>'
  ...*)RTLD_MAIN_ONLY), static_cast<PropertyAttribute>(ReadOnly|DontDelete));
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:197:7: note: candidate
      constructor (the implicit copy constructor) not viable: no known
      conversion from 'v8::PropertyAttribute' to 'const v8::Local<v8::Value> &'
      for 1st argument
class Local {
      ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:197:7: note: candidate
      constructor (the implicit move constructor) not viable: no known
      conversion from 'v8::PropertyAttribute' to 'v8::Local<v8::Value> &&' for
      1st argument
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:201:13: note: candidate template
      ignored: could not match 'Local<type-parameter-0-0>' against
      'v8::PropertyAttribute'
  V8_INLINE Local(Local<S> that)
            ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:3116:51: note: passing argument
      to parameter 'value' here
                                     Local<Value> value,
                                                  ^
../src/ffi.cc:123:11: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  target->ForceSet(Nan::New<String>("FFI_ARG_SIZE").ToLocalChecked(), Na...
          ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:3114:3: note: 'ForceSet' has
      been explicitly marked deprecated here
  V8_DEPRECATED("Use CreateDataProperty / DefineOwnProperty",
  ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8config.h:321:29: note: expanded
      from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
../src/ffi.cc:123:116: error: no viable conversion from 'v8::PropertyAttribute'
      to 'Local<v8::Value>'
  ...static_cast<PropertyAttribute>(ReadOnly|DontDelete));
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:197:7: note: candidate
      constructor (the implicit copy constructor) not viable: no known
      conversion from 'v8::PropertyAttribute' to 'const v8::Local<v8::Value> &'
      for 1st argument
class Local {
      ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:197:7: note: candidate
      constructor (the implicit move constructor) not viable: no known
      conversion from 'v8::PropertyAttribute' to 'v8::Local<v8::Value> &&' for
      1st argument
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:201:13: note: candidate template
      ignored: could not match 'Local<type-parameter-0-0>' against
      'v8::PropertyAttribute'
  V8_INLINE Local(Local<S> that)
            ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:3116:51: note: passing argument
      to parameter 'value' here
                                     Local<Value> value,
                                                  ^
../src/ffi.cc:124:11: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  target->ForceSet(Nan::New<String>("FFI_SARG_SIZE").ToLocalChecked(), N...
          ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:3114:3: note: 'ForceSet' has
      been explicitly marked deprecated here
  V8_DEPRECATED("Use CreateDataProperty / DefineOwnProperty",
  ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8config.h:321:29: note: expanded
      from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
../src/ffi.cc:124:118: error: no viable conversion from 'v8::PropertyAttribute'
      to 'Local<v8::Value>'
  ...static_cast<PropertyAttribute>(ReadOnly | DontDelete));
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:197:7: note: candidate
      constructor (the implicit copy constructor) not viable: no known
      conversion from 'v8::PropertyAttribute' to 'const v8::Local<v8::Value> &'
      for 1st argument
class Local {
      ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:197:7: note: candidate
      constructor (the implicit move constructor) not viable: no known
      conversion from 'v8::PropertyAttribute' to 'v8::Local<v8::Value> &&' for
      1st argument
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:201:13: note: candidate template
      ignored: could not match 'Local<type-parameter-0-0>' against
      'v8::PropertyAttribute'
  V8_INLINE Local(Local<S> that)
            ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:3116:51: note: passing argument
      to parameter 'value' here
                                     Local<Value> value,
                                                  ^
../src/ffi.cc:125:11: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  target->ForceSet(Nan::New<String>("FFI_TYPE_SIZE").ToLocalChecked(), N...
          ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:3114:3: note: 'ForceSet' has
      been explicitly marked deprecated here
  V8_DEPRECATED("Use CreateDataProperty / DefineOwnProperty",
  ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8config.h:321:29: note: expanded
      from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
../src/ffi.cc:125:118: error: no viable conversion from 'v8::PropertyAttribute'
      to 'Local<v8::Value>'
  ...static_cast<PropertyAttribute>(ReadOnly | DontDelete));
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:197:7: note: candidate
      constructor (the implicit copy constructor) not viable: no known
      conversion from 'v8::PropertyAttribute' to 'const v8::Local<v8::Value> &'
      for 1st argument
class Local {
      ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:197:7: note: candidate
      constructor (the implicit move constructor) not viable: no known
      conversion from 'v8::PropertyAttribute' to 'v8::Local<v8::Value> &&' for
      1st argument
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:201:13: note: candidate template
      ignored: could not match 'Local<type-parameter-0-0>' against
      'v8::PropertyAttribute'
  V8_INLINE Local(Local<S> that)
            ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:3116:51: note: passing argument
      to parameter 'value' here
                                     Local<Value> value,
                                                  ^
../src/ffi.cc:126:11: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  target->ForceSet(Nan::New<String>("FFI_CIF_SIZE").ToLocalChecked(), Na...
          ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:3114:3: note: 'ForceSet' has
      been explicitly marked deprecated here
  V8_DEPRECATED("Use CreateDataProperty / DefineOwnProperty",
  ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8config.h:321:29: note: expanded
      from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
../src/ffi.cc:126:116: error: no viable conversion from 'v8::PropertyAttribute'
      to 'Local<v8::Value>'
  ...static_cast<PropertyAttribute>(ReadOnly | DontDelete));
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:197:7: note: candidate
      constructor (the implicit copy constructor) not viable: no known
      conversion from 'v8::PropertyAttribute' to 'const v8::Local<v8::Value> &'
      for 1st argument
class Local {
      ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:197:7: note: candidate
      constructor (the implicit move constructor) not viable: no known
      conversion from 'v8::PropertyAttribute' to 'v8::Local<v8::Value> &&' for
      1st argument
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:201:13: note: candidate template
      ignored: could not match 'Local<type-parameter-0-0>' against
      'v8::PropertyAttribute'
  V8_INLINE Local(Local<S> that)
            ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:3116:51: note: passing argument
      to parameter 'value' here
                                     Local<Value> value,
                                                  ^
../src/ffi.cc:132:11: warning: 'ForceSet' is deprecated
      [-Wdeprecated-declarations]
  target->ForceSet(Nan::New<String>("HAS_OBJC").ToLocalChecked(), Nan::N...
          ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:3114:3: note: 'ForceSet' has
      been explicitly marked deprecated here
  V8_DEPRECATED("Use CreateDataProperty / DefineOwnProperty",
  ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8config.h:321:29: note: expanded
      from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated))
                            ^
../src/ffi.cc:132:95: error: no viable conversion from 'v8::PropertyAttribute'
      to 'Local<v8::Value>'
  ...static_cast<PropertyAttribute>(ReadOnly | DontDelete));
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:197:7: note: candidate
      constructor (the implicit copy constructor) not viable: no known
      conversion from 'v8::PropertyAttribute' to 'const v8::Local<v8::Value> &'
      for 1st argument
class Local {
      ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:197:7: note: candidate
      constructor (the implicit move constructor) not viable: no known
      conversion from 'v8::PropertyAttribute' to 'v8::Local<v8::Value> &&' for
      1st argument
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:201:13: note: candidate template
      ignored: could not match 'Local<type-parameter-0-0>' against
      'v8::PropertyAttribute'
  V8_INLINE Local(Local<S> that)
            ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:3116:51: note: passing argument
      to parameter 'value' here
                                     Local<Value> value,
                                                  ^
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:208:5: error: assigning to
      'v8::Context *' from incompatible type 'v8::String *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/pmonks/.node-gyp/9.3.0/include/node/v8.h:162:39: note: expanded from
      macro 'TYPE_CHECK'
    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \
                                      ^~~~~~~~~~~~~~~~~~
../src/ffi.cc:111:20: note: in instantiation of function template specialization
      'v8::Local<v8::Context>::Local<v8::String>' requested here
  target->ForceSet(Nan::New<String>("RTLD_NEXT").ToLocalChecked(), WrapP...
                   ^
24 warnings and 10 errors generated.
make: *** [Release/obj.target/ffi_bindings/src/ffi.o] Error 1
�[37;40mgyp�[0m �[0m�[31;40mERR!�[0m �[0m�[35mbuild error�[0m 
�[0m�[37;40mgyp�[0m �[0m�[31;40mERR!�[0m �[0m�[35mstack�[0m Error: `make` failed with exit code: 2
�[0m�[37;40mgyp�[0m �[0m�[31;40mERR!�[0m �[0m�[35mstack�[0m     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:258:23)
�[0m�[37;40mgyp�[0m �[0m�[31;40mERR!�[0m �[0m�[35mstack�[0m     at ChildProcess.emit (events.js:159:13)
�[0m�[37;40mgyp�[0m �[0m�[31;40mERR!�[0m �[0m�[35mstack�[0m     at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
�[0m�[37;40mgyp�[0m �[0m�[31;40mERR!�[0m �[0m�[35mSystem�[0m Darwin 17.3.0
�[0m�[37;40mgyp�[0m �[0m�[31;40mERR!�[0m �[0m�[35mcommand�[0m "/usr/local/Cellar/node/9.3.0_1/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
�[0m�[37;40mgyp�[0m �[0m�[31;40mERR!�[0m �[0m�[35mcwd�[0m /Users/pmonks/Development/symphony/SymphonyElectron/node_modules/ffi
�[0m�[37;40mgyp�[0m �[0m�[31;40mERR!�[0m �[0m�[35mnode -v�[0m v9.3.0
�[0m�[37;40mgyp�[0m �[0m�[31;40mERR!�[0m �[0m�[35mnode-gyp -v�[0m v3.6.2
�[0m�[37;40mgyp�[0m �[0m�[31;40mERR!�[0m �[0m�[35mnot ok�[0m 
�[0mnpm WARN optional SKIPPING OPTIONAL DEPENDENCY: screen-snippet@git+https://github.com/symphonyoss/ScreenSnippet.git#v1.0.1 (node_modules/screen-snippet):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"win32","arch":"any"} (current: {"os":"darwin","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/7zip-bin-win):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"win32","arch":"any"} (current: {"os":"darwin","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/7zip-bin-linux):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"linux","arch":"any"} (current: {"os":"darwin","arch":"x64"})

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/pmonks/.npm/_logs/2017-12-29T02_02_25_085Z-debug.log
bash-3.2$ exit
exit
Script done on Thu Dec 28 18:02:34 2017

[FINOS_PROJECT_BLUEPRINT] - Fixes to apply

NOTE! This issue was automatically generated by a FINOS GitHub Action.

We have found some repository configurations that should be changed in order to comply with FINOS Governance and bylaws, see the details below.

List of fixes:

  • no-badge - README.md file is missing the FINOS badge; check the README.md template and make sure that it embeds one of SVG FINOS badges.
  • has-user - One or more user collaborators were found in this GitHub repository. FINOS Governance only allows GitHub users to be added via Teams. Please remove it, therefore it must be removed.
  • no-code-conduct - CODE_OF_CONDUCT.md file is missing; check the CODE_OF_CONDUCT.md template.
  • no-whitesource - WhiteSource configuration was not found; make sure that dependencies are scanned against security vulnerabilities. Read more on the WhiteSource Wiki page.

This is a message generated by the FINOS project compliance scanning action.

For any question, do not hesitate to contact @maoo and @mcleo-d or email [email protected]. Thank you!

npm install fails - error in spellchecker_mac.mm code

I did a clone of the master branch this morning and I ran npm install and I got the following error. Seems like there's an error in the code but let me know if I'm doing something wrong.

I'm running on MacOS - 10.12.6 (Sierra).

Error:

LIBTOOL-STATIC Release/hunspell.a
CXX(target) Release/obj.target/spellchecker/src/main.o
CXX(target) Release/obj.target/spellchecker/src/spellchecker_hunspell.o
**CXX(target) Release/obj.target/spellchecker/src/spellchecker_mac.o
../src/spellchecker_mac.mm:184:13: error: cannot initialize a variable of type 'NSString *' with an rvalue of type 'const NSString *'
NSString* globalLang = currentGlobalLanguage ? currentGlobalLanguage : autoLangauge;
          ^            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/spellchecker_mac.mm:185:13: error: cannot initialize a variable of type 'NSString *' with an rvalue of type 'const NSString *'
NSString* ourLang = this->spellCheckerLanguage ? this->spellCheckerLanguage : autoLangauge;
          ^         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 errors generated.**
make: *** [Release/obj.target/spellchecker/src/spellchecker_mac.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:258:23)
gyp ERR! stack     at emitTwo (events.js:125:13)
gyp ERR! stack     at ChildProcess.emit (events.js:213:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Darwin 16.7.0
gyp ERR! command "/usr/local/Cellar/node/8.6.0/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/<username>/Dev/Symphony/SymphonyElectron/node_modules/@paulcbetts/spellchecker
gyp ERR! node -v v8.6.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok 
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: screen-snippet@git+https://github.com/symphonyoss/ScreenSnippet.git#v1.0.1 (node_modules/screen-snippet):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"win32","arch":"any"} (current: {"os":"darwin","arch":"x64"})

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @paulcbetts/[email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the @paulcbetts/[email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/<username>/.npm/_logs/2017-10-06T14_41_29_514Z-debug.log

Certificate error on startup

As of rev 89e8238 the following certificate error pops up after logging in:

image

Clicking "Allow" seems to get past this issue without any negative side-effects, but it's a bit disconcerting to get this error each time the app starts.

How does notifications work on MacOS?

I got SymphonyElectron working on my MacOS (10.12.6). I got the client running with "npm run dev". It works great but one major concern - how does notifications work? How do I enable them such that I can receive notifications on top corner of my screen? Or is it not supported on Mac client?

Add Github project description

There is a one-liner project descriptor that you can give Github repos. This helps when users are browsing various repos and want a one-liner to understand what it does and how it fits into the wider ecosytem. I noticed it missing when I was browsing all of symphonies repos. I am new to all of them. I wasn't sure what this repo was, amongst other popular symphony repos, and then had to click into it to read the readme (where, honestly, I still am unsure what this project does and how it fits in). This one-liner is your invitation card, or your elevator speech for new potential users/devs!

Linux Support

Is your feature request related to a problem? Please describe.
We're about to start using Symphony and most users in our company are using linux as a main system. We need a desktop client for linux for Symphony.

Describe the solution you'd like
Add a build target for linux and support at least a Debian/Ubuntu repository (or better yet, a flatpak package). Since you already have the electron app, adding linux support should be an easy task -- every other team chat product already fully supports linux and they all use electron just like you.

Describe alternatives you've considered
We really need it

Additional context
Look at other team chat products. They all support linux (Hipchat, Stride, Slack, Rocket.chat, MS Teams)

Build error in Arch Linux

Describe the bug

pnpm install

$ pnpm install
 WARN  deprecated [email protected]: Please use @electron/osx-sign moving forward. Be aware the API is slightly different
Downloading registry.npmmirror.com/typescript/3.9.10: 9.58 MB/9.58 MB, done
info: @symphony/[email protected] is an optional dependency and failed compatibility check. Excluding it from installation.
Packages are hard linked from the content-addressable store to the virtual store.
  Content-addressable store is at: /home/zxp-endeavouros/.local/share/pnpm/store/v3
  Virtual store is at:             node_modules/.pnpm
 WARN  deprecated [email protected]: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
 WARN  deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
 WARN  deprecated [email protected]: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies
 WARN  deprecated [email protected]: See https://github.com/lydell/source-map-resolve#deprecated
 WARN  deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
 WARN  deprecated [email protected]: this package is now deprecated
Downloading registry.npmmirror.com/app-builder-bin/2.6.13: 34.7 MB/34.7 MB, done
 WARN  deprecated [email protected]: The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2
 WARN  deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
 WARN  deprecated [email protected]: See https://github.com/lydell/source-map-url#deprecated
 WARN  deprecated [email protected]: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added
 WARN  deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
 WARN  deprecated [email protected]: this library is no longer supported
Downloading registry.npmmirror.com/gifwrap/0.9.4: 5.89 MB/5.89 MB, done
 WARN  deprecated [email protected]: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
 WARN  deprecated [email protected]: Use your platform's native performance.now() and performance.timeOrigin.
 WARN  deprecated [email protected]: Please use @electron/osx-sign moving forward. Be aware the API is slightly different
Downloading registry.npmmirror.com/app-builder-bin/2.7.1: 34.8 MB/34.8 MB, done
 WARN  Issues with peer dependencies found
.
└─┬ win32-api 20.1.0
  └─┬ win32-def 20.4.1
    └─┬ @waiting/shared-types 20.13.0
      └── ✕ unmet peer typescript@>=4.7.4: found 3.9.10

Packages: +1691
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
node_modules/husky: Running install script, done in 115ms
Progress: resolved 1535, reused 1111, downloaded 420, added 1691, done
node_modules/husky: Running postinstall script, done in 90ms
node_modules/electron: Running postinstall script, done in 14.1s
node_modules/phantomjs-prebuilt: Running install script, done in 9.5s

> [email protected] postinstall /home/zxp-endeavouros/.cache/paru/clone/SymphonyElectron-23.4.0
> electron-builder install-app-deps

  • electron-builder  version=24.2.1
  • loaded configuration  file=package.json ("build" field)
  • executing @electron/rebuild  arch=x64 version=23.2.1 appDir=/home/zxp-endeavouros/.cache/paru/clone/SymphonyElectron-23.4.0
The integrity of 1521 files was checked. This might have caused installation to take longer.
Done in 55.2s

pnpm run packed-linux

$ pnpm run packed-linux

> [email protected] packed-linux /home/zxp-endeavouros/.cache/paru/clone/SymphonyElectron-23.4.0
> npm run prebuild && npm run test && ./node_modules/.bin/electron-builder build --linux


> [email protected] prebuild
> run-s compile browserify


> [email protected] compile
> run-s lint compile:*


> [email protected] lint
> run-s lint:*


> [email protected] lint:project
> tslint --project tsconfig.json


> [email protected] lint:spec
> tslint --project tsconfig.spec.json


> [email protected] compile:project
> gulp build

[10:54:31] Using gulpfile ~/.cache/paru/clone/SymphonyElectron-23.4.0/gulpfile.js
[10:54:31] Starting 'build'...
[10:54:31] Starting 'clean'...
[10:54:31] Finished 'clean' after 6.77 ms
[10:54:31] Starting 'compile'...
/home/zxp-endeavouros/.cache/paru/clone/SymphonyElectron-23.4.0/node_modules/@types/babel__traverse/index.d.ts(321,9): error TS1110: Type expected.
/home/zxp-endeavouros/.cache/paru/clone/SymphonyElectron-23.4.0/node_modules/@types/babel__traverse/index.d.ts(321,30): error TS1005: ';' expected.
/home/zxp-endeavouros/.cache/paru/clone/SymphonyElectron-23.4.0/node_modules/@types/babel__traverse/index.d.ts(321,31): error TS1128: Declaration or statement expected.
/home/zxp-endeavouros/.cache/paru/clone/SymphonyElectron-23.4.0/node_modules/@types/babel__traverse/index.d.ts(321,51): error TS1005: '(' expected.
/home/zxp-endeavouros/.cache/paru/clone/SymphonyElectron-23.4.0/node_modules/@types/babel__traverse/index.d.ts(322,1): error TS1128: Declaration or statement expected.
src/app/chrome-flags.ts(142,46): error TS2339: Property 'trimEnd' does not exist on type 'string'.
TypeScript: 5 syntax errors
TypeScript: 1 semantic error
TypeScript: emit succeeded (with errors)
[10:54:34] 'compile' errored after 2.5 s
[10:54:34] Error: TypeScript: Compilation failed
    at Output.mightFinish (/home/zxp-endeavouros/.cache/paru/clone/SymphonyElectron-23.4.0/node_modules/gulp-typescript/release/output.js:130:43)
    at /home/zxp-endeavouros/.cache/paru/clone/SymphonyElectron-23.4.0/node_modules/gulp-typescript/release/output.js:65:22
[10:54:34] 'build' errored after 2.51 s
ERROR: "compile:project" exited with 1.
ERROR: "compile" exited with 1.
 ELIFECYCLE  Command failed with exit code 1.

Desktop (please complete the following information):

  • OS: EndeavourOS x86_64 6.1.33-1-lts
  • DE: Cinnamon 5.8.1
  • pnpm 8.6.2-1
  • Build version: 23.4.0

Add incubating badge to readme

Foundation-hosted projects are expected to clearly indicate their project lifecycle status in their README, via a badge. This project is currently Incubating, so this badge should be used:

Symphony Software Foundation - Incubating

This is accomplished via this markdown:

[![Symphony Software Foundation - Incubating](https://cdn.rawgit.com/symphonyoss/contrib-toolbox/master/images/ssf-badge-incubating.svg)](https://symphonyoss.atlassian.net/wiki/display/FM/Incubating)

Missing Search Library?

I've managed to build the Symphony Electron client successfully on macOS (for the most part), but it's crashing on launch due to a missing dynamic library: libsymphonysearch.dylib. Indeed, package.json would suggest that this library should be included with the build, but it's missing from the /library folder of the project.

The documentation and my Google-fu are failing me... Is there another project (or projects) that I need to build first, in order to first obtain that library? Apologies if I'm missing something obvious.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.