Yuki Takei 2 лет назад
Родитель
Сommit
5dbd6a7df8

+ 1 - 1
apps/app/config/next-i18next.config.js

@@ -1,6 +1,6 @@
 const path = require('path');
 const path = require('path');
 
 
-const { AllLang, Lang } = require('@growi/core/dist/interfaces');
+const { AllLang, Lang } = require('@growi/core');
 const { isServer } = require('@growi/core/dist/utils');
 const { isServer } = require('@growi/core/dist/utils');
 const I18nextChainedBackend = require('i18next-chained-backend').default;
 const I18nextChainedBackend = require('i18next-chained-backend').default;
 const I18NextHttpBackend = require('i18next-http-backend');
 const I18NextHttpBackend = require('i18next-http-backend');

+ 2 - 1
apps/app/src/client/services/layout.ts

@@ -1,4 +1,5 @@
-import type { IPage } from '~/interfaces/page';
+import type { IPage } from '@growi/core';
+
 import { useIsContainerFluid } from '~/stores/context';
 import { useIsContainerFluid } from '~/stores/context';
 import { useSWRxCurrentPage } from '~/stores/page';
 import { useSWRxCurrentPage } from '~/stores/page';
 import { useEditorMode } from '~/stores/ui';
 import { useEditorMode } from '~/stores/ui';

+ 1 - 2
apps/app/src/components/Admin/UserGroup/UserGroupDropdown.tsx

@@ -1,9 +1,8 @@
 import React, { FC, useCallback } from 'react';
 import React, { FC, useCallback } from 'react';
 
 
