Skip to content
This repository was archived by the owner on Apr 22, 2024. It is now read-only.

Commit

Permalink
feat: add gnome 43 support
Browse files Browse the repository at this point in the history
oae committed Sep 19, 2022

Verified

This commit was signed with the committer’s verified signature.
1 parent 092983e commit ab55c43
Showing 9 changed files with 127 additions and 240 deletions.
22 changes: 22 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"workbench.colorCustomizations": {
"activityBar.activeBackground": "#1e593f",
"activityBar.background": "#1e593f",
"activityBar.foreground": "#e7e7e7",
"activityBar.inactiveForeground": "#e7e7e799",
"activityBarBadge.background": "#221030",
"activityBarBadge.foreground": "#e7e7e7",
"commandCenter.border": "#e7e7e799",
"sash.hoverBorder": "#1e593f",
"statusBar.background": "#113324",
"statusBar.foreground": "#e7e7e7",
"statusBarItem.hoverBackground": "#1e593f",
"statusBarItem.remoteBackground": "#113324",
"statusBarItem.remoteForeground": "#e7e7e7",
"titleBar.activeBackground": "#113324",
"titleBar.activeForeground": "#e7e7e7",
"titleBar.inactiveBackground": "#11332499",
"titleBar.inactiveForeground": "#e7e7e799"
},
"peacock.color": "#113324"
}
5 changes: 2 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -39,7 +39,7 @@
"@gi-types/gtk4": "^4.6.1",
"@gi-types/meta10": "^10.0.1",
"@gi-types/shell0": "^0.1.1",
"@gi-types/soup2": "^2.74.1",
"@gi-types/soup3": "^3.0.1",
"@gi-types/st1": "^1.0.1",
"@gi.ts/cli": "^1.5.7",
"@gi.ts/lib": "^1.5.9",
@@ -66,7 +66,6 @@
},
"dependencies": {
"events": "^3.3.0",
"fast-xml-parser": "^3.21.0",
"grest": "^1.2.0"
"fast-xml-parser": "^3.21.0"
}
}
2 changes: 1 addition & 1 deletion resources/metadata.json
Original file line number Diff line number Diff line change
@@ -5,5 +5,5 @@
"version": 999,
"settings-schema": "org.gnome.shell.extensions.extensions-sync",
"url": "https://github.com/oae/gnome-shell-extensions-sync",
"shell-version": ["40", "41", "42"]
"shell-version": ["42", "43"]
}
7 changes: 1 addition & 6 deletions rollup.config.js
Original file line number Diff line number Diff line change
@@ -16,16 +16,12 @@ const globals = {
'@gi-types/st1': 'imports.gi.St',
'@gi-types/shell0': 'imports.gi.Shell',
'@gi-types/meta10': 'imports.gi.Meta',
'@gi-types/soup2': 'imports.gi.Soup',
'@gi-types/soup3': 'imports.gi.Soup',
'@gi-types/gobject2': 'imports.gi.GObject',
};

const external = Object.keys(globals);

const banner = [
'imports.gi.versions.Gtk = \'4.0\';',
].join('\n');

