diff --git a/.changeset/clean-dots-pull.md b/.changeset/clean-dots-pull.md new file mode 100644 index 0000000000..ff36135154 --- /dev/null +++ b/.changeset/clean-dots-pull.md @@ -0,0 +1,5 @@ +--- +"@comet/cms-api": patch +--- + +Add `BlocksBlockInputInterface` to the public API diff --git a/.changeset/four-forks-call.md b/.changeset/four-forks-call.md new file mode 100644 index 0000000000..332f7cdbab --- /dev/null +++ b/.changeset/four-forks-call.md @@ -0,0 +1,5 @@ +--- +"@comet/admin-date-time": patch +--- + +Add `DatePickerNavigationClassKey`, `DatePickerNavigationProps`, `DateTimePickerClassKey`, `FinalFormTimePickerProps`, `TimePickerClassKey`, and `TimeRangePickerClassKey` to the public API diff --git a/.changeset/khaki-zebras-roll.md b/.changeset/khaki-zebras-roll.md new file mode 100644 index 0000000000..07be658e0b --- /dev/null +++ b/.changeset/khaki-zebras-roll.md @@ -0,0 +1,5 @@ +--- +"@comet/cms-site": patch +--- + +Add `AdminMessageType`, `IAdminContentScopeMessage`, `IAdminGraphQLApiUrlMessage`, `IAdminHoverComponentMessage`, `IAdminShowOnlyVisibleMessage`, `IFrameHoverComponentMessage`, `IFrameLocationMessage`, `IFrameMessage`, `IFrameMessageType`, `IFrameOpenLinkMessage`, `IFrameSelectComponentMessage`, and `IReadyIFrameMessage` to the public API diff --git a/.changeset/lucky-books-thank.md b/.changeset/lucky-books-thank.md new file mode 100644 index 0000000000..3af0a0c382 --- /dev/null +++ b/.changeset/lucky-books-thank.md @@ -0,0 +1,5 @@ +--- +"@comet/admin-color-picker": patch +--- + +Add `ColorPickerNoColorPreviewProps` to the public API diff --git a/.changeset/sharp-apes-visit.md b/.changeset/sharp-apes-visit.md new file mode 100644 index 0000000000..1a78b57b07 --- /dev/null +++ b/.changeset/sharp-apes-visit.md @@ -0,0 +1,5 @@ +--- +"@comet/admin": patch +--- + +Add `AppHeaderFillSpaceProps`, `ClearInputAdornmentClassKey`, `ToolbarActionButtonClassKey`, `ToolbarActionButton`, `CrudMoreActionsMenuClassKey`, `GridActionsColDef`, `GridBaseColDef`, `GridSingleSelectColDef`, and `TableDndOrderClassKey` to the public API diff --git a/.changeset/spicy-bottles-admire.md b/.changeset/spicy-bottles-admire.md new file mode 100644 index 0000000000..07be658e0b --- /dev/null +++ b/.changeset/spicy-bottles-admire.md @@ -0,0 +1,5 @@ +--- +"@comet/cms-site": patch +--- + +Add `AdminMessageType`, `IAdminContentScopeMessage`, `IAdminGraphQLApiUrlMessage`, `IAdminHoverComponentMessage`, `IAdminShowOnlyVisibleMessage`, `IFrameHoverComponentMessage`, `IFrameLocationMessage`, `IFrameMessage`, `IFrameMessageType`, `IFrameOpenLinkMessage`, `IFrameSelectComponentMessage`, and `IReadyIFrameMessage` to the public API diff --git a/.changeset/wicked-coins-work.md b/.changeset/wicked-coins-work.md new file mode 100644 index 0000000000..567fbff8c9 --- /dev/null +++ b/.changeset/wicked-coins-work.md @@ -0,0 +1,5 @@ +--- +"@comet/blocks-admin": patch +--- + +Add `BlocksBlockOutput`, `ListBlockOutput`, `OneOfBlockOutput`, `OneOfBlockPreviewState`, and `OptionalBlockOutput` to the public API diff --git a/demo/admin/codegen.ts b/demo/admin/codegen.ts index 89fe389d7c..4cb02b0d4a 100644 --- a/demo/admin/codegen.ts +++ b/demo/admin/codegen.ts @@ -1,9 +1,10 @@ +import { resolve } from "node:path"; + import { CodegenConfig } from "@graphql-codegen/cli"; import { readFileSync } from "fs"; import { buildSchema } from "graphql"; -const schema = buildSchema(readFileSync("./schema.gql").toString()); - +const schema = buildSchema(readFileSync(resolve(__dirname, "./schema.gql")).toString()); const rootBlocks = Object.keys(schema.getTypeMap()).filter((type) => type.endsWith("BlockData") || type.endsWith("BlockInput")); const config: CodegenConfig = { diff --git a/demo/admin/package.json b/demo/admin/package.json index 6a025a6953..a041620793 100644 --- a/demo/admin/package.json +++ b/demo/admin/package.json @@ -27,24 +27,18 @@ "@comet/admin": "workspace:*", "@comet/admin-date-time": "workspace:*", "@comet/admin-icons": "workspace:*", - "@comet/admin-react-select": "workspace:*", - "@comet/admin-rte": "workspace:*", "@comet/admin-theme": "workspace:*", "@comet/blocks-admin": "workspace:*", "@comet/cms-admin": "workspace:*", "@emotion/react": "^11.9.3", "@emotion/styled": "^11.9.3", "@fontsource-variable/roboto-flex": "^5.0.14", - "@mui/lab": "^6.0.0-beta.10", "@mui/material": "^6.0.0", "@mui/system": "^6.0.0", "@mui/x-data-grid": "^7.22.3", "@mui/x-data-grid-pro": "^7.22.3", "change-case": "^5.2.0", "dnd-core": "^16.0.0", - "draft-js": "^0.11.0", - "exceljs": "^4.4.0", - "file-saver": "^2.0.0", "final-form": "^4.0.0", "graphql": "^15.0.0", "graphql-tag": "^2.0.0", @@ -57,10 +51,8 @@ "react-dom": "^17.0.2", "react-final-form": "^6.0.0", "react-intl": "^6.0.0", - "react-is": "^17.0.2", "react-router": "^5.0.0", "react-router-dom": "^5.0.0", - "react-select": "^3.0.0", "use-debounce": "^6.0.0", "uuid": "^9.0.0" }, @@ -68,7 +60,6 @@ "@comet/cli": "workspace:*", "@comet/eslint-config": "workspace:*", "@formatjs/cli": "^6.0.0", - "@gitbeaker/node": "^25.0.0", "@graphql-codegen/add": "^3.0.0", "@graphql-codegen/cli": "^2.0.0", "@graphql-codegen/fragment-matcher": "^2.0.0", @@ -78,19 +69,15 @@ "@graphql-codegen/typescript": "^2.0.0", "@graphql-codegen/typescript-operations": "^2.0.0", "@swc/plugin-emotion": "^2.5.120", - "@types/draft-js": "^0.11.10", "@types/lodash.isequal": "^4.0.0", "@types/node": "^22.0.0", "@types/react": "^17.0.0", "@types/react-dom": "^17.0.0", - "@types/react-is": "^17.0.0", "@types/react-router": "^5.0.0", "@types/react-router-dom": "^5.0.0", - "@types/react-select": "^3.0.0", "@types/uuid": "^7.0.0", "@vitejs/plugin-react-swc": "^3.6.0", "chokidar-cli": "^2.0.0", - "cosmiconfig-toml-loader": "^1.0.0", "dotenv-cli": "^4.0.0", "eslint": "^8.0.0", "eslint-plugin-graphql": "^4.0.0", diff --git a/demo/admin/server/package.json b/demo/admin/server/package.json index ce1c559aed..6c318cbfbd 100644 --- a/demo/admin/server/package.json +++ b/demo/admin/server/package.json @@ -4,10 +4,10 @@ "private": true, "dependencies": { "compression": "^1.7.4", - "express": "^4.18.2" + "express": "^4.18.2", + "helmet": "^7.0.0" }, "scripts": { - "preserve": "envsubst < \"../build/index.html\" > \"/tmp/index.html\" && mv /tmp/index.html ../build/index.html", "serve": "node server.js" } } diff --git a/demo/admin/server/server.js b/demo/admin/server/server.js index 3556476dfb..28ed45ff57 100644 --- a/demo/admin/server/server.js +++ b/demo/admin/server/server.js @@ -1,30 +1,55 @@ /* eslint-disable no-undef */ const express = require("express"); const compression = require("compression"); +const helmet = require("helmet"); +const fs = require("fs"); const app = express(); const port = process.env.APP_PORT ?? 3000; +// Read index.html file +let indexFile = fs.readFileSync("build/index.html", "utf8"); + +// Replace environment variables +indexFile = indexFile.replace(/\$([A-Z_]+)/g, (match, p1) => { + return process.env[p1] || ""; +}); + app.use(compression()); +app.use( + helmet({ + contentSecurityPolicy: { + directives: { + "script-src": ["'self'", "'unsafe-inline'"], + "img-src": ["'self'", "https:", "data:"], + "default-src": ["'self'", "https:"], + "media-src": ["'self'", "https:"], + "style-src": ["'self'", "https:", "'unsafe-inline'"], + "font-src": ["'self'", "https:", "data:"], + }, + }, + xXssProtection: false, + strictTransportSecurity: { + maxAge: 63072000, + includeSubDomains: true, + preload: true, + }, + }), +); app.get("/status/health", (req, res) => { res.send("OK!"); }); -// Serve static build an cache for 30d app.use( - express.static("../build", { + express.static("./build", { setHeaders: (res, path, stat) => { - if (path.endsWith(".html")) { - // Don't cache the index.html at all - // implemented as suggested by https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#preventing_caching - res.setHeader("cache-control", "no-store, max-age: 0"); - } else if (path.endsWith(".js")) { + if (path.endsWith(".js")) { // The js file is static and the index.html uses a parameter as cache buster // implemented as suggested by https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#caching_static_assets res.setHeader("cache-control", "public, max-age=31536000, immutable"); } else { - // Icons and Fonts could be changed over time + // Icons and Fonts could be changed over time, cache for 7d res.setHeader("cache-control", "public, max-age=604800, immutable"); } }, @@ -33,7 +58,9 @@ app.use( // As a fallback, route everything to index.html app.get("*", (req, res) => { - res.sendFile(`index.html`, { root: `${__dirname}/../build/` }); + // Don't cache the index.html at all to make sure applications updates are applied + // implemented as suggested by https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#preventing_storing + res.send(indexFile, { headers: { "cache-control": "no-store" } }); }); app.listen(port, () => { diff --git a/demo/admin/src/common/ContentScopeProvider.tsx b/demo/admin/src/common/ContentScopeProvider.tsx index f64226f90b..bea162e892 100644 --- a/demo/admin/src/common/ContentScopeProvider.tsx +++ b/demo/admin/src/common/ContentScopeProvider.tsx @@ -23,6 +23,7 @@ export function useContentScope(): UseContentScopeApi { // @TODO (maybe): make factory in library to statically create Provider +/** @knipignore */ export function useContentScopeConfig(p: ContentScopeConfigProps): void { return useContentScopeConfigLibrary(p); } diff --git a/demo/admin/src/config.tsx b/demo/admin/src/config.tsx index 44d36bc363..88f2633632 100644 --- a/demo/admin/src/config.tsx +++ b/demo/admin/src/config.tsx @@ -1,4 +1,3 @@ -import { SiteConfig } from "@comet/cms-admin"; import { createContext, PropsWithChildren, useContext } from "react"; import cometConfig from "./comet-config.json"; @@ -26,9 +25,7 @@ export function createConfig() { }; } -export type SitesConfig = Record; - -export type Config = ReturnType; +type Config = ReturnType; const ConfigContext = createContext(undefined); @@ -36,6 +33,7 @@ export function ConfigProvider({ config, children }: PropsWithChildren<{ config: return {children}; } +/** @knipignore */ export function useConfig(): Config { const config = useContext(ConfigContext); diff --git a/demo/admin/src/documents/predefinedPages/EditPredefinedPage.gql.ts b/demo/admin/src/documents/predefinedPages/EditPredefinedPage.gql.ts index 36e3ac58e0..118be2665a 100644 --- a/demo/admin/src/documents/predefinedPages/EditPredefinedPage.gql.ts +++ b/demo/admin/src/documents/predefinedPages/EditPredefinedPage.gql.ts @@ -1,6 +1,6 @@ import { gql } from "@apollo/client"; -export const predefinedPageFormFragment = gql` +const predefinedPageFormFragment = gql` fragment PredefinedPageForm on PredefinedPage { type } diff --git a/demo/admin/src/news/generated/NewsForm.gql.ts b/demo/admin/src/news/generated/NewsForm.gql.ts index 1bd9172e08..223514d659 100644 --- a/demo/admin/src/news/generated/NewsForm.gql.ts +++ b/demo/admin/src/news/generated/NewsForm.gql.ts @@ -26,14 +26,6 @@ export const newsFormQuery = gql` ${newsFormFragment} `; -export const newsFormCheckForChangesQuery = gql` - query NewsFormCheckForChanges($id: ID!) { - news(id: $id) { - updatedAt - } - } -`; - export const createNewsMutation = gql` mutation CreateNews($scope: NewsContentScopeInput!, $input: NewsInput!) { createNews(scope: $scope, input: $input) { diff --git a/demo/admin/src/products/future/generated/CreateCapProductForm.gql.tsx b/demo/admin/src/products/future/generated/CreateCapProductForm.gql.tsx index f68f9d1dc9..006559edf9 100644 --- a/demo/admin/src/products/future/generated/CreateCapProductForm.gql.tsx +++ b/demo/admin/src/products/future/generated/CreateCapProductForm.gql.tsx @@ -2,7 +2,7 @@ // You may choose to use this file as scaffold by moving this file out of generated folder and removing this comment. import { gql } from "@apollo/client"; -export const productFormFragment = gql` +const productFormFragment = gql` fragment CreateCapProductFormDetails on Product { title slug diff --git a/demo/admin/src/products/generated/ProductForm.gql.ts b/demo/admin/src/products/generated/ProductForm.gql.ts index a964dbd26b..e9de2c313f 100644 --- a/demo/admin/src/products/generated/ProductForm.gql.ts +++ b/demo/admin/src/products/generated/ProductForm.gql.ts @@ -29,14 +29,6 @@ export const productFormQuery = gql` ${productFormFragment} `; -export const productFormCheckForChangesQuery = gql` - query ProductFormCheckForChanges($id: ID!) { - product(id: $id) { - updatedAt - } - } -`; - export const createProductMutation = gql` mutation CreateProduct($input: ProductInput!) { createProduct(input: $input) { diff --git a/demo/admin/src/theme.ts b/demo/admin/src/theme.ts index 320490e163..728c17aaf3 100644 --- a/demo/admin/src/theme.ts +++ b/demo/admin/src/theme.ts @@ -1,4 +1,3 @@ import { createCometTheme } from "@comet/admin-theme"; -import type {} from "@mui/lab/themeAugmentation"; export const theme = createCometTheme(); diff --git a/demo/api/block-meta.json b/demo/api/block-meta.json index 2537a8a4df..1c48d2febe 100644 --- a/demo/api/block-meta.json +++ b/demo/api/block-meta.json @@ -589,92 +589,6 @@ } ] }, - { - "name": "FooterLinkSection", - "fields": [ - { - "name": "title", - "kind": "String", - "nullable": false - }, - { - "name": "links", - "kind": "Block", - "block": "LinkList", - "nullable": false - } - ], - "inputFields": [ - { - "name": "title", - "kind": "String", - "nullable": false - }, - { - "name": "links", - "kind": "Block", - "block": "LinkList", - "nullable": false - } - ] - }, - { - "name": "FooterTopLinks", - "fields": [ - { - "name": "blocks", - "kind": "NestedObjectList", - "object": { - "fields": [ - { - "name": "key", - "kind": "String", - "nullable": false - }, - { - "name": "visible", - "kind": "Boolean", - "nullable": false - }, - { - "name": "props", - "kind": "Block", - "block": "FooterLinkSection", - "nullable": false - } - ] - }, - "nullable": false - } - ], - "inputFields": [ - { - "name": "blocks", - "kind": "NestedObjectList", - "object": { - "fields": [ - { - "name": "key", - "kind": "String", - "nullable": false - }, - { - "name": "visible", - "kind": "Boolean", - "nullable": false - }, - { - "name": "props", - "kind": "Block", - "block": "FooterLinkSection", - "nullable": false - } - ] - }, - "nullable": false - } - ] - }, { "name": "FullWidthImage", "fields": [ diff --git a/demo/api/package.json b/demo/api/package.json index 023cb323fc..5b7a15d183 100644 --- a/demo/api/package.json +++ b/demo/api/package.json @@ -37,11 +37,9 @@ "@nestjs/common": "^10.4.8", "@nestjs/core": "^10.4.8", "@nestjs/graphql": "^12.2.1", - "@nestjs/passport": "^10.0.3", "@nestjs/platform-express": "^10.4.8", "@opentelemetry/api": "^1.9.0", "@opentelemetry/auto-instrumentations-node": "^0.50.0", - "@opentelemetry/core": "^1.26.0", "@opentelemetry/exporter-prometheus": "^0.53.0", "@opentelemetry/exporter-trace-otlp-http": "^0.53.0", "@opentelemetry/sdk-node": "^0.53.0", @@ -56,35 +54,28 @@ "graphql-scalars": "^1.23.0", "helmet": "^4.6.0", "nestjs-console": "^9.0.0", - "passport": "^0.4.0", "reflect-metadata": "^0.1.13", "response-time": "^2.3.2", "rimraf": "^3.0.0", "rxjs": "^7.0.0", "slugify": "^1.0.0", - "uuid": "^9.0.0", - "webpack": "^5.64.2" + "uuid": "^9.0.0" }, "devDependencies": { "@comet/eslint-config": "workspace:*", "@nestjs/cli": "^10.4.7", "@nestjs/schematics": "^10.2.3", - "@nestjs/testing": "^10.4.8", "@types/compression": "^1.0.0", "@types/cookie-parser": "^1.0.0", - "@types/draft-js": "^0.11.10", "@types/express": "^4.0.0", "@types/faker": "^5.0.0", "@types/node": "^22.0.0", - "@types/passport": "^1.0.0", "@types/response-time": "^2.3.8", - "@types/rimraf": "^3.0.0", "@types/uuid": "^8.0.0", "dotenv-cli": "^7.0.0", "eslint": "^8.0.0", "npm-run-all": "^4.1.5", "prettier": "^2.0.0", - "ts-loader": "^8.0.0", "ts-node": "^10.0.0", "tsconfig-paths": "^3.0.0", "typescript": "^4.0.0" diff --git a/demo/api/schema.gql b/demo/api/schema.gql index 6eb2a76a10..0419abc899 100644 --- a/demo/api/schema.gql +++ b/demo/api/schema.gql @@ -485,6 +485,7 @@ type ProductColor implements DocumentInterface { name: String! hexCode: String! createdAt: DateTime! + product: Product! } type ProductStatistics { @@ -510,6 +511,16 @@ type ProductTag { products: [Product!]! } +type ProductVariant { + id: ID! + name: String! + position: Int! + createdAt: DateTime! + updatedAt: DateTime! + product: Product! + image: DamImageBlockData! +} + type ProductDiscounts { quantity: Float! price: Float! @@ -574,16 +585,6 @@ A date string, such as 2007-12-03, compliant with the `full-date` format outline """ scalar Date -type ProductVariant { - id: ID! - name: String! - position: Int! - createdAt: DateTime! - updatedAt: DateTime! - product: Product! - image: DamImageBlockData! -} - type ManufacturerCountry { id: String! used: Float! diff --git a/demo/api/src/footer/blocks/footer-content.block.ts b/demo/api/src/footer/blocks/footer-content.block.ts index 2d2684fe80..7242e43525 100644 --- a/demo/api/src/footer/blocks/footer-content.block.ts +++ b/demo/api/src/footer/blocks/footer-content.block.ts @@ -7,16 +7,11 @@ import { ChildBlock, ChildBlockInput, createBlock, - createListBlock, ExtractBlockInput, } from "@comet/cms-api"; import { LinkListBlock } from "@src/common/blocks/link-list.block"; import { IsOptional, IsString } from "class-validator"; -import { FooterLinkSectionBlock } from "./footer-link-section.block"; - -export const FooterTopLinksBlock = createListBlock({ block: FooterLinkSectionBlock }, "FooterTopLinks"); - class FooterBlockData extends BlockData { @ChildBlock(LinkListBlock) popularTopicsLinks: BlockDataInterface; diff --git a/demo/api/src/footer/blocks/footer-link-section.block.ts b/demo/api/src/footer/blocks/footer-link-section.block.ts deleted file mode 100644 index 14604e06ef..0000000000 --- a/demo/api/src/footer/blocks/footer-link-section.block.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { - BlockData, - BlockDataInterface, - BlockField, - BlockInput, - blockInputToData, - ChildBlock, - ChildBlockInput, - createBlock, - ExtractBlockInput, -} from "@comet/cms-api"; -import { LinkListBlock } from "@src/common/blocks/link-list.block"; -import { IsOptional, IsString, ValidateNested } from "class-validator"; - -class FooterLinkSectionBlockData extends BlockData { - @BlockField() - title?: string; - - @ChildBlock(LinkListBlock) - links: BlockDataInterface; -} - -class FooterLinkSectionBlockInput extends BlockInput { - @BlockField() - @IsOptional() - @IsString() - title?: string; - - @ChildBlockInput(LinkListBlock) - @ValidateNested() - links: ExtractBlockInput; - - transformToBlockData(): FooterLinkSectionBlockData { - return blockInputToData(FooterLinkSectionBlockData, this); - } -} - -export const FooterLinkSectionBlock = createBlock(FooterLinkSectionBlockData, FooterLinkSectionBlockInput, "FooterLinkSection"); diff --git a/demo/api/src/news/blocks/news-list.block.ts b/demo/api/src/news/blocks/news-list.block.ts index ef8f3105f8..fa52568444 100644 --- a/demo/api/src/news/blocks/news-list.block.ts +++ b/demo/api/src/news/blocks/news-list.block.ts @@ -1,7 +1,7 @@ import { BlockData, BlockField, BlockInput, blockInputToData, createBlock } from "@comet/cms-api"; import { IsUUID } from "class-validator"; -export class NewsListBlockData extends BlockData { +class NewsListBlockData extends BlockData { @BlockField({ type: "string", array: true }) ids: string[]; } diff --git a/demo/api/src/open-telemetry/metrics.ts b/demo/api/src/open-telemetry/metrics.ts index c44e433adb..7b78ec6f4a 100644 --- a/demo/api/src/open-telemetry/metrics.ts +++ b/demo/api/src/open-telemetry/metrics.ts @@ -9,7 +9,7 @@ import { UpDownCounter, } from "@opentelemetry/api"; -export enum MetricType { +enum MetricType { "Counter" = "Counter", "UpDownCounter" = "UpDownCounter", "Histogram" = "Histogram", @@ -17,10 +17,10 @@ export enum MetricType { "ObservableCounter" = "ObservableCounter", "ObservableUpDownCounter" = "ObservableUpDownCounter", } -export type GenericMetric = Counter | UpDownCounter | Histogram | ObservableGauge | ObservableCounter | ObservableUpDownCounter; -export const OTEL_METER_NAME = "nestjs-otel"; +type GenericMetric = Counter | UpDownCounter | Histogram | ObservableGauge | ObservableCounter | ObservableUpDownCounter; +const OTEL_METER_NAME = "nestjs-otel"; -export const meterData: Map = new Map(); +const meterData: Map = new Map(); function getOrCreate(name: string, options: MetricOptions = {}, type: MetricType): GenericMetric | undefined { let metric = meterData.get(name); @@ -40,6 +40,8 @@ export function getOrCreateCounter(name: string, options: MetricOptions = {}): C return getOrCreate(name, options, MetricType.Counter) as Counter; } +// TODO: metric functions below are here for demonstration purpose. More metrics will be added in the future which will probably need this functions. +/* export function getOrCreateUpDownCounter(name: string, options: MetricOptions = {}): UpDownCounter { return getOrCreate(name, options, MetricType.UpDownCounter) as UpDownCounter; } @@ -55,3 +57,4 @@ export function getOrCreateObservableCounter(name: string, options: MetricOption export function getOrCreateObservableUpDownCounter(name: string, options: MetricOptions = {}): ObservableUpDownCounter { return getOrCreate(name, options, MetricType.ObservableUpDownCounter) as ObservableUpDownCounter; } +*/ diff --git a/demo/api/src/pages/blocks/headline.block.ts b/demo/api/src/pages/blocks/headline.block.ts index 595728f79e..389effe400 100644 --- a/demo/api/src/pages/blocks/headline.block.ts +++ b/demo/api/src/pages/blocks/headline.block.ts @@ -12,7 +12,7 @@ import { import { RichTextBlock } from "@src/common/blocks/rich-text.block"; import { IsEnum, IsOptional, IsString, ValidateNested } from "class-validator"; -export enum HeadlineLevel { +enum HeadlineLevel { HeaderOne = "header-one", HeaderTwo = "header-two", HeaderThree = "header-three", diff --git a/demo/api/src/products/products.module.ts b/demo/api/src/products/products.module.ts index de0570cbef..bf9c8e722b 100644 --- a/demo/api/src/products/products.module.ts +++ b/demo/api/src/products/products.module.ts @@ -1,6 +1,7 @@ import { FileUpload } from "@comet/cms-api"; import { MikroOrmModule } from "@mikro-orm/nestjs"; import { Module } from "@nestjs/common"; +import { ProductColorResolver } from "@src/products/generated/product-color.resolver"; import { ProductVariantsService } from "@src/products/generated/product-variants.service"; import { Manufacturer } from "./entities/manufacturer.entity"; @@ -46,6 +47,7 @@ import { ProductVariantResolver } from "./generated/product-variant.resolver"; ManufacturerResolver, ManufacturerCountryResolver, ProductToTagResolver, + ProductColorResolver, ], exports: [], }) diff --git a/demo/site-pages/codegen.ts b/demo/site-pages/codegen.ts index 827c7acbc5..75bbb9c811 100644 --- a/demo/site-pages/codegen.ts +++ b/demo/site-pages/codegen.ts @@ -1,8 +1,10 @@ +import { resolve } from "node:path"; + import { CodegenConfig } from "@graphql-codegen/cli"; import { readFileSync } from "fs"; import { buildSchema } from "graphql"; -const schema = buildSchema(readFileSync("./schema.gql").toString()); +const schema = buildSchema(readFileSync(resolve(__dirname, "./schema.gql")).toString()); const rootBlocks = Object.keys(schema.getTypeMap()).filter((type) => type.endsWith("BlockData")); diff --git a/demo/site-pages/package.json b/demo/site-pages/package.json index 67c4804482..feec6c916c 100644 --- a/demo/site-pages/package.json +++ b/demo/site-pages/package.json @@ -28,12 +28,6 @@ "@comet/cms-site": "workspace:*", "@formatjs/cli": "^6.0.0", "@opentelemetry/api": "^1.9.0", - "@opentelemetry/auto-instrumentations-node": "^0.50.0", - "@opentelemetry/core": "^1.26.0", - "@opentelemetry/exporter-trace-otlp-http": "^0.53.0", - "@opentelemetry/sdk-node": "^0.53.0", - "express": "^4.0.0", - "fs-extra": "^9.0.0", "graphql": "^15.0.0", "graphql-request": "^3.0.0", "graphql-tag": "^2.12.6", @@ -42,7 +36,6 @@ "react-dom": "^18.2.0", "react-intl": "^6.0.0", "redraft": "^0.10.0", - "sitemap": "^6.0.0", "styled-components": "^6.1.8" }, "devDependencies": { @@ -55,18 +48,14 @@ "@graphql-codegen/near-operation-file-preset": "^2.5.0", "@graphql-codegen/typescript": "^2.0.0", "@graphql-codegen/typescript-operations": "^2.0.0", - "@types/fs-extra": "^9.0.0", "@types/node": "^22.0.0", "@types/react": "^18.2.66", "@types/react-dom": "^18.2.22", "chokidar-cli": "^2.0.0", - "cosmiconfig-toml-loader": "^1.0.0", - "dotenv-cli": "^4.0.0", "eslint": "^8.0.0", "npm-run-all": "^4.1.5", "prettier": "^2.0.0", "rimraf": "^3.0.0", - "tsconfig-paths": "^3.0.0", "typescript": "^4.0.0" } } diff --git a/demo/site-pages/src/blocks/RichTextBlock.sc.ts b/demo/site-pages/src/blocks/RichTextBlock.sc.ts deleted file mode 100644 index b579127014..0000000000 --- a/demo/site-pages/src/blocks/RichTextBlock.sc.ts +++ /dev/null @@ -1,24 +0,0 @@ -import styled, { css } from "styled-components"; - -interface WrapperProps { - colorTheme?: "Default" | "GreyN1" | "GreyN2" | "GreyN3" | "DarkBlue"; -} - -export const Wrapper = styled.div` - ${({ colorTheme }) => - colorTheme === "DarkBlue" && - css` - color: white; - `} - - ${({ colorTheme }) => - colorTheme === "GreyN3" && - css` - color: white; - `} -`; - -export const UnorderedList = styled.ul` - margin: 40px 0; - padding-left: 30px; -`; diff --git a/demo/site-pages/src/blocks/RichTextBlock.tsx b/demo/site-pages/src/blocks/RichTextBlock.tsx index 45f9cf9e33..c92d40f7bd 100644 --- a/demo/site-pages/src/blocks/RichTextBlock.tsx +++ b/demo/site-pages/src/blocks/RichTextBlock.tsx @@ -8,7 +8,7 @@ import { LinkBlock } from "./LinkBlock"; const GreenCustomHeader = ({ children }: PropsWithChildren) =>

{children}

