Yuki Takei 1 год назад
Родитель
Сommit
34beef7e3a
34 измененных файлов с 120 добавлено и 104 удалено
  1. 7 4
      apps/slackbot-proxy/src/Server.ts
  2. 1 1
      apps/slackbot-proxy/src/config/logger/config.dev.ts
  3. 1 1
      apps/slackbot-proxy/src/config/logger/config.prod.ts
  4. 1 1
      apps/slackbot-proxy/src/config/swagger/config.dev.ts
  5. 1 1
      apps/slackbot-proxy/src/config/swagger/config.prod.ts
  6. 12 10
      apps/slackbot-proxy/src/controllers/growi-to-slack.ts
  7. 3 2
      apps/slackbot-proxy/src/controllers/privacy.ts
  8. 16 15
      apps/slackbot-proxy/src/controllers/slack.ts
  9. 3 2
      apps/slackbot-proxy/src/controllers/term.ts
  10. 1 1
      apps/slackbot-proxy/src/controllers/top.ts
  11. 1 1
      apps/slackbot-proxy/src/entities/installation.ts
  12. 2 1
      apps/slackbot-proxy/src/filters/CustomHttpErrorFilter.ts
  13. 2 1
      apps/slackbot-proxy/src/filters/ResourceNotFoundFilter.ts
  14. 4 2
      apps/slackbot-proxy/src/middlewares/GlobalHttpErrorHandlingMiddleware.ts
  15. 2 1
      apps/slackbot-proxy/src/middlewares/growi-to-slack/add-webclient-response-to-res.ts
  16. 6 5
      apps/slackbot-proxy/src/middlewares/slack-to-growi/authorizer.ts
  17. 5 4
      apps/slackbot-proxy/src/middlewares/slack-to-growi/extract-growi-uri-from-req.ts
  18. 4 5
      apps/slackbot-proxy/src/middlewares/slack-to-growi/join-to-conversation.ts
  19. 3 2
      apps/slackbot-proxy/src/middlewares/slack-to-growi/url-verification.ts
  20. 1 1
      apps/slackbot-proxy/src/models/errors.ts
  21. 3 4
      apps/slackbot-proxy/src/services/InstallerService.ts
  22. 1 1
      apps/slackbot-proxy/src/services/LinkSharedService.ts
  23. 6 5
      apps/slackbot-proxy/src/services/RegisterService.ts
  24. 2 2
      apps/slackbot-proxy/src/services/RelationsService.ts
  25. 6 6
      apps/slackbot-proxy/src/services/SelectGrowiService.ts
  26. 3 3
      apps/slackbot-proxy/src/services/SystemInformationService.ts
  27. 7 7
      apps/slackbot-proxy/src/services/UnregisterService.ts
  28. 5 4
      apps/slackbot-proxy/src/services/growi-uri-injector/ActionsBlockPayloadDelegator.ts
  29. 5 4
      apps/slackbot-proxy/src/services/growi-uri-injector/SectionBlockPayloadDelegator.ts
  30. 2 3
      apps/slackbot-proxy/src/services/growi-uri-injector/ViewInteractionPayloadDelegator.ts
  31. 1 1
      apps/slackbot-proxy/src/services/growi-uri-injector/block-elements/ButtonActionPayloadDelegator.ts
  32. 1 1
      apps/slackbot-proxy/src/services/growi-uri-injector/block-elements/CheckboxesActionPayloadDelegator.ts
  33. 1 1
      apps/slackbot-proxy/src/utils/logger/index.ts
  34. 1 1
      apps/slackbot-proxy/src/utils/welcome-message.ts

+ 7 - 4
apps/slackbot-proxy/src/Server.ts

@@ -3,16 +3,19 @@ import '@tsed/swagger';
 import '@tsed/typeorm'; // !! DO NOT MODIFY !! -- https://github.com/tsedio/tsed/issues/1332#issuecomment-837840612
 import '@tsed/typeorm'; // !! DO NOT MODIFY !! -- https://github.com/tsedio/tsed/issues/1332#issuecomment-837840612
 
 
 import { createTerminus } from '@godaddy/terminus';
 import { createTerminus } from '@godaddy/terminus';
-import { HttpServer, PlatformApplication } from '@tsed/common';
-import { Configuration, Inject, InjectorService } from '@tsed/di';
+import type { PlatformApplication } from '@tsed/common';
+import { HttpServer } from '@tsed/common';
+import type { InjectorService } from '@tsed/di';
+import { Configuration, Inject } from '@tsed/di';
 import bodyParser from 'body-parser';
 import bodyParser from 'body-parser';
 import compress from 'compression';
 import compress from 'compression';
 import cookieParser from 'cookie-parser';
 import cookieParser from 'cookie-parser';
