Yuki Takei 3 лет назад
Родитель
Сommit
bfd5219e23

+ 0 - 2
packages/app/package.json

@@ -110,7 +110,6 @@
     "express-mongo-sanitize": "^2.1.0",
     "express-session": "^1.16.1",
     "express-validator": "^6.14.0",
-    "express-webpack-assets": "^0.1.0",
     "extensible-custom-error": "^0.0.7",
     "graceful-fs": "^4.1.11",
     "hast-util-select": "^5.0.2",
@@ -182,7 +181,6 @@
     "string-width": "=4.2.2",
     "superjson": "^1.9.1",
     "swagger-jsdoc": "^6.1.0",
-    "swig-templates": "^2.0.2",
     "swr": "^1.3.0",
     "throttle-debounce": "^3.0.1",
     "toastr": "^2.1.2",

+ 0 - 2
packages/app/src/server/crowi/dev.js

@@ -8,8 +8,6 @@ import loggerFactory from '~/utils/logger';
 
 import nextFactory from '../routes/next';
 
-const swig = require('swig-templates');
-
 const logger = loggerFactory('growi:crowi:dev');
 
 

+ 0 - 12
packages/app/src/server/crowi/express-init.js

@@ -2,8 +2,6 @@ import { manifestPath as presetThemesManifestPath } from '@growi/preset-themes';
 import csrf from 'csurf';
 import mongoose from 'mongoose';
 
-import { i18n, localePath } from '^/config/next-i18next.config';
-
 import loggerFactory from '~/utils/logger';
 import { resolveFromRoot } from '~/utils/project-dir-utils';
 
@@ -22,8 +20,6 @@ module.exports = function(crowi, app) {
   const expressSession = require('express-session');
   const flash = require('connect-flash');
   const mongoSanitize = require('express-mongo-sanitize');
-  const swig = require('swig-templates');
-  const webpackAssets = require('express-webpack-assets');
   // const i18next = require('i18next');
   // const i18nFsBackend = require('i18next-node-fs-backend');
   // const i18nSprintf = require('i18next-sprintf-postprocessor');
@@ -122,10 +118,6 @@ module.exports = function(crowi, app) {
   ));
   app.use('/static/plugins', express.static(path.resolve(__dirname, '../../../tmp/plugins')));
 
-  app.engine('html', swig.renderFile);
-  // app.set('view cache', false);  // Default: true in production, otherwise undefined. -- 2017.07.04 Yuki Takei
-  app.set('view engine', 'html');
-  app.set('views', crowi.viewsDir);
   app.use(methodOverride());
 
   // inject rawBody to req
@@ -173,10 +165,6 @@ module.exports = function(crowi, app) {
   app.use(injectCurrentuserToLocalvars);
   app.use(autoReconnectToS2sMsgServer);
 
-  const middlewares = require('../util/middlewares')(crowi, app);
-  app.use(middlewares.swigFilters(swig));
-  app.use(middlewares.swigFunctions());
-
   // app.use(i18nMiddleware.handle(i18next));
   // TODO: Remove this workaround implementation when i18n works correctly.
   //       For now, req.t returns string given to req.t(string)

+ 0 - 2
packages/app/src/server/routes/hackmd.js

@@ -8,8 +8,6 @@ const path = require('path');
 const hackmdFiles = require('@growi/hackmd');
 const axios = require('axios');
 const ejs = require('ejs');
-const fs = require('graceful-fs');
-const swig = require('swig-templates');
 
 const ApiResponse = require('../util/apiResponse');
 

+ 1 - 1
packages/app/src/server/service/mail.ts

@@ -1,9 +1,9 @@
 import nodemailer from 'nodemailer';
-import swig from 'swig-templates';
 
 import loggerFactory from '~/utils/logger';
 
 import S2sMessage from '../models/vo/s2s-message';
+
 import { S2sMessageHandlable } from './s2s-messaging/handlable';
 
 const logger = loggerFactory('growi:service:mail');

+ 0 - 133
packages/app/src/server/util/middlewares.js

@@ -1,133 +0,0 @@
-import loggerFactory from '~/utils/logger';
-
-// don't add any more middlewares to this file.
-// all new middlewares should be an independent file under /server/middlewares
-// eslint-disable-next-line no-unused-vars
-
-const { pathUtils } = require('@growi/core');
-const { formatDistanceStrict } = require('date-fns');
-const entities = require('entities');
-
-// eslint-disable-next-line no-unused-vars
-const logger = loggerFactory('growi:lib:middlewares');
-
-module.exports = (crowi) => {
-  const { configManager } = crowi;
-
-  const middlewares = {};
-
-  middlewares.swigFunctions = function() {
-    return function(req, res, next) {
-      require('../util/swigFunctions')(crowi, req, res.locals);
-      next();
-    };
-  };
-
-  middlewares.swigFilters = function(swig) {
-
-    return function(req, res, next) {
-      swig.setFilter('path2name', (string) => {
-        const name = string.replace(/(\/)$/, '');
-
-        if (name.match(/.+\/([^/]+\/\d{4}\/\d{2}\/\d{2})$/)) { // /.../hoge/YYYY/MM/DD 形式のページ
-          return name.replace(/.+\/([^/]+\/\d{4}\/\d{2}\/\d{2})$/, '$1');
-        }
-        if (name.match(/.+\/([^/]+\/\d{4}\/\d{2})$/)) { // /.../hoge/YYYY/MM 形式のページ
-          return name.replace(/.+\/([^/]+\/\d{4}\/\d{2})$/, '$1');
-        }
-        if (name.match(/.+\/([^/]+\/\d{4})$/)) { // /.../hoge/YYYY 形式のページ
-          return name.replace(/.+\/([^/]+\/\d{4})$/, '$1');
-        }
-
-        return name.replace(/.+\/(.+)?$/, '$1'); // ページの末尾を拾う
-      });
-
-      swig.setFilter('normalizeDateInPath', (path) => {
-        const patterns = [
-          [/20(\d{2})(\d{2})(\d{2})(.+)/g, '20$1/$2/$3/$4'],
-          [/20(\d{2})(\d{2})(\d{2})/g, '20$1/$2/$3'],
-          [/20(\d{2})(\d{2})(.+)/g, '20$1/$2/$3'],
-          [/20(\d{2})(\d{2})/g, '20$1/$2'],
-          [/20(\d{2})_(\d{1,2})_(\d{1,2})_?(.+)/g, '20$1/$2/$3/$4'],
-          [/20(\d{2})_(\d{1,2})_(\d{1,2})/g, '20$1/$2/$3'],
-          [/20(\d{2})_(\d{1,2})_?(.+)/g, '20$1/$2/$3'],
-          [/20(\d{2})_(\d{1,2})/g, '20$1/$2'],
-        ];
-
-        for (let i = 0; i < patterns.length; i++) {
-          const mat = patterns[i][0];
-          const rep = patterns[i][1];
-          if (path.match(mat)) {
-            return path.replace(mat, rep);
-          }
-        }
-
-        return path;
-      });
-
-      swig.setFilter('datetz', (input, format) => {
-        // timezone
-        const swigFilters = require('swig-templates/lib/filters');
-        return swigFilters.date(input, format, crowi.appService.getTzoffset());
-      });
-
-      swig.setFilter('dateDistance', (input) => {
-        return formatDistanceStrict(input, new Date());
-      });
-
-      swig.setFilter('nl2br', (string) => {
-        return string
-          .replace(/\n/g, '<br>');
-      });
-
-      swig.setFilter('removeTrailingSlash', (string) => {
-        return pathUtils.removeTrailingSlash(string);
-      });
-
-      swig.setFilter('addTrailingSlash', (string) => {
-        return pathUtils.addTrailingSlash(string);
-      });
-
-      swig.setFilter('presentation', (string) => {
-        // 手抜き
-        return string
-          .replace(/\s(https?.+(jpe?g|png|gif))\s/, '\n\n\n![]($1)\n\n\n');
-      });
-
-      swig.setFilter('encodeHTML', (string) => {
-        return entities.encodeHTML(string);
-      });
-
-      swig.setFilter('preventXss', (string) => {
-        return crowi.xss.process(string);
-      });
-
-      swig.setFilter('slice', (list, start, end) => {
-        return list.slice(start, end);
-      });
-
-      swig.setFilter('push', (list, element) => {
-        list.push(element);
-        return list;
-      });
-
-      next();
-    };
-  };
-
-  middlewares.awsEnabled = function() {
-    return function(req, res, next) {
-      if ((configManager.getConfig('crowi', 'aws:s3Region') !== '' || this.configManager.getConfig('crowi', 'aws:s3CustomEndpoint') !== '')
-          && configManager.getConfig('crowi', 'aws:s3Bucket') !== ''
-          && configManager.getConfig('crowi', 'aws:s3AccessKeyId') !== ''
-          && configManager.getConfig('crowi', 'aws:s3SecretAccessKey') !== '') {
-        req.flash('globalError', req.t('message.aws_sttings_required'));
-        return res.redirect('/');
-      }
-
-      return next();
-    };
-  };
-
-  return middlewares;
-};

+ 0 - 208
packages/app/src/server/util/swigFunctions.js

@@ -1,208 +0,0 @@
-module.exports = function(crowi, req, locals) {
-  const debug = require('debug')('growi:lib:swigFunctions');
-  const stringWidth = require('string-width');
-
-  const { pathUtils } = require('@growi/core');
-
-  const Page = crowi.model('Page');
-  const User = crowi.model('User');
-  const {
-    configManager,
-    cdnResourcesService,
-    passportService,
-    appService,
-    aclService,
-    customizeService,
-    pageService,
-  } = crowi;
-  debug('initializing swigFunctions');
-
-  locals.nodeVersion = function() {
-    return crowi.runtimeVersions.versions.node ? crowi.runtimeVersions.versions.node.version : '-';
-  };
-  locals.npmVersion = function() {
-    return crowi.runtimeVersions.versions.npm ? crowi.runtimeVersions.versions.npm.version : '-';
-  };
-  locals.yarnVersion = function() {
-    return crowi.runtimeVersions.versions.yarn ? crowi.runtimeVersions.versions.yarn.version : '-';
-  };
-
-  locals.getAppTitleFontSize = function(appTitle) {
-    const appTitleWidth = stringWidth(appTitle);
-    let fontSize = 22;
-    if (appTitleWidth < 13) { /* do nothing */ }
-    else if (appTitleWidth < 21) {
-      fontSize -= 3 * (Math.floor((appTitleWidth - 13) / 3) + 1);
-    }
-    else {
-      fontSize = 11;
-    }
-    return fontSize;
-  };
-
-  /**
-   * @see ConfigManager#getConfig
-   */
-  locals.getConfig = configManager.getConfig.bind(configManager);
-
-  /**
-   * **Do not use this unless absolutely necessary. Use getConfig instead.**
-   */
-  locals.getConfigFromDB = configManager.getConfigFromDB.bind(configManager);
-
-  /**
-   * **Do not use this unless absolutely necessary. Use getConfig instead.**
-   */
-  locals.getConfigFromEnvVars = configManager.getConfigFromEnvVars.bind(configManager);
-
-  /**
-   * pass service/utils instances to swig
-   */
-  locals.appService = appService;
-  locals.aclService = aclService;
-  locals.customizeService = customizeService;
-  locals.passportService = passportService;
-  locals.pageService = pageService;
-  locals.pathUtils = pathUtils;
-
-  locals.noCdn = function() {
-    return cdnResourcesService.noCdn;
-  };
-
-  locals.cdnScriptTag = function(name) {
-    return cdnResourcesService.getScriptTagByName(name);
-  };
-  locals.cdnScriptTagsByGroup = function(group) {
-    const tags = cdnResourcesService.getScriptTagsByGroup(group);
-    return tags.join('\n');
-  };
-
-  locals.cdnStyleTag = function(name) {
-    return cdnResourcesService.getStyleTagByName(name);
-  };
-
-  locals.cdnStyleTagsByGroup = function(group) {
-    const tags = cdnResourcesService.getStyleTagsByGroup(group);
-    return tags.join('\n');
-  };
-
-  locals.cdnHighlightJsStyleTag = function(styleName) {
-    return cdnResourcesService.getHighlightJsStyleTag(styleName);
-  };
-
-  /**
-   * return true if enabled but strategy has some problem
-   */
-  locals.isLdapSetupFailed = function() {
-    return (
-      configManager.getConfig('crowi', 'security:passport-ldap:isEnabled')
-      && !passportService.isLdapStrategySetup
-    );
-  };
-
-  locals.getSamlMissingMandatoryConfigKeys = function() {
-    return crowi.passportService.getSamlMissingMandatoryConfigKeys();
-  };
-
-  locals.isHackmdSetup = function() {
-    return process.env.HACKMD_URI != null;
-  };
-
-  locals.parentPath = function(path) {
-    if (path === '/') {
-      return path;
-    }
-
-    if (path.match(/.+\/$/)) {
-      return path;
-    }
-
-    return `${path}/`;
-  };
-
-  locals.isUserPageList = function(path) {
-    if (path.match(/^\/user\/[^/]+\/$/)) {
-      return true;
-    }
-
-    return false;
-  };
-
-  locals.isTopPage = function() {
-    const path = req.path || '';
-    if (path === '/') {
-      return true;
-    }
-
-    return false;
-  };
-
-  locals.isTrashPage = function(path = '') {
-    if (path.match(/^\/trash(\/.*)?$/)) {
-      return true;
-    }
-
-    return false;
-  };
-
-  locals.userPageRoot = function(user) {
-    if (!user || !user.username) {
-      return '';
-    }
-    return `/user/${user.username}`;
-  };
-
-  locals.pagesDataForTimeline = function(pages) {
-    return pages.map((page) => {
-      return {
-        id: page.id,
-        path: page.path,
-        revision: page.revision,
-      };
-    });
-  };
-
-  locals.attachTitleHeader = function(path) {
-    return pathUtils.attachTitleHeader(path);
-  };
-
-  locals.css = {
-    grant(pageData) {
-      if (!pageData) {
-        return '';
-      }
-
-      switch (pageData.grant) {
-        case Page.GRANT_PUBLIC:
-          return 'grant-public';
-        case Page.GRANT_RESTRICTED:
-          return 'grant-restricted';
-        // case Page.GRANT_SPECIFIED:
-        //  return 'grant-specified';
-        //  break;
-        case Page.GRANT_OWNER:
-          return 'grant-owner';
-        default:
-          break;
-      }
-      return '';
-    },
-    userStatus(user) {
-      switch (user.status) {
-        case User.STATUS_REGISTERED:
-          return 'label-info';
-        case User.STATUS_ACTIVE:
-          return 'label-success';
-        case User.STATUS_SUSPENDED:
-          return 'label-warning';
-        case User.STATUS_DELETED:
-          return 'label-danger';
-        case User.STATUS_INVITED:
-          return 'label-info';
-        default:
-          break;
-      }
-      return '';
-    },
-  };
-};

+ 2 - 103
yarn.lock

@@ -4947,14 +4947,6 @@ ajv@^8.0.1:
     require-from-string "^2.0.2"
     uri-js "^4.2.2"
 
-align-text@^0.1.1, align-text@^0.1.3:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
-  dependencies:
-    kind-of "^3.0.2"
-    longest "^1.0.1"
-    repeat-string "^1.5.2"
-
 ansi-colors@^4.1.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
@@ -5425,10 +5417,6 @@ async@^3.2.3:
   resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c"
   integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==
 
-async@~0.2.6:
-  version "0.2.10"
-  resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
-
 asynckit@^0.4.0:
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -6325,10 +6313,6 @@ camelcase-keys@^7.0.0:
     quick-lru "^5.1.1"
     type-fest "^1.2.1"
 
-camelcase@^1.0.2:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
-
 camelcase@^2.0.0:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
@@ -6407,13 +6391,6 @@ ccount@^2.0.0:
   resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5"
   integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==
 
-center-align@^0.1.1:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
-  dependencies:
-    align-text "^0.1.3"
-    lazy-cache "^1.0.3"
-
 chainsaw@~0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98"
@@ -6779,14 +6756,6 @@ cli@~1.0.0:
     exit "0.1.2"
     glob "^7.1.1"
 
-cliui@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
-  dependencies:
-    center-align "^0.1.1"
-    right-align "^0.1.1"
-    wordwrap "0.0.2"
-
 cliui@^4.0.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49"
@@ -7792,7 +7761,7 @@ decamelize-keys@^1.1.0:
     decamelize "^1.1.0"
     map-obj "^1.0.0"
 
-decamelize@^1.0.0, decamelize@^1.1.0, decamelize@^1.1.2, decamelize@^1.2.0:
+decamelize@^1.1.0, decamelize@^1.1.2, decamelize@^1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
 
@@ -9747,10 +9716,6 @@ express-validator@^6.14.0:
     lodash "^4.17.21"
     validator "^13.7.0"
 
-express-webpack-assets@^0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/express-webpack-assets/-/express-webpack-assets-0.1.0.tgz#000fb3413eb0d512cbd6cd3f6a10b5e70dbe0079"
-
 express@^4.16.1:
   version "4.16.2"
   resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c"
@@ -13572,10 +13537,6 @@ lazy-ass@1.6.0, lazy-ass@^1.6.0:
   resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513"
   integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM=
 
-lazy-cache@^1.0.3:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
-
 lazystream@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4"
@@ -14037,10 +13998,6 @@ longest-streak@^3.0.0:
   resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.0.1.tgz#c97315b7afa0e7d9525db9a5a2953651432bdc5d"
   integrity sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==
 
-longest@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
-
 loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1:
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
@@ -15385,10 +15342,6 @@ minimist@^1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
 
-minimist@~0.0.1:
-  version "0.0.10"
-  resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
-
 minipass-collect@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617"
@@ -16711,13 +16664,6 @@ openid-client@^5.1.2:
     object-hash "^2.0.1"
     oidc-token-hash "^5.0.1"
 
-optimist@~0.6:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
-  dependencies:
-    minimist "~0.0.1"
-    wordwrap "~0.0.2"
-
 optional@0.1.4:
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/optional/-/optional-0.1.4.tgz#cdb1a9bedc737d2025f690ceeb50e049444fd5b3"
@@ -20290,12 +20236,6 @@ rfdc@^1.3.0:
   resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b"
   integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==
 
-right-align@^0.1.1:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
-  dependencies:
-    align-text "^0.1.1"
-
 rimraf@2, rimraf@^2.6.1:
   version "2.7.1"
   resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
@@ -21171,7 +21111,7 @@ source-map-url@^0.4.0:
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
 
-source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.1:
+source-map@^0.5.0, source-map@^0.5.6:
   version "0.5.7"
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
   integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
@@ -21868,13 +21808,6 @@ swagger2openapi@^5.3.1:
     yaml "^1.3.1"
     yargs "^12.0.5"
 
-swig-templates@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/swig-templates/-/swig-templates-2.0.2.tgz#d2502a7303019356f4ea76ea9065d4f58af6ab75"
-  dependencies:
-    optimist "~0.6"
-    uglify-js "2.6.0"
-
 swr@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/swr/-/swr-1.3.0.tgz#c6531866a35b4db37b38b72c45a63171faf9f4e8"
@@ -22951,24 +22884,11 @@ uberproto@^1.1.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/uberproto/-/uberproto-1.2.0.tgz#61d4eab024f909c4e6ea52be867c4894a4beeb76"
 
-uglify-js@2.6.0:
-  version "2.6.0"
-  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.6.0.tgz#25eaa1cc3550e39410ceefafd1cfbb6b6d15f001"
-  dependencies:
-    async "~0.2.6"
-    source-map "~0.5.1"
-    uglify-to-browserify "~1.0.0"
-    yargs "~3.10.0"
-
 uglify-js@^3.1.4:
   version "3.13.4"
   resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.4.tgz#592588bb9f47ae03b24916e2471218d914955574"
   integrity sha512-kv7fCkIXyQIilD5/yQy8O+uagsYIOt5cZvs890W40/e/rvjMSzJw81o9Bg0tkURxzZBROtDQhW2LFjOGoK3RZw==
 
-uglify-to-browserify@~1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
-
 uglifycss@^0.0.29:
   version "0.0.29"
   resolved "https://registry.yarnpkg.com/uglifycss/-/uglifycss-0.0.29.tgz#abe49531155d146e75dd2fdf933d371bc1180054"
@@ -23934,10 +23854,6 @@ wide-align@^1.1.2:
   dependencies:
     string-width "^1.0.2 || 2 || 3 || 4"
 
-window-size@0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
-
 windows-release@^3.1.0:
   version "3.3.3"
   resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.3.3.tgz#1c10027c7225743eec6b89df160d64c2e0293999"
@@ -23950,18 +23866,10 @@ word-wrap@^1.2.3, word-wrap@~1.2.3:
   resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
   integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
 
-wordwrap@0.0.2:
-  version "0.0.2"
-  resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
-
 wordwrap@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
 
-wordwrap@~0.0.2:
-  version "0.0.3"
-  resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
-
 wrap-ansi@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
@@ -24373,15 +24281,6 @@ yargs@^17.3.1:
     y18n "^5.0.5"
     yargs-parser "^21.0.0"
 
-yargs@~3.10.0:
-  version "3.10.0"
-  resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
-  dependencies:
-    camelcase "^1.0.2"
-    cliui "^2.1.0"
-    decamelize "^1.0.0"
-    window-size "0.1.0"
-
 yauzl@^2.10.0:
   version "2.10.0"
   resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"