Add 'Reasons to use Nextcloud in your organization' call to action in settings

Signed-off-by: Jan C. Borchardt <hey@jancborchardt.net>
pull/22136/head
Jan C. Borchardt 6 years ago committed by Roeland Jago Douma
parent 5483d02b5e
commit 4c48d6bf18
No known key found for this signature in database
GPG Key ID: F941078878347C0C
  1. 2
      apps/accessibility/js/accessibility.js
  2. 2
      apps/accessibility/js/accessibility.js.map
  3. 2
      apps/dashboard/js/dashboard.js
  4. 2
      apps/dashboard/js/dashboard.js.map
  5. 2
      apps/files/js/dist/personal-settings.js
  6. 2
      apps/files/js/dist/personal-settings.js.map
  7. 2
      apps/files/js/dist/sidebar.js
  8. 2
      apps/files/js/dist/sidebar.js.map
  9. 2
      apps/files_sharing/js/dist/additionalScripts.js
  10. 2
      apps/files_sharing/js/dist/additionalScripts.js.map
  11. 2
      apps/files_sharing/js/dist/collaboration.js
  12. 2
      apps/files_sharing/js/dist/collaboration.js.map
  13. 2
      apps/files_sharing/js/dist/files_sharing.js
  14. 2
      apps/files_sharing/js/dist/files_sharing.js.map
  15. 2
      apps/files_sharing/js/dist/files_sharing_tab.js
  16. 2
      apps/files_sharing/js/dist/files_sharing_tab.js.map
  17. 2
      apps/files_sharing/js/dist/main.js
  18. 2
      apps/files_sharing/js/dist/main.js.map
  19. 2
      apps/files_sharing/js/dist/personal-settings.js
  20. 2
      apps/files_sharing/js/dist/personal-settings.js.map
  21. 2
      apps/oauth2/js/oauth2.js
  22. 2
      apps/oauth2/js/oauth2.js.map
  23. 2
      apps/settings/appinfo/routes.php
  24. 1
      apps/settings/composer/composer/autoload_classmap.php
  25. 1
      apps/settings/composer/composer/autoload_static.php
  26. 31
      apps/settings/css/settings.scss
  27. BIN
      apps/settings/data/Reasons to use Nextcloud.pdf
  28. 4
      apps/settings/js/vue-0.js
  29. 2
      apps/settings/js/vue-0.js.map
  30. 4
      apps/settings/js/vue-6.js
  31. 2
      apps/settings/js/vue-6.js.map
  32. 4
      apps/settings/js/vue-7.js
  33. 2
      apps/settings/js/vue-7.js.map
  34. 4
      apps/settings/js/vue-8.js
  35. 2
      apps/settings/js/vue-8.js.map
  36. 2
      apps/settings/js/vue-9.js
  37. 1
      apps/settings/js/vue-9.js.map
  38. 4
      apps/settings/js/vue-settings-admin-security.js
  39. 2
      apps/settings/js/vue-settings-admin-security.js.map
  40. 4
      apps/settings/js/vue-settings-apps-users-management.js
  41. 2
      apps/settings/js/vue-settings-apps-users-management.js.map
  42. 2
      apps/settings/js/vue-settings-nextcloud-pdf.js
  43. 1
      apps/settings/js/vue-settings-nextcloud-pdf.js.map
  44. 4
      apps/settings/js/vue-settings-personal-security.js
  45. 2
      apps/settings/js/vue-settings-personal-security.js.map
  46. 4
      apps/settings/js/vue-settings-personal-webauthn.js
  47. 2
      apps/settings/js/vue-settings-personal-webauthn.js.map
  48. 46
      apps/settings/lib/Controller/ReasonsController.php
  49. 52
      apps/settings/lib/Settings/Personal/ServerDevNotice.php
  50. 36
      apps/settings/src/main-nextcloud-pdf.js
  51. 5
      apps/settings/templates/settings/personal/development.notice.php
  52. 6
      apps/settings/tests/Controller/AdminSettingsControllerTest.php
  53. 3
      apps/settings/webpack.js
  54. 2
      apps/twofactor_backupcodes/js/settings.js
  55. 2
      apps/twofactor_backupcodes/js/settings.js.map
  56. 2
      apps/updatenotification/js/updatenotification.js
  57. 2
      apps/updatenotification/js/updatenotification.js.map
  58. 4
      apps/user_status/js/dashboard.js
  59. 2
      apps/user_status/js/dashboard.js.map
  60. 4
      apps/user_status/js/user-status-menu.js
  61. 2
      apps/user_status/js/user-status-menu.js.map
  62. 4
      apps/weather_status/js/weather-status.js
  63. 2
      apps/weather_status/js/weather-status.js.map
  64. 2
      apps/workflowengine/js/workflowengine.js
  65. 2
      apps/workflowengine/js/workflowengine.js.map
  66. 2
      core/js/dist/login.js
  67. 2
      core/js/dist/login.js.map
  68. 2
      core/js/dist/maintenance.js
  69. 2
      core/js/dist/maintenance.js.map
  70. 2
      core/js/dist/recommendedapps.js
  71. 2
      core/js/dist/recommendedapps.js.map
  72. 2
      core/js/dist/unified-search.js
  73. 2
      core/js/dist/unified-search.js.map
  74. 1136
      package-lock.json

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,2 +1,2 @@
!function(e){var n={};function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)t.d(r,o,function(n){return e[n]}.bind(null,o));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/js/",t(t.s=164)}({164:function(e,n,r){r.p=OC.linkTo("files_sharing","js/dist/"),r.nc=btoa(OC.requestToken),window.OCP.Collaboration.registerType("file",{action:function(){return new Promise((function(e,n){OC.dialogs.filepicker(t("files_sharing","Link to a file"),(function(t){OC.Files.getClient().getFileInfo(t).then((function(n,t){e(t.id)})).fail((function(){n(new Error("Cannot get fileinfo"))}))}),!1,null,!1,OC.dialogs.FILEPICKER_TYPE_CHOOSE,"",{allowDirectoryChooser:!0})}))},typeString:t("files_sharing","Link to a file"),typeIconClass:"icon-files-dark"})}});
!function(e){var n={};function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)t.d(r,o,function(n){return e[n]}.bind(null,o));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/js/",t(t.s=151)}({151:function(e,n,r){r.p=OC.linkTo("files_sharing","js/dist/"),r.nc=btoa(OC.requestToken),window.OCP.Collaboration.registerType("file",{action:function(){return new Promise((function(e,n){OC.dialogs.filepicker(t("files_sharing","Link to a file"),(function(t){OC.Files.getClient().getFileInfo(t).then((function(n,t){e(t.id)})).fail((function(){n(new Error("Cannot get fileinfo"))}))}),!1,null,!1,OC.dialogs.FILEPICKER_TYPE_CHOOSE,"",{allowDirectoryChooser:!0})}))},typeString:t("files_sharing","Link to a file"),typeIconClass:"icon-files-dark"})}});
//# sourceMappingURL=collaboration.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,2 +1,2 @@
!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/js/",r(r.s=282)}({282:function(e,t){Object.assign(OC,{Share:{SHARE_TYPE_USER:0,SHARE_TYPE_GROUP:1,SHARE_TYPE_LINK:3,SHARE_TYPE_EMAIL:4,SHARE_TYPE_REMOTE:6,SHARE_TYPE_CIRCLE:7,SHARE_TYPE_GUEST:8,SHARE_TYPE_REMOTE_GROUP:9,SHARE_TYPE_ROOM:10}})}});
!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/js/",r(r.s=277)}({277:function(e,t){Object.assign(OC,{Share:{SHARE_TYPE_USER:0,SHARE_TYPE_GROUP:1,SHARE_TYPE_LINK:3,SHARE_TYPE_EMAIL:4,SHARE_TYPE_REMOTE:6,SHARE_TYPE_CIRCLE:7,SHARE_TYPE_GUEST:8,SHARE_TYPE_REMOTE_GROUP:9,SHARE_TYPE_ROOM:10}})}});
//# sourceMappingURL=main.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -79,5 +79,7 @@ return [
['name' => 'WebAuthn#startRegistration', 'url' => '/settings/api/personal/webauthn/registration', 'verb' => 'GET' , 'root' => ''],
['name' => 'WebAuthn#finishRegistration', 'url' => '/settings/api/personal/webauthn/registration', 'verb' => 'POST' , 'root' => ''],
['name' => 'WebAuthn#deleteRegistration', 'url' => '/settings/api/personal/webauthn/registration/{id}', 'verb' => 'DELETE' , 'root' => ''],
['name' => 'Reasons#getPdf', 'url' => '/settings/download/reasons', 'verb' => 'GET', 'root' => ''],
]
];