-import { Express } from 'express';
+import type { Express } from 'express';
 import expressBunyanLogger from 'express-bunyan-logger';
 import expressBunyanLogger from 'express-bunyan-logger';
 import helmet from 'helmet';
 import helmet from 'helmet';
 import methodOverride from 'method-override';
 import methodOverride from 'method-override';
-import { ConnectionOptions, getConnectionManager } from 'typeorm';
+import type { ConnectionOptions } from 'typeorm';
+import { getConnectionManager } from 'typeorm';
 
 
 import swaggerSettingsForDev from '~/config/swagger/config.dev';
 import swaggerSettingsForDev from '~/config/swagger/config.dev';
 import swaggerSettingsForProd from '~/config/swagger/config.prod';
 import swaggerSettingsForProd from '~/config/swagger/config.prod';

+ 1 - 1
apps/slackbot-proxy/src/config/logger/config.dev.ts

@@ -1,4 +1,4 @@
-import { UniversalBunyanConfig } from 'universal-bunyan';
+import type { UniversalBunyanConfig } from 'universal-bunyan';
 
 
 const config: UniversalBunyanConfig = {
 const config: UniversalBunyanConfig = {
   default: 'info',
   default: 'info',

+ 1 - 1
apps/slackbot-proxy/src/config/logger/config.prod.ts

@@ -1,4 +1,4 @@
-import { UniversalBunyanConfig } from 'universal-bunyan';
+import type { UniversalBunyanConfig } from 'universal-bunyan';
 
 
 const config: UniversalBunyanConfig = {
 const config: UniversalBunyanConfig = {
   default: 'info',
   default: 'info',

+ 1 - 1
apps/slackbot-proxy/src/config/swagger/config.dev.ts

@@ -1,4 +1,4 @@
-import { SwaggerSettings } from '@tsed/swagger';
+import type { SwaggerSettings } from '@tsed/swagger';
 
 
 const settings: SwaggerSettings[] = [
 const settings: SwaggerSettings[] = [
   {
   {

+ 1 - 1
apps/slackbot-proxy/src/config/swagger/config.prod.ts

@@ -1,4 +1,4 @@
-import { SwaggerSettings } from '@tsed/swagger';
+import type { SwaggerSettings } from '@tsed/swagger';
 
 
 const settings: SwaggerSettings[] = [];
 const settings: SwaggerSettings[] = [];
 
 

+ 12 - 10
apps/slackbot-proxy/src/controllers/growi-to-slack.ts

@@ -2,7 +2,8 @@ import { type BlockKitRequest, REQUEST_TIMEOUT_FOR_PTOG } from '@growi/slack';
 import { verifyGrowiToSlackRequest } from '@growi/slack/dist/middlewares';
 import { verifyGrowiToSlackRequest } from '@growi/slack/dist/middlewares';
 import { getConnectionStatuses, getConnectionStatus } from '@growi/slack/dist/utils/check-communicable';
 import { getConnectionStatuses, getConnectionStatus } from '@growi/slack/dist/utils/check-communicable';
 import { generateWebClient } from '@growi/slack/dist/utils/webclient-factory';
 import { generateWebClient } from '@growi/slack/dist/utils/webclient-factory';
-import { ErrorCode, WebAPICallResult } from '@slack/web-api';
+import type { WebAPICallResult } from '@slack/web-api';
+import { ErrorCode } from '@slack/web-api';
 import {
 import {
   Controller, Get, Post, Inject, Req, Res, UseBefore, PathParams, Put, QueryParams,
   Controller, Get, Post, Inject, Req, Res, UseBefore, PathParams, Put, QueryParams,
 } from '@tsed/common';
 } from '@tsed/common';
@@ -11,15 +12,16 @@ import { addHours } from 'date-fns/addHours';
 import createError from 'http-errors';
 import createError from 'http-errors';
 
 
 
 
-import { GrowiReq } from '~/interfaces/growi-to-slack/growi-req';
-import { WebclientRes, AddWebclientResponseToRes } from '~/middlewares/growi-to-slack/add-webclient-response-to-res';
-import { InstallationRepository } from '~/repositories/installation';
-import { OrderRepository } from '~/repositories/order';
-import { RelationRepository } from '~/repositories/relation';
-import { InstallerService } from '~/services/InstallerService';
-import { ActionsBlockPayloadDelegator } from '~/services/growi-uri-injector/ActionsBlockPayloadDelegator';
-import { SectionBlockPayloadDelegator } from '~/services/growi-uri-injector/SectionBlockPayloadDelegator';
-import { ViewInteractionPayloadDelegator } from '~/services/growi-uri-injector/ViewInteractionPayloadDelegator';
+import type { GrowiReq } from '~/interfaces/growi-to-slack/growi-req';
+import type { WebclientRes } from '~/middlewares/growi-to-slack/add-webclient-response-to-res';
+import { AddWebclientResponseToRes } from '~/middlewares/growi-to-slack/add-webclient-response-to-res';
+import type { InstallationRepository } from '~/repositories/installation';
+import type { OrderRepository } from '~/repositories/order';
+import type { RelationRepository } from '~/repositories/relation';
+import type { InstallerService } from '~/services/InstallerService';
+import type { ActionsBlockPayloadDelegator } from '~/services/growi-uri-injector/ActionsBlockPayloadDelegator';
+import type { SectionBlockPayloadDelegator } from '~/services/growi-uri-injector/SectionBlockPayloadDelegator';
+import type { ViewInteractionPayloadDelegator } from '~/services/growi-uri-injector/ViewInteractionPayloadDelegator';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 
 

+ 3 - 2
apps/slackbot-proxy/src/controllers/privacy.ts

@@ -1,5 +1,6 @@
-import { Controller, PlatformRouter } from '@tsed/common';
-import { Request, Response } from 'express';
+import type { PlatformRouter } from '@tsed/common';
+import { Controller } from '@tsed/common';
+import type { Request, Response } from 'express';
 
 
 const isOfficialMode = process.env.OFFICIAL_MODE === 'true';
 const isOfficialMode = process.env.OFFICIAL_MODE === 'true';
 
 

+ 16 - 15
apps/slackbot-proxy/src/controllers/slack.ts

@@ -1,6 +1,6 @@
 
 
 
 
-import { ServerResponse } from 'http';
+import type { ServerResponse } from 'http';
 
 
 import {
 import {
   type GrowiCommand, type IChannelOptionalId,
   type GrowiCommand, type IChannelOptionalId,
@@ -14,30 +14,31 @@ import { respondRejectedErrors } from '@growi/slack/dist/utils/post-ephemeral-er
 import { respond } from '@growi/slack/dist/utils/response-url';
 import { respond } from '@growi/slack/dist/utils/response-url';
 import { parseSlashCommand } from '@growi/slack/dist/utils/slash-command-parser';
 import { parseSlashCommand } from '@growi/slack/dist/utils/slash-command-parser';
 import { generateWebClient } from '@growi/slack/dist/utils/webclient-factory';
 import { generateWebClient } from '@growi/slack/dist/utils/webclient-factory';
-import { Installation } from '@slack/oauth';
-import { WebAPICallResult } from '@slack/web-api';
+import type { Installation } from '@slack/oauth';
+import type { WebAPICallResult } from '@slack/web-api';
+import type { PlatformResponse } from '@tsed/common';
 import {
 import {
-  Controller, Get, Inject, PlatformResponse, Post, Req, Res, UseBefore,
+  Controller, Get, Inject, Post, Req, Res, UseBefore,
 } from '@tsed/common';
 } from '@tsed/common';
 import axios from 'axios';
 import axios from 'axios';
 
 
-import { Relation } from '~/entities/relation';
-import { SlackOauthReq } from '~/interfaces/slack-to-growi/slack-oauth-req';
+import type { Relation } from '~/entities/relation';
+import type { SlackOauthReq } from '~/interfaces/slack-to-growi/slack-oauth-req';
 import { AddSigningSecretToReq } from '~/middlewares/slack-to-growi/add-signing-secret-to-req';
 import { AddSigningSecretToReq } from '~/middlewares/slack-to-growi/add-signing-secret-to-req';
 import {
 import {
   AuthorizeCommandMiddleware, AuthorizeInteractionMiddleware, AuthorizeEventsMiddleware,
   AuthorizeCommandMiddleware, AuthorizeInteractionMiddleware, AuthorizeEventsMiddleware,
 } from '~/middlewares/slack-to-growi/authorizer';
 } from '~/middlewares/slack-to-growi/authorizer';
 import { ExtractGrowiUriFromReq } from '~/middlewares/slack-to-growi/extract-growi-uri-from-req';
 import { ExtractGrowiUriFromReq } from '~/middlewares/slack-to-growi/extract-growi-uri-from-req';
 import { UrlVerificationMiddleware } from '~/middlewares/slack-to-growi/url-verification';
 import { UrlVerificationMiddleware } from '~/middlewares/slack-to-growi/url-verification';
-import { InstallationRepository } from '~/repositories/installation';
-import { OrderRepository } from '~/repositories/order';
-import { RelationRepository } from '~/repositories/relation';
-import { InstallerService } from '~/services/InstallerService';
-import { LinkSharedService } from '~/services/LinkSharedService';
-import { RegisterService } from '~/services/RegisterService';
-import { RelationsService } from '~/services/RelationsService';
-import { SelectGrowiService } from '~/services/SelectGrowiService';
-import { UnregisterService } from '~/services/UnregisterService';
+import type { InstallationRepository } from '~/repositories/installation';
+import type { OrderRepository } from '~/repositories/order';
+import type { RelationRepository } from '~/repositories/relation';
+import type { InstallerService } from '~/services/InstallerService';
+import type { LinkSharedService } from '~/services/LinkSharedService';
+import type { RegisterService } from '~/services/RegisterService';
+import type { RelationsService } from '~/services/RelationsService';
+import type { SelectGrowiService } from '~/services/SelectGrowiService';
+import type { UnregisterService } from '~/services/UnregisterService';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 import { postInstallSuccessMessage, postWelcomeMessageOnce } from '~/utils/welcome-message';
 import { postInstallSuccessMessage, postWelcomeMessageOnce } from '~/utils/welcome-message';
 
 

+ 3 - 2
apps/slackbot-proxy/src/controllers/term.ts

@@ -1,5 +1,6 @@
-import { Controller, PlatformRouter } from '@tsed/common';
-import { Request, Response } from 'express';
+import type { PlatformRouter } from '@tsed/common';
+import { Controller } from '@tsed/common';
+import type { Request, Response } from 'express';
 
 
 const isOfficialMode = process.env.OFFICIAL_MODE === 'true';
 const isOfficialMode = process.env.OFFICIAL_MODE === 'true';
 
 

+ 1 - 1
apps/slackbot-proxy/src/controllers/top.ts

@@ -4,7 +4,7 @@ import {
 } from '@tsed/common';
 } from '@tsed/common';
 import readPkgUp from 'read-pkg-up';
 import readPkgUp from 'read-pkg-up';
 
 
-import { InstallerService } from '~/services/InstallerService';
+import type { InstallerService } from '~/services/InstallerService';
 
 
 const isOfficialMode = process.env.OFFICIAL_MODE === 'true';
 const isOfficialMode = process.env.OFFICIAL_MODE === 'true';
 
 

+ 1 - 1
apps/slackbot-proxy/src/entities/installation.ts

@@ -1,4 +1,4 @@
-import { Installation as SlackInstallation } from '@slack/oauth';
+import type { Installation as SlackInstallation } from '@slack/oauth';
 import {
 import {
   Required,
   Required,
 } from '@tsed/schema';
 } from '@tsed/schema';

+ 2 - 1
apps/slackbot-proxy/src/filters/CustomHttpErrorFilter.ts

@@ -1,5 +1,6 @@
+import type { ExceptionFilterMethods, PlatformContext, PlatformResponse } from '@tsed/common';
 import {
 import {
-  Catch, ExceptionFilterMethods, PlatformContext, PlatformResponse,
+  Catch,
 } from '@tsed/common';
 } from '@tsed/common';
 
 
 import { CustomHttpError } from '~/models/errors';
 import { CustomHttpError } from '~/models/errors';

+ 2 - 1
apps/slackbot-proxy/src/filters/ResourceNotFoundFilter.ts

@@ -1,5 +1,6 @@
+import type { ExceptionFilterMethods, PlatformContext, PlatformResponse } from '@tsed/common';
 import {
 import {
-  Catch, ExceptionFilterMethods, PlatformContext, PlatformResponse, ResourceNotFound,
+  Catch, ResourceNotFound,
 } from '@tsed/common';
 } from '@tsed/common';
 
 
 @Catch(ResourceNotFound)
 @Catch(ResourceNotFound)

+ 4 - 2
apps/slackbot-proxy/src/middlewares/GlobalHttpErrorHandlingMiddleware.ts

@@ -1,7 +1,9 @@
+import type { PlatformContext, PlatformResponse } from '@tsed/common';
 import {
 import {
-  Err, Middleware, Next, PlatformContext, PlatformResponse,
+  Err, Middleware, Next,
 } from '@tsed/common';
 } from '@tsed/common';
-import { HttpError, isHttpError } from 'http-errors';
+import type { HttpError } from 'http-errors';
+import { isHttpError } from 'http-errors';
 
 
 @Middleware()
 @Middleware()
 export class GlobalHttpErrorHandlingMiddleware {
 export class GlobalHttpErrorHandlingMiddleware {

+ 2 - 1
apps/slackbot-proxy/src/middlewares/growi-to-slack/add-webclient-response-to-res.ts

@@ -1,6 +1,7 @@
 import { ErrorCode } from '@slack/web-api';
 import { ErrorCode } from '@slack/web-api';
+import type { IMiddleware } from '@tsed/common';
 import {
 import {
-  IMiddleware, Middleware, Next, Req, Res,
+  Middleware, Next, Req, Res,
 } from '@tsed/common';
 } from '@tsed/common';
 
 
 
 

+ 6 - 5
apps/slackbot-proxy/src/middlewares/slack-to-growi/authorizer.ts

@@ -1,12 +1,13 @@
-import { AuthorizeResult, InstallationQuery } from '@slack/oauth';
+import type { AuthorizeResult, InstallationQuery } from '@slack/oauth';
+import type { IMiddleware } from '@tsed/common';
 import {
 import {
-  IMiddleware, Inject, Middleware, Next, Req, Res,
+  Inject, Middleware, Next, Req, Res,
 } from '@tsed/common';
 } from '@tsed/common';
-import Logger from 'bunyan';
+import type Logger from 'bunyan';
 import createError from 'http-errors';
 import createError from 'http-errors';
 
 
-import { SlackOauthReq } from '~/interfaces/slack-to-growi/slack-oauth-req';
-import { InstallerService } from '~/services/InstallerService';
+import type { SlackOauthReq } from '~/interfaces/slack-to-growi/slack-oauth-req';
+import type { InstallerService } from '~/services/InstallerService';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 // eslint-disable-next-line @typescript-eslint/no-unused-vars
 // eslint-disable-next-line @typescript-eslint/no-unused-vars

+ 5 - 4
apps/slackbot-proxy/src/middlewares/slack-to-growi/extract-growi-uri-from-req.ts

@@ -1,10 +1,11 @@
+import type { IMiddleware } from '@tsed/common';
 import {
 import {
-  IMiddleware, Inject, Middleware, Next, Req, Res,
+  Inject, Middleware, Next, Req, Res,
 } from '@tsed/common';
 } from '@tsed/common';
 
 
-import { SlackOauthReq } from '~/interfaces/slack-to-growi/slack-oauth-req';
-import { ActionsBlockPayloadDelegator } from '~/services/growi-uri-injector/ActionsBlockPayloadDelegator';
-import { ViewInteractionPayloadDelegator } from '~/services/growi-uri-injector/ViewInteractionPayloadDelegator';
+import type { SlackOauthReq } from '~/interfaces/slack-to-growi/slack-oauth-req';
+import type { ActionsBlockPayloadDelegator } from '~/services/growi-uri-injector/ActionsBlockPayloadDelegator';
+import type { ViewInteractionPayloadDelegator } from '~/services/growi-uri-injector/ViewInteractionPayloadDelegator';
 
 
 
 
 @Middleware()
 @Middleware()

+ 4 - 5
apps/slackbot-proxy/src/middlewares/slack-to-growi/join-to-conversation.ts

@@ -1,10 +1,9 @@
 import { generateWebClient } from '@growi/slack/dist/utils/webclient-factory';
 import { generateWebClient } from '@growi/slack/dist/utils/webclient-factory';
-import {
-  IMiddleware, Middleware, Req,
-} from '@tsed/common';
-import Logger from 'bunyan';
+import type { IMiddleware } from '@tsed/common';
+import { Middleware, Req } from '@tsed/common';
+import type Logger from 'bunyan';
 
 
-import { SlackOauthReq } from '~/interfaces/slack-to-growi/slack-oauth-req';
+import type { SlackOauthReq } from '~/interfaces/slack-to-growi/slack-oauth-req';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 const logger: Logger = loggerFactory('slackbot-proxy:middlewares:JoinToConversationsMiddleware');
 const logger: Logger = loggerFactory('slackbot-proxy:middlewares:JoinToConversationsMiddleware');

+ 3 - 2
apps/slackbot-proxy/src/middlewares/slack-to-growi/url-verification.ts

@@ -1,8 +1,9 @@
+import type { IMiddleware } from '@tsed/common';
 import {
 import {
-  IMiddleware, Middleware, Req, Res, Next,
+  Middleware, Req, Res, Next,
 } from '@tsed/common';
 } from '@tsed/common';
 
 
-import { SlackOauthReq } from '~/interfaces/slack-to-growi/slack-oauth-req';
+import type { SlackOauthReq } from '~/interfaces/slack-to-growi/slack-oauth-req';
 
 
 
 
 @Middleware()
 @Middleware()

+ 1 - 1
apps/slackbot-proxy/src/models/errors.ts

@@ -1,5 +1,5 @@
 import ExtensibleCustomError from 'extensible-custom-error';
 import ExtensibleCustomError from 'extensible-custom-error';
-import { HttpError } from 'http-errors';
+import type { HttpError } from 'http-errors';
 
 
 export class InvalidUrlError extends ExtensibleCustomError {
 export class InvalidUrlError extends ExtensibleCustomError {
 
 

+ 3 - 4
apps/slackbot-proxy/src/services/InstallerService.ts

@@ -1,10 +1,9 @@
-import {
-  Installation as SlackInstallation, InstallationQuery, InstallProvider,
-} from '@slack/oauth';
+import type { Installation as SlackInstallation, InstallationQuery } from '@slack/oauth';
+import { InstallProvider } from '@slack/oauth';
 import { Inject, Service } from '@tsed/di';
 import { Inject, Service } from '@tsed/di';
 
 
 import { Installation } from '~/entities/installation';
 import { Installation } from '~/entities/installation';
-import { InstallationRepository } from '~/repositories/installation';
+import type { InstallationRepository } from '~/repositories/installation';
 
 
 @Service()
 @Service()
 export class InstallerService {
 export class InstallerService {

+ 1 - 1
apps/slackbot-proxy/src/services/LinkSharedService.ts

@@ -3,7 +3,7 @@ import type { WebClient } from '@slack/web-api';
 import { Inject, Service } from '@tsed/di';
 import { Inject, Service } from '@tsed/di';
 import axios from 'axios';
 import axios from 'axios';
 
 
-import { RelationRepository } from '~/repositories/relation';
+import type { RelationRepository } from '~/repositories/relation';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 const logger = loggerFactory('slackbot-proxy:services:LinkSharedService');
 const logger = loggerFactory('slackbot-proxy:services:LinkSharedService');

+ 6 - 5
apps/slackbot-proxy/src/services/RegisterService.ts

@@ -4,18 +4,19 @@ import type {
 import {
 import {
   markdownSectionBlock, markdownHeaderBlock, inputSectionBlock, inputBlock,
   markdownSectionBlock, markdownHeaderBlock, inputSectionBlock, inputBlock,
 } from '@growi/slack/dist/utils/block-kit-builder';
 } from '@growi/slack/dist/utils/block-kit-builder';
-import { InteractionPayloadAccessor } from '@growi/slack/dist/utils/interaction-payload-accessor';
+import type { InteractionPayloadAccessor } from '@growi/slack/dist/utils/interaction-payload-accessor';
 import { getInteractionIdRegexpFromCommandName } from '@growi/slack/dist/utils/payload-interaction-id-helpers';
 import { getInteractionIdRegexpFromCommandName } from '@growi/slack/dist/utils/payload-interaction-id-helpers';
 import { respond } from '@growi/slack/dist/utils/response-url';
 import { respond } from '@growi/slack/dist/utils/response-url';
-import { AuthorizeResult } from '@slack/oauth';
+import type { AuthorizeResult } from '@slack/oauth';
+import type { Block, ConversationsSelect } from '@slack/web-api';
 import {
 import {
-  WebClient, LogLevel, Block, ConversationsSelect,
+  WebClient, LogLevel,
 } from '@slack/web-api';
 } from '@slack/web-api';
 import { Inject, Service } from '@tsed/di';
 import { Inject, Service } from '@tsed/di';
 
 
 
 
-import { InstallationRepository } from '~/repositories/installation';
-import { OrderRepository } from '~/repositories/order';
+import type { InstallationRepository } from '~/repositories/installation';
+import type { OrderRepository } from '~/repositories/order';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 import { InvalidUrlError } from '../models/errors';
 import { InvalidUrlError } from '../models/errors';

+ 2 - 2
apps/slackbot-proxy/src/services/RelationsService.ts

@@ -5,8 +5,8 @@ import { Inject, Service } from '@tsed/di';
 import axios from 'axios';
 import axios from 'axios';
 import { addHours } from 'date-fns/addHours';
 import { addHours } from 'date-fns/addHours';
 
 
-import { Relation, PermissionSettingsInterface } from '~/entities/relation';
-import { RelationRepository } from '~/repositories/relation';
+import type { Relation, PermissionSettingsInterface } from '~/entities/relation';
+import type { RelationRepository } from '~/repositories/relation';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 const logger = loggerFactory('slackbot-proxy:services:RelationsService');
 const logger = loggerFactory('slackbot-proxy:services:RelationsService');

+ 6 - 6
apps/slackbot-proxy/src/services/SelectGrowiService.ts

@@ -4,16 +4,16 @@ import type {
   InteractionHandledResult,
   InteractionHandledResult,
 } from '@growi/slack';
 } from '@growi/slack';
 import { markdownSectionBlock } from '@growi/slack/dist/utils/block-kit-builder';
 import { markdownSectionBlock } from '@growi/slack/dist/utils/block-kit-builder';
-import { InteractionPayloadAccessor } from '@growi/slack/dist/utils/interaction-payload-accessor';
+import type { InteractionPayloadAccessor } from '@growi/slack/dist/utils/interaction-payload-accessor';
 import { getInteractionIdRegexpFromCommandName } from '@growi/slack/dist/utils/payload-interaction-id-helpers';
 import { getInteractionIdRegexpFromCommandName } from '@growi/slack/dist/utils/payload-interaction-id-helpers';
 import { replaceOriginal, respond } from '@growi/slack/dist/utils/response-url';
 import { replaceOriginal, respond } from '@growi/slack/dist/utils/response-url';
-import { AuthorizeResult } from '@slack/oauth';
+import type { AuthorizeResult } from '@slack/oauth';
 import { Inject, Service } from '@tsed/di';
 import { Inject, Service } from '@tsed/di';
 
 
-import { Installation } from '~/entities/installation';
-import { Relation } from '~/entities/relation';
-import { InstallationRepository } from '~/repositories/installation';
-import { RelationRepository } from '~/repositories/relation';
+import type { Installation } from '~/entities/installation';
+import type { Relation } from '~/entities/relation';
+import type { InstallationRepository } from '~/repositories/installation';
+import type { RelationRepository } from '~/repositories/relation';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 const logger = loggerFactory('slackbot-proxy:services:UnregisterService');
 const logger = loggerFactory('slackbot-proxy:services:UnregisterService');

+ 3 - 3
apps/slackbot-proxy/src/services/SystemInformationService.ts

@@ -1,11 +1,11 @@
 import { Inject, Service } from '@tsed/di';
 import { Inject, Service } from '@tsed/di';
 import readPkgUp from 'read-pkg-up';
 import readPkgUp from 'read-pkg-up';
 
 
-import { SystemInformation } from '~/entities/system-information';
-import { SystemInformationRepository } from '~/repositories/system-information';
+import type { SystemInformation } from '~/entities/system-information';
+import type { SystemInformationRepository } from '~/repositories/system-information';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
-import { RelationsService } from './RelationsService';
+import type { RelationsService } from './RelationsService';
 
 
 const logger = loggerFactory('slackbot-proxy:services:SystemInformationService');
 const logger = loggerFactory('slackbot-proxy:services:SystemInformationService');
 
 

+ 7 - 7
apps/slackbot-proxy/src/services/UnregisterService.ts

@@ -4,18 +4,18 @@ import type {
 import {
 import {
   inputBlock, markdownSectionBlock, actionsBlock, buttonElement,
   inputBlock, markdownSectionBlock, actionsBlock, buttonElement,
 } from '@growi/slack/dist/utils/block-kit-builder';
 } from '@growi/slack/dist/utils/block-kit-builder';
-import { InteractionPayloadAccessor } from '@growi/slack/dist/utils/interaction-payload-accessor';
+import type { InteractionPayloadAccessor } from '@growi/slack/dist/utils/interaction-payload-accessor';
 import { getInteractionIdRegexpFromCommandName } from '@growi/slack/dist/utils/payload-interaction-id-helpers';
 import { getInteractionIdRegexpFromCommandName } from '@growi/slack/dist/utils/payload-interaction-id-helpers';
 import { respond, replaceOriginal } from '@growi/slack/dist/utils/response-url';
 import { respond, replaceOriginal } from '@growi/slack/dist/utils/response-url';
-import { AuthorizeResult } from '@slack/oauth';
-import { MultiStaticSelect } from '@slack/web-api';
+import type { AuthorizeResult } from '@slack/oauth';
+import type { MultiStaticSelect } from '@slack/web-api';
 import { Inject, Service } from '@tsed/di';
 import { Inject, Service } from '@tsed/di';
 import axios from 'axios';
 import axios from 'axios';
-import { DeleteResult } from 'typeorm';
+import type { DeleteResult } from 'typeorm';
 
 
-import { Installation } from '~/entities/installation';
-import { InstallationRepository } from '~/repositories/installation';
-import { RelationRepository } from '~/repositories/relation';
+import type { Installation } from '~/entities/installation';
+import type { InstallationRepository } from '~/repositories/installation';
+import type { RelationRepository } from '~/repositories/relation';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 const logger = loggerFactory('slackbot-proxy:services:UnregisterService');
 const logger = loggerFactory('slackbot-proxy:services:UnregisterService');

+ 5 - 4
apps/slackbot-proxy/src/services/growi-uri-injector/ActionsBlockPayloadDelegator.ts

@@ -1,11 +1,12 @@
-import { Inject, OnInit, Service } from '@tsed/di';
+import type { OnInit } from '@tsed/di';
+import { Inject, Service } from '@tsed/di';
 
 
-import {
+import type {
   GrowiUriInjector, GrowiUriWithOriginalData, TypedBlock,
   GrowiUriInjector, GrowiUriWithOriginalData, TypedBlock,
 } from '~/interfaces/growi-uri-injector';
 } from '~/interfaces/growi-uri-injector';
 
 
-import { ButtonActionPayloadDelegator } from './block-elements/ButtonActionPayloadDelegator';
-import { CheckboxesActionPayloadDelegator } from './block-elements/CheckboxesActionPayloadDelegator';
+import type { ButtonActionPayloadDelegator } from './block-elements/ButtonActionPayloadDelegator';
+import type { CheckboxesActionPayloadDelegator } from './block-elements/CheckboxesActionPayloadDelegator';
 
 
 
 
 // see: https://api.slack.com/reference/block-kit/blocks
 // see: https://api.slack.com/reference/block-kit/blocks

+ 5 - 4
apps/slackbot-proxy/src/services/growi-uri-injector/SectionBlockPayloadDelegator.ts

@@ -1,11 +1,12 @@
-import { Inject, OnInit, Service } from '@tsed/di';
+import type { OnInit } from '@tsed/di';
+import { Inject, Service } from '@tsed/di';
 
 
-import {
+import type {
   GrowiUriInjector, GrowiUriWithOriginalData, TypedBlock,
   GrowiUriInjector, GrowiUriWithOriginalData, TypedBlock,
 } from '~/interfaces/growi-uri-injector';
 } from '~/interfaces/growi-uri-injector';
 
 
-import { ButtonActionPayloadDelegator } from './block-elements/ButtonActionPayloadDelegator';
-import { CheckboxesActionPayloadDelegator } from './block-elements/CheckboxesActionPayloadDelegator';
+import type { ButtonActionPayloadDelegator } from './block-elements/ButtonActionPayloadDelegator';
+import type { CheckboxesActionPayloadDelegator } from './block-elements/CheckboxesActionPayloadDelegator';
 
 
 
 
 // see: https://api.slack.com/reference/block-kit/blocks#section
 // see: https://api.slack.com/reference/block-kit/blocks#section

+ 2 - 3
apps/slackbot-proxy/src/services/growi-uri-injector/ViewInteractionPayloadDelegator.ts

@@ -1,8 +1,7 @@
 import { Service } from '@tsed/di';
 import { Service } from '@tsed/di';
 
 
-import {
-  GrowiUriInjector, GrowiUriWithOriginalData, isGrowiUriWithOriginalData, TypedBlock,
-} from '~/interfaces/growi-uri-injector';
+import type { GrowiUriInjector, GrowiUriWithOriginalData, TypedBlock } from '~/interfaces/growi-uri-injector';
+import { isGrowiUriWithOriginalData } from '~/interfaces/growi-uri-injector';
 
 
 // see: https://api.slack.com/reference/interaction-payloads/views
 // see: https://api.slack.com/reference/interaction-payloads/views
 type ViewElement = TypedBlock & {
 type ViewElement = TypedBlock & {

+ 1 - 1
apps/slackbot-proxy/src/services/growi-uri-injector/block-elements/ButtonActionPayloadDelegator.ts

@@ -1,6 +1,6 @@
 import { Service } from '@tsed/di';
 import { Service } from '@tsed/di';
 
 
-import { GrowiUriWithOriginalData, GrowiUriInjector, TypedBlock } from '~/interfaces/growi-uri-injector';
+import type { GrowiUriWithOriginalData, GrowiUriInjector, TypedBlock } from '~/interfaces/growi-uri-injector';
 
 
 
 
 type ButtonElement = TypedBlock & {
 type ButtonElement = TypedBlock & {

+ 1 - 1
apps/slackbot-proxy/src/services/growi-uri-injector/block-elements/CheckboxesActionPayloadDelegator.ts

@@ -1,6 +1,6 @@
 import { Service } from '@tsed/di';
 import { Service } from '@tsed/di';
 
 
-import { GrowiUriWithOriginalData, GrowiUriInjector, TypedBlock } from '~/interfaces/growi-uri-injector';
+import type { GrowiUriWithOriginalData, GrowiUriInjector, TypedBlock } from '~/interfaces/growi-uri-injector';
 
 
 
 
 type CheckboxesElement = TypedBlock & {
 type CheckboxesElement = TypedBlock & {

+ 1 - 1
apps/slackbot-proxy/src/utils/logger/index.ts

@@ -1,4 +1,4 @@
-import Logger from 'bunyan';
+import type Logger from 'bunyan';
 import { createLogger } from 'universal-bunyan';
 import { createLogger } from 'universal-bunyan';
 
 
 import configForDev from '~/config/logger/config.dev';
 import configForDev from '~/config/logger/config.dev';

+ 1 - 1
apps/slackbot-proxy/src/utils/welcome-message.ts

@@ -1,5 +1,5 @@
 import { markdownSectionBlock } from '@growi/slack/dist/utils/block-kit-builder';
 import { markdownSectionBlock } from '@growi/slack/dist/utils/block-kit-builder';
-import { ChatPostMessageResponse, WebClient } from '@slack/web-api';
+import type { ChatPostMessageResponse, WebClient } from '@slack/web-api';
 
 
 export const postWelcomeMessageOnce = async(client: WebClient, channel: string): Promise<void|ChatPostMessageResponse> => {
 export const postWelcomeMessageOnce = async(client: WebClient, channel: string): Promise<void|ChatPostMessageResponse> => {
   const history = await client.conversations.history({
   const history = await client.conversations.history({