app kind of start background side
This commit is contained in:
parent
6e8e8eaa9a
commit
2dfd09a7b1
29
Gruntfile.js
29
Gruntfile.js
|
@ -7,16 +7,15 @@ const toConcatForApp = [
|
|||
'node_modules/jquery/dist/jquery.js',
|
||||
'node_modules/bytebuffer/dist/bytebuffer.min.js',
|
||||
'node_modules/long/dist/long.js',
|
||||
'components/protobuf/**/*.js',
|
||||
'node_modules/mustache/mustache.js',
|
||||
'node_modules/underscore/underscore-min.js',
|
||||
'node_modules/backbone/backbone.js',
|
||||
];
|
||||
|
||||
const toConcatForComponentTextsecure = [
|
||||
'node_modules/long/dist/long.js',
|
||||
'components/protobuf/**/*.js',
|
||||
];
|
||||
// const toConcatForComponentTextsecure = [
|
||||
// 'node_modules/long/dist/long.js',
|
||||
// 'components/protobuf/**/*.js',
|
||||
// ];
|
||||
|
||||
module.exports = grunt => {
|
||||
const components = [];
|
||||
|
@ -25,11 +24,11 @@ module.exports = grunt => {
|
|||
components.push(toConcatForApp[i]);
|
||||
}
|
||||
|
||||
const libtextsecurecomponents = [];
|
||||
// eslint-disable-next-line guard-for-in, no-restricted-syntax
|
||||
for (const i in toConcatForComponentTextsecure) {
|
||||
libtextsecurecomponents.push(toConcatForComponentTextsecure[i]);
|
||||
}
|
||||
// const libtextsecurecomponents = [];
|
||||
// // eslint-disable-next-line guard-for-in, no-restricted-syntax
|
||||
// for (const i in toConcatForComponentTextsecure) {
|
||||
// libtextsecurecomponents.push(toConcatForComponentTextsecure[i]);
|
||||
// }
|
||||
|
||||
const utilWorkerComponents = [
|
||||
'node_modules/bytebuffer/dist/bytebuffer.js',
|
||||
|
@ -54,16 +53,16 @@ module.exports = grunt => {
|
|||
src: utilWorkerComponents,
|
||||
dest: 'js/util_worker.js',
|
||||
},
|
||||
libtextsecurecomponents: {
|
||||
src: libtextsecurecomponents,
|
||||
dest: 'libtextsecure/components.js',
|
||||
},
|
||||
// libtextsecurecomponents: {
|
||||
// src: libtextsecurecomponents,
|
||||
// dest: 'libtextsecure/components.js',
|
||||
// },
|
||||
libtextsecure: {
|
||||
options: {
|
||||
banner: ';(function() {\n',
|
||||
footer: '})();\n',
|
||||
},
|
||||
src: ['libtextsecure/errors.js', 'libtextsecure/libsignal-protocol.js'],
|
||||
src: ['libtextsecure/libsignal-protocol.js'],
|
||||
dest: 'js/libtextsecure.js',
|
||||
},
|
||||
},
|
||||
|
|
20
package.json
20
package.json
|
@ -12,9 +12,9 @@
|
|||
"type": "git",
|
||||
"url": "https://github.com/oxen-io/session-desktop.git"
|
||||
},
|
||||
"main": "main.js",
|
||||
"main": "dist/electron_main.js",
|
||||
"scripts": {
|
||||
"postinstall": "electron-builder install-app-deps && rimraf node_modules/dtrace-provider",
|
||||
"postinstall": "yarn patch-package && yarn electron-builder install-app-deps",
|
||||
"start-prod": "cross-env NODE_ENV=production NODE_APP_INSTANCE=devprod$MULTI electron .",
|
||||
"grunt": "yarn clean-transpile && grunt",
|
||||
"generate": "yarn grunt --force",
|
||||
|
@ -41,19 +41,19 @@
|
|||
"sedtoAppImage": "sed -i 's/\"target\": \\[\"deb\", \"rpm\", \"freebsd\"\\]/\"target\": \"AppImage\"/g' package.json",
|
||||
"sedtoDeb": "sed -i 's/\"target\": \"AppImage\"/\"target\": \\[\"deb\", \"rpm\", \"freebsd\"\\]/g' package.json",
|
||||
"build:webpack": "webpack --config ./webpack.config.js",
|
||||
"start:webpack": "yarn build && electron ./dist/electron.js"
|
||||
"start:webpack": "yarn build && electron ./dist/electron_main.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@reduxjs/toolkit": "^1.4.0",
|
||||
"abort-controller": "3.0.0",
|
||||
"auto-bind": "^4.0.0",
|
||||
"backbone": "1.3.3",
|
||||
"better-sqlite3": "https://github.com/signalapp/better-sqlite3#ad0db5dd09c0ea4007b1c46bd4f7273827803347",
|
||||
"better-sqlite3": "https://github.com/signalapp/better-sqlite3#4f66ee7b85477016dd0b2c3d2f13dcb60abd452e",
|
||||
"blob-util": "2.0.2",
|
||||
"blueimp-canvas-to-blob": "^3.29.0",
|
||||
"blueimp-load-image": "5.14.0",
|
||||
"buffer-crc32": "0.2.13",
|
||||
"bunyan": "1.8.12",
|
||||
"bunyan": "^1.8.15",
|
||||
"bytebuffer": "^5.0.1",
|
||||
"classnames": "2.2.5",
|
||||
"color": "^3.1.2",
|
||||
|
@ -116,7 +116,7 @@
|
|||
"devDependencies": {
|
||||
"@playwright/test": "^1.16.3",
|
||||
"@types/backbone": "^1.4.2",
|
||||
"@types/better-sqlite3": "5.4.1",
|
||||
"@types/better-sqlite3": "7.4.0",
|
||||
"@types/blueimp-load-image": "5.14.4",
|
||||
"@types/buffer-crc32": "^0.2.0",
|
||||
"@types/bunyan": "^1.8.8",
|
||||
|
@ -159,7 +159,7 @@
|
|||
"chai-as-promised": "^7.1.1",
|
||||
"chai-bytes": "^0.1.2",
|
||||
"cross-env": "^6.0.3",
|
||||
"electron": "^13.6.2",
|
||||
"electron": "^17.1.2",
|
||||
"electron-builder": "22.8.0",
|
||||
"electron-notarize": "^0.2.0",
|
||||
"eslint": "4.14.0",
|
||||
|
@ -179,13 +179,17 @@
|
|||
"html-webpack-plugin": "^5.5.0",
|
||||
"mocha": "4.1.0",
|
||||
"mocha-testcheck": "1.0.0-rc.0",
|
||||
"node-bindings-loader": "^1.5.0",
|
||||
"node-gyp": "3.8.0",
|
||||
"node-loader": "^2.0.0",
|
||||
"node-sass-import-once": "1.2.0",
|
||||
"patch-package": "^6.4.7",
|
||||
"playwright": "^1.16.3",
|
||||
"postinstall-prepare": "^1.0.1",
|
||||
"prettier": "1.19.0",
|
||||
"run-script-os": "^1.1.6",
|
||||
"sinon": "9.0.2",
|
||||
"terser-webpack-plugin": "^5.3.1",
|
||||
"ts-loader": "^9.2.8",
|
||||
"ts-mock-imports": "^1.3.0",
|
||||
"tslint": "5.19.0",
|
||||
|
@ -196,7 +200,7 @@
|
|||
"webpack-cli": "^4.9.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^14.16.0"
|
||||
"node": "16.13.0"
|
||||
},
|
||||
"build": {
|
||||
"appId": "com.loki-project.messenger-desktop",
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
diff --git a/node_modules/bunyan/lib/bunyan.js b/node_modules/bunyan/lib/bunyan.js
|
||||
index f988560..11af013 100644
|
||||
--- a/node_modules/bunyan/lib/bunyan.js
|
||||
+++ b/node_modules/bunyan/lib/bunyan.js
|
||||
@@ -76,7 +76,8 @@ if (runtimeEnv === 'browser') {
|
||||
os = require('os');
|
||||
fs = require('fs');
|
||||
try {
|
||||
- dtrace = require('dtrace-provider' + '');
|
||||
+ throw new Error('dtrace-provider is not available')
|
||||
+ // dtrace = require('dtrace-provider' + '');
|
||||
} catch (e) {
|
||||
dtrace = null;
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/node_modules/bytebuffer/dist/bytebuffer-node.js b/node_modules/bytebuffer/dist/bytebuffer-node.js
|
||||
index 93a7c46..11fed8c 100644
|
||||
--- a/node_modules/bytebuffer/dist/bytebuffer-node.js
|
||||
+++ b/node_modules/bytebuffer/dist/bytebuffer-node.js
|
||||
@@ -26,7 +26,7 @@ module.exports = (function() {
|
||||
var buffer = require("buffer"),
|
||||
Buffer = buffer["Buffer"],
|
||||
Long = require("long"),
|
||||
- memcpy = null; try { memcpy = require("memcpy"); } catch (e) {}
|
||||
+ memcpy = null; // try { memcpy = require("memcpy"); } catch (e) {}
|
||||
|
||||
/**
|
||||
* Constructs a new ByteBuffer.
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/node_modules/component-classes/index.js b/node_modules/component-classes/index.js
|
||||
index eb9d292..752ebf2 100644
|
||||
--- a/node_modules/component-classes/index.js
|
||||
+++ b/node_modules/component-classes/index.js
|
||||
@@ -3,7 +3,7 @@
|
||||
*/
|
||||
|
||||
try {
|
||||
- var index = require('indexof');
|
||||
+ // var index = require('indexof');
|
||||
} catch (err) {
|
||||
var index = require('component-indexof');
|
||||
}
|
|
@ -0,0 +1,162 @@
|
|||
index a7651ef..9f29cc7 100644
|
||||
--- a/node_modules/config/lib/config.js
|
||||
+++ b/node_modules/config/lib/config.js
|
||||
@@ -870,59 +870,8 @@ util.parseFile = function(fullFilename) {
|
||||
}
|
||||
}
|
||||
|
||||
- if (extension === 'js') {
|
||||
- // Use the built-in parser for .js files
|
||||
- configObject = require(fullFilename);
|
||||
- }
|
||||
- else if (extension === 'ts') {
|
||||
- require('ts-node').register({
|
||||
- lazy: true,
|
||||
- compilerOptions: {
|
||||
- allowJs: true,
|
||||
- }
|
||||
- });
|
||||
-
|
||||
- // Because of ES6 modules usage, `default` is treated as named export (like any other)
|
||||
- // Therefore config is a value of `default` key.
|
||||
- configObject = require(fullFilename).default;
|
||||
- }
|
||||
- else if (extension === 'coffee') {
|
||||
- // .coffee files can be loaded with either coffee-script or iced-coffee-script.
|
||||
- // Prefer iced-coffee-script, if it exists.
|
||||
- // Lazy load the appropriate extension
|
||||
- if (!Coffee) {
|
||||
- Coffee = {};
|
||||
-
|
||||
- // The following enables iced-coffee-script on .coffee files, if iced-coffee-script is available.
|
||||
- // This is commented as per a decision on a pull request.
|
||||
- //try {
|
||||
- // Coffee = require("iced-coffee-script");
|
||||
- //}
|
||||
- //catch (e) {
|
||||
- // Coffee = require("coffee-script");
|
||||
- //}
|
||||
-
|
||||
- Coffee = require("coffee-script");
|
||||
-
|
||||
- // coffee-script >= 1.7.0 requires explicit registration for require() to work
|
||||
- if (Coffee.register) {
|
||||
- Coffee.register();
|
||||
- }
|
||||
- }
|
||||
- // Use the built-in parser for .coffee files with coffee-script
|
||||
- configObject = require(fullFilename);
|
||||
- }
|
||||
- else if (extension === 'iced') {
|
||||
- Iced = require("iced-coffee-script");
|
||||
-
|
||||
- // coffee-script >= 1.7.0 requires explicit registration for require() to work
|
||||
- if (Iced.register) {
|
||||
- Iced.register();
|
||||
- }
|
||||
- }
|
||||
- else {
|
||||
configObject = util.parseString(fileContent, extension);
|
||||
- }
|
||||
+
|
||||
}
|
||||
catch (e3) {
|
||||
if (gitCryptTestRegex.test(fileContent)) {
|
||||
@@ -974,36 +923,7 @@ util.parseString = function (content, format) {
|
||||
var configObject = null;
|
||||
|
||||
// Parse the file based on extension
|
||||
- if (format === 'yaml' || format === 'yml') {
|
||||
- if (!Yaml && !VisionmediaYaml) {
|
||||
- // Lazy loading
|
||||
- try {
|
||||
- // Try to load the better js-yaml module
|
||||
- Yaml = require('js-yaml');
|
||||
- }
|
||||
- catch (e) {
|
||||
- try {
|
||||
- // If it doesn't exist, load the fallback visionmedia yaml module.
|
||||
- VisionmediaYaml = require('yaml');
|
||||
- }
|
||||
- catch (e) { }
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- if (Yaml) {
|
||||
- configObject = Yaml.load(content);
|
||||
- }
|
||||
- else if (VisionmediaYaml) {
|
||||
- // The yaml library doesn't like strings that have newlines but don't
|
||||
- // end in a newline: https://github.com/visionmedia/js-yaml/issues/issue/13
|
||||
- content += '\n';
|
||||
- configObject = VisionmediaYaml.eval(util.stripYamlComments(content));
|
||||
- }
|
||||
- else {
|
||||
- console.error("No YAML parser loaded. Suggest adding js-yaml dependency to your package.json file.")
|
||||
- }
|
||||
- }
|
||||
- else if (format === 'json') {
|
||||
+ if (format === 'json') {
|
||||
try {
|
||||
configObject = JSON.parse(content);
|
||||
}
|
||||
@@ -1021,59 +941,6 @@ util.parseString = function (content, format) {
|
||||
configObject = JSON5.parse(content);
|
||||
}
|
||||
}
|
||||
- else if (format === 'json5') {
|
||||
-
|
||||
- if (!JSON5) {
|
||||
- JSON5 = require('json5');
|
||||
- }
|
||||
-
|
||||
- configObject = JSON5.parse(content);
|
||||
-
|
||||
- } else if (format === 'hjson') {
|
||||
-
|
||||
- if (!HJSON) {
|
||||
- HJSON = require('hjson');
|
||||
- }
|
||||
-
|
||||
- configObject = HJSON.parse(content);
|
||||
-
|
||||
- } else if (format === 'toml') {
|
||||
-
|
||||
- if(!TOML) {
|
||||
- TOML = require('toml');
|
||||
- }
|
||||
-
|
||||
- configObject = TOML.parse(content);
|
||||
- }
|
||||
- else if (format === 'cson') {
|
||||
- if (!CSON) {
|
||||
- CSON = require('cson');
|
||||
- }
|
||||
- // Allow comments in CSON files
|
||||
- if (typeof CSON.parseSync === 'function') {
|
||||
- configObject = CSON.parseSync(util.stripComments(content));
|
||||
- } else {
|
||||
- configObject = CSON.parse(util.stripComments(content));
|
||||
- }
|
||||
- }
|
||||
- else if (format === 'properties') {
|
||||
- if (!PPARSER) {
|
||||
- PPARSER = require('properties');
|
||||
- }
|
||||
- configObject = PPARSER.parse(content, { namespaces: true, variables: true, sections: true });
|
||||
- } else if (format === 'xml') {
|
||||
-
|
||||
- if (!XML) {
|
||||
- XML = require('x2js');
|
||||
- }
|
||||
-
|
||||
- var x2js = new XML();
|
||||
- configObject = x2js.xml2js(content);
|
||||
- var rootKeys = Object.keys(configObject);
|
||||
- if(rootKeys.length == 1) {
|
||||
- configObject = configObject[rootKeys[0]];
|
||||
- }
|
||||
- }
|
||||
|
||||
return configObject;
|
||||
};
|
|
@ -5,7 +5,10 @@ import pify from 'pify';
|
|||
import { default as glob } from 'glob';
|
||||
import fse from 'fs-extra';
|
||||
import { isArrayBuffer, isString, map } from 'lodash';
|
||||
import { decryptAttachmentBuffer, encryptAttachmentBuffer } from '../../ts/types/Attachment';
|
||||
import {
|
||||
decryptAttachmentBuffer,
|
||||
encryptAttachmentBuffer,
|
||||
} from '../node/local_attachments_encrypter';
|
||||
|
||||
const PATH = 'attachments.noindex';
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import React from 'react';
|
||||
|
||||
import { missingCaseError, PasswordUtil } from '../../util';
|
||||
import { missingCaseError } from '../../util';
|
||||
import { ToastUtils } from '../../session/utils';
|
||||
import { getPasswordHash } from '../../data/data';
|
||||
import { SpacerLG, SpacerSM } from '../basic/Text';
|
||||
|
@ -9,6 +9,7 @@ import { sessionPassword } from '../../state/ducks/modalDialog';
|
|||
import { LocalizerKeys } from '../../types/LocalizerKeys';
|
||||
import { SessionButton, SessionButtonColor } from '../basic/SessionButton';
|
||||
import { SessionWrapperModal } from '../SessionWrapperModal';
|
||||
import { matchesHash, validatePassword } from '../../util/passwordUtils';
|
||||
|
||||
export type PasswordAction = 'set' | 'change' | 'remove';
|
||||
|
||||
|
@ -118,7 +119,7 @@ export class SessionPasswordDialog extends React.Component<Props, State> {
|
|||
public async validatePasswordHash(password: string | null) {
|
||||
// Check if the password matches the hash we have stored
|
||||
const hash = await getPasswordHash();
|
||||
if (hash && !PasswordUtil.matchesHash(password, hash)) {
|
||||
if (hash && !matchesHash(password, hash)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -146,7 +147,7 @@ export class SessionPasswordDialog extends React.Component<Props, State> {
|
|||
*/
|
||||
private validatePassword(firstPassword: string) {
|
||||
// if user did not fill the first password field, we can't do anything
|
||||
const errorFirstInput = PasswordUtil.validatePassword(firstPassword);
|
||||
const errorFirstInput = validatePassword(firstPassword);
|
||||
if (errorFirstInput !== null) {
|
||||
this.setState({
|
||||
error: errorFirstInput,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import React, { useEffect, useState } from 'react';
|
||||
|
||||
import { ToastUtils } from '../../session/utils';
|
||||
import { PasswordUtil } from '../../util';
|
||||
import { matchesHash } from '../../util/passwordUtils';
|
||||
import { getPasswordHash } from '../../data/data';
|
||||
import { QRCode } from 'react-qr-svg';
|
||||
import { mn_decode } from '../../session/crypto/mnemonic';
|
||||
|
@ -27,7 +27,7 @@ const Password = (props: PasswordProps) => {
|
|||
|
||||
const confirmPassword = () => {
|
||||
const passwordValue = jQuery('#seed-input-password').val();
|
||||
const isPasswordValid = PasswordUtil.matchesHash(passwordValue as string, passwordHash);
|
||||
const isPasswordValid = matchesHash(passwordValue as string, passwordHash);
|
||||
|
||||
if (!passwordValue) {
|
||||
setError('noGivenPassword');
|
||||
|
|
|
@ -12,7 +12,7 @@ import { SettingsCategoryAppearance } from './section/CategoryAppearance';
|
|||
import { SessionButton, SessionButtonColor, SessionButtonType } from '../basic/SessionButton';
|
||||
import { getPasswordHash } from '../../data/data';
|
||||
import { LocalizerKeys } from '../../types/LocalizerKeys';
|
||||
import { PasswordUtil } from '../../util';
|
||||
import { matchesHash } from '../../util/passwordUtils';
|
||||
|
||||
export function getMediaPermissionsSettings() {
|
||||
return window.getSettingValue('media-permissions');
|
||||
|
@ -161,7 +161,7 @@ export class SessionSettingsView extends React.Component<SettingsViewProps, Stat
|
|||
|
||||
// Check if the password matches the hash we have stored
|
||||
const hash = await getPasswordHash();
|
||||
if (hash && !PasswordUtil.matchesHash(enteredPassword, hash)) {
|
||||
if (hash && !matchesHash(enteredPassword, hash)) {
|
||||
this.setState({
|
||||
pwdLockError: window.i18n('invalidPassword'),
|
||||
});
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { remote } from 'electron';
|
||||
import { app } from 'electron';
|
||||
import { useCallback, useEffect } from 'react';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { isElectronWindowFocused } from '../session/utils/WindowUtils';
|
||||
|
@ -26,11 +26,11 @@ export function useAppIsFocused() {
|
|||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
remote.app.on('browser-window-focus', onFocusCallback);
|
||||
remote.app.on('browser-window-blur', onBlurCallback);
|
||||
app.on('browser-window-focus', onFocusCallback);
|
||||
app.on('browser-window-blur', onBlurCallback);
|
||||
return () => {
|
||||
remote.app.removeListener('browser-window-blur', onBlurCallback);
|
||||
remote.app.removeListener('browser-window-focus', onFocusCallback);
|
||||
app.removeListener('browser-window-blur', onBlurCallback);
|
||||
app.removeListener('browser-window-focus', onFocusCallback);
|
||||
};
|
||||
});
|
||||
|
||||
|
|
|
@ -19,9 +19,12 @@ import crypto from 'crypto';
|
|||
|
||||
import _ from 'lodash';
|
||||
import pify from 'pify';
|
||||
import { setup as setupSpellChecker } from '../node/spell_check';
|
||||
import packageJson from '../../package.json';
|
||||
import { setupGlobalErrorHandler } from '../node/global_errors';
|
||||
import Logger from 'bunyan';
|
||||
|
||||
import { setup as setupSpellChecker } from '../node/spell_check'; // checked - only node
|
||||
import { setupGlobalErrorHandler } from '../node/global_errors'; // checked - only node
|
||||
|
||||
import packageJson from '../../package.json'; // checked - only node
|
||||
|
||||
setupGlobalErrorHandler();
|
||||
import electronLocalshortcut from 'electron-localshortcut';
|
||||
|
@ -51,12 +54,12 @@ let readyForShutdown: boolean = false;
|
|||
// Tray icon and related objects
|
||||
let tray: any = null;
|
||||
|
||||
import { config } from '../node/config';
|
||||
import { config } from '../node/config'; // checked - only node
|
||||
|
||||
// Very important to put before the single instance check, since it is based on the
|
||||
// userData directory.
|
||||
import { userConfig } from '../node/config/user_config';
|
||||
import * as passwordUtil from '../util/passwordUtils';
|
||||
import { userConfig } from '../node/config/user_config'; // checked - only node
|
||||
import * as PasswordUtil from '../util/passwordUtils'; // checked - only node
|
||||
|
||||
const development = (config as any).environment === 'development';
|
||||
const appInstance = config.util.getEnv('NODE_APP_INSTANCE') || 0;
|
||||
|
@ -65,18 +68,17 @@ const appInstance = config.util.getEnv('NODE_APP_INSTANCE') || 0;
|
|||
// data directory has been set.
|
||||
import { initAttachmentsChannel } from '../node/attachment_channel';
|
||||
|
||||
import * as updater from '../updater/index';
|
||||
import * as updater from '../updater/index'; // checked - only node
|
||||
|
||||
import { createTrayIcon } from '../node/tray_icon';
|
||||
import { ephemeralConfig } from '../node/config/ephemeral_config';
|
||||
import { getLogger, initializeLogger } from '../node/logging';
|
||||
import { sqlNode } from '../node/sql';
|
||||
import * as sqlChannels from '../node/sql_channel';
|
||||
import { windowMarkShouldQuit, windowShouldQuit } from '../node/window_state';
|
||||
import { createTemplate } from '../node/menu';
|
||||
import { installFileHandler, installWebHandler } from '../node/protocol_filter';
|
||||
import { installPermissionsHandler } from '../node/permissions';
|
||||
import Logger from 'bunyan';
|
||||
import { createTrayIcon } from '../node/tray_icon'; // checked - only node
|
||||
import { ephemeralConfig } from '../node/config/ephemeral_config'; // checked - only node
|
||||
import { getLogger, initializeLogger } from '../node/logging'; // checked - only node
|
||||
import { sqlNode } from '../node/sql'; // checked - only node
|
||||
import * as sqlChannels from '../node/sql_channel'; // checked - only node
|
||||
import { windowMarkShouldQuit, windowShouldQuit } from '../node/window_state'; // checked - only node
|
||||
import { createTemplate } from '../node/menu'; // checked - only node
|
||||
import { installFileHandler, installWebHandler } from '../node/protocol_filter'; // checked - only node
|
||||
import { installPermissionsHandler } from '../node/permissions'; // checked - only node
|
||||
|
||||
let appStartInitialSpellcheckSetting = true;
|
||||
|
||||
|
@ -244,6 +246,7 @@ function getStartInTray() {
|
|||
// tslint:disable-next-line: max-func-body-length
|
||||
async function createWindow() {
|
||||
const { minWidth, minHeight, width, height } = getWindowSize();
|
||||
windowConfig = windowConfig || {};
|
||||
const picked = {
|
||||
maximized: (windowConfig as any).maximized || false,
|
||||
autoHideMenuBar: (windowConfig as any).autoHideMenuBar || false,
|
||||
|
@ -364,7 +367,7 @@ async function createWindow() {
|
|||
}
|
||||
});
|
||||
|
||||
await mainWindow.loadURL(prepareURL([__dirname, 'background.html']));
|
||||
await mainWindow.loadURL(prepareURL([__dirname, '../background.html']));
|
||||
|
||||
if ((process.env.NODE_APP_INSTANCE || '').startsWith('devprod')) {
|
||||
// Open the DevTools.
|
||||
|
@ -914,7 +917,7 @@ ipc.on('set-password', async (event, passPhrase, oldPhrase) => {
|
|||
// Check if the hash we have stored matches the hash of the old passphrase.
|
||||
const hash = sqlNode.getPasswordHash();
|
||||
|
||||
const hashMatches = oldPhrase && passwordUtil.matchesHash(oldPhrase, hash);
|
||||
const hashMatches = oldPhrase && PasswordUtil.matchesHash(oldPhrase, hash);
|
||||
if (hash && !hashMatches) {
|
||||
const incorrectOldPassword = locale.messages.invalidOldPassword;
|
||||
sendResponse(
|
||||
|
@ -930,7 +933,7 @@ ipc.on('set-password', async (event, passPhrase, oldPhrase) => {
|
|||
userConfig.set('dbHasPassword', false);
|
||||
} else {
|
||||
sqlNode.setSQLPassword(passPhrase);
|
||||
const newHash = passwordUtil.generateHash(passPhrase);
|
||||
const newHash = PasswordUtil.generateHash(passPhrase);
|
||||
sqlNode.savePasswordHash(newHash);
|
||||
userConfig.set('dbHasPassword', true);
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ import { MessageModel } from '../models/message';
|
|||
import { isMacOS } from '../OS';
|
||||
import { queueAllCached } from '../receiver/receiver';
|
||||
import { getConversationController } from '../session/conversations';
|
||||
import { AttachmentDownloads } from '../session/utils';
|
||||
import { AttachmentDownloads, ToastUtils } from '../session/utils';
|
||||
import { getOurPubKeyStrFromCache } from '../session/utils/User';
|
||||
import { BlockedNumberController } from '../util';
|
||||
import { ExpirationTimerOptions } from '../util/expiringMessages';
|
||||
|
@ -166,7 +166,7 @@ Storage.onready(async () => {
|
|||
window.Events.setThemeSetting(newThemeSetting);
|
||||
|
||||
try {
|
||||
AttachmentDownloads.initAttachmentPaths();
|
||||
await AttachmentDownloads.initAttachmentPaths();
|
||||
|
||||
await Promise.all([getConversationController().load(), BlockedNumberController.load()]);
|
||||
} catch (error) {
|
||||
|
@ -280,7 +280,7 @@ async function start() {
|
|||
// if not undefined, we take the opposite
|
||||
const newValue = currentValue !== undefined ? !currentValue : false;
|
||||
window.Events.setSpellCheck(newValue);
|
||||
window.libsession.Utils.ToastUtils.pushRestartNeeded();
|
||||
ToastUtils.pushRestartNeeded();
|
||||
};
|
||||
|
||||
window.toggleMediaPermissions = async () => {
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
import { ipcMain } from 'electron';
|
||||
import rimraf from 'rimraf';
|
||||
|
||||
import * as Attachments from '../attachments/attachments';
|
||||
import { deleteAll, ensureDirectory, getAllAttachments, getPath } from '../attachments/attachments';
|
||||
// tslint:disable: no-console
|
||||
import { sqlNode } from './sql';
|
||||
import { sqlNode } from './sql'; // checked - only node
|
||||
|
||||
let initialized = false;
|
||||
|
||||
const ERASE_ATTACHMENTS_KEY = 'erase-attachments';
|
||||
const CLEANUP_ORPHANED_ATTACHMENTS_KEY = 'cleanup-orphaned-attachments';
|
||||
|
||||
export async function cleanupOrphanedAttachments(userDataPath: string) {
|
||||
const allAttachments = await Attachments.getAllAttachments(userDataPath);
|
||||
async function cleanupOrphanedAttachments(userDataPath: string) {
|
||||
const allAttachments = await getAllAttachments(userDataPath);
|
||||
const orphanedAttachments = sqlNode.removeKnownAttachments(allAttachments); //sql.js
|
||||
await Attachments.deleteAll({
|
||||
await deleteAll({
|
||||
userDataPath,
|
||||
attachments: orphanedAttachments,
|
||||
});
|
||||
|
@ -26,9 +26,9 @@ export async function initAttachmentsChannel({ userDataPath }: { userDataPath: s
|
|||
initialized = true;
|
||||
|
||||
console.log('Ensure attachments directory exists');
|
||||
await Attachments.ensureDirectory(userDataPath);
|
||||
await ensureDirectory(userDataPath);
|
||||
|
||||
const attachmentsDir = Attachments.getPath(userDataPath);
|
||||
const attachmentsDir = getPath(userDataPath);
|
||||
|
||||
ipcMain.on(ERASE_ATTACHMENTS_KEY, event => {
|
||||
try {
|
||||
|
|
|
@ -37,7 +37,7 @@ import c from 'config';
|
|||
|
||||
// Log resulting env vars in use by config
|
||||
['NODE_ENV', 'NODE_APP_INSTANCE', 'NODE_CONFIG_DIR', 'NODE_CONFIG'].forEach(s => {
|
||||
console.log(`${s} ${config.util.getEnv(s)}`);
|
||||
console.log(`${s} ${c.util.getEnv(s)}`);
|
||||
});
|
||||
|
||||
export const config = c;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { app, clipboard, dialog } from 'electron';
|
||||
import { redactAll } from '../util/privacy';
|
||||
import { LocaleMessagesType } from './locale';
|
||||
import { ConsoleCustom } from './logging';
|
||||
import { redactAll } from '../util/privacy'; // checked - only node
|
||||
import { LocaleMessagesType } from './locale'; // checked - only node
|
||||
import { ConsoleCustom } from './logging'; // checked - only node
|
||||
// tslint:disable: no-console
|
||||
|
||||
// We use hard-coded strings until we're able to update these strings from the locale.
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
import { isArrayBuffer } from 'lodash';
|
||||
import { fromHexToArray } from '../session/utils/String';
|
||||
import { sqlNode } from './sql';
|
||||
|
||||
export const encryptAttachmentBuffer = async (bufferIn: ArrayBuffer) => {
|
||||
if (!isArrayBuffer(bufferIn)) {
|
||||
throw new TypeError("'bufferIn' must be an array buffer");
|
||||
}
|
||||
const key = sqlNode.getItemById('local_attachment_encrypted_key')?.value as string | undefined;
|
||||
if (!key) {
|
||||
throw new TypeError(
|
||||
"'encryptAttachmentBuffer' needs a key set in local_attachment_encrypted_key"
|
||||
);
|
||||
}
|
||||
const encryptingKey = fromHexToArray(key);
|
||||
return window.callWorker('encryptAttachmentBuffer', encryptingKey, bufferIn);
|
||||
};
|
||||
|
||||
export const decryptAttachmentBuffer = async (bufferIn: ArrayBuffer): Promise<Uint8Array> => {
|
||||
if (!isArrayBuffer(bufferIn)) {
|
||||
throw new TypeError("'bufferIn' must be an array buffer");
|
||||
}
|
||||
const key = sqlNode.getItemById('local_attachment_encrypted_key')?.value as string;
|
||||
if (!key) {
|
||||
throw new TypeError(
|
||||
"'decryptAttachmentBuffer' needs a key set in local_attachment_encrypted_key"
|
||||
);
|
||||
}
|
||||
const encryptingKey = fromHexToArray(key);
|
||||
return window.callWorker('decryptAttachmentBuffer', encryptingKey, bufferIn);
|
||||
};
|
|
@ -3,7 +3,7 @@
|
|||
// tslint:disable: no-console
|
||||
|
||||
import { UserConfig } from './config/user_config';
|
||||
import { session } from 'electron/main';
|
||||
import { session } from 'electron';
|
||||
|
||||
const PERMISSIONS: Record<string, boolean> = {
|
||||
// Allowed
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import path from 'path';
|
||||
import fs from 'fs';
|
||||
import { Protocol } from 'electron';
|
||||
import { ProtocolRequest } from 'electron/main';
|
||||
import { Protocol, ProtocolRequest } from 'electron';
|
||||
// tslint:disable: no-console
|
||||
|
||||
function eliminateAllAfterCharacter(str: string, character: string) {
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
// tslint:disable: no-console
|
||||
|
||||
import { Menu } from 'electron';
|
||||
import { BrowserWindow } from 'electron/main';
|
||||
import { BrowserWindow, Menu } from 'electron';
|
||||
import { osLocaleSync } from 'os-locale';
|
||||
|
||||
export const setup = (browserWindow: BrowserWindow, messages: any) => {
|
||||
|
|
|
@ -16,15 +16,20 @@ import {
|
|||
map,
|
||||
uniq,
|
||||
} from 'lodash';
|
||||
import { redactAll } from '../util/privacy';
|
||||
import { LocaleMessagesType } from './locale';
|
||||
import { PubKey } from '../session/types';
|
||||
import { StorageItem } from './storage_item';
|
||||
import { redactAll } from '../util/privacy'; // checked - only node
|
||||
import { LocaleMessagesType } from './locale'; // checked - only node
|
||||
import { PubKey } from '../session/types/PubKey'; // checked - only node
|
||||
import { StorageItem } from './storage_item'; // checked - only node
|
||||
// tslint:disable: no-console
|
||||
// tslint:disable: non-literal-fs-path
|
||||
// tslint:disable: one-variable-per-declaration
|
||||
// tslint:disable: quotemark
|
||||
|
||||
const openDbOptions = {
|
||||
verbose: undefined,
|
||||
nativeBinding: './node_modules/better-sqlite3/build/Release/better_sqlite3.node',
|
||||
};
|
||||
|
||||
const CONVERSATIONS_TABLE = 'conversations';
|
||||
const MESSAGES_TABLE = 'messages';
|
||||
const MESSAGES_FTS_TABLE = 'messages_fts';
|
||||
|
@ -134,7 +139,7 @@ function openAndMigrateDatabase(filePath: string, key: string) {
|
|||
|
||||
// First, we try to open the database without any cipher changes
|
||||
try {
|
||||
db = new BetterSqlite3.default(filePath, { verbose: undefined });
|
||||
db = new BetterSqlite3.default(filePath, openDbOptions);
|
||||
|
||||
keyDatabase(db, key);
|
||||
switchToWAL(db);
|
||||
|
@ -154,7 +159,7 @@ function openAndMigrateDatabase(filePath: string, key: string) {
|
|||
|
||||
let db1;
|
||||
try {
|
||||
db1 = new BetterSqlite3.default(filePath, { verbose: undefined });
|
||||
db1 = new BetterSqlite3.default(filePath, openDbOptions);
|
||||
keyDatabase(db1, key);
|
||||
|
||||
// https://www.zetetic.net/blog/2018/11/30/sqlcipher-400-release/#compatability-sqlcipher-4-0-0
|
||||
|
@ -172,7 +177,7 @@ function openAndMigrateDatabase(filePath: string, key: string) {
|
|||
// migrate to the latest ciphers after we've modified the defaults.
|
||||
let db2;
|
||||
try {
|
||||
db2 = new BetterSqlite3.default(filePath, { verbose: undefined });
|
||||
db2 = new BetterSqlite3.default(filePath, openDbOptions);
|
||||
keyDatabase(db2, key);
|
||||
|
||||
db2.pragma('cipher_migrate');
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { ipcMain } from 'electron';
|
||||
import { sqlNode } from './sql';
|
||||
import { userConfig } from './config/user_config';
|
||||
import { ephemeralConfig } from './config/ephemeral_config';
|
||||
import { app, ipcMain } from 'electron';
|
||||
import { sqlNode } from './sql'; // checked - only node
|
||||
import { userConfig } from './config/user_config'; // checked - only node
|
||||
import { ephemeralConfig } from './config/ephemeral_config'; // checked - only node
|
||||
|
||||
let initialized = false;
|
||||
|
||||
|
@ -42,4 +42,11 @@ export function initialize() {
|
|||
event.sender.send(`${ERASE_SQL_KEY}-done`, error);
|
||||
}
|
||||
});
|
||||
|
||||
ipcMain.on('get-user-data-path', () => {
|
||||
return app.getPath('userData');
|
||||
});
|
||||
ipcMain.on('get-data-path', () => {
|
||||
return app.getAppPath();
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import path from 'path';
|
||||
|
||||
import { app, Menu, Tray } from 'electron';
|
||||
import { BrowserWindow } from 'electron/main';
|
||||
import { app, BrowserWindow, Menu, Tray } from 'electron';
|
||||
import { LocaleMessagesType } from './locale';
|
||||
|
||||
let trayContextMenu = null;
|
||||
|
|
|
@ -6,11 +6,11 @@ import _ from 'lodash';
|
|||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import tls from 'tls';
|
||||
import { remote } from 'electron';
|
||||
import { sha256 } from '../../crypto';
|
||||
import * as Data from '../../../data/data';
|
||||
import pRetry from 'p-retry';
|
||||
import { SeedNodeAPI } from '.';
|
||||
import { ipcRenderer } from 'electron';
|
||||
|
||||
// tslint:disable: function-name
|
||||
|
||||
|
@ -57,7 +57,9 @@ export async function fetchSnodePoolFromSeedNodeWithRetries(
|
|||
}
|
||||
}
|
||||
|
||||
const getSslAgentForSeedNode = (seedNodeHost: string, isSsl = false) => {
|
||||
let cachedAppPath: string | undefined;
|
||||
|
||||
const getSslAgentForSeedNode = async (seedNodeHost: string, isSsl = false) => {
|
||||
let filePrefix = '';
|
||||
let pubkey256 = '';
|
||||
let cert256 = '';
|
||||
|
@ -92,7 +94,8 @@ const getSslAgentForSeedNode = (seedNodeHost: string, isSsl = false) => {
|
|||
}
|
||||
// tslint:disable: non-literal-fs-path
|
||||
// read the cert each time. We only run this request once for each seed node nevertheless.
|
||||
const appPath = remote.app.getAppPath();
|
||||
const appPath = cachedAppPath || (await ipcRenderer.invoke('get-data-path'));
|
||||
cachedAppPath = appPath;
|
||||
const crt = fs.readFileSync(path.join(appPath, `/certificates/${filePrefix}.crt`), 'utf-8');
|
||||
const sslOptions = {
|
||||
// as the seed nodes are using a self signed certificate, we have to provide it here.
|
||||
|
@ -244,7 +247,7 @@ async function getSnodesFromSeedUrl(urlObj: URL): Promise<Array<any>> {
|
|||
params,
|
||||
};
|
||||
|
||||
const sslAgent = getSslAgentForSeedNode(
|
||||
const sslAgent = await getSslAgentForSeedNode(
|
||||
urlObj.hostname,
|
||||
urlObj.protocol !== Constants.PROTOCOLS.HTTP
|
||||
);
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import { remote } from 'electron';
|
||||
import { BrowserWindow } from 'electron';
|
||||
|
||||
export function isElectronWindowFocused() {
|
||||
const [yourBrowserWindow] = remote.BrowserWindow.getAllWindows();
|
||||
const [yourBrowserWindow] = BrowserWindow.getAllWindows();
|
||||
const isFocused = yourBrowserWindow?.isFocused() || false;
|
||||
|
||||
// throw new Error('TOFIX');
|
||||
return isFocused;
|
||||
}
|
||||
|
|
|
@ -98,12 +98,6 @@ describe('MessageEncrypter', () => {
|
|||
};
|
||||
|
||||
beforeEach(() => {
|
||||
TestUtils.stubWindow('textsecure', {
|
||||
storage: {
|
||||
protocol: sandbox.stub(),
|
||||
},
|
||||
});
|
||||
|
||||
sandbox.stub(UserUtils, 'getOurPubKeyStrFromCache').returns(ourNumber);
|
||||
sandbox.stub(UserUtils, 'getUserED25519KeyPair').resolves(ourUserEd25516Keypair);
|
||||
});
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { assert } from 'chai';
|
||||
import { PasswordUtil } from '../../../../util';
|
||||
import * as PasswordUtil from '../../../../util/passwordUtils';
|
||||
|
||||
describe('Password Util', () => {
|
||||
describe('hash generation', () => {
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
import moment from 'moment';
|
||||
import { isArrayBuffer, isUndefined, padStart } from 'lodash';
|
||||
import { isUndefined, padStart } from 'lodash';
|
||||
|
||||
import * as MIME from './MIME';
|
||||
import { saveURLAsFile } from '../util/saveURLAsFile';
|
||||
import { SignalService } from '../protobuf';
|
||||
import { isImageTypeSupported, isVideoTypeSupported } from '../util/GoogleChrome';
|
||||
import { fromHexToArray } from '../session/utils/String';
|
||||
import { ATTACHMENT_DEFAULT_MAX_SIDE } from '../util/attachmentsUtil';
|
||||
import { Storage } from '../util/storage';
|
||||
|
||||
const MAX_WIDTH = 200;
|
||||
const MAX_HEIGHT = MAX_WIDTH;
|
||||
|
@ -392,21 +390,3 @@ export const getFileExtension = (attachment: AttachmentType): string | undefined
|
|||
return attachment.contentType.split('/')[1];
|
||||
}
|
||||
};
|
||||
|
||||
export const encryptAttachmentBuffer = async (bufferIn: ArrayBuffer) => {
|
||||
if (!isArrayBuffer(bufferIn)) {
|
||||
throw new TypeError("'bufferIn' must be an array buffer");
|
||||
}
|
||||
const key = Storage.get('local_attachment_encrypted_key') as string;
|
||||
const encryptingKey = fromHexToArray(key);
|
||||
return window.callWorker('encryptAttachmentBuffer', encryptingKey, bufferIn);
|
||||
};
|
||||
|
||||
export const decryptAttachmentBuffer = async (bufferIn: ArrayBuffer): Promise<Uint8Array> => {
|
||||
if (!isArrayBuffer(bufferIn)) {
|
||||
throw new TypeError("'bufferIn' must be an array buffer");
|
||||
}
|
||||
const key = Storage.get('local_attachment_encrypted_key') as string;
|
||||
const encryptingKey = fromHexToArray(key);
|
||||
return window.callWorker('decryptAttachmentBuffer', encryptingKey, bufferIn);
|
||||
};
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { remote } from 'electron';
|
||||
import { ipcRenderer } from 'electron';
|
||||
import { isArrayBuffer, isEmpty, isUndefined, omit } from 'lodash';
|
||||
import {
|
||||
createAbsolutePathGetter,
|
||||
|
@ -88,8 +88,10 @@ let internalDeleteOnDisk: ((relativePath: string) => Promise<void>) | undefined;
|
|||
let internalWriteNewAttachmentData: ((arrayBuffer: ArrayBuffer) => Promise<string>) | undefined;
|
||||
|
||||
// userDataPath must be app.getPath('userData');
|
||||
export function initializeAttachmentLogic() {
|
||||
const userDataPath = remote.app.getPath('userData');
|
||||
export async function initializeAttachmentLogic() {
|
||||
const userDataPath = await ipcRenderer.invoke('get-user-data-path');
|
||||
|
||||
// const userDataPath = remote.app.getPath('userData');
|
||||
if (attachmentsPath) {
|
||||
throw new Error('attachmentsPath already initialized');
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@ import * as GoogleChrome from './GoogleChrome';
|
|||
import { arrayBufferToObjectURL } from './arrayBufferToObjectURL';
|
||||
import { missingCaseError } from './missingCaseError';
|
||||
import { makeLookup } from './makeLookup';
|
||||
import * as PasswordUtil from './passwordUtils';
|
||||
import * as AttachmentUtil from './attachmentsUtil';
|
||||
import * as LinkPreviewUtil from './linkPreviewFetch';
|
||||
|
||||
|
@ -13,7 +12,6 @@ export {
|
|||
GoogleChrome,
|
||||
makeLookup,
|
||||
missingCaseError,
|
||||
PasswordUtil,
|
||||
AttachmentUtil,
|
||||
LinkPreviewUtil,
|
||||
};
|
||||
|
|
|
@ -34,6 +34,6 @@
|
|||
// "allowSyntheticDefaultImports": true, // Allow default imports from modules with no default export. This does not affect code emit, just typechecking.
|
||||
"useUnknownInCatchVariables": false,
|
||||
"esModuleInterop": true, // Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'.
|
||||
"inlineSourceMap": true // Emit a single file with source maps instead of having a separate file.
|
||||
"inlineSourceMap": false // Emit a single file with source maps instead of having a separate file.
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,53 +1,99 @@
|
|||
/* eslint-disable class-methods-use-this */
|
||||
const path = require('path');
|
||||
const { Compilation } = require('webpack');
|
||||
|
||||
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
||||
|
||||
const optimization = {
|
||||
nodeEnv: false,
|
||||
removeAvailableModules: true,
|
||||
removeEmptyChunks: true,
|
||||
providedExports: true,
|
||||
minimize: false,
|
||||
// minimizer: [new TerserPlugin({ parallel: true })],
|
||||
// splitChunks: true,
|
||||
};
|
||||
|
||||
module.exports = [
|
||||
// {
|
||||
// // bundling mode
|
||||
{
|
||||
// bundling mode
|
||||
|
||||
// mode: 'development', // mode: 'production',
|
||||
mode: 'development', // mode: 'production',
|
||||
devtool: false,
|
||||
|
||||
// // entry files
|
||||
optimization,
|
||||
|
||||
// entry: './main.js',
|
||||
// target: 'electron-main',
|
||||
// module: {
|
||||
// // loaders
|
||||
// entry files
|
||||
resolve: {
|
||||
extensions: ['.ts', '.tsx', '.js', '.json'],
|
||||
// alias: {
|
||||
// 'better_sqlite3.node': path.resolve(__dirname),
|
||||
// },
|
||||
},
|
||||
entry: './ts/mains/main_node.ts',
|
||||
target: 'electron-main',
|
||||
module: {
|
||||
// loaders
|
||||
|
||||
// rules: [
|
||||
// {
|
||||
// test: /\.tsx?$/,
|
||||
// include: /ts/,
|
||||
// use: [{ loader: 'ts-loader' }],
|
||||
// exclude: /node_modules/,
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// // output bundles (location)
|
||||
rules: [
|
||||
{
|
||||
test: /\.js$/,
|
||||
loader: `node-bindings-loader`,
|
||||
},
|
||||
{
|
||||
test: /\.node$/,
|
||||
loader: `node-loader`,
|
||||
},
|
||||
{
|
||||
test: /\.tsx?$/,
|
||||
include: /ts/,
|
||||
use: [
|
||||
{
|
||||
loader: 'ts-loader',
|
||||
options: {
|
||||
transpileOnly: true,
|
||||
experimentalWatchApi: true,
|
||||
},
|
||||
},
|
||||
],
|
||||
exclude: /node_modules/,
|
||||
},
|
||||
],
|
||||
},
|
||||
// output bundles (location)
|
||||
|
||||
// output: {
|
||||
// path: path.resolve(__dirname, 'dist'),
|
||||
// filename: 'electron.js',
|
||||
// },
|
||||
// },
|
||||
output: {
|
||||
path: path.resolve(__dirname, 'dist'),
|
||||
filename: 'electron_main.js',
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
mode: 'development',
|
||||
entry: './ts/mains/main_renderer.ts',
|
||||
target: 'electron-renderer',
|
||||
devtool: 'source-map',
|
||||
devtool: false,
|
||||
resolve: {
|
||||
extensions: ['.ts', '.tsx', '.js', '.json'],
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.ts(x?)$/,
|
||||
test: /\.tsx?$/,
|
||||
include: [path.resolve(__dirname, 'ts'), path.resolve(__dirname, 'js')],
|
||||
use: [{ loader: 'ts-loader' }],
|
||||
use: [
|
||||
{
|
||||
loader: 'ts-loader',
|
||||
options: {
|
||||
transpileOnly: true,
|
||||
experimentalWatchApi: true,
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
optimization,
|
||||
output: {
|
||||
path: path.resolve(__dirname, 'dist', 'js'),
|
||||
filename: 'electron-renderer.js',
|
||||
|
|
324
yarn.lock
324
yarn.lock
|
@ -605,22 +605,6 @@
|
|||
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"
|
||||
integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==
|
||||
|
||||
"@electron/get@^1.0.1":
|
||||
version "1.9.0"
|
||||
resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.9.0.tgz#7fa6e61d7ff50fb82a8a41f437af7de3b97aa9a5"
|
||||
integrity sha512-OBIKtF6ttIJotDXe4KJMUyTBO4xMii+mFjlA8R4CORuD4HvCUaCK3lPjhdTRCvuEv6gzWNbAvd9DNBv0v780lw==
|
||||
dependencies:
|
||||
debug "^4.1.1"
|
||||
env-paths "^2.2.0"
|
||||
fs-extra "^8.1.0"
|
||||
got "^9.6.0"
|
||||
progress "^2.0.3"
|
||||
sanitize-filename "^1.6.2"
|
||||
sumchecker "^3.0.1"
|
||||
optionalDependencies:
|
||||
global-agent "^2.0.2"
|
||||
global-tunnel-ng "^2.7.1"
|
||||
|
||||
"@electron/get@^1.13.0":
|
||||
version "1.14.1"
|
||||
resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.14.1.tgz#16ba75f02dffb74c23965e72d617adc721d27f40"
|
||||
|
@ -845,12 +829,10 @@
|
|||
"@types/jquery" "*"
|
||||
"@types/underscore" "*"
|
||||
|
||||
"@types/better-sqlite3@5.4.1":
|
||||
version "5.4.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/better-sqlite3/-/better-sqlite3-5.4.1.tgz#d45600bc19f8f41397263d037ca9b0d05df85e58"
|
||||
integrity sha512-8hje3Rhsg/9veTkALfCwiWn7VMrP1QDwHhBSgerttYPABEvrHsMQnU9dlqoM6QX3x4uw3Y06dDVz8uDQo1J4Ng==
|
||||
dependencies:
|
||||
"@types/integer" "*"
|
||||
"@types/better-sqlite3@7.4.0":
|
||||
version "7.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/better-sqlite3/-/better-sqlite3-7.4.0.tgz#2b88d8474fc3f755617c0a5a8643388252c10aa1"
|
||||
integrity sha512-tmSORlztb2cdWZDy4V81mRDgL+q7bd+ext4pI+Wj8EtJ5EHIZ6v7yiWbJ6A5eKVtoz77EsBEm7amwAzfqR/kAw==
|
||||
|
||||
"@types/blueimp-load-image@5.14.4":
|
||||
version "5.14.4"
|
||||
|
@ -1032,11 +1014,6 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35"
|
||||
integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==
|
||||
|
||||
"@types/integer@*":
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/integer/-/integer-4.0.0.tgz#3b778715df72d2cf8ba73bad27bd9d830907f944"
|
||||
integrity sha512-2U1i6bIRiqizl6O+ETkp2HhUZIxg7g+burUabh9tzGd0qcszfNaFRaY9bGNlQKgEU7DCsH5qMajRDW5QamWQbw==
|
||||
|
||||
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0":
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762"
|
||||
|
@ -1510,6 +1487,11 @@
|
|||
resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
|
||||
integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
|
||||
|
||||
"@yarnpkg/lockfile@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31"
|
||||
integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==
|
||||
|
||||
abbrev@1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
|
||||
|
@ -1875,13 +1857,18 @@ bcrypt-pbkdf@^1.0.0:
|
|||
dependencies:
|
||||
tweetnacl "^0.14.3"
|
||||
|
||||
"better-sqlite3@https://github.com/signalapp/better-sqlite3#ad0db5dd09c0ea4007b1c46bd4f7273827803347":
|
||||
"better-sqlite3@https://github.com/signalapp/better-sqlite3#4f66ee7b85477016dd0b2c3d2f13dcb60abd452e":
|
||||
version "7.1.4"
|
||||
resolved "https://github.com/signalapp/better-sqlite3#ad0db5dd09c0ea4007b1c46bd4f7273827803347"
|
||||
resolved "https://github.com/signalapp/better-sqlite3#4f66ee7b85477016dd0b2c3d2f13dcb60abd452e"
|
||||
dependencies:
|
||||
bindings "^1.5.0"
|
||||
tar "^6.1.0"
|
||||
|
||||
big.js@^5.2.2:
|
||||
version "5.2.2"
|
||||
resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
|
||||
integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
|
||||
|
||||
binary@^0.3.0:
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79"
|
||||
|
@ -1959,11 +1946,6 @@ boolbase@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
|
||||
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
|
||||
|
||||
boolean@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.1.tgz#35ecf2b4a2ee191b0b44986f14eb5f052a5cbb4f"
|
||||
integrity sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==
|
||||
|
||||
boolean@^3.0.1:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.2.0.tgz#9e5294af4e98314494cbb17979fa54ca159f116b"
|
||||
|
@ -1991,7 +1973,7 @@ brace-expansion@^1.1.7:
|
|||
balanced-match "^1.0.0"
|
||||
concat-map "0.0.1"
|
||||
|
||||
braces@^3.0.1:
|
||||
braces@^3.0.1, braces@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
|
||||
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
|
||||
|
@ -2081,13 +2063,13 @@ builtin-modules@^1.1.1:
|
|||
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
|
||||
integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
|
||||
|
||||
bunyan@1.8.12:
|
||||
version "1.8.12"
|
||||
resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.12.tgz#f150f0f6748abdd72aeae84f04403be2ef113797"
|
||||
integrity sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=
|
||||
bunyan@^1.8.15:
|
||||
version "1.8.15"
|
||||
resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.15.tgz#8ce34ca908a17d0776576ca1b2f6cbd916e93b46"
|
||||
integrity sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==
|
||||
optionalDependencies:
|
||||
dtrace-provider "~0.8"
|
||||
moment "^2.10.6"
|
||||
moment "^2.19.3"
|
||||
mv "~2"
|
||||
safe-json-stringify "~1"
|
||||
|
||||
|
@ -2141,6 +2123,11 @@ callsites@^0.2.0:
|
|||
resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
|
||||
integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=
|
||||
|
||||
callsites@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
|
||||
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
|
||||
|
||||
camel-case@^4.1.2:
|
||||
version "4.1.2"
|
||||
resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a"
|
||||
|
@ -2557,11 +2544,6 @@ core-js@^2.4.0:
|
|||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c"
|
||||
integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==
|
||||
|
||||
core-js@^3.6.4:
|
||||
version "3.6.4"
|
||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz#440a83536b458114b9cb2ac1580ba377dc470647"
|
||||
integrity sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==
|
||||
|
||||
core-util-is@1.0.2, core-util-is@~1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
||||
|
@ -2588,6 +2570,17 @@ cross-spawn@^5.1.0:
|
|||
shebang-command "^1.2.0"
|
||||
which "^1.2.9"
|
||||
|
||||
cross-spawn@^6.0.5:
|
||||
version "6.0.5"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
|
||||
integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
|
||||
dependencies:
|
||||
nice-try "^1.0.4"
|
||||
path-key "^2.0.1"
|
||||
semver "^5.5.0"
|
||||
shebang-command "^1.2.0"
|
||||
which "^1.2.9"
|
||||
|
||||
cross-spawn@^7.0.0:
|
||||
version "7.0.1"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14"
|
||||
|
@ -3099,7 +3092,7 @@ electron-updater@^4.2.2:
|
|||
pako "^1.0.11"
|
||||
semver "^7.1.3"
|
||||
|
||||
electron@*:
|
||||
electron@*, electron@^17.1.2:
|
||||
version "17.3.0"
|
||||
resolved "https://registry.yarnpkg.com/electron/-/electron-17.3.0.tgz#cdcc46a7a3cd0b6f2a1757fbeb807f6b2fce847e"
|
||||
integrity sha512-KuYHCOw1a+CE9thZlWRqTScf6M81KLd6n5qpdBGb0rl62+50RUuau9CnYpBb3EJxrjsXLaiQCBBSdPsozf/XUg==
|
||||
|
@ -3108,15 +3101,6 @@ electron@*:
|
|||
"@types/node" "^14.6.2"
|
||||
extract-zip "^1.0.3"
|
||||
|
||||
electron@^13.6.2:
|
||||
version "13.6.3"
|
||||
resolved "https://registry.yarnpkg.com/electron/-/electron-13.6.3.tgz#c0217178807d3e0b2175c49dbe33ea8dac447e73"
|
||||
integrity sha512-kevgR6/RuEhchJQbgCKhHle9HvJhi2dOJlicFZJqbbqa9BVpZARqqFDlwTSatYxmUPUJwu09FvyMwJG2DMQIng==
|
||||
dependencies:
|
||||
"@electron/get" "^1.0.1"
|
||||
"@types/node" "^14.6.2"
|
||||
extract-zip "^1.0.3"
|
||||
|
||||
emoji-mart@^2.11.2:
|
||||
version "2.11.2"
|
||||
resolved "https://registry.yarnpkg.com/emoji-mart/-/emoji-mart-2.11.2.tgz#ed331867f7f55bb33c8421c9a493090fa4a378c7"
|
||||
|
@ -3134,6 +3118,11 @@ emoji-regex@^8.0.0:
|
|||
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
|
||||
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
|
||||
|
||||
emojis-list@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
|
||||
integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
|
||||
|
||||
encodeurl@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
|
||||
|
@ -3651,6 +3640,13 @@ find-up@^4.0.0, find-up@^4.1.0:
|
|||
locate-path "^5.0.0"
|
||||
path-exists "^4.0.0"
|
||||
|
||||
find-yarn-workspace-root@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd"
|
||||
integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==
|
||||
dependencies:
|
||||
micromatch "^4.0.2"
|
||||
|
||||
findup-sync@~0.3.0:
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.3.0.tgz#37930aa5d816b777c03445e1966cc6790a4c0b16"
|
||||
|
@ -3717,6 +3713,15 @@ fs-extra@9.0.0:
|
|||
jsonfile "^6.0.1"
|
||||
universalify "^1.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==
|
||||
dependencies:
|
||||
graceful-fs "^4.1.2"
|
||||
jsonfile "^4.0.0"
|
||||
universalify "^0.1.0"
|
||||
|
||||
fs-extra@^8.1.0:
|
||||
version "8.1.0"
|
||||
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
|
||||
|
@ -3906,6 +3911,18 @@ glob@^7.1.4:
|
|||
once "^1.3.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
|
||||
glob@^7.1.6:
|
||||
version "7.2.0"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
|
||||
integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
|
||||
dependencies:
|
||||
fs.realpath "^1.0.0"
|
||||
inflight "^1.0.4"
|
||||
inherits "2"
|
||||
minimatch "^3.0.4"
|
||||
once "^1.3.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
|
||||
glob@~5.0.0:
|
||||
version "5.0.15"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
|
||||
|
@ -3929,19 +3946,6 @@ glob@~7.0.0:
|
|||
once "^1.3.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
|
||||
global-agent@^2.0.2:
|
||||
version "2.1.8"
|
||||
resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.8.tgz#99d153662b2c04cbc1199ffbc081a3aa656ac50f"
|
||||
integrity sha512-VpBe/rhY6Rw2VDOTszAMNambg+4Qv8j0yiTNDYEXXXxkUNGWLHp8A3ztK4YDBbFNcWF4rgsec6/5gPyryya/+A==
|
||||
dependencies:
|
||||
boolean "^3.0.0"
|
||||
core-js "^3.6.4"
|
||||
es6-error "^4.1.1"
|
||||
matcher "^2.1.0"
|
||||
roarr "^2.15.2"
|
||||
semver "^7.1.2"
|
||||
serialize-error "^5.0.0"
|
||||
|
||||
global-agent@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6"
|
||||
|
@ -4009,6 +4013,11 @@ got@^9.6.0:
|
|||
to-readable-stream "^1.0.0"
|
||||
url-parse-lax "^3.0.0"
|
||||
|
||||
graceful-fs@^4.1.11, graceful-fs@^4.2.9:
|
||||
version "4.2.9"
|
||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96"
|
||||
integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==
|
||||
|
||||
graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0:
|
||||
version "4.2.3"
|
||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
|
||||
|
@ -4019,11 +4028,6 @@ graceful-fs@^4.2.3, graceful-fs@^4.2.4:
|
|||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
|
||||
integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
|
||||
|
||||
graceful-fs@^4.2.9:
|
||||
version "4.2.9"
|
||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96"
|
||||
integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==
|
||||
|
||||
growl@1.10.3:
|
||||
version "1.10.3"
|
||||
resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f"
|
||||
|
@ -4587,7 +4591,7 @@ is-utf8@^0.2.0:
|
|||
resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
|
||||
integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
|
||||
|
||||
is-wsl@^2.2.0:
|
||||
is-wsl@^2.1.1, is-wsl@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
|
||||
integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
|
||||
|
@ -4892,6 +4896,13 @@ kind-of@^6.0.2, kind-of@^6.0.3:
|
|||
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
|
||||
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
|
||||
|
||||
klaw-sync@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c"
|
||||
integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==
|
||||
dependencies:
|
||||
graceful-fs "^4.1.11"
|
||||
|
||||
klaw@^1.0.0:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
|
||||
|
@ -4988,6 +4999,15 @@ loader-runner@^4.2.0:
|
|||
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384"
|
||||
integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==
|
||||
|
||||
loader-utils@^2.0.0:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129"
|
||||
integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==
|
||||
dependencies:
|
||||
big.js "^5.2.2"
|
||||
emojis-list "^3.0.0"
|
||||
json5 "^2.1.2"
|
||||
|
||||
locate-path@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
|
||||
|
@ -5140,13 +5160,6 @@ map-obj@^4.0.0:
|
|||
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.1.tgz#e4ea399dbc979ae735c83c863dd31bdf364277b7"
|
||||
integrity sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==
|
||||
|
||||
matcher@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/matcher/-/matcher-2.1.0.tgz#64e1041c15b993e23b786f93320a7474bf833c28"
|
||||
integrity sha512-o+nZr+vtJtgPNklyeUKkkH42OsK8WAfdgaJE2FNxcjLPg+5QbeEoT6vRj8Xq/iv18JlQ9cmKsEu0b94ixWf1YQ==
|
||||
dependencies:
|
||||
escape-string-regexp "^2.0.0"
|
||||
|
||||
matcher@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca"
|
||||
|
@ -5218,6 +5231,14 @@ micromatch@^4.0.0, micromatch@^4.0.4:
|
|||
braces "^3.0.1"
|
||||
picomatch "^2.2.3"
|
||||
|
||||
micromatch@^4.0.2:
|
||||
version "4.0.5"
|
||||
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
|
||||
integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
|
||||
dependencies:
|
||||
braces "^3.0.2"
|
||||
picomatch "^2.3.1"
|
||||
|
||||
mime-db@1.43.0:
|
||||
version "1.43.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58"
|
||||
|
@ -5293,6 +5314,11 @@ minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5:
|
|||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
|
||||
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
|
||||
|
||||
minimist@^1.2.6:
|
||||
version "1.2.6"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
|
||||
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
|
||||
|
||||
minipass@^3.0.0:
|
||||
version "3.1.3"
|
||||
resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd"
|
||||
|
@ -5321,11 +5347,11 @@ mkdirp@^1.0.3:
|
|||
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
|
||||
|
||||
mkdirp@~0.5.1:
|
||||
version "0.5.4"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512"
|
||||
integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==
|
||||
version "0.5.6"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
|
||||
integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
|
||||
dependencies:
|
||||
minimist "^1.2.5"
|
||||
minimist "^1.2.6"
|
||||
|
||||
mkpath@^0.1.0:
|
||||
version "0.1.0"
|
||||
|
@ -5369,10 +5395,10 @@ moment@2.21.0:
|
|||
resolved "https://registry.yarnpkg.com/moment/-/moment-2.21.0.tgz#2a114b51d2a6ec9e6d83cf803f838a878d8a023a"
|
||||
integrity sha512-TCZ36BjURTeFTM/CwRcViQlfkMvL1/vFISuNLO5GkcVm1+QHfbSiNqZuWeMFjj1/3+uAjXswgRk30j1kkLYJBQ==
|
||||
|
||||
moment@^2.10.6:
|
||||
version "2.24.0"
|
||||
resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b"
|
||||
integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==
|
||||
moment@^2.19.3:
|
||||
version "2.29.1"
|
||||
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
|
||||
integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
|
||||
|
||||
ms@0.7.1:
|
||||
version "0.7.1"
|
||||
|
@ -5419,9 +5445,9 @@ nan@2.14.2, nan@^2.13.2:
|
|||
integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==
|
||||
|
||||
nan@^2.14.0:
|
||||
version "2.14.0"
|
||||
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
|
||||
integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
|
||||
version "2.15.0"
|
||||
resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee"
|
||||
integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==
|
||||
|
||||
nano-css@^5.3.1:
|
||||
version "5.3.1"
|
||||
|
@ -5452,6 +5478,11 @@ neo-async@^2.6.2:
|
|||
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
|
||||
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
|
||||
|
||||
nice-try@^1.0.4:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
|
||||
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
|
||||
|
||||
nise@^4.0.1:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/nise/-/nise-4.0.3.tgz#9f79ff02fa002ed5ffbc538ad58518fa011dc913"
|
||||
|
@ -5471,6 +5502,15 @@ no-case@^3.0.4:
|
|||
lower-case "^2.0.2"
|
||||
tslib "^2.0.3"
|
||||
|
||||
node-bindings-loader@^1.5.0:
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/node-bindings-loader/-/node-bindings-loader-1.5.0.tgz#326b23d0ab88c5e3a218d819a16ee730e2af0470"
|
||||
integrity sha512-0aixWkyrttzM94eUXqliYdS7v8PXHw5tKlUmbCm+dleoGe9ZajUKcpxYN84ftddCGkip2V4p435jVjQVKf5Q2w==
|
||||
dependencies:
|
||||
glob "^7.1.6"
|
||||
parent-module "^2.0.0"
|
||||
webpack-sources "^2.2.0"
|
||||
|
||||
node-fetch@2.3.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.3.0.tgz#1a1d940bbfb916a1d3e0219f037e89e71f8c5fa5"
|
||||
|
@ -5510,6 +5550,13 @@ node-gyp@^7.1.0:
|
|||
tar "^6.0.2"
|
||||
which "^2.0.2"
|
||||
|
||||
node-loader@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/node-loader/-/node-loader-2.0.0.tgz#9109a6d828703fd3e0aa03c1baec12a798071562"
|
||||
integrity sha512-I5VN34NO4/5UYJaUBtkrODPWxbobrE4hgDqPrjB25yPkonFhCmZ146vTH+Zg417E9Iwoh1l/MbRs1apc5J295Q==
|
||||
dependencies:
|
||||
loader-utils "^2.0.0"
|
||||
|
||||
node-modules-regexp@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
|
||||
|
@ -5689,6 +5736,14 @@ onetime@^5.1.2:
|
|||
dependencies:
|
||||
mimic-fn "^2.1.0"
|
||||
|
||||
open@^7.4.2:
|
||||
version "7.4.2"
|
||||
resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321"
|
||||
integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==
|
||||
dependencies:
|
||||
is-docker "^2.0.0"
|
||||
is-wsl "^2.1.1"
|
||||
|
||||
open@^8.3.0:
|
||||
version "8.4.0"
|
||||
resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8"
|
||||
|
@ -5823,6 +5878,13 @@ param-case@^3.0.4:
|
|||
dot-case "^3.0.4"
|
||||
tslib "^2.0.3"
|
||||
|
||||
parent-module@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-2.0.0.tgz#fa71f88ff1a50c27e15d8ff74e0e3a9523bf8708"
|
||||
integrity sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==
|
||||
dependencies:
|
||||
callsites "^3.1.0"
|
||||
|
||||
parse-json@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
|
||||
|
@ -5853,6 +5915,25 @@ pascal-case@^3.1.2:
|
|||
no-case "^3.0.4"
|
||||
tslib "^2.0.3"
|
||||
|
||||
patch-package@^6.4.7:
|
||||
version "6.4.7"
|
||||
resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-6.4.7.tgz#2282d53c397909a0d9ef92dae3fdeb558382b148"
|
||||
integrity sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ==
|
||||
dependencies:
|
||||
"@yarnpkg/lockfile" "^1.1.0"
|
||||
chalk "^2.4.2"
|
||||
cross-spawn "^6.0.5"
|
||||
find-yarn-workspace-root "^2.0.0"
|
||||
fs-extra "^7.0.1"
|
||||
is-ci "^2.0.0"
|
||||
klaw-sync "^6.0.0"
|
||||
minimist "^1.2.0"
|
||||
open "^7.4.2"
|
||||
rimraf "^2.6.3"
|
||||
semver "^5.6.0"
|
||||
slash "^2.0.0"
|
||||
tmp "^0.0.33"
|
||||
|
||||
path-exists@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
|
||||
|
@ -5880,6 +5961,11 @@ path-is-inside@^1.0.2:
|
|||
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
|
||||
integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
|
||||
|
||||
path-key@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
|
||||
integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
|
||||
|
||||
path-key@^3.0.0, path-key@^3.1.0:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
|
||||
|
@ -5943,6 +6029,11 @@ picomatch@^2.2.3:
|
|||
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
|
||||
integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
|
||||
|
||||
picomatch@^2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
|
||||
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
|
||||
|
||||
pify@3.0.0, pify@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
|
||||
|
@ -6799,7 +6890,7 @@ retry@^0.12.0:
|
|||
resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
|
||||
integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=
|
||||
|
||||
rimraf@2, rimraf@^2.2.8:
|
||||
rimraf@2, rimraf@^2.2.8, rimraf@^2.6.3:
|
||||
version "2.7.1"
|
||||
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
|
||||
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
|
||||
|
@ -6839,18 +6930,6 @@ rimraf@~2.6.2:
|
|||
dependencies:
|
||||
glob "^7.1.3"
|
||||
|
||||
roarr@^2.15.2:
|
||||
version "2.15.2"
|
||||
resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.2.tgz#34f6229ae3c8c12167c4ae60f58fe75e79a1e394"
|
||||
integrity sha512-jmaDhK9CO4YbQAV8zzCnq9vjAqeO489MS5ehZ+rXmFiPFFE6B+S9KYO6prjmLJ5A0zY3QxVlQdrIya7E/azz/Q==
|
||||
dependencies:
|
||||
boolean "^3.0.0"
|
||||
detect-node "^2.0.4"
|
||||
globalthis "^1.0.1"
|
||||
json-stringify-safe "^5.0.1"
|
||||
semver-compare "^1.0.0"
|
||||
sprintf-js "^1.1.2"
|
||||
|
||||
roarr@^2.15.3:
|
||||
version "2.15.4"
|
||||
resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd"
|
||||
|
@ -6919,7 +6998,7 @@ safe-json-stringify@~1:
|
|||
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
|
||||
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
||||
|
||||
sanitize-filename@^1.6.2, sanitize-filename@^1.6.3:
|
||||
sanitize-filename@^1.6.3:
|
||||
version "1.6.3"
|
||||
resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378"
|
||||
integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==
|
||||
|
@ -6988,7 +7067,7 @@ semver-diff@^3.1.1:
|
|||
dependencies:
|
||||
semver "^6.3.0"
|
||||
|
||||
"semver@2 || 3 || 4 || 5", semver@^5.3.0:
|
||||
"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.6.0:
|
||||
version "5.7.1"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
|
||||
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
|
||||
|
@ -7003,7 +7082,7 @@ semver@^6.0.0, semver@^6.2.0, semver@^6.3.0:
|
|||
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
||||
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
||||
|
||||
semver@^7.1.2, semver@^7.1.3:
|
||||
semver@^7.1.3:
|
||||
version "7.1.3"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.1.3.tgz#e4345ce73071c53f336445cfc19efb1c311df2a6"
|
||||
integrity sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==
|
||||
|
@ -7020,13 +7099,6 @@ semver@~5.3.0:
|
|||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
|
||||
integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8=
|
||||
|
||||
serialize-error@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-5.0.0.tgz#a7ebbcdb03a5d71a6ed8461ffe0fc1a1afed62ac"
|
||||
integrity sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==
|
||||
dependencies:
|
||||
type-fest "^0.8.0"
|
||||
|
||||
serialize-error@^7.0.1:
|
||||
version "7.0.1"
|
||||
resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18"
|
||||
|
@ -7117,6 +7189,11 @@ sinon@9.0.2:
|
|||
nise "^4.0.1"
|
||||
supports-color "^7.1.0"
|
||||
|
||||
slash@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
|
||||
integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
|
||||
|
||||
slash@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
|
||||
|
@ -7151,6 +7228,11 @@ socks@^2.6.1:
|
|||
ip "^1.1.5"
|
||||
smart-buffer "^4.1.0"
|
||||
|
||||
source-list-map@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
|
||||
integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
|
||||
|
||||
source-map-support@^0.4.18:
|
||||
version "0.4.18"
|
||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
|
||||
|
@ -7563,7 +7645,7 @@ term-size@^2.1.0:
|
|||
resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753"
|
||||
integrity sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==
|
||||
|
||||
terser-webpack-plugin@^5.1.3:
|
||||
terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.3.1:
|
||||
version "5.3.1"
|
||||
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz#0320dcc270ad5372c1e8993fabbd927929773e54"
|
||||
integrity sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==
|
||||
|
@ -7822,7 +7904,7 @@ type-fest@^0.6.0:
|
|||
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
|
||||
integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
|
||||
|
||||
type-fest@^0.8.0, type-fest@^0.8.1:
|
||||
type-fest@^0.8.1:
|
||||
version "0.8.1"
|
||||
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
|
||||
integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
|
||||
|
@ -8015,6 +8097,14 @@ webpack-merge@^5.7.3:
|
|||
clone-deep "^4.0.1"
|
||||
wildcard "^2.0.0"
|
||||
|
||||
webpack-sources@^2.2.0:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd"
|
||||
integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==
|
||||
dependencies:
|
||||
source-list-map "^2.0.1"
|
||||
source-map "^0.6.1"
|
||||
|
||||
webpack-sources@^3.2.3:
|
||||
version "3.2.3"
|
||||
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
|
||||
|
|
Loading…
Reference in New Issue