Merge pull request #581 from hashicorp/ICU-1356-enable-windows-platform-support

[desktop] Enable windows platform support
This commit is contained in:
Susmitha Girumala authored and GitHub committed 2021-06-02 17:37:12 -04:00
commit 680ae9980b
19 files changed
+1605 -1435

No files matched your search

+10 -1
View File
@@ -122,11 +122,20 @@ yarn install
yarn build:ui:desktop
```
In windows, UI is generated using docker to provide a stable UI across platforms.
```cmd
yarn install
docker-compose -f docker-compose-embedding.yml run build-desktop-production
yarn build:ui:desktop:app
```
To provide a signing identify for macOS build, use `BOUNDARY_DESKTOP_SIGNING_IDENTITY`
environment variable to set signing certificate name (e.g Developer ID Application: * (*)).
environment variable to set signing certificate name (e.g Developer ID Application: * (*)) when building desktop app using `yarn build:ui:desktop:app`.
Assets are saved to `ui/desktop/electron-app/out/make/`.
DMG packaged desktop UI is available at asset location as `boundary.dmg`.
EXE archived desktop UI is available at asset location under `zip` folder.
### Connect Boundary UI to Boundary local instance
+3 -2
View File
@@ -76,8 +76,9 @@ export default class StorageService extends Service {
const inMemory = get(config, 'storage.memory');
// Get the global context object (window) via service lookup,
// because just reaching for a global is icky
const globalContext = getOwner(this).lookup('service:-document')
.documentElement.parentNode.defaultView;
const globalContext =
getOwner(this).lookup('service:-document').documentElement.parentNode
.defaultView;
// If memory storage enabled, return the memory storage instance,
// otherwise return localStorage.
return inMemory ? this.#memoryStorage : globalContext.localStorage;
+3 -4
View File
@@ -72,10 +72,9 @@ export default class BaseAuthenticator extends SimpleAuthBaseAuthenticator {
*/
async restore(data) {
if (!data) return reject();
return this.validateToken(
data.attributes.token,
data.attributes.id
).then(() => this.normalizeData(data));
return this.validateToken(data.attributes.token, data.attributes.id).then(
() => this.normalizeData(data)
);
}
/**
+2 -2
View File
@@ -76,8 +76,8 @@ export default class OIDCAuthenticator extends BaseOIDCAuthenticator {
* @param {string} token
*/
addTokenToAuthorization(token) {
const adapterPrototype = this.store.adapterFor('application').constructor
.prototype;
const adapterPrototype =
this.store.adapterFor('application').constructor.prototype;
const headers = adapterPrototype?.headers;
if (!headers) adapterPrototype.headers = {};
adapterPrototype.headers.Authorization = null;
+2 -2
View File
@@ -91,8 +91,8 @@ export default class PasswordAuthenticator extends BasePasswordAuthenticator {
* @param {string} token
*/
addTokenToAuthorization(token) {
const adapterPrototype = this.store.adapterFor('application').constructor
.prototype;
const adapterPrototype =
this.store.adapterFor('application').constructor.prototype;
const headers = adapterPrototype?.headers;
if (!headers) adapterPrototype.headers = {};
adapterPrototype.headers.Authorization = null;
+1
View File
@@ -17,6 +17,7 @@
"build:ui:admin": "cd ui/admin && yarn build",
"build:ui:desktop": "cd ui/desktop && yarn build",
"build:ui:desktop:production": "cd ui/desktop && yarn build:production",
"build:ui:desktop:app": "cd ui/desktop && yarn build:desktop",
"lint": "npm-run-all lint:*",
"lint:addons-api": "cd addons/api && yarn lint",
"lint:addons-auth": "cd addons/auth && yarn lint",
+1
View File
@@ -217,6 +217,7 @@
.rose-layout-global .rose-layout-global-body {
main {
flex-grow: 1;
overflow: auto;
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

+22 -8
View File
@@ -1,25 +1,39 @@
const fs = require('fs');
const os = require('os');
const path = require('path');
const https = require('https');
const decompress = require('decompress');
const os = require('os');
const { isMac, isWindows } = require('../src/helpers/platform.js');
const artifactVersion = '0.2.2';
const artifactVersion = '0.2.3';
const artifactDestination = path.resolve(__dirname, '..', 'cli');
const downloadArtifact = version => {
const url = `https://releases.hashicorp.com/boundary/${version}/boundary_${version}_darwin_amd64.zip`;
const downloadArtifact = (version) => {
const archivePlatform = {};
// TODO: Support all available build machines
if (isMac()) {
archivePlatform.name = 'darwin';
archivePlatform.arch = 'amd64';
}
if (isWindows()) {
archivePlatform.name = 'windows';
archivePlatform.arch = 'amd64';
}
const archiveName = `boundary_${version}_${archivePlatform.name}_${archivePlatform.arch}.zip`;
const url = `https://releases.hashicorp.com/boundary/${version}/${archiveName}`;
return new Promise((resolve, reject) => {
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'boundary-artifact-'));
console.log('Create tmp artifact directory: ', tmpDir);
const artifactFileName = url.split('/').pop();
if(!artifactFileName) reject('Could not find artifact filename in: ', url);
if (!artifactFileName) reject('Could not find artifact filename in: ', url);
const artifactPath = path.resolve(tmpDir, artifactFileName);
console.log('Download artifact url: ', url);
https.get(url, (response) => {
const stream = response.pipe(fs.createWriteStream(artifactPath))
const stream = response.pipe(fs.createWriteStream(artifactPath));
stream.on('close', () => resolve(artifactPath));
stream.on('error', reject);
});
@@ -34,7 +48,7 @@ const extract = (artifactPath, destination) => {
module.exports = {
setup: async () => {
const artifactPath = await downloadArtifact(artifactVersion);
await extract(artifactPath, artifactDestination);
const artifactPath = await downloadArtifact(artifactVersion);
await extract(artifactPath, artifactDestination);
}
}
+3 -3
View File
@@ -1,7 +1,7 @@
const fs = require('fs');
const path = require('path');
// Create config for use in electron forge
// Create config
const createConfig = () => {
const config = {
name: 'boundary',
@@ -15,9 +15,9 @@ const createConfig = () => {
return config;
};
// Save config file
// Save config to file
const saveConfig = (config, destination) => {
const configPath = `${destination}/config.js`;
const configPath = path.join(destination, 'config.js');
const content = `module.exports = ${JSON.stringify(config, null, 2)}`;
fs.writeFileSync(configPath, content);
console.log(`Create: ${configPath}`);
@@ -1,11 +1,12 @@
// Generated during build
const config = require('./config.js');
const { isMac } = require('../src/helpers/platform.js');
console.log(`\n[forge-config] Release commit: ${config.releaseCommit}`);
console.log(`[forge-config] Release version: ${config.releaseVersion}`);
// MacOS signing identity
if (process.env.BOUNDARY_DESKTOP_SIGNING_IDENTITY)
if (isMac() && !process.env.BOUNDARY_DESKTOP_SIGNING_IDENTITY)
console.warn(
'[forge-config] WARNING: Could not find signing identity. Proceeding without signing.'
);
@@ -39,5 +40,8 @@ module.exports = {
background: './assets/macos/background.png',
},
},
{
name: '@electron-forge/maker-squirrel',
},
],
};
+3 -2
View File
@@ -8,8 +8,8 @@
"author": "HashiCorp",
"main": "src/index.js",
"scripts": {
"build:cli": "node -e 'require(\"./config/cli.js\").setup()'",
"build:config": "node -e 'require(\"./config/desktop.js\").setup()'",
"build:cli": "node -e \"require('./config/cli.js').setup()\"",
"build:config": "node -e \"require('./config/desktop.js').setup()\"",
"start": "electron-forge start",
"package": "electron-forge package",
"premake": "yarn build:cli && yarn build:config",
@@ -33,6 +33,7 @@
"devDependencies": {
"@electron-forge/cli": "6.0.0-beta.54",
"@electron-forge/maker-dmg": "^6.0.0-beta.54",
"@electron-forge/maker-squirrel": "^6.0.0-beta.55",
"@electron-forge/maker-zip": "^6.0.0-beta.54",
"decompress": "^4.2.1",
"devtron": "^1.4.0",
+6 -1
View File
@@ -1,7 +1,12 @@
const path = require('path');
const { isWindows } = require('../helpers/platform.js');
const { spawnSync } = require('../helpers/spawn-promise.js');
const cliPath = async () => path.resolve(__dirname, '..', '..', 'cli', 'boundary');
const cliPath = async () => {
let name = 'boundary';
if (isWindows()) name = 'boundary.exe';
return path.resolve(__dirname, '..', 'cli', name);
};
module.exports = {
// Check boundary cli existence
+50 -27
View File
@@ -1,30 +1,33 @@
const { shell, dialog } = require('electron');
const appUpdater = require('../helpers/app-updater.js');
const { isMac, isWindows } = require('../helpers/platform.js');
const config = require('../../config/config.js');
const { version } = require('../cli/index.js');
const generateMenuTemplate = () => {
const aboutDialog = () => {
const appVersion = `Version: ${config.releaseVersion}`;
const appCommit = `Commit: ${config.releaseCommit}`;
const cliVersion = version().formatted;
const copyright = config.copyright;
const dialogOpts = {
type: 'none',
message: config.productName,
detail: `${appVersion}\n${appCommit}\n\n${cliVersion}\n\n${copyright}`,
};
dialog.showMessageBox(dialogOpts);
}
return [
// { role: 'appMenu' }
{
...(isMac() ? [{
label: 'Boundary',
submenu: [
// { role: 'about' },
{
label: `About ${config.productName}`,
click: () => {
const appVersion = `Version: ${config.releaseVersion}`;
const appCommit = `Commit: ${config.releaseCommit}`;
const cliVersion = version().formatted;
const copyright = config.copyright;
const dialogOpts = {
type: 'none',
message: config.productName,
detail: `${appVersion}\n${appCommit}\n\n${cliVersion}\n\n${copyright}`,
};
dialog.showMessageBox(dialogOpts);
},
click: aboutDialog,
},
{
id: 'update',
@@ -40,7 +43,7 @@ const generateMenuTemplate = () => {
{ type: 'separator' },
{ role: 'quit' },
],
},
}] : []),
// { role: 'fileMenu' }
{
label: 'File',
@@ -56,14 +59,23 @@ const generateMenuTemplate = () => {
{ role: 'cut' },
{ role: 'copy' },
{ role: 'paste' },
{ role: 'pasteAndMatchStyle' },
{ role: 'delete' },
{ role: 'selectAll' },
{ type: 'separator' },
{
label: 'Speech',
submenu: [{ role: 'startSpeaking' }, { role: 'stopSpeaking' }],
},
...(isMac() ? [
{ role: 'pasteAndMatchStyle' },
{ role: 'delete' },
{ role: 'selectAll' },
{ type: 'separator' },
{
label: 'Speech',
submenu: [
{ role: 'startspeaking' },
{ role: 'stopspeaking' }
]
}
] : [
{ role: 'delete' },
{ type: 'separator' },
{ role: 'selectAll' }
]),
],
},
// { role: 'viewMenu' }
@@ -86,10 +98,14 @@ const generateMenuTemplate = () => {
submenu: [
{ role: 'minimize' },
{ role: 'zoom' },
{ type: 'separator' },
{ role: 'front' },
{ type: 'separator' },
{ role: 'window' },
...(isMac() ? [
{ type: 'separator' },
{ role: 'front' },
{ type: 'separator' },
{ role: 'window' }
] : [
{ role: 'close' }
])
],
},
{
@@ -99,6 +115,13 @@ const generateMenuTemplate = () => {
label: 'Documentation',
click: () => shell.openExternal('https://www.boundaryproject.io'),
},
...(isWindows() ? [
// { role: 'about' },
{
label: `About ${config.productName}`,
click: aboutDialog,
},
] : [])
],
},
];
@@ -50,7 +50,7 @@ const createAppUpdaterConfig = (url, version, destination) => {
console.log(`[app-updater] url: ${url}, destination: ${destination}`);
const json = { url, version };
const config = JSON.stringify(json);
const configPath = `${destination}/feed.json`;
const configPath = path.join(destination, 'feed.json');
if (debug) console.log(`[app-updater] config: ${config}`);
fs.writeFileSync(configPath, config);
return configPath;
@@ -0,0 +1,6 @@
const os = require('os');
module.exports = {
isMac: () => Boolean(os.platform().match(/(darwin)/i)),
isWindows: () => Boolean(os.platform().match(/(win32)/i)),
};
+128 -13
View File
@@ -13,6 +13,17 @@
ora "^5.0.0"
pretty-ms "^7.0.0"
"@electron-forge/async-ora@6.0.0-beta.55":
version "6.0.0-beta.55"
resolved "https://registry.yarnpkg.com/@electron-forge/async-ora/-/async-ora-6.0.0-beta.55.tgz#9d6240f704e826fa284c76a36099062f29870049"
integrity sha512-B5td9OP13wn5zQO6mcJp99dsckKA33qsCy8uyoBeaS5pRlX3DPzJjoP+rlmAgHDeEBbay/PzbgZjeB1bCJpAQA==
dependencies:
colors "^1.4.0"
debug "^4.3.1"
log-symbols "^4.0.0"
ora "^5.0.0"
pretty-ms "^7.0.0"
"@electron-forge/cli@6.0.0-beta.54":
version "6.0.0-beta.54"
resolved "https://registry.yarnpkg.com/@electron-forge/cli/-/cli-6.0.0-beta.54.tgz#5105b1eab38f8f66d39903174f49428c155dbb0e"
@@ -144,6 +155,15 @@
fs-extra "^9.0.1"
which "^2.0.2"
"@electron-forge/maker-base@6.0.0-beta.55":
version "6.0.0-beta.55"
resolved "https://registry.yarnpkg.com/@electron-forge/maker-base/-/maker-base-6.0.0-beta.55.tgz#344784dd26e77c7ff61aa6fdd093cf32e2d18bbc"
integrity sha512-fsRj+RAkOtAZNm2y6e7HKF/FQEaIbujqaTtfcKVL401FMCfb8+Y/LuXDnulMTenLfXDtpMvgMiDGMKAnxa8pUQ==
dependencies:
"@electron-forge/shared-types" "6.0.0-beta.55"
fs-extra "^9.0.1"
which "^2.0.2"
"@electron-forge/maker-dmg@^6.0.0-beta.54":
version "6.0.0-beta.54"
resolved "https://registry.yarnpkg.com/@electron-forge/maker-dmg/-/maker-dmg-6.0.0-beta.54.tgz#c3777b28c30c03b3dc18d1ca332d27f8c78c65b1"
@@ -155,6 +175,17 @@
optionalDependencies:
electron-installer-dmg "^3.0.0"
"@electron-forge/maker-squirrel@^6.0.0-beta.55":
version "6.0.0-beta.55"
resolved "https://registry.yarnpkg.com/@electron-forge/maker-squirrel/-/maker-squirrel-6.0.0-beta.55.tgz#f0540ea7c0bee9ad4d4dd1e4a4d7f7a22b17216a"
integrity sha512-2ugnVUA1His7nquOtqXjmEFcfVqBV2WWKlEYb4T71aw4Sq+Dzsu3EPmcIjR7dtU8mBrQxRt0EYcz/ZDtgZOPag==
dependencies:
"@electron-forge/maker-base" "6.0.0-beta.55"
"@electron-forge/shared-types" "6.0.0-beta.55"
fs-extra "^9.0.1"
optionalDependencies:
electron-winstaller "^5.0.0"
"@electron-forge/maker-zip@^6.0.0-beta.54":
version "6.0.0-beta.54"
resolved "https://registry.yarnpkg.com/@electron-forge/maker-zip/-/maker-zip-6.0.0-beta.54.tgz#83d322afd912587fd233e87c30339d8150f29bed"
@@ -189,6 +220,16 @@
electron-rebuild "^2.0.3"
ora "^5.0.0"
"@electron-forge/shared-types@6.0.0-beta.55":
version "6.0.0-beta.55"
resolved "https://registry.yarnpkg.com/@electron-forge/shared-types/-/shared-types-6.0.0-beta.55.tgz#9dfc78d81a20bf95f66d393f723b18767896465a"
integrity sha512-tPXnt2Eh1gW8wlk0ieN/IYGgKFPG6LEUUsTh+zPmnsD4Md9M6Tv9nNiUitM5xvVhNZkezJB/Q0K7f9t+6J4sdw==
dependencies:
"@electron-forge/async-ora" "6.0.0-beta.55"
electron-packager "^15.0.0"
electron-rebuild "^2.3.2"
ora "^5.0.0"
"@electron-forge/template-base@6.0.0-beta.54":
version "6.0.0-beta.54"
resolved "https://registry.yarnpkg.com/@electron-forge/template-base/-/template-base-6.0.0-beta.54.tgz#a7f875ac3e70398d0310ee27f38057a566c6176a"
@@ -415,6 +456,21 @@ array-find-index@^1.0.1:
resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=
asar@^2.0.1:
version "2.1.0"
resolved "https://registry.yarnpkg.com/asar/-/asar-2.1.0.tgz#97c6a570408c4e38a18d4a3fb748a621b5a7844e"
integrity sha512-d2Ovma+bfqNpvBzY/KU8oPY67ZworixTpkjSx0PCXnQi67c2cXmssaTxpFDUM0ttopXoGx/KRxNg/GDThYbXQA==
dependencies:
chromium-pickle-js "^0.2.0"
commander "^2.20.0"
cuint "^0.2.2"
glob "^7.1.3"
minimatch "^3.0.4"
mkdirp "^0.5.1"
tmp-promise "^1.0.5"
optionalDependencies:
"@types/glob" "^7.1.1"
asar@^3.0.0:
version "3.0.3"
resolved "https://registry.yarnpkg.com/asar/-/asar-3.0.3.tgz#1fef03c2d6d2de0cbad138788e4f7ae03b129c7b"
@@ -725,7 +781,7 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
dependencies:
delayed-stream "~1.0.0"
commander@^2.8.1:
commander@^2.20.0, commander@^2.8.1:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
@@ -826,6 +882,11 @@ css-what@^4.0.0:
resolved "https://registry.yarnpkg.com/css-what/-/css-what-4.0.0.tgz#35e73761cab2eeb3d3661126b23d7aa0e8432233"
integrity sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A==
cuint@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b"
integrity sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=
currently-unhandled@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
@@ -854,7 +915,7 @@ debug@^3.1.0, debug@^3.2.6:
dependencies:
ms "^2.1.1"
debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1:
version "4.3.1"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
@@ -1111,7 +1172,7 @@ electron-packager@^15.0.0:
semver "^7.1.3"
yargs-parser "^20.0.0"
electron-rebuild@^2.0.3:
electron-rebuild@^2.0.3, electron-rebuild@^2.3.2:
version "2.3.5"
resolved "https://registry.yarnpkg.com/electron-rebuild/-/electron-rebuild-2.3.5.tgz#10dc38d1ffe1515ba2eef8b8be8e973ad1e1d597"
integrity sha512-1sQ1DRtQGpglFhc3urD4olMJzt/wxlbnAAsf+WY2xHf5c50ZovivZvCXSpVgTOP9f4TzOMvelWyspyfhxQKHzQ==
@@ -1136,6 +1197,17 @@ electron-squirrel-startup@^1.0.0:
dependencies:
debug "^2.2.0"
electron-winstaller@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/electron-winstaller/-/electron-winstaller-5.0.0.tgz#0db968f34d498b16c69566a40848f562e70e7bcc"
integrity sha512-V+jFda7aVAm0htCG8Q95buPUpmXZW9ujh1HdhSlWY6y4QnJnw4TfrmxTlQWV4p2ioF/71JMI/1YF+/qbSICogA==
dependencies:
asar "^2.0.1"
debug "^4.1.1"
fs-extra "^7.0.1"
lodash.template "^4.2.2"
temp "^0.9.0"
electron@12.0.2:
version "12.0.2"
resolved "https://registry.yarnpkg.com/electron/-/electron-12.0.2.tgz#d92be205f1937627bd6718aad44ac161382b4c2d"
@@ -1396,7 +1468,7 @@ fs-extra@^4.0.0:
jsonfile "^4.0.0"
universalify "^0.1.0"
fs-extra@^7.0.0:
fs-extra@^7.0.0, fs-extra@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
@@ -2080,11 +2152,31 @@ locate-path@^6.0.0:
dependencies:
p-locate "^5.0.0"
lodash._reinterpolate@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
lodash.get@^4.0.0:
version "4.4.2"
resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
lodash.template@^4.2.2:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab"
integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==
dependencies:
lodash._reinterpolate "^3.0.0"
lodash.templatesettings "^4.0.0"
lodash.templatesettings@^4.0.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33"
integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==
dependencies:
lodash._reinterpolate "^3.0.0"
lodash@^4.17.10, lodash@^4.17.19, lodash@^4.17.20:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
@@ -3033,7 +3125,7 @@ restore-cursor@^3.1.0:
onetime "^5.1.0"
signal-exit "^3.0.2"
rimraf@^2.6.1, rimraf@^2.7.1:
rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1:
version "2.7.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
@@ -3047,6 +3139,13 @@ rimraf@^3.0.0, rimraf@^3.0.2:
dependencies:
glob "^7.1.3"
rimraf@~2.6.2:
version "2.6.3"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
dependencies:
glob "^7.1.3"
roarr@^2.15.3:
version "2.15.4"
resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd"
@@ -3113,14 +3212,7 @@ semver@^6.2.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
semver@^7.1.3, semver@^7.2.1, semver@^7.3.2:
version "7.3.5"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
dependencies:
lru-cache "^6.0.0"
semver@^7.3.5:
semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.5:
version "7.3.5"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
@@ -3420,6 +3512,14 @@ tar@^6.0.2, tar@^6.0.5:
mkdirp "^1.0.3"
yallist "^4.0.0"
temp@^0.9.0:
version "0.9.4"
resolved "https://registry.yarnpkg.com/temp/-/temp-0.9.4.tgz#cd20a8580cb63635d0e4e9d4bd989d44286e7620"
integrity sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==
dependencies:
mkdirp "^0.5.1"
rimraf "~2.6.2"
throttleit@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf"
@@ -3438,6 +3538,21 @@ through@^2.3.6, through@^2.3.8:
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
tmp-promise@^1.0.5:
version "1.1.0"
resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-1.1.0.tgz#bb924d239029157b9bc1d506a6aa341f8b13e64c"
integrity sha512-8+Ah9aB1IRXCnIOxXZ0uFozV1nMU5xiu7hhFVUSxZ3bYu+psD4TzagCzVbexUCgNNGJnsmNDQlS4nG3mTyoNkw==
dependencies:
bluebird "^3.5.0"
tmp "0.1.0"
tmp@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877"
integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==
dependencies:
rimraf "^2.6.3"
tmp@^0.0.33:
version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
+13 -5
View File
@@ -11,11 +11,11 @@
},
"scripts": {
"doc:toc": "doctoc README.md",
"build": "EMBER_CLI_ELECTRON=true yarn build:production && yarn build:desktop",
"build:production": "ember build --environment=production",
"build": "yarn build:production && yarn build:desktop",
"build:production": "cross-env EMBER_CLI_ELECTRON=true ember build --environment=production",
"build:development": "ember build",
"prebuild:desktop": "cp -r dist/ electron-app/ember-dist/",
"build:desktop": "cd electron-app && yarn make",
"prebuild:desktop": "cross-os prebuild:desktop",
"build:desktop": "cd electron-app && yarn install && yarn make",
"lint": "npm-run-all --aggregate-output --continue-on-error --parallel 'lint:!(fix)'",
"lint:fix": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*:fix",
"lint:hbs": "ember-template-lint .",
@@ -34,10 +34,16 @@
"clean:coverage": "rm -rf coverage_*",
"pretest": "yarn clean:coverage",
"test": "npm-run-all lint test:*",
"test:ember": "COVERAGE=true ember exam --random",
"test:ember": "cross-env COVERAGE=true ember exam --random",
"postinstall": "cd electron-app && yarn install",
"posttest": "ember coverage-merge && yarn clean:coverage"
},
"cross-os": {
"prebuild:desktop": {
"darwin": "cp -r dist/ electron-app/ember-dist/",
"win32": "(robocopy dist electron-app\\ember-dist /MIR) ^& exit 0"
}
},
"dependencies": {
"ember-named-blocks-polyfill": "^0.2.4"
},
@@ -54,6 +60,8 @@
"broccoli-asset-rev": "^3.0.0",
"clipboard": "^2.0.6",
"core": "*",
"cross-env": "^7.0.3",
"cross-os": "^1.4.0",
"doctoc": "^1.4.0",
"ember-a11y-testing": "^4.0.2",
"ember-auto-import": "^1.10.1",
+1346 -1363
View File
File diff suppressed because it is too large. Load diff