+import type { IUserGroupHasId } from '@growi/core';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
-import type { IUserGroupHasId } from '~/interfaces/user';
-
 type Props = {
 type Props = {
   selectableUserGroups?: IUserGroupHasId[]
   selectableUserGroups?: IUserGroupHasId[]
   onClickAddExistingUserGroupButton?(userGroup: IUserGroupHasId | null): void
   onClickAddExistingUserGroupButton?(userGroup: IUserGroupHasId | null): void

+ 2 - 1
apps/app/src/components/PageAlert/FixPageGrantAlert.tsx

@@ -1,5 +1,6 @@
 import React, { useEffect, useState, useCallback } from 'react';
 import React, { useEffect, useState, useCallback } from 'react';
 
 
+import { PageGrant } from '@growi/core';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 import {
 import {
   Modal, ModalHeader, ModalBody, ModalFooter,
   Modal, ModalHeader, ModalBody, ModalFooter,
@@ -7,7 +8,7 @@ import {
 
 
 import { apiv3Put } from '~/client/util/apiv3-client';
 import { apiv3Put } from '~/client/util/apiv3-client';
 import { toastError, toastSuccess } from '~/client/util/toastr';
 import { toastError, toastSuccess } from '~/client/util/toastr';
-import { PageGrant, IPageGrantData } from '~/interfaces/page';
+import { IPageGrantData } from '~/interfaces/page';
 import { IRecordApplicableGrant, IResIsGrantNormalizedGrantData } from '~/interfaces/page-grant';
 import { IRecordApplicableGrant, IResIsGrantNormalizedGrantData } from '~/interfaces/page-grant';
 import { useCurrentUser } from '~/stores/context';
 import { useCurrentUser } from '~/stores/context';
 import { useSWRxApplicableGrant, useSWRxIsGrantNormalized, useSWRxCurrentPage } from '~/stores/page';
 import { useSWRxApplicableGrant, useSWRxIsGrantNormalized, useSWRxCurrentPage } from '~/stores/page';

+ 1 - 2
apps/app/src/components/PageSideContents.tsx

@@ -1,11 +1,10 @@
 import React from 'react';
 import React from 'react';
 
 
-import type { IPageHasId } from '@growi/core';
+import type { IPageHasId, IPageInfoForOperation } from '@growi/core';
 import { pagePathUtils } from '@growi/core/dist/utils';
 import { pagePathUtils } from '@growi/core/dist/utils';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 import { Link } from 'react-scroll';
 import { Link } from 'react-scroll';
 
 
-import type { IPageInfoForOperation } from '~/interfaces/page';
 import { useDescendantsPageListModal } from '~/stores/modal';
 import { useDescendantsPageListModal } from '~/stores/modal';
 import { useSWRxPageInfo } from '~/stores/page';
 import { useSWRxPageInfo } from '~/stores/page';
 
 

+ 1 - 2
apps/app/src/components/SearchPage/SearchResultContent.tsx

@@ -3,15 +3,14 @@ import React, {
 } from 'react';
 } from 'react';
 
 
 import { getIdForRef } from '@growi/core';
 import { getIdForRef } from '@growi/core';
+import type { IPageToDeleteWithMeta, IPageToRenameWithMeta } from '@growi/core';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 import dynamic from 'next/dynamic';
 import dynamic from 'next/dynamic';
 import { animateScroll } from 'react-scroll';
 import { animateScroll } from 'react-scroll';
 import { DropdownItem } from 'reactstrap';
 import { DropdownItem } from 'reactstrap';
 
 
-
 import { exportAsMarkdown, updateContentWidth } from '~/client/services/page-operation';
 import { exportAsMarkdown, updateContentWidth } from '~/client/services/page-operation';
 import { toastSuccess } from '~/client/util/toastr';
 import { toastSuccess } from '~/client/util/toastr';
-import type { IPageToDeleteWithMeta, IPageToRenameWithMeta } from '~/interfaces/page';
 import type { IPageWithSearchMeta } from '~/interfaces/search';
 import type { IPageWithSearchMeta } from '~/interfaces/search';
 import type { OnDuplicatedFunction, OnRenamedFunction, OnDeletedFunction } from '~/interfaces/ui';
 import type { OnDuplicatedFunction, OnRenamedFunction, OnDeletedFunction } from '~/interfaces/ui';
 import { useCurrentUser, useIsContainerFluid } from '~/stores/context';
 import { useCurrentUser, useIsContainerFluid } from '~/stores/context';

+ 1 - 1
apps/app/src/features/rate-limiter/middleware/factory.ts

@@ -1,9 +1,9 @@
+import type { IUserHasId } from '@growi/core';
 import type { Handler, Request } from 'express';
 import type { Handler, Request } from 'express';
 import md5 from 'md5';
 import md5 from 'md5';
 import { connection } from 'mongoose';
 import { connection } from 'mongoose';
 import { type IRateLimiterMongoOptions, RateLimiterMongo } from 'rate-limiter-flexible';
 import { type IRateLimiterMongoOptions, RateLimiterMongo } from 'rate-limiter-flexible';
 
 
-import type { IUserHasId } from '~/interfaces/user';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 import {
 import {

+ 3 - 1
apps/app/src/interfaces/page-grant.ts

@@ -1,4 +1,6 @@
-import { PageGrant, IPageGrantData } from './page';
+import { PageGrant } from '@growi/core';
+
+import { IPageGrantData } from './page';
 
 
 export type IDataApplicableGroup = {
 export type IDataApplicableGroup = {
   applicableGroups?: {_id: string, name: string}[] // TODO: Typescriptize model
   applicableGroups?: {_id: string, name: string}[] // TODO: Typescriptize model

+ 0 - 6
apps/app/src/interfaces/page.ts

@@ -2,12 +2,6 @@ import type { IPageHasId, Nullable } from '@growi/core';
 
 
 import type { IPageOperationProcessData } from './page-operation';
 import type { IPageOperationProcessData } from './page-operation';
 
 
-export { PageGrant } from '@growi/core';
-export type {
-  IPage, IPageHasId, IPageInfo, IPageInfoForEntity, IPageInfoForOperation, IPageInfoForListing, IPageInfoAll,
-  IDataWithMeta, IPageWithMeta, IPageToDeleteWithMeta, IPageToRenameWithMeta,
-} from '@growi/core';
-
 export {
 export {
   isIPageInfoForEntity, isIPageInfoForOperation, isIPageInfoForListing,
   isIPageInfoForEntity, isIPageInfoForOperation, isIPageInfoForListing,
 } from '@growi/core';
 } from '@growi/core';

+ 0 - 3
apps/app/src/interfaces/revision.ts

@@ -1,3 +0,0 @@
-export type {
-  IRevision, IRevisionHasId, IRevisionsForPagination, IRevisionOnConflict, HasRevisionShortbody,
-} from '@growi/core';

+ 0 - 2
apps/app/src/interfaces/tag.ts

@@ -1,7 +1,5 @@
 import type { ITag, IPageHasId } from '@growi/core';
 import type { ITag, IPageHasId } from '@growi/core';
 
 
-export type { ITag } from '@growi/core';
-
 export type IDataTagCount = ITag & {count: number}
 export type IDataTagCount = ITag & {count: number}
 
 
 export type IPageTagsInfo = {
 export type IPageTagsInfo = {

+ 0 - 5
apps/app/src/interfaces/user.ts

@@ -1,5 +0,0 @@
-export type {
-  IUser, IUserGroupRelation, IUserGroup, IUserHasId, IUserGroupHasId, IUserGroupRelationHasId, IUserStatus,
-} from '@growi/core';
-
-export { USER_STATUS } from '@growi/core';

+ 1 - 2
apps/app/src/models/serializers/in-app-notification-snapshot/page.ts

@@ -1,5 +1,4 @@
-import type { IPage } from '~/interfaces/page';
-import type { IUser } from '~/interfaces/user';
+import type { IPage, IUser } from '@growi/core';
 
 
 export interface IPageSnapshot {
 export interface IPageSnapshot {
   path: string
   path: string

+ 1 - 1
apps/app/src/models/serializers/in-app-notification-snapshot/user.ts

@@ -1,4 +1,4 @@
-import type { IUser } from '~/interfaces/user';
+import type { IUser } from '@growi/core';
 
 
 export interface IUserSnapshot {
 export interface IUserSnapshot {
   username: string
   username: string

+ 1 - 1
apps/app/src/pages/_private-legacy-pages.page.tsx

@@ -1,3 +1,4 @@
+import type { IUser, IUserHasId } from '@growi/core';
 import {
 import {
   NextPage, GetServerSideProps, GetServerSidePropsContext,
   NextPage, GetServerSideProps, GetServerSidePropsContext,
 } from 'next';
 } from 'next';
@@ -9,7 +10,6 @@ import Head from 'next/head';
 import { DrawioViewerScript } from '~/components/Script/DrawioViewerScript';
 import { DrawioViewerScript } from '~/components/Script/DrawioViewerScript';
 import type { CrowiRequest } from '~/interfaces/crowi-request';
 import type { CrowiRequest } from '~/interfaces/crowi-request';
 import type { RendererConfig } from '~/interfaces/services/renderer';
 import type { RendererConfig } from '~/interfaces/services/renderer';
-import type { IUser, IUserHasId } from '~/interfaces/user';
 import {
 import {
   useCsrfToken, useCurrentUser, useIsSearchPage, useIsSearchScopeChildrenAsDefault,
   useCsrfToken, useCurrentUser, useIsSearchPage, useIsSearchScopeChildrenAsDefault,
   useIsSearchServiceConfigured, useIsSearchServiceReachable, useRendererConfig, useGrowiCloudUri,
   useIsSearchServiceConfigured, useIsSearchServiceReachable, useRendererConfig, useGrowiCloudUri,

+ 1 - 1
apps/app/src/pages/_search.page.tsx

@@ -1,5 +1,6 @@
 import { ReactNode } from 'react';
 import { ReactNode } from 'react';
 
 
+import type { IUser, IUserHasId } from '@growi/core';
 import type { GetServerSideProps, GetServerSidePropsContext } from 'next';
 import type { GetServerSideProps, GetServerSidePropsContext } from 'next';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 import { serverSideTranslations } from 'next-i18next/serverSideTranslations';
 import { serverSideTranslations } from 'next-i18next/serverSideTranslations';
@@ -9,7 +10,6 @@ import SearchResultLayout from '~/components/Layout/SearchResultLayout';
 import { DrawioViewerScript } from '~/components/Script/DrawioViewerScript';
 import { DrawioViewerScript } from '~/components/Script/DrawioViewerScript';
 import type { CrowiRequest } from '~/interfaces/crowi-request';
 import type { CrowiRequest } from '~/interfaces/crowi-request';
 import type { RendererConfig } from '~/interfaces/services/renderer';
 import type { RendererConfig } from '~/interfaces/services/renderer';
-import type { IUser, IUserHasId } from '~/interfaces/user';
 import {
 import {
   useCsrfToken, useCurrentUser, useIsContainerFluid, useIsSearchPage, useIsSearchScopeChildrenAsDefault,
   useCsrfToken, useCurrentUser, useIsContainerFluid, useIsSearchPage, useIsSearchScopeChildrenAsDefault,
   useIsSearchServiceConfigured, useIsSearchServiceReachable, useRendererConfig, useShowPageLimitationL, useGrowiCloudUri,
   useIsSearchServiceConfigured, useIsSearchServiceReachable, useRendererConfig, useShowPageLimitationL, useGrowiCloudUri,

+ 1 - 1
apps/app/src/server/models/interfaces/page-operation.ts

@@ -1,4 +1,4 @@
-import { PageGrant } from '~/interfaces/page';
+import { PageGrant } from '@growi/core';
 
 
 import { ObjectIdLike } from '../../interfaces/mongoose-utils';
 import { ObjectIdLike } from '../../interfaces/mongoose-utils';
 
 

+ 1 - 1
apps/app/src/server/models/obsolete-page.js

@@ -1,7 +1,7 @@
+import { PageGrant } from '@growi/core';
 import { templateChecker, pagePathUtils, pathUtils } from '@growi/core/dist/utils';
 import { templateChecker, pagePathUtils, pathUtils } from '@growi/core/dist/utils';
 import escapeStringRegexp from 'escape-string-regexp';
 import escapeStringRegexp from 'escape-string-regexp';
 
 
-import { PageGrant } from '~/interfaces/page';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 
 

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

@@ -1,11 +1,11 @@
 
 
+import { PageGrant } from '@growi/core';
 import { ErrorV3 } from '@growi/core/dist/models';
 import { ErrorV3 } from '@growi/core/dist/models';
 import { isCreatablePage, isTrashPage } from '@growi/core/dist/utils/page-path-utils';
 import { isCreatablePage, isTrashPage } from '@growi/core/dist/utils/page-path-utils';
 import { normalizePath, addHeadingSlash, attachTitleHeader } from '@growi/core/dist/utils/path-utils';
 import { normalizePath, addHeadingSlash, attachTitleHeader } from '@growi/core/dist/utils/path-utils';
 
 
 import { SupportedTargetModel, SupportedAction } from '~/interfaces/activity';
 import { SupportedTargetModel, SupportedAction } from '~/interfaces/activity';
 import { subscribeRuleNames } from '~/interfaces/in-app-notification';
 import { subscribeRuleNames } from '~/interfaces/in-app-notification';
-import { PageGrant } from '~/interfaces/page';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 import { generateAddActivityMiddleware } from '../../middlewares/add-activity';
 import { generateAddActivityMiddleware } from '../../middlewares/add-activity';

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

@@ -1,13 +1,12 @@
 import path from 'path';
 import path from 'path';
 
 
 import { Lang } from '@growi/core';
 import { Lang } from '@growi/core';
+import type { IPage, IUser } from '@growi/core';
 import { addSeconds } from 'date-fns';
 import { addSeconds } from 'date-fns';
 import ExtensibleCustomError from 'extensible-custom-error';
 import ExtensibleCustomError from 'extensible-custom-error';
 import fs from 'graceful-fs';
 import fs from 'graceful-fs';
 import mongoose from 'mongoose';
 import mongoose from 'mongoose';
 
 
-import type { IPage } from '~/interfaces/page';
-import type { IUser } from '~/interfaces/user';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 import { generateConfigsForInstalling } from '../models/config';
 import { generateConfigsForInstalling } from '../models/config';

+ 1 - 2
apps/app/src/server/util/createRedirectToForUnauthenticated.ts

@@ -1,5 +1,4 @@
-import { USER_STATUS } from '~/interfaces/user';
-import type { IUserStatus } from '~/interfaces/user';
+import { USER_STATUS, type IUserStatus } from '@growi/core';
 
 
 export const createRedirectToForUnauthenticated = (userStatus: IUserStatus): string | null => {
 export const createRedirectToForUnauthenticated = (userStatus: IUserStatus): string | null => {
   switch (userStatus) {
   switch (userStatus) {

+ 2 - 4
apps/app/src/stores/page.tsx

@@ -4,6 +4,8 @@ import type {
   Ref, Nullable,
   Ref, Nullable,
   IPageInfoForEntity, IPagePopulatedToShowRevision,
   IPageInfoForEntity, IPagePopulatedToShowRevision,
   SWRInfinitePageRevisionsResponse,
   SWRInfinitePageRevisionsResponse,
+  IPageInfo, IPageInfoForOperation,
+  IRevision, IRevisionHasId,
 } from '@growi/core';
 } from '@growi/core';
 import { isClient, pagePathUtils } from '@growi/core/dist/utils';
 import { isClient, pagePathUtils } from '@growi/core/dist/utils';
 import useSWR, { mutate, useSWRConfig, type SWRResponse } from 'swr';
 import useSWR, { mutate, useSWRConfig, type SWRResponse } from 'swr';
@@ -13,11 +15,7 @@ import useSWRMutation, { type SWRMutationResponse } from 'swr/mutation';
 
 
 import { apiGet } from '~/client/util/apiv1-client';
 import { apiGet } from '~/client/util/apiv1-client';
 import { apiv3Get } from '~/client/util/apiv3-client';
 import { apiv3Get } from '~/client/util/apiv3-client';
-import type {
-  IPageInfo, IPageInfoForOperation,
-} from '~/interfaces/page';
 import type { IRecordApplicableGrant, IResIsGrantNormalized } from '~/interfaces/page-grant';
 import type { IRecordApplicableGrant, IResIsGrantNormalized } from '~/interfaces/page-grant';
-import type { IRevision, IRevisionHasId } from '~/interfaces/revision';
 
 
 import type { IPageTagsInfo } from '../interfaces/tag';
 import type { IPageTagsInfo } from '../interfaces/tag';
 
 

+ 1 - 2
apps/app/test/integration/models/v5.page.test.js

@@ -1,7 +1,6 @@
+import { PageGrant } from '@growi/core';
 import mongoose from 'mongoose';
 import mongoose from 'mongoose';
 
 
-import { PageGrant } from '~/interfaces/page';
-
 import { getInstance } from '../setup-crowi';
 import { getInstance } from '../setup-crowi';
 
 
 describe('Page', () => {
 describe('Page', () => {

+ 1 - 1
apps/app/test/integration/service/page-grant.test.js

@@ -1,6 +1,6 @@
+import { PageGrant } from '@growi/core';
 import mongoose from 'mongoose';
 import mongoose from 'mongoose';
 
 
-import { PageGrant } from '~/interfaces/page';
 import UserGroup from '~/server/models/user-group';
 import UserGroup from '~/server/models/user-group';
 
 
 import { getInstance } from '../setup-crowi';
 import { getInstance } from '../setup-crowi';