Skip to content

[Blueprints] Require WXR author maps in Blueprint v2 types - #3869

Merged
adamziel merged 1 commit into
trunkfrom
type/blueprint-v2-wxr-authors-map-required
Jul 2, 2026
Merged

[Blueprints] Require WXR author maps in Blueprint v2 types#3869
adamziel merged 1 commit into
trunkfrom
type/blueprint-v2-wxr-authors-map-required

Conversation

@adamziel

@adamziel adamziel commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator

What?

Updates the Blueprint v2 declaration type so WXR content with authorsMode: "map" must also provide authorsMap.

Why?

The schema docs already say authorsMap is required when WXR author mode is map. Encoding that in the TypeScript declaration catches incomplete Blueprints before they reach a runner.

Scope

This is type-only. It does not change WXR import execution, URL rewriting, or author matching behavior.

Testing

  • npm run format:uncommitted
  • git diff --check
  • npm exec nx run playground-blueprints:typecheck
  • npm exec nx run playground-blueprints:lint
  • npm exec nx run playground-blueprints:test:vite -- --testFiles=packages/playground/blueprints/src/tests/v2/blueprint-v2-declaration.spec.ts

Part of #2592.

@adamziel
adamziel marked this pull request as ready for review July 2, 2026 19:18
@adamziel
adamziel requested review from a team, ashfame and Copilot July 2, 2026 19:18

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Updates the Blueprint v2 TypeScript schema to enforce that WXR content using authorsMode: "map" must also provide an authorsMap, and adds a type-level test to prevent regressions.

Changes:

  • Refactors the WXR content definition into a discriminated union that requires authorsMap when authorsMode: 'map'.
  • Adds a TypeScript test case asserting that missing authorsMap is a compile-time error.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
packages/playground/blueprints/src/lib/v2/wep-1-blueprint-v2-schema/appendix-A-blueprint-v2-schema.ts Encodes authorsMode: 'map'authorsMap required via a unioned WXR content type.
packages/playground/blueprints/src/tests/v2/blueprint-v2-declaration.spec.ts Adds a @ts-expect-error guard test for missing authorsMap under authorsMode: 'map'.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +530 to +534
* The default author to use when `mode` is "default-author".
*
* @default "admin".
*/
defaultAuthorUsername?: string;
Comment on lines +498 to +510
/**
* How to handle authors that don't exist on the current site.
*
* Possible values:
*
* * "create" – Create a new author.
* * "default-author" – Use the default author.
*
* @default "create".
*/
authorsMode?: 'create' | 'default-author';
authorsMap?: Record<RemoteUsername, LocalUsername>;
}
@adamziel
adamziel merged commit 4f07edc into trunk Jul 2, 2026
104 of 105 checks passed
@adamziel
adamziel deleted the type/blueprint-v2-wxr-authors-map-required branch July 2, 2026 19:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment