ソースを参照

remove eslint-disable lines for max-len

Yuki Takei 2 ヶ月 前
コミット
8b7ee1798b
53 ファイル変更417 行追加507 行削除
  1. 0 2
      apps/app/src/client/components/Admin/App/MaintenanceMode.tsx
  2. 0 1
      apps/app/src/client/components/Admin/ElasticsearchManagement/StatusTable.jsx
  3. 202 206
      apps/app/src/client/components/Admin/Security/GitHubSecuritySettingContents.tsx
  4. 213 217
      apps/app/src/client/components/Admin/Security/GoogleSecuritySettingContents.tsx
  5. 0 1
      apps/app/src/client/components/Admin/Security/LocalSecuritySettingContents.tsx
  6. 0 2
      apps/app/src/client/components/Admin/Security/OidcSecuritySettingContents.tsx
  7. 0 3
      apps/app/src/client/components/Admin/Security/SamlSecuritySettingContents.tsx
  8. 0 1
      apps/app/src/client/components/Admin/SlackIntegration/CustomBotWithoutProxySecretTokenSection.jsx
  9. 0 3
      apps/app/src/client/components/Admin/SlackIntegration/CustomBotWithoutProxySettingsAccordion.jsx
  10. 0 1
      apps/app/src/client/components/Admin/SlackIntegration/ManageCommandsProcessWithoutProxy.jsx
  11. 0 1
      apps/app/src/client/components/Admin/Users/GrantAdminButton.tsx
  12. 0 1
      apps/app/src/client/components/Admin/Users/GrantReadOnlyButton.tsx
  13. 0 1
      apps/app/src/client/components/Admin/Users/RevokeAdminMenuItem.tsx
  14. 0 1
      apps/app/src/client/components/Admin/Users/RevokeReadOnlyMenuItem.tsx
  15. 0 1
      apps/app/src/client/components/Admin/Users/StatusSuspendMenuItem.tsx
  16. 0 1
      apps/app/src/client/components/Admin/Users/UserMenu.tsx
  17. 0 1
      apps/app/src/client/components/PageComment/CommentEditor.tsx
  18. 1 3
      apps/app/src/client/components/PageEditor/Cheatsheet.tsx
  19. 0 1
      apps/app/src/client/components/PageEditor/ScrollSyncHelper.tsx
  20. 0 2
      apps/app/src/client/services/side-effects/drawio-modal-launcher-for-view.ts
  21. 0 2
      apps/app/src/client/services/side-effects/handsontable-modal-launcher-for-view.ts
  22. 0 1
      apps/app/src/client/services/side-effects/page-updated.ts
  23. 0 2
      apps/app/src/components/Admin/Common/AdminNavigation.tsx
  24. 0 4
      apps/app/src/components/Common/GrowiLogo.jsx
  25. 0 1
      apps/app/src/features/growi-plugin/server/services/growi-plugin/growi-plugin.ts
  26. 0 1
      apps/app/src/features/openai/client/components/AiAssistant/AiAssistantManagementModal/AiAssistantManagementModal.tsx
  27. 0 2
      apps/app/src/features/openai/client/components/AiAssistant/AiAssistantSidebar/AiAssistantSidebar.tsx
  28. 0 1
      apps/app/src/features/openai/interfaces/editor-assistant/llm-response-schemas.spec.ts
  29. 0 2
      apps/app/src/features/openai/server/routes/edit/index.ts
  30. 0 4
      apps/app/src/features/openai/server/services/assistant/editor-assistant.ts
  31. 0 2
      apps/app/src/features/opentelemetry/server/anonymization/utils/anonymize-query-params.spec.ts
  32. 0 1
      apps/app/src/features/opentelemetry/server/semconv.ts
  33. 0 1
      apps/app/src/features/search/client/components/PrivateLegacyPages.tsx
  34. 0 1
      apps/app/src/server/crowi/express-init.js
  35. 0 1
      apps/app/src/server/models/in-app-notification-settings.ts
  36. 0 1
      apps/app/src/server/routes/apiv3/app-settings/file-upload-setting.ts
  37. 0 1
      apps/app/src/server/routes/apiv3/forgot-password.js
  38. 0 1
      apps/app/src/server/routes/apiv3/installer.ts
  39. 0 4
      apps/app/src/server/routes/apiv3/notification-setting.js
  40. 0 3
      apps/app/src/server/routes/apiv3/security-settings/index.js
  41. 0 1
      apps/app/src/server/routes/apiv3/slack-integration-settings.js
  42. 0 3
      apps/app/src/server/routes/apiv3/slack-integration.js
  43. 0 1
      apps/app/src/server/routes/apiv3/users.js
  44. 0 2
      apps/app/src/server/routes/index.js
  45. 0 1
      apps/app/src/server/service/file-uploader/utils/headers.ts
  46. 0 3
      apps/app/src/server/service/g2g-transfer.ts
  47. 0 2
      apps/app/src/server/service/page/index.ts
  48. 1 2
      apps/app/src/server/service/search.ts
  49. 0 1
      apps/app/test/integration/service/v5.migration.test.js
  50. 0 1
      apps/slackbot-proxy/src/controllers/slack.ts
  51. 0 1
      apps/slackbot-proxy/src/middlewares/slack-to-growi/url-verification.ts
  52. 0 2
      apps/slackbot-proxy/src/utils/welcome-message.ts
  53. 0 1
      bin/data-migrations/src/migrations/v70x/bootstrap5.js

+ 0 - 2
apps/app/src/client/components/Admin/App/MaintenanceMode.tsx

@@ -42,7 +42,6 @@ export const MaintenanceMode: FC = () => {
       );
     }
 
-    // eslint-disable-next-line max-len
     toastSuccess(
       isMaintenanceMode
         ? t('admin:maintenance_mode.successfully_ended_maintenance_mode')
@@ -65,7 +64,6 @@ export const MaintenanceMode: FC = () => {
             ? t('admin:maintenance_mode.warning_message_to_end')
             : t('admin:maintenance_mode.warning_message_to_start')
         }
-        // eslint-disable-next-line max-len
         supplymentaryMessage={
           isMaintenanceMode
             ? null

+ 0 - 1
apps/app/src/client/components/Admin/ElasticsearchManagement/StatusTable.jsx

@@ -29,7 +29,6 @@ class StatusTable extends React.PureComponent {
       );
     } else {
       connectionStatusLabel = isConnected ? (
-        // eslint-disable-next-line max-len
         <span
           data-testid="connection-status-badge-connected"
           className="badge text-bg-success"

+ 202 - 206
apps/app/src/client/components/Admin/Security/GitHubSecuritySettingContents.tsx

@@ -1,5 +1,4 @@
-/* eslint-disable react/no-danger */
-import React, { useCallback, useEffect } from 'react';
+import { useCallback, useEffect } from 'react';
 import { pathUtils } from '@growi/core/dist/utils';
 import { useTranslation } from 'next-i18next';
 import { useForm } from 'react-hook-form';
@@ -62,243 +61,240 @@ const GitHubSecurityManagementContents = (props: Props) => {
 
   return (
     <form onSubmit={handleSubmit(onClickSubmit)}>
-      <React.Fragment>
-        <h2 className="alert-anchor border-bottom">
-          {t('security_settings.OAuth.GitHub.name')}
-        </h2>
+      <h2 className="alert-anchor border-bottom">
+        {t('security_settings.OAuth.GitHub.name')}
+      </h2>
 
-        {retrieveError != null && (
-          <div className="alert alert-danger">
-            <p>
-              {t('Error occurred')} : {retrieveError}
-            </p>
+      {retrieveError != null && (
+        <div className="alert alert-danger">
+          <p>
+            {t('Error occurred')} : {retrieveError}
+          </p>
+        </div>
+      )}
+
+      <div className="row my-4">
+        <div className="col-6 offset-3">
+          <div className="form-check form-switch form-check-success">
+            <input
+              id="isGitHubEnabled"
+              className="form-check-input"
+              type="checkbox"
+              checked={
+                adminGeneralSecurityContainer.state.isGitHubEnabled || false
+              }
+              onChange={() => {
+                adminGeneralSecurityContainer.switchIsGitHubOAuthEnabled();
+              }}
+            />
+            <label
+              className="form-label form-check-label"
+              htmlFor="isGitHubEnabled"
+            >
+              {t('security_settings.OAuth.GitHub.enable_github')}
+            </label>
           </div>
-        )}
+          {!adminGeneralSecurityContainer.state.setupStrategies.includes(
+            'github',
+          ) &&
+            isGitHubEnabled && (
+              <div className="badge text-bg-warning">
+                {t('security_settings.setup_is_not_yet_complete')}
+              </div>
+            )}
+        </div>
+      </div>
 
-        <div className="row my-4">
-          <div className="col-6 offset-3">
-            <div className="form-check form-switch form-check-success">
-              <input
-                id="isGitHubEnabled"
-                className="form-check-input"
-                type="checkbox"
-                checked={
-                  adminGeneralSecurityContainer.state.isGitHubEnabled || false
-                }
-                onChange={() => {
-                  adminGeneralSecurityContainer.switchIsGitHubOAuthEnabled();
+      <div className="row mb-4">
+        <label
+          className="form-label col-12 col-md-3 text-start text-md-end py-2"
+          htmlFor="gitHubCallbackUrl"
+        >
+          {t('security_settings.callback_URL')}
+        </label>
+        <div className="col-12 col-md-6">
+          <input
+            id="gitHubCallbackUrl"
+            className="form-control"
+            type="text"
+            value={gitHubCallbackUrl}
+            readOnly
+          />
+          <p className="form-text text-muted small">
+            {t('security_settings.desc_of_callback_URL', {
+              AuthName: 'OAuth',
+            })}
+          </p>
+          {(siteUrl == null || siteUrl === '') && (
+            <div className="alert alert-danger">
+              <span className="material-symbols-outlined">error</span>
+              <span
+                // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
+                dangerouslySetInnerHTML={{
+                  __html: t('alert.siteUrl_is_not_set', {
+                    link: `<a href="/admin/app">${t('headers.app_settings', { ns: 'commons' })}<span class="material-symbols-outlined">login</span></a>`,
+                    ns: 'commons',
+                  }),
                 }}
               />
-              <label
-                className="form-label form-check-label"
-                htmlFor="isGitHubEnabled"
-              >
-                {t('security_settings.OAuth.GitHub.enable_github')}
-              </label>
             </div>
-            {!adminGeneralSecurityContainer.state.setupStrategies.includes(
-              'github',
-            ) &&
-              isGitHubEnabled && (
-                <div className="badge text-bg-warning">
-                  {t('security_settings.setup_is_not_yet_complete')}
-                </div>
-              )}
-          </div>
+          )}
         </div>
+      </div>
 
-        <div className="row mb-4">
-          <label
-            className="form-label col-12 col-md-3 text-start text-md-end py-2"
-            htmlFor="gitHubCallbackUrl"
-          >
-            {t('security_settings.callback_URL')}
-          </label>
-          <div className="col-12 col-md-6">
-            <input
-              id="gitHubCallbackUrl"
-              className="form-control"
-              type="text"
-              value={gitHubCallbackUrl}
-              readOnly
-            />
-            <p className="form-text text-muted small">
-              {t('security_settings.desc_of_callback_URL', {
-                AuthName: 'OAuth',
-              })}
-            </p>
-            {(siteUrl == null || siteUrl === '') && (
-              <div className="alert alert-danger">
-                <span className="material-symbols-outlined">error</span>
-                <span // eslint-disable-next-line max-len
+      {isGitHubEnabled && (
+        <>
+          <h3 className="border-bottom mb-4">
+            {t('security_settings.configuration')}
+          </h3>
+
+          <div className="row mb-4">
+            <label
+              htmlFor="githubClientId"
+              className="col-3 text-end py-2 form-label"
+            >
+              {t('security_settings.clientID')}
+            </label>
+            <div className="col-6">
+              <input
+                className="form-control"
+                type="text"
+                {...register('githubClientId')}
+              />
+              <p className="form-text text-muted">
+                <small
                   // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
                   dangerouslySetInnerHTML={{
-                    __html: t('alert.siteUrl_is_not_set', {
-                      link: `<a href="/admin/app">${t('headers.app_settings', { ns: 'commons' })}<span class="material-symbols-outlined">login</span></a>`,
-                      ns: 'commons',
+                    __html: t('security_settings.Use env var if empty', {
+                      env: 'OAUTH_GITHUB_CLIENT_ID',
                     }),
                   }}
                 />
-              </div>
-            )}
+              </p>
+            </div>
           </div>
-        </div>
 
-        {isGitHubEnabled && (
-          <React.Fragment>
-            <h3 className="border-bottom mb-4">
-              {t('security_settings.configuration')}
-            </h3>
-
-            <div className="row mb-4">
-              <label
-                htmlFor="githubClientId"
-                className="col-3 text-end py-2 form-label"
-              >
-                {t('security_settings.clientID')}
-              </label>
-              <div className="col-6">
-                <input
-                  className="form-control"
-                  type="text"
-                  {...register('githubClientId')}
+          <div className="row mb-3">
+            <label
+              htmlFor="githubClientSecret"
+              className="col-3 text-end py-2 form-label"
+            >
+              {t('security_settings.client_secret')}
+            </label>
+            <div className="col-6">
+              <input
+                className="form-control"
+                type="text"
+                {...register('githubClientSecret')}
+              />
+              <p className="form-text text-muted">
+                <small
+                  // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
+                  dangerouslySetInnerHTML={{
+                    __html: t('security_settings.Use env var if empty', {
+                      env: 'OAUTH_GITHUB_CLIENT_SECRET',
+                    }),
+                  }}
                 />
-                <p className="form-text text-muted">
-                  <small
-                    // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
-                    dangerouslySetInnerHTML={{
-                      __html: t('security_settings.Use env var if empty', {
-                        env: 'OAUTH_GITHUB_CLIENT_ID',
-                      }),
-                    }}
-                  />
-                </p>
-              </div>
+              </p>
             </div>
+          </div>
 
-            <div className="row mb-3">
-              <label
-                htmlFor="githubClientSecret"
-                className="col-3 text-end py-2 form-label"
-              >
-                {t('security_settings.client_secret')}
-              </label>
-              <div className="col-6">
+          <div className="row mb-3">
+            <div className="offset-3 col-6 text-start">
+              <div className="form-check form-check-success">
                 <input
-                  className="form-control"
-                  type="text"
-                  {...register('githubClientSecret')}
+                  id="bindByUserNameGitHub"
+                  className="form-check-input"
+                  type="checkbox"
+                  checked={
+                    adminGitHubSecurityContainer.state
+                      .isSameUsernameTreatedAsIdenticalUser || false
+                  }
+                  onChange={() => {
+                    adminGitHubSecurityContainer.switchIsSameUsernameTreatedAsIdenticalUser();
+                  }}
                 />
-                <p className="form-text text-muted">
-                  <small
-                    // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
-                    dangerouslySetInnerHTML={{
-                      __html: t('security_settings.Use env var if empty', {
-                        env: 'OAUTH_GITHUB_CLIENT_SECRET',
-                      }),
-                    }}
-                  />
-                </p>
-              </div>
-            </div>
-
-            <div className="row mb-3">
-              <div className="offset-3 col-6 text-start">
-                <div className="form-check form-check-success">
-                  <input
-                    id="bindByUserNameGitHub"
-                    className="form-check-input"
-                    type="checkbox"
-                    checked={
-                      adminGitHubSecurityContainer.state
-                        .isSameUsernameTreatedAsIdenticalUser || false
-                    }
-                    onChange={() => {
-                      adminGitHubSecurityContainer.switchIsSameUsernameTreatedAsIdenticalUser();
-                    }}
-                  />
-                  <label
-                    className="form-check-label"
-                    htmlFor="bindByUserNameGitHub"
-                  >
-                    <span
-                      // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
-                      dangerouslySetInnerHTML={{
-                        __html: t(
-                          'security_settings.Treat email matching as identical',
-                        ),
-                      }}
-                    />
-                  </label>
-                </div>
-                <p className="form-text text-muted">
-                  <small
+                <label
+                  className="form-check-label"
+                  htmlFor="bindByUserNameGitHub"
+                >
+                  <span
                     // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
                     dangerouslySetInnerHTML={{
                       __html: t(
-                        'security_settings.Treat email matching as identical_warn',
+                        'security_settings.Treat email matching as identical',
                       ),
                     }}
                   />
-                </p>
+                </label>
               </div>
+              <p className="form-text text-muted">
+                <small
+                  // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
+                  dangerouslySetInnerHTML={{
+                    __html: t(
+                      'security_settings.Treat email matching as identical_warn',
+                    ),
+                  }}
+                />
+              </p>
             </div>
+          </div>
 
-            <div className="row mb-4">
-              <div className="offset-3 col-5">
-                <button
-                  type="submit"
-                  className="btn btn-primary"
-                  disabled={retrieveError != null}
-                >
-                  {t('Update')}
-                </button>
-              </div>
+          <div className="row mb-4">
+            <div className="offset-3 col-5">
+              <button
+                type="submit"
+                className="btn btn-primary"
+                disabled={retrieveError != null}
+              >
+                {t('Update')}
+              </button>
             </div>
-          </React.Fragment>
-        )}
+          </div>
+        </>
+      )}
 
-        <hr />
+      <hr />
 
-        <div style={{ minHeight: '300px' }}>
-          <h4>
-            <span className="material-symbols-outlined" aria-hidden="true">
-              help
-            </span>
-            <a href="#collapseHelpForGitHubOauth" data-bs-toggle="collapse">
-              {' '}
-              {t('security_settings.OAuth.how_to.github')}
-            </a>
-          </h4>
-          <div className="card custom-card bg-body-tertiary">
-            <ol id="collapseHelpForGitHubOauth" className="collapse mb-0">
-              {/* eslint-disable-next-line max-len */}
-              <li
-                // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
-                dangerouslySetInnerHTML={{
-                  __html: t('security_settings.OAuth.GitHub.register_1', {
-                    link: '<a href="https://github.com/settings/developers" target=_blank>GitHub Developer Settings</a>',
-                  }),
-                }}
-              />
-              <li
-                // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
-                dangerouslySetInnerHTML={{
-                  __html: t('security_settings.OAuth.GitHub.register_2', {
-                    url: gitHubCallbackUrl,
-                  }),
-                }}
-              />
-              <li
-                // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
-                dangerouslySetInnerHTML={{
-                  __html: t('security_settings.OAuth.GitHub.register_3'),
-                }}
-              />
-            </ol>
-          </div>
+      <div style={{ minHeight: '300px' }}>
+        <h4>
+          <span className="material-symbols-outlined" aria-hidden="true">
+            help
+          </span>
+          <a href="#collapseHelpForGitHubOauth" data-bs-toggle="collapse">
+            {' '}
+            {t('security_settings.OAuth.how_to.github')}
+          </a>
+        </h4>
+        <div className="card custom-card bg-body-tertiary">
+          <ol id="collapseHelpForGitHubOauth" className="collapse mb-0">
+            <li
+              // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
+              dangerouslySetInnerHTML={{
+                __html: t('security_settings.OAuth.GitHub.register_1', {
+                  link: '<a href="https://github.com/settings/developers" target=_blank>GitHub Developer Settings</a>',
+                }),
+              }}
+            />
+            <li
+              // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
+              dangerouslySetInnerHTML={{
+                __html: t('security_settings.OAuth.GitHub.register_2', {
+                  url: gitHubCallbackUrl,
+                }),
+              }}
+            />
+            <li
+              // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
+              dangerouslySetInnerHTML={{
+                __html: t('security_settings.OAuth.GitHub.register_3'),
+              }}
+            />
+          </ol>
         </div>
-      </React.Fragment>
+      </div>
     </form>
   );
 };

+ 213 - 217
apps/app/src/client/components/Admin/Security/GoogleSecuritySettingContents.tsx

@@ -62,256 +62,252 @@ const GoogleSecurityManagementContents = (props: Props) => {
 
   return (
     <form onSubmit={handleSubmit(onClickSubmit)}>
-      <React.Fragment>
-        <h2 className="alert-anchor border-bottom">
-          {t('security_settings.OAuth.Google.name')}
-        </h2>
+      <h2 className="alert-anchor border-bottom">
+        {t('security_settings.OAuth.Google.name')}
+      </h2>
 
-        {retrieveError != null && (
-          <div className="alert alert-danger">
-            <p>
-              {t('Error occurred')} : {retrieveError}
-            </p>
+      {retrieveError != null && (
+        <div className="alert alert-danger">
+          <p>
+            {t('Error occurred')} : {retrieveError}
+          </p>
+        </div>
+      )}
+
+      <div className="row my-4">
+        <div className="col-6 offset-3">
+          <div className="form-check form-switch form-check-success">
+            <input
+              id="isGoogleEnabled"
+              className="form-check-input"
+              type="checkbox"
+              checked={
+                adminGeneralSecurityContainer.state.isGoogleEnabled || false
+              }
+              onChange={() => {
+                adminGeneralSecurityContainer.switchIsGoogleOAuthEnabled();
+              }}
+            />
+            <label
+              className="form-label form-check-label"
+              htmlFor="isGoogleEnabled"
+            >
+              {t('security_settings.OAuth.Google.enable_google')}
+            </label>
           </div>
-        )}
+          {!adminGeneralSecurityContainer.state.setupStrategies.includes(
+            'google',
+          ) &&
+            isGoogleEnabled && (
+              <div className="badge text-bg-warning">
+                {t('security_settings.setup_is_not_yet_complete')}
+              </div>
+            )}
+        </div>
+      </div>
 
-        <div className="row my-4">
-          <div className="col-6 offset-3">
-            <div className="form-check form-switch form-check-success">
-              <input
-                id="isGoogleEnabled"
-                className="form-check-input"
-                type="checkbox"
-                checked={
-                  adminGeneralSecurityContainer.state.isGoogleEnabled || false
-                }
-                onChange={() => {
-                  adminGeneralSecurityContainer.switchIsGoogleOAuthEnabled();
+      <div className="row mb-5">
+        <label
+          className="form-label col-12 col-md-3 text-start text-md-end py-2"
+          htmlFor="googleCallbackUrl"
+        >
+          {t('security_settings.callback_URL')}
+        </label>
+        <div className="col-12 col-md-6">
+          <input
+            id="googleCallbackUrl"
+            className="form-control"
+            type="text"
+            value={googleCallbackUrl}
+            readOnly
+          />
+          <p className="form-text text-muted small">
+            {t('security_settings.desc_of_callback_URL', {
+              AuthName: 'OAuth',
+            })}
+          </p>
+          {(siteUrl == null || siteUrl === '') && (
+            <div className="alert alert-danger">
+              <span className="material-symbols-outlined">error</span>
+              <span
+                // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
+                dangerouslySetInnerHTML={{
+                  __html: t('alert.siteUrl_is_not_set', {
+                    link: `<a href="/admin/app">${t('headers.app_settings', { ns: 'commons' })}<span class="material-symbols-outlined">login</span></a>`,
+                    ns: 'commons',
+                  }),
                 }}
               />
-              <label
-                className="form-label form-check-label"
-                htmlFor="isGoogleEnabled"
-              >
-                {t('security_settings.OAuth.Google.enable_google')}
-              </label>
             </div>
-            {!adminGeneralSecurityContainer.state.setupStrategies.includes(
-              'google',
-            ) &&
-              isGoogleEnabled && (
-                <div className="badge text-bg-warning">
-                  {t('security_settings.setup_is_not_yet_complete')}
-                </div>
-              )}
-          </div>
+          )}
         </div>
+      </div>
 
-        <div className="row mb-5">
-          <label
-            className="form-label col-12 col-md-3 text-start text-md-end py-2"
-            htmlFor="googleCallbackUrl"
-          >
-            {t('security_settings.callback_URL')}
-          </label>
-          <div className="col-12 col-md-6">
-            <input
-              id="googleCallbackUrl"
-              className="form-control"
-              type="text"
-              value={googleCallbackUrl}
-              readOnly
-            />
-            <p className="form-text text-muted small">
-              {t('security_settings.desc_of_callback_URL', {
-                AuthName: 'OAuth',
-              })}
-            </p>
-            {(siteUrl == null || siteUrl === '') && (
-              <div className="alert alert-danger">
-                <span className="material-symbols-outlined">error</span>
-                <span
-                  // eslint-disable-next-line max-len
+      {isGoogleEnabled && (
+        <React.Fragment>
+          <h3 className="border-bottom mb-4">
+            {t('security_settings.configuration')}
+          </h3>
+
+          <div className="row mb-4">
+            <label
+              htmlFor="googleClientId"
+              className="col-3 text-end py-2 form-label"
+            >
+              {t('security_settings.clientID')}
+            </label>
+            <div className="col-6">
+              <input
+                className="form-control"
+                type="text"
+                {...register('googleClientId')}
+              />
+              <p className="form-text text-muted">
+                <small
                   // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
                   dangerouslySetInnerHTML={{
-                    __html: t('alert.siteUrl_is_not_set', {
-                      link: `<a href="/admin/app">${t('headers.app_settings', { ns: 'commons' })}<span class="material-symbols-outlined">login</span></a>`,
-                      ns: 'commons',
+                    __html: t('security_settings.Use env var if empty', {
+                      env: 'OAUTH_GOOGLE_CLIENT_ID',
                     }),
                   }}
                 />
-              </div>
-            )}
+              </p>
+            </div>
           </div>
-        </div>
 
-        {isGoogleEnabled && (
-          <React.Fragment>
-            <h3 className="border-bottom mb-4">
-              {t('security_settings.configuration')}
-            </h3>
-
-            <div className="row mb-4">
-              <label
-                htmlFor="googleClientId"
-                className="col-3 text-end py-2 form-label"
-              >
-                {t('security_settings.clientID')}
-              </label>
-              <div className="col-6">
-                <input
-                  className="form-control"
-                  type="text"
-                  {...register('googleClientId')}
+          <div className="row mb-4">
+            <label
+              htmlFor="googleClientSecret"
+              className="col-3 text-end py-2 form-label"
+            >
+              {t('security_settings.client_secret')}
+            </label>
+            <div className="col-6">
+              <input
+                className="form-control"
+                type="password"
+                {...register('googleClientSecret')}
+              />
+              <p className="form-text text-muted">
+                <small
+                  // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
+                  dangerouslySetInnerHTML={{
+                    __html: t('security_settings.Use env var if empty', {
+                      env: 'OAUTH_GOOGLE_CLIENT_SECRET',
+                    }),
+                  }}
                 />
-                <p className="form-text text-muted">
-                  <small
-                    // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
-                    dangerouslySetInnerHTML={{
-                      __html: t('security_settings.Use env var if empty', {
-                        env: 'OAUTH_GOOGLE_CLIENT_ID',
-                      }),
-                    }}
-                  />
-                </p>
-              </div>
+              </p>
             </div>
+          </div>
 
-            <div className="row mb-4">
-              <label
-                htmlFor="googleClientSecret"
-                className="col-3 text-end py-2 form-label"
-              >
-                {t('security_settings.client_secret')}
-              </label>
-              <div className="col-6">
+          <div className="row mb-3">
+            <div className="offset-3 col-6">
+              <div className="form-check form-check-success">
                 <input
-                  className="form-control"
-                  type="password"
-                  {...register('googleClientSecret')}
+                  id="bindByUserNameGoogle"
+                  className="form-check-input"
+                  type="checkbox"
+                  checked={
+                    adminGoogleSecurityContainer.state
+                      .isSameEmailTreatedAsIdenticalUser || false
+                  }
+                  onChange={() => {
+                    adminGoogleSecurityContainer.switchIsSameEmailTreatedAsIdenticalUser();
+                  }}
                 />
-                <p className="form-text text-muted">
-                  <small
-                    // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
-                    dangerouslySetInnerHTML={{
-                      __html: t('security_settings.Use env var if empty', {
-                        env: 'OAUTH_GOOGLE_CLIENT_SECRET',
-                      }),
-                    }}
-                  />
-                </p>
-              </div>
-            </div>
-
-            <div className="row mb-3">
-              <div className="offset-3 col-6">
-                <div className="form-check form-check-success">
-                  <input
-                    id="bindByUserNameGoogle"
-                    className="form-check-input"
-                    type="checkbox"
-                    checked={
-                      adminGoogleSecurityContainer.state
-                        .isSameEmailTreatedAsIdenticalUser || false
-                    }
-                    onChange={() => {
-                      adminGoogleSecurityContainer.switchIsSameEmailTreatedAsIdenticalUser();
-                    }}
-                  />
-                  <label
-                    className="form-check-label"
-                    htmlFor="bindByUserNameGoogle"
-                  >
-                    <span
-                      // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
-                      dangerouslySetInnerHTML={{
-                        __html: t(
-                          'security_settings.Treat email matching as identical',
-                        ),
-                      }}
-                    />
-                  </label>
-                </div>
-                <p className="form-text text-muted">
-                  <small
+                <label
+                  className="form-check-label"
+                  htmlFor="bindByUserNameGoogle"
+                >
+                  <span
                     // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
                     dangerouslySetInnerHTML={{
                       __html: t(
-                        'security_settings.Treat email matching as identical_warn',
+                        'security_settings.Treat email matching as identical',
                       ),
                     }}
                   />
-                </p>
+                </label>
               </div>
+              <p className="form-text text-muted">
+                <small
+                  // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
+                  dangerouslySetInnerHTML={{
+                    __html: t(
+                      'security_settings.Treat email matching as identical_warn',
+                    ),
+                  }}
+                />
+              </p>
             </div>
+          </div>
 
-            <div className="row mb-4">
-              <div className="offset-3 col-5">
-                <button
-                  type="submit"
-                  className="btn btn-primary"
-                  disabled={retrieveError != null}
-                >
-                  {t('Update')}
-                </button>
-              </div>
+          <div className="row mb-4">
+            <div className="offset-3 col-5">
+              <button
+                type="submit"
+                className="btn btn-primary"
+                disabled={retrieveError != null}
+              >
+                {t('Update')}
+              </button>
             </div>
-          </React.Fragment>
-        )}
+          </div>
+        </React.Fragment>
+      )}
 
-        <hr />
+      <hr />
 
-        <div style={{ minHeight: '300px' }}>
-          <h4>
-            <span className="material-symbols-outlined" aria-hidden="true">
-              help
-            </span>
-            <a href="#collapseHelpForGoogleOauth" data-bs-toggle="collapse">
-              {' '}
-              {t('security_settings.OAuth.how_to.google')}
-            </a>
-          </h4>
-          <div className="card custom-card bg-body-tertiary">
-            <ol id="collapseHelpForGoogleOauth" className="collapse mb-0">
-              {/* eslint-disable-next-line max-len */}
-              <li
-                // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
-                dangerouslySetInnerHTML={{
-                  __html: t('security_settings.OAuth.Google.register_1', {
-                    link: '<a href="https://console.cloud.google.com/apis/credentials" target=_blank>Google Cloud Platform API Manager</a>',
-                  }),
-                }}
-              />
-              <li
-                // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
-                dangerouslySetInnerHTML={{
-                  __html: t('security_settings.OAuth.Google.register_2'),
-                }}
-              />
-              <li
-                // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
-                dangerouslySetInnerHTML={{
-                  __html: t('security_settings.OAuth.Google.register_3'),
-                }}
-              />
-              <li
-                // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
-                dangerouslySetInnerHTML={{
-                  __html: t('security_settings.OAuth.Google.register_4', {
-                    url: googleCallbackUrl,
-                  }),
-                }}
-              />
-              <li
-                // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
-                dangerouslySetInnerHTML={{
-                  __html: t('security_settings.OAuth.Google.register_5'),
-                }}
-              />
-            </ol>
-          </div>
+      <div style={{ minHeight: '300px' }}>
+        <h4>
+          <span className="material-symbols-outlined" aria-hidden="true">
+            help
+          </span>
+          <a href="#collapseHelpForGoogleOauth" data-bs-toggle="collapse">
+            {' '}
+            {t('security_settings.OAuth.how_to.google')}
+          </a>
+        </h4>
+        <div className="card custom-card bg-body-tertiary">
+          <ol id="collapseHelpForGoogleOauth" className="collapse mb-0">
+            <li
+              // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
+              dangerouslySetInnerHTML={{
+                __html: t('security_settings.OAuth.Google.register_1', {
+                  link: '<a href="https://console.cloud.google.com/apis/credentials" target=_blank>Google Cloud Platform API Manager</a>',
+                }),
+              }}
+            />
+            <li
+              // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
+              dangerouslySetInnerHTML={{
+                __html: t('security_settings.OAuth.Google.register_2'),
+              }}
+            />
+            <li
+              // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
+              dangerouslySetInnerHTML={{
+                __html: t('security_settings.OAuth.Google.register_3'),
+              }}
+            />
+            <li
+              // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
+              dangerouslySetInnerHTML={{
+                __html: t('security_settings.OAuth.Google.register_4', {
+                  url: googleCallbackUrl,
+                }),
+              }}
+            />
+            <li
+              // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
+              dangerouslySetInnerHTML={{
+                __html: t('security_settings.OAuth.Google.register_5'),
+              }}
+            />
+          </ol>
         </div>
-      </React.Fragment>
+      </div>
     </form>
   );
 };

+ 0 - 1
apps/app/src/client/components/Admin/Security/LocalSecuritySettingContents.tsx

@@ -75,7 +75,6 @@ const LocalSecuritySettingContents = (props: Props): JSX.Element => {
       {adminLocalSecurityContainer.state.useOnlyEnvVars && (
         <p
           className="alert alert-info"
-          // eslint-disable-next-line max-len
           // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
           dangerouslySetInnerHTML={{
             __html: t('security_settings.Local.note for the only env option', {

+ 0 - 2
apps/app/src/client/components/Admin/Security/OidcSecuritySettingContents.tsx

@@ -180,7 +180,6 @@ const OidcSecurityManagementContents = (props: Props) => {
             <div className="alert alert-danger">
               <span className="material-symbols-outlined">error</span>
               <span
-                // eslint-disable-next-line max-len
                 // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
                 dangerouslySetInnerHTML={{
                   __html: t('alert.siteUrl_is_not_set', {
@@ -628,7 +627,6 @@ const OidcSecurityManagementContents = (props: Props) => {
                 <div className="alert alert-danger">
                   <span className="material-symbols-outlined">error</span>
                   <span
-                    // eslint-disable-next-line max-len
                     // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
                     dangerouslySetInnerHTML={{
                       __html: t('alert.siteUrl_is_not_set', {

+ 0 - 3
apps/app/src/client/components/Admin/Security/SamlSecuritySettingContents.tsx

@@ -158,7 +158,6 @@ const SamlSecurityManagementContents = (props: Props) => {
             <div className="alert alert-danger">
               <span className="material-symbols-outlined">error</span>
               <span
-                // eslint-disable-next-line max-len
                 // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
                 dangerouslySetInnerHTML={{
                   __html: t('alert.siteUrl_is_not_set', {
@@ -466,7 +465,6 @@ pWVdnzS1VCO8fKsJ7YYIr+JmHvseph3kFUOI5RqkCcMZlKUv83aUThsTHw==
                     {...register('samlAttrMapFirstName')}
                   />
                   <p className="form-text text-muted">
-                    {/* eslint-disable-next-line max-len */}
                     <small
                       // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
                       dangerouslySetInnerHTML={{
@@ -522,7 +520,6 @@ pWVdnzS1VCO8fKsJ7YYIr+JmHvseph3kFUOI5RqkCcMZlKUv83aUThsTHw==
                     {...register('samlAttrMapLastName')}
                   />
                   <p className="form-text text-muted">
-                    {/* eslint-disable-next-line max-len */}
                     <small
                       // biome-ignore lint/security/noDangerouslySetInnerHtml: trusted translation markup
                       dangerouslySetInnerHTML={{

+ 0 - 1
apps/app/src/client/components/Admin/SlackIntegration/CustomBotWithoutProxySecretTokenSection.jsx

@@ -80,7 +80,6 @@ const CustomBotWithoutProxySecretTokenSection = (props) => {
             readOnly
           />
           <p className="form-text text-muted">
-            {/* eslint-disable-next-line max-len, react/no-danger */}
             <small
               // biome-ignore lint/security/noDangerouslySetInnerHtml: includes markup from i18n strings
               dangerouslySetInnerHTML={{

+ 0 - 3
apps/app/src/client/components/Admin/SlackIntegration/CustomBotWithoutProxySettingsAccordion.jsx

@@ -177,7 +177,6 @@ const CustomBotWithoutProxySettingsAccordion = (props) => {
         defaultIsActive={defaultOpenAccordionKeys.has(
           botInstallationStep.REGISTER_SLACK_CONFIGURATION,
         )}
-        // eslint-disable-next-line max-len
         title={
           <>
             <span className="me-3">3</span>
@@ -202,7 +201,6 @@ const CustomBotWithoutProxySettingsAccordion = (props) => {
         defaultIsActive={defaultOpenAccordionKeys.has(
           botInstallationStep.CONNECTION_TEST,
         )}
-        // eslint-disable-next-line max-len
         title={
           <>
             <span className="me-3">4</span>
@@ -219,7 +217,6 @@ const CustomBotWithoutProxySettingsAccordion = (props) => {
         defaultIsActive={defaultOpenAccordionKeys.has(
           botInstallationStep.CONNECTION_TEST,
         )}
-        // eslint-disable-next-line max-len
         title={
           <>
             <span className="me-3">5</span>

+ 0 - 1
apps/app/src/client/components/Admin/SlackIntegration/ManageCommandsProcessWithoutProxy.jsx

@@ -263,7 +263,6 @@ const ManageCommandsProcessWithoutProxy = ({
           <div className="form-check">
             <div className="row mb-5 d-block">
               {defaultCommandsName.map((commandName) => {
-                // eslint-disable-next-line max-len
                 return (
                   <SinglePermissionSettingComponent
                     key={`${commandName}-component`}

+ 0 - 1
apps/app/src/client/components/Admin/Users/GrantAdminButton.tsx

@@ -40,7 +40,6 @@ const GrantAdminButton = (props: GrantAdminButtonProps): JSX.Element => {
 /**
  * Wrapper component for using unstated
  */
-// eslint-disable-next-line max-len
 const GrantAdminButtonWrapper: React.ForwardRefExoticComponent<
   Pick<any, string | number | symbol> & React.RefAttributes<any>
 > = withUnstatedContainers(GrantAdminButton, [AdminUsersContainer]);

+ 0 - 1
apps/app/src/client/components/Admin/Users/GrantReadOnlyButton.tsx

@@ -37,7 +37,6 @@ const GrantReadOnlyButton: React.FC<{
 /**
  * Wrapper component for using unstated
  */
-// eslint-disable-next-line max-len
 const GrantReadOnlyButtonWrapper: React.ForwardRefExoticComponent<
   Pick<any, string | number | symbol> & React.RefAttributes<any>
 > = withUnstatedContainers(GrantReadOnlyButton, [AdminUsersContainer]);

+ 0 - 1
apps/app/src/client/components/Admin/Users/RevokeAdminMenuItem.tsx

@@ -61,7 +61,6 @@ const RevokeAdminMenuItem = (props: Props): JSX.Element => {
 /**
  * Wrapper component for using unstated
  */
-// eslint-disable-next-line max-len
 const RevokeAdminMenuItemWrapper: React.ForwardRefExoticComponent<
   Pick<any, string | number | symbol> & React.RefAttributes<any>
 > = withUnstatedContainers(RevokeAdminMenuItem, [AdminUsersContainer]);

+ 0 - 1
apps/app/src/client/components/Admin/Users/RevokeReadOnlyMenuItem.tsx

@@ -37,7 +37,6 @@ const RevokeReadOnlyMenuItem: React.FC<{
 /**
  * Wrapper component for using unstated
  */
-// eslint-disable-next-line max-len
 const RevokeReadOnlyMenuItemWrapper: React.ForwardRefExoticComponent<
   Pick<any, string | number | symbol> & React.RefAttributes<any>
 > = withUnstatedContainers(RevokeReadOnlyMenuItem, [AdminUsersContainer]);

+ 0 - 1
apps/app/src/client/components/Admin/Users/StatusSuspendMenuItem.tsx

@@ -61,7 +61,6 @@ const StatusSuspendMenuItem = (props: Props): JSX.Element => {
 /**
  * Wrapper component for using unstated
  */
-// eslint-disable-next-line max-len
 const StatusSuspendMenuItemWrapper: React.ForwardRefExoticComponent<
   Pick<any, string | number | symbol> & React.RefAttributes<any>
 > = withUnstatedContainers(StatusSuspendMenuItem, [AdminUsersContainer]);

+ 0 - 1
apps/app/src/client/components/Admin/Users/UserMenu.tsx

@@ -146,7 +146,6 @@ const UserMenu = (props: UserMenuProps) => {
 /**
  * Wrapper component for using unstated
  */
-// eslint-disable-next-line max-len
 const UserMenuWrapper: React.ForwardRefExoticComponent<
   Pick<any, string | number | symbol> & React.RefAttributes<any>
 > = withUnstatedContainers(UserMenu, [AdminUsersContainer]);

+ 0 - 1
apps/app/src/client/components/PageComment/CommentEditor.tsx

@@ -187,7 +187,6 @@ export const CommentEditor = (props: CommentEditorProps): JSX.Element => {
         err.message || 'An unknown error occured when posting comment';
       setError(errorMessage);
     }
-    // eslint-disable-next-line max-len
   }, [
     currentCommentId,
     initializeEditor,

+ 1 - 3
apps/app/src/client/components/PageEditor/Cheatsheet.tsx

@@ -1,6 +1,4 @@
-/* eslint-disable max-len */
-
-import React, { type JSX } from 'react';
+import type { JSX } from 'react';
 import { useTranslation } from 'next-i18next';
 import { PrismAsyncLight } from 'react-syntax-highlighter';
 import { oneDark } from 'react-syntax-highlighter/dist/cjs/styles/prism';

+ 0 - 1
apps/app/src/client/components/PageEditor/ScrollSyncHelper.tsx

@@ -209,7 +209,6 @@ const scrollPreview = (
   editorRootElement.scrollTop = newScrollTop;
 };
 
-// eslint-disable-next-line max-len
 export const useScrollSync = (
   codeMirrorKey: GlobalCodeMirrorEditorKey,
   previewRef: RefObject<HTMLDivElement | null>,

+ 0 - 2
apps/app/src/client/services/side-effects/drawio-modal-launcher-for-view.ts

@@ -36,7 +36,6 @@ export const useDrawioModalLauncherForView = (opts?: {
 
   const setRemoteLatestPageData = useSetRemoteLatestPageData();
 
-  // eslint-disable-next-line max-len
   const updatePage = useCallback(
     async (
       revisionId: string,
@@ -80,7 +79,6 @@ export const useDrawioModalLauncherForView = (opts?: {
     [_updatePage, closeConflictDiffModal, currentPage, opts, shareLinkId],
   );
 
-  // eslint-disable-next-line max-len
   const generateResolveConflictHandler = useCallback(
     (
       revisionId: string,

+ 0 - 2
apps/app/src/client/services/side-effects/handsontable-modal-launcher-for-view.ts

@@ -40,7 +40,6 @@ export const useHandsontableModalLauncherForView = (opts?: {
 
   const setRemoteLatestPageData = useSetRemoteLatestPageData();
 
-  // eslint-disable-next-line max-len
   const updatePage = useCallback(
     async (
       revisionId: string,
@@ -84,7 +83,6 @@ export const useHandsontableModalLauncherForView = (opts?: {
     [_updatePage, closeConflictDiffModal, currentPage, opts, shareLinkId],
   );
 
-  // eslint-disable-next-line max-len
   const generateResolveConflictHandler = useCallback(
     (
       revisionId: string,

+ 0 - 1
apps/app/src/client/services/side-effects/page-updated.ts

@@ -66,7 +66,6 @@ export const usePageUpdatedEffect = (): void => {
           closePageStatusAlert();
         }
       }
-      // eslint-disable-next-line max-len
     },
     [
       currentPage?._id,

+ 0 - 2
apps/app/src/components/Admin/Common/AdminNavigation.tsx

@@ -15,7 +15,6 @@ const MenuLabel = ({ menu }: { menu: string }) => {
   const { t } = useTranslation(['admin', 'commons']);
 
   switch (menu) {
-    /* eslint-disable no-multi-spaces, max-len */
     case 'app':
       return (
         <>
@@ -149,7 +148,6 @@ const MenuLabel = ({ menu }: { menu: string }) => {
           {t('wiki_management_homepage')}
         </>
       );
-    /* eslint-enable no-multi-spaces, max-len */
   }
 };
 

+ 0 - 4
apps/app/src/components/Common/GrowiLogo.jsx

@@ -14,22 +14,18 @@ const GrowiLogo = memo(() => (
     >
       <title>GROWI</title>
       <path
-        // eslint-disable-next-line max-len
         d="M17.123 33.8015L10.4717 45.3855C10.2686 45.7427 10.2686 46.1829 10.4717 46.5337L15.5934 55.4514C15.7838 55.7767 16.171 55.9999 16.5645 55.9999H17.123L23.5014 44.9007L17.123 33.8015Z"
         className="group1"
       />
       <path
-        // eslint-disable-next-line max-len
         d="M50.8118 29.0493L42.0343 44.3331C41.8693 44.6138 41.571 44.9072 41.0632 44.9072H23.4956L17.1172 56H47.4607C47.8542 56 48.1842 55.8023 48.3873 55.4514L63.5559 29.043H50.8118V29.0493Z"
         className="group2"
       />
       <path
-        // eslint-disable-next-line max-len
         d="M63.8353 28.5773C64.0447 28.22 64.0574 27.8182 63.8543 27.461L58.7262 18.5369C58.5231 18.1797 58.174 17.9501 57.7615 17.9501H26.8975C26.485 17.9501 26.1106 18.1733 25.9011 18.5178L21.0586 26.9379L27.437 38.0499L32.1272 29.8849C32.4255 29.3746 32.9713 29.0557 33.5552 29.0557H63.5624L63.8353 28.5836V28.5773Z"
         className="group1"
       />
       <path
-        // eslint-disable-next-line max-len
         d="M22.956 11.0992H54.4546L48.4125 0.580476C48.2094 0.22326 47.8604 0 47.4478 0H16.5839C16.1714 0 15.7969 0.204123 15.5875 0.56134L0.152321 27.4227C-0.0507735 27.7799 -0.0507735 28.2137 0.152321 28.5709L6.20706 39.1088L21.9595 11.6606C22.1626 11.3033 22.5434 11.0928 22.956 11.0928V11.0992Z"
         className="group1"
       />

+ 0 - 1
apps/app/src/features/growi-plugin/server/services/growi-plugin/growi-plugin.ts

@@ -279,7 +279,6 @@ export class GrowiPluginService implements IGrowiPluginService {
     await GrowiPlugin.insertMany(plugins);
   }
 
-  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, max-len
   private static async detectPlugins(
     origin: IGrowiPluginOrigin,
     ghOrganizationName: string,

+ 0 - 1
apps/app/src/features/openai/client/components/AiAssistant/AiAssistantManagementModal/AiAssistantManagementModal.tsx

@@ -160,7 +160,6 @@ const AiAssistantManagementModalSubstance = (): JSX.Element => {
       setSelectedUserGroupsForShareScope(populatedGrantedGroupsForShareScope);
       setSelectedUserGroupsForAccessScope(populatedGrantedGroupsForAccessScope);
     }
-    // eslint-disable-next-line max-len
   }, [
     aiAssistant?.accessScope,
     aiAssistant?.additionalInstruction,

+ 0 - 2
apps/app/src/features/openai/client/components/AiAssistant/AiAssistantSidebar/AiAssistantSidebar.tsx

@@ -417,8 +417,6 @@ const AiAssistantSidebarSubstance: React.FC<
         logger.error(err.toString());
         form.setError('input', { type: 'manual', message: err.toString() });
       }
-
-      // eslint-disable-next-line max-len
     },
     [
       isGenerating,

+ 0 - 1
apps/app/src/features/openai/interfaces/editor-assistant/llm-response-schemas.spec.ts

@@ -425,7 +425,6 @@ Line 3: Fixed indentation`,
       const realWorldDiff = {
         search:
           'function getUserData(id) {\n  return users.find(u => u.id === id);\n}',
-        // eslint-disable-next-line max-len, no-template-curly-in-string
         replace:
           'async function getUserData(id) {\n  const user = await userService.findById(id);\n  if (!user) {\n    throw new Error(`User not found: \\${id}`);\n  }\n  return user;\n}',
         startLine: 15,

+ 0 - 2
apps/app/src/features/openai/server/routes/edit/index.ts

@@ -65,7 +65,6 @@ type PostMessageHandlersFactory = (crowi: Crowi) => RequestHandler[];
 // -----------------------------------------------------------------------------
 // Instructions
 // -----------------------------------------------------------------------------
-/* eslint-disable max-len */
 const withMarkdownCaution = `# IMPORTANT:
 - Spaces and line breaks are also counted as individual characters.
 - The text for lines that do not need correction must be returned exactly as in the original text.
@@ -115,7 +114,6 @@ The array should contain:
 
 ${withMarkdown ? withMarkdownCaution : ''}`;
 }
-/* eslint-disable max-len */
 
 function instructionForAssistantInstruction(
   assistantInstruction: string,

+ 0 - 4
apps/app/src/features/openai/server/services/assistant/editor-assistant.ts

@@ -10,7 +10,6 @@ import {
   instructionsForSystem,
 } from './instructions/commons';
 
-/* eslint-disable max-len */
 const instructionsForUserIntentDetection = `# USER INTENT DETECTION:
   First, analyze the user's message to determine their intent:
   - **Consultation Type**: Questions, discussions, explanations, or advice seeking WITHOUT explicit request to edit/modify/generate text
@@ -33,7 +32,6 @@ const instructionsForUserIntentDetection = `# USER INTENT DETECTION:
   - "Generate a new paragraph about..."
   - "Modify this to include..."
   - "Translate this text to English"`;
-/* eslint-enable max-len */
 
 const instructionsForContexts = `## Editing Contexts
 
@@ -74,7 +72,6 @@ export const getOrCreateEditorAssistant =
     editorAssistant = await getOrCreateAssistant({
       type: AssistantType.EDIT,
       model: configManager.getConfig('openai:assistantModel:edit'),
-      /* eslint-disable max-len */
       instructions: `# Your Role
 You are an Editor Assistant for GROWI, a markdown wiki system.
 Your task is to help users edit their markdown content based on their requests.
@@ -98,7 +95,6 @@ ${instructionsForUserIntentDetection}
 
 ${instructionsForFileSearch}
 `,
-      /* eslint-enable max-len */
     });
 
     return editorAssistant;

+ 0 - 2
apps/app/src/features/opentelemetry/server/anonymization/utils/anonymize-query-params.spec.ts

@@ -3,7 +3,6 @@ import { describe, expect, it } from 'vitest';
 import { anonymizeQueryParams } from './anonymize-query-params';
 
 describe('anonymizeQueryParams', () => {
-  /* eslint-disable max-len */
   it.each`
     description                     | target                                                            | paramNames         | expected
     ${'no matching parameters'}     | ${'/_api/v3/test?other=value&another=test'}                       | ${['nonexistent']} | ${'/_api/v3/test?other=value&another=test'}
@@ -21,7 +20,6 @@ describe('anonymizeQueryParams', () => {
     ${'URL with no query params'}   | ${'/_api/v3/test'}                                                | ${['q']}           | ${'/_api/v3/test'}
     ${'complex path with encoding'} | ${'/_api/v3/test?path=%2Fuser%2Fjohn%20doe'}                      | ${['path']}        | ${'/_api/v3/test?path=%5BANONYMIZED%5D'}
   `('should handle $description', ({ target, paramNames, expected }) => {
-    /* eslint-enable max-len */
     const result = anonymizeQueryParams(target, paramNames);
     expect(result).toBe(expected);
   });

+ 0 - 1
apps/app/src/features/opentelemetry/server/semconv.ts

@@ -1,4 +1,3 @@
-/* eslint-disable max-len */
 /*
 ### Unstable SemConv
 

+ 0 - 1
apps/app/src/features/search/client/components/PrivateLegacyPages.tsx

@@ -501,7 +501,6 @@ const PrivateLegacyPages = (): JSX.Element => {
         {isAdmin && renderOpenModalButton()}
       </div>
     );
-    // eslint-disable-next-line max-len
   }, [
     convertMenuItemClickedHandler,
     deleteAllButtonClickedHandler,

+ 0 - 1
apps/app/src/server/crowi/express-init.js

@@ -57,7 +57,6 @@ module.exports = (crowi, app) => {
           (trustProxy) => trustProxy != null,
         ).length !== 1;
       if (isNotSpec) {
-        // eslint-disable-next-line max-len
         logger.warn(
           `If more than one TRUST_PROXY_ ~ environment variable is set, the values are set in the following order of inequality size (BOOL > CSV > HOPS) first. Set value: ${trustProxy}`,
         );

+ 0 - 1
apps/app/src/server/models/in-app-notification-settings.ts

@@ -25,7 +25,6 @@ const inAppNotificationSettingsSchema = new Schema<
   ],
 });
 
-// eslint-disable-next-line max-len
 export default getOrCreateModel<
   InAppNotificationSettingsDocument,
   InAppNotificationSettingsModel

+ 0 - 1
apps/app/src/server/routes/apiv3/app-settings/file-upload-setting.ts

@@ -143,7 +143,6 @@ module.exports = (crowi) => {
 
   const activityEvent = crowi.event('activity');
 
-  //  eslint-disable-next-line max-len
   router.put(
     '/',
     accessTokenParser([SCOPE.WRITE.ADMIN.APP]),

+ 0 - 1
apps/app/src/server/routes/apiv3/forgot-password.js

@@ -222,7 +222,6 @@ module.exports = (crowi) => {
    *                  userData:
    *                    $ref: '#/components/schemas/User'
    */
-  // eslint-disable-next-line max-len
   router.put(
     '/',
     checkPassportStrategyMiddleware,

+ 0 - 1
apps/app/src/server/routes/apiv3/installer.ts

@@ -81,7 +81,6 @@ module.exports = (crowi: Crowi): Router => {
    *                    type: string
    *                    example: Installation completed (Logged in as an admin user)
    */
-  // eslint-disable-next-line max-len
   router.post(
     '/',
     registerRules(minPasswordLength),

+ 0 - 4
apps/app/src/server/routes/apiv3/notification-setting.js

@@ -281,7 +281,6 @@ module.exports = (crowi) => {
    *                            $ref: '#/components/schemas/UserNotification'
    *                            description: user notification settings
    */
-  // eslint-disable-next-line max-len
   router.post(
     '/user-notification',
     accessTokenParser([SCOPE.WRITE.ADMIN.EXTERNAL_NOTIFICATION]),
@@ -452,7 +451,6 @@ module.exports = (crowi) => {
    *                      description: notification param created
    *                      $ref: '#/components/schemas/GlobalNotification'
    */
-  // eslint-disable-next-line max-len
   router.post(
     '/global-notification',
     accessTokenParser([SCOPE.WRITE.ADMIN.EXTERNAL_NOTIFICATION]),
@@ -528,7 +526,6 @@ module.exports = (crowi) => {
    *                      description: notification param updated
    *                      $ref: '#/components/schemas/GlobalNotification'
    */
-  // eslint-disable-next-line max-len
   router.put(
     '/global-notification/:id',
     accessTokenParser([SCOPE.WRITE.ADMIN.EXTERNAL_NOTIFICATION]),
@@ -614,7 +611,6 @@ module.exports = (crowi) => {
    *                schema:
    *                  $ref: '#/components/schemas/NotifyForPageGrant'
    */
-  // eslint-disable-next-line max-len
   router.put(
     '/notify-for-page-grant',
     accessTokenParser([SCOPE.WRITE.ADMIN.EXTERNAL_NOTIFICATION]),

+ 0 - 3
apps/app/src/server/routes/apiv3/security-settings/index.js

@@ -900,7 +900,6 @@ module.exports = (crowi) => {
    *                  type: object
    *                  description: updated param
    */
-  // eslint-disable-next-line max-len
   router.put(
     '/authentication/enabled',
     accessTokenParser([SCOPE.WRITE.ADMIN.SECURITY]),
@@ -1117,7 +1116,6 @@ module.exports = (crowi) => {
           req.body.pageDeletionAuthority,
           req.body.pageRecursiveDeletionAuthority,
         );
-      // eslint-disable-next-line max-len
       const [singleAuthority2, recursiveAuthority2] =
         prepareDeleteConfigValuesForCalc(
           req.body.pageCompleteDeletionAuthority,
@@ -1244,7 +1242,6 @@ module.exports = (crowi) => {
             'security:disableLinkSharing',
           ),
         };
-        // eslint-disable-next-line max-len
         const parameters = {
           action: updateData['security:disableLinkSharing']
             ? SupportedAction.ACTION_ADMIN_REJECT_SHARE_LINK

+ 0 - 1
apps/app/src/server/routes/apiv3/slack-integration-settings.js

@@ -1057,7 +1057,6 @@ module.exports = (crowi) => {
    *           200:
    *             description: Succeeded to delete botType setting.
    */
-  // eslint-disable-next-line max-len
   router.post(
     '/slack-app-integrations/:id/relation-test',
     accessTokenParser([SCOPE.WRITE.ADMIN.SLACK_INTEGRATION]),

+ 0 - 3
apps/app/src/server/routes/apiv3/slack-integration.js

@@ -99,7 +99,6 @@ module.exports = (crowi) => {
           text: 'Command is not supported',
           blocks: [
             markdownSectionBlock('*Command is not supported*'),
-            // eslint-disable-next-line max-len
             markdownSectionBlock(
               `\`/growi ${growiCommand.growiCommandType}\` command is not supported in this version of GROWI bot. Run \`/growi help\` to see all supported commands.`,
             ),
@@ -257,7 +256,6 @@ module.exports = (crowi) => {
   const verifyUrlMiddleware = (req, res, next) => {
     const { body } = req;
 
-    // eslint-disable-next-line max-len
     // see: https://api.slack.com/apis/connections/events-api#the-events-api__subscribing-to-event-types__events-api-request-urls__request-url-configuration--verification
     if (body.type === 'url_verification') {
       return res.send({ challenge: body.challenge });
@@ -472,7 +470,6 @@ module.exports = (crowi) => {
     async (req, res) => {
       const { body } = req;
 
-      // eslint-disable-next-line max-len
       // see: https://api.slack.com/apis/connections/events-api#the-events-api__subscribing-to-event-types__events-api-request-urls__request-url-configuration--verification
       if (body.type === 'url_verification') {
         return res.send({ challenge: body.challenge });

+ 0 - 1
apps/app/src/server/routes/apiv3/users.js

@@ -1584,7 +1584,6 @@ module.exports = (crowi) => {
           });
         }
 
-        // eslint-disable-next-line max-len
         const canIncludeMixedUsernames =
           (options.isIncludeMixedUsernames && req.user.admin) ||
           (options.isIncludeMixedUsernames &&

+ 0 - 2
apps/app/src/server/routes/index.js

@@ -60,8 +60,6 @@ module.exports = (crowi, app) => {
   const unavailableWhenMaintenanceModeForApi =
     generateUnavailableWhenMaintenanceModeMiddlewareForApi(crowi);
 
-  /* eslint-disable max-len, comma-spacing, no-multi-spaces */
-
   const [apiV3Router, apiV3AdminRouter, apiV3AuthRouter] = require('./apiv3')(
     crowi,
     app,

+ 0 - 1
apps/app/src/server/service/file-uploader/utils/headers.ts

@@ -29,7 +29,6 @@ export const createContentHeaders = (
   // Content-Security-Policy
   headers.push({
     field: 'Content-Security-Policy',
-    // eslint-disable-next-line max-len
     value:
       "script-src 'unsafe-hashes'; style-src 'self' 'unsafe-inline'; object-src 'none'; require-trusted-types-for 'script'; media-src 'self'; default-src 'none';",
   });

+ 0 - 3
apps/app/src/server/service/g2g-transfer.ts

@@ -294,7 +294,6 @@ export class G2GTransferPusherService implements Pusher {
       return {
         canTransfer: false,
         // TODO: i18n for reason
-        // eslint-disable-next-line max-len
         reason: `The number of active users (${activeUserCount} users) exceeds the limit of the destination GROWI (up to ${destGROWIInfo.userUpperLimit} users).`,
       };
     }
@@ -336,7 +335,6 @@ export class G2GTransferPusherService implements Pusher {
       return {
         canTransfer: false,
         // TODO: i18n for reason
-        // eslint-disable-next-line max-len
         reason: `The total file size of attachments exceeds the file upload limit of the destination GROWI. Requires ${totalFileSize.toLocaleString()} bytes, but got ${(destGROWIInfo.fileUploadTotalLimit as number).toLocaleString()} bytes.`,
       };
     }
@@ -462,7 +460,6 @@ export class G2GTransferPusherService implements Pusher {
     }
   }
 
-  // eslint-disable-next-line max-len
   public async startTransfer(
     tk: TransferKey,
     user: any,

+ 0 - 2
apps/app/src/server/service/page/index.ts

@@ -4074,7 +4074,6 @@ class PageService implements IPageService {
     let nextCount = count;
     let nextSkiped = skiped;
 
-    // eslint-disable-next-line max-len
     const buildPipelineToCreateEmptyPagesByUser =
       this.buildPipelineToCreateEmptyPagesByUser.bind(this);
 
@@ -5277,7 +5276,6 @@ class PageService implements IPageService {
       let isGrantNormalized = false;
       try {
         const shouldCheckDescendants = !options.overwriteScopesOfDescendants;
-        // eslint-disable-next-line max-len
         isGrantNormalized = await this.pageGrantService.isGrantNormalized(
           user,
           clonedPageData.path,

+ 1 - 2
apps/app/src/server/service/search.ts

@@ -595,8 +595,7 @@ class SearchService implements SearchQueryParser, SearchResolver {
         const highlightData = data._highlight;
         if (highlightData != null) {
           const snippet = this.canShowSnippet(pageData, user, userGroups)
-            ? // eslint-disable-next-line max-len
-              highlightData.body ||
+            ? highlightData.body ||
               highlightData['body.en'] ||
               highlightData['body.ja'] ||
               highlightData.comments ||

+ 0 - 1
apps/app/test/integration/service/v5.migration.test.js

@@ -1,4 +1,3 @@
-/* eslint-disable max-len */
 const mongoose = require('mongoose');
 
 const { getInstance } = require('../setup-crowi');

+ 0 - 1
apps/slackbot-proxy/src/controllers/slack.ts

@@ -273,7 +273,6 @@ export class SlackCtrl {
         text: 'Command is not supported',
         blocks: [
           markdownSectionBlock('*Command is not supported*'),
-          // eslint-disable-next-line max-len
           markdownSectionBlock(
             `\`/growi ${growiCommand.growiCommandType}\` command is not supported in this version of GROWI bot. Run \`/growi help\` to see all supported commands.`,
           ),

+ 0 - 1
apps/slackbot-proxy/src/middlewares/slack-to-growi/url-verification.ts

@@ -9,7 +9,6 @@ export class UrlVerificationMiddleware implements IMiddleware {
     @Res() res: Res,
     @Next() next: Next,
   ): Promise<void> {
-    // eslint-disable-next-line max-len
     // see: https://api.slack.com/apis/connections/events-api#the-events-api__subscribing-to-event-types__events-api-request-urls__request-url-configuration--verification
     if (req.body.type === 'url_verification') {
       res.send(req.body.challenge);

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

@@ -24,7 +24,6 @@ export const postWelcomeMessageOnce = async (
       ),
       markdownSectionBlock(
         'Looking for additional help? ' +
-          // eslint-disable-next-line max-len
           'See <https://docs.growi.org/en/admin-guide/management-cookbook/slack-integration/official-bot-settings.html#official-bot-settings | Docs>.',
       ),
     ],
@@ -44,7 +43,6 @@ export const postInstallSuccessMessage = async (
       ),
       markdownSectionBlock(
         'Looking for additional help? ' +
-          // eslint-disable-next-line max-len
           'See <https://docs.growi.org/en/admin-guide/management-cookbook/slack-integration/official-bot-settings.html#official-bot-settings | Docs>.',
       ),
     ],

+ 0 - 1
bin/data-migrations/src/migrations/v70x/bootstrap5.js

@@ -13,7 +13,6 @@ module.exports = [
     let replacedBody = body;
 
     replacedBody = replacedBody.replace(
-      // eslint-disable-next-line max-len
       /\sdata-(animation|autohide|boundary|container|content|custom-class|delay|dismiss|display|html|interval|keyboard|method|offset|pause|placement|popper-config|reference|ride|selector|slide(-to)?|target|template|title|toggle|touch|trigger|wrap)=/g,
       (match, p1) => {
         if (p1 === 'toggle' && match.includes('data-bs-toggle="')) {