Add createServiceApi (getServices, getServiceBySlug, getServiceCategories)
and createFaqApi (getFaqs, getFaqsByCategory) modules following existing
factory pattern. Wire into createPayloadClient as client.services and
client.faqs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
getSeoSettings() was returning Record<string, unknown> which prevented
TypeScript from seeing metaDefaults properties. Now properly returns
SeoSetting type with full type safety.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The navigations collection has no top-level 'type' field — each tenant
has one document with mainMenu and footerMenu arrays. The previous
where[type][equals] query caused HTTP 400 on every call.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- forms + form-submissions now have tenant field
- ContactFormBlock: form relationship replaces recipientEmail
- New fields: successMessage, showContactInfo
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
tsx's esbuild postinstall fails in Plesk's nodenv sub-shell context
because npm git dep preparation spawns `sh -c node install.js` which
doesn't inherit the PATH set in deploy actions.
Fix: Remove tsx entirely (only needed on sv-payload for `pnpm extract`,
where it's available via npx). Also updates extracted types.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- create-work-order.sh: auto-fills CMS commit, date, contracts version
- execute-work-order.sh: updates contracts on sv-frontend, provides
implementation instructions for Claude Code
- Updated CLAUDE.md with complete work order lifecycle documentation
- Added pnpm shortcuts: wo:create, wo:execute
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move typescript and @types/react back to devDependencies (safe, pure JS).
Keep tsx in optionalDependencies since its esbuild dep fails on Plesk's
nodenv environment during npm git dependency installation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
npm installs devDeps (--include=dev) when preparing git dependencies.
esbuild (via tsx) has native install script that fails on Plesk nodenv.
Since this package exports TypeScript source files directly, no build
tools are needed at install time.
devDependencies (typescript, tsx, @types/react) are only needed for
local development on sv-payload and can be installed manually.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
npm runs install+prepare when cloning git deps. Plesk servers with
nodenv can't resolve 'node' during this phase, causing esbuild's
install.js to fail. Adding no-op scripts prevents this.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Git dependencies don't run prepublishOnly, so dist/ never exists.
Point all exports directly to src/*.ts files since Next.js/Turbopack
handles TypeScript natively.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Shared TypeScript types, API client, and block registry for
coordinated CMS-to-frontend development across all tenants.
- Type extraction script from payload-types.ts (12,782 lines)
- 39 frontend collection types, 42 block types
- createPayloadClient() with tenant isolation
- createBlockRenderer() for type-safe block mapping
- Media helpers (getImageUrl, getSrcSet)
- Work order system for cross-server coordination
- Block catalog documentation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>