@ -25,6 +25,7 @@ return array(
'OCA\\Settings\\Controller\\LogSettingsController' => $baseDir . '/../lib/Controller/LogSettingsController.php',
'OCA\\Settings\\Controller\\MailSettingsController' => $baseDir . '/../lib/Controller/MailSettingsController.php',
'OCA\\Settings\\Controller\\PersonalSettingsController' => $baseDir . '/../lib/Controller/PersonalSettingsController.php',
'OCA\\Settings\\Controller\\ReasonsController' => $baseDir . '/../lib/Controller/ReasonsController.php',
'OCA\\Settings\\Controller\\TwoFactorSettingsController' => $baseDir . '/../lib/Controller/TwoFactorSettingsController.php',
'OCA\\Settings\\Controller\\UsersController' => $baseDir . '/../lib/Controller/UsersController.php',
'OCA\\Settings\\Controller\\WebAuthnController' => $baseDir . '/../lib/Controller/WebAuthnController.php',

@ -40,6 +40,7 @@ class ComposerStaticInitSettings
'OCA\\Settings\\Controller\\LogSettingsController' => __DIR__ . '/..' . '/../lib/Controller/LogSettingsController.php',
'OCA\\Settings\\Controller\\MailSettingsController' => __DIR__ . '/..' . '/../lib/Controller/MailSettingsController.php',
'OCA\\Settings\\Controller\\PersonalSettingsController' => __DIR__ . '/..' . '/../lib/Controller/PersonalSettingsController.php',
'OCA\\Settings\\Controller\\ReasonsController' => __DIR__ . '/..' . '/../lib/Controller/ReasonsController.php',
'OCA\\Settings\\Controller\\TwoFactorSettingsController' => __DIR__ . '/..' . '/../lib/Controller/TwoFactorSettingsController.php',
'OCA\\Settings\\Controller\\UsersController' => __DIR__ . '/..' . '/../lib/Controller/UsersController.php',
'OCA\\Settings\\Controller\\WebAuthnController' => __DIR__ . '/..' . '/../lib/Controller/WebAuthnController.php',

@ -161,6 +161,37 @@ select {
}
// Button for 'Reasons to use Nextcloud in your organization'
.development-notice {
text-align: center;
}
.link-button {
display: inline-block;
margin: 16px;
padding: 14px 20px;
background-color: var(--color-primary);
color: #fff;
border-radius: var(--border-radius-pill);
border: 1px solid var(--color-primary);
box-shadow: 0 2px 9px var(--color-box-shadow);
&:active,
&:hover,
&:focus {
color: var(--color-primary);
background-color: var(--color-primary-text);
border-color: var(--color-primary) !important;
}
&.icon-file {
padding-left: 48px;
background-position: 24px;
}
}
@media (min-width: 1200px) and (max-width: 1400px) {
#personal-settings {
display: grid;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,46 @@
<?php
declare(strict_types=1);
/**
* @copyright Copyright (c) 2020, Roeland Jago Douma <roeland@famdouma.nl>
*
* @author Roeland Jago Douma <roeland@famdouma.nl>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Settings\Controller;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\DataDisplayResponse;
class ReasonsController extends Controller {
/**
* @NoCSRFRequired
* @NoAdminRequired
* @NoSubAdminRequired
*/
public function getPdf() {
$data = file_get_contents(__DIR__ . '/../../data/Reasons to use Nextcloud.pdf');
$resp = new DataDisplayResponse($data);
$resp->addHeader('Content-Type', 'application/pdf');
return $resp;
}
}

@ -24,24 +24,72 @@
namespace OCA\Settings\Settings\Personal;
use OCA\Viewer\Event\LoadViewer;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\AppFramework\Services\IInitialState;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\IRootFolder;
use OCP\IURLGenerator;
use OCP\IUserSession;
use OCP\Settings\ISettings;
use OCP\Support\Subscription\IRegistry;
use OCP\Util;
class ServerDevNotice implements ISettings {
/** @var IRegistry */
private $registry;
public function __construct(IRegistry $registry) {
/** @var IEventDispatcher */
private $eventDispatcher;
/** @var IRootFolder */
private $rootFolder;
/** @var IUserSession */
private $userSession;
/** @var IInitialState */
private $initialState;
/** @var IURLGenerator */
private $urlGenerator;
public function __construct(IRegistry $registry,
IEventDispatcher $eventDispatcher,
IRootFolder $rootFolder,
IUserSession $userSession,
IInitialState $initialState,
IURLGenerator $urlGenerator) {
$this->registry = $registry;
$this->eventDispatcher = $eventDispatcher;
$this->rootFolder = $rootFolder;
$this->userSession = $userSession;
$this->initialState = $initialState;
$this->urlGenerator = $urlGenerator;
}
/**
* @return TemplateResponse
*/
public function getForm() {
return new TemplateResponse('settings', 'settings/personal/development.notice');
$userFolder = $this->rootFolder->getUserFolder($this->userSession->getUser()->getUID());
$hasInitialState = false;
// If the Reasons to use Nextcloud.pdf file is here, let's init Viewer
if ($userFolder->nodeExists('Reasons to use Nextcloud.pdf')) {
$this->eventDispatcher->dispatch(LoadViewer::class, new LoadViewer());
$hasInitialState = true;
}
// Always load the script
Util::addScript('settings', 'vue-settings-nextcloud-pdf');
$this->initialState->provideInitialState('has-reasons-use-nextcloud-pdf', $hasInitialState);
return new TemplateResponse('settings', 'settings/personal/development.notice', [
'reasons-use-nextcloud-pdf-link' => $this->urlGenerator->linkToRoute('settings.Reasons.getPdf')
]);
}
/**

@ -0,0 +1,36 @@
/**
* @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>
*
* @author John Molakvoæ <skjnldsv@protonmail.com>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
import { loadState } from '@nextcloud/initial-state'
const hasPdf = loadState('settings', 'has-reasons-use-nextcloud-pdf') === true
window.addEventListener('DOMContentLoaded', function() {
const link = document.getElementById('open-reasons-use-nextcloud-pdf')
if (link && hasPdf) {
link.addEventListener('click', function(event) {
event.preventDefault()
OCA.Viewer.open({
path: '/Reasons to use Nextcloud.pdf',
})
})
}
})

@ -1,4 +1,7 @@
<div class="section">
<div class="section development-notice">
<p>
<a href="<?php p($_['reasons-use-nextcloud-pdf-link']); ?>" id="open-reasons-use-nextcloud-pdf" class="link-button icon-file" target="_blank">Reasons to use Nextcloud in your organization</a>
</p>
<p>
<?php print_unescaped(str_replace(
[

@ -37,7 +37,6 @@ use OCP\IRequest;
use OCP\IUser;
use OCP\IUserSession;
use OCP\Settings\IManager;
use OCP\Support\Subscription\IRegistry;
use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
@ -87,7 +86,7 @@ class AdminSettingsControllerTest extends TestCase {
$this->subAdmin
);
$user = \OC::$server->getUserManager()->createUser($this->adminUid, 'olo');
$user = \OC::$server->getUserManager()->createUser($this->adminUid, 'mylongrandompassword');
\OC_User::setUserId($user->getUID());
\OC::$server->getGroupManager()->createGroup('admin')->addUser($user);
}
@ -100,7 +99,6 @@ class AdminSettingsControllerTest extends TestCase {
public function testIndex() {
$user = $this->createMock(IUser::class);
$registry = $this->createMock(IRegistry::class);
$this->userSession
->method('getUser')
->willReturn($user);
@ -125,7 +123,7 @@ class AdminSettingsControllerTest extends TestCase {
->expects($this->once())
->method('getAdminSettings')
->with('test')
->willReturn([5 => new ServerDevNotice($registry)]);
->willReturn([5 => $this->createMock(ServerDevNotice::class)]);
$idx = $this->adminSettingsController->index('test');

@ -5,7 +5,8 @@ module.exports = {
'settings-apps-users-management': path.join(__dirname, 'src', 'main-apps-users-management'),
'settings-admin-security': path.join(__dirname, 'src', 'main-admin-security'),
'settings-personal-security': path.join(__dirname, 'src', 'main-personal-security'),
'settings-personal-webauthn': path.join(__dirname, 'src', 'main-personal-webauth')
'settings-personal-webauthn': path.join(__dirname, 'src', 'main-personal-webauth'),
'settings-nextcloud-pdf': path.join(__dirname, 'src', 'main-nextcloud-pdf'),
},
output: {
path: path.resolve(__dirname, './js'),

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1136
package-lock.json generated

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save