; -export const DefaultStyleLink = styled.a` +const DefaultStyleLink = styled.a` color: ${({ theme }) => theme.colors.primary}; `; diff --git a/demo/site-pages/src/config.ts b/demo/site-pages/src/config.ts index 2b10a9d71a..0c723a490a 100644 --- a/demo/site-pages/src/config.ts +++ b/demo/site-pages/src/config.ts @@ -7,19 +7,3 @@ if (!process.env.NEXT_PUBLIC_SITE_PAGES_DOMAIN) { } else { domain = process.env.NEXT_PUBLIC_SITE_PAGES_DOMAIN; } - -export let languages: string[] = []; - -if (!process.env.NEXT_PUBLIC_SITE_LANGUAGES) { - console.error("Environment variable NEXT_PUBLIC_SITE_LANGUAGES not set, defaulting to []"); -} else { - languages = process.env.NEXT_PUBLIC_SITE_LANGUAGES.split(","); -} - -export let defaultLanguage = ""; - -if (!process.env.NEXT_PUBLIC_SITE_DEFAULT_LANGUAGE) { - console.error('Environment variable NEXT_PUBLIC_SITE_DEFAULT_LANGUAGE not set, defaulting to ""'); -} else { - defaultLanguage = process.env.NEXT_PUBLIC_SITE_DEFAULT_LANGUAGE; -} diff --git a/demo/site-pages/src/pageTypes/Page.tsx b/demo/site-pages/src/pageTypes/Page.tsx index 9d35e2e276..cc340e3f6c 100644 --- a/demo/site-pages/src/pageTypes/Page.tsx +++ b/demo/site-pages/src/pageTypes/Page.tsx @@ -10,7 +10,7 @@ import Head from "next/head"; import { GQLPageQuery } from "./Page.generated"; // @TODO: Scope for menu should also be of type PageTreeNodeScopeInput -export const pageQuery = gql` +const pageQuery = gql` query Page($pageTreeNodeId: ID!, $domain: String!, $language: String!) { pageContent: pageTreeNode(id: $pageTreeNodeId) { document { diff --git a/demo/site-pages/src/theme.ts b/demo/site-pages/src/theme.ts index bd2f464f8d..ed41fccb93 100644 --- a/demo/site-pages/src/theme.ts +++ b/demo/site-pages/src/theme.ts @@ -1,4 +1,4 @@ -export interface Breakpoint { +interface Breakpoint { mediaQuery: string; value: number; } @@ -10,7 +10,7 @@ const createBreakpoint = (value: number): Breakpoint => { }; }; -export type ThemeBreakpoints = { +type ThemeBreakpoints = { b560: Breakpoint; b960: Breakpoint; b1280: Breakpoint; @@ -18,7 +18,7 @@ export type ThemeBreakpoints = { b1920: Breakpoint; }; -export interface Theme { +interface Theme { colors: { primary: string; textPrimary: string; diff --git a/demo/site-pages/src/util/createGraphQLClient.ts b/demo/site-pages/src/util/createGraphQLClient.ts index 87ffb051f2..b1fdfda40a 100644 --- a/demo/site-pages/src/util/createGraphQLClient.ts +++ b/demo/site-pages/src/util/createGraphQLClient.ts @@ -1,6 +1,6 @@ import { GraphQLClient } from "graphql-request"; -export type GraphQLClientOptions = { +type GraphQLClientOptions = { includeInvisiblePages: boolean; includeInvisibleBlocks: boolean; previewDamUrls: boolean; diff --git a/demo/site/codegen.ts b/demo/site/codegen.ts index b2f91d7628..9c3a89b332 100644 --- a/demo/site/codegen.ts +++ b/demo/site/codegen.ts @@ -1,8 +1,10 @@ +import { resolve } from "node:path"; + import { CodegenConfig } from "@graphql-codegen/cli"; import { readFileSync } from "fs"; import { buildSchema } from "graphql"; -const schema = buildSchema(readFileSync("./schema.gql").toString()); +const schema = buildSchema(readFileSync(resolve(__dirname, "./schema.gql")).toString()); const rootBlocks = Object.keys(schema.getTypeMap()).filter((type) => type.endsWith("BlockData")); diff --git a/demo/site/package.json b/demo/site/package.json index 3c010e0aaf..e1693506a4 100644 --- a/demo/site/package.json +++ b/demo/site/package.json @@ -24,13 +24,10 @@ "@next/bundle-analyzer": "^14.2.12", "@opentelemetry/api": "^1.9.0", "@opentelemetry/auto-instrumentations-node": "^0.50.0", - "@opentelemetry/core": "^1.26.0", "@opentelemetry/exporter-prometheus": "^0.53.0", "@opentelemetry/exporter-trace-otlp-http": "^0.53.0", - "@opentelemetry/sdk-metrics": "^1.26.0", "@opentelemetry/sdk-node": "^0.53.0", "cache-manager": "^5.5.3", - "express": "^4.0.0", "graphql": "^15.0.0", "ioredis": "^5.4.1", "lru-cache": "^11.0.1", @@ -55,13 +52,9 @@ "@types/react": "^18.2.66", "@types/react-dom": "^18.2.22", "chokidar-cli": "^2.0.0", - "cosmiconfig-toml-loader": "^1.0.0", - "dotenv-cli": "^4.0.0", "eslint": "^8.0.0", "npm-run-all": "^4.1.5", "prettier": "^2.0.0", - "rimraf": "^3.0.0", - "tsconfig-paths": "^3.0.0", "typescript": "^4.0.0" } } diff --git a/demo/site/src/recursivelyLoadBlockData.ts b/demo/site/src/recursivelyLoadBlockData.ts index 081b881ffe..c1858cfd12 100644 --- a/demo/site/src/recursivelyLoadBlockData.ts +++ b/demo/site/src/recursivelyLoadBlockData.ts @@ -9,7 +9,7 @@ declare module "@comet/cms-site" { } } -export const blockLoaders: Record = { +const blockLoaders: Record = { NewsDetail: newsDetailLoader, NewsList: newsListLoader, }; diff --git a/demo/site/src/theme.ts b/demo/site/src/theme.ts index bd2f464f8d..ed41fccb93 100644 --- a/demo/site/src/theme.ts +++ b/demo/site/src/theme.ts @@ -1,4 +1,4 @@ -export interface Breakpoint { +interface Breakpoint { mediaQuery: string; value: number; } @@ -10,7 +10,7 @@ const createBreakpoint = (value: number): Breakpoint => { }; }; -export type ThemeBreakpoints = { +type ThemeBreakpoints = { b560: Breakpoint; b960: Breakpoint; b1280: Breakpoint; @@ -18,7 +18,7 @@ export type ThemeBreakpoints = { b1920: Breakpoint; }; -export interface Theme { +interface Theme { colors: { primary: string; textPrimary: string; diff --git a/demo/site/src/util/SiteConfigProvider.tsx b/demo/site/src/util/SiteConfigProvider.tsx index 23593a72f6..736d539b95 100644 --- a/demo/site/src/util/SiteConfigProvider.tsx +++ b/demo/site/src/util/SiteConfigProvider.tsx @@ -3,7 +3,9 @@ import type { PublicSiteConfig } from "@src/site-configs.d"; import { createContext, PropsWithChildren, useContext } from "react"; -export const SiteConfigContext = createContext(undefined); +const SiteConfigContext = createContext(undefined); + +/** @knipignore */ export const useSiteConfig = () => { const siteConfig = useContext(SiteConfigContext); if (!siteConfig) throw new Error("SiteConfig not set in SiteConfigProvider"); diff --git a/demo/site/src/util/spacing.ts b/demo/site/src/util/spacing.ts deleted file mode 100644 index d6f5f47283..0000000000 --- a/demo/site/src/util/spacing.ts +++ /dev/null @@ -1,220 +0,0 @@ -import { Breakpoint, ThemeBreakpoints } from "@src/theme"; -import { css } from "styled-components"; - -type SpacingValueOptions = - | "none" - | "d150" - | "d200" - | "d250" - | "d300" - | "d350" - | "d400" - | "d450" - | "d500" - | "d550" - | "d600" - | "d650" - | "d800" - | "d900" - | "d1200" - | "d1600" - | "s100" - | "s150" - | "s200" - | "s250" - | "s300" - | "s350" - | "s400" - | "s450" - | "s500" - | "s550" - | "s600" - | "s800" - | "s900" - | "s1000"; - -interface Breakpoints extends ThemeBreakpoints { - b0: Breakpoint; -} - -type SpacingValuesForBreakpoints = { - [key in keyof Breakpoints]: number; -}; - -type SpacingValues = { - [key in SpacingValueOptions]: SpacingValuesForBreakpoints | number; -}; - -const spacingValues: SpacingValues = { - none: { - b0: 0, - b560: 0, - b960: 0, - b1280: 0, - b1600: 0, - b1920: 0, - }, - //dynamic - d150: { - b0: 6, - b560: 6, - b960: 8, - b1280: 10, - b1600: 10, - b1920: 10, - }, - d200: { - b0: 12, - b560: 12, - b960: 16, - b1280: 20, - b1600: 20, - b1920: 20, - }, - d250: { - b0: 16, - b560: 16, - b960: 20, - b1280: 24, - b1600: 24, - b1920: 24, - }, - d300: { - b0: 18, - b560: 18, - b960: 24, - b1280: 30, - b1600: 30, - b1920: 30, - }, - d350: { - b0: 24, - b560: 24, - b960: 30, - b1280: 40, - b1600: 40, - b1920: 40, - }, - d400: { - b0: 36, - b560: 36, - b960: 40, - b1280: 50, - b1600: 50, - b1920: 50, - }, - d450: { - b0: 44, - b560: 44, - b960: 50, - b1280: 60, - b1600: 60, - b1920: 60, - }, - d500: { - b0: 50, - b560: 50, - b960: 64, - b1280: 80, - b1600: 80, - b1920: 80, - }, - d550: { - b0: 60, - b560: 60, - b960: 80, - b1280: 100, - b1600: 100, - b1920: 100, - }, - d600: { - b0: 80, - b560: 80, - b960: 100, - b1280: 120, - b1600: 120, - b1920: 120, - }, - d650: { - b0: 100, - b560: 100, - b960: 120, - b1280: 120, - b1600: 130, - b1920: 130, - }, - d800: { - b0: 72, - b560: 72, - b960: 80, - b1280: 100, - b1600: 100, - b1920: 100, - }, - d900: { - b0: 88, - b560: 88, - b960: 100, - b1280: 120, - b1600: 120, - b1920: 120, - }, - d1200: { - b0: 160, - b560: 160, - b960: 200, - b1280: 240, - b1600: 240, - b1920: 240, - }, - d1600: { - b0: 232, - b560: 232, - b960: 280, - b1280: 340, - b1600: 340, - b1920: 340, - }, - //static - s100: 6, - s150: 12, - s200: 14, - s250: 20, - s300: 24, - s350: 30, - s400: 40, - s450: 44, - s500: 50, - s550: 60, - s600: 72, - s800: 80, - s900: 100, - s1000: 120, -}; - -export const getResponsiveSpacing = (property: string, value: SpacingValueOptions, negativeValue?: boolean) => { - //): ReturnType> => { - const spacingValueForBreakpoint: SpacingValuesForBreakpoints | number = spacingValues[value]; - - if (typeof spacingValueForBreakpoint === "number") { - return css` - ${property}: ${spacingValueForBreakpoint}px; - `; - } - - return Object.keys(spacingValueForBreakpoint).map((breakpointKey) => { - const spacingValue: number = negativeValue ? -spacingValueForBreakpoint[breakpointKey] : spacingValueForBreakpoint[breakpointKey]; - - if (breakpointKey === "b0") { - return css` - ${property}: ${spacingValue}px; - `; - } - - return css` - @media (min-width: ${({ theme }) => theme.breakpoints[breakpointKey].value}px) { - ${property}: ${spacingValue}px; - } - `; - }); -}; diff --git a/knip.json b/knip.json new file mode 100644 index 0000000000..a9efac1b04 --- /dev/null +++ b/knip.json @@ -0,0 +1,121 @@ +{ + "$schema": "https://unpkg.com/knip@5/schema.json", + "workspaces": { + ".": { + "entry": ["dev-pm.config.js", "waitForPackages.js", "site-configs.ts"], + "project": ["*.{js,ts,tsx}"], + "ignoreDependencies": ["wait-on", "dotenv-cli", "cspell"] + }, + "packages/cli": { + "entry": ["./src/index.ts"], + "project": ["./src/**/*.{ts,tsx}"] + }, + "packages/eslint-config": { + "ignore": ["*"], + "entry": [], + "project": [] + }, + "codemods": { + "ignore": ["*"], + "entry": [], + "project": [] + }, + "docs": { + "ignore": ["*"], + "entry": [], + "project": [] + }, + "packages/admin/admin-babel-preset": { + "ignore": ["*"] + }, + "packages/eslint-plugin-react": { + "entry": ["./src/index.ts"], + "project": ["./src/**/*.{ts,tsx}"] + }, + "packages/admin/admin-icons": { + "entry": ["./src/index.ts"], + "project": ["./src/**/*.{ts,tsx}"] + }, + "packages/admin/admin": { + "entry": ["./src/index.ts"], + "project": ["./src/**/*.{ts,tsx}"], + "ignoreDependencies": ["jest-junit", "@mui/x-data-grid-pro"] + }, + "packages/admin/admin-theme": { + "entry": ["./src/index.ts"], + "project": ["./src/**/*.{ts,tsx}"] + }, + "packages/admin/admin-color-picker": { + "entry": ["./src/index.ts"], + "project": ["./src/**/*.{ts,tsx}"] + }, + "packages/admin/admin-date-time": { + "entry": ["./src/index.ts"], + "project": ["./src/**/*.{ts,tsx}"] + }, + "packages/admin/admin-react-select": { + "entry": ["./src/index.ts"], + "project": ["./src/**/*.{ts,tsx}"] + }, + "packages/admin/admin-rte": { + "entry": ["./src/index.ts"], + "project": ["./src/**/*.{ts,tsx}"] + }, + "packages/admin/blocks-admin": { + "entry": ["./src/index.ts"], + "project": ["./src/**/*.{ts,tsx}"] + }, + "packages/admin/cms-admin": { + "entry": ["./src/index.ts", "./src/generator/generate.ts"], + "project": ["./src/**/*.{ts,tsx}"] + }, + "packages/api/cms-api": { + "entry": ["./src/index.ts", "./src/generator/generate.ts", "./src/generator/generate-crud-single.ts", "./src/**/migrations/*.ts"], + "project": ["./src/**/*.{ts,tsx}"], + "ignoreDependencies": ["@sentry/node"] + }, + "packages/cms-site": { + "entry": ["./src/index.ts"], + "project": ["./src/**/*.{ts,tsx}"] + }, + "demo/admin": { + "entry": ["./src/loader.ts", "./src/**/*.cometGen.ts"], + "project": ["./src/**/*.{ts,tsx}"], + "ignore": ["./src/**/generated/**"], + "ignoreDependencies": ["@swc/plugin-emotion", "eslint-plugin-graphql", "kill-port"] + }, + "demo/api": { + "entry": [ + "./src/main.ts", + "./src/console.ts", + "./src/content-scope/content-scope.interface.ts", + "./src/repl.ts", + "./src/db/ormconfig.cli.ts", + "./src/db/fixtures/**/*.ts", + "./src/db/migrations/**/*.ts", + "./src/auth/user.interface.ts", + "./src/generator/generate.ts" + ], + "ignore": ["./src/**/generated/**"], + "project": ["./src/**/*.{ts,tsx}"], + "ignoreDependencies": ["@mikro-orm/cli", "jest-junit"] + }, + "demo/site": { + "entry": ["./src/app/**", "./cache-handler.ts", "./tracing.ts", "./server.ts", "./opentelemetry-metrics.ts"], + "project": ["./src/**/*.{ts,tsx}"], + "ignoreDependencies": ["@babel/core"] + }, + "demo/site-pages": { + "entry": ["./src/app/**", "./cache-handler.ts", "./tracing.ts"], + "project": ["./src/**/*.{ts,tsx}"], + "ignoreDependencies": ["@babel/core"] + }, + "storybook": { + "entry": ["./src/**/*.stories.tsx", ".storybook/vendor.d.ts", ".storybook/mocks/browser.ts"], + "project": ["./src/**/*.{ts,tsx}", "./.storybook/**/*.{ts,tsx}"] + } + }, + "rules": { + "enumMembers": "off" + } +} diff --git a/package.json b/package.json index 984c3ba7c2..93bf4ec708 100644 --- a/package.json +++ b/package.json @@ -8,10 +8,10 @@ "license": "BSD-2-Clause", "scripts": { "create-site-configs-env": "npx @comet/cli inject-site-configs -f demo/site-configs/site-configs.ts -i demo/.env.site-configs.tpl -o demo/.env.site-configs -d", - "build:storybook": "pnpm recursive --filter '@comet/*admin*' --filter '@comet/eslint-plugin' --filter '@comet/cli' run build && pnpm --filter comet-storybook run build-storybook", - "build:packages": "pnpm recursive --filter '@comet/*' run build", - "build:docs": "pnpm recursive --filter '@comet/eslint-plugin' --filter '@comet/admin*' --filter 'comet-docs' run build", - "clean": "pnpm recursive run clean", + "build:storybook": "pnpm --recursive --filter '@comet/*admin*' --filter '@comet/eslint-plugin' --filter '@comet/cli' run build && pnpm --filter comet-storybook run build-storybook", + "build:packages": "pnpm --recursive --filter '@comet/*' run build", + "build:docs": "pnpm --recursive --filter '@comet/eslint-plugin' --filter '@comet/admin*' --filter 'comet-docs' run build", + "clean": "pnpm --recursive run clean", "copy-schema-files": "node copy-schema-files.js", "dev:admin": "dev-pm start @comet-admin", "dev:cms": "dev-pm start @cms", @@ -25,28 +25,29 @@ "dev:docs": "dev-pm start docs", "postinstall": "husky install", "intl:extract": "formatjs extract './packages/admin/**/*.ts*' --out-file 'lang/en.json' --ignore './**.d.ts' --ignore './**.d.ts.map' --format simple --throws", - "lint": "pnpm lint:root && pnpm recursive run lint", - "lint:root": "$npm_execpath prettier --check './!(demo|docs|packages|storybook)/**/*.{js,json,md,yml,yaml}' && $npm_execpath cspell .changeset/*.md", - "lint:eslint": "pnpm recursive run lint:eslint", - "lint:tsc": "pnpm recursive run lint:tsc", + "lint": "pnpm lint:root && pnpm --recursive run lint && pnpm lint:knip", + "lint:root": "pnpm prettier --check './!(demo|docs|packages|storybook)/**/*.{js,json,md,yml,yaml}' && $npm_execpath cspell .changeset/*.md", + "lint:eslint": "pnpm --recursive run lint:eslint", + "lint:tsc": "pnpm --recursive run lint:tsc", + "lint:knip": "knip --exports --files --dependencies --tags=-knipignore", "storybook": "dev-pm start storybook", - "test": "pnpm recursive run test", + "test": "pnpm --recursive run test", "version": "$npm_execpath changeset version && pnpm install --lockfile-only", "publish": "pnpm run build:packages && $npm_execpath changeset publish" }, "devDependencies": { "@comet/cli": "workspace:*", "@comet/dev-process-manager": "^2.5.1", - "@comet/eslint-plugin": "workspace:*", "@formatjs/cli": "^6.0.0", "@types/node": "^22.0.0", + "knip": "^5.38.1", "cspell": "^8.15.4", "dotenv-cli": "^7.0.0", "husky": "^7.0.4", "lint-staged": "^12.3.7", "prettier": "^2.0.0", "rimraf": "^3.0.2", - "typescript": "^4.2.2", + "typescript": "^5.7.2", "wait-on": "^5.3.0" }, "packageManager": "pnpm@9.14.2", diff --git a/packages/admin/admin-color-picker/package.json b/packages/admin/admin-color-picker/package.json index 0cc31e9015..feb0cf1545 100644 --- a/packages/admin/admin-color-picker/package.json +++ b/packages/admin/admin-color-picker/package.json @@ -28,7 +28,6 @@ "dependencies": { "@comet/admin": "workspace:^7.10.0", "@comet/admin-icons": "workspace:^7.10.0", - "clsx": "^1.1.1", "react-colorful": "^5.5.1", "tinycolor2": "^1.4.1", "use-debounce": "^6.0.0" diff --git a/packages/admin/admin-color-picker/src/index.ts b/packages/admin/admin-color-picker/src/index.ts index e0862c8fa8..6892de3593 100644 --- a/packages/admin/admin-color-picker/src/index.ts +++ b/packages/admin/admin-color-picker/src/index.ts @@ -1,4 +1,5 @@ export { ColorField, ColorFieldProps } from "./ColorField"; +export { ColorPickerNoColorPreviewProps } from "./ColorPicker"; export { ColorPicker, ColorPickerColorPreviewProps, ColorPickerProps, ColorPickerPropsComponents } from "./ColorPicker"; export { ColorPickerClassKey } from "./ColorPicker.slots"; export { diff --git a/packages/admin/admin-date-time/package.json b/packages/admin/admin-date-time/package.json index 9849c4a487..5eb7de73e4 100644 --- a/packages/admin/admin-date-time/package.json +++ b/packages/admin/admin-date-time/package.json @@ -29,7 +29,6 @@ "@comet/admin": "workspace:^7.10.0", "@comet/admin-icons": "workspace:^7.10.0", "@mui/utils": "^6.0.0", - "clsx": "^1.1.1", "date-fns": "^2.28.0", "react-date-range": "^1.4.0" }, diff --git a/packages/admin/admin-date-time/src/index.ts b/packages/admin/admin-date-time/src/index.ts index 27a4357250..cb747e1193 100644 --- a/packages/admin/admin-date-time/src/index.ts +++ b/packages/admin/admin-date-time/src/index.ts @@ -10,6 +10,7 @@ export { */ FinalFormDatePickerProps, } from "./datePicker/FinalFormDatePicker"; +export { DatePickerNavigationClassKey, DatePickerNavigationProps } from "./DatePickerNavigation"; export { DateRangeField, DateRangeFieldProps } from "./dateRangePicker/DateRangeField"; export { DateRange, DateRangePicker, DateRangePickerProps } from "./dateRangePicker/DateRangePicker"; export { @@ -23,6 +24,7 @@ export { FinalFormDateRangePickerProps, } from "./dateRangePicker/FinalFormDateRangePicker"; export { DateTimeField, DateTimeFieldProps } from "./dateTimePicker/DateTimeField"; +export { DateTimePickerClassKey } from "./dateTimePicker/DateTimePicker"; export { DateTimePicker, DateTimePickerProps } from "./dateTimePicker/DateTimePicker"; export { /** @@ -34,6 +36,7 @@ export { */ FinalFormDateTimePickerProps, } from "./dateTimePicker/FinalFormDateTimePicker"; +export { FinalFormTimePickerProps } from "./timePicker/FinalFormTimePicker"; export { /** * @deprecated Use `` instead of `` @@ -41,6 +44,7 @@ export { FinalFormTimePicker, } from "./timePicker/FinalFormTimePicker"; export { TimeField, TimeFieldProps } from "./timePicker/TimeField"; +export { TimePickerClassKey } from "./timePicker/TimePicker"; export { TimePicker, TimePickerProps } from "./timePicker/TimePicker"; export { /** @@ -53,5 +57,6 @@ export { FinalFormTimeRangePickerProps, } from "./timeRangePicker/FinalFormTimeRangePicker"; export { TimeRangeField, TimeRangeFieldProps } from "./timeRangePicker/TimeRangeField"; +export { TimeRangePickerClassKey } from "./timeRangePicker/TimeRangePicker"; export { TimeRange, TimeRangePicker, TimeRangePickerProps } from "./timeRangePicker/TimeRangePicker"; export { DateFnsLocaleContext, DateFnsLocaleProvider, useDateFnsLocale } from "./utils/DateFnsLocaleProvider"; diff --git a/packages/admin/admin-date-time/src/timePicker/TimePicker.tsx b/packages/admin/admin-date-time/src/timePicker/TimePicker.tsx index 5a471197e8..a4a8ce846f 100644 --- a/packages/admin/admin-date-time/src/timePicker/TimePicker.tsx +++ b/packages/admin/admin-date-time/src/timePicker/TimePicker.tsx @@ -17,14 +17,14 @@ import { getClosestDateToDate, getDateFromTimeValue, getDateRangeListByMinuteSte export type TimePickerClassKey = InputWithPopperClassKey | "startAdornment" | "timeOptionsList" | "timeOptionItem"; -export type SlotProps = ThemedComponentBaseProps<{ +type SlotProps = ThemedComponentBaseProps<{ root: typeof InputWithPopper; startAdornment: typeof InputAdornment; timeOptionsList: typeof MenuList; timeOptionItem: typeof MenuItem; }>["slotProps"]; -export const Root = createComponentSlot(InputWithPopper)({ +const Root = createComponentSlot(InputWithPopper)({ componentName: "TimePicker", slotName: "root", })(); diff --git a/packages/admin/admin-date-time/src/utils/timePickerHelpers.ts b/packages/admin/admin-date-time/src/utils/timePickerHelpers.ts index 5979ee8ae6..8847d7433c 100644 --- a/packages/admin/admin-date-time/src/utils/timePickerHelpers.ts +++ b/packages/admin/admin-date-time/src/utils/timePickerHelpers.ts @@ -13,7 +13,7 @@ export const getDateRangeListByMinuteStep = (startTimeValue: string, endTimeValu return eachMinuteOfInterval({ start: startDate, end: endDate }, { step: minuteStep }); }; -export const timeValueIsValid = (timeValue: string): boolean => { +const timeValueIsValid = (timeValue: string): boolean => { if (!/^([0-9]?[0-9]):[0-9]?[0-9]$/.test(timeValue)) { return false; } diff --git a/packages/admin/admin-react-select/package.json b/packages/admin/admin-react-select/package.json index 1e5abd4a22..e83b8100ef 100644 --- a/packages/admin/admin-react-select/package.json +++ b/packages/admin/admin-react-select/package.json @@ -27,8 +27,7 @@ }, "dependencies": { "@comet/admin": "workspace:^7.10.0", - "@comet/admin-icons": "workspace:^7.10.0", - "classnames": "^2.2.6" + "@comet/admin-icons": "workspace:^7.10.0" }, "devDependencies": { "@babel/cli": "^7.17.6", diff --git a/packages/admin/admin-rte/package.json b/packages/admin/admin-rte/package.json index 0b41b03af9..8a894688ce 100644 --- a/packages/admin/admin-rte/package.json +++ b/packages/admin/admin-rte/package.json @@ -42,19 +42,15 @@ "@comet/admin-babel-preset": "workspace:^7.10.0", "@comet/eslint-config": "workspace:^7.10.0", "@mui/material": "^6.0.0", - "@testing-library/jest-dom": "^5.16.5", - "@testing-library/react": "^12.0.0", "@types/draft-js": "^0.11.10", "@types/immutable": "^3.8.7", "@types/jest": "^29.5.0", "@types/react": "^17.0.0", "@types/react-dom": "^17.0.0", - "@types/uuid": "^9.0.2", "draft-js": "^0.11.4", "eslint": "^8.0.0", "final-form": "^4.16.1", "jest": "^29.5.0", - "jest-environment-jsdom": "^29.5.0", "jest-junit": "^15.0.0", "npm-run-all": "^4.1.5", "prettier": "^2.0.0", diff --git a/packages/admin/admin-rte/src/core/Controls/BlockTypesControls.tsx b/packages/admin/admin-rte/src/core/Controls/BlockTypesControls.tsx index 1265748f57..f0621b02ae 100644 --- a/packages/admin/admin-rte/src/core/Controls/BlockTypesControls.tsx +++ b/packages/admin/admin-rte/src/core/Controls/BlockTypesControls.tsx @@ -66,7 +66,7 @@ const Select = createComponentSlot(MuiSelect)({ `, ); -export function StyledBlockTypesControls(inProps: Props) { +function StyledBlockTypesControls(inProps: Props) { const { disabled, blockTypes, slotProps, ...restProps } = useThemeProps({ props: inProps, name: "CometAdminRteBlockTypeControls" }); const { dropdownFeatures, activeDropdownBlockType, handleBlockTypeChange } = blockTypes; diff --git a/packages/admin/admin-rte/src/core/Controls/Toolbar/Toolbar.tsx b/packages/admin/admin-rte/src/core/Controls/Toolbar/Toolbar.tsx index 5cdf354d95..0341c9f235 100644 --- a/packages/admin/admin-rte/src/core/Controls/Toolbar/Toolbar.tsx +++ b/packages/admin/admin-rte/src/core/Controls/Toolbar/Toolbar.tsx @@ -6,7 +6,7 @@ import { createElement } from "react"; import { IControlProps } from "../../types"; import { Root, RteToolbarClassKey, Slot } from "./Toolbar.styles"; -export interface RteToolbarProps +interface RteToolbarProps extends IControlProps, ThemedComponentBaseProps<{ root: "div"; diff --git a/packages/admin/admin-rte/src/core/RteReadOnly.tsx b/packages/admin/admin-rte/src/core/RteReadOnly.tsx index 37c71fe93f..b524e602ab 100644 --- a/packages/admin/admin-rte/src/core/RteReadOnly.tsx +++ b/packages/admin/admin-rte/src/core/RteReadOnly.tsx @@ -8,7 +8,7 @@ import { styleMap } from "./Rte"; import { IBlocktypeMap as IBlocktypeMap, ICustomBlockTypeMap_Deprecated } from "./types"; import createBlockRenderMap from "./utils/createBlockRenderMap"; -export interface IRteReadOnlyOptions { +interface IRteReadOnlyOptions { blocktypeMap: IBlocktypeMap; /** * @deprecated use `blocktypeMap` instead diff --git a/packages/admin/admin-rte/src/core/filterEditor/utils/unstyleBlocks.ts b/packages/admin/admin-rte/src/core/filterEditor/utils/unstyleBlocks.ts deleted file mode 100644 index fe04fbc256..0000000000 --- a/packages/admin/admin-rte/src/core/filterEditor/utils/unstyleBlocks.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { EditorState } from "draft-js"; - -import { FilterEditorStateFn } from "../../types"; - -type BlockBlacklist = string[]; - -// inspired by https://github.com/thibaudcolas/draftjs-filters/blob/master/src/lib/filters/blocks.js#L127 -const unstyleBlocks: (blockBlacklist: BlockBlacklist) => FilterEditorStateFn = (blockBlacklist) => (nextState) => { - const content = nextState.getCurrentContent(); - const blockMap = content.getBlockMap(); - - const changedBlocks: any = blockMap - .filter((block) => !block || blockBlacklist.includes(block.getType())) - .map((block) => { - return block!.merge({ - type: "unstyled", - depth: 0, - }); - }); - - return EditorState.set(nextState, { - currentContent: content.merge({ - blockMap: blockMap.merge(changedBlocks), - }), - }); -}; - -export default unstyleBlocks; diff --git a/packages/admin/admin-rte/src/core/utils/getRteTheme.ts b/packages/admin/admin-rte/src/core/utils/getRteTheme.ts index d7033f43c6..a8be2f5eb7 100644 --- a/packages/admin/admin-rte/src/core/utils/getRteTheme.ts +++ b/packages/admin/admin-rte/src/core/utils/getRteTheme.ts @@ -3,7 +3,7 @@ import { CSSProperties } from "react"; import { RteProps } from "../Rte"; -export interface RteTheme { +interface RteTheme { colors: { border: CSSProperties["color"]; toolbarBackground: CSSProperties["color"]; diff --git a/packages/admin/admin-rte/src/icons/TextFormatSub.tsx b/packages/admin/admin-rte/src/icons/TextFormatSub.tsx deleted file mode 100644 index f24afddec3..0000000000 --- a/packages/admin/admin-rte/src/icons/TextFormatSub.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import SvgIcon, { SvgIconProps } from "@mui/material/SvgIcon"; - -export default function TextFormatSub({ viewBox, ...props }: SvgIconProps) { - return ( - - - - ); -} diff --git a/packages/admin/admin-rte/src/icons/TextFormatSup.tsx b/packages/admin/admin-rte/src/icons/TextFormatSup.tsx deleted file mode 100644 index 46569e3bbf..0000000000 --- a/packages/admin/admin-rte/src/icons/TextFormatSup.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import SvgIcon, { SvgIconProps } from "@mui/material/SvgIcon"; - -export default function TextFormatSup({ viewBox, ...props }: SvgIconProps) { - return ( - - - - ); -} diff --git a/packages/admin/admin/package.json b/packages/admin/admin/package.json index 9902afff83..bbf58845e4 100644 --- a/packages/admin/admin/package.json +++ b/packages/admin/admin/package.json @@ -31,8 +31,6 @@ "@comet/admin-icons": "workspace:^7.10.0", "@comet/admin-theme": "workspace:^7.10.0", "@mui/lab": "^6.0.0-beta.10", - "@mui/private-theming": "^6.0.0", - "clsx": "^1.1.1", "exceljs": "^4.4.0", "file-saver": "^2.0.2", "final-form-set-field-data": "^1.0.2", @@ -62,7 +60,6 @@ "@testing-library/react": "^12.1.5", "@testing-library/react-hooks": "^8.0.0", "@testing-library/user-event": "^14.5.1", - "@types/debounce": "^1.2.0", "@types/file-saver": "^2.0.1", "@types/final-form-set-field-data": "^1.0.0", "@types/history": "^4.0.0", @@ -83,7 +80,6 @@ "jest": "^29.5.0", "jest-environment-jsdom": "^29.5.0", "jest-junit": "^15.0.0", - "jss": "^10.6.0", "npm-run-all": "^4.1.5", "prettier": "^2.0.0", "react": "^17.0.0", @@ -122,9 +118,6 @@ }, "@mui/x-data-grid-pro": { "optional": true - }, - "react-dnd": { - "optional": true } }, "publishConfig": { diff --git a/packages/admin/admin/src/FinalFormSaveSplitButton.tsx b/packages/admin/admin/src/FinalFormSaveSplitButton.tsx index 4cf1b48869..cd30e41dbd 100644 --- a/packages/admin/admin/src/FinalFormSaveSplitButton.tsx +++ b/packages/admin/admin/src/FinalFormSaveSplitButton.tsx @@ -9,7 +9,7 @@ import { FinalFormSubmitEvent } from "./FinalForm"; import { messages } from "./messages"; import { useStackApi } from "./stack/Api"; -export interface FormSaveButtonProps { +interface FormSaveButtonProps { localStorageKey?: string; hasConflict?: boolean; } diff --git a/packages/admin/admin/src/common/buttons/save/SaveButton.tsx b/packages/admin/admin/src/common/buttons/save/SaveButton.tsx index 3141d50c2e..076e366e1d 100644 --- a/packages/admin/admin/src/common/buttons/save/SaveButton.tsx +++ b/packages/admin/admin/src/common/buttons/save/SaveButton.tsx @@ -85,7 +85,7 @@ export interface SaveButtonProps extends ButtonProps { conflictIcon?: ReactNode; } -export type SaveButtonDisplayState = "idle" | "saving" | "success" | "error" | "conflict"; +type SaveButtonDisplayState = "idle" | "saving" | "success" | "error" | "conflict"; export function SaveButton(inProps: SaveButtonProps) { const { diff --git a/packages/admin/admin/src/common/toolbar/actions/ToolbarActionButton.tsx b/packages/admin/admin/src/common/toolbar/actions/ToolbarActionsButton.tsx similarity index 99% rename from packages/admin/admin/src/common/toolbar/actions/ToolbarActionButton.tsx rename to packages/admin/admin/src/common/toolbar/actions/ToolbarActionsButton.tsx index 20a506fff7..2d9cf540ee 100644 --- a/packages/admin/admin/src/common/toolbar/actions/ToolbarActionButton.tsx +++ b/packages/admin/admin/src/common/toolbar/actions/ToolbarActionsButton.tsx @@ -36,19 +36,16 @@ const StyledIconButton = createComponentSlot(IconButton) { +interface ActionItem extends ComponentProps { label: ReactNode; icon?: ReactNode; divider?: boolean; diff --git a/packages/admin/admin/src/dataGrid/GridColDef.ts b/packages/admin/admin/src/dataGrid/GridColDef.ts index dceb733736..fcdeca8a76 100644 --- a/packages/admin/admin/src/dataGrid/GridColDef.ts +++ b/packages/admin/admin/src/dataGrid/GridColDef.ts @@ -7,7 +7,7 @@ import { import { GridBaseColDef as MuiGridBaseColDef } from "@mui/x-data-grid/models/colDef/gridColDef"; import { type GridPinnedColumns } from "@mui/x-data-grid-pro"; -export type ValueOption = +type ValueOption = | string | number | { diff --git a/packages/admin/admin/src/error/errordialog/ErrorDialog.tsx b/packages/admin/admin/src/error/errordialog/ErrorDialog.tsx index ebf8b4c04f..0365815510 100644 --- a/packages/admin/admin/src/error/errordialog/ErrorDialog.tsx +++ b/packages/admin/admin/src/error/errordialog/ErrorDialog.tsx @@ -34,10 +34,6 @@ export interface ErrorDialogOptions { }; } -export type ErrorMethods = { - setError: (options: ErrorDialogOptions) => void; -}; - export interface ErrorDialogProps { show?: boolean; onCloseClicked?: () => void; diff --git a/packages/admin/admin/src/form/Autocomplete.tsx b/packages/admin/admin/src/form/Autocomplete.tsx index e7a3f4c16c..0ceb0bed9c 100644 --- a/packages/admin/admin/src/form/Autocomplete.tsx +++ b/packages/admin/admin/src/form/Autocomplete.tsx @@ -66,5 +66,3 @@ export const FinalFormAutocomplete = < /> ); }; - -export default FinalFormAutocomplete; diff --git a/packages/admin/admin/src/form/FinalFormAsyncAutocomplete.tsx b/packages/admin/admin/src/form/FinalFormAsyncAutocomplete.tsx index 0047a62da6..883fb260d0 100644 --- a/packages/admin/admin/src/form/FinalFormAsyncAutocomplete.tsx +++ b/packages/admin/admin/src/form/FinalFormAsyncAutocomplete.tsx @@ -1,5 +1,5 @@ import { useAsyncOptionsProps } from "../hooks/useAsyncOptionsProps"; -import FinalFormAutocomplete, { FinalFormAutocompleteProps } from "./Autocomplete"; +import { FinalFormAutocomplete, FinalFormAutocompleteProps } from "./Autocomplete"; export interface FinalFormAsyncAutocompleteProps< T extends Record, diff --git a/packages/admin/admin/src/form/SubmitResult.tsx b/packages/admin/admin/src/form/SubmitResult.tsx deleted file mode 100644 index 0048a4d237..0000000000 --- a/packages/admin/admin/src/form/SubmitResult.tsx +++ /dev/null @@ -1,12 +0,0 @@ -export class SubmitError extends Error { - submitError?: any; - - constructor(message?: string, submitError?: any) { - super(message); - this.submitError = submitError; - } -} - -export interface SubmitResult { - error?: SubmitError; -} diff --git a/packages/admin/admin/src/form/fields/AutocompleteField.tsx b/packages/admin/admin/src/form/fields/AutocompleteField.tsx index 02d3dc9d80..d1bc1170ab 100644 --- a/packages/admin/admin/src/form/fields/AutocompleteField.tsx +++ b/packages/admin/admin/src/form/fields/AutocompleteField.tsx @@ -1,7 +1,7 @@ import { AutocompleteProps } from "@mui/material"; import { AsyncOptionsProps } from "../../hooks/useAsyncOptionsProps"; -import FinalFormAutocomplete from "../Autocomplete"; +import { FinalFormAutocomplete } from "../Autocomplete"; import { Field, FieldProps } from "../Field"; export type AutocompleteFieldProps< diff --git a/packages/admin/admin/src/index.ts b/packages/admin/admin/src/index.ts index 2c3e32196c..aee2372376 100644 --- a/packages/admin/admin/src/index.ts +++ b/packages/admin/admin/src/index.ts @@ -5,6 +5,7 @@ export { AppHeader, AppHeaderClassKey } from "./appHeader/AppHeader"; export { AppHeaderButton, AppHeaderButtonProps } from "./appHeader/button/AppHeaderButton"; export { AppHeaderButtonClassKey } from "./appHeader/button/AppHeaderButton.styles"; export { AppHeaderDropdown, AppHeaderDropdownClassKey, AppHeaderDropdownProps } from "./appHeader/dropdown/AppHeaderDropdown"; +export { AppHeaderFillSpaceProps } from "./appHeader/fillSpace/AppHeaderFillSpace"; export { AppHeaderFillSpace, AppHeaderFillSpaceClassKey } from "./appHeader/fillSpace/AppHeaderFillSpace"; export { AppHeaderMenuButton, AppHeaderMenuButtonClassKey, AppHeaderMenuButtonProps } from "./appHeader/menuButton/AppHeaderMenuButton"; export { buildCreateRestMutation, buildDeleteRestMutation, buildUpdateRestMutation } from "./buildRestMutation"; @@ -20,6 +21,7 @@ export { SaveButton, SaveButtonClassKey, SaveButtonProps } from "./common/button export { SplitButton, SplitButtonClassKey, SplitButtonProps } from "./common/buttons/split/SplitButton"; export { SplitButtonContext, SplitButtonContextOptions } from "./common/buttons/split/SplitButtonContext"; export { useSplitButtonContext } from "./common/buttons/split/useSplitButtonContext"; +export { ClearInputAdornmentClassKey } from "./common/ClearInputAdornment"; export { ClearInputAdornment, ClearInputAdornmentProps } from "./common/ClearInputAdornment"; export { CometLogo } from "./common/CometLogo"; export { Dialog, DialogClassKey, DialogProps } from "./common/Dialog"; @@ -29,6 +31,8 @@ export { HoverActions, HoverActionsClassKey, HoverActionsProps } from "./common/ export { Loading, LoadingProps } from "./common/Loading"; export { MainContent, MainContentClassKey, MainContentProps, StackMainContent } from "./common/MainContent"; export { ToolbarActions, ToolbarActionsClassKey } from "./common/toolbar/actions/ToolbarActions"; +export { ToolbarActionButtonClassKey } from "./common/toolbar/actions/ToolbarActionsButton"; +export { ToolbarActionButton } from "./common/toolbar/actions/ToolbarActionsButton"; export { ToolbarAutomaticTitleItem, ToolbarAutomaticTitleItemClassKey, @@ -45,11 +49,12 @@ export { ToolbarBreadcrumbs, ToolbarBreadcrumbsClassKey, ToolbarBreadcrumbsProps export { Tooltip, TooltipClassKey, TooltipProps } from "./common/Tooltip"; export { ContentOverflow, ContentOverflowClassKey, ContentOverflowProps } from "./ContentOverflow"; export { CrudContextMenu, CrudContextMenuClassKey, CrudContextMenuProps } from "./dataGrid/CrudContextMenu"; +export { CrudMoreActionsMenuClassKey } from "./dataGrid/CrudMoreActionsMenu"; export { CrudMoreActionsMenu, CrudMoreActionsMenuProps } from "./dataGrid/CrudMoreActionsMenu"; export { CrudVisibility, CrudVisibilityProps } from "./dataGrid/CrudVisibility"; export { ExportApi, useDataGridExcelExport } from "./dataGrid/excelExport/useDataGridExcelExport"; export { GridCellContent, GridCellContentClassKey, GridCellContentProps } from "./dataGrid/GridCellContent"; -export { GridColDef } from "./dataGrid/GridColDef"; +export { GridActionsColDef, GridBaseColDef, GridColDef, GridSingleSelectColDef } from "./dataGrid/GridColDef"; export { GridColumnsButton } from "./dataGrid/GridColumnsButton"; export { dataGridDateColumn, dataGridDateTimeColumn } from "./dataGrid/gridColumnTypes"; export { GridFilterButton } from "./dataGrid/GridFilterButton"; @@ -293,6 +298,7 @@ export { VisibleType, } from "./table/Table"; export { TableBodyRow, TableBodyRowClassKey, TableBodyRowProps } from "./table/TableBodyRow"; +export { TableDndOrderClassKey } from "./table/TableDndOrder"; export { TableDndOrder } from "./table/TableDndOrder"; export { TableFilterFinalForm } from "./table/TableFilterFinalForm"; export { ITableLocalChangesApi, submitChangesWithMutation, TableLocalChanges } from "./table/TableLocalChanges"; diff --git a/packages/admin/admin/src/mui/MasterLayoutContext.tsx b/packages/admin/admin/src/mui/MasterLayoutContext.tsx index bf00645155..12f0b549ab 100644 --- a/packages/admin/admin/src/mui/MasterLayoutContext.tsx +++ b/packages/admin/admin/src/mui/MasterLayoutContext.tsx @@ -1,6 +1,6 @@ import { createContext } from "react"; -export interface MasterLayoutContextValues { +interface MasterLayoutContextValues { headerHeight: number; } diff --git a/packages/admin/admin/src/router/PromptHandler.tsx b/packages/admin/admin/src/router/PromptHandler.tsx index 7b359a486a..5989aaaf15 100644 --- a/packages/admin/admin/src/router/PromptHandler.tsx +++ b/packages/admin/admin/src/router/PromptHandler.tsx @@ -114,7 +114,7 @@ interface Props { apiRef: MutableRefObject; } -export type SaveActionSuccess = boolean; +type SaveActionSuccess = boolean; export type SaveAction = (() => Promise) | (() => SaveActionSuccess); export type ResetAction = () => void; diff --git a/packages/admin/admin/src/rowActions/RowActionsItem.tsx b/packages/admin/admin/src/rowActions/RowActionsItem.tsx index 36c5b3ee22..676e70d91c 100644 --- a/packages/admin/admin/src/rowActions/RowActionsItem.tsx +++ b/packages/admin/admin/src/rowActions/RowActionsItem.tsx @@ -10,8 +10,7 @@ export interface CommonRowActionItemProps { onClick?: MouseEventHandler; } -export type RowActionsItemPropsComponentsProps = RowActionsIconItemComponentsProps & - RowActionsListItemComponentsProps; +type RowActionsItemPropsComponentsProps = RowActionsIconItemComponentsProps & RowActionsListItemComponentsProps; export interface RowActionsItemProps extends Omit, diff --git a/packages/admin/admin/src/rowActions/RowActionsSubMenu.tsx b/packages/admin/admin/src/rowActions/RowActionsSubMenu.tsx index eca7034ca8..b87665fa48 100644 --- a/packages/admin/admin/src/rowActions/RowActionsSubMenu.tsx +++ b/packages/admin/admin/src/rowActions/RowActionsSubMenu.tsx @@ -6,7 +6,7 @@ import { RowActionsIconItem, RowActionsIconItemProps } from "./RowActionsIconIte import { RowActionsListItem, RowActionsListItemProps } from "./RowActionsListItem"; import { RowActionsMenuContext } from "./RowActionsMenu"; -export interface RowActionsSubMenuComponentsProps { +interface RowActionsSubMenuComponentsProps { rowActionsIconItem?: Partial; rowActionsListItem?: Partial; } diff --git a/packages/admin/admin/src/saveBoundary/SaveBoundary.tsx b/packages/admin/admin/src/saveBoundary/SaveBoundary.tsx index 32908210ec..405724e9c2 100644 --- a/packages/admin/admin/src/saveBoundary/SaveBoundary.tsx +++ b/packages/admin/admin/src/saveBoundary/SaveBoundary.tsx @@ -6,7 +6,7 @@ import { v4 as uuid } from "uuid"; import { messages } from "../messages"; import { RouterPrompt } from "../router/Prompt"; -export type SaveActionSuccess = boolean; +type SaveActionSuccess = boolean; export interface SaveBoundaryApi { save: () => Promise; register: (id: string, props: SavableProps) => void; @@ -23,7 +23,7 @@ export function useSaveBoundaryApi() { return useContext(SaveBoundaryApiContext); } -export const SavableContext = createContext(undefined); +const SavableContext = createContext(undefined); export function useSavable() { return useContext(SavableContext); } diff --git a/packages/admin/admin/src/table/filterbar/index.ts b/packages/admin/admin/src/table/filterbar/index.ts deleted file mode 100644 index bd4895693c..0000000000 --- a/packages/admin/admin/src/table/filterbar/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./FilterBar"; -export * from "./filterBarMoreFilters/FilterBarMoreFilters"; -export * from "./filterBarPopoverFilter/FilterBarPopoverFilter"; diff --git a/packages/admin/admin/src/tabs/RouterTabs.tsx b/packages/admin/admin/src/tabs/RouterTabs.tsx index f5322fe895..1b4cb9781b 100644 --- a/packages/admin/admin/src/tabs/RouterTabs.tsx +++ b/packages/admin/admin/src/tabs/RouterTabs.tsx @@ -54,7 +54,7 @@ export const RouterTab = (props: TabProps) => null; type RouterTabsChild = ReactElement | boolean | null | undefined; type RouterTabsChildren = RouterTabsChild | Array>; -export interface Props +interface Props extends ThemedComponentBaseProps<{ root: "div"; tabs: typeof Tabs; diff --git a/packages/admin/blocks-admin/package.json b/packages/admin/blocks-admin/package.json index f608a9613b..782320e688 100644 --- a/packages/admin/blocks-admin/package.json +++ b/packages/admin/blocks-admin/package.json @@ -32,9 +32,6 @@ "dependencies": { "@comet/admin": "workspace:^7.10.0", "@comet/admin-icons": "workspace:^7.10.0", - "@mui/lab": "^6.0.0-beta.10", - "clipboard-copy": "^4.0.0", - "clsx": "^1.1.1", "lodash.isequal": "^4.0.0", "rimraf": "^3.0.0", "scroll-into-view-if-needed": "^2.0.0", @@ -48,7 +45,6 @@ "@comet/eslint-config": "workspace:^7.10.0", "@emotion/react": "^11.5.0", "@emotion/styled": "^11.3.0", - "@mui/lab": "^6.0.0-beta.10", "@mui/material": "^6.0.0", "@mui/system": "^6.0.0", "@types/jest": "^29.5.0", @@ -63,6 +59,7 @@ "eslint": "^8.0.0", "final-form": "^4.0.0", "jest": "^29.5.0", + "jest-environment-jsdom": "^29.7.0", "jest-junit": "^15.0.0", "npm-run-all": "^4.1.5", "prettier": "^2.0.0", diff --git a/packages/admin/blocks-admin/src/blocks/common/AdminTabLabel.tsx b/packages/admin/blocks-admin/src/blocks/common/AdminTabLabel.tsx index 0b0826bdde..fb74e3e693 100644 --- a/packages/admin/blocks-admin/src/blocks/common/AdminTabLabel.tsx +++ b/packages/admin/blocks-admin/src/blocks/common/AdminTabLabel.tsx @@ -4,7 +4,7 @@ import { PropsWithChildren } from "react"; import { usePromise } from "../../common/usePromise"; -export interface AdminTabLabelProps { +interface AdminTabLabelProps { isValid?: () => Promise | boolean; } diff --git a/packages/admin/blocks-admin/src/blocks/common/blockRow/image/StackedImages.sc.ts b/packages/admin/blocks-admin/src/blocks/common/blockRow/image/StackedImages.sc.ts index 59323b9347..fbbc112dff 100644 --- a/packages/admin/blocks-admin/src/blocks/common/blockRow/image/StackedImages.sc.ts +++ b/packages/admin/blocks-admin/src/blocks/common/blockRow/image/StackedImages.sc.ts @@ -18,7 +18,7 @@ export const StackedImage = styled("div")` border: 1px solid white; `; -export const TwoImagesStackedImage = styled(StackedImage)` +const TwoImagesStackedImage = styled(StackedImage)` width: 80%; height: 80%; `; @@ -32,7 +32,7 @@ export const TwoImagesStackedImageRight = styled(TwoImagesStackedImage)` right: 0; `; -export const ThreeImagesStackedImage = styled(StackedImage)` +const ThreeImagesStackedImage = styled(StackedImage)` width: 70%; height: 70%; `; diff --git a/packages/admin/blocks-admin/src/blocks/common/blockRow/image/StackedImages.tsx b/packages/admin/blocks-admin/src/blocks/common/blockRow/image/StackedImages.tsx index ffedca3e5f..76121124ab 100644 --- a/packages/admin/blocks-admin/src/blocks/common/blockRow/image/StackedImages.tsx +++ b/packages/admin/blocks-admin/src/blocks/common/blockRow/image/StackedImages.tsx @@ -1,7 +1,7 @@ import { PreviewContentImage } from "../../../types"; import * as sc from "./StackedImages.sc"; -export interface StackedImagesProps { +interface StackedImagesProps { images: PreviewContentImage[]; } diff --git a/packages/admin/blocks-admin/src/blocks/factories/spaceBlock/createSpaceBlock.tsx b/packages/admin/blocks-admin/src/blocks/factories/spaceBlock/createSpaceBlock.tsx index f06c5614e1..c554d7773f 100644 --- a/packages/admin/blocks-admin/src/blocks/factories/spaceBlock/createSpaceBlock.tsx +++ b/packages/admin/blocks-admin/src/blocks/factories/spaceBlock/createSpaceBlock.tsx @@ -8,7 +8,7 @@ import { SelectPreviewComponent } from "../../../iframebridge/SelectPreviewCompo import { createBlockSkeleton } from "../../helpers/createBlockSkeleton"; import { BlockCategory, BlockInterface } from "../../types"; -export interface SpaceBlockFactoryOptions { +interface SpaceBlockFactoryOptions { name?: string; defaultValue: T; options: { value: T; label: ReactNode }[]; diff --git a/packages/admin/blocks-admin/src/blocks/types.tsx b/packages/admin/blocks-admin/src/blocks/types.tsx index 070ff4ba4e..0c18cca602 100644 --- a/packages/admin/blocks-admin/src/blocks/types.tsx +++ b/packages/admin/blocks-admin/src/blocks/types.tsx @@ -39,7 +39,7 @@ export interface AdminComponentPart { // eslint-disable-next-line @typescript-eslint/no-explicit-any export type BlockContext = any; -export interface PreviewImage { +interface PreviewImage { src: string; width: number; height: number; @@ -50,7 +50,7 @@ export function isPreviewContentTextRule(content: PreviewContent): content is Pr return content.type === "text"; } -export type PreviewContentText = { type: "text"; content: ReactNode }; +type PreviewContentText = { type: "text"; content: ReactNode }; export function isPreviewContentImageRule(content: PreviewContent): content is PreviewContentImage { return content.type === "image"; diff --git a/packages/admin/blocks-admin/src/iframebridge/IFrameMessage.ts b/packages/admin/blocks-admin/src/iframebridge/IFrameMessage.ts index dea49d61ec..3a1390618f 100644 --- a/packages/admin/blocks-admin/src/iframebridge/IFrameMessage.ts +++ b/packages/admin/blocks-admin/src/iframebridge/IFrameMessage.ts @@ -39,7 +39,7 @@ export interface IFrameSelectComponentMessage { /** * @deprecated Use SitePreviewIFrameOpenLinkMessage instead */ -export interface IFrameOpenLinkMessage { +interface IFrameOpenLinkMessage { cometType: IFrameMessageType.OpenLink; data: { link: ExternalLinkBlockData; @@ -57,7 +57,7 @@ export interface IFrameLocationMessage { /** * The `IFrameHoverComponentMessage` is sent from the site to the admin, when a component is hovered in the iFrame and should be highlighted in the admin interface. */ -export interface IFrameHoverComponentMessage { +interface IFrameHoverComponentMessage { cometType: IFrameMessageType.HoverComponent; data: { route: string | null; diff --git a/packages/admin/blocks-admin/src/index.ts b/packages/admin/blocks-admin/src/index.ts index 0a1ffddd35..1591f21993 100644 --- a/packages/admin/blocks-admin/src/index.ts +++ b/packages/admin/blocks-admin/src/index.ts @@ -13,15 +13,20 @@ export { HiddenInSubroute } from "./blocks/common/HiddenInSubroute"; export { ColumnsLayoutPreview, ColumnsLayoutPreviewContent, ColumnsLayoutPreviewSpacing } from "./blocks/factories/columnsBlock/ColumnsLayoutPreview"; export { FinalFormLayoutSelect } from "./blocks/factories/columnsBlock/FinalFormLayoutSelect"; export type { BlocksBlockFragment, BlocksBlockState } from "./blocks/factories/createBlocksBlock"; +export { BlocksBlockOutput } from "./blocks/factories/createBlocksBlock"; export { createBlocksBlock } from "./blocks/factories/createBlocksBlock"; export type { ColumnsBlockLayout } from "./blocks/factories/createColumnsBlock"; export { createColumnsBlock } from "./blocks/factories/createColumnsBlock"; export { createCompositeBlock } from "./blocks/factories/createCompositeBlock"; export type { ListBlockFragment, ListBlockState } from "./blocks/factories/createListBlock"; +export { ListBlockOutput } from "./blocks/factories/createListBlock"; export { createListBlock } from "./blocks/factories/createListBlock"; export type { CreateOneOfBlockOptions, OneOfBlockFragment, OneOfBlockState } from "./blocks/factories/createOneOfBlock"; +export { OneOfBlockOutput } from "./blocks/factories/createOneOfBlock"; +export { OneOfBlockPreviewState } from "./blocks/factories/createOneOfBlock"; export { createOneOfBlock } from "./blocks/factories/createOneOfBlock"; export type { OptionalBlockDecoratorFragment, OptionalBlockState } from "./blocks/factories/createOptionalBlock"; +export { OptionalBlockOutput } from "./blocks/factories/createOptionalBlock"; export { createOptionalBlock } from "./blocks/factories/createOptionalBlock"; export { createSpaceBlock } from "./blocks/factories/spaceBlock/createSpaceBlock"; export { composeBlocks } from "./blocks/helpers/composeBlocks/composeBlocks"; diff --git a/packages/admin/cms-admin/package.json b/packages/admin/cms-admin/package.json index 2de0fbd49c..1018a58a55 100644 --- a/packages/admin/cms-admin/package.json +++ b/packages/admin/cms-admin/package.json @@ -43,12 +43,9 @@ "@comet/blocks-admin": "workspace:^7.10.0", "@graphql-tools/graphql-file-loader": "^7.5.17", "@graphql-tools/load": "^7.8.14", - "@graphql-typed-document-node/core": "^3.1.1", - "@mui/lab": "^6.0.0-beta.10", "axios": "^0.21.0", "change-case": "^4.1.2", "class-validator": "^0.14.1", - "clsx": "^1.1.1", "commander": "^10.0.1", "date-fns": "^2.0.0", "file-saver": "^2.0.0", @@ -57,16 +54,12 @@ "glob": "^10.3.10", "graphql-tag": "^2.0.0", "js-cookie": "^3.0.5", - "lodash.clonedeep": "^4.5.0", "lodash.escaperegexp": "^4.0.0", - "lodash.get": "^4.4.2", "lodash.isequal": "^4.0.0", - "lodash.set": "^4.3.2", "mime-db": "^1.0.0", "object-path": "^0.11.8", "p-debounce": "^4.0.0", "pluralize": "^8.0.0", - "prop-types": "^15.7.2", "react-cool-dimensions": "^2.0.0", "react-dropzone": "^14.3.5", "react-final-form-arrays": "^3.1.3", @@ -77,7 +70,6 @@ "react-window": "^1.0.0", "rimraf": "^3.0.0", "slugify": "^1.0.0", - "split.js": "^1.6.4", "use-debounce": "^6.0.0", "uuid": "^9.0.0" }, @@ -95,7 +87,6 @@ "@graphql-codegen/near-operation-file-preset": "^2.5.0", "@graphql-codegen/typescript": "^2.0.0", "@graphql-codegen/typescript-operations": "^2.0.0", - "@mui/lab": "^6.0.0-beta.10", "@mui/material": "^6.0.0", "@mui/system": "^6.0.0", "@mui/x-data-grid": "^7.22.3", @@ -104,11 +95,8 @@ "@types/final-form-set-field-touched": "^1.0.0", "@types/jest": "^29.5.0", "@types/js-cookie": "^3.0.6", - "@types/lodash.clonedeep": "^4.5.6", "@types/lodash.escaperegexp": "^4.0.0", - "@types/lodash.get": "^4.4.6", "@types/lodash.isequal": "^4.0.0", - "@types/lodash.set": "^4.3.6", "@types/mime-db": "^1.43.1", "@types/node": "^22.0.0", "@types/object-path": "^0.11.4", @@ -122,13 +110,13 @@ "@types/react-window": "^1.0.0", "@types/uuid": "^9.0.0", "chokidar-cli": "^2.0.0", - "cosmiconfig-toml-loader": "^1.0.0", "csstype": "^3.1.1", "draft-js": "^0.11.7", "eslint": "^8.0.0", "final-form": "^4.20.9", "graphql": "^15.0.0", "jest": "^29.5.0", + "jest-environment-jsdom": "^29.7.0", "jest-junit": "^15.0.0", "npm-run-all": "^4.1.5", "prettier": "^2.0.0", diff --git a/packages/admin/cms-admin/src/blocks/PixelImageBlock.tsx b/packages/admin/cms-admin/src/blocks/PixelImageBlock.tsx index 5125eb71a5..f1ade6f23a 100644 --- a/packages/admin/cms-admin/src/blocks/PixelImageBlock.tsx +++ b/packages/admin/cms-admin/src/blocks/PixelImageBlock.tsx @@ -31,8 +31,8 @@ import { useCmsBlockContext } from "./useCmsBlockContext"; export type ImageBlockState = Omit; -export const urlTemplateRoute = "/dam/images/preview/$fileId/crop:$crop/resize:$resizeWidth:$resizeHeight/$fileName"; -export function createPreviewUrl({ damFile, cropArea }: ImageBlockState, apiUrl: string, resize?: { width: number; height: number }): string { +const urlTemplateRoute = "/dam/images/preview/$fileId/crop:$crop/resize:$resizeWidth:$resizeHeight/$fileName"; +function createPreviewUrl({ damFile, cropArea }: ImageBlockState, apiUrl: string, resize?: { width: number; height: number }): string { if (!damFile || !damFile.image) return ""; const imageCropArea = cropArea ? cropArea : damFile.image.cropArea; diff --git a/packages/admin/cms-admin/src/blocks/SvgImageBlock.tsx b/packages/admin/cms-admin/src/blocks/SvgImageBlock.tsx index 68640907ad..f3b94a6857 100644 --- a/packages/admin/cms-admin/src/blocks/SvgImageBlock.tsx +++ b/packages/admin/cms-admin/src/blocks/SvgImageBlock.tsx @@ -27,9 +27,9 @@ import { CmsBlockContext } from "./CmsBlockContextProvider"; import { GQLSvgImageBlockDamFileQuery, GQLSvgImageBlockDamFileQueryVariables } from "./SvgImageBlock.generated"; import { useCmsBlockContext } from "./useCmsBlockContext"; -export type SvgImageBlockState = Omit; +type SvgImageBlockState = Omit; -export function createPreviewUrl({ damFile }: SvgImageBlockState, apiUrl: string): string { +function createPreviewUrl({ damFile }: SvgImageBlockState, apiUrl: string): string { if (!damFile) return ""; return new URL( `${apiUrl}/dam/files/preview/$fileId/$fileName` diff --git a/packages/admin/cms-admin/src/common/PageName.tsx b/packages/admin/cms-admin/src/common/PageName.tsx index 4d320346b4..111c3787c7 100644 --- a/packages/admin/cms-admin/src/common/PageName.tsx +++ b/packages/admin/cms-admin/src/common/PageName.tsx @@ -5,7 +5,7 @@ import { styled } from "@mui/material/styles"; import { GQLPageQuery, GQLPageQueryVariables } from "./PageName.generated"; -export const pageFragment = gql` +const pageFragment = gql` fragment Page on PageTreeNode { id name diff --git a/packages/admin/cms-admin/src/common/useSaveState.tsx b/packages/admin/cms-admin/src/common/useSaveState.tsx index 3d61f8e784..e4376dd666 100644 --- a/packages/admin/cms-admin/src/common/useSaveState.tsx +++ b/packages/admin/cms-admin/src/common/useSaveState.tsx @@ -83,7 +83,7 @@ interface SaveStateSaveButtonProps { saving: boolean; saveError: "invalid" | "conflict" | "error" | undefined; } -export function SaveStateSaveButton({ handleSaveClick, hasChanges, saving, saveError }: SaveStateSaveButtonProps): JSX.Element { +function SaveStateSaveButton({ handleSaveClick, hasChanges, saving, saveError }: SaveStateSaveButtonProps): JSX.Element { const saveButtonProps: Omit = { color: "primary", variant: "contained", diff --git a/packages/admin/cms-admin/src/dam/DataGrid/FolderDataGrid.gql.ts b/packages/admin/cms-admin/src/dam/DataGrid/FolderDataGrid.gql.ts index 1e80925ed0..64ef4d591c 100644 --- a/packages/admin/cms-admin/src/dam/DataGrid/FolderDataGrid.gql.ts +++ b/packages/admin/cms-admin/src/dam/DataGrid/FolderDataGrid.gql.ts @@ -2,7 +2,7 @@ import { gql } from "@apollo/client"; import { damFileThumbnailFragment } from "./thumbnail/DamThumbnail"; -export const damFileTableFragment = gql` +const damFileTableFragment = gql` fragment DamFileTable on DamFile { id name @@ -38,7 +38,7 @@ export const damFileTableFragment = gql` ${damFileThumbnailFragment} `; -export const damFolderTableFragment = gql` +const damFolderTableFragment = gql` fragment DamFolderTable on DamFolder { id name diff --git a/packages/admin/cms-admin/src/dam/DataGrid/duplicatedFilenames/ManualDuplicatedFilenamesHandler.tsx b/packages/admin/cms-admin/src/dam/DataGrid/duplicatedFilenames/ManualDuplicatedFilenamesHandler.tsx index 95cddb0c00..7517fa56ec 100644 --- a/packages/admin/cms-admin/src/dam/DataGrid/duplicatedFilenames/ManualDuplicatedFilenamesHandler.tsx +++ b/packages/admin/cms-admin/src/dam/DataGrid/duplicatedFilenames/ManualDuplicatedFilenamesHandler.tsx @@ -7,7 +7,7 @@ import { damAreFilenamesOccupied } from "./ManualDuplicatedFilenamesHandler.gql" import { GQLDamAreFilenamesOccupiedQuery, GQLDamAreFilenamesOccupiedQueryVariables } from "./ManualDuplicatedFilenamesHandler.gql.generated"; import { ManuallyHandleDuplicatedFilenamesDialog } from "./ManuallyHandleDuplicatedFilenamesDialog"; -export interface ManualDuplicatedFilenamesHandlerApi { +interface ManualDuplicatedFilenamesHandlerApi { checkForDuplicates: (fileData: FilenameData[]) => Promise; letUserHandleDuplicates: (fileData: FilenameData[]) => Promise<{ filenames: FilenameData[]; duplicateAction: DuplicateAction }>; } @@ -17,7 +17,7 @@ export interface FilenameData { folderId?: string; } -export const ManualDuplicatedFilenamesHandlerContext = createContext(undefined); +const ManualDuplicatedFilenamesHandlerContext = createContext(undefined); export const useManualDuplicatedFilenamesHandler = (): ManualDuplicatedFilenamesHandlerApi | undefined => { return useContext(ManualDuplicatedFilenamesHandlerContext); diff --git a/packages/admin/cms-admin/src/dam/DataGrid/selection/DamSelectionContext.tsx b/packages/admin/cms-admin/src/dam/DataGrid/selection/DamSelectionContext.tsx index ed82afa235..6c789a40bd 100644 --- a/packages/admin/cms-admin/src/dam/DataGrid/selection/DamSelectionContext.tsx +++ b/packages/admin/cms-admin/src/dam/DataGrid/selection/DamSelectionContext.tsx @@ -19,7 +19,7 @@ import { GQLRestoreFilesMutationVariables, } from "./DamSelectionContext.generated"; -export const damFileDownloadInfoFragment = gql` +const damFileDownloadInfoFragment = gql` fragment DamFileDownloadInfo on DamFile { id fileUrl @@ -57,7 +57,7 @@ interface DamSelectionApi { hasDownloadErrors: boolean; } -export const DamSelectionContext = createContext({ +const DamSelectionContext = createContext({ selectionMap: new Map(), setSelectionMap: () => { throw new Error("Missing DamSelectionContext. Please add a somewhere up in the tree."); diff --git a/packages/admin/cms-admin/src/dam/DataGrid/tags/LicenseValidityTags.tsx b/packages/admin/cms-admin/src/dam/DataGrid/tags/LicenseValidityTags.tsx index 65153923e4..c676462ae3 100644 --- a/packages/admin/cms-admin/src/dam/DataGrid/tags/LicenseValidityTags.tsx +++ b/packages/admin/cms-admin/src/dam/DataGrid/tags/LicenseValidityTags.tsx @@ -4,7 +4,7 @@ import { FormattedMessage } from "react-intl"; import { Tag } from "./Tag"; -export const LicenseNotValidYetTag = () => { +const LicenseNotValidYetTag = () => { return ( @@ -13,7 +13,7 @@ export const LicenseNotValidYetTag = () => { ); }; -export const LicenseExpiredTag = () => { +const LicenseExpiredTag = () => { return ( @@ -26,7 +26,7 @@ interface LicenseExpiresSoonTagProps { expirationDate: Date; } -export const LicenseExpiresSoonTag = ({ expirationDate }: LicenseExpiresSoonTagProps) => { +const LicenseExpiresSoonTag = ({ expirationDate }: LicenseExpiresSoonTagProps) => { return ( diff --git a/packages/admin/cms-admin/src/dam/DataGrid/useDamSearchHighlighting.ts b/packages/admin/cms-admin/src/dam/DataGrid/useDamSearchHighlighting.ts index 458c9504f4..e4d101df3a 100644 --- a/packages/admin/cms-admin/src/dam/DataGrid/useDamSearchHighlighting.ts +++ b/packages/admin/cms-admin/src/dam/DataGrid/useDamSearchHighlighting.ts @@ -6,7 +6,7 @@ import { TextMatch } from "../../common/MarkedMatches"; type DamItems = Array<{ id: string; name: string }>; export type DamItemMatches = Map; -export interface DamSearchHighlightingApi { +interface DamSearchHighlightingApi { matches: DamItemMatches; } diff --git a/packages/admin/cms-admin/src/dam/FileActions/ConfirmDeleteDialog.sc.ts b/packages/admin/cms-admin/src/dam/FileActions/ConfirmDeleteDialog.sc.ts index 5252274918..0d9a729844 100644 --- a/packages/admin/cms-admin/src/dam/FileActions/ConfirmDeleteDialog.sc.ts +++ b/packages/admin/cms-admin/src/dam/FileActions/ConfirmDeleteDialog.sc.ts @@ -1,5 +1,5 @@ import { Warning } from "@comet/admin-icons"; -import { Button, DialogContent, Theme } from "@mui/material"; +import { DialogContent, Theme } from "@mui/material"; import { styled } from "@mui/material/styles"; export const ConfirmDialogContent = styled(DialogContent)` @@ -32,11 +32,3 @@ export const WarningHeading = styled("h3")` export const WarningText = styled("p")` margin: 5px 0 0; `; - -export const ActionButton = styled(Button)` - font-weight: normal; -`; - -export const DeleteButton = styled(ActionButton)` - text-transform: uppercase; -`; diff --git a/packages/admin/cms-admin/src/dam/FileForm/Duplicates.tsx b/packages/admin/cms-admin/src/dam/FileForm/Duplicates.tsx index 4333dd3695..5375fe8515 100644 --- a/packages/admin/cms-admin/src/dam/FileForm/Duplicates.tsx +++ b/packages/admin/cms-admin/src/dam/FileForm/Duplicates.tsx @@ -16,7 +16,7 @@ import { FormattedMessage } from "react-intl"; import { GQLDamFileDuplicatesQuery, GQLDamFileDuplicatesQueryVariables } from "./Duplicates.generated"; -export const damFileDuplicatesQuery = gql` +const damFileDuplicatesQuery = gql` query DamFileDuplicates($id: ID!) { damFile(id: $id) { duplicates { diff --git a/packages/admin/cms-admin/src/dam/FileForm/EditFile.gql.ts b/packages/admin/cms-admin/src/dam/FileForm/EditFile.gql.ts index 486029d64b..f9b7787214 100644 --- a/packages/admin/cms-admin/src/dam/FileForm/EditFile.gql.ts +++ b/packages/admin/cms-admin/src/dam/FileForm/EditFile.gql.ts @@ -1,6 +1,6 @@ import { gql } from "@apollo/client"; -export const damFileDetailFragment = gql` +const damFileDetailFragment = gql` fragment DamFileDetail on DamFile { id folder { diff --git a/packages/admin/cms-admin/src/dependencies/DependenciesConfig.tsx b/packages/admin/cms-admin/src/dependencies/DependenciesConfig.tsx index 97a790c24e..8315f49f8a 100644 --- a/packages/admin/cms-admin/src/dependencies/DependenciesConfig.tsx +++ b/packages/admin/cms-admin/src/dependencies/DependenciesConfig.tsx @@ -2,7 +2,7 @@ import { createContext, PropsWithChildren, useContext } from "react"; import { DependencyInterface } from "./types"; -export interface EntityDependencyMap { +interface EntityDependencyMap { [graphqlObjectType: string]: DependencyInterface; } diff --git a/packages/admin/cms-admin/src/dependencies/DependencyList.tsx b/packages/admin/cms-admin/src/dependencies/DependencyList.tsx index a66a0e47f1..51f743ddae 100644 --- a/packages/admin/cms-admin/src/dependencies/DependencyList.tsx +++ b/packages/admin/cms-admin/src/dependencies/DependencyList.tsx @@ -13,7 +13,7 @@ import { useDependenciesConfig } from "./DependenciesConfig"; import * as sc from "./DependencyList.sc"; import { DependencyInterface } from "./types"; -export type DependencyItem = Pick & { +type DependencyItem = Pick & { id: string; graphqlObjectType: string; }; diff --git a/packages/admin/cms-admin/src/documents/types.ts b/packages/admin/cms-admin/src/documents/types.ts index 008674132f..d93a5f5d89 100644 --- a/packages/admin/cms-admin/src/documents/types.ts +++ b/packages/admin/cms-admin/src/documents/types.ts @@ -17,7 +17,7 @@ export interface GQLPageQueryVariables { id: string; } -export interface GQLUpdatePageMutation { +interface GQLUpdatePageMutation { id: string; } diff --git a/packages/admin/cms-admin/src/form/file/FileField.gql.ts b/packages/admin/cms-admin/src/form/file/FileField.gql.ts index 5b8f742b58..fd52712eb7 100644 --- a/packages/admin/cms-admin/src/form/file/FileField.gql.ts +++ b/packages/admin/cms-admin/src/form/file/FileField.gql.ts @@ -1,6 +1,6 @@ import { gql } from "@apollo/client"; -export const damFileFieldFragment = gql` +const damFileFieldFragment = gql` fragment DamFileFieldFile on DamFile { id name diff --git a/packages/admin/cms-admin/src/form/useFormSaveConflict.tsx b/packages/admin/cms-admin/src/form/useFormSaveConflict.tsx index 4cd595b35f..16f4503eda 100644 --- a/packages/admin/cms-admin/src/form/useFormSaveConflict.tsx +++ b/packages/admin/cms-admin/src/form/useFormSaveConflict.tsx @@ -3,7 +3,7 @@ import { MutableRefObject } from "react"; import { useSaveConflict } from "../pages/useSaveConflict"; -export interface FormSaveConflictOptions { +interface FormSaveConflictOptions { checkConflict: () => Promise; formApiRef: MutableRefObject | undefined>; loadLatestVersion: () => Promise; diff --git a/packages/admin/cms-admin/src/generator/future/generateForm.ts b/packages/admin/cms-admin/src/generator/future/generateForm.ts index 8570513d4b..5c49d7dc76 100644 --- a/packages/admin/cms-admin/src/generator/future/generateForm.ts +++ b/packages/admin/cms-admin/src/generator/future/generateForm.ts @@ -2,7 +2,7 @@ import { IntrospectionQuery } from "graphql"; import { generateFields, GenerateFieldsReturn } from "./generateForm/generateFields"; import { getForwardedGqlArgs } from "./generateForm/getForwardedGqlArgs"; -import { FormConfig, FormFieldConfig, GeneratorReturn, isFormFieldConfig, isFormLayoutConfig } from "./generator"; +import { FormConfig, FormFieldConfig, GeneratorReturn, GQLDocumentConfigMap, isFormFieldConfig, isFormLayoutConfig } from "./generator"; import { findMutationTypeOrThrow } from "./utils/findMutationType"; import { generateImportsCode, Imports } from "./utils/generateImportsCode"; @@ -41,7 +41,8 @@ export function generateForm( const gqlType = config.gqlType; const instanceGqlType = gqlType[0].toLowerCase() + gqlType.substring(1); const formFragmentName = config.fragmentName ?? `${gqlType}Form`; - const gqlDocuments: Record = {}; + const gqlDocuments: GQLDocumentConfigMap = {}; + const imports: Imports = []; const props: Prop[] = []; @@ -133,7 +134,10 @@ export function generateForm( gqlType: config.gqlType, }); for (const name in generatedFields.gqlDocuments) { - gqlDocuments[name] = generatedFields.gqlDocuments[name]; + gqlDocuments[name] = { + document: generatedFields.gqlDocuments[name].document, + export: true, + }; } imports.push(...generatedFields.imports); hooksCode += generatedFields.hooksCode; @@ -141,16 +145,20 @@ export function generateForm( formFragmentFields.push(...generatedFields.formFragmentFields); formValuesConfig.push(...generatedFields.formValuesConfig); - gqlDocuments[`${instanceGqlType}FormFragment`] = ` + gqlDocuments[`${instanceGqlType}FormFragment`] = { + document: ` fragment ${formFragmentName} on ${gqlType} { ${formFragmentFields.join("\n")} } ${fileFields.length > 0 && fileFields.length !== downloadableFileFields.length ? "${finalFormFileUploadFragment}" : ""} ${downloadableFileFields.length > 0 ? "${finalFormFileUploadDownloadableFragment}" : ""} - `; + `, + export: editMode, + }; if (editMode) { - gqlDocuments[`${instanceGqlType}Query`] = ` + gqlDocuments[`${instanceGqlType}Query`] = { + document: ` query ${gqlType}($id: ID!) { ${instanceGqlType}(id: $id) { id @@ -159,42 +167,48 @@ export function generateForm( } } \${${`${instanceGqlType}FormFragment`}} - `; + `, + export: true, + }; } if (addMode && createMutationType) { - gqlDocuments[`create${gqlType}Mutation`] = ` + gqlDocuments[`create${gqlType}Mutation`] = { + document: ` mutation Create${gqlType}(${ - gqlArgs.filter((gqlArg) => !gqlArg.isInputArgSubfield).length - ? `${gqlArgs - .filter((gqlArg) => !gqlArg.isInputArgSubfield) - .map((gqlArg) => { - return `$${gqlArg.name}: ${gqlArg.type}!`; - }) - .join(", ")}, ` - : `` - }$input: ${gqlType}Input!) { + gqlArgs.filter((gqlArg) => !gqlArg.isInputArgSubfield).length + ? `${gqlArgs + .filter((gqlArg) => !gqlArg.isInputArgSubfield) + .map((gqlArg) => { + return `$${gqlArg.name}: ${gqlArg.type}!`; + }) + .join(", ")}, ` + : `` + }$input: ${gqlType}Input!) { ${createMutationType.name}(${ - gqlArgs.filter((gqlArg) => !gqlArg.isInputArgSubfield).length - ? `${gqlArgs - .filter((gqlArg) => !gqlArg.isInputArgSubfield) - .map((gqlArg) => { - return `${gqlArg.name}: $${gqlArg.name}`; - }) - .join(", ")}, ` - : `` - }input: $input) { + gqlArgs.filter((gqlArg) => !gqlArg.isInputArgSubfield).length + ? `${gqlArgs + .filter((gqlArg) => !gqlArg.isInputArgSubfield) + .map((gqlArg) => { + return `${gqlArg.name}: $${gqlArg.name}`; + }) + .join(", ")}, ` + : `` + }input: $input) { id updatedAt ...${formFragmentName} } } \${${`${instanceGqlType}FormFragment`}} - `; + `, + export: true, + }; } if (editMode) { - gqlDocuments[`update${gqlType}Mutation`] = ` + gqlDocuments[`update${gqlType}Mutation`] = { + document: ` mutation Update${gqlType}($id: ID!, $input: ${gqlType}UpdateInput!) { update${gqlType}(id: $id, input: $input) { id @@ -203,7 +217,9 @@ export function generateForm( } } \${${`${instanceGqlType}FormFragment`}} - `; + `, + export: true, + }; } for (const name in gqlDocuments) { @@ -212,7 +228,7 @@ export function generateForm( name: name, importPath: `./${baseOutputFilename}.gql`, }); - const match = gqlDocument.match(/^\s*(query|mutation|fragment)\s+(\w+)/); + const match = gqlDocument.document.match(/^\s*(query|mutation|fragment)\s+(\w+)/); if (!match) throw new Error(`Could not find query or mutation name in ${gqlDocument}`); const type = match[1]; const documentName = match[2]; diff --git a/packages/admin/cms-admin/src/generator/future/generateForm/generateFields.ts b/packages/admin/cms-admin/src/generator/future/generateForm/generateFields.ts index fd429b7df8..98227a5642 100644 --- a/packages/admin/cms-admin/src/generator/future/generateForm/generateFields.ts +++ b/packages/admin/cms-admin/src/generator/future/generateForm/generateFields.ts @@ -1,6 +1,6 @@ import { IntrospectionQuery } from "graphql"; -import { FormConfig, GeneratorReturn, isFormFieldConfig, isFormLayoutConfig } from "../generator"; +import { FormConfig, GeneratorReturn, GQLDocumentConfigMap, isFormFieldConfig, isFormLayoutConfig } from "../generator"; import { Imports } from "../utils/generateImportsCode"; import { generateFormField } from "./generateFormField"; import { generateFormLayout } from "./generateFormLayout"; @@ -50,7 +50,7 @@ export function generateFields({ gqlType: string; namePrefix?: string; }): GenerateFieldsReturn { - const gqlDocuments: Record = {}; + const gqlDocuments: GQLDocumentConfigMap = {}; let hooksCode = ""; let formValueToGqlInputCode = ""; const formFragmentFields: string[] = []; diff --git a/packages/admin/cms-admin/src/generator/future/generateForm/generateFormField.ts b/packages/admin/cms-admin/src/generator/future/generateForm/generateFormField.ts index df7cdf2201..e15ecf3a99 100644 --- a/packages/admin/cms-admin/src/generator/future/generateForm/generateFormField.ts +++ b/packages/admin/cms-admin/src/generator/future/generateForm/generateFormField.ts @@ -1,6 +1,6 @@ import { IntrospectionEnumType, IntrospectionInputValue, IntrospectionNamedTypeRef, IntrospectionObjectType, IntrospectionQuery } from "graphql"; -import { Adornment, FormConfig, FormFieldConfig, isFormFieldConfig } from "../generator"; +import { Adornment, FormConfig, FormFieldConfig, GQLDocumentConfigMap, isFormFieldConfig } from "../generator"; import { camelCaseToHumanReadable } from "../utils/camelCaseToHumanReadable"; import { findQueryTypeOrThrow } from "../utils/findQueryType"; import { Imports } from "../utils/generateImportsCode"; @@ -125,7 +125,7 @@ export function generateFormField({ }; let formValuesConfig: GenerateFieldsReturn["formValuesConfig"] = [defaultFormValuesConfig]; // FormFields should only contain one entry - const gqlDocuments: Record = {}; + const gqlDocuments: GQLDocumentConfigMap = {}; const hooksCode = ""; let finalFormConfig: GenerateFieldsReturn["finalFormConfig"]; diff --git a/packages/admin/cms-admin/src/generator/future/generateForm/generateFormLayout.ts b/packages/admin/cms-admin/src/generator/future/generateForm/generateFormLayout.ts index 6b3b8addca..bac6837f7d 100644 --- a/packages/admin/cms-admin/src/generator/future/generateForm/generateFormLayout.ts +++ b/packages/admin/cms-admin/src/generator/future/generateForm/generateFormLayout.ts @@ -1,6 +1,6 @@ import { IntrospectionObjectType, IntrospectionQuery } from "graphql"; -import { FormConfig, FormLayoutConfig } from "../generator"; +import { FormConfig, FormLayoutConfig, GQLDocumentConfigMap } from "../generator"; import { camelCaseToHumanReadable } from "../utils/camelCaseToHumanReadable"; import { Imports } from "../utils/generateImportsCode"; import { generateFields, GenerateFieldsReturn } from "./generateFields"; @@ -32,7 +32,7 @@ export function generateFormLayout({ let hooksCode = ""; let formValueToGqlInputCode = ""; const formFragmentFields: string[] = []; - const gqlDocuments: Record = {}; + const gqlDocuments: GQLDocumentConfigMap = {}; const imports: Imports = []; const formValuesConfig: GenerateFieldsReturn["formValuesConfig"] = []; const finalFormConfig = { subscription: {}, renderProps: {} }; diff --git a/packages/admin/cms-admin/src/generator/future/generateGrid.ts b/packages/admin/cms-admin/src/generator/future/generateGrid.ts index 893a4298b2..8250efa1e1 100644 --- a/packages/admin/cms-admin/src/generator/future/generateGrid.ts +++ b/packages/admin/cms-admin/src/generator/future/generateGrid.ts @@ -16,7 +16,14 @@ import { generateGqlFieldList } from "./generateGrid/generateGqlFieldList"; import { generateGridToolbar } from "./generateGrid/generateGridToolbar"; import { getForwardedGqlArgs } from "./generateGrid/getForwardedGqlArgs"; import { getPropsForFilterProp } from "./generateGrid/getPropsForFilterProp"; -import { ActionsGridColumnConfig, GeneratorReturn, GridColumnConfig, GridConfig, StaticSelectLabelCellContent } from "./generator"; +import { + ActionsGridColumnConfig, + GeneratorReturn, + GQLDocumentConfigMap, + GridColumnConfig, + GridConfig, + StaticSelectLabelCellContent, +} from "./generator"; import { camelCaseToHumanReadable } from "./utils/camelCaseToHumanReadable"; import { findMutationType } from "./utils/findMutationType"; import { findQueryTypeOrThrow } from "./utils/findQueryType"; @@ -154,7 +161,7 @@ export function generateGrid( const instanceGqlType = gqlType[0].toLowerCase() + gqlType.substring(1); const instanceGqlTypePlural = gqlTypePlural[0].toLowerCase() + gqlTypePlural.substring(1); const gridQuery = config.query ? config.query : instanceGqlType != instanceGqlTypePlural ? instanceGqlTypePlural : `${instanceGqlTypePlural}List`; - const gqlDocuments: Record = {}; + const gqlDocuments: GQLDocumentConfigMap = {}; const imports: Imports = []; const iconsToImport: string[] = ["Add", "Edit"]; const props: Prop[] = []; diff --git a/packages/admin/cms-admin/src/generator/future/generator.ts b/packages/admin/cms-admin/src/generator/future/generator.ts index f21f11c2c9..1d098d79d5 100644 --- a/packages/admin/cms-admin/src/generator/future/generator.ts +++ b/packages/admin/cms-admin/src/generator/future/generator.ts @@ -113,7 +113,7 @@ export type FormConfig = { fields: (FormFieldConfig | FormLayoutConfig)[]; }; -export type TabsConfig = { type: "tabs"; tabs: { name: string; content: GeneratorConfig }[] }; +type TabsConfig = { type: "tabs"; tabs: { name: string; content: GeneratorConfig }[] }; export type BaseColumnConfig = Pick & { headerInfoTooltip?: string; @@ -162,7 +162,9 @@ export type GridConfig = { // eslint-disable-next-line @typescript-eslint/no-explicit-any export type GeneratorConfig = FormConfig | GridConfig | TabsConfig; -export type GeneratorReturn = { code: string; gqlDocuments: Record }; +type GQLDocumentConfig = { document: string; export: boolean }; +export type GQLDocumentConfigMap = Record; +export type GeneratorReturn = { code: string; gqlDocuments: GQLDocumentConfigMap }; export async function runFutureGenerate(filePattern = "src/**/*.cometGen.ts") { const schema = await loadSchema("./schema.gql", { @@ -196,7 +198,8 @@ export async function runFutureGenerate(filePattern = "src/**/*.cometGen.ts") { } outputCode += generated.code; for (const queryName in generated.gqlDocuments) { - gqlDocumentsOutputCode += `export const ${queryName} = gql\`${generated.gqlDocuments[queryName]}\`\n`; + const exportStatement = generated.gqlDocuments[queryName].export ? "export " : ""; + gqlDocumentsOutputCode += `${exportStatement} const ${queryName} = gql\`${generated.gqlDocuments[queryName].document}\`\n`; } } diff --git a/packages/admin/cms-admin/src/generator/future/utils/findQueryType.ts b/packages/admin/cms-admin/src/generator/future/utils/findQueryType.ts index b723887d5c..e3a6c8dc3f 100644 --- a/packages/admin/cms-admin/src/generator/future/utils/findQueryType.ts +++ b/packages/admin/cms-admin/src/generator/future/utils/findQueryType.ts @@ -1,6 +1,6 @@ import { IntrospectionObjectType, IntrospectionQuery } from "graphql"; -export function findQueryType(queryName: string, schema: IntrospectionQuery) { +function findQueryType(queryName: string, schema: IntrospectionQuery) { const queryType = schema.__schema.types.find((type) => type.name === schema.__schema.queryType.name) as IntrospectionObjectType | undefined; if (!queryType) throw new Error("Can't find Query type in gql schema"); const ret = queryType.fields.find((field) => field.name === queryName); diff --git a/packages/admin/cms-admin/src/generator/generateForm.ts b/packages/admin/cms-admin/src/generator/generateForm.ts index 1ac84002b0..3814ace887 100644 --- a/packages/admin/cms-admin/src/generator/generateForm.ts +++ b/packages/admin/cms-admin/src/generator/generateForm.ts @@ -67,14 +67,7 @@ export async function writeCrudForm(generatorConfig: CrudGeneratorConfig, schema } \${${instanceEntityName}FormFragment} \`; - - export const ${instanceEntityName}FormCheckForChangesQuery = gql\` - query ${entityName}FormCheckForChanges($id: ID!) { - ${instanceEntityName}(id: $id) { - updatedAt - } - } - \`; + export const create${entityName}Mutation = gql\` mutation Create${entityName}(${hasScope ? `$scope: ${entityName}ContentScopeInput!, ` : ""}$input: ${entityName}Input!) { diff --git a/packages/admin/cms-admin/src/pages/createEditPageNode.tsx b/packages/admin/cms-admin/src/pages/createEditPageNode.tsx index a19f6dfdfe..d17ab96275 100644 --- a/packages/admin/cms-admin/src/pages/createEditPageNode.tsx +++ b/packages/admin/cms-admin/src/pages/createEditPageNode.tsx @@ -31,7 +31,7 @@ import { type SerializedInitialValues = string; -export interface EditPageNodeFinalFormValues { +interface EditPageNodeFinalFormValues { [key: string]: unknown; } diff --git a/packages/admin/cms-admin/src/pages/createUsePage.tsx b/packages/admin/cms-admin/src/pages/createUsePage.tsx index 0c543fda87..1acee5b0cf 100644 --- a/packages/admin/cms-admin/src/pages/createUsePage.tsx +++ b/packages/admin/cms-admin/src/pages/createUsePage.tsx @@ -75,7 +75,7 @@ type ReplaceBlockInputDataWithBlockState | n [K in keyof Doc]: K extends "id" ? string : K extends keyof RootBlocks ? BlockState : Doc[K]; // key id is always a string and never a block }; -export type PageState< +type PageState< GQLEditPageQuery extends GQLEditPageQueryInterface | null, RootBlocks extends RootBlocksInterface, PageType extends string, diff --git a/packages/admin/cms-admin/src/pages/pageTree/BottomAddLink.tsx b/packages/admin/cms-admin/src/pages/pageTree/BottomAddLink.tsx deleted file mode 100644 index 3e9643634b..0000000000 --- a/packages/admin/cms-admin/src/pages/pageTree/BottomAddLink.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { messages } from "@comet/admin"; -import { Add } from "@comet/admin-icons"; -import { Button, Divider } from "@mui/material"; -import { styled } from "@mui/material/styles"; -import { FormattedMessage } from "react-intl"; - -interface Props { - onClick: () => void; -} - -export default function BottomAddLink({ onClick }: Props) { - return ( - <> - - } fullWidth> - - - - ); -} - -const AddButton = styled(Button)` - padding-top: 17px; - padding-bottom: 17px; -`; diff --git a/packages/admin/cms-admin/src/pages/pageTree/PageDeleteDialog.tsx b/packages/admin/cms-admin/src/pages/pageTree/PageDeleteDialog.tsx index 71766713bf..0b5e22e0be 100644 --- a/packages/admin/cms-admin/src/pages/pageTree/PageDeleteDialog.tsx +++ b/packages/admin/cms-admin/src/pages/pageTree/PageDeleteDialog.tsx @@ -9,7 +9,7 @@ import { GQLPageTreePageFragment } from "../pageTree/usePageTree"; import { DeleteContentInformation, PageCount, PageVisibility, WarningIcon, WarningIconWrapper } from "./PageDeleteDialog.sc"; import { PageVisibilityIcon } from "./PageVisibilityIcon"; -export interface PageDeleteDialogProps { +interface PageDeleteDialogProps { dialogOpen: boolean; handleCancelClick: () => void; handleDeleteClick: () => void; diff --git a/packages/admin/cms-admin/src/pages/pageTree/PageTreeRow.sc.tsx b/packages/admin/cms-admin/src/pages/pageTree/PageTreeRow.sc.tsx index 4336bc54ac..e342dad7df 100644 --- a/packages/admin/cms-admin/src/pages/pageTree/PageTreeRow.sc.tsx +++ b/packages/admin/cms-admin/src/pages/pageTree/PageTreeRow.sc.tsx @@ -1,7 +1,7 @@ import { TableCell } from "@mui/material"; import { styled } from "@mui/material/styles"; -export const PageTreeCell = styled(TableCell)` +const PageTreeCell = styled(TableCell)` border: none; height: 100%; display: flex; diff --git a/packages/admin/cms-admin/src/pages/pageTree/PageTreeRow.tsx b/packages/admin/cms-admin/src/pages/pageTree/PageTreeRow.tsx index 851d26149f..71c5879347 100644 --- a/packages/admin/cms-admin/src/pages/pageTree/PageTreeRow.tsx +++ b/packages/admin/cms-admin/src/pages/pageTree/PageTreeRow.tsx @@ -39,7 +39,7 @@ interface PageTreeRowProps { selectedPages: PageTreePage[]; } -export interface PageTreeTableRowElement extends HTMLTableRowElement { +interface PageTreeTableRowElement extends HTMLTableRowElement { previousElementSibling: HTMLTableRowElement | null; nextElementSibling: HTMLTableRowElement | null; } diff --git a/packages/admin/cms-admin/src/pages/pageTree/PageTreeService.ts b/packages/admin/cms-admin/src/pages/pageTree/PageTreeService.ts index ee6ec3e1da..9fa27208ef 100644 --- a/packages/admin/cms-admin/src/pages/pageTree/PageTreeService.ts +++ b/packages/admin/cms-admin/src/pages/pageTree/PageTreeService.ts @@ -1,13 +1,13 @@ import { DropTarget, DropTargetBeforeAfter } from "./PageTreeRow"; import { PageTreePage } from "./usePageTree"; -export interface PageTreeUpdateInfo { +interface PageTreeUpdateInfo { parentId: string | null; position: number; neighbourPage: PageTreePage; } -export interface PageTreeUndoUpdateInfo { +interface PageTreeUndoUpdateInfo { afterId: string | null; beforeId: string | null; } diff --git a/packages/admin/cms-admin/src/pages/pageTree/treemap/TreeMapUtils.ts b/packages/admin/cms-admin/src/pages/pageTree/treemap/TreeMapUtils.ts index 8385cd01b1..2124566768 100644 --- a/packages/admin/cms-admin/src/pages/pageTree/treemap/TreeMapUtils.ts +++ b/packages/admin/cms-admin/src/pages/pageTree/treemap/TreeMapUtils.ts @@ -24,7 +24,7 @@ export interface TreeMapNode { */ export class TreeMap extends Map> {} -export type TreeMapTraverseMode = "pre-order" | "post-order"; +type TreeMapTraverseMode = "pre-order" | "post-order"; export const traverse = ( tree: TreeMap, @@ -55,7 +55,7 @@ export const traversePreOrder = (tree: TreeMap, onTrav traverse("root", 1); }; -export const traversePostOrder = (tree: TreeMap, onTraverse: (element: T, level: number) => void): void => { +const traversePostOrder = (tree: TreeMap, onTraverse: (element: T, level: number) => void): void => { const traverse = (parentId: string, level = 1) => { const children = tree.get(parentId) || []; @@ -211,15 +211,3 @@ export const subTreeFromNodes = (nodeIds: string[], tree: return subTreeForParent(nodeIds); }; - -export const printTreeMap = (tree: TreeMap): void => { - traverse( - tree, - (element: T, level: number) => { - const indicator = "-".repeat(level); - // eslint-disable-next-line no-console - console.log(`${indicator} ${element.id}`); - }, - "pre-order", - ); -}; diff --git a/packages/admin/cms-admin/src/pages/pageTree/useCopyPastePages/ProgressDialog.tsx b/packages/admin/cms-admin/src/pages/pageTree/useCopyPastePages/ProgressDialog.tsx index eea77de432..75d3d62413 100644 --- a/packages/admin/cms-admin/src/pages/pageTree/useCopyPastePages/ProgressDialog.tsx +++ b/packages/admin/cms-admin/src/pages/pageTree/useCopyPastePages/ProgressDialog.tsx @@ -23,7 +23,7 @@ function LinearProgressWithLabel({ message, ...props }: LinearProgressProps & { ); } -export function ProgressDialog(props: { title: ReactNode; progress: number | undefined; message?: ReactNode; onCancel?: () => void }) { +function ProgressDialog(props: { title: ReactNode; progress: number | undefined; message?: ReactNode; onCancel?: () => void }) { return ( <> {props.progress !== undefined && ( diff --git a/packages/admin/cms-admin/src/pages/pageTree/usePageTree.ts b/packages/admin/cms-admin/src/pages/pageTree/usePageTree.ts index 176203b00a..a4eebb6195 100644 --- a/packages/admin/cms-admin/src/pages/pageTree/usePageTree.ts +++ b/packages/admin/cms-admin/src/pages/pageTree/usePageTree.ts @@ -23,7 +23,7 @@ export const pageTreePageFragment = gql` } `; -export interface PageTreePageAdditionalFieldsForUi { +interface PageTreePageAdditionalFieldsForUi { selected: boolean; expanded: boolean | null; ancestorIds: Array; diff --git a/packages/admin/cms-admin/src/pages/pageTreeSelect/PageTreeSelectDialog.tsx b/packages/admin/cms-admin/src/pages/pageTreeSelect/PageTreeSelectDialog.tsx index 7ab6ee38d4..a4ad89603b 100644 --- a/packages/admin/cms-admin/src/pages/pageTreeSelect/PageTreeSelectDialog.tsx +++ b/packages/admin/cms-admin/src/pages/pageTreeSelect/PageTreeSelectDialog.tsx @@ -23,7 +23,7 @@ import { PageTreePage, usePageTree } from "../pageTree/usePageTree"; import { GQLSelectedPageFragment } from "./PageTreeSelectDialog.generated"; import * as sc from "./PageTreeSelectDialog.sc"; -export { GQLSelectedPageFragment } from "./PageTreeSelectDialog.generated"; +export { GQLSelectedPageFragment }; export const selectedPageFragment = gql` fragment SelectedPage on PageTreeNode { diff --git a/packages/admin/cms-admin/src/pages/pagesPage/PageCanNotDeleteDialog.tsx b/packages/admin/cms-admin/src/pages/pagesPage/PageCanNotDeleteDialog.tsx index f3861df7fe..4467c0a58f 100644 --- a/packages/admin/cms-admin/src/pages/pagesPage/PageCanNotDeleteDialog.tsx +++ b/packages/admin/cms-admin/src/pages/pagesPage/PageCanNotDeleteDialog.tsx @@ -2,7 +2,7 @@ import { messages } from "@comet/admin"; import { Button, Dialog, DialogActions, DialogContent, DialogTitle } from "@mui/material"; import { FormattedMessage } from "react-intl"; -export interface PageCanNotDeleteDialogProps { +interface PageCanNotDeleteDialogProps { dialogOpen: boolean; onClosePressed: () => void; } diff --git a/packages/admin/cms-admin/src/pages/pagesPage/PagesPageActionToolbar.tsx b/packages/admin/cms-admin/src/pages/pagesPage/PagesPageActionToolbar.tsx index d708349114..04600c4c10 100644 --- a/packages/admin/cms-admin/src/pages/pagesPage/PagesPageActionToolbar.tsx +++ b/packages/admin/cms-admin/src/pages/pagesPage/PagesPageActionToolbar.tsx @@ -24,7 +24,7 @@ interface ConfirmActionState { handleAction: () => void; } -export interface PagesPageActionToolbarProps { +interface PagesPageActionToolbarProps { selectedState: PageTreeSelectionState; onSelectAllPressed: () => void; diff --git a/packages/admin/cms-admin/src/pages/pagesPage/createPagesQuery.ts b/packages/admin/cms-admin/src/pages/pagesPage/createPagesQuery.ts index 72446a53f2..f4b3c5d35e 100644 --- a/packages/admin/cms-admin/src/pages/pagesPage/createPagesQuery.ts +++ b/packages/admin/cms-admin/src/pages/pagesPage/createPagesQuery.ts @@ -3,6 +3,7 @@ import { DocumentNode } from "graphql"; import { pageSearchFragment } from "../pageSearch/usePageSearch"; import { pageTreePageFragment } from "../pageTree/usePageTree"; +import { selectedPageFragment } from "../pageTreeSelect/PageTreeSelectDialog"; export { GQLPageTreePageFragment } from "../pageTree/usePageTree"; export { GQLPagesQuery, GQLPagesQueryVariables } from "./createPagesQuery.generated"; @@ -18,9 +19,11 @@ export const createPagesQuery = ({ additionalPageTreeNodeFragment }: CreatePages id ...PageTreePage ...PageSearch + ...SelectedPage ${additionalPageTreeNodeFragment ? "...".concat(additionalPageTreeNodeFragment.name) : ""} } } + ${selectedPageFragment} ${pageTreePageFragment} ${pageSearchFragment} ${additionalPageTreeNodeFragment?.fragment ?? ""} diff --git a/packages/admin/cms-admin/src/pages/useSaveConflict.tsx b/packages/admin/cms-admin/src/pages/useSaveConflict.tsx index 95fd368a76..0b5dcf0eb3 100644 --- a/packages/admin/cms-admin/src/pages/useSaveConflict.tsx +++ b/packages/admin/cms-admin/src/pages/useSaveConflict.tsx @@ -5,7 +5,7 @@ import { FormattedMessage } from "react-intl"; import { SaveConflictDialog } from "./SaveConflictDialog"; -export interface SaveConflictOptions { +interface SaveConflictOptions { checkConflict: () => Promise; hasChanges: () => boolean; loadLatestVersion: () => Promise; diff --git a/packages/admin/cms-admin/src/preview/block/SplitPreview.sc.ts b/packages/admin/cms-admin/src/preview/block/SplitPreview.sc.ts index 70a811cce2..44c3d5e8a7 100644 --- a/packages/admin/cms-admin/src/preview/block/SplitPreview.sc.ts +++ b/packages/admin/cms-admin/src/preview/block/SplitPreview.sc.ts @@ -19,12 +19,6 @@ export const Column = styled("div")` height: ${({ height }) => height}px; `; -export const ScrollingContent = styled("div")` - height: 100%; - overflow-y: auto; - overflow-x: hidden; -`; - export const Split = styled(ReactSplit)` min-height: 0; flex: 1; diff --git a/packages/admin/cms-admin/src/preview/site/SitePreview.sc.tsx b/packages/admin/cms-admin/src/preview/site/SitePreview.sc.tsx index 35fc6bda78..805c667515 100644 --- a/packages/admin/cms-admin/src/preview/site/SitePreview.sc.tsx +++ b/packages/admin/cms-admin/src/preview/site/SitePreview.sc.tsx @@ -1,4 +1,4 @@ -import { Button, Link } from "@mui/material"; +import { Link } from "@mui/material"; import { styled } from "@mui/material/styles"; export const Root = styled("div")` @@ -7,16 +7,6 @@ export const Root = styled("div")` height: 100vh; `; -export const StyledButton = styled(Button)` - width: 50px; - height: 50px; - border: none; - border-radius: 0; - border-bottom: 2px solid transparent; - border-left: 1px solid #2e3440; - color: ${({ theme }) => theme.palette.common.white}; -`; - export const SiteInformation = styled("div")` display: flex; align-items: center; diff --git a/packages/admin/cms-admin/src/preview/site/iframebridge/SitePreviewIFrameMessage.ts b/packages/admin/cms-admin/src/preview/site/iframebridge/SitePreviewIFrameMessage.ts index a70d65cf5d..b3ff46406b 100644 --- a/packages/admin/cms-admin/src/preview/site/iframebridge/SitePreviewIFrameMessage.ts +++ b/packages/admin/cms-admin/src/preview/site/iframebridge/SitePreviewIFrameMessage.ts @@ -8,7 +8,7 @@ export enum SitePreviewIFrameMessageType { SitePreviewLocation = "SitePreviewLocation", } -export interface SitePreviewIFrameOpenLinkMessage { +interface SitePreviewIFrameOpenLinkMessage { cometType: SitePreviewIFrameMessageType.OpenLink; data: { link: ExternalLinkBlockData; diff --git a/packages/admin/cms-admin/src/react-split.d.ts b/packages/admin/cms-admin/src/react-split.d.ts deleted file mode 100644 index 44c265bfbc..0000000000 --- a/packages/admin/cms-admin/src/react-split.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -declare module "react-split" { - import { HTMLProps, ReactElement, ReactNode } from "react"; - import { CSSStyleDeclarationPartial } from "split.js"; - - export interface SplitProps extends Omit, "sizes"> { - // Initial sizes of each element in percents or CSS values. - sizes?: number[]; - - // Minimum size of each element. - minSize?: number | number[]; - - expandToMin?: boolean; - - // Gutter size in pixels. - gutterSize?: number; - - gutterAlign?: string; - - // Snap to minimum size offset in pixels. - snapOffset?: number; - - dragInterval?: number; - - // Direction to split: horizontal or vertical. - direction?: "horizontal" | "vertical"; - - // Cursor to display while dragging. - cursor?: string; - - // Callback on drag. - onDrag?(): void; - - // Callback on drag start. - onDragStart?(): void; - - // Callback on drag end. - onDragEnd?(): void; - - // Called to create each gutter element - gutter?(index: number, direction: "horizontal" | "vertical"): HTMLElement; - - // Called to set the style of each element. - elementStyle?(dimension: "width" | "height", elementSize: number, gutterSize: number, index: number): CSSStyleDeclarationPartial; - - // Called to set the style of the gutter. - gutterStyle?(dimension: "width" | "height", gutterSize: number, index: number): CSSStyleDeclarationPartial; - - children: ReactNode; - } - - const Split: (props: SplitProps) => ReactElement; - - export default Split; -} diff --git a/packages/admin/cms-admin/src/redirects/RedirectActiveness.tsx b/packages/admin/cms-admin/src/redirects/RedirectActiveness.tsx index 28754f91ed..6fcba576f8 100644 --- a/packages/admin/cms-admin/src/redirects/RedirectActiveness.tsx +++ b/packages/admin/cms-admin/src/redirects/RedirectActiveness.tsx @@ -11,7 +11,7 @@ import { GQLUpdateRedirectActivenessMutationVariables, } from "./RedirectActiveness.generated"; -export const updateRedirectActivenessMutation = gql` +const updateRedirectActivenessMutation = gql` mutation UpdateRedirectActiveness($id: ID!, $input: RedirectUpdateActivenessInput!) { updateRedirectActiveness(id: $id, input: $input) { id diff --git a/packages/admin/cms-admin/src/redirects/RedirectForm.gql.ts b/packages/admin/cms-admin/src/redirects/RedirectForm.gql.ts index 7d05b472d8..545e90154e 100644 --- a/packages/admin/cms-admin/src/redirects/RedirectForm.gql.ts +++ b/packages/admin/cms-admin/src/redirects/RedirectForm.gql.ts @@ -1,6 +1,6 @@ import { gql } from "@apollo/client"; -export const redirectDetailFragment = gql` +const redirectDetailFragment = gql` fragment RedirectDetail on Redirect { id sourceType diff --git a/packages/admin/cms-admin/src/redirects/RedirectsGrid.gql.ts b/packages/admin/cms-admin/src/redirects/RedirectsGrid.gql.ts index 29124d523a..c191507a98 100644 --- a/packages/admin/cms-admin/src/redirects/RedirectsGrid.gql.ts +++ b/packages/admin/cms-admin/src/redirects/RedirectsGrid.gql.ts @@ -2,17 +2,9 @@ import { gql } from "@apollo/client"; import { redirectActivenessFragment } from "./RedirectActiveness"; -export const redirectTargetPageFragment = gql` - fragment RedirectTargetPage on PageTreeNode { - id - name - path - } -`; - // @TODO: consider content-scope in query // -export const redirectTableFragment = gql` +const redirectTableFragment = gql` fragment RedirectTable on Redirect { id active diff --git a/packages/api/cms-api/jest.config.js b/packages/api/cms-api/jest.config.js deleted file mode 100644 index 89748a3ffc..0000000000 --- a/packages/api/cms-api/jest.config.js +++ /dev/null @@ -1,8 +0,0 @@ -/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */ -module.exports = { - preset: "ts-jest", - testEnvironment: "node", - reporters: ["default", "jest-junit"], - rootDir: "./src", - setupFiles: ["../jest-setup-file.ts"], -}; diff --git a/packages/api/cms-api/jest.config.ts b/packages/api/cms-api/jest.config.ts new file mode 100644 index 0000000000..40b63ea772 --- /dev/null +++ b/packages/api/cms-api/jest.config.ts @@ -0,0 +1,8 @@ +module.exports = { + setupFilesAfterEnv: ["./jest-setup-file.ts"], + reporters: ["default", "jest-junit"], + testEnvironment: "node", + transform: { + "\\.[jt]sx?$": "ts-jest", + }, +}; diff --git a/packages/api/cms-api/package.json b/packages/api/cms-api/package.json index d5a8e12028..66943899cf 100644 --- a/packages/api/cms-api/package.json +++ b/packages/api/cms-api/package.json @@ -39,11 +39,9 @@ "@fast-csv/parse": "^4.3.6", "@golevelup/nestjs-discovery": "^4.0.2", "@hapi/accept": "^5.0.2", - "@nestjs/jwt": "^10.2.0", "@nestjs/mapped-types": "^2.0.6", "@nestjs/passport": "^10.0.3", "@opentelemetry/api": "^1.9.0", - "@smithy/node-http-handler": "3.1.4", "@types/get-image-colors": "^4.0.0", "base64url": "^3.0.0", "class-transformer": "^0.5.0", diff --git a/packages/api/cms-api/src/access-log/access-log.module.ts b/packages/api/cms-api/src/access-log/access-log.module.ts index 67fb8658b3..cfd8fab5f0 100644 --- a/packages/api/cms-api/src/access-log/access-log.module.ts +++ b/packages/api/cms-api/src/access-log/access-log.module.ts @@ -8,7 +8,7 @@ import { SystemUser } from "../user-permissions/user-permissions.types"; import { ACCESS_LOG_CONFIG } from "./access-log.constants"; import { AccessLogInterceptor } from "./access-log.interceptor"; -export type ShouldLogRequest = ({ user, req }: { user?: CurrentUser | SystemUser; req: Request }) => boolean; +type ShouldLogRequest = ({ user, req }: { user?: CurrentUser | SystemUser; req: Request }) => boolean; type AccessLogModuleOptions = AccessLogConfig; export interface AccessLogConfig { diff --git a/packages/api/cms-api/src/blob-storage/backends/blob-storage-backend.service.ts b/packages/api/cms-api/src/blob-storage/backends/blob-storage-backend.service.ts index 6f4e054936..857234c132 100644 --- a/packages/api/cms-api/src/blob-storage/backends/blob-storage-backend.service.ts +++ b/packages/api/cms-api/src/blob-storage/backends/blob-storage-backend.service.ts @@ -87,7 +87,7 @@ export class BlobStorageBackendService implements BlobStorageBackendInterface { } } -export const normalizeHeaders = (headers: CreateFileOptions["headers"]): CreateFileOptions["headers"] => { +const normalizeHeaders = (headers: CreateFileOptions["headers"]): CreateFileOptions["headers"] => { const result: CreateFileOptions["headers"] = {}; for (const [key, value] of Object.entries(headers)) { diff --git a/packages/api/cms-api/src/blocks/ExternalLinkBlock.ts b/packages/api/cms-api/src/blocks/ExternalLinkBlock.ts index 71443c97e8..01a48d05e1 100644 --- a/packages/api/cms-api/src/blocks/ExternalLinkBlock.ts +++ b/packages/api/cms-api/src/blocks/ExternalLinkBlock.ts @@ -28,4 +28,3 @@ class ExternalLinkBlockInput extends BlockInput { } export const ExternalLinkBlock = createBlock(ExternalLinkBlockData, ExternalLinkBlockInput, "ExternalLink"); -export type { ExternalLinkBlockData, ExternalLinkBlockInput }; diff --git a/packages/api/cms-api/src/blocks/block.ts b/packages/api/cms-api/src/blocks/block.ts index 52508c4a29..b4e3fa6428 100644 --- a/packages/api/cms-api/src/blocks/block.ts +++ b/packages/api/cms-api/src/blocks/block.ts @@ -123,7 +123,7 @@ type WithoutBlockInputMethods> = Omit = T extends (infer U)[] ? U : T extends (...args: any[]) => infer U ? U : T extends Promise ? U : T; -export type NestedToPlainReturn> = WithoutBlockInputMethods<{ +type NestedToPlainReturn> = WithoutBlockInputMethods<{ [Key in keyof T]: T[Key] extends BlockInputInterface | undefined // value is a BlockInputInterface ? ReturnType["toPlain"]> : T[Key] extends BlockInputInterface[] | undefined // value is an array of BlockInputInterfaces @@ -131,9 +131,7 @@ export type NestedToPlainReturn> = WithoutBlockInp : T[Key]; }>; -export type CreateToPlainReturn = [FactoryProps] extends [ - undefined, -] +type CreateToPlainReturn = [FactoryProps] extends [undefined] ? NestedToPlainReturn : FactoryProps; diff --git a/packages/api/cms-api/src/blocks/factories/columns-block.factory.ts b/packages/api/cms-api/src/blocks/factories/columns-block.factory.ts index dcb7368ee3..56a94cff24 100644 --- a/packages/api/cms-api/src/blocks/factories/columns-block.factory.ts +++ b/packages/api/cms-api/src/blocks/factories/columns-block.factory.ts @@ -28,7 +28,7 @@ interface ColumnsBlockFactoryOptions { layouts: ColumnsBlockLayout[]; } -export interface ColumnsBlockInputInterface extends SimpleBlockInputInterface { +interface ColumnsBlockInputInterface extends SimpleBlockInputInterface { layout: string; columns: Array< { diff --git a/packages/api/cms-api/src/blocks/factories/createBlocksBlock.ts b/packages/api/cms-api/src/blocks/factories/createBlocksBlock.ts index de342a0268..0e670d9a1d 100644 --- a/packages/api/cms-api/src/blocks/factories/createBlocksBlock.ts +++ b/packages/api/cms-api/src/blocks/factories/createBlocksBlock.ts @@ -22,7 +22,7 @@ import { import { BlockField } from "../decorators/field"; import { BlockFactoryNameOrOptions } from "./types"; -export interface BlocksBlockItemDataInterface extends BlockData { +interface BlocksBlockItemDataInterface extends BlockData { key: string; visible: boolean; type: string; @@ -73,7 +73,7 @@ export function BaseBlocksBlockItemData(supported return BlocksBlockItemData; } -export interface BlocksBlockItemInputInterface extends BlockInput { +interface BlocksBlockItemInputInterface extends BlockInput { key: string; visible: boolean; type: string; diff --git a/packages/api/cms-api/src/blocks/factories/createListBlock.ts b/packages/api/cms-api/src/blocks/factories/createListBlock.ts index 949b180840..64651de0b4 100644 --- a/packages/api/cms-api/src/blocks/factories/createListBlock.ts +++ b/packages/api/cms-api/src/blocks/factories/createListBlock.ts @@ -20,7 +20,7 @@ import { import { BlockField } from "../decorators/field"; import { BlockFactoryNameOrOptions } from "./types"; -export interface ListBlockItemDataInterface extends BlockData { +interface ListBlockItemDataInterface extends BlockData { key: string; visible: boolean; props: BlockDataInterface; @@ -53,7 +53,7 @@ export function BaseListBlockItemData(block: B): ClassConstruct return ListBlockItemData; } -export interface ListBlockItemInputInterface extends BlockInput { +interface ListBlockItemInputInterface extends BlockInput { key: string; visible: boolean; props: Input; @@ -92,7 +92,7 @@ export function BaseListBlockItemInput( return ListBlockItemInput; } -export interface ListBlockInputInterface extends SimpleBlockInputInterface { +interface ListBlockInputInterface extends SimpleBlockInputInterface { blocks: Array< { key: string; diff --git a/packages/api/cms-api/src/blocks/factories/createRichTextBlock.ts b/packages/api/cms-api/src/blocks/factories/createRichTextBlock.ts index d68ba25a27..2622a020ea 100644 --- a/packages/api/cms-api/src/blocks/factories/createRichTextBlock.ts +++ b/packages/api/cms-api/src/blocks/factories/createRichTextBlock.ts @@ -58,11 +58,11 @@ interface DraftJsInput { }; } -export interface RichTextBlockDataInterface extends BlockDataInterface { +interface RichTextBlockDataInterface extends BlockDataInterface { draftContent: RawDraftContentState; } -export interface RichTextBlockInputInterface +interface RichTextBlockInputInterface extends BlockInputInterface }> { draftContent: DraftJsInput; } diff --git a/packages/api/cms-api/src/blocks/flat-blocks/flat-blocks.ts b/packages/api/cms-api/src/blocks/flat-blocks/flat-blocks.ts index 16133b716c..a28860ce80 100644 --- a/packages/api/cms-api/src/blocks/flat-blocks/flat-blocks.ts +++ b/packages/api/cms-api/src/blocks/flat-blocks/flat-blocks.ts @@ -36,7 +36,7 @@ export class FlatBlockNode { } } -export interface RootBlockInfo { +interface RootBlockInfo { visible: boolean; name: string; rootPath: string; diff --git a/packages/api/cms-api/src/blocks/search/test/blocks/NestedInvisibleChildren/BBlock.ts b/packages/api/cms-api/src/blocks/search/test/blocks/NestedInvisibleChildren/BBlock.ts index 2dc240a193..744058885a 100644 --- a/packages/api/cms-api/src/blocks/search/test/blocks/NestedInvisibleChildren/BBlock.ts +++ b/packages/api/cms-api/src/blocks/search/test/blocks/NestedInvisibleChildren/BBlock.ts @@ -7,7 +7,7 @@ import { BlockField } from "../../../../decorators/field"; import { SearchText } from "../../../get-search-text"; import { CBlock } from "./CBlock"; -export class BBlockData extends BlockData { +class BBlockData extends BlockData { @BlockField() titleB: string; @@ -19,7 +19,7 @@ export class BBlockData extends BlockData { } } -export class BBlockInput extends BlockInput { +class BBlockInput extends BlockInput { @IsString() @IsNotEmpty() @BlockField() diff --git a/packages/api/cms-api/src/blocks/validator/is-link-target.validator.ts b/packages/api/cms-api/src/blocks/validator/is-link-target.validator.ts index ff9da69cd9..d6864ee242 100644 --- a/packages/api/cms-api/src/blocks/validator/is-link-target.validator.ts +++ b/packages/api/cms-api/src/blocks/validator/is-link-target.validator.ts @@ -16,7 +16,7 @@ export const IsLinkTarget = () => { @ValidatorConstraint({ name: "IsLinkTarget" }) @Injectable() -export class IsLinkTargetConstraint implements ValidatorConstraintInterface { +class IsLinkTargetConstraint implements ValidatorConstraintInterface { validate(value: unknown): boolean { if (!isString(value)) { return false; diff --git a/packages/api/cms-api/src/blocks/validator/is-valid-you-tube-identifier.ts b/packages/api/cms-api/src/blocks/validator/is-valid-you-tube-identifier.ts index 032a7250e7..02ac1f0527 100644 --- a/packages/api/cms-api/src/blocks/validator/is-valid-you-tube-identifier.ts +++ b/packages/api/cms-api/src/blocks/validator/is-valid-you-tube-identifier.ts @@ -16,7 +16,7 @@ const EXPECTED_YT_ID_LENGTH = 11; @ValidatorConstraint({ name: "IsValidYoutubeIdentifier" }) @Injectable() -export class IsValidYouTubeIdentifierConstraint implements ValidatorConstraintInterface { +class IsValidYouTubeIdentifierConstraint implements ValidatorConstraintInterface { validate(value: unknown): boolean { if (!isString(value)) { return false; diff --git a/packages/api/cms-api/src/builds/builds.constants.ts b/packages/api/cms-api/src/builds/builds.constants.ts index 7a506b0ab9..70dbc3f3db 100644 --- a/packages/api/cms-api/src/builds/builds.constants.ts +++ b/packages/api/cms-api/src/builds/builds.constants.ts @@ -1,9 +1,6 @@ export const BUILDS_MODULE_OPTIONS = "builds-module-options"; export const BUILDS_CONFIG = "builds-config"; -/** Label which identifies the CronJob that checks if a build is needed */ -export const BUILD_CHECKER_LABEL = "comet-dxp.com/build-checker"; - /** Annotation for the build Job: defines who triggered the build (CronJob, Manual, ChangesDetected) */ export const TRIGGER_ANNOTATION = "comet-dxp.com/trigger"; diff --git a/packages/api/cms-api/src/content-generation/content-generation.module.ts b/packages/api/cms-api/src/content-generation/content-generation.module.ts index 4bf54aed9a..3cec9a7210 100644 --- a/packages/api/cms-api/src/content-generation/content-generation.module.ts +++ b/packages/api/cms-api/src/content-generation/content-generation.module.ts @@ -5,7 +5,7 @@ import { ContentGenerationServiceInterface } from "./content-generation-service. import { GenerateAltTextResolver } from "./generate-alt-text.resolver"; import { GenerateImageTitleResolver } from "./generate-image-title.resolver"; -export interface ContentGenerationModuleOptions { +interface ContentGenerationModuleOptions { Service: Type; imports?: ModuleMetadata["imports"]; } diff --git a/packages/api/cms-api/src/dam/blocks/dam-file-download-link.block.ts b/packages/api/cms-api/src/dam/blocks/dam-file-download-link.block.ts index 530ec63e86..9a7c4a0266 100644 --- a/packages/api/cms-api/src/dam/blocks/dam-file-download-link.block.ts +++ b/packages/api/cms-api/src/dam/blocks/dam-file-download-link.block.ts @@ -6,7 +6,7 @@ import { IsUndefinable } from "../../common/validators/is-undefinable"; import { FILE_ENTITY } from "../files/entities/file.entity"; import { DamFileDownloadLinkBlockTransformerService } from "./dam-file-download-link-block-transformer.service"; -export enum OpenFileTypeMethod { +enum OpenFileTypeMethod { NewTab = "NewTab", Download = "Download", } diff --git a/packages/api/cms-api/src/dam/common/decorators/has-valid-filename.decorator.ts b/packages/api/cms-api/src/dam/common/decorators/has-valid-filename.decorator.ts index d560da1732..00c27c631c 100644 --- a/packages/api/cms-api/src/dam/common/decorators/has-valid-filename.decorator.ts +++ b/packages/api/cms-api/src/dam/common/decorators/has-valid-filename.decorator.ts @@ -20,7 +20,7 @@ export const HasValidFilename = () => { }; }; -export interface HasValidFilenameValidationArguments extends ValidationArguments { +interface HasValidFilenameValidationArguments extends ValidationArguments { object: UpdateDamFileArgs; } diff --git a/packages/api/cms-api/src/dam/files/dto/copyFiles.types.ts b/packages/api/cms-api/src/dam/files/dto/copyFiles.types.ts index 2e54d07de9..c428a6d9e9 100644 --- a/packages/api/cms-api/src/dam/files/dto/copyFiles.types.ts +++ b/packages/api/cms-api/src/dam/files/dto/copyFiles.types.ts @@ -7,7 +7,7 @@ export interface CopyFilesResponseInterface { mappedFiles: Array; } -export interface MappedFileInterface { +interface MappedFileInterface { rootFile: FileInterface; copy: FileInterface; } diff --git a/packages/api/cms-api/src/dam/files/errors/filename-already-exists.exception.ts b/packages/api/cms-api/src/dam/files/errors/filename-already-exists.exception.ts deleted file mode 100644 index 226278bc58..0000000000 --- a/packages/api/cms-api/src/dam/files/errors/filename-already-exists.exception.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { CometException } from "../../../common/errors/comet.exception"; - -export class CometFilenameAlreadyExistsException extends CometException {} diff --git a/packages/api/cms-api/src/dam/files/errors/folder-not-empty.exception.ts b/packages/api/cms-api/src/dam/files/errors/folder-not-empty.exception.ts deleted file mode 100644 index 33e7baaec2..0000000000 --- a/packages/api/cms-api/src/dam/files/errors/folder-not-empty.exception.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { CometException } from "../../../common/errors/comet.exception"; - -export class CometFolderNotEmptyException extends CometException {} diff --git a/packages/api/cms-api/src/dam/files/files.service.ts b/packages/api/cms-api/src/dam/files/files.service.ts index c9fb6fb32a..351dc24dbb 100644 --- a/packages/api/cms-api/src/dam/files/files.service.ts +++ b/packages/api/cms-api/src/dam/files/files.service.ts @@ -38,7 +38,7 @@ import { FoldersService } from "./folders.service"; const exifrSupportedMimetypes = ["image/jpeg", "image/tiff", "image/x-iiq", "image/heif", "image/heic", "image/avif", "image/png"]; -export const withFilesSelect = ( +const withFilesSelect = ( qb: QueryBuilder, args: { query?: string; diff --git a/packages/api/cms-api/src/dam/files/folders.service.ts b/packages/api/cms-api/src/dam/files/folders.service.ts index b9bd60df62..847f5b6d1a 100644 --- a/packages/api/cms-api/src/dam/files/folders.service.ts +++ b/packages/api/cms-api/src/dam/files/folders.service.ts @@ -17,7 +17,7 @@ import { UpdateFolderInput } from "./dto/folder.input"; import { FOLDER_TABLE_NAME, FolderInterface } from "./entities/folder.entity"; import { FilesService } from "./files.service"; -export const withFoldersSelect = ( +const withFoldersSelect = ( qb: QueryBuilder, args: { includeArchived?: boolean; diff --git a/packages/api/cms-api/src/dependencies/decorators/entity-info.decorator.ts b/packages/api/cms-api/src/dependencies/decorators/entity-info.decorator.ts index 152beffd2f..1a33559d8e 100644 --- a/packages/api/cms-api/src/dependencies/decorators/entity-info.decorator.ts +++ b/packages/api/cms-api/src/dependencies/decorators/entity-info.decorator.ts @@ -6,7 +6,7 @@ interface EntityInfoInterface { secondaryInformation?: string; } -export type GetEntityInfo = (item: Entity) => EntityInfoInterface | Promise; +type GetEntityInfo = (item: Entity) => EntityInfoInterface | Promise; export interface EntityInfoServiceInterface { getEntityInfo: GetEntityInfo; } diff --git a/packages/api/cms-api/src/index.ts b/packages/api/cms-api/src/index.ts index 31f63f5a53..4ca5855761 100644 --- a/packages/api/cms-api/src/index.ts +++ b/packages/api/cms-api/src/index.ts @@ -63,6 +63,7 @@ export { BaseBlocksBlockItemData, BaseBlocksBlockItemInput, BlocksBlockFixturesGeneratorMap, + BlocksBlockInputInterface, createBlocksBlock, } from "./blocks/factories/createBlocksBlock"; export { createImageLinkBlock } from "./blocks/factories/createImageLinkBlock"; diff --git a/packages/api/cms-api/src/mikro-orm/mikro-orm.module.ts b/packages/api/cms-api/src/mikro-orm/mikro-orm.module.ts index 024919e545..706e8deb84 100644 --- a/packages/api/cms-api/src/mikro-orm/mikro-orm.module.ts +++ b/packages/api/cms-api/src/mikro-orm/mikro-orm.module.ts @@ -29,8 +29,6 @@ import { Migration20240814090503 } from "./migrations/Migration20240814090503"; import { Migration20240814090541 } from "./migrations/Migration20240814090541"; import { Migration20240814090653 } from "./migrations/Migration20240814090653"; -export const PG_UNIQUE_CONSTRAINT_VIOLATION = "23505"; - export interface MikroOrmModuleOptions { ormConfig: MikroOrmNestjsOptions; } diff --git a/packages/api/cms-api/src/page-tree/dto/paginated-page-tree-nodes-args.factory.ts b/packages/api/cms-api/src/page-tree/dto/paginated-page-tree-nodes-args.factory.ts index a211c04257..078156e74d 100644 --- a/packages/api/cms-api/src/page-tree/dto/paginated-page-tree-nodes-args.factory.ts +++ b/packages/api/cms-api/src/page-tree/dto/paginated-page-tree-nodes-args.factory.ts @@ -8,7 +8,7 @@ import { PageTreeNodeCategory, ScopeInterface } from "../types"; import { EmptyPageTreeNodeScope } from "./empty-page-tree-node-scope"; import { PageTreeNodeSort } from "./page-tree-node.sort"; -export interface PaginatedPageTreeNodesArgsInterface { +interface PaginatedPageTreeNodesArgsInterface { scope: ScopeInterface; category?: string; sort?: PageTreeNodeSort[]; diff --git a/packages/api/cms-api/src/page-tree/site-preview.resolver.ts b/packages/api/cms-api/src/page-tree/site-preview.resolver.ts index f38b417985..3c90699e37 100644 --- a/packages/api/cms-api/src/page-tree/site-preview.resolver.ts +++ b/packages/api/cms-api/src/page-tree/site-preview.resolver.ts @@ -7,7 +7,7 @@ import { RequiredPermission } from "../user-permissions/decorators/required-perm import { ContentScope } from "../user-permissions/interfaces/content-scope.interface"; import { SITE_PREVIEW_CONFIG } from "./page-tree.constants"; -export type SitePreviewConfig = { +type SitePreviewConfig = { secret: string; }; diff --git a/packages/api/cms-api/src/redirects/dto/paginated-redirects-args.factory.ts b/packages/api/cms-api/src/redirects/dto/paginated-redirects-args.factory.ts index 2681f7f9ca..bac168e7d8 100644 --- a/packages/api/cms-api/src/redirects/dto/paginated-redirects-args.factory.ts +++ b/packages/api/cms-api/src/redirects/dto/paginated-redirects-args.factory.ts @@ -8,7 +8,7 @@ import { EmptyRedirectScope } from "./empty-redirect-scope"; import { RedirectSort } from "./redirect.sort"; import { RedirectFilter } from "./redirects.filter"; -export interface PaginatedRedirectsArgsInterface { +interface PaginatedRedirectsArgsInterface { scope: RedirectScopeInterface; search?: string; filter?: RedirectFilter; diff --git a/packages/api/cms-api/src/redirects/dto/redirect.sort.ts b/packages/api/cms-api/src/redirects/dto/redirect.sort.ts index 5c63b58c59..347db60389 100644 --- a/packages/api/cms-api/src/redirects/dto/redirect.sort.ts +++ b/packages/api/cms-api/src/redirects/dto/redirect.sort.ts @@ -3,7 +3,7 @@ import { IsEnum } from "class-validator"; import { SortDirection } from "../../common/sorting/sort-direction.enum"; -export enum RedirectSortField { +enum RedirectSortField { source = "source", createdAt = "createdAt", updatedAt = "updatedAt", diff --git a/packages/api/cms-api/src/redirects/dto/redirects-args.factory.ts b/packages/api/cms-api/src/redirects/dto/redirects-args.factory.ts index b6aa446000..f37f5de410 100644 --- a/packages/api/cms-api/src/redirects/dto/redirects-args.factory.ts +++ b/packages/api/cms-api/src/redirects/dto/redirects-args.factory.ts @@ -9,7 +9,7 @@ import { RedirectGenerationType } from "../redirects.enum"; import { RedirectScopeInterface } from "../types"; import { EmptyRedirectScope } from "./empty-redirect-scope"; -export interface RedirectsArgsInterface { +interface RedirectsArgsInterface { scope: RedirectScopeInterface; query?: string; type?: RedirectGenerationType; diff --git a/packages/api/cms-api/src/user-permissions/decorators/scoped-entity.decorator.ts b/packages/api/cms-api/src/user-permissions/decorators/scoped-entity.decorator.ts index 3a8fabef4b..d46728a8f8 100644 --- a/packages/api/cms-api/src/user-permissions/decorators/scoped-entity.decorator.ts +++ b/packages/api/cms-api/src/user-permissions/decorators/scoped-entity.decorator.ts @@ -3,7 +3,7 @@ import { CustomDecorator, SetMetadata, Type } from "@nestjs/common"; import { ContentScope } from "../../user-permissions/interfaces/content-scope.interface"; -export type EntityScopeFunction = ( +type EntityScopeFunction = ( item: Entity, ) => ContentScope | ContentScope[] | Promise; export interface EntityScopeServiceInterface { diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index fe87c4f9fc..c027e8aed7 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -14,6 +14,12 @@ "test:watch": "jest --watch" }, "devDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint-config-prettier": "^8.6.0", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-simple-import-sort": "^9.0.0", + "eslint-plugin-unused-imports": "^2.0.0", + "@typescript-eslint/eslint-plugin": "^5.48.2", "@types/eslint": "^8.37.0", "@types/jest": "^27.0.2", "eslint": "^8.36.0", diff --git a/packages/site/cms-site/package.json b/packages/site/cms-site/package.json index 14806d8af5..c1e9ff4ceb 100644 --- a/packages/site/cms-site/package.json +++ b/packages/site/cms-site/package.json @@ -35,7 +35,6 @@ "devDependencies": { "@comet/cli": "workspace:^7.10.0", "@comet/eslint-config": "workspace:^7.10.0", - "@gitbeaker/node": "^34.0.0", "@types/draft-js": "^0.11.10", "@types/jest": "^29.5.0", "@types/react": "^18.2.66", @@ -50,7 +49,6 @@ "prettier": "^2.0.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-is": "^18.2.0", "styled-components": "^6.0.0", "ts-jest": "^29.0.5", "typescript": "^4.0.0" diff --git a/packages/site/cms-site/src/errorHandler/ErrorHandlerProvider.tsx b/packages/site/cms-site/src/errorHandler/ErrorHandlerProvider.tsx index 4a3f1c6c71..3297386f33 100644 --- a/packages/site/cms-site/src/errorHandler/ErrorHandlerProvider.tsx +++ b/packages/site/cms-site/src/errorHandler/ErrorHandlerProvider.tsx @@ -6,7 +6,7 @@ interface Props { onError: (error: Error, errorInfo: ErrorInfo) => void; } -export const ErrorHandlerContext = createContext({ +const ErrorHandlerContext = createContext({ onError: (error, errorInfo) => { if (process.env.NODE_ENV === "development") { console.error("Error caught by error handler", error, errorInfo.componentStack); diff --git a/packages/site/cms-site/src/iframebridge/IFrameBridge.tsx b/packages/site/cms-site/src/iframebridge/IFrameBridge.tsx index 30f28554a9..32d60307ea 100644 --- a/packages/site/cms-site/src/iframebridge/IFrameBridge.tsx +++ b/packages/site/cms-site/src/iframebridge/IFrameBridge.tsx @@ -8,7 +8,7 @@ import { AdminMessage, AdminMessageType, IFrameMessage, IFrameMessageType } from import { PreviewOverlay } from "./PreviewOverlay"; import { getCombinedPositioningOfElements, getRecursiveChildrenOfPreviewElement } from "./utils"; -export type PreviewElement = { +type PreviewElement = { element: HTMLElement; adminRoute: string; label: string; diff --git a/packages/site/cms-site/src/iframebridge/IFrameMessage.ts b/packages/site/cms-site/src/iframebridge/IFrameMessage.ts index dea49d61ec..5ed7ee6265 100644 --- a/packages/site/cms-site/src/iframebridge/IFrameMessage.ts +++ b/packages/site/cms-site/src/iframebridge/IFrameMessage.ts @@ -84,7 +84,7 @@ export enum AdminMessageType { /** * The `IAdminBlockMessage` is sent from the admin to the site, whih block should be displayed in the iFrame. */ -export interface IAdminBlockMessage { +interface IAdminBlockMessage { cometType: AdminMessageType.Block; data: { block: unknown; @@ -104,7 +104,7 @@ export interface IAdminShowOnlyVisibleMessage { /** * The `IAdminSelectComponentMessage` is sent from the admin to the site, when a component is selected in the admin interface. */ -export interface IAdminSelectComponentMessage { +interface IAdminSelectComponentMessage { cometType: AdminMessageType.SelectComponent; data: { adminRoute: string; diff --git a/packages/site/cms-site/src/iframebridge/Preview.tsx b/packages/site/cms-site/src/iframebridge/Preview.tsx index 4e15744ac9..d00afe24e4 100644 --- a/packages/site/cms-site/src/iframebridge/Preview.tsx +++ b/packages/site/cms-site/src/iframebridge/Preview.tsx @@ -68,6 +68,6 @@ export const Preview = ({ adminRoute, children, label, enabledAutoScrolling = tr return <>{children}; }; -export const PreviewElementContainer = styled.div` +const PreviewElementContainer = styled.div` display: contents; `; diff --git a/packages/site/cms-site/src/iframebridge/withPreview.tsx b/packages/site/cms-site/src/iframebridge/withPreview.tsx index df005ffdb7..7bac52958b 100644 --- a/packages/site/cms-site/src/iframebridge/withPreview.tsx +++ b/packages/site/cms-site/src/iframebridge/withPreview.tsx @@ -12,7 +12,7 @@ export interface WithPreviewProps { data: WithPreviewPropsData; } -export interface WithPreviewPropsData { +interface WithPreviewPropsData { adminMeta?: AdminMetaInterface; } diff --git a/packages/site/cms-site/src/index.ts b/packages/site/cms-site/src/index.ts index 7c862d5b22..65c7774c45 100644 --- a/packages/site/cms-site/src/index.ts +++ b/packages/site/cms-site/src/index.ts @@ -34,7 +34,20 @@ export { GraphQLFetch, } from "./graphQLFetch/graphQLFetch"; export { IFrameBridgeProvider } from "./iframebridge/IFrameBridge"; -export { IFrameMessageType } from "./iframebridge/IFrameMessage"; +export { + AdminMessageType, + IAdminContentScopeMessage, + IAdminGraphQLApiUrlMessage, + IAdminHoverComponentMessage, + IAdminShowOnlyVisibleMessage, + IFrameHoverComponentMessage, + IFrameLocationMessage, + IFrameMessage, + IFrameMessageType, + IFrameOpenLinkMessage, + IFrameSelectComponentMessage, + IReadyIFrameMessage, +} from "./iframebridge/IFrameMessage"; export { Preview } from "./iframebridge/Preview"; export { useBlockPreviewFetch } from "./iframebridge/useBlockPreviewFetch"; export { useIFrameBridge } from "./iframebridge/useIFrameBridge"; diff --git a/packages/site/cms-site/src/preview/PreviewContext.tsx b/packages/site/cms-site/src/preview/PreviewContext.tsx index d91eef2fc8..ceefb1d5ce 100644 --- a/packages/site/cms-site/src/preview/PreviewContext.tsx +++ b/packages/site/cms-site/src/preview/PreviewContext.tsx @@ -1,16 +1,13 @@ "use client"; import { createContext } from "react"; -import { UrlObject } from "url"; - -export type Url = string | UrlObject; export interface PreviewContextOptions { previewType: "SitePreview" | "BlockPreview" | "NoPreview"; showPreviewSkeletons: boolean; } -export const defaultPreviewContextValue: PreviewContextOptions = { +const defaultPreviewContextValue: PreviewContextOptions = { previewType: "NoPreview", showPreviewSkeletons: false, }; diff --git a/packages/site/cms-site/src/preview/usePreview.ts b/packages/site/cms-site/src/preview/usePreview.ts index 0029c8cf10..f63482b1ad 100644 --- a/packages/site/cms-site/src/preview/usePreview.ts +++ b/packages/site/cms-site/src/preview/usePreview.ts @@ -3,7 +3,7 @@ import { useCallback, useContext } from "react"; import { useIFrameBridge } from "../iframebridge/useIFrameBridge"; import { PreviewContext, PreviewContextOptions } from "./PreviewContext"; -export interface PreviewHookReturn extends PreviewContextOptions { +interface PreviewHookReturn extends PreviewContextOptions { isSelected: (url: string) => boolean; isHovered: (url: string) => boolean; } diff --git a/packages/site/cms-site/src/sitePreview/SitePreviewUtils.ts b/packages/site/cms-site/src/sitePreview/SitePreviewUtils.ts index 3e30b9fcbb..ab364fb683 100644 --- a/packages/site/cms-site/src/sitePreview/SitePreviewUtils.ts +++ b/packages/site/cms-site/src/sitePreview/SitePreviewUtils.ts @@ -1,7 +1,7 @@ import { errors, jwtVerify } from "jose"; // eslint-disable-next-line @typescript-eslint/no-explicit-any -export type Scope = Record; +type Scope = Record; export type SitePreviewData = { includeInvisible: boolean; diff --git a/packages/site/cms-site/src/sitePreview/iframebridge/SitePreviewIFrameMessage.ts b/packages/site/cms-site/src/sitePreview/iframebridge/SitePreviewIFrameMessage.ts index 8a3e0785bd..cbe76986cb 100644 --- a/packages/site/cms-site/src/sitePreview/iframebridge/SitePreviewIFrameMessage.ts +++ b/packages/site/cms-site/src/sitePreview/iframebridge/SitePreviewIFrameMessage.ts @@ -8,7 +8,7 @@ export enum SitePreviewIFrameMessageType { SitePreviewLocation = "SitePreviewLocation", } -export interface SitePreviewIFrameOpenLinkMessage { +interface SitePreviewIFrameOpenLinkMessage { cometType: SitePreviewIFrameMessageType.OpenLink; data: { link: ExternalLinkBlockData; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 348fbf6e13..bcd84f148a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,9 +20,6 @@ importers: '@comet/dev-process-manager': specifier: ^2.5.1 version: 2.5.1 - '@comet/eslint-plugin': - specifier: workspace:* - version: link:packages/eslint-plugin '@formatjs/cli': specifier: ^6.0.0 version: 6.2.8 @@ -38,6 +35,9 @@ importers: husky: specifier: ^7.0.4 version: 7.0.4 + knip: + specifier: ^5.38.1 + version: 5.38.1(@types/node@22.9.0)(typescript@5.7.2) lint-staged: specifier: ^12.3.7 version: 12.5.0(enquirer@2.3.6) @@ -48,8 +48,8 @@ importers: specifier: ^3.0.2 version: 3.0.2 typescript: - specifier: ^4.2.2 - version: 4.9.4 + specifier: ^5.7.2 + version: 5.7.2 wait-on: specifier: ^5.3.0 version: 5.3.0 @@ -71,12 +71,6 @@ importers: '@comet/admin-icons': specifier: workspace:* version: link:../../packages/admin/admin-icons - '@comet/admin-react-select': - specifier: workspace:* - version: link:../../packages/admin/admin-react-select - '@comet/admin-rte': - specifier: workspace:* - version: link:../../packages/admin/admin-rte '@comet/admin-theme': specifier: workspace:* version: link:../../packages/admin/admin-theme @@ -95,9 +89,6 @@ importers: '@fontsource-variable/roboto-flex': specifier: ^5.0.14 version: 5.0.15 - '@mui/lab': - specifier: ^6.0.0-beta.10 - version: 6.0.0-beta.10(@emotion/react@11.9.3(@babel/core@7.26.0)(@types/react@17.0.53)(react@17.0.2))(@emotion/styled@11.10.5(@babel/core@7.26.0)(@emotion/react@11.9.3(@babel/core@7.26.0)(@types/react@17.0.53)(react@17.0.2))(@types/react@17.0.53)(react@17.0.2))(@mui/material@6.1.2(@emotion/react@11.9.3(@babel/core@7.26.0)(@types/react@17.0.53)(react@17.0.2))(@emotion/styled@11.10.5(@babel/core@7.26.0)(@emotion/react@11.9.3(@babel/core@7.26.0)(@types/react@17.0.53)(react@17.0.2))(@types/react@17.0.53)(react@17.0.2))(@types/react@17.0.53)(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@types/react@17.0.53)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) '@mui/material': specifier: ^6.0.0 version: 6.1.2(@emotion/react@11.9.3(@babel/core@7.26.0)(@types/react@17.0.53)(react@17.0.2))(@emotion/styled@11.10.5(@babel/core@7.26.0)(@emotion/react@11.9.3(@babel/core@7.26.0)(@types/react@17.0.53)(react@17.0.2))(@types/react@17.0.53)(react@17.0.2))(@types/react@17.0.53)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) @@ -116,15 +107,6 @@ importers: dnd-core: specifier: ^16.0.0 version: 16.0.1 - draft-js: - specifier: ^0.11.0 - version: 0.11.7(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - exceljs: - specifier: ^4.4.0 - version: 4.4.0 - file-saver: - specifier: ^2.0.0 - version: 2.0.5 final-form: specifier: ^4.0.0 version: 4.20.9 @@ -161,18 +143,12 @@ importers: react-intl: specifier: ^6.0.0 version: 6.6.6(@types/react@17.0.53)(react@17.0.2)(typescript@4.9.4) - react-is: - specifier: ^17.0.2 - version: 17.0.2 react-router: specifier: ^5.0.0 version: 5.3.4(react@17.0.2) react-router-dom: specifier: ^5.0.0 version: 5.3.4(react@17.0.2) - react-select: - specifier: ^3.0.0 - version: 3.2.0(react-dom@17.0.2(react@17.0.2))(react@17.0.2) use-debounce: specifier: ^6.0.0 version: 6.0.1(react@17.0.2) @@ -189,9 +165,6 @@ importers: '@formatjs/cli': specifier: ^6.0.0 version: 6.2.8 - '@gitbeaker/node': - specifier: ^25.0.0 - version: 25.6.0 '@graphql-codegen/add': specifier: ^3.0.0 version: 3.2.3(graphql@15.8.0) @@ -219,9 +192,6 @@ importers: '@swc/plugin-emotion': specifier: ^2.5.120 version: 2.5.120 - '@types/draft-js': - specifier: ^0.11.10 - version: 0.11.10 '@types/lodash.isequal': specifier: ^4.0.0 version: 4.5.6 @@ -234,18 +204,12 @@ importers: '@types/react-dom': specifier: ^17.0.0 version: 17.0.18 - '@types/react-is': - specifier: ^17.0.0 - version: 17.0.3 '@types/react-router': specifier: ^5.0.0 version: 5.1.20 '@types/react-router-dom': specifier: ^5.0.0 version: 5.3.3 - '@types/react-select': - specifier: ^3.0.0 - version: 3.1.2 '@types/uuid': specifier: ^7.0.0 version: 7.0.5 @@ -255,9 +219,6 @@ importers: chokidar-cli: specifier: ^2.0.0 version: 2.1.0 - cosmiconfig-toml-loader: - specifier: ^1.0.0 - version: 1.0.0 dotenv-cli: specifier: ^4.0.0 version: 4.1.1 @@ -297,6 +258,9 @@ importers: express: specifier: ^4.18.2 version: 4.21.1 + helmet: + specifier: ^7.0.0 + version: 7.2.0 demo/api: dependencies: @@ -336,9 +300,6 @@ importers: '@nestjs/graphql': specifier: ^12.2.1 version: 12.2.1(@nestjs/common@10.4.9(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1))(@nestjs/core@10.4.9)(class-transformer@0.5.1)(class-validator@0.14.1)(graphql@16.9.0)(reflect-metadata@0.1.13)(ts-morph@16.0.0) - '@nestjs/passport': - specifier: ^10.0.3 - version: 10.0.3(@nestjs/common@10.4.9(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1))(passport@0.4.1) '@nestjs/platform-express': specifier: ^10.4.8 version: 10.4.9(@nestjs/common@10.4.9(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1))(@nestjs/core@10.4.9) @@ -348,9 +309,6 @@ importers: '@opentelemetry/auto-instrumentations-node': specifier: ^0.50.0 version: 0.50.2(@opentelemetry/api@1.9.0) - '@opentelemetry/core': - specifier: ^1.26.0 - version: 1.28.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-prometheus': specifier: ^0.53.0 version: 0.53.0(@opentelemetry/api@1.9.0) @@ -393,9 +351,6 @@ importers: nestjs-console: specifier: ^9.0.0 version: 9.0.0(@nestjs/common@10.4.9(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1))(@nestjs/core@10.4.9) - passport: - specifier: ^0.4.0 - version: 0.4.1 reflect-metadata: specifier: ^0.1.13 version: 0.1.13 @@ -414,9 +369,6 @@ importers: uuid: specifier: ^9.0.0 version: 9.0.1 - webpack: - specifier: ^5.64.2 - version: 5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5)) devDependencies: '@comet/eslint-config': specifier: workspace:* @@ -427,18 +379,12 @@ importers: '@nestjs/schematics': specifier: ^10.2.3 version: 10.2.3(chokidar@3.6.0)(typescript@4.9.4) - '@nestjs/testing': - specifier: ^10.4.8 - version: 10.4.9(@nestjs/common@10.4.9(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1))(@nestjs/core@10.4.9)(@nestjs/platform-express@10.4.9) '@types/compression': specifier: ^1.0.0 version: 1.7.2 '@types/cookie-parser': specifier: ^1.0.0 version: 1.4.3 - '@types/draft-js': - specifier: ^0.11.10 - version: 0.11.10 '@types/express': specifier: ^4.0.0 version: 4.17.16 @@ -448,15 +394,9 @@ importers: '@types/node': specifier: ^22.0.0 version: 22.9.0 - '@types/passport': - specifier: ^1.0.0 - version: 1.0.11 '@types/response-time': specifier: ^2.3.8 version: 2.3.8 - '@types/rimraf': - specifier: ^3.0.0 - version: 3.0.2 '@types/uuid': specifier: ^8.0.0 version: 8.3.4 @@ -472,9 +412,6 @@ importers: prettier: specifier: ^2.0.0 version: 2.8.3 - ts-loader: - specifier: ^8.0.0 - version: 8.4.0(typescript@4.9.4)(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5))) ts-node: specifier: ^10.0.0 version: 10.9.1(@swc/core@1.4.8(@swc/helpers@0.5.5))(@types/node@22.9.0)(typescript@4.9.4) @@ -502,27 +439,18 @@ importers: '@opentelemetry/auto-instrumentations-node': specifier: ^0.50.0 version: 0.50.2(@opentelemetry/api@1.9.0) - '@opentelemetry/core': - specifier: ^1.26.0 - version: 1.28.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-prometheus': specifier: ^0.53.0 version: 0.53.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-trace-otlp-http': specifier: ^0.53.0 version: 0.53.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': - specifier: ^1.26.0 - version: 1.28.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-node': specifier: ^0.53.0 version: 0.53.0(@opentelemetry/api@1.9.0) cache-manager: specifier: ^5.5.3 version: 5.7.4 - express: - specifier: ^4.0.0 - version: 4.21.1 graphql: specifier: ^15.0.0 version: 15.8.0 @@ -590,12 +518,6 @@ importers: chokidar-cli: specifier: ^2.0.0 version: 2.1.0 - cosmiconfig-toml-loader: - specifier: ^1.0.0 - version: 1.0.0 - dotenv-cli: - specifier: ^4.0.0 - version: 4.1.1 eslint: specifier: ^8.0.0 version: 8.57.1 @@ -605,12 +527,6 @@ importers: prettier: specifier: ^2.0.0 version: 2.8.3 - rimraf: - specifier: ^3.0.0 - version: 3.0.2 - tsconfig-paths: - specifier: ^3.0.0 - version: 3.15.0 typescript: specifier: ^4.0.0 version: 4.9.4 @@ -626,24 +542,6 @@ importers: '@opentelemetry/api': specifier: ^1.9.0 version: 1.9.0 - '@opentelemetry/auto-instrumentations-node': - specifier: ^0.50.0 - version: 0.50.2(@opentelemetry/api@1.9.0) - '@opentelemetry/core': - specifier: ^1.26.0 - version: 1.28.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-http': - specifier: ^0.53.0 - version: 0.53.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-node': - specifier: ^0.53.0 - version: 0.53.0(@opentelemetry/api@1.9.0) - express: - specifier: ^4.0.0 - version: 4.21.1 - fs-extra: - specifier: ^9.0.0 - version: 9.1.0 graphql: specifier: ^15.0.0 version: 15.8.0 @@ -668,9 +566,6 @@ importers: redraft: specifier: ^0.10.0 version: 0.10.2 - sitemap: - specifier: ^6.0.0 - version: 6.4.0 styled-components: specifier: ^6.1.8 version: 6.1.12(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -702,9 +597,6 @@ importers: '@graphql-codegen/typescript-operations': specifier: ^2.0.0 version: 2.5.12(graphql@15.8.0) - '@types/fs-extra': - specifier: ^9.0.0 - version: 9.0.13 '@types/node': specifier: ^22.0.0 version: 22.9.0 @@ -717,12 +609,6 @@ importers: chokidar-cli: specifier: ^2.0.0 version: 2.1.0 - cosmiconfig-toml-loader: - specifier: ^1.0.0 - version: 1.0.0 - dotenv-cli: - specifier: ^4.0.0 - version: 4.1.1 eslint: specifier: ^8.0.0 version: 8.57.1 @@ -735,9 +621,6 @@ importers: rimraf: specifier: ^3.0.0 version: 3.0.2 - tsconfig-paths: - specifier: ^3.0.0 - version: 3.15.0 typescript: specifier: ^4.0.0 version: 4.9.4 @@ -913,12 +796,6 @@ importers: '@mui/lab': specifier: ^6.0.0-beta.10 version: 6.0.0-beta.10(@emotion/react@11.9.3(@babel/core@7.26.0)(@types/react@17.0.53)(react@17.0.2))(@emotion/styled@11.10.5(@babel/core@7.26.0)(@emotion/react@11.9.3(@babel/core@7.26.0)(@types/react@17.0.53)(react@17.0.2))(@types/react@17.0.53)(react@17.0.2))(@mui/material@6.1.2(@emotion/react@11.9.3(@babel/core@7.26.0)(@types/react@17.0.53)(react@17.0.2))(@emotion/styled@11.10.5(@babel/core@7.26.0)(@emotion/react@11.9.3(@babel/core@7.26.0)(@types/react@17.0.53)(react@17.0.2))(@types/react@17.0.53)(react@17.0.2))(@types/react@17.0.53)(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@types/react@17.0.53)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@mui/private-theming': - specifier: ^6.0.0 - version: 6.1.2(@types/react@17.0.53)(react@17.0.2) - clsx: - specifier: ^1.1.1 - version: 1.2.1 exceljs: specifier: ^4.4.0 version: 4.4.0 @@ -1001,9 +878,6 @@ importers: '@testing-library/user-event': specifier: ^14.5.1 version: 14.5.1(@testing-library/dom@9.3.3) - '@types/debounce': - specifier: ^1.2.0 - version: 1.2.1 '@types/file-saver': specifier: ^2.0.1 version: 2.0.5 @@ -1064,9 +938,6 @@ importers: jest-junit: specifier: ^15.0.0 version: 15.0.0 - jss: - specifier: ^10.6.0 - version: 10.9.2 npm-run-all: specifier: ^4.1.5 version: 4.1.5 @@ -1136,9 +1007,6 @@ importers: '@comet/admin-icons': specifier: workspace:^7.10.0 version: link:../admin-icons - clsx: - specifier: ^1.1.1 - version: 1.2.1 react-colorful: specifier: ^5.5.1 version: 5.6.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) @@ -1215,9 +1083,6 @@ importers: '@mui/utils': specifier: ^6.0.0 version: 6.1.2(@types/react@17.0.53)(react@17.0.2) - clsx: - specifier: ^1.1.1 - version: 1.2.1 date-fns: specifier: ^2.28.0 version: 2.29.3 @@ -1361,9 +1226,6 @@ importers: '@comet/admin-icons': specifier: workspace:^7.10.0 version: link:../admin-icons - classnames: - specifier: ^2.2.6 - version: 2.3.2 devDependencies: '@babel/cli': specifier: ^7.17.6 @@ -1459,12 +1321,6 @@ importers: '@mui/material': specifier: ^6.0.0 version: 6.1.2(@emotion/react@11.9.3(@babel/core@7.26.0)(@types/react@17.0.53)(react@17.0.2))(@emotion/styled@11.10.5(@babel/core@7.26.0)(@emotion/react@11.9.3(@babel/core@7.26.0)(@types/react@17.0.53)(react@17.0.2))(@types/react@17.0.53)(react@17.0.2))(@types/react@17.0.53)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@testing-library/jest-dom': - specifier: ^5.16.5 - version: 5.16.5 - '@testing-library/react': - specifier: ^12.0.0 - version: 12.1.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2) '@types/draft-js': specifier: ^0.11.10 version: 0.11.10 @@ -1480,9 +1336,6 @@ importers: '@types/react-dom': specifier: ^17.0.0 version: 17.0.18 - '@types/uuid': - specifier: ^9.0.2 - version: 9.0.8 draft-js: specifier: ^0.11.4 version: 0.11.7(react-dom@17.0.2(react@17.0.2))(react@17.0.2) @@ -1495,9 +1348,6 @@ importers: jest: specifier: ^29.5.0 version: 29.5.0(@types/node@22.9.0)(ts-node@10.9.1(@swc/core@1.4.8(@swc/helpers@0.5.5))(@types/node@22.9.0)(typescript@4.9.4)) - jest-environment-jsdom: - specifier: ^29.5.0 - version: 29.5.0 jest-junit: specifier: ^15.0.0 version: 15.0.0 @@ -1595,15 +1445,6 @@ importers: '@comet/admin-icons': specifier: workspace:^7.10.0 version: link:../admin-icons - '@mui/lab': - specifier: ^6.0.0-beta.10 - version: 6.0.0-beta.10(@emotion/react@11.9.3(@babel/core@7.26.0)(@types/react@17.0.53)(react@17.0.2))(@emotion/styled@11.10.5(@babel/core@7.26.0)(@emotion/react@11.9.3(@babel/core@7.26.0)(@types/react@17.0.53)(react@17.0.2))(@types/react@17.0.53)(react@17.0.2))(@mui/material@6.1.2(@emotion/react@11.9.3(@babel/core@7.26.0)(@types/react@17.0.53)(react@17.0.2))(@emotion/styled@11.10.5(@babel/core@7.26.0)(@emotion/react@11.9.3(@babel/core@7.26.0)(@types/react@17.0.53)(react@17.0.2))(@types/react@17.0.53)(react@17.0.2))(@types/react@17.0.53)(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@types/react@17.0.53)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - clipboard-copy: - specifier: ^4.0.0 - version: 4.0.1 - clsx: - specifier: ^1.1.1 - version: 1.2.1 lodash.isequal: specifier: ^4.0.0 version: 4.5.0 @@ -1680,6 +1521,9 @@ importers: jest: specifier: ^29.5.0 version: 29.5.0(@types/node@22.9.0)(ts-node@10.9.1(@swc/core@1.4.8(@swc/helpers@0.5.5))(@types/node@22.9.0)(typescript@4.9.4)) + jest-environment-jsdom: + specifier: ^29.7.0 + version: 29.7.0 jest-junit: specifier: ^15.0.0 version: 15.0.0 @@ -1743,12 +1587,6 @@ importers: '@graphql-tools/load': specifier: ^7.8.14 version: 7.8.14(graphql@15.8.0) - '@graphql-typed-document-node/core': - specifier: ^3.1.1 - version: 3.1.1(graphql@15.8.0) - '@mui/lab': - specifier: ^6.0.0-beta.10 - version: 6.0.0-beta.10(@emotion/react@11.9.3(@babel/core@7.26.0)(@types/react@17.0.53)(react@17.0.2))(@emotion/styled@11.10.5(@babel/core@7.26.0)(@emotion/react@11.9.3(@babel/core@7.26.0)(@types/react@17.0.53)(react@17.0.2))(@types/react@17.0.53)(react@17.0.2))(@mui/material@6.1.2(@emotion/react@11.9.3(@babel/core@7.26.0)(@types/react@17.0.53)(react@17.0.2))(@emotion/styled@11.10.5(@babel/core@7.26.0)(@emotion/react@11.9.3(@babel/core@7.26.0)(@types/react@17.0.53)(react@17.0.2))(@types/react@17.0.53)(react@17.0.2))(@types/react@17.0.53)(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@types/react@17.0.53)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) axios: specifier: ^0.21.0 version: 0.21.4 @@ -1758,9 +1596,6 @@ importers: class-validator: specifier: ^0.14.1 version: 0.14.1 - clsx: - specifier: ^1.1.1 - version: 1.2.1 commander: specifier: ^10.0.1 version: 10.0.1 @@ -1785,21 +1620,12 @@ importers: js-cookie: specifier: ^3.0.5 version: 3.0.5 - lodash.clonedeep: - specifier: ^4.5.0 - version: 4.5.0 lodash.escaperegexp: specifier: ^4.0.0 version: 4.1.2 - lodash.get: - specifier: ^4.4.2 - version: 4.4.2 lodash.isequal: specifier: ^4.0.0 version: 4.5.0 - lodash.set: - specifier: ^4.3.2 - version: 4.3.2 mime-db: specifier: ^1.0.0 version: 1.53.0 @@ -1812,9 +1638,6 @@ importers: pluralize: specifier: ^8.0.0 version: 8.0.0 - prop-types: - specifier: ^15.7.2 - version: 15.8.1 react-cool-dimensions: specifier: ^2.0.0 version: 2.0.7(react@17.0.2) @@ -1845,9 +1668,6 @@ importers: slugify: specifier: ^1.0.0 version: 1.6.5 - split.js: - specifier: ^1.6.4 - version: 1.6.5 use-debounce: specifier: ^6.0.0 version: 6.0.1(react@17.0.2) @@ -1918,21 +1738,12 @@ importers: '@types/js-cookie': specifier: ^3.0.6 version: 3.0.6 - '@types/lodash.clonedeep': - specifier: ^4.5.6 - version: 4.5.7 '@types/lodash.escaperegexp': specifier: ^4.0.0 version: 4.1.7 - '@types/lodash.get': - specifier: ^4.4.6 - version: 4.4.7 '@types/lodash.isequal': specifier: ^4.0.0 version: 4.5.6 - '@types/lodash.set': - specifier: ^4.3.6 - version: 4.3.7 '@types/mime-db': specifier: ^1.43.1 version: 1.43.1 @@ -1972,9 +1783,6 @@ importers: chokidar-cli: specifier: ^2.0.0 version: 2.1.0 - cosmiconfig-toml-loader: - specifier: ^1.0.0 - version: 1.0.0 csstype: specifier: ^3.1.1 version: 3.1.3 @@ -1993,6 +1801,9 @@ importers: jest: specifier: ^29.5.0 version: 29.5.0(@types/node@22.9.0)(ts-node@10.9.1(@swc/core@1.4.8(@swc/helpers@0.5.5))(@types/node@22.9.0)(typescript@4.9.4)) + jest-environment-jsdom: + specifier: ^29.7.0 + version: 29.7.0 jest-junit: specifier: ^15.0.0 version: 15.0.0 @@ -2059,9 +1870,6 @@ importers: '@hapi/accept': specifier: ^5.0.2 version: 5.0.2 - '@nestjs/jwt': - specifier: ^10.2.0 - version: 10.2.0(@nestjs/common@10.4.9(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1)) '@nestjs/mapped-types': specifier: ^2.0.6 version: 2.0.6(@nestjs/common@10.4.9(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13) @@ -2071,9 +1879,6 @@ importers: '@opentelemetry/api': specifier: ^1.9.0 version: 1.9.0 - '@smithy/node-http-handler': - specifier: 3.1.4 - version: 3.1.4 '@types/get-image-colors': specifier: ^4.0.0 version: 4.0.2 @@ -2425,9 +2230,27 @@ importers: '@types/jest': specifier: ^27.0.2 version: 27.0.2 + '@typescript-eslint/eslint-plugin': + specifier: ^5.48.2 + version: 5.49.0(@typescript-eslint/parser@5.49.0(eslint@8.57.1)(typescript@4.9.4))(eslint@8.57.1)(typescript@4.9.4) + '@typescript-eslint/parser': + specifier: ^5.0.0 + version: 5.49.0(eslint@8.57.1)(typescript@4.9.4) eslint: specifier: ^8.36.0 version: 8.57.1 + eslint-config-prettier: + specifier: ^8.6.0 + version: 8.6.0(eslint@8.57.1) + eslint-plugin-prettier: + specifier: ^4.2.1 + version: 4.2.1(eslint-config-prettier@8.6.0(eslint@8.57.1))(eslint@8.57.1)(prettier@2.8.3) + eslint-plugin-simple-import-sort: + specifier: ^9.0.0 + version: 9.0.0(eslint@8.57.1) + eslint-plugin-unused-imports: + specifier: ^2.0.0 + version: 2.0.0(@typescript-eslint/eslint-plugin@5.49.0(@typescript-eslint/parser@5.49.0(eslint@8.57.1)(typescript@4.9.4))(eslint@8.57.1)(typescript@4.9.4))(eslint@8.57.1) jest: specifier: ^29.5.0 version: 29.5.0(@types/node@22.9.0)(ts-node@10.9.1(@swc/core@1.4.8(@swc/helpers@0.5.5))(@types/node@22.9.0)(typescript@4.9.4)) @@ -2468,9 +2291,6 @@ importers: '@comet/eslint-config': specifier: workspace:^7.10.0 version: link:../../eslint-config - '@gitbeaker/node': - specifier: ^34.0.0 - version: 34.7.0 '@types/draft-js': specifier: ^0.11.10 version: 0.11.10 @@ -2513,9 +2333,6 @@ importers: react-dom: specifier: ^18.2.0 version: 18.3.1(react@18.3.1) - react-is: - specifier: ^18.2.0 - version: 18.3.1 styled-components: specifier: ^6.0.0 version: 6.1.12(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -2552,9 +2369,6 @@ importers: '@comet/admin-theme': specifier: workspace:* version: link:../packages/admin/admin-theme - '@comet/blocks-admin': - specifier: workspace:* - version: link:../packages/admin/blocks-admin '@comet/cms-admin': specifier: workspace:* version: link:../packages/admin/cms-admin @@ -2600,9 +2414,6 @@ importers: graphql-anywhere: specifier: ^4.2.7 version: 4.2.8(graphql@15.8.0) - graphql-tag: - specifier: ^2.12.6 - version: 2.12.6(graphql@15.8.0) history: specifier: ^4.10.1 version: 4.10.1 @@ -2624,9 +2435,6 @@ importers: react-select: specifier: ^3.0.4 version: 3.2.0(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - require-from-string: - specifier: ^2.0.2 - version: 2.0.2 use-debounce: specifier: ^6.0.0 version: 6.0.1(react@17.0.2) @@ -2637,9 +2445,6 @@ importers: '@babel/cli': specifier: ^7.17.6 version: 7.20.7(@babel/core@7.26.0) - '@babel/core': - specifier: ^7.20.12 - version: 7.26.0 '@comet/admin-babel-preset': specifier: workspace:* version: link:../packages/admin/admin-babel-preset @@ -2666,16 +2471,7 @@ importers: version: 8.4.5(storybook@8.4.5(prettier@2.8.3)) '@storybook/addon-webpack5-compiler-babel': specifier: ^3.0.3 - version: 3.0.3(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5))) - '@storybook/blocks': - specifier: ^8.4.4 - version: 8.4.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(storybook@8.4.5(prettier@2.8.3)) - '@storybook/components': - specifier: ^8.4.4 - version: 8.4.5(storybook@8.4.5(prettier@2.8.3)) - '@storybook/core-events': - specifier: ^8.4.4 - version: 8.4.5(storybook@8.4.5(prettier@2.8.3)) + version: 3.0.3(webpack@5.96.1) '@storybook/manager-api': specifier: ^8.4.4 version: 8.4.5(storybook@8.4.5(prettier@2.8.3)) @@ -2684,7 +2480,7 @@ importers: version: 8.4.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(storybook@8.4.5(prettier@2.8.3))(typescript@4.9.4) '@storybook/react-webpack5': specifier: ^8.4.4 - version: 8.4.5(@swc/core@1.4.8(@swc/helpers@0.5.5))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(storybook@8.4.5(prettier@2.8.3))(typescript@4.9.4) + version: 8.4.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(storybook@8.4.5(prettier@2.8.3))(typescript@4.9.4) '@storybook/theming': specifier: ^8.4.4 version: 8.4.5(storybook@8.4.5(prettier@2.8.3)) @@ -2694,9 +2490,6 @@ importers: '@types/faker': specifier: ^5.5.8 version: 5.5.9 - '@types/file-saver': - specifier: ^2.0.1 - version: 2.0.5 '@types/history': specifier: ^4.0.0 version: 4.7.11 @@ -2718,12 +2511,6 @@ importers: '@types/uuid': specifier: ^9.0.0 version: 9.0.8 - '@types/webpack': - specifier: ^5.0.0 - version: 5.28.0(@swc/core@1.4.8(@swc/helpers@0.5.5)) - babel-loader: - specifier: ^8.0.6 - version: 8.3.0(@babel/core@7.26.0)(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5))) draft-js: specifier: ^0.11.5 version: 0.11.7(react-dom@17.0.2(react@17.0.2))(react@17.0.2) @@ -2778,18 +2565,9 @@ importers: storybook: specifier: ^8.4.4 version: 8.4.5(prettier@2.8.3) - ts-loader: - specifier: ^6.0.4 - version: 6.2.2(typescript@4.9.4) - ts-node: - specifier: ^10.0.0 - version: 10.9.1(@swc/core@1.4.8(@swc/helpers@0.5.5))(@types/node@22.9.0)(typescript@4.9.4) typescript: specifier: ^4.0.0 version: 4.9.4 - webpack: - specifier: ^5.0.0 - version: 5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5)) packages: @@ -4727,32 +4505,6 @@ packages: ts-jest: optional: true - '@gitbeaker/core@25.6.0': - resolution: {integrity: sha512-+CohJNsbZiPl7jPgw7PHt5t0JIIV9NngObOskY1Ww8jef7SqaKpz0NsbSDawuWFBdmXApMpK81AEfASKtVI+cw==} - engines: {node: '>=10.19.0'} - - '@gitbeaker/core@34.7.0': - resolution: {integrity: sha512-D3JSvnD2PTm8pj+UJhYqOnEmszVN5ADP2LJAFe+eDnW46eEIK5Veq6kxrzy7Q6n3lvnUABKoPi8x4dnqJlmxoA==} - engines: {node: '>=10.19.0'} - - '@gitbeaker/node@25.6.0': - resolution: {integrity: sha512-zv7BVmphyOUtIkwU8/iH8z6F8AC2Hy56f/DpwhgB602qhKDRFwf/d7wze7VD5j65i0kIzgnSrxgdtosW7V9wsw==} - engines: {node: '>=10.19.0'} - deprecated: Please use its successor @gitbeaker/rest - - '@gitbeaker/node@34.7.0': - resolution: {integrity: sha512-CwMQrwyebESt8yv9RCFZO+G1OotPtKBVPNlz61CWCHmbEvp5QVYiXlSXyFDo10pOuAvO9fpKiMgro3uArmmeMQ==} - engines: {node: '>=10.19.0'} - deprecated: Please use its successor @gitbeaker/rest - - '@gitbeaker/requester-utils@25.6.0': - resolution: {integrity: sha512-jD8cHbAZPR6+cB3HiukQxcqIKF5VkHtqg2m+Ns6ROE1pb0oRn10D/a9J1lZOXC9Jz2tQOBMWfHlplbmFFdB6Og==} - engines: {node: '>=10.19.0'} - - '@gitbeaker/requester-utils@34.7.0': - resolution: {integrity: sha512-SEvw6l9c+mRq33nsX/nyIIvZpUH/1CzK2tQAFj8io/5PeUWZ8oBRW1DUN7lW7uhbGdu3Sc3dA1S4H9OSvt679g==} - engines: {node: '>=10.19.0'} - '@golevelup/nestjs-discovery@4.0.2': resolution: {integrity: sha512-0JRJe4KpONdQ2U+ajteHrc71LgYzAR70KEzwI+9EDogK+ufn2VVn5qpDg+z85MhxaB3EEFLsAx0uDx98wqswuQ==} peerDependencies: @@ -5151,6 +4903,10 @@ packages: resolution: {integrity: sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/environment@29.7.0': + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/expect-utils@29.5.0': resolution: {integrity: sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5163,6 +4919,10 @@ packages: resolution: {integrity: sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/fake-timers@29.7.0': + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/globals@29.5.0': resolution: {integrity: sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5657,11 +5417,6 @@ packages: ts-morph: optional: true - '@nestjs/jwt@10.2.0': - resolution: {integrity: sha512-x8cG90SURkEiLOehNaN2aRlotxT0KZESUliOPKKnjWiyJOcWurkF3w345WOX0P4MgFzUjGoZ1Sy0aZnxeihT0g==} - peerDependencies: - '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 - '@nestjs/mapped-types@2.0.5': resolution: {integrity: sha512-bSJv4pd6EY99NX9CjBIyn4TVDoSit82DUZlL4I3bqNfy5Gt+gXTa86i3I/i0iIV9P4hntcGM5GyO+FhZAhxtyg==} peerDependencies: @@ -6737,6 +6492,11 @@ packages: resolution: {integrity: sha512-4pP0EV3iTsexDx+8PPGAKCQpd/6hsQBaQhqWzU4hqKPHN5epPsxKbvUTIiYIHTxaKt6/kEaqPBpu/ufvfbrRzw==} engines: {node: '>=16.0.0'} + '@snyk/github-codeowners@1.1.0': + resolution: {integrity: sha512-lGFf08pbkEac0NYgVf4hdANpAgApRjNByLXB+WBip3qj1iendOIyAwP2GKkKbQMNVy2r1xxDf0ssfWscoiC+Vw==} + engines: {node: '>=8.10'} + hasBin: true + '@storybook/addon-actions@8.4.5': resolution: {integrity: sha512-rbB19uiGJ61XHbKIbS1a9bUS6re5L8rT5NMNeEJhCxXRpFUPrlTXMSoD/Pgcn3ENeEMVZsm8/eCzxAVgAP3Mgg==} peerDependencies: @@ -6787,11 +6547,6 @@ packages: peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/core-events@8.4.5': - resolution: {integrity: sha512-+DeYpAuav9E/Q5x5BVrMpf+XBFbVQJuJbVXNiglZcJNH13D/G2WDToOYAbGviZ6CBvbUdjlqC7y9+/emwP78bA==} - peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/core-webpack@8.4.5': resolution: {integrity: sha512-IpK/3fM+l2WjRNplTtP+MtnRf/394GcBwyemZknUCzFFDJWNYAN1+meEZmOaZKzJ3tQyRYiErrJLHzd1+UH6Dw==} peerDependencies: @@ -7198,9 +6953,6 @@ packages: '@types/cookie@0.4.1': resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} - '@types/debounce@1.2.1': - resolution: {integrity: sha512-epMsEE85fi4lfmJUH/89/iV/LI+F5CvNIvmgs5g5jYFPfhO2S/ae8WSsLOKWdwtoaZw9Q2IhJ4tQ5tFCcS/4HA==} - '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} @@ -7243,9 +6995,6 @@ packages: '@types/format-util@1.0.4': resolution: {integrity: sha512-xrCYOdHh5zA3LUrn6CvspYwlzSWxPso11Lx32WnAG6KvLCRecKZ/Rh21PLXUkzUFsQmrGcx/traJAFjR6dVS5Q==} - '@types/fs-extra@9.0.13': - resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} - '@types/get-image-colors@4.0.2': resolution: {integrity: sha512-8E/xA3Dyl70sboWbjjt+UEHTC2Nvv6EIDxPx5nCSTN+QfBWbx60gGyBH0pQ9ABrRNqQ2gKtGboK3MoZodxMWtw==} @@ -7337,24 +7086,15 @@ packages: '@types/keyv@3.1.4': resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} - '@types/lodash.clonedeep@4.5.7': - resolution: {integrity: sha512-ccNqkPptFIXrpVqUECi60/DFxjNKsfoQxSQsgcBJCX/fuX1wgyQieojkcWH/KpE3xzLoWN/2k+ZeGqIN3paSvw==} - '@types/lodash.debounce@4.0.7': resolution: {integrity: sha512-X1T4wMZ+gT000M2/91SYj0d/7JfeNZ9PeeOldSNoE/lunLeQXKvkmIumI29IaKMotU/ln/McOIvgzZcQ/3TrSA==} '@types/lodash.escaperegexp@4.1.7': resolution: {integrity: sha512-2TfHizz0jsnyVkV4X1PMyk6KkibXTBHM43X+6BCR3KE6KgADdbirSF+oiEvPQl6mwuHXZjkxar9d4AFYORgfww==} - '@types/lodash.get@4.4.7': - resolution: {integrity: sha512-af34Mj+KdDeuzsJBxc/XeTtOx0SZHZNLd+hdrn+PcKGQs0EG2TJTzQAOTCZTgDJCArahlCzLWSy8c2w59JRz7Q==} - '@types/lodash.isequal@4.5.6': resolution: {integrity: sha512-Ww4UGSe3DmtvLLJm2F16hDwEQSv7U0Rr8SujLUA2wHI2D2dm8kPu6Et+/y303LfjTIwSBKXB/YTUcAKpem/XEg==} - '@types/lodash.set@4.3.7': - resolution: {integrity: sha512-bS5Wkg/nrT82YUfkNYPSccFrNZRL+irl7Yt4iM6OTSQ0VZJED2oUIVm15NkNtUAQ8SRhCe+axqERUV6MJgkeEg==} - '@types/lodash@4.14.191': resolution: {integrity: sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==} @@ -7481,9 +7221,6 @@ packages: '@types/react-image-crop@8.1.3': resolution: {integrity: sha512-icfA+xMUQIp4/u525uNRKVZyHA/j8C1dp7yFWiGC6dqXSKXoUg5QhqUotrrzxY285LgQMgaWBRjQzXyeUAKUUA==} - '@types/react-is@17.0.3': - resolution: {integrity: sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==} - '@types/react-router-config@5.0.7': resolution: {integrity: sha512-pFFVXUIydHlcJP6wJm7sDii5mD/bCmmAY0wQzq+M+uX7bqS95AQqHZWP1iNMKrWVQSuHIzj5qi9BvrtLX2/T4w==} @@ -7607,9 +7344,6 @@ packages: '@types/validator@13.12.2': resolution: {integrity: sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA==} - '@types/webpack@5.28.0': - resolution: {integrity: sha512-8cP0CzcxUiFuA9xGJkfeVpqmWTk9nx6CWwamRGCj95ph1SmlRRk9KlCZ6avhCbZd4L68LvYT6l1kpdEnQXrF8w==} - '@types/websocket@1.0.2': resolution: {integrity: sha512-B5m9aq7cbbD/5/jThEr33nUY8WEfVi6A2YKCTOvw5Ldy7mtsOkqRvGjnzy6g7iMMDsgu7xREuCzqATLDLQVKcQ==} @@ -8609,9 +8343,6 @@ packages: client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - clipboard-copy@4.0.1: - resolution: {integrity: sha512-wOlqdqziE/NNTUJsfSgXmBMIrYmfd5V0HCGsR8uAKHcg+h9NENWINcfRjtWGU77wDHC8B8ijV4hMTGYbrKovng==} - cliui@5.0.0: resolution: {integrity: sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==} @@ -9344,6 +9075,15 @@ packages: supports-color: optional: true + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decamelize-keys@1.1.1: resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} engines: {node: '>=0.10.0'} @@ -9420,10 +9160,6 @@ packages: delaunator@5.0.1: resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} - delay@5.0.0: - resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} - engines: {node: '>=10'} - delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -9687,6 +9423,9 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + easy-table@1.2.0: + resolution: {integrity: sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==} + ecc-jsbn@0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} @@ -9744,10 +9483,6 @@ packages: endent@2.1.0: resolution: {integrity: sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==} - enhanced-resolve@4.5.0: - resolution: {integrity: sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==} - engines: {node: '>=6.9.0'} - enhanced-resolve@5.17.1: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} @@ -9773,10 +9508,6 @@ packages: err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - errno@0.1.8: - resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} - hasBin: true - error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -10862,6 +10593,10 @@ packages: resolution: {integrity: sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==} engines: {node: '>=10.0.0'} + helmet@7.2.0: + resolution: {integrity: sha512-ZRiwvN089JfMXokizgqEPXsl2Guk094yExfoDXR0cBYWxtBbaSww/w+vT4WEJsBW2iTUi1GgZ6swmoug3Oy4Xw==} + engines: {node: '>=16.0.0'} + history@4.10.1: resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} @@ -11271,9 +11006,6 @@ packages: is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - is-in-browser@1.1.3: - resolution: {integrity: sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==} - is-installed-globally@0.4.0: resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} engines: {node: '>=10'} @@ -11584,6 +11316,15 @@ packages: canvas: optional: true + jest-environment-jsdom@29.7.0: + resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + jest-environment-node@29.5.0: resolution: {integrity: sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -11616,10 +11357,18 @@ packages: resolution: {integrity: sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-mock@29.5.0: resolution: {integrity: sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-pnp-resolver@1.2.3: resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} engines: {node: '>=6'} @@ -11687,6 +11436,10 @@ packages: resolution: {integrity: sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==} hasBin: true + jiti@2.4.0: + resolution: {integrity: sha512-H5UpaUI+aHOqZXlYOaFP/8AzKsg+guWu+Pr3Y8i7+Y3zr1aXAvCvTAQ1RxSc6oVD8R8c7brgNtTVP91E7upH/g==} + hasBin: true + joi@17.7.0: resolution: {integrity: sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==} @@ -11834,9 +11587,6 @@ packages: resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} engines: {node: '>=0.6.0'} - jss@10.9.2: - resolution: {integrity: sha512-b8G6rWpYLR4teTUbGd4I4EsnWjg7MN0Q5bSsjKhVkJVjhQDy2KzkbD2AW3TuT0RYZVmZZHKIrXDn6kjU14qkUg==} - jsx-ast-utils@3.3.3: resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} engines: {node: '>=4.0'} @@ -11910,6 +11660,14 @@ packages: tedious: optional: true + knip@5.38.1: + resolution: {integrity: sha512-qGQpVO9jhHDoJ/4O1paXQ8Y6XyqH3Xm6OTety/z5IouZBEvJuJoWp59iY9E82Dt0pz9BBmKLczliB4sbYMPr2g==} + engines: {node: '>=18.6.0'} + hasBin: true + peerDependencies: + '@types/node': '>=18' + typescript: '>=5.0.4' + language-subtag-registry@0.3.22: resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} @@ -11942,9 +11700,6 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - li@1.3.0: - resolution: {integrity: sha512-z34TU6GlMram52Tss5mt1m//ifRIpKH5Dqm7yUVOdHI+BQCs9qGPHFaCUTIzsWX7edN30aa2WrPwR7IO10FHaw==} - libphonenumber-js@1.11.15: resolution: {integrity: sha512-M7+rtYi9l5RvMmHyjyoF3BHHUpXTYdJ0PezZGHNs0GyW1lO+K7jxlXpbdIb7a56h0nqLYdjIw+E+z0ciGaJP7g==} @@ -12000,10 +11755,6 @@ packages: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} - loader-utils@1.4.2: - resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} - engines: {node: '>=4.0.0'} - loader-utils@2.0.4: resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} engines: {node: '>=8.9.0'} @@ -12139,9 +11890,6 @@ packages: lodash.reject@4.6.0: resolution: {integrity: sha512-qkTuvgEzYdyhiJBx42YPzPo71R1aEr0z79kAv7Ixg8wPFEjgRgJdUsGMG3Hf3OYSF/kHI79XhNlt+5Ar6OzwxQ==} - lodash.set@4.3.2: - resolution: {integrity: sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==} - lodash.some@4.6.0: resolution: {integrity: sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ==} @@ -12358,10 +12106,6 @@ packages: memoize-one@5.2.1: resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} - memory-fs@0.5.0: - resolution: {integrity: sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==} - engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} - memorystream@0.3.1: resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} engines: {node: '>= 0.10.0'} @@ -12601,6 +12345,9 @@ packages: minimist@1.2.7: resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass@3.3.6: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} @@ -13096,6 +12843,10 @@ packages: resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} engines: {node: '>=16'} + parse-ms@4.0.0: + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} + engines: {node: '>=18'} + parse-numeric-range@1.3.0: resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} @@ -13130,10 +12881,6 @@ packages: resolution: {integrity: sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==} engines: {node: '>= 0.4.0'} - passport@0.4.1: - resolution: {integrity: sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg==} - engines: {node: '>= 0.4.0'} - passport@0.6.0: resolution: {integrity: sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug==} engines: {node: '>= 0.4.0'} @@ -13644,6 +13391,14 @@ packages: resolution: {integrity: sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + pretty-ms@9.2.0: + resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==} + engines: {node: '>=18'} + pretty-time@1.1.0: resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} engines: {node: '>=4'} @@ -13711,9 +13466,6 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} - prr@1.0.1: - resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} - pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} @@ -13766,10 +13518,6 @@ packages: resolution: {integrity: sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==} engines: {node: '>=6'} - query-string@7.1.3: - resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} - engines: {node: '>=6'} - querystring@0.2.0: resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} engines: {node: '>=0.4.x'} @@ -14639,11 +14387,6 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - sitemap@6.4.0: - resolution: {integrity: sha512-DoPKNc2/apQZTUnfiOONWctwq7s6dZVspxAZe2VPMNtoqNq7HgXRvlRnbIpKjf+8+piQdWncwcy+YhhTGY5USQ==} - engines: {node: '>=10.3.0', npm: '>=5.6.0'} - hasBin: true - sitemap@7.1.1: resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} engines: {node: '>=12.0.0', npm: '>=5.6.0'} @@ -14682,6 +14425,10 @@ packages: engines: {node: '>=6'} hasBin: true + smol-toml@1.3.1: + resolution: {integrity: sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ==} + engines: {node: '>= 18'} + snake-case@3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} @@ -14948,6 +14695,10 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strip-json-comments@5.0.1: + resolution: {integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==} + engines: {node: '>=14.16'} + strnum@1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} @@ -15017,6 +14768,9 @@ packages: engines: {node: '>=8'} hasBin: true + summary@2.1.0: + resolution: {integrity: sha512-nMIjMrd5Z2nuB2RZCKJfFMjgS3fygbeyGk9PxPPaJR1RIcyN9yn4A63Isovzm3ZtQuEkLBVgMdPup8UeLH7aQw==} + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -15279,19 +15033,6 @@ packages: esbuild: optional: true - ts-loader@6.2.2: - resolution: {integrity: sha512-HDo5kXZCBml3EUPcc7RlZOV/JGlLHwppTLEHb3SHnr5V7NXD4klMEkrhJe5wgRbaWsSXi+Y1SIBN/K9B6zWGWQ==} - engines: {node: '>=8.6'} - peerDependencies: - typescript: '*' - - ts-loader@8.4.0: - resolution: {integrity: sha512-6nFY3IZ2//mrPc+ImY3hNWx1vCHyEhl6V+wLmL4CZcm6g1CqX7UKrkc6y0i4FwcfOhxyMPCfaEvh20f4r9GNpw==} - engines: {node: '>=10.0.0'} - peerDependencies: - typescript: '*' - webpack: '*' - ts-log@2.2.5: resolution: {integrity: sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==} @@ -15457,6 +15198,11 @@ packages: engines: {node: '>=14.17'} hasBin: true + typescript@5.7.2: + resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} + engines: {node: '>=14.17'} + hasBin: true + ua-parser-js@0.7.33: resolution: {integrity: sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw==} @@ -16108,9 +15854,6 @@ packages: utf-8-validate: optional: true - xcase@2.0.1: - resolution: {integrity: sha512-UmFXIPU+9Eg3E9m/728Bii0lAIuoc+6nbrNUKaRPJOFp91ih44qqGlWtxMB6kXFrRD6po+86ksHM5XHCfk6iPw==} - xdg-basedir@4.0.0: resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} engines: {node: '>=8'} @@ -16222,6 +15965,15 @@ packages: resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} engines: {node: '>= 10'} + zod-validation-error@3.4.0: + resolution: {integrity: sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.18.0 + + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + zwitch@1.0.5: resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} @@ -17191,7 +16943,7 @@ snapshots: '@babel/traverse': 7.25.9 '@babel/types': 7.26.0 convert-source-map: 1.9.0 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) gensync: 1.0.0-beta.2 json5: 2.2.3 lodash: 4.17.21 @@ -17214,7 +16966,7 @@ snapshots: '@babel/traverse': 7.25.9 '@babel/types': 7.26.0 convert-source-map: 2.0.0 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.3.7 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -17271,7 +17023,7 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.22.5 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) lodash.debounce: 4.0.8 resolve: 1.22.8 semver: 6.3.1 @@ -18025,7 +17777,7 @@ snapshots: '@babel/parser': 7.26.2 '@babel/template': 7.25.9 '@babel/types': 7.26.0 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -19348,7 +19100,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) espree: 9.6.1 globals: 13.19.0 ignore: 5.2.4 @@ -19485,49 +19237,6 @@ snapshots: optionalDependencies: ts-jest: 29.0.5(@babel/core@7.26.0)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.26.0))(jest@29.5.0(@types/node@22.9.0)(ts-node@10.9.1(@swc/core@1.4.8(@swc/helpers@0.5.5))(@types/node@22.9.0)(typescript@4.9.4)))(typescript@4.9.4) - '@gitbeaker/core@25.6.0': - dependencies: - '@gitbeaker/requester-utils': 25.6.0 - form-data: 3.0.1 - li: 1.3.0 - xcase: 2.0.1 - - '@gitbeaker/core@34.7.0': - dependencies: - '@gitbeaker/requester-utils': 34.7.0 - form-data: 4.0.0 - li: 1.3.0 - mime: 3.0.0 - query-string: 7.1.3 - xcase: 2.0.1 - - '@gitbeaker/node@25.6.0': - dependencies: - '@gitbeaker/core': 25.6.0 - '@gitbeaker/requester-utils': 25.6.0 - got: 11.8.6 - xcase: 2.0.1 - - '@gitbeaker/node@34.7.0': - dependencies: - '@gitbeaker/core': 34.7.0 - '@gitbeaker/requester-utils': 34.7.0 - delay: 5.0.0 - got: 11.8.6 - xcase: 2.0.1 - - '@gitbeaker/requester-utils@25.6.0': - dependencies: - form-data: 3.0.1 - query-string: 6.14.1 - xcase: 2.0.1 - - '@gitbeaker/requester-utils@34.7.0': - dependencies: - form-data: 4.0.0 - qs: 6.13.0 - xcase: 2.0.1 - '@golevelup/nestjs-discovery@4.0.2(@nestjs/common@10.4.9(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1))(@nestjs/core@10.4.9)': dependencies: '@nestjs/common': 10.4.9(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1) @@ -20000,7 +19709,7 @@ snapshots: '@types/json-stable-stringify': 1.0.34 '@types/jsonwebtoken': 9.0.5 chalk: 4.1.2 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) dotenv: 16.4.5 graphql: 15.8.0 graphql-request: 5.1.0(graphql@15.8.0) @@ -20227,7 +19936,7 @@ snapshots: '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -20272,7 +19981,7 @@ snapshots: '@jest/types': 29.6.3 '@types/node': 22.9.0 chalk: 4.1.2 - jest-message-util: 29.5.0 + jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 @@ -20317,6 +20026,13 @@ snapshots: '@types/node': 22.9.0 jest-mock: 29.5.0 + '@jest/environment@29.7.0': + dependencies: + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 22.9.0 + jest-mock: 29.7.0 + '@jest/expect-utils@29.5.0': dependencies: jest-get-type: 29.4.3 @@ -20337,12 +20053,21 @@ snapshots: jest-mock: 29.5.0 jest-util: 29.7.0 + '@jest/fake-timers@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.0.2 + '@types/node': 22.9.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + '@jest/globals@29.5.0': dependencies: - '@jest/environment': 29.5.0 + '@jest/environment': 29.7.0 '@jest/expect': 29.5.0 '@jest/types': 29.6.3 - jest-mock: 29.5.0 + jest-mock: 29.7.0 transitivePeerDependencies: - supports-color @@ -20365,7 +20090,7 @@ snapshots: istanbul-lib-report: 3.0.0 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.5 - jest-message-util: 29.5.0 + jest-message-util: 29.7.0 jest-util: 29.7.0 jest-worker: 29.7.0 slash: 3.0.0 @@ -20647,7 +20372,7 @@ snapshots: dependencies: '@open-draft/until': 1.0.3 '@xmldom/xmldom': 0.7.10 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) headers-utils: 3.0.2 outvariant: 1.4.0 strict-event-emitter: 0.2.8 @@ -20923,12 +20648,6 @@ snapshots: - bufferutil - utf-8-validate - '@nestjs/jwt@10.2.0(@nestjs/common@10.4.9(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1))': - dependencies: - '@nestjs/common': 10.4.9(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@types/jsonwebtoken': 9.0.5 - jsonwebtoken: 9.0.2 - '@nestjs/mapped-types@2.0.5(@nestjs/common@10.4.9(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1))(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)': dependencies: '@nestjs/common': 10.4.9(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1) @@ -20945,11 +20664,6 @@ snapshots: class-transformer: 0.5.1 class-validator: 0.14.1 - '@nestjs/passport@10.0.3(@nestjs/common@10.4.9(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1))(passport@0.4.1)': - dependencies: - '@nestjs/common': 10.4.9(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1) - passport: 0.4.1 - '@nestjs/passport@10.0.3(@nestjs/common@10.4.9(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1))(passport@0.6.0)': dependencies: '@nestjs/common': 10.4.9(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1) @@ -22348,6 +22062,12 @@ snapshots: '@smithy/types': 3.7.1 tslib: 2.8.1 + '@snyk/github-codeowners@1.1.0': + dependencies: + commander: 4.1.1 + ignore: 5.2.4 + p-map: 4.0.0 + '@storybook/addon-actions@8.4.5(storybook@8.4.5(prettier@2.8.3))': dependencies: '@storybook/global': 5.0.0 @@ -22384,10 +22104,10 @@ snapshots: storybook: 8.4.5(prettier@2.8.3) tiny-invariant: 1.3.3 - '@storybook/addon-webpack5-compiler-babel@3.0.3(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5)))': + '@storybook/addon-webpack5-compiler-babel@3.0.3(webpack@5.96.1)': dependencies: '@babel/core': 7.26.0 - babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5))) + babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.96.1) transitivePeerDependencies: - supports-color - webpack @@ -22402,7 +22122,7 @@ snapshots: react: 17.0.2 react-dom: 17.0.2(react@17.0.2) - '@storybook/builder-webpack5@8.4.5(@swc/core@1.4.8(@swc/helpers@0.5.5))(storybook@8.4.5(prettier@2.8.3))(typescript@4.9.4)': + '@storybook/builder-webpack5@8.4.5(storybook@8.4.5(prettier@2.8.3))(typescript@4.9.4)': dependencies: '@storybook/core-webpack': 8.4.5(storybook@8.4.5(prettier@2.8.3)) '@types/node': 22.9.0 @@ -22411,23 +22131,23 @@ snapshots: case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.4.1 constants-browserify: 1.0.0 - css-loader: 6.7.3(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5))) + css-loader: 6.7.3(webpack@5.96.1) es-module-lexer: 1.5.4 - fork-ts-checker-webpack-plugin: 8.0.0(typescript@4.9.4)(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5))) - html-webpack-plugin: 5.5.0(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5))) + fork-ts-checker-webpack-plugin: 8.0.0(typescript@4.9.4)(webpack@5.96.1) + html-webpack-plugin: 5.5.0(webpack@5.96.1) magic-string: 0.30.13 path-browserify: 1.0.1 process: 0.11.10 semver: 7.6.3 storybook: 8.4.5(prettier@2.8.3) - style-loader: 3.3.4(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5))) - terser-webpack-plugin: 5.3.10(@swc/core@1.4.8(@swc/helpers@0.5.5))(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5))) + style-loader: 3.3.4(webpack@5.96.1) + terser-webpack-plugin: 5.3.10(webpack@5.96.1) ts-dedent: 2.2.0 url: 0.11.0 util: 0.12.5 util-deprecate: 1.0.2 - webpack: 5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5)) - webpack-dev-middleware: 6.1.3(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5))) + webpack: 5.96.1 + webpack-dev-middleware: 6.1.3(webpack@5.96.1) webpack-hot-middleware: 2.25.3 webpack-virtual-modules: 0.6.2 optionalDependencies: @@ -22442,10 +22162,6 @@ snapshots: dependencies: storybook: 8.4.5(prettier@2.8.3) - '@storybook/core-events@8.4.5(storybook@8.4.5(prettier@2.8.3))': - dependencies: - storybook: 8.4.5(prettier@2.8.3) - '@storybook/core-webpack@8.4.5(storybook@8.4.5(prettier@2.8.3))': dependencies: '@types/node': 22.9.0 @@ -22492,11 +22208,11 @@ snapshots: dependencies: storybook: 8.4.5(prettier@2.8.3) - '@storybook/preset-react-webpack@8.4.5(@swc/core@1.4.8(@swc/helpers@0.5.5))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(storybook@8.4.5(prettier@2.8.3))(typescript@4.9.4)': + '@storybook/preset-react-webpack@8.4.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(storybook@8.4.5(prettier@2.8.3))(typescript@4.9.4)': dependencies: '@storybook/core-webpack': 8.4.5(storybook@8.4.5(prettier@2.8.3)) '@storybook/react': 8.4.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(storybook@8.4.5(prettier@2.8.3))(typescript@4.9.4) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@4.9.4)(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5))) + '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@4.9.4)(webpack@5.96.1) '@types/node': 22.9.0 '@types/semver': 7.3.13 find-up: 5.0.0 @@ -22508,7 +22224,7 @@ snapshots: semver: 7.6.3 storybook: 8.4.5(prettier@2.8.3) tsconfig-paths: 4.2.0 - webpack: 5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5)) + webpack: 5.96.1 optionalDependencies: typescript: 4.9.4 transitivePeerDependencies: @@ -22523,9 +22239,9 @@ snapshots: dependencies: storybook: 8.4.5(prettier@2.8.3) - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@4.9.4)(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5)))': + '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@4.9.4)(webpack@5.96.1)': dependencies: - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) endent: 2.1.0 find-cache-dir: 3.3.2 flat-cache: 3.0.4 @@ -22533,7 +22249,7 @@ snapshots: react-docgen-typescript: 2.2.2(typescript@4.9.4) tslib: 2.8.1 typescript: 4.9.4 - webpack: 5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5)) + webpack: 5.96.1 transitivePeerDependencies: - supports-color @@ -22543,10 +22259,10 @@ snapshots: react-dom: 17.0.2(react@17.0.2) storybook: 8.4.5(prettier@2.8.3) - '@storybook/react-webpack5@8.4.5(@swc/core@1.4.8(@swc/helpers@0.5.5))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(storybook@8.4.5(prettier@2.8.3))(typescript@4.9.4)': + '@storybook/react-webpack5@8.4.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(storybook@8.4.5(prettier@2.8.3))(typescript@4.9.4)': dependencies: - '@storybook/builder-webpack5': 8.4.5(@swc/core@1.4.8(@swc/helpers@0.5.5))(storybook@8.4.5(prettier@2.8.3))(typescript@4.9.4) - '@storybook/preset-react-webpack': 8.4.5(@swc/core@1.4.8(@swc/helpers@0.5.5))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(storybook@8.4.5(prettier@2.8.3))(typescript@4.9.4) + '@storybook/builder-webpack5': 8.4.5(storybook@8.4.5(prettier@2.8.3))(typescript@4.9.4) + '@storybook/preset-react-webpack': 8.4.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(storybook@8.4.5(prettier@2.8.3))(typescript@4.9.4) '@storybook/react': 8.4.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(storybook@8.4.5(prettier@2.8.3))(typescript@4.9.4) '@types/node': 22.9.0 react: 17.0.2 @@ -22909,8 +22625,6 @@ snapshots: '@types/cookie@0.4.1': {} - '@types/debounce@1.2.1': {} - '@types/debug@4.1.12': dependencies: '@types/ms': 0.7.34 @@ -22965,10 +22679,6 @@ snapshots: '@types/format-util@1.0.4': {} - '@types/fs-extra@9.0.13': - dependencies: - '@types/node': 22.9.0 - '@types/get-image-colors@4.0.2': dependencies: '@types/chroma-js': 2.1.4 @@ -23076,10 +22786,6 @@ snapshots: dependencies: '@types/node': 22.9.0 - '@types/lodash.clonedeep@4.5.7': - dependencies: - '@types/lodash': 4.14.191 - '@types/lodash.debounce@4.0.7': dependencies: '@types/lodash': 4.14.191 @@ -23088,18 +22794,10 @@ snapshots: dependencies: '@types/lodash': 4.14.191 - '@types/lodash.get@4.4.7': - dependencies: - '@types/lodash': 4.14.191 - '@types/lodash.isequal@4.5.6': dependencies: '@types/lodash': 4.14.191 - '@types/lodash.set@4.3.7': - dependencies: - '@types/lodash': 4.14.191 - '@types/lodash@4.14.191': {} '@types/long@4.0.2': {} @@ -23235,10 +22933,6 @@ snapshots: dependencies: '@types/react': 17.0.53 - '@types/react-is@17.0.3': - dependencies: - '@types/react': 17.0.53 - '@types/react-router-config@5.0.7': dependencies: '@types/history': 4.7.11 @@ -23385,17 +23079,6 @@ snapshots: '@types/validator@13.12.2': {} - '@types/webpack@5.28.0(@swc/core@1.4.8(@swc/helpers@0.5.5))': - dependencies: - '@types/node': 22.9.0 - tapable: 2.2.1 - webpack: 5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5)) - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - webpack-cli - '@types/websocket@1.0.2': dependencies: '@types/node': 22.9.0 @@ -23416,7 +23099,7 @@ snapshots: '@typescript-eslint/scope-manager': 5.49.0 '@typescript-eslint/type-utils': 5.49.0(eslint@8.57.1)(typescript@4.9.4) '@typescript-eslint/utils': 5.49.0(eslint@8.57.1)(typescript@4.9.4) - debug: 4.3.7(supports-color@9.3.1) + debug: 4.3.7 eslint: 8.57.1 ignore: 5.2.4 natural-compare-lite: 1.4.0 @@ -23433,7 +23116,7 @@ snapshots: '@typescript-eslint/scope-manager': 5.49.0 '@typescript-eslint/types': 5.49.0 '@typescript-eslint/typescript-estree': 5.49.0(typescript@4.9.4) - debug: 4.3.7(supports-color@9.3.1) + debug: 4.3.7 eslint: 8.57.1 optionalDependencies: typescript: 4.9.4 @@ -23454,7 +23137,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 5.49.0(typescript@4.9.4) '@typescript-eslint/utils': 5.49.0(eslint@8.57.1)(typescript@4.9.4) - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) eslint: 8.57.1 tsutils: 3.21.0(typescript@4.9.4) optionalDependencies: @@ -23470,7 +23153,7 @@ snapshots: dependencies: '@typescript-eslint/types': 5.49.0 '@typescript-eslint/visitor-keys': 5.49.0 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.3 @@ -23484,7 +23167,7 @@ snapshots: dependencies: '@typescript-eslint/types': 8.15.0 '@typescript-eslint/visitor-keys': 8.15.0 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 @@ -23705,13 +23388,13 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) transitivePeerDependencies: - supports-color agent-base@7.1.1: dependencies: - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) transitivePeerDependencies: - supports-color @@ -24040,15 +23723,6 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@8.3.0(@babel/core@7.26.0)(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5))): - dependencies: - '@babel/core': 7.26.0 - find-cache-dir: 3.3.2 - loader-utils: 2.0.4 - make-dir: 3.1.0 - schema-utils: 2.7.1 - webpack: 5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5)) - babel-loader@8.3.0(@babel/core@7.26.0)(webpack@5.96.1): dependencies: '@babel/core': 7.26.0 @@ -24058,12 +23732,12 @@ snapshots: schema-utils: 2.7.1 webpack: 5.96.1 - babel-loader@9.2.1(@babel/core@7.26.0)(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5))): + babel-loader@9.2.1(@babel/core@7.26.0)(webpack@5.96.1): dependencies: '@babel/core': 7.26.0 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5)) + webpack: 5.96.1 babel-plugin-apply-mdx-type-prop@1.6.22(@babel/core@7.12.9): dependencies: @@ -24689,8 +24363,6 @@ snapshots: client-only@0.0.1: {} - clipboard-copy@4.0.1: {} - cliui@5.0.0: dependencies: string-width: 3.1.0 @@ -25127,18 +24799,6 @@ snapshots: dependencies: postcss: 8.4.49 - css-loader@6.7.3(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5))): - dependencies: - icss-utils: 5.1.0(postcss@8.4.49) - postcss: 8.4.49 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.49) - postcss-modules-local-by-default: 4.0.0(postcss@8.4.49) - postcss-modules-scope: 3.0.0(postcss@8.4.49) - postcss-modules-values: 4.0.0(postcss@8.4.49) - postcss-value-parser: 4.2.0 - semver: 7.6.3 - webpack: 5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5)) - css-loader@6.7.3(webpack@5.96.1): dependencies: icss-utils: 5.1.0(postcss@8.4.49) @@ -25517,7 +25177,11 @@ snapshots: dependencies: ms: 2.1.2 - debug@4.3.7(supports-color@9.3.1): + debug@4.3.7: + dependencies: + ms: 2.1.3 + + debug@4.4.0(supports-color@9.3.1): dependencies: ms: 2.1.3 optionalDependencies: @@ -25615,8 +25279,6 @@ snapshots: dependencies: robust-predicates: 3.0.2 - delay@5.0.0: {} - delayed-stream@1.0.0: {} denque@2.1.0: {} @@ -25653,7 +25315,7 @@ snapshots: detect-port@1.5.1: dependencies: address: 1.2.2 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) transitivePeerDependencies: - supports-color @@ -25877,6 +25539,12 @@ snapshots: eastasianwidth@0.2.0: {} + easy-table@1.2.0: + dependencies: + ansi-regex: 5.0.1 + optionalDependencies: + wcwidth: 1.0.1 + ecc-jsbn@0.1.2: dependencies: jsbn: 0.1.1 @@ -25924,12 +25592,6 @@ snapshots: fast-json-parse: 1.0.3 objectorarray: 1.0.5 - enhanced-resolve@4.5.0: - dependencies: - graceful-fs: 4.2.11 - memory-fs: 0.5.0 - tapable: 1.1.3 - enhanced-resolve@5.17.1: dependencies: graceful-fs: 4.2.11 @@ -25949,10 +25611,6 @@ snapshots: err-code@2.0.3: {} - errno@0.1.8: - dependencies: - prr: 1.0.1 - error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -26067,7 +25725,7 @@ snapshots: esbuild-register@3.6.0(esbuild@0.19.12): dependencies: - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) esbuild: 0.19.12 transitivePeerDependencies: - supports-color @@ -26153,7 +25811,7 @@ snapshots: eslint-import-resolver-typescript@3.5.3(eslint-plugin-import@2.29.1)(eslint@8.57.1): dependencies: - debug: 4.3.7(supports-color@9.3.1) + debug: 4.3.7 enhanced-resolve: 5.17.1 eslint: 8.57.1 eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.49.0(eslint@8.57.1)(typescript@4.9.4))(eslint-import-resolver-typescript@3.5.3)(eslint@8.57.1) @@ -26396,7 +26054,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.3.7 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -26830,7 +26488,7 @@ snapshots: optionalDependencies: eslint: 8.57.1 - fork-ts-checker-webpack-plugin@8.0.0(typescript@4.9.4)(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5))): + fork-ts-checker-webpack-plugin@8.0.0(typescript@4.9.4)(webpack@5.96.1): dependencies: '@babel/code-frame': 7.26.2 chalk: 4.1.2 @@ -26845,7 +26503,7 @@ snapshots: semver: 7.6.3 tapable: 2.2.1 typescript: 4.9.4 - webpack: 5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5)) + webpack: 5.96.1 fork-ts-checker-webpack-plugin@9.0.2(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5))): dependencies: @@ -27288,7 +26946,7 @@ snapshots: graphql-parse-resolve-info@4.13.0(graphql@16.9.0): dependencies: - debug: 4.3.7(supports-color@9.3.1) + debug: 4.3.7 graphql: 16.9.0 tslib: 2.8.1 transitivePeerDependencies: @@ -27467,6 +27125,8 @@ snapshots: helmet@4.6.0: {} + helmet@7.2.0: {} + history@4.10.1: dependencies: '@babel/runtime': 7.25.7 @@ -27517,15 +27177,6 @@ snapshots: html-void-elements@1.0.5: {} - html-webpack-plugin@5.5.0(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5))): - dependencies: - '@types/html-minifier-terser': 6.1.0 - html-minifier-terser: 6.1.0 - lodash: 4.17.21 - pretty-error: 4.0.0 - tapable: 2.2.1 - webpack: 5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5)) - html-webpack-plugin@5.5.0(webpack@5.96.1): dependencies: '@types/html-minifier-terser': 6.1.0 @@ -27583,14 +27234,14 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) transitivePeerDependencies: - supports-color @@ -27630,14 +27281,14 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) transitivePeerDependencies: - supports-color https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.1 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) transitivePeerDependencies: - supports-color @@ -27790,7 +27441,7 @@ snapshots: dependencies: '@ioredis/commands': 1.2.0 cluster-key-slot: 1.1.2 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.3.7 denque: 2.1.0 lodash.defaults: 4.2.0 lodash.isarguments: 3.1.0 @@ -27920,8 +27571,6 @@ snapshots: is-hexadecimal@2.0.1: {} - is-in-browser@1.1.3: {} - is-installed-globally@0.4.0: dependencies: global-dirs: 3.0.1 @@ -28109,7 +27758,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) istanbul-lib-coverage: 3.2.0 source-map: 0.6.1 transitivePeerDependencies: @@ -28158,7 +27807,7 @@ snapshots: jest-circus@29.5.0: dependencies: - '@jest/environment': 29.5.0 + '@jest/environment': 29.7.0 '@jest/expect': 29.5.0 '@jest/test-result': 29.5.0 '@jest/types': 29.6.3 @@ -28169,12 +27818,12 @@ snapshots: is-generator-fn: 2.1.0 jest-each: 29.5.0 jest-matcher-utils: 29.5.0 - jest-message-util: 29.5.0 + jest-message-util: 29.7.0 jest-runtime: 29.5.0 jest-snapshot: 29.5.0 jest-util: 29.7.0 p-limit: 3.1.0 - pretty-format: 29.5.0 + pretty-format: 29.7.0 pure-rand: 6.0.1 slash: 3.0.0 stack-utils: 2.0.6 @@ -28221,7 +27870,7 @@ snapshots: jest-validate: 29.5.0 micromatch: 4.0.8 parse-json: 5.2.0 - pretty-format: 29.5.0 + pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: @@ -28242,7 +27891,7 @@ snapshots: chalk: 4.1.2 diff-sequences: 29.4.3 jest-get-type: 29.4.3 - pretty-format: 29.5.0 + pretty-format: 29.7.0 jest-docblock@29.4.3: dependencies: @@ -28254,7 +27903,7 @@ snapshots: chalk: 4.1.2 jest-get-type: 29.4.3 jest-util: 29.7.0 - pretty-format: 29.5.0 + pretty-format: 29.7.0 jest-environment-jsdom@29.5.0: dependencies: @@ -28271,13 +27920,28 @@ snapshots: - supports-color - utf-8-validate + jest-environment-jsdom@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/jsdom': 20.0.1 + '@types/node': 22.9.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + jsdom: 20.0.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + jest-environment-node@29.5.0: dependencies: - '@jest/environment': 29.5.0 - '@jest/fake-timers': 29.5.0 + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/node': 22.9.0 - jest-mock: 29.5.0 + jest-mock: 29.7.0 jest-util: 29.7.0 jest-get-type@27.5.1: {} @@ -28310,14 +27974,14 @@ snapshots: jest-leak-detector@29.5.0: dependencies: jest-get-type: 29.4.3 - pretty-format: 29.5.0 + pretty-format: 29.7.0 jest-matcher-utils@29.5.0: dependencies: chalk: 4.1.2 jest-diff: 29.5.0 jest-get-type: 29.4.3 - pretty-format: 29.5.0 + pretty-format: 29.7.0 jest-message-util@29.5.0: dependencies: @@ -28327,7 +27991,19 @@ snapshots: chalk: 4.1.2 graceful-fs: 4.2.11 micromatch: 4.0.8 - pretty-format: 29.5.0 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-message-util@29.7.0: + dependencies: + '@babel/code-frame': 7.26.2 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 @@ -28337,6 +28013,12 @@ snapshots: '@types/node': 22.9.0 jest-util: 29.7.0 + jest-mock@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 22.9.0 + jest-util: 29.7.0 + jest-pnp-resolver@1.2.3(jest-resolve@29.5.0): optionalDependencies: jest-resolve: 29.5.0 @@ -28365,7 +28047,7 @@ snapshots: jest-runner@29.5.0: dependencies: '@jest/console': 29.5.0 - '@jest/environment': 29.5.0 + '@jest/environment': 29.7.0 '@jest/test-result': 29.5.0 '@jest/transform': 29.5.0 '@jest/types': 29.6.3 @@ -28377,7 +28059,7 @@ snapshots: jest-environment-node: 29.5.0 jest-haste-map: 29.5.0 jest-leak-detector: 29.5.0 - jest-message-util: 29.5.0 + jest-message-util: 29.7.0 jest-resolve: 29.5.0 jest-runtime: 29.5.0 jest-util: 29.7.0 @@ -28390,8 +28072,8 @@ snapshots: jest-runtime@29.5.0: dependencies: - '@jest/environment': 29.5.0 - '@jest/fake-timers': 29.5.0 + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 '@jest/globals': 29.5.0 '@jest/source-map': 29.4.3 '@jest/test-result': 29.5.0 @@ -28404,8 +28086,8 @@ snapshots: glob: 7.2.3 graceful-fs: 4.2.11 jest-haste-map: 29.5.0 - jest-message-util: 29.5.0 - jest-mock: 29.5.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 jest-regex-util: 29.4.3 jest-resolve: 29.5.0 jest-snapshot: 29.5.0 @@ -28435,10 +28117,10 @@ snapshots: jest-diff: 29.5.0 jest-get-type: 29.4.3 jest-matcher-utils: 29.5.0 - jest-message-util: 29.5.0 + jest-message-util: 29.7.0 jest-util: 29.7.0 natural-compare: 1.4.0 - pretty-format: 29.5.0 + pretty-format: 29.7.0 semver: 7.6.3 transitivePeerDependencies: - supports-color @@ -28459,7 +28141,7 @@ snapshots: chalk: 4.1.2 jest-get-type: 29.4.3 leven: 3.1.0 - pretty-format: 29.5.0 + pretty-format: 29.7.0 jest-watcher@29.5.0: dependencies: @@ -28498,6 +28180,8 @@ snapshots: jiti@1.19.1: {} + jiti@2.4.0: {} + joi@17.7.0: dependencies: '@hapi/hoek': 9.3.0 @@ -28664,13 +28348,6 @@ snapshots: json-schema: 0.4.0 verror: 1.10.0 - jss@10.9.2: - dependencies: - '@babel/runtime': 7.25.7 - csstype: 3.1.3 - is-in-browser: 1.1.3 - tiny-warning: 1.0.3 - jsx-ast-utils@3.3.3: dependencies: array-includes: 3.1.8 @@ -28696,7 +28373,7 @@ snapshots: dependencies: '@types/express': 4.17.16 '@types/jsonwebtoken': 9.0.5 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.3.7 jose: 4.15.9 limiter: 1.1.5 lru-memoizer: 2.1.4 @@ -28750,6 +28427,27 @@ snapshots: transitivePeerDependencies: - supports-color + knip@5.38.1(@types/node@22.9.0)(typescript@5.7.2): + dependencies: + '@nodelib/fs.walk': 1.2.8 + '@snyk/github-codeowners': 1.1.0 + '@types/node': 22.9.0 + easy-table: 1.2.0 + enhanced-resolve: 5.17.1 + fast-glob: 3.3.2 + jiti: 2.4.0 + js-yaml: 4.1.0 + minimist: 1.2.8 + picocolors: 1.1.1 + picomatch: 4.0.2 + pretty-ms: 9.2.0 + smol-toml: 1.3.1 + strip-json-comments: 5.0.1 + summary: 2.1.0 + typescript: 5.7.2 + zod: 3.23.8 + zod-validation-error: 3.4.0(zod@3.23.8) + language-subtag-registry@0.3.22: {} language-tags@1.0.5: @@ -28780,8 +28478,6 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - li@1.3.0: {} - libphonenumber-js@1.11.15: {} lie@3.1.1: @@ -28805,7 +28501,7 @@ snapshots: cli-truncate: 3.1.0 colorette: 2.0.19 commander: 9.5.0 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) execa: 5.1.1 lilconfig: 2.0.5 listr2: 4.0.5(enquirer@2.3.6) @@ -28857,12 +28553,6 @@ snapshots: loader-runner@4.3.0: {} - loader-utils@1.4.2: - dependencies: - big.js: 5.2.2 - emojis-list: 3.0.0 - json5: 1.0.2 - loader-utils@2.0.4: dependencies: big.js: 5.2.2 @@ -28964,8 +28654,6 @@ snapshots: lodash.reject@4.6.0: {} - lodash.set@4.3.2: {} - lodash.some@4.6.0: {} lodash.sortby@4.7.0: {} @@ -29283,11 +28971,6 @@ snapshots: memoize-one@5.2.1: {} - memory-fs@0.5.0: - dependencies: - errno: 0.1.8 - readable-stream: 2.3.7 - memorystream@0.3.1: {} meow@6.1.1: @@ -29585,7 +29268,7 @@ snapshots: micromark@2.11.4: dependencies: - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) parse-entities: 2.0.0 transitivePeerDependencies: - supports-color @@ -29593,7 +29276,7 @@ snapshots: micromark@4.0.1: dependencies: '@types/debug': 4.1.12 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.2 @@ -29680,6 +29363,8 @@ snapshots: minimist@1.2.7: {} + minimist@1.2.8: {} + minipass@3.3.6: dependencies: yallist: 4.0.0 @@ -30229,6 +29914,8 @@ snapshots: lines-and-columns: 2.0.4 type-fest: 3.13.1 + parse-ms@4.0.0: {} + parse-numeric-range@1.3.0: {} parse5-htmlparser2-tree-adapter@7.0.0: @@ -30264,11 +29951,6 @@ snapshots: passport-strategy@1.0.0: {} - passport@0.4.1: - dependencies: - passport-strategy: 1.0.0 - pause: 0.0.1 - passport@0.6.0: dependencies: passport-strategy: 1.0.0 @@ -30701,6 +30383,16 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 + + pretty-ms@9.2.0: + dependencies: + parse-ms: 4.0.0 + pretty-time@1.1.0: {} prism-react-renderer@1.3.5(react@17.0.2): @@ -30775,8 +30467,6 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 - prr@1.0.1: {} - pseudomap@1.0.2: {} psl@1.9.0: {} @@ -30821,13 +30511,6 @@ snapshots: split-on-first: 1.1.0 strict-uri-encode: 2.0.0 - query-string@7.1.3: - dependencies: - decode-uri-component: 0.2.2 - filter-obj: 1.1.0 - split-on-first: 1.1.0 - strict-uri-encode: 2.0.0 - querystring@0.2.0: {} querystringify@2.2.0: {} @@ -31568,7 +31251,7 @@ snapshots: require-in-the-middle@7.4.0: dependencies: - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) module-details-from-path: 1.0.3 resolve: 1.22.8 transitivePeerDependencies: @@ -31955,13 +31638,6 @@ snapshots: sisteransi@1.0.5: {} - sitemap@6.4.0: - dependencies: - '@types/node': 14.18.63 - '@types/sax': 1.2.4 - arg: 5.0.2 - sax: 1.2.4 - sitemap@7.1.1: dependencies: '@types/node': 17.0.45 @@ -32003,6 +31679,8 @@ snapshots: wcwidth: 1.0.1 yargs: 15.4.1 + smol-toml@1.3.1: {} + snake-case@3.0.4: dependencies: dot-case: 3.0.4 @@ -32070,7 +31748,7 @@ snapshots: spdy-transport@3.0.0: dependencies: - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -32081,7 +31759,7 @@ snapshots: spdy@4.0.2: dependencies: - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -32298,6 +31976,8 @@ snapshots: strip-json-comments@3.1.1: {} + strip-json-comments@5.0.1: {} + strnum@1.0.5: {} strtok3@6.3.0: @@ -32305,9 +31985,9 @@ snapshots: '@tokenizer/token': 0.3.0 peek-readable: 4.1.0 - style-loader@3.3.4(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5))): + style-loader@3.3.4(webpack@5.96.1): dependencies: - webpack: 5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5)) + webpack: 5.96.1 style-to-object@0.3.0: dependencies: @@ -32394,6 +32074,8 @@ snapshots: pirates: 4.0.5 ts-interface-checker: 0.1.13 + summary@2.1.0: {} + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -32643,25 +32325,6 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.5.0(@babel/core@7.26.0) - ts-loader@6.2.2(typescript@4.9.4): - dependencies: - chalk: 2.4.2 - enhanced-resolve: 4.5.0 - loader-utils: 1.4.2 - micromatch: 4.0.8 - semver: 6.3.1 - typescript: 4.9.4 - - ts-loader@8.4.0(typescript@4.9.4)(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5))): - dependencies: - chalk: 4.1.2 - enhanced-resolve: 4.5.0 - loader-utils: 2.0.4 - micromatch: 4.0.8 - semver: 7.6.3 - typescript: 4.9.4 - webpack: 5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5)) - ts-log@2.2.5: {} ts-morph@16.0.0: @@ -32833,6 +32496,8 @@ snapshots: typescript@5.6.3: {} + typescript@5.7.2: {} + ua-parser-js@0.7.33: {} uid@2.0.2: @@ -32892,7 +32557,7 @@ snapshots: '@types/node': 22.9.0 '@types/unist': 3.0.3 concat-stream: 2.0.0 - debug: 4.3.7(supports-color@9.3.1) + debug: 4.4.0(supports-color@9.3.1) extend: 3.0.2 glob: 10.4.5 ignore: 6.0.2 @@ -33370,7 +33035,7 @@ snapshots: schema-utils: 4.2.0 webpack: 5.96.1 - webpack-dev-middleware@6.1.3(webpack@5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5))): + webpack-dev-middleware@6.1.3(webpack@5.96.1): dependencies: colorette: 2.0.19 memfs: 3.4.13 @@ -33378,7 +33043,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.2.0 optionalDependencies: - webpack: 5.96.1(@swc/core@1.4.8(@swc/helpers@0.5.5)) + webpack: 5.96.1 webpack-dev-server@4.11.1(webpack@5.96.1): dependencies: @@ -33644,8 +33309,6 @@ snapshots: ws@8.18.0: {} - xcase@2.0.1: {} - xdg-basedir@4.0.0: {} xdg-basedir@5.1.0: {} @@ -33762,6 +33425,12 @@ snapshots: compress-commons: 4.1.2 readable-stream: 3.6.0 + zod-validation-error@3.4.0(zod@3.23.8): + dependencies: + zod: 3.23.8 + + zod@3.23.8: {} + zwitch@1.0.5: {} zwitch@2.0.4: {} diff --git a/storybook/.storybook/mocks/handlers.ts b/storybook/.storybook/mocks/handlers.ts index f63f8869bf..849e511748 100644 --- a/storybook/.storybook/mocks/handlers.ts +++ b/storybook/.storybook/mocks/handlers.ts @@ -21,7 +21,7 @@ type LaunchesPastFilter = { or: LaunchesPastFilter[]; }; -export type Launch = { +type Launch = { id: string; mission_name: string; launch_date_local: Date; diff --git a/storybook/package.json b/storybook/package.json index 828e88ec86..772f24ad22 100644 --- a/storybook/package.json +++ b/storybook/package.json @@ -23,7 +23,6 @@ "@comet/admin-react-select": "workspace:*", "@comet/admin-rte": "workspace:*", "@comet/admin-theme": "workspace:*", - "@comet/blocks-admin": "workspace:*", "@comet/cms-admin": "workspace:*", "@emotion/react": "^11.5.0", "@emotion/styled": "^11.3.0", @@ -39,7 +38,6 @@ "final-form": "^4.16.1", "graphql": "^15.0.0", "graphql-anywhere": "^4.2.7", - "graphql-tag": "^2.12.6", "history": "^4.10.1", "qs": "^6.9.1", "react": "^17.0", @@ -47,13 +45,11 @@ "react-final-form": "^6.3.1", "react-intl": "^6.0.0", "react-select": "^3.0.4", - "require-from-string": "^2.0.2", "use-debounce": "^6.0.0", "uuid": "^9.0.0" }, "devDependencies": { "@babel/cli": "^7.17.6", - "@babel/core": "^7.20.12", "@comet/admin-babel-preset": "workspace:*", "@comet/eslint-config": "workspace:*", "@faker-js/faker": "^7.6.0", @@ -63,16 +59,12 @@ "@storybook/addon-docs": "^8.4.4", "@storybook/addon-storysource": "^8.4.4", "@storybook/addon-webpack5-compiler-babel": "^3.0.3", - "@storybook/blocks": "^8.4.4", - "@storybook/components": "^8.4.4", - "@storybook/core-events": "^8.4.4", "@storybook/manager-api": "^8.4.4", "@storybook/react": "^8.4.4", "@storybook/react-webpack5": "^8.4.4", "@storybook/theming": "^8.4.4", "@types/draft-js": "^0.11.10", "@types/faker": "^5.5.8", - "@types/file-saver": "^2.0.1", "@types/history": "^4.0.0", "@types/qs": "^6.9.0", "@types/react": "^17.0.0", @@ -80,8 +72,6 @@ "@types/react-router": "^5.0.3", "@types/react-router-dom": "^4.3.4", "@types/uuid": "^9.0.0", - "@types/webpack": "^5.0.0", - "babel-loader": "^8.0.6", "draft-js": "^0.11.5", "draft-js-export-html": "^1.4.1", "draft-js-export-markdown": "^1.4.0", @@ -100,10 +90,7 @@ "react-router-dom": "^5.0.1", "remark-gfm": "^4.0.0", "storybook": "^8.4.4", - "ts-loader": "^6.0.4", - "ts-node": "^10.0.0", - "typescript": "^4.0.0", - "webpack": "^5.0.0" + "typescript": "^4.0.0" }, "msw": { "workerDirectory": "public" diff --git a/storybook/src/admin/form/DependentAsyncSelects.stories.tsx b/storybook/src/admin/form/DependentAsyncSelects.stories.tsx index 980808a88a..fc71fed340 100644 --- a/storybook/src/admin/form/DependentAsyncSelects.stories.tsx +++ b/storybook/src/admin/form/DependentAsyncSelects.stories.tsx @@ -2,8 +2,8 @@ import { gql, useApolloClient } from "@apollo/client"; import { AsyncSelectField, FinalForm, OnChangeField } from "@comet/admin"; import { Box } from "@mui/material"; +import { Manufacturer, Product } from "../../../.storybook/mocks/handlers"; import { apolloStoryDecorator } from "../../apollo-story.decorator"; -import { Manufacturer, Product } from "../../mocks/handlers"; interface FormValues { manufacturer?: Manufacturer; diff --git a/storybook/src/admin/toolbar/Toolbar.stories.tsx b/storybook/src/admin/toolbar/Toolbar.stories.tsx index abaf81835c..8de09441c4 100644 --- a/storybook/src/admin/toolbar/Toolbar.stories.tsx +++ b/storybook/src/admin/toolbar/Toolbar.stories.tsx @@ -4,13 +4,13 @@ import { StackPage, StackSwitch, Toolbar, + ToolbarActionButton, ToolbarActions, ToolbarAutomaticTitleItem, ToolbarBackButton, ToolbarFillSpace, ToolbarItem, } from "@comet/admin"; -import { ToolbarActionButton } from "@comet/admin/lib/common/toolbar/actions/ToolbarActionButton"; import { ArrowRight, Save } from "@comet/admin-icons"; import { Chip } from "@mui/material"; import { ReactNode } from "react";