diff --git a/.prettierignore b/.prettierignore index 14540d33ad..bbb1c7fd58 100644 --- a/.prettierignore +++ b/.prettierignore @@ -4,5 +4,4 @@ dist build .strapi /.nx/cache - -/.nx/workspace-data \ No newline at end of file +/.nx/workspace-data diff --git a/packages/core/admin/admin/src/index.ts b/packages/core/admin/admin/src/index.ts index d50ed31177..40742622a8 100644 --- a/packages/core/admin/admin/src/index.ts +++ b/packages/core/admin/admin/src/index.ts @@ -43,7 +43,7 @@ export { useHistory } from './features/BackButton'; * Hooks */ export { useInjectReducer } from './hooks/useInjectReducer'; -export { useAPIErrorHandler, type ApiError } from './hooks/useAPIErrorHandler'; +export { useAPIErrorHandler } from './hooks/useAPIErrorHandler'; export { useQueryParams } from './hooks/useQueryParams'; export { useFetchClient } from './hooks/useFetchClient'; export { useFocusInputField } from './hooks/useFocusInputField'; @@ -71,14 +71,7 @@ export type { RBACContext, RBACMiddleware } from './core/apis/rbac'; * Utils */ export { translatedErrors } from './utils/translatedErrors'; -export { getFetchClient, isFetchError, FetchError } from './utils/getFetchClient'; -export type { - ErrorResponse, - FetchClient, - FetchConfig, - FetchOptions, - FetchResponse, -} from './utils/getFetchClient'; +export * from './utils/getFetchClient'; export * from './utils/baseQuery'; export * from './services/api'; export type { CMAdminConfiguration } from './types/adminConfiguration'; diff --git a/packages/core/admin/ee/server/src/audit-logs/services/__tests__/audit-logs.test.ts b/packages/core/admin/ee/server/src/audit-logs/services/__tests__/audit-logs.test.ts index 17799fef63..707ad35ce8 100644 --- a/packages/core/admin/ee/server/src/audit-logs/services/__tests__/audit-logs.test.ts +++ b/packages/core/admin/ee/server/src/audit-logs/services/__tests__/audit-logs.test.ts @@ -1,5 +1,4 @@ import { createAuditLogsLifecycleService } from '../lifecycles'; -import createEventHub from '../../../../../../../core/src/services/event-hub'; import { scheduleJob } from 'node-schedule'; import '@strapi/types'; @@ -51,7 +50,16 @@ describe('Audit logs service', () => { }, }, eventHub: { - ...createEventHub(), + subs: {} as Record unknown>, + emit(eventName: string, ...args: unknown[]) { + this.subs[eventName](...args); + }, + on(eventName: string, func: (...args: unknown[]) => unknown) { + this.subs[eventName] = func; + return () => { + delete this.subs[eventName]; + }; + }, subscribe: mockSubscribe, }, hook: () => ({ @@ -71,6 +79,9 @@ describe('Audit logs service', () => { // Should not subscribe to events at first const lifecycle = createAuditLogsLifecycleService(strapi); await lifecycle.register(); + const destroySpy = jest.spyOn(lifecycle, 'destroy'); + const registerSpy = jest.spyOn(lifecycle, 'register'); + expect(mockSubscribe).not.toHaveBeenCalled(); // Should subscribe to events when license gets enabled @@ -83,10 +94,9 @@ describe('Audit logs service', () => { jest.mocked(strapi.ee.features.isEnabled).mockImplementationOnce(() => false); await strapi.eventHub.emit('ee.disable'); expect(mockSubscribe).not.toHaveBeenCalled(); + expect(destroySpy).toHaveBeenCalled(); // Should recreate the service when license updates - const destroySpy = jest.spyOn(lifecycle, 'destroy'); - const registerSpy = jest.spyOn(lifecycle, 'register'); await strapi.eventHub.emit('ee.update'); expect(destroySpy).toHaveBeenCalled(); expect(registerSpy).toHaveBeenCalled(); diff --git a/packages/core/core/package.json b/packages/core/core/package.json index 8f53cdda55..a88b157dc5 100644 --- a/packages/core/core/package.json +++ b/packages/core/core/package.json @@ -23,6 +23,10 @@ "url": "https://strapi.io" } ], + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "source": "./src/index.ts", + "types": "./dist/index.d.ts", "exports": { ".": { "types": "./dist/index.d.ts", diff --git a/packages/core/core/src/core-api/service/__tests__/index.test.ts b/packages/core/core/src/core-api/service/__tests__/index.test.ts index 48fd2df579..f3a73aebce 100644 --- a/packages/core/core/src/core-api/service/__tests__/index.test.ts +++ b/packages/core/core/src/core-api/service/__tests__/index.test.ts @@ -1,9 +1,9 @@ -import type { Schema } from '@strapi/types'; +import type { Struct } from '@strapi/types'; import { createService } from '../index'; import { CollectionTypeService } from '../collection-type'; import { SingleTypeService } from '../single-type'; -const singleType: Schema.SingleType = { +const singleType: Struct.SingleTypeSchema = { kind: 'singleType', modelType: 'contentType', uid: 'api::testModel.testModel', @@ -20,10 +20,12 @@ const singleType: Schema.SingleType = { describe('Default Service', () => { describe('Collection Type', () => { test('Creates default actions', () => { - const contentType: Schema.ContentType = { + const contentType: Struct.ContentTypeSchema = { kind: 'collectionType', modelType: 'contentType', - uid: 'testModel', + uid: 'api::testModel.testModel', + globalId: 'testModel', + modelName: 'testModel', attributes: {}, info: { singularName: 'test-model', diff --git a/packages/core/core/src/services/document-service/transform/__tests__/utils.ts b/packages/core/core/src/services/document-service/transform/__tests__/utils.ts index e4d1e7690a..965dac4ef4 100644 --- a/packages/core/core/src/services/document-service/transform/__tests__/utils.ts +++ b/packages/core/core/src/services/document-service/transform/__tests__/utils.ts @@ -1,7 +1,7 @@ -import type { Schema, Common } from '@strapi/types'; +import type { Schema, Internal } from '@strapi/types'; const createSchemaFromAttributes = ( - uid: Common.UID.ContentType, + uid: Internal.UID.ContentType, attributes: Schema.Attributes, singularName?: string, pluralName?: string, @@ -26,9 +26,9 @@ const createSchemaFromAttributes = ( }; }; -export const CATEGORY_UID = 'api::category.category' as Common.UID.ContentType; -export const PRODUCT_UID = 'api::product.product' as Common.UID.ContentType; -export const SHOP_UID = 'api::shop.shop' as Common.UID.ContentType; +export const CATEGORY_UID = 'api::category.category' as Internal.UID.ContentType; +export const PRODUCT_UID = 'api::product.product' as Internal.UID.ContentType; +export const SHOP_UID = 'api::shop.shop' as Internal.UID.ContentType; export const models: Record = { [CATEGORY_UID]: createSchemaFromAttributes( diff --git a/packages/core/core/src/utils/update-notifier/index.ts b/packages/core/core/src/utils/update-notifier/index.ts index 5da7231003..1b64f85c3e 100644 --- a/packages/core/core/src/utils/update-notifier/index.ts +++ b/packages/core/core/src/utils/update-notifier/index.ts @@ -7,7 +7,6 @@ import chalk from 'chalk'; import { env } from '@strapi/utils'; import type { Core } from '@strapi/types'; -// eslint-disable-next-line @typescript-eslint/no-var-requires import pkg from '../../../package.json'; const CHECK_INTERVAL = 1000 * 60 * 60 * 24 * 1; // 1 day diff --git a/packages/core/review-workflows/admin/src/utils/cm-hooks.ts b/packages/core/review-workflows/admin/src/utils/cm-hooks.ts index 5614419657..ff27b14474 100644 --- a/packages/core/review-workflows/admin/src/utils/cm-hooks.ts +++ b/packages/core/review-workflows/admin/src/utils/cm-hooks.ts @@ -1,5 +1,3 @@ -/* eslint-disable check-file/filename-naming-convention */ - import { REVIEW_WORKFLOW_COLUMNS } from '../routes/content-manager/model/constants'; import type { ListFieldLayout, ListLayout } from '@strapi/content-manager/strapi-admin'; diff --git a/packages/core/strapi/src/cli/commands/version.ts b/packages/core/strapi/src/cli/commands/version.ts index 6f531c939d..94a290db24 100644 --- a/packages/core/strapi/src/cli/commands/version.ts +++ b/packages/core/strapi/src/cli/commands/version.ts @@ -11,8 +11,6 @@ const command: StrapiCommand = () => { return createCommand('version') .description('Output the version of Strapi') .action(() => { - // eslint-disable-next-line @typescript-eslint/no-var-requires - process.stdout.write(`${version}\n`); process.exit(0); }); diff --git a/packages/core/upload/server/src/controllers/validation/admin/folder-file.ts b/packages/core/upload/server/src/controllers/validation/admin/folder-file.ts index bbf6f1b41d..0987ae9f18 100644 --- a/packages/core/upload/server/src/controllers/validation/admin/folder-file.ts +++ b/packages/core/upload/server/src/controllers/validation/admin/folder-file.ts @@ -4,6 +4,8 @@ import { FOLDER_MODEL_UID } from '../../../constants'; import { folderExists } from './utils'; import { isFolderOrChild } from '../../utils/folders'; +import type { Folder } from '../../../types'; + const validateDeleteManyFoldersFilesSchema = yup .object() .shape({ @@ -67,14 +69,14 @@ const validateMoveFoldersNotInsideThemselvesSchema = yup where: { id: destinationFolderId }, }); - const folders = await strapi.db.query(FOLDER_MODEL_UID).findMany({ + const folders: Folder[] = await strapi.db.query(FOLDER_MODEL_UID).findMany({ select: ['name', 'path'], where: { id: { $in: folderIds } }, }); const unmovableFoldersNames = folders - .filter((folder: any) => isFolderOrChild(destinationFolder, folder)) - .map((f: any) => f.name); + .filter((folder) => isFolderOrChild(destinationFolder, folder)) + .map((f) => f.name); if (unmovableFoldersNames.length > 0) { return this.createError({ diff --git a/packages/utils/upgrade/package.json b/packages/utils/upgrade/package.json index 3a72c60936..f886b06aa7 100644 --- a/packages/utils/upgrade/package.json +++ b/packages/utils/upgrade/package.json @@ -49,7 +49,7 @@ "resources" ], "scripts": { - "build": "run-p build:code build:types", + "build": "run -T npm-run-all clean --parallel build:code build:types", "build:code": "run -T rollup -c", "build:types": "run -T tsc -p tsconfig.build.json --emitDeclarationOnly", "clean": "run -T rimraf ./dist", diff --git a/tests/api/core/strapi/filtering.test.api.js b/tests/api/core/strapi/filtering.test.api.js index 211ac9cbd7..30b50a73ec 100644 --- a/tests/api/core/strapi/filtering.test.api.js +++ b/tests/api/core/strapi/filtering.test.api.js @@ -114,7 +114,7 @@ describe('Filtering API', () => { await builder.cleanup(); }); - describe.only('Basic filters', () => { + describe('Basic filters', () => { describe('Filter $and', () => { test('Should return an array with matching entities', async () => { const res = await rq({