const prefsFooter = [
'var init = prefs.init;',
'var buildPrefsWidget = prefs.buildPrefsWidget;',
@@ -77,7 +73,6 @@ export default [
format: 'iife',
exports: 'default',
name: 'prefs',
banner,
footer: prefsFooter,
globals,
},
56 changes: 33 additions & 23 deletions src/api/providers/github.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { SyncData } from '@esync/data';
import { logger } from '@esync/utils';
import { Context as request } from 'grest/src/app/Context/Context';
import { Bytes, PRIORITY_DEFAULT } from '@gi-types/glib2';
import { Message, Session, Status, status_get_phrase } from '@gi-types/soup3';
import { SyncOperationStatus, SyncProvider } from '../types';

const debug = logger('github');
@@ -10,10 +11,12 @@ export class Github implements SyncProvider {

private gistId: string;
private userToken: string;
private session: Session;

constructor(gistId: string, userToken: string) {
this.gistId = gistId;
this.userToken = userToken;
this.session = new Session();
}

async save(syncData: SyncData): Promise<SyncOperationStatus> {
@@ -26,38 +29,45 @@ export class Github implements SyncProvider {
};
}, {});

const { status } = await request.fetch(`${Github.GIST_API_URL}/${this.gistId}`, {
headers: {
'User-Agent': 'Mozilla/5.0',
Authorization: `token ${this.userToken}`,
},
body: {
description: 'Extensions Sync',
files,
},
method: 'PATCH',
const message = Message.new('PATCH', `${Github.GIST_API_URL}/${this.gistId}`);
message.request_headers.append('User-Agent', 'Mozilla/5.0');
message.request_headers.append('Authorization', `token ${this.userToken}`);
const requestBody = JSON.stringify({
description: 'Extensions Sync',
files,
});
message.set_request_body_from_bytes('application/json', new Bytes(imports.byteArray.fromString(requestBody)));
await this.session.send_and_read_async(message, PRIORITY_DEFAULT, null);

if (status !== 200) {
throw new Error(`failed to save data to ${this.getName()}. Server status: ${status}`);
const { statusCode } = message;
const phrase = status_get_phrase(statusCode);
if (statusCode !== Status.OK) {
throw new Error(`failed to save data to ${this.getName()}. Server status: ${phrase}`);
}

return status === 200 ? SyncOperationStatus.SUCCESS : SyncOperationStatus.FAIL;
return SyncOperationStatus.SUCCESS;
}

async read(): Promise<SyncData> {
const { body, status } = await request.fetch(`${Github.GIST_API_URL}/${this.gistId}`, {
headers: {
'User-Agent': 'Mozilla/5.0',
Authorization: `token ${this.userToken}`,
},
method: 'GET',
});
const message = Message.new('GET', `${Github.GIST_API_URL}/${this.gistId}`);
message.request_headers.append('User-Agent', 'Mozilla/5.0');
message.request_headers.append('Authorization', `token ${this.userToken}`);

if (status !== 200) {
throw new Error(`failed to read data from ${this.getName()}. Server status: ${status}`);
const bytes = await this.session.send_and_read_async(message, PRIORITY_DEFAULT, null);
const { statusCode } = message;
const phrase = status_get_phrase(statusCode);
if (statusCode !== Status.OK) {
throw new Error(`failed to read data from ${this.getName()}. Server status: ${phrase}`);
}

const data = bytes.get_data();
if (data === null) {
throw new Error(`failed to read data from ${this.getName()}. Empty response`);
}

const json = imports.byteArray.toString(data);
const body = JSON.parse(json);

const syncData: SyncData = Object.keys(body.files).reduce(
(acc, key) => {
try {
59 changes: 34 additions & 25 deletions src/api/providers/gitlab.ts
Original file line number Diff line number Diff line change
@@ -1,53 +1,62 @@
import { SyncData } from '@esync/data';
import { Context as request } from 'grest/src/app/Context/Context';
import { Bytes, PRIORITY_DEFAULT } from '@gi-types/glib2';
import { Message, Session, Status, status_get_phrase } from '@gi-types/soup3';
import { SyncOperationStatus, SyncProvider } from '../types';

export class Gitlab implements SyncProvider {
private static SNIPPETS_API_URL = 'https://gitlab.com/api/v4/snippets';

private snippetId: string;
private userToken: string;
private session: Session;

constructor(snippetId: string, userToken: string) {
this.snippetId = snippetId;
this.userToken = userToken;
this.session = new Session();
}

async save(syncData: SyncData): Promise<SyncOperationStatus> {
const { status } = await request.fetch(`${Gitlab.SNIPPETS_API_URL}/${this.snippetId}`, {
headers: {
'User-Agent': 'Mozilla/5.0',
'PRIVATE-TOKEN': `${this.userToken}`,
'Content-Type': 'application/json',
},
body: {
title: 'Extensions Sync',
content: JSON.stringify(syncData),
},
method: 'PUT',
const message = Message.new('PUT', `${Gitlab.SNIPPETS_API_URL}/${this.snippetId}`);
message.request_headers.append('User-Agent', 'Mozilla/5.0');
message.request_headers.append('PRIVATE-TOKEN', `${this.userToken}`);
const requestBody = JSON.stringify({
title: 'Extensions Sync',
content: JSON.stringify(syncData),
});
message.set_request_body_from_bytes('application/json', new Bytes(imports.byteArray.fromString(requestBody)));
await this.session.send_and_read_async(message, PRIORITY_DEFAULT, null);

if (status !== 200) {
throw new Error(`failed to save data to ${this.getName()}. Server status: ${status}`);
const { statusCode } = message;
const phrase = status_get_phrase(statusCode);
if (statusCode !== Status.OK) {
throw new Error(`failed to save data to ${this.getName()}. Server status: ${phrase}`);
}

return status === 200 ? SyncOperationStatus.SUCCESS : SyncOperationStatus.FAIL;
return SyncOperationStatus.SUCCESS;
}

async read(): Promise<SyncData> {
const { body, status } = await request.fetch(`${Gitlab.SNIPPETS_API_URL}/${this.snippetId}/raw`, {
headers: {
'User-Agent': 'Mozilla/5.0',
'PRIVATE-TOKEN': `${this.userToken}`,
},
method: 'GET',
});
const message = Message.new('GET', `${Gitlab.SNIPPETS_API_URL}/${this.snippetId}/raw`);
message.request_headers.append('User-Agent', 'Mozilla/5.0');
message.request_headers.append('PRIVATE-TOKEN', `${this.userToken}`);

const bytes = await this.session.send_and_read_async(message, PRIORITY_DEFAULT, null);
const { statusCode } = message;
const phrase = status_get_phrase(statusCode);
if (statusCode !== Status.OK) {
throw new Error(`failed to read data from ${this.getName()}. Server status: ${phrase}`);
}

if (status !== 200) {
throw new Error(`failed to read data from ${this.getName()}. Server status: ${status}`);
const data = bytes.get_data();
if (data === null) {
throw new Error(`failed to read data from ${this.getName()}. Empty response`);
}

return body;
const json = imports.byteArray.toString(data);
const syncData = JSON.parse(json);

return syncData;
}

getName(): string {
95 changes: 29 additions & 66 deletions src/data/providers/extensions/utils.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,8 @@
import { ExtensionType, getCurrentExtension, readDconfData, ShellExtension } from '@esync/shell';
import { execute, logger } from '@esync/utils';
import { File } from '@gi-types/gio2';
import {
build_filenamev,
ByteArray,
child_watch_add,
file_get_contents,
get_user_data_dir,
PRIORITY_DEFAULT,
SpawnFlags,
spawn_async,
spawn_close_pid,
} from '@gi-types/glib2';
import { form_encode_hash, Message, Session, Status, status_get_phrase, URI } from '@gi-types/soup2';
import { File, Subprocess, SubprocessFlags } from '@gi-types/gio2';
import { build_filenamev, file_get_contents, get_user_data_dir, PRIORITY_DEFAULT } from '@gi-types/glib2';
import { form_encode_hash, Message, Session, Status, status_get_phrase } from '@gi-types/soup3';
import { parse } from 'fast-xml-parser';

const debug = logger('extension-utils');
@@ -138,70 +128,43 @@ export const removeExtension = (extensionId: string): void => {
debug(`removed extension ${extensionId}`);
};

export const extractExtensionArchive = (bytes: ByteArray, dir: File, callback: any) => {
const extractExtensionArchive = async (bytes, dir) => {
if (!dir.query_exists(null)) {
dir.make_directory_with_parents(null);
}

const [file, stream] = File.new_tmp('XXXXXX.shell-extension.zip');
await stream.output_stream.write_bytes_async(bytes, PRIORITY_DEFAULT, null);
stream.close_async(PRIORITY_DEFAULT, null);

stream.output_stream.write_bytes(bytes as any, null);
stream.close(null);
const [success, pid] = spawn_async(
null,
['unzip', '-uod', `${dir.get_path()}`, '--', `${file.get_path()}`],
null,
SpawnFlags.SEARCH_PATH | SpawnFlags.DO_NOT_REAP_CHILD,
null,
);

if (!success) {
throw new Error('failed to extract extension');
}
if (pid) {
child_watch_add(PRIORITY_DEFAULT, pid, (o, status) => {
spawn_close_pid(pid);

if (status != 0) {
throw new Error('failed to extract extension');
} else {
callback();
}
});
}
const unzip = Subprocess.new(['unzip', '-uod', dir.get_path(), '--', file.get_path()], SubprocessFlags.NONE);
await unzip.wait_check_async(null);
};

export const installExtension = async (extensionId: string): Promise<void> => {
return new Promise((resolve) => {
const params = { shell_version: imports.misc.config.PACKAGE_VERSION };
const soupUri = URI.new(`https://extensions.gnome.org/download-extension/${extensionId}.shell-extension.zip`);
soupUri.set_query(form_encode_hash(params));
const params = { shell_version: imports.misc.config.PACKAGE_VERSION };
const message = Message.new_from_encoded_form(
'GET',
`https://extensions.gnome.org/download-extension/${extensionId}.shell-extension.zip`,
form_encode_hash(params),
);

const message = Message.new_from_uri('GET', soupUri);
const dir = File.new_for_path(build_filenamev([get_user_data_dir(), 'gnome-shell', 'extensions', extensionId]));

const dir = File.new_for_path(build_filenamev([get_user_data_dir(), 'gnome-shell', 'extensions', extensionId]));
try {
const bytes = await new Session().send_and_read_async(message, PRIORITY_DEFAULT, null);
const { statusCode } = message;
const phrase = status_get_phrase(statusCode);
if (statusCode !== Status.OK) throw new Error(`Unexpected response: ${phrase}`);

try {
const httpSession = new Session();
httpSession.queue_message(message, () => {
const { statusCode } = message;
const phrase = status_get_phrase(statusCode);
if (statusCode !== Status.OK) {
throw new Error(`Unexpected response: ${phrase}`);
}
const bytes = message.response_body.flatten().get_as_bytes();
extractExtensionArchive(bytes as any, dir, () => {
const extension = getExtensionManager().createExtensionObject(extensionId, dir, ExtensionType.PER_USER);
getExtensionManager().loadExtension(extension);
if (!getExtensionManager().enableExtension(extensionId)) {
throw new Error(`Cannot enable ${extensionId}`);
}
resolve();
});
});
} catch (e) {
debug(`error occurred during installation of ${extensionId}. Error: ${e}`);
resolve();
await extractExtensionArchive(bytes, dir);

const extension = getExtensionManager().createExtensionObject(extensionId, dir, ExtensionType.PER_USER);
getExtensionManager().loadExtension(extension);
if (!getExtensionManager().enableExtension(extensionId)) {
throw new Error(`Cannot enable ${extensionId}`);
}
});
} catch (e) {
debug(`error occurred during installation of ${extensionId}. Error: ${e}`);
}
};
2 changes: 1 addition & 1 deletion src/shell/index.ts
Original file line number Diff line number Diff line change
@@ -82,7 +82,7 @@ export const writeDconfData = async (schemaPath: string, data: string): Promise<
debug(`cannot load settings for ${schemaPath}`);
}
file.delete(null);
ioStream.close_async(PRIORITY_DEFAULT, null, null);
ioStream.close_async(PRIORITY_DEFAULT, null);
};

export const readDconfData = async (schemaPath: string): Promise<string> => {
119 changes: 4 additions & 115 deletions yarn.lock
Original file line number Diff line number Diff line change
@@ -217,68 +217,6 @@
"@babel/helper-validator-identifier" "^7.14.9"
to-fast-properties "^2.0.0"

"@cgjs/assert@^0.0.2":
version "0.0.2"
resolved "https://registry.yarnpkg.com/@cgjs/assert/-/assert-0.0.2.tgz#38137d9fef2cb0c5d5685f9dba03ecbb543ece00"
integrity sha512-G6nTc0DZZ0Wp14fxzj9oF+vQT1GHMtRUrIN/a6M8V8sJKqm7kdw+IQQDFE12abxC5vsWPMpB090MDYnaBDQg3w==

"@cgjs/buffer@^0.1.1":
version "0.1.1"
resolved "https://registry.yarnpkg.com/@cgjs/buffer/-/buffer-0.1.1.tgz#fee9633a4e8d6a3f99ee2d840296729096d59660"
integrity sha512-UJwhXsnytdRt2ygEZjHcEm6SZ/RsuUkPHVHZdaCT0Ey6CYF6sC2U1c9wR4uo4VnoQddfAeJF8CVE8VxK2+ELtQ==
dependencies:
buffer "^5.0.8"

"@cgjs/cluster@^0.0.2":
version "0.0.2"
resolved "https://registry.yarnpkg.com/@cgjs/cluster/-/cluster-0.0.2.tgz#c76e3c0731942a30303b5dd0c7b06c897e0ffa7b"
integrity sha512-PzQsyK79v0Uq7H0tVbepeafp9IndpRZwhftkM3LBkDLRroISpuhmIgx56tBlPwrDr3XDkUlTEX7F0wh4Jfdwpw==

"@cgjs/console@^0.1.3":
version "0.1.3"
resolved "https://registry.yarnpkg.com/@cgjs/console/-/console-0.1.3.tgz#5eb4c696f98a6eba0d4b9387d198a87ca6396efd"
integrity sha512-0kbKaUIO9JwO35fiKb2zMPdHqvFzTFHVF2ZjhL92RxDZm9i5HS35TkydVoZ3dAMp0ACslTKB3V3WR2jHqde+wQ==

"@cgjs/events@^0.1.1":
version "0.1.1"
resolved "https://registry.yarnpkg.com/@cgjs/events/-/events-0.1.1.tgz#05277f760e4c63225ad8bf1bcfcc3bb4be7e2e6f"
integrity sha512-P9AdVIPXgBbTUiU1vatWTu039BR3fU/p+u7aNZD+cuwzsmqaqLsj708utdNvil65XhHYcGAa6HSzXLkZlRtOVA==

"@cgjs/fs@^0.0.4":
version "0.0.4"
resolved "https://registry.yarnpkg.com/@cgjs/fs/-/fs-0.0.4.tgz#874d6abcaac50cd869c5916a1781c0294d28fb9d"
integrity sha512-63KagxS9h24omUTNorMYCXj5ktu7Lug37LqAgC/4FMhqEGH2l32r0Yf/BsRheCRq1GYSBNWRDCim2kLD631YtA==

"@cgjs/gir@^0.0.1":
version "0.0.1"
resolved "https://registry.yarnpkg.com/@cgjs/gir/-/gir-0.0.1.tgz#154187c3cffbbfd4c6651bab5041c82ddbe9d126"
integrity sha512-ABHguFr8uYiAWIXGfBXimw3Xksr9bFxa2m65/bCccDXyptyy1+5Ndx3ZTyABHsElP5MkggZzHtqCKRqX8oTTYA==

"@cgjs/os@^0.1.1":
version "0.1.1"
resolved "https://registry.yarnpkg.com/@cgjs/os/-/os-0.1.1.tgz#6fdc5e04db8b9badf832ec08d3ae2983d474eba1"
integrity sha512-FF4NZoMSKP7gR1TOKGdv9Q1LbxmpP6UVmZMJBUhn33YEeG5aOiZnBljKF707lqd2+qc+VEtRYNkEBJK0Jc0a0Q==

"@cgjs/path@^0.1.1":
version "0.1.1"
resolved "https://registry.yarnpkg.com/@cgjs/path/-/path-0.1.1.tgz#514c8737c06e3eee51639a28c3ccf0ddaa903c6a"
integrity sha512-tsBblo9bYVVYUlleyUu6+MfnZYApI+4xA6KLslNn96+4LI345g7ubaoETz0WBiyrQ3rleYFWJgHD5jrGTiOvSg==

"@cgjs/process@^0.0.4":
version "0.0.4"
resolved "https://registry.yarnpkg.com/@cgjs/process/-/process-0.0.4.tgz#24fde38f7a3f08f1af2a95bd32c498b46612f5fd"
integrity sha512-pc6SJlTdz1at/DzhZ9zEbXUgDEmcZb+e0x+YdY3MjgmmPNDkd426nKPdY9EJQ92pUjTju4Utx8lA2fIMm4zAZQ==

"@cgjs/timers@^0.0.2":
version "0.0.2"
resolved "https://registry.yarnpkg.com/@cgjs/timers/-/timers-0.0.2.tgz#95c06d35a30995a1343fa36bad81b838b6797fe6"
integrity sha512-pU6ITZiqw094cUu0k1v7YRTkfYhyRDFxZKf87Xvh6riF6y20lPXMO6tmrYUr3HNWxw8E8s/87jOvvujPGI8FhA==

"@cgjs/util@^0.1.1":
version "0.1.1"
resolved "https://registry.yarnpkg.com/@cgjs/util/-/util-0.1.1.tgz#1c73f0b2a4810894028aa7d726b69f71a9d713ff"
integrity sha512-0iZ2zui0k3K/j/7ohshfqHQ9YGJ5wuKz5K4xP8T6uwk9nLnWXjF5ot7AJmqaBz2Sq/JyMUeOtX2qIWEhY8pheg==

"@commitlint/cli@^13.2.1":
version "13.2.1"
resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-13.2.1.tgz#80ebd46beef6ceed3bb0c0842bcda8d02a3c91de"
@@ -736,10 +674,10 @@
"@gi-types/polkitagent1" "^1.0.1"
"@gi-types/st1" "^1.0.1"

"@gi-types/soup2@^2.74.1":
version "2.74.1"
resolved "https://registry.yarnpkg.com/@gi-types/soup2/-/soup2-2.74.1.tgz#114a53638ddab71684681a53dd10f570eaac96a6"
integrity sha512-K11KSN032DFAc3RTTBtPiZ9utWqw4CJ7wUAG1cMRdQtRBD44Xi2o2r9RuZkqUhT12V0vU7ZafF8Apb6PM6AOpg==
"@gi-types/soup3@^3.0.1":
version "3.0.1"
resolved "https://registry.yarnpkg.com/@gi-types/soup3/-/soup3-3.0.1.tgz#0b8c73c929384dba0a1122f0c20ced724808fabd"
integrity sha512-fZoJA5QHopIcOVf83dbhzRJqpHtbUUmyIinq6nu+sStQTOMQcf8m31cTVJvpjP6PzaBO13xaG3hagccF1PXpvw==
dependencies:
"@gi-types/gio2" "^2.72.1"
"@gi-types/glib2" "^2.72.1"
@@ -1049,11 +987,6 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.0.tgz#7d4411bf5157339337d7cff864d9ff45f177b499"
integrity sha512-mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA==

"@types/node@^10.12.5":
version "10.17.18"
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.18.tgz#ae364d97382aacdebf583fa4e7132af2dfe56a0c"
integrity sha512-DQ2hl/Jl3g33KuAUOcMrcAOtsbzb+y/ufakzAdeK9z/H/xsvkpbETZZbPNMIiQuk24f5ZRMCcZIViAwyFIiKmg==

"@types/normalize-package-data@^2.4.0":
version "2.4.1"
resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301"
@@ -1298,11 +1231,6 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=

base64-js@^1.0.2:
version "1.3.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==

boolbase@^1.0.0, boolbase@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
@@ -1350,14 +1278,6 @@ buffer-from@^1.0.0:
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==

buffer@^5.0.8:
version "5.5.0"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.5.0.tgz#9c3caa3d623c33dd1c7ef584b89b88bf9c9bc1ce"
integrity sha512-9FTEDjLjwoAkEwyMGDjYJQN2gfRgOKBKRfiglhvibGbpeeU/pQn1bJxQqm32OD/AIeEuHxU9roxXxg34Byp/Ww==
dependencies:
base64-js "^1.0.2"
ieee754 "^1.1.4"

builtin-modules@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484"
@@ -1453,24 +1373,6 @@ caniuse-lite@^1.0.30001271:
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001271.tgz#0dda0c9bcae2cf5407cd34cac304186616cc83e8"
integrity sha512-BBruZFWmt3HFdVPS8kceTBIguKxu4f99n5JNp06OlPD/luoAMIaIK5ieV5YjnBLH3Nysai9sxj9rpJj4ZisXOA==

cgjs@^0.1.32:
version "0.1.32"
resolved "https://registry.yarnpkg.com/cgjs/-/cgjs-0.1.32.tgz#1c96f68f73fdde9aba098bdfa42a41e40c06975c"
integrity sha512-d2TiE5fyRzTIk8/6uEP6hYMkjnBpJa1DkhCnlJubyEotH6DoXd8LJ/PiJBU9NSeDHhpRmSnQdku00qXQi6KmeQ==
dependencies:
"@cgjs/assert" "^0.0.2"
"@cgjs/buffer" "^0.1.1"
"@cgjs/cluster" "^0.0.2"
"@cgjs/console" "^0.1.3"
"@cgjs/events" "^0.1.1"
"@cgjs/fs" "^0.0.4"
"@cgjs/gir" "^0.0.1"
"@cgjs/os" "^0.1.1"
"@cgjs/path" "^0.1.1"
"@cgjs/process" "^0.0.4"
"@cgjs/timers" "^0.0.2"
"@cgjs/util" "^0.1.1"

chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
@@ -2583,14 +2485,6 @@ graceful-fs@^4.2.0:
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==

grest@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/grest/-/grest-1.2.0.tgz#ae7236242b09f8ef09868c2b7f1363ac49698ba6"
integrity sha512-ZW2K10i/PjxkeMkIvn+crJyhIGOberCaGRMHxcVTyomeCytWgLCMhrx/yTQ3tAMovHjJ0uPXKejNNMf6huHARg==
optionalDependencies:
"@types/node" "^10.12.5"
cgjs "^0.1.32"

hard-rejection@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883"
@@ -2689,11 +2583,6 @@ icss-utils@^5.0.0, icss-utils@^5.1.0:
resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae"
integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==

ieee754@^1.1.4:
version "1.1.13"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"
integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==

ignore@^4.0.6:
version "4.0.6"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"

0 comments on commit ab55c43

Please sign in to comment.