2 Commits

Author SHA1 Message Date
danijel-lf
3eaf50151f chore(core-cms): regenerate Payload types with consentState field
Some checks failed
CI / typecheck + lint + boundaries + test + build (push) Has been cancelled
CI / Playwright e2e (push) Has been cancelled
CI / Storybook smoke tests + visual regression (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
Coverage snapshot / snapshot (push) Has been cancelled
Release Please / release-please (push) Has been cancelled
Sentry PII guard (R31) / pii-guard (push) Has been cancelled
2026-05-26 11:46:39 +02:00
danijel-lf
8111639660 fix(di): drop .js extensions from bind-dev-seed imports
Webpack (Next.js transpilePackages) resolves from .ts source directly
and cannot find .js files. The bind-production binders already used
extensionless imports; align bind-dev-seed to match. Also fixes the
turbo gen feature template so new features are consistent.
2026-05-26 11:45:37 +02:00
8 changed files with 159 additions and 145 deletions

View File

@@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/triple-slash-reference */
/// <reference types="next" />
/// <reference types="next/image-types/global" />
/// <reference path="./.next/types/routes.d.ts" />

View File

@@ -11,19 +11,19 @@ import {
wireUseCase,
} from "@repo/core-shared/conformance";
import { NoopRateLimit } from "@repo/core-shared/rate-limit";
import { authManifest } from "../feature.manifest.js";
import { authContainer } from "./container.js";
import { AUTH_SYMBOLS } from "./symbols.js";
import { MockUsersRepository } from "../infrastructure/repositories/users.repository.mock.js";
import { buildDevUsers } from "../__seeds__/dev.js";
import { signInUseCase } from "../application/use-cases/sign-in.use-case.js";
import { signUpUseCase } from "../application/use-cases/sign-up.use-case.js";
import { signOutUseCase } from "../application/use-cases/sign-out.use-case.js";
import { signInController } from "../interface-adapters/controllers/sign-in.controller.js";
import { signUpController } from "../interface-adapters/controllers/sign-up.controller.js";
import { signOutController } from "../interface-adapters/controllers/sign-out.controller.js";
import type { IUsersRepository } from "../application/repositories/users.repository.interface.js";
import type { IAuthenticationService } from "../application/services/authentication.service.interface.js";
import { authManifest } from "../feature.manifest";
import { authContainer } from "./container";
import { AUTH_SYMBOLS } from "./symbols";
import { MockUsersRepository } from "../infrastructure/repositories/users.repository.mock";
import { buildDevUsers } from "../__seeds__/dev";
import { signInUseCase } from "../application/use-cases/sign-in.use-case";
import { signUpUseCase } from "../application/use-cases/sign-up.use-case";
import { signOutUseCase } from "../application/use-cases/sign-out.use-case";
import { signInController } from "../interface-adapters/controllers/sign-in.controller";
import { signUpController } from "../interface-adapters/controllers/sign-up.controller";
import { signOutController } from "../interface-adapters/controllers/sign-out.controller";
import type { IUsersRepository } from "../application/repositories/users.repository.interface";
import type { IAuthenticationService } from "../application/services/authentication.service.interface";
/**
* Replace the default mock with a populated one for dev mode + storybook.

View File

@@ -10,18 +10,18 @@ import {
assertFeatureConformance,
wireUseCase,
} from "@repo/core-shared/conformance";
import { blogManifest } from "../feature.manifest.js";
import { blogContainer } from "./container.js";
import { BLOG_SYMBOLS } from "./symbols.js";
import { MockArticlesRepository } from "../infrastructure/repositories/articles.repository.mock.js";
import { buildDevArticles } from "../__seeds__/dev.js";
import { getArticlesUseCase } from "../application/use-cases/get-articles.use-case.js";
import { getArticleBySlugUseCase } from "../application/use-cases/get-article-by-slug.use-case.js";
import { createArticleUseCase } from "../application/use-cases/create-article.use-case.js";
import { getArticlesController } from "../interface-adapters/controllers/get-articles.controller.js";
import { getArticleBySlugController } from "../interface-adapters/controllers/get-article-by-slug.controller.js";
import { createArticleController } from "../interface-adapters/controllers/create-article.controller.js";
import type { IArticlesRepository } from "../application/repositories/articles.repository.interface.js";
import { blogManifest } from "../feature.manifest";
import { blogContainer } from "./container";
import { BLOG_SYMBOLS } from "./symbols";
import { MockArticlesRepository } from "../infrastructure/repositories/articles.repository.mock";
import { buildDevArticles } from "../__seeds__/dev";
import { getArticlesUseCase } from "../application/use-cases/get-articles.use-case";
import { getArticleBySlugUseCase } from "../application/use-cases/get-article-by-slug.use-case";
import { createArticleUseCase } from "../application/use-cases/create-article.use-case";
import { getArticlesController } from "../interface-adapters/controllers/get-articles.controller";
import { getArticleBySlugController } from "../interface-adapters/controllers/get-article-by-slug.controller";
import { createArticleController } from "../interface-adapters/controllers/create-article.controller";
import type { IArticlesRepository } from "../application/repositories/articles.repository.interface";
/**
* Replace the default empty mock with a populated one for dev mode + storybook.

View File

@@ -13,53 +13,53 @@
* via the `definition` "supportedTimezones".
*/
export type SupportedTimezones =
| 'Pacific/Midway'
| 'Pacific/Niue'
| 'Pacific/Honolulu'
| 'Pacific/Rarotonga'
| 'America/Anchorage'
| 'Pacific/Gambier'
| 'America/Los_Angeles'
| 'America/Tijuana'
| 'America/Denver'
| 'America/Phoenix'
| 'America/Chicago'
| 'America/Guatemala'
| 'America/New_York'
| 'America/Bogota'
| 'America/Caracas'
| 'America/Santiago'
| 'America/Buenos_Aires'
| 'America/Sao_Paulo'
| 'Atlantic/South_Georgia'
| 'Atlantic/Azores'
| 'Atlantic/Cape_Verde'
| 'Europe/London'
| 'Europe/Berlin'
| 'Africa/Lagos'
| 'Europe/Athens'
| 'Africa/Cairo'
| 'Europe/Moscow'
| 'Asia/Riyadh'
| 'Asia/Dubai'
| 'Asia/Baku'
| 'Asia/Karachi'
| 'Asia/Tashkent'
| 'Asia/Calcutta'
| 'Asia/Dhaka'
| 'Asia/Almaty'
| 'Asia/Jakarta'
| 'Asia/Bangkok'
| 'Asia/Shanghai'
| 'Asia/Singapore'
| 'Asia/Tokyo'
| 'Asia/Seoul'
| 'Australia/Brisbane'
| 'Australia/Sydney'
| 'Pacific/Guam'
| 'Pacific/Noumea'
| 'Pacific/Auckland'
| 'Pacific/Fiji';
| "Pacific/Midway"
| "Pacific/Niue"
| "Pacific/Honolulu"
| "Pacific/Rarotonga"
| "America/Anchorage"
| "Pacific/Gambier"
| "America/Los_Angeles"
| "America/Tijuana"
| "America/Denver"
| "America/Phoenix"
| "America/Chicago"
| "America/Guatemala"
| "America/New_York"
| "America/Bogota"
| "America/Caracas"
| "America/Santiago"
| "America/Buenos_Aires"
| "America/Sao_Paulo"
| "Atlantic/South_Georgia"
| "Atlantic/Azores"
| "Atlantic/Cape_Verde"
| "Europe/London"
| "Europe/Berlin"
| "Africa/Lagos"
| "Europe/Athens"
| "Africa/Cairo"
| "Europe/Moscow"
| "Asia/Riyadh"
| "Asia/Dubai"
| "Asia/Baku"
| "Asia/Karachi"
| "Asia/Tashkent"
| "Asia/Calcutta"
| "Asia/Dhaka"
| "Asia/Almaty"
| "Asia/Jakarta"
| "Asia/Bangkok"
| "Asia/Shanghai"
| "Asia/Singapore"
| "Asia/Tokyo"
| "Asia/Seoul"
| "Australia/Brisbane"
| "Australia/Sydney"
| "Pacific/Guam"
| "Pacific/Noumea"
| "Pacific/Auckland"
| "Pacific/Fiji";
export interface Config {
auth: {
@@ -71,10 +71,10 @@ export interface Config {
articles: Article;
pages: Page;
media: Media;
'payload-kv': PayloadKv;
'payload-locked-documents': PayloadLockedDocument;
'payload-preferences': PayloadPreference;
'payload-migrations': PayloadMigration;
"payload-kv": PayloadKv;
"payload-locked-documents": PayloadLockedDocument;
"payload-preferences": PayloadPreference;
"payload-migrations": PayloadMigration;
};
collectionsJoins: {};
collectionsSelect: {
@@ -82,21 +82,27 @@ export interface Config {
articles: ArticlesSelect<false> | ArticlesSelect<true>;
pages: PagesSelect<false> | PagesSelect<true>;
media: MediaSelect<false> | MediaSelect<true>;
'payload-kv': PayloadKvSelect<false> | PayloadKvSelect<true>;
'payload-locked-documents': PayloadLockedDocumentsSelect<false> | PayloadLockedDocumentsSelect<true>;
'payload-preferences': PayloadPreferencesSelect<false> | PayloadPreferencesSelect<true>;
'payload-migrations': PayloadMigrationsSelect<false> | PayloadMigrationsSelect<true>;
"payload-kv": PayloadKvSelect<false> | PayloadKvSelect<true>;
"payload-locked-documents":
| PayloadLockedDocumentsSelect<false>
| PayloadLockedDocumentsSelect<true>;
"payload-preferences":
| PayloadPreferencesSelect<false>
| PayloadPreferencesSelect<true>;
"payload-migrations":
| PayloadMigrationsSelect<false>
| PayloadMigrationsSelect<true>;
};
db: {
defaultIDType: number;
};
fallbackLocale: null;
globals: {
'site-settings': SiteSetting;
"site-settings": SiteSetting;
header: Header;
};
globalsSelect: {
'site-settings': SiteSettingsSelect<false> | SiteSettingsSelect<true>;
"site-settings": SiteSettingsSelect<false> | SiteSettingsSelect<true>;
header: HeaderSelect<false> | HeaderSelect<true>;
};
locale: null;
@@ -134,7 +140,16 @@ export interface UserAuthOperations {
export interface User {
id: number;
displayName?: string | null;
role: 'admin' | 'editor' | 'author';
role: "admin" | "editor" | "author";
consentState?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
updatedAt: string;
createdAt: string;
email: string;
@@ -152,7 +167,7 @@ export interface User {
}[]
| null;
password?: string | null;
collection: 'users';
collection: "users";
}
/**
* This interface was referenced by `Config`'s JSON-Schema
@@ -173,20 +188,20 @@ export interface Article {
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
direction: ("ltr" | "rtl") | null;
format: "left" | "start" | "center" | "right" | "end" | "justify" | "";
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
status: 'draft' | 'published';
status: "draft" | "published";
author: number | User;
featuredImage?: (number | null) | Media;
publishedAt?: string | null;
updatedAt: string;
createdAt: string;
_status?: ('draft' | 'published') | null;
_status?: ("draft" | "published") | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
@@ -230,10 +245,10 @@ export interface Page {
href: string;
id?: string | null;
blockName?: string | null;
blockType: 'cta';
blockType: "cta";
}[]
| null;
status: 'draft' | 'published';
status: "draft" | "published";
publishedAt?: string | null;
seo: {
title: string;
@@ -241,7 +256,7 @@ export interface Page {
};
updatedAt: string;
createdAt: string;
_status?: ('draft' | 'published') | null;
_status?: ("draft" | "published") | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
@@ -268,24 +283,24 @@ export interface PayloadLockedDocument {
id: number;
document?:
| ({
relationTo: 'users';
relationTo: "users";
value: number | User;
} | null)
| ({
relationTo: 'articles';
relationTo: "articles";
value: number | Article;
} | null)
| ({
relationTo: 'pages';
relationTo: "pages";
value: number | Page;
} | null)
| ({
relationTo: 'media';
relationTo: "media";
value: number | Media;
} | null);
globalSlug?: string | null;
user: {
relationTo: 'users';
relationTo: "users";
value: number | User;
};
updatedAt: string;
@@ -298,7 +313,7 @@ export interface PayloadLockedDocument {
export interface PayloadPreference {
id: number;
user: {
relationTo: 'users';
relationTo: "users";
value: number | User;
};
key?: string | null;
@@ -332,6 +347,7 @@ export interface PayloadMigration {
export interface UsersSelect<T extends boolean = true> {
displayName?: T;
role?: T;
consentState?: T;
updatedAt?: T;
createdAt?: T;
email?: T;
@@ -528,7 +544,7 @@ export interface CollectionsWidget {
data?: {
[k: string]: unknown;
};
width: 'full';
width: "full";
}
/**
* This interface was referenced by `Config`'s JSON-Schema
@@ -538,7 +554,6 @@ export interface Auth {
[k: string]: unknown;
}
declare module 'payload' {
declare module "payload" {
export interface GeneratedTypes extends Config {}
}

View File

@@ -10,26 +10,26 @@ import {
assertFeatureConformance,
wireUseCase,
} from "@repo/core-shared/conformance";
import { marketingPagesManifest } from "../feature.manifest.js";
import { marketingPagesContainer } from "./container.js";
import { MARKETING_PAGES_SYMBOLS } from "./symbols.js";
import { MockPagesRepository } from "../infrastructure/repositories/pages.repository.mock.js";
import { buildDevPages, buildDevSiteSettings } from "../__seeds__/dev.js";
import { getSiteSettingsUseCase } from "../application/use-cases/get-site-settings.use-case.js";
import { getPageBySlugUseCase } from "../application/use-cases/get-page-by-slug.use-case.js";
import { getSiteSettingsController } from "../interface-adapters/controllers/get-site-settings.controller.js";
import { getPageBySlugController } from "../interface-adapters/controllers/get-page-by-slug.controller.js";
import type { IPagesRepository } from "../application/repositories/pages.repository.interface.js";
import type { ISiteSettingsRepository } from "../application/repositories/site-settings.repository.interface.js";
import { marketingPagesManifest } from "../feature.manifest";
import { marketingPagesContainer } from "./container";
import { MARKETING_PAGES_SYMBOLS } from "./symbols";
import { MockPagesRepository } from "../infrastructure/repositories/pages.repository.mock";
import { buildDevPages, buildDevSiteSettings } from "../__seeds__/dev";
import { getSiteSettingsUseCase } from "../application/use-cases/get-site-settings.use-case";
import { getPageBySlugUseCase } from "../application/use-cases/get-page-by-slug.use-case";
import { getSiteSettingsController } from "../interface-adapters/controllers/get-site-settings.controller";
import { getPageBySlugController } from "../interface-adapters/controllers/get-page-by-slug.controller";
import type { IPagesRepository } from "../application/repositories/pages.repository.interface";
import type { ISiteSettingsRepository } from "../application/repositories/site-settings.repository.interface";
import { userSignedUpEvent } from "@repo/auth";
import { onAuthUserSignedUpHandler } from "../events/handlers/on-auth-user-signed-up.handler.js";
import { onAuthUserSignedUpHandler } from "../events/handlers/on-auth-user-signed-up.handler";
import {
sendWelcomeEmailJob,
type ISendWelcomeEmailJob,
type SendWelcomeEmailInput,
} from "../jobs/send-welcome-email.job.js";
import { RecordingMailerService } from "../infrastructure/services/recording-mailer.service.js";
import type { IMailerService } from "../application/services/mailer.service.interface.js";
} from "../jobs/send-welcome-email.job";
import { RecordingMailerService } from "../infrastructure/services/recording-mailer.service";
import type { IMailerService } from "../application/services/mailer.service.interface";
/**
* Replace the default empty mocks with populated ones for dev mode + storybook.

View File

@@ -10,18 +10,18 @@ import {
assertFeatureConformance,
wireUseCase,
} from "@repo/core-shared/conformance";
import { mediaManifest } from "../feature.manifest.js";
import { mediaContainer } from "./container.js";
import { MEDIA_SYMBOLS } from "./symbols.js";
import { MockMediaRepository } from "../infrastructure/repositories/media.repository.mock.js";
import { buildDevMedia } from "../__seeds__/dev.js";
import { getMediaUseCase } from "../application/use-cases/get-media.use-case.js";
import { listMediaUseCase } from "../application/use-cases/list-media.use-case.js";
import { deleteMediaUseCase } from "../application/use-cases/delete-media.use-case.js";
import { getMediaController } from "../interface-adapters/controllers/get-media.controller.js";
import { listMediaController } from "../interface-adapters/controllers/list-media.controller.js";
import { deleteMediaController } from "../interface-adapters/controllers/delete-media.controller.js";
import type { IMediaRepository } from "../application/repositories/media.repository.interface.js";
import { mediaManifest } from "../feature.manifest";
import { mediaContainer } from "./container";
import { MEDIA_SYMBOLS } from "./symbols";
import { MockMediaRepository } from "../infrastructure/repositories/media.repository.mock";
import { buildDevMedia } from "../__seeds__/dev";
import { getMediaUseCase } from "../application/use-cases/get-media.use-case";
import { listMediaUseCase } from "../application/use-cases/list-media.use-case";
import { deleteMediaUseCase } from "../application/use-cases/delete-media.use-case";
import { getMediaController } from "../interface-adapters/controllers/get-media.controller";
import { listMediaController } from "../interface-adapters/controllers/list-media.controller";
import { deleteMediaController } from "../interface-adapters/controllers/delete-media.controller";
import type { IMediaRepository } from "../application/repositories/media.repository.interface";
/**
* Replace the default empty mock with a populated one for dev mode + storybook.

View File

@@ -10,14 +10,14 @@ import {
assertFeatureConformance,
wireUseCase,
} from "@repo/core-shared/conformance";
import { navigationManifest } from "../feature.manifest.js";
import { navigationContainer } from "./container.js";
import { NAVIGATION_SYMBOLS } from "./symbols.js";
import { MockHeaderRepository } from "../infrastructure/repositories/header.repository.mock.js";
import { buildDevHeader } from "../__seeds__/dev.js";
import { getHeaderUseCase } from "../application/use-cases/get-header.use-case.js";
import { getHeaderController } from "../interface-adapters/controllers/get-header.controller.js";
import type { IHeaderRepository } from "../application/repositories/header.repository.interface.js";
import { navigationManifest } from "../feature.manifest";
import { navigationContainer } from "./container";
import { NAVIGATION_SYMBOLS } from "./symbols";
import { MockHeaderRepository } from "../infrastructure/repositories/header.repository.mock";
import { buildDevHeader } from "../__seeds__/dev";
import { getHeaderUseCase } from "../application/use-cases/get-header.use-case";
import { getHeaderController } from "../interface-adapters/controllers/get-header.controller";
import type { IHeaderRepository } from "../application/repositories/header.repository.interface";
/**
* Replace the default mock with a populated one for dev mode + storybook.

View File

@@ -10,14 +10,14 @@ import {
assertFeatureConformance,
wireUseCase,
} from "@repo/core-shared/conformance";
import { {{camelCase name}}Manifest } from "../feature.manifest.js";
import { {{camelCase name}}Container } from "./container.js";
import { {{constantCase name}}_SYMBOLS } from "./symbols.js";
import { Mock{{pascalCase entity}}Repository } from "../infrastructure/repositories/{{kebabCase entity}}.repository.mock.js";
import { buildDev{{pascalCase entity}}Map } from "../__seeds__/dev.js";
import { get{{pascalCase entity}}UseCase } from "../application/use-cases/get-{{kebabCase entity}}.use-case.js";
import { get{{pascalCase entity}}Controller } from "../interface-adapters/controllers/get-{{kebabCase entity}}.controller.js";
import type { I{{pascalCase entity}}Repository } from "../application/repositories/{{kebabCase entity}}.repository.interface.js";
import { {{camelCase name}}Manifest } from "../feature.manifest";
import { {{camelCase name}}Container } from "./container";
import { {{constantCase name}}_SYMBOLS } from "./symbols";
import { Mock{{pascalCase entity}}Repository } from "../infrastructure/repositories/{{kebabCase entity}}.repository.mock";
import { buildDev{{pascalCase entity}}Map } from "../__seeds__/dev";
import { get{{pascalCase entity}}UseCase } from "../application/use-cases/get-{{kebabCase entity}}.use-case";
import { get{{pascalCase entity}}Controller } from "../interface-adapters/controllers/get-{{kebabCase entity}}.controller";
import type { I{{pascalCase entity}}Repository } from "../application/repositories/{{kebabCase entity}}.repository.interface";
/**
* Replace the default mock with a populated one for dev mode + storybook.