diff --git a/apps/civicsignalblog/.eslintrc.js b/apps/civicsignalblog/.eslintrc.js index 468a5ff74..d03437b35 100644 --- a/apps/civicsignalblog/.eslintrc.js +++ b/apps/civicsignalblog/.eslintrc.js @@ -1,6 +1,12 @@ module.exports = { root: true, extends: ["eslint-config-commons-ui/next"], + rules: { + "react/jsx-filename-extension": [ + "warn", + { extensions: [".js", ".jsx", "ts", ".tsx"] }, + ], + }, settings: { "import/resolver": { webpack: { diff --git a/apps/civicsignalblog/package.json b/apps/civicsignalblog/package.json index f95dc937b..33571e48f 100644 --- a/apps/civicsignalblog/package.json +++ b/apps/civicsignalblog/package.json @@ -21,11 +21,11 @@ "url": "https://github.com/codeforafrica/ui/issues" }, "scripts": { - "build-server": "tsc --project tsconfig.server.json", + "build-server": "tsc --project tsconfig.server.json && tsc-alias -p tsconfig.server.json", "build-next": "NEXT_BUILD=true pnpm build-server && NEXT_BUILD=true PAYLOAD_CONFIG_PATH=${PAYLOAD_CONFIG_PATH:-dist/payload.config.js} node dist/server.js", "build-payload": "payload build", "start": "PAYLOAD_CONFIG_PATH=${PAYLOAD_CONFIG_PATH:-dist/payload.config.js} NODE_ENV=${NODE_ENV:-production} node dist/server.js", - "dev": "NODE_OPTIONS='--inspect' ts-node --project tsconfig.server.json server.ts", + "dev": "NODE_OPTIONS='--inspect' ts-node --project tsconfig.server.json -r tsconfig-paths/register server.ts", "lint-check": "TIMING=1 eslint './'", "lint": "TIMING=1 eslint --fix './'", "jest": "jest", @@ -98,6 +98,8 @@ "prettier": "catalog:", "react-test-renderer": "catalog:", "ts-node": "catalog:", + "tsc-alias": "catalog:", + "tsconfig-paths": "catalog:", "typescript": "catalog:", "webpack": "catalog:" }, diff --git a/apps/civicsignalblog/payload.config.ts b/apps/civicsignalblog/payload.config.ts index 4a5b41c4e..83e78358e 100644 --- a/apps/civicsignalblog/payload.config.ts +++ b/apps/civicsignalblog/payload.config.ts @@ -1,5 +1,3 @@ -import path from "path"; - import { buildConfig } from "payload/config"; import { slateEditor } from "@payloadcms/richtext-slate"; import { mongooseAdapter } from "@payloadcms/db-mongodb"; @@ -11,12 +9,11 @@ import seo from "@payloadcms/plugin-seo"; import nestedDocs from "@payloadcms/plugin-nested-docs"; import { s3Adapter } from "@payloadcms/plugin-cloud-storage/s3"; import { loadEnvConfig } from "@next/env"; - +import resolveTsconfigPathsToAlias from "./tsconfigPathToWebpackAlias"; import Authors from "./src/payload/collections/Research/Authors"; import Media from "./src/payload/collections/Research/Media"; import Pages from "./src/payload/collections/Research/Pages"; import CivicSignalPages from "./src/payload/collections/Main/Pages"; - import Posts from "./src/payload/collections/Research/Posts"; import Publication from "./src/payload/globals/Publication"; import Research from "./src/payload/globals/Site/research"; @@ -24,7 +21,6 @@ import Main from "./src/payload/globals/Site/main"; import Tags from "./src/payload/collections/Research/Tags"; import Users from "./src/payload/collections/Users"; import { defaultLocale, locales } from "./src/payload/utils/locales"; - import Actions from "./src/payload/components/actions"; const dev = process.env.NODE_ENV !== "production"; @@ -81,7 +77,6 @@ export default buildConfig({ } : undefined), admin: { - css: path.resolve(__dirname, "./src/payload/admin/scss/custom.scss"), user: Users.slug, components: { actions: [Actions], @@ -100,6 +95,10 @@ export default buildConfig({ ...config, resolve: { ...config.resolve, + alias: { + ...(config.resolve.alias || {}), + ...resolveTsconfigPathsToAlias(), + }, fallback: { ...config?.resolve?.fallback, fs: false, diff --git a/apps/civicsignalblog/src/payload/access/applications/main.js b/apps/civicsignalblog/src/payload/access/applications/main.js index ea89b28e6..5f334cebe 100644 --- a/apps/civicsignalblog/src/payload/access/applications/main.js +++ b/apps/civicsignalblog/src/payload/access/applications/main.js @@ -1,5 +1,5 @@ -import { MAIN } from "../../lib/data/common/applications"; -import canAccessApplication from "../canAccessApplication"; +import canAccessApplication from "@/civicsignalblog/payload/access/canAccessApplication"; +import { MAIN } from "@/civicsignalblog/payload/lib/data/common/applications"; const canRead = ({ req: { user } }) => { return canAccessApplication(user, MAIN); diff --git a/apps/civicsignalblog/src/payload/access/applications/research.js b/apps/civicsignalblog/src/payload/access/applications/research.js index 2171f614e..330623f78 100644 --- a/apps/civicsignalblog/src/payload/access/applications/research.js +++ b/apps/civicsignalblog/src/payload/access/applications/research.js @@ -1,5 +1,5 @@ -import { RESEARCH } from "../../lib/data/common/applications"; -import canAccessApplication from "../canAccessApplication"; +import canAccessApplication from "@/civicsignalblog/payload/access/canAccessApplication"; +import { RESEARCH } from "@/civicsignalblog/payload/lib/data/common/applications"; const canRead = ({ req: { user } }) => { return canAccessApplication(user, RESEARCH); diff --git a/apps/civicsignalblog/src/payload/admin/scss/custom.scss b/apps/civicsignalblog/src/payload/admin/scss/custom.scss deleted file mode 100644 index d49008729..000000000 --- a/apps/civicsignalblog/src/payload/admin/scss/custom.scss +++ /dev/null @@ -1,13 +0,0 @@ -@import "~payload/scss"; - -.array-field-nested, -.group-field-nested { - .array-field__header, - .group-field__header { - h3 { - @extend %body; - color: var(--theme-elevation-800); - font-family: var(--font-body); - } - } -} diff --git a/apps/civicsignalblog/src/payload/blocks/CustomPageHeader.js b/apps/civicsignalblog/src/payload/blocks/CustomPageHeader.js index 6cbebe7f2..d926935ff 100644 --- a/apps/civicsignalblog/src/payload/blocks/CustomPageHeader.js +++ b/apps/civicsignalblog/src/payload/blocks/CustomPageHeader.js @@ -1,4 +1,4 @@ -import image from "../fields/image"; +import image from "@/civicsignalblog/payload/fields/image"; const CustomPageHeader = { slug: "custom-page-header", diff --git a/apps/civicsignalblog/src/payload/blocks/Error.js b/apps/civicsignalblog/src/payload/blocks/Error.js index 966642a3e..0b2f15e01 100644 --- a/apps/civicsignalblog/src/payload/blocks/Error.js +++ b/apps/civicsignalblog/src/payload/blocks/Error.js @@ -1,6 +1,6 @@ import { slateEditor } from "@payloadcms/richtext-slate"; -import richText from "../fields/richText"; +import richText from "@/civicsignalblog/payload/fields/richText"; const Error = { slug: "error", diff --git a/apps/civicsignalblog/src/payload/blocks/ExternalEmbed.js b/apps/civicsignalblog/src/payload/blocks/ExternalEmbed.js index 2d6fdadc3..527ab1315 100644 --- a/apps/civicsignalblog/src/payload/blocks/ExternalEmbed.js +++ b/apps/civicsignalblog/src/payload/blocks/ExternalEmbed.js @@ -1,4 +1,4 @@ -import blockFields from "../fields/blockFields"; +import blockFields from "@/civicsignalblog/payload/fields/blockFields"; const ExternalEmbed = { slug: "external-embed", diff --git a/apps/civicsignalblog/src/payload/blocks/FeaturedStories.js b/apps/civicsignalblog/src/payload/blocks/FeaturedStories.js index 3c01c52c0..b5db7eb98 100644 --- a/apps/civicsignalblog/src/payload/blocks/FeaturedStories.js +++ b/apps/civicsignalblog/src/payload/blocks/FeaturedStories.js @@ -1,4 +1,4 @@ -import linkGroup from "../fields/links/linkGroup"; +import linkGroup from "@/civicsignalblog/payload/fields/links/linkGroup"; const FeaturedStories = { slug: "featured-stories", diff --git a/apps/civicsignalblog/src/payload/blocks/LongForm.js b/apps/civicsignalblog/src/payload/blocks/LongForm.js index 2385afdc7..146b0e16e 100644 --- a/apps/civicsignalblog/src/payload/blocks/LongForm.js +++ b/apps/civicsignalblog/src/payload/blocks/LongForm.js @@ -1,4 +1,4 @@ -import content from "../fields/content"; +import content from "@/civicsignalblog/payload/fields/content"; const LongForm = { slug: "longform", diff --git a/apps/civicsignalblog/src/payload/blocks/MediaBlock.js b/apps/civicsignalblog/src/payload/blocks/MediaBlock.js index 08b2530a6..d6797637b 100644 --- a/apps/civicsignalblog/src/payload/blocks/MediaBlock.js +++ b/apps/civicsignalblog/src/payload/blocks/MediaBlock.js @@ -1,4 +1,4 @@ -import blockFields from "../fields/blockFields"; +import blockFields from "@/civicsignalblog/payload/fields/blockFields"; const MediaBlock = { slug: "mediaBlock", diff --git a/apps/civicsignalblog/src/payload/blocks/RichText.js b/apps/civicsignalblog/src/payload/blocks/RichText.js index 0ad3bd8a6..0dcd5d7e8 100644 --- a/apps/civicsignalblog/src/payload/blocks/RichText.js +++ b/apps/civicsignalblog/src/payload/blocks/RichText.js @@ -1,7 +1,7 @@ import { slateEditor } from "@payloadcms/richtext-slate"; -import blockFields from "../fields/blockFields"; -import richText from "../fields/richText"; +import blockFields from "@/civicsignalblog/payload/fields/blockFields"; +import richText from "@/civicsignalblog/payload/fields/richText"; const RichText = { slug: "richText", diff --git a/apps/civicsignalblog/src/payload/collections/Main/Pages.js b/apps/civicsignalblog/src/payload/collections/Main/Pages.js index aeae6a6d8..6b9132a92 100644 --- a/apps/civicsignalblog/src/payload/collections/Main/Pages.js +++ b/apps/civicsignalblog/src/payload/collections/Main/Pages.js @@ -1,12 +1,12 @@ -import canRead from "../../access/applications/main"; -import CustomPageHeader from "../../blocks/CustomPageHeader"; -import Error from "../../blocks/Error"; -import FeaturedStories from "../../blocks/FeaturedStories"; -import LongForm from "../../blocks/LongForm"; -import PageHeader from "../../blocks/PageHeader"; -import Posts from "../../blocks/Posts"; -import { MAIN } from "../../lib/data/common/applications"; -import pages from "../../utils/createPagesCollection"; +import canRead from "@/civicsignalblog/payload/access/applications/main"; +import CustomPageHeader from "@/civicsignalblog/payload/blocks/CustomPageHeader"; +import Error from "@/civicsignalblog/payload/blocks/Error"; +import FeaturedStories from "@/civicsignalblog/payload/blocks/FeaturedStories"; +import LongForm from "@/civicsignalblog/payload/blocks/LongForm"; +import PageHeader from "@/civicsignalblog/payload/blocks/PageHeader"; +import Posts from "@/civicsignalblog/payload/blocks/Posts"; +import { MAIN } from "@/civicsignalblog/payload/lib/data/common/applications"; +import pages from "@/civicsignalblog/payload/utils/createPagesCollection"; const Pages = pages({ pageSlug: `${MAIN}-pages`, diff --git a/apps/civicsignalblog/src/payload/collections/Research/Authors.js b/apps/civicsignalblog/src/payload/collections/Research/Authors.js index ae7479291..2c2460959 100644 --- a/apps/civicsignalblog/src/payload/collections/Research/Authors.js +++ b/apps/civicsignalblog/src/payload/collections/Research/Authors.js @@ -1,4 +1,4 @@ -import canRead from "../../access/applications/research"; +import canRead from "@/civicsignalblog/payload/access/applications/research"; const Authors = { slug: "author", diff --git a/apps/civicsignalblog/src/payload/collections/Research/Pages.js b/apps/civicsignalblog/src/payload/collections/Research/Pages.js index 90356848a..b318e6b49 100644 --- a/apps/civicsignalblog/src/payload/collections/Research/Pages.js +++ b/apps/civicsignalblog/src/payload/collections/Research/Pages.js @@ -1,12 +1,12 @@ -import canRead from "../../access/applications/research"; -import CustomPageHeader from "../../blocks/CustomPageHeader"; -import Error from "../../blocks/Error"; -import FeaturedStories from "../../blocks/FeaturedStories"; -import LongForm from "../../blocks/LongForm"; -import PageHeader from "../../blocks/PageHeader"; -import Posts from "../../blocks/Posts"; -import { RESEARCH } from "../../lib/data/common/applications"; -import pages from "../../utils/createPagesCollection"; +import canRead from "@/civicsignalblog/payload/access/applications/research"; +import CustomPageHeader from "@/civicsignalblog/payload/blocks/CustomPageHeader"; +import Error from "@/civicsignalblog/payload/blocks/Error"; +import FeaturedStories from "@/civicsignalblog/payload/blocks/FeaturedStories"; +import LongForm from "@/civicsignalblog/payload/blocks/LongForm"; +import PageHeader from "@/civicsignalblog/payload/blocks/PageHeader"; +import Posts from "@/civicsignalblog/payload/blocks/Posts"; +import { RESEARCH } from "@/civicsignalblog/payload/lib/data/common/applications"; +import pages from "@/civicsignalblog/payload/utils/createPagesCollection"; const Pages = pages({ pageSlug: `${RESEARCH}-pages`, diff --git a/apps/civicsignalblog/src/payload/collections/Research/Posts.js b/apps/civicsignalblog/src/payload/collections/Research/Posts.js index f4d88f9a2..9cb1ac2ad 100644 --- a/apps/civicsignalblog/src/payload/collections/Research/Posts.js +++ b/apps/civicsignalblog/src/payload/collections/Research/Posts.js @@ -1,11 +1,11 @@ -import canRead from "../../access/applications/research"; -import authors from "../../fields/authors"; -import content from "../../fields/content"; -import image from "../../fields/image"; -import publishedOn from "../../fields/publishedOn"; -import slug from "../../fields/slug"; -import tags from "../../fields/tags"; -import formatDraftUrl from "../../utils/formatDraftUrl"; +import canRead from "@/civicsignalblog/payload/access/applications/research"; +import authors from "@/civicsignalblog/payload/fields/authors"; +import content from "@/civicsignalblog/payload/fields/content"; +import image from "@/civicsignalblog/payload/fields/image"; +import publishedOn from "@/civicsignalblog/payload/fields/publishedOn"; +import slug from "@/civicsignalblog/payload/fields/slug"; +import tags from "@/civicsignalblog/payload/fields/tags"; +import formatDraftUrl from "@/civicsignalblog/payload/utils/formatDraftUrl"; const Posts = { slug: "posts", diff --git a/apps/civicsignalblog/src/payload/collections/Research/Tags.js b/apps/civicsignalblog/src/payload/collections/Research/Tags.js index 33b027e6a..875549215 100644 --- a/apps/civicsignalblog/src/payload/collections/Research/Tags.js +++ b/apps/civicsignalblog/src/payload/collections/Research/Tags.js @@ -1,5 +1,5 @@ -import canRead from "../../access/applications/research"; -import slug from "../../fields/slug"; +import canRead from "@/civicsignalblog/payload/access/applications/research"; +import slug from "@/civicsignalblog/payload/fields/slug"; const Tags = { slug: "tag", diff --git a/apps/civicsignalblog/src/payload/collections/Users.js b/apps/civicsignalblog/src/payload/collections/Users.js index 46baa9954..f1e3ed4d6 100644 --- a/apps/civicsignalblog/src/payload/collections/Users.js +++ b/apps/civicsignalblog/src/payload/collections/Users.js @@ -1,12 +1,20 @@ import payload from "payload"; -import { isAdmin, isAdminFieldLevel } from "../access/isAdmin"; +import { + isAdmin, + isAdminFieldLevel, +} from "@/civicsignalblog/payload/access/isAdmin"; import { isAdminOrSelf, isAdminOrSelfFieldLevel, -} from "../access/isAdminOrSelf"; -import { ROLE_DEFAULT, ROLE_OPTIONS } from "../access/roles"; -import applications, { RESEARCH } from "../lib/data/common/applications"; +} from "@/civicsignalblog/payload/access/isAdminOrSelf"; +import { + ROLE_DEFAULT, + ROLE_OPTIONS, +} from "@/civicsignalblog/payload/access/roles"; +import applications, { + RESEARCH, +} from "@/civicsignalblog/payload/lib/data/common/applications"; const Users = { slug: "users", diff --git a/apps/civicsignalblog/src/payload/components/actions/index.tsx b/apps/civicsignalblog/src/payload/components/actions/index.tsx index 6f8a313cd..51d256dde 100644 --- a/apps/civicsignalblog/src/payload/components/actions/index.tsx +++ b/apps/civicsignalblog/src/payload/components/actions/index.tsx @@ -1,7 +1,9 @@ import { useAuth } from "payload/components/utilities"; import React, { useEffect, useState } from "react"; -import applications, { RESEARCH } from "../../lib/data/common/applications"; +import applications, { + RESEARCH, +} from "@/civicsignalblog/payload/lib/data/common/applications"; function BeforeDashboard() { const { user } = useAuth(); @@ -34,6 +36,7 @@ function BeforeDashboard() { } const data = await response.json(); + // eslint-disable-next-line no-undef window.location.replace(`/admin?app=${encodeURI(data.currentApp)}`); } catch (error) { console.error("Error updating current app:", error); @@ -44,7 +47,7 @@ function BeforeDashboard() { }; updateCurrentApp(); - }, [selectedApp]); + }, [selectedApp, user.currentApp]); const handleChange = (event) => { const selectedValue = event.target.value; @@ -64,12 +67,11 @@ function BeforeDashboard() { Loading...

) : ( - <> - + )} ); diff --git a/apps/civicsignalblog/src/payload/fields/content.js b/apps/civicsignalblog/src/payload/fields/content.js index 1951e5f53..0f876a72d 100644 --- a/apps/civicsignalblog/src/payload/fields/content.js +++ b/apps/civicsignalblog/src/payload/fields/content.js @@ -1,8 +1,8 @@ import { deepmerge } from "@mui/utils"; -import ExternalEmbed from "../blocks/ExternalEmbed"; -import MediaBlock from "../blocks/MediaBlock"; -import RichText from "../blocks/RichText"; +import ExternalEmbed from "@/civicsignalblog/payload/blocks/ExternalEmbed"; +import MediaBlock from "@/civicsignalblog/payload/blocks/MediaBlock"; +import RichText from "@/civicsignalblog/payload/blocks/RichText"; const content = (overrides) => deepmerge( diff --git a/apps/civicsignalblog/src/payload/fields/links/link.js b/apps/civicsignalblog/src/payload/fields/links/link.js index 2518eff0e..126578b7d 100644 --- a/apps/civicsignalblog/src/payload/fields/links/link.js +++ b/apps/civicsignalblog/src/payload/fields/links/link.js @@ -1,7 +1,10 @@ import { deepmerge } from "@mui/utils"; -import { RESEARCH, MAIN } from "../../lib/data/common/applications"; -import mapLinkTypeToHref from "../../utils/mapLinkTypeToHref"; +import { + RESEARCH, + MAIN, +} from "@/civicsignalblog/payload/lib/data/common/applications"; +import mapLinkTypeToHref from "@/civicsignalblog/payload/utils/mapLinkTypeToHref"; export async function mapLinkToHrefBeforeValidate({ siblingData, diff --git a/apps/civicsignalblog/src/payload/fields/richText.js b/apps/civicsignalblog/src/payload/fields/richText.js index e84a3fa92..323cc007d 100644 --- a/apps/civicsignalblog/src/payload/fields/richText.js +++ b/apps/civicsignalblog/src/payload/fields/richText.js @@ -1,6 +1,6 @@ import { deepmerge } from "@mui/utils"; -import mapLinkTypeToHref from "../utils/mapLinkTypeToHref"; +import mapLinkTypeToHref from "@/civicsignalblog/payload/utils/mapLinkTypeToHref"; async function insertHref(nodes, payload) { if (!nodes?.length) { diff --git a/apps/civicsignalblog/src/payload/globals/Publication/index.js b/apps/civicsignalblog/src/payload/globals/Publication/index.js index 51ce83255..af9c5ae6d 100644 --- a/apps/civicsignalblog/src/payload/globals/Publication/index.js +++ b/apps/civicsignalblog/src/payload/globals/Publication/index.js @@ -1,7 +1,7 @@ -import canRead from "../../access/applications/research"; - import PostTab from "./PostTab"; +import canRead from "@/civicsignalblog/payload/access/applications/research"; + const Publication = { slug: "settings-publication", label: "Publication", diff --git a/apps/civicsignalblog/src/payload/globals/Site/Components/EngagementTab.js b/apps/civicsignalblog/src/payload/globals/Site/Components/EngagementTab.js index d8f369c31..7ea9af9a7 100644 --- a/apps/civicsignalblog/src/payload/globals/Site/Components/EngagementTab.js +++ b/apps/civicsignalblog/src/payload/globals/Site/Components/EngagementTab.js @@ -1,4 +1,4 @@ -import socialLinks from "../../../fields/socialLinks"; +import socialLinks from "@/civicsignalblog/payload/fields/socialLinks"; const EngagementTab = { label: "Engagement", diff --git a/apps/civicsignalblog/src/payload/globals/Site/Components/GeneralTab.js b/apps/civicsignalblog/src/payload/globals/Site/Components/GeneralTab.js index 729bd12bd..6bf1afc0a 100644 --- a/apps/civicsignalblog/src/payload/globals/Site/Components/GeneralTab.js +++ b/apps/civicsignalblog/src/payload/globals/Site/Components/GeneralTab.js @@ -1,5 +1,5 @@ -import image from "../../../fields/image"; -import richText from "../../../fields/richText"; +import image from "@/civicsignalblog/payload/fields/image"; +import richText from "@/civicsignalblog/payload/fields/richText"; const GeneralTab = { label: "General", diff --git a/apps/civicsignalblog/src/payload/globals/Site/Components/NavigationTab.js b/apps/civicsignalblog/src/payload/globals/Site/Components/NavigationTab.js index 5d6778435..f8e50f20d 100644 --- a/apps/civicsignalblog/src/payload/globals/Site/Components/NavigationTab.js +++ b/apps/civicsignalblog/src/payload/globals/Site/Components/NavigationTab.js @@ -1,6 +1,6 @@ -import link from "../../../fields/links/link"; -import linkArray from "../../../fields/links/linkArray"; -import { socialMediaOptions } from "../../../fields/socialLinks"; +import link from "@/civicsignalblog/payload/fields/links/link"; +import linkArray from "@/civicsignalblog/payload/fields/links/linkArray"; +import { socialMediaOptions } from "@/civicsignalblog/payload/fields/socialLinks"; const linkField = link({ disableOpenInNewTab: true, diff --git a/apps/civicsignalblog/src/payload/globals/Site/main.js b/apps/civicsignalblog/src/payload/globals/Site/main.js index 8f74ccebe..3c22d826d 100644 --- a/apps/civicsignalblog/src/payload/globals/Site/main.js +++ b/apps/civicsignalblog/src/payload/globals/Site/main.js @@ -1,11 +1,11 @@ -import canRead from "../../access/applications/main"; -import { MAIN } from "../../lib/data/common/applications"; -import settings from "../../utils/createGlobalSettings"; - import EngagementTab from "./Components/EngagementTab"; import GeneralTab from "./Components/GeneralTab"; import NavigationTab from "./Components/NavigationTab"; +import canRead from "@/civicsignalblog/payload/access/applications/main"; +import { MAIN } from "@/civicsignalblog/payload/lib/data/common/applications"; +import settings from "@/civicsignalblog/payload/utils/createGlobalSettings"; + const Main = settings({ slug: `settings-${MAIN}-site`, label: "Site", diff --git a/apps/civicsignalblog/src/payload/globals/Site/research.js b/apps/civicsignalblog/src/payload/globals/Site/research.js index f0fbd5256..241cfbbc8 100644 --- a/apps/civicsignalblog/src/payload/globals/Site/research.js +++ b/apps/civicsignalblog/src/payload/globals/Site/research.js @@ -1,11 +1,11 @@ -import canRead from "../../access/applications/research"; -import { RESEARCH } from "../../lib/data/common/applications"; -import settings from "../../utils/createGlobalSettings"; - import EngagementTab from "./Components/EngagementTab"; import GeneralTab from "./Components/GeneralTab"; import NavigationTab from "./Components/NavigationTab"; +import canRead from "@/civicsignalblog/payload/access/applications/research"; +import { RESEARCH } from "@/civicsignalblog/payload/lib/data/common/applications"; +import settings from "@/civicsignalblog/payload/utils/createGlobalSettings"; + const Research = settings({ slug: `settings-${RESEARCH}-site`, label: " Site", diff --git a/apps/civicsignalblog/src/payload/utils/createPagesCollection.js b/apps/civicsignalblog/src/payload/utils/createPagesCollection.js index f5b409b5d..22c774872 100644 --- a/apps/civicsignalblog/src/payload/utils/createPagesCollection.js +++ b/apps/civicsignalblog/src/payload/utils/createPagesCollection.js @@ -1,8 +1,8 @@ -import fullTitle from "../fields/fullTitle"; -import slug from "../fields/slug"; - import formatDraftUrl from "./formatDraftUrl"; +import fullTitle from "@/civicsignalblog/payload/fields/fullTitle"; +import slug from "@/civicsignalblog/payload/fields/slug"; + const Pages = ({ pageSlug, group, diff --git a/apps/civicsignalblog/tsconfig.server.json b/apps/civicsignalblog/tsconfig.server.json index e013c7a98..f0f62a430 100644 --- a/apps/civicsignalblog/tsconfig.server.json +++ b/apps/civicsignalblog/tsconfig.server.json @@ -4,6 +4,7 @@ "target": "ES2015", "noEmit": false, "module": "CommonJS", + "moduleResolution": "Node", "jsx": "react", "outDir": "./dist", "rootDir": "./" diff --git a/apps/civicsignalblog/tsconfigPathToWebpackAlias.ts b/apps/civicsignalblog/tsconfigPathToWebpackAlias.ts new file mode 100644 index 000000000..f37497782 --- /dev/null +++ b/apps/civicsignalblog/tsconfigPathToWebpackAlias.ts @@ -0,0 +1,34 @@ +import fs from "fs"; +import { resolve } from "path"; + +/** + * Resolve tsconfig.json paths to Webpack aliases + * @param {string} tsConfigPath - Path to tsconfig + * @param {string} webpackConfigBasePath - Path from tsconfig to Webpack config to create absolute aliases + * @return {object} - Webpack alias config + */ +export default function resolveTsconfigPathsToAlias({ + tsConfigPath = "tsconfig.json", + webpackConfigBasePath = __dirname, +} = {}) { + const rawTsConfig = fs + .readFileSync(tsConfigPath, "utf-8") + .replace(/,\s*]/g, "]") + .replace(/,\s*}/g, "}"); + + const tsConfig = JSON.parse(rawTsConfig); + + const { paths } = tsConfig.compilerOptions; + + const aliases = {}; + + Object.keys(paths).forEach((item) => { + const key = item.replace("/*", ""); + aliases[key] = resolve( + webpackConfigBasePath, + paths[item][0].replace(/\/\*/g, "").replace(/\*/g, ""), + ); + }); + + return aliases; +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f1c121ba2..d5a7fc2ab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1022,6 +1022,12 @@ importers: ts-node: specifier: 'catalog:' version: 10.9.2(@swc/core@1.7.23(@swc/helpers@0.5.5))(@types/node@20.14.14)(typescript@5.5.4) + tsc-alias: + specifier: 'catalog:' + version: 1.8.10 + tsconfig-paths: + specifier: 'catalog:' + version: 4.2.0 typescript: specifier: 'catalog:' version: 5.5.4 @@ -14670,7 +14676,7 @@ snapshots: '@aws-sdk/client-sso-oidc': 3.645.0(@aws-sdk/client-sts@3.621.0) '@aws-sdk/client-sts': 3.645.0 '@aws-sdk/core': 3.635.0 - '@aws-sdk/credential-provider-node': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.621.0) + '@aws-sdk/credential-provider-node': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0) '@aws-sdk/middleware-bucket-endpoint': 3.620.0 '@aws-sdk/middleware-expect-continue': 3.620.0 '@aws-sdk/middleware-flexible-checksums': 3.620.0 @@ -14821,7 +14827,7 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-sdk/client-sts': 3.645.0 '@aws-sdk/core': 3.635.0 - '@aws-sdk/credential-provider-node': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.621.0) + '@aws-sdk/credential-provider-node': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0) '@aws-sdk/middleware-host-header': 3.620.0 '@aws-sdk/middleware-logger': 3.609.0 '@aws-sdk/middleware-recursion-detection': 3.620.0 @@ -14997,7 +15003,7 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-sdk/client-sso-oidc': 3.645.0(@aws-sdk/client-sts@3.645.0) '@aws-sdk/core': 3.635.0 - '@aws-sdk/credential-provider-node': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.621.0) + '@aws-sdk/credential-provider-node': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0) '@aws-sdk/middleware-host-header': 3.620.0 '@aws-sdk/middleware-logger': 3.609.0 '@aws-sdk/middleware-recursion-detection': 3.620.0 @@ -15158,6 +15164,24 @@ snapshots: - '@aws-sdk/client-sso-oidc' - aws-crt + '@aws-sdk/credential-provider-ini@3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0)': + dependencies: + '@aws-sdk/client-sts': 3.645.0 + '@aws-sdk/credential-provider-env': 3.620.1 + '@aws-sdk/credential-provider-http': 3.635.0 + '@aws-sdk/credential-provider-process': 3.620.1 + '@aws-sdk/credential-provider-sso': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0)) + '@aws-sdk/credential-provider-web-identity': 3.621.0(@aws-sdk/client-sts@3.645.0) + '@aws-sdk/types': 3.609.0 + '@smithy/credential-provider-imds': 3.2.0 + '@smithy/property-provider': 3.1.3 + '@smithy/shared-ini-file-loader': 3.1.4 + '@smithy/types': 3.3.0 + tslib: 2.6.3 + transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' + - aws-crt + '@aws-sdk/credential-provider-node@3.621.0(@aws-sdk/client-sso-oidc@3.621.0(@aws-sdk/client-sts@3.621.0))(@aws-sdk/client-sts@3.621.0)': dependencies: '@aws-sdk/credential-provider-env': 3.620.1 @@ -15216,6 +15240,25 @@ snapshots: - '@aws-sdk/client-sts' - aws-crt + '@aws-sdk/credential-provider-node@3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0)': + dependencies: + '@aws-sdk/credential-provider-env': 3.620.1 + '@aws-sdk/credential-provider-http': 3.635.0 + '@aws-sdk/credential-provider-ini': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0) + '@aws-sdk/credential-provider-process': 3.620.1 + '@aws-sdk/credential-provider-sso': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0)) + '@aws-sdk/credential-provider-web-identity': 3.621.0(@aws-sdk/client-sts@3.645.0) + '@aws-sdk/types': 3.609.0 + '@smithy/credential-provider-imds': 3.2.0 + '@smithy/property-provider': 3.1.3 + '@smithy/shared-ini-file-loader': 3.1.4 + '@smithy/types': 3.3.0 + tslib: 2.6.3 + transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' + - '@aws-sdk/client-sts' + - aws-crt + '@aws-sdk/credential-provider-process@3.620.1': dependencies: '@aws-sdk/types': 3.609.0 @@ -15272,6 +15315,14 @@ snapshots: '@smithy/types': 3.3.0 tslib: 2.6.3 + '@aws-sdk/credential-provider-web-identity@3.621.0(@aws-sdk/client-sts@3.645.0)': + dependencies: + '@aws-sdk/client-sts': 3.645.0 + '@aws-sdk/types': 3.609.0 + '@smithy/property-provider': 3.1.3 + '@smithy/types': 3.3.0 + tslib: 2.6.3 + '@aws-sdk/credential-providers@3.621.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))': dependencies: '@aws-sdk/client-cognito-identity': 3.621.0