Skip to content

refactor: Split Stripe into separate payments plugin#829

Merged
kingston merged 5 commits into
mainfrom
kingston/eng-1035-split-stripe-into-plugin-payments
Mar 14, 2026
Merged

refactor: Split Stripe into separate payments plugin#829
kingston merged 5 commits into
mainfrom
kingston/eng-1035-split-stripe-into-plugin-payments

Conversation

@kingston

@kingston kingston commented Mar 14, 2026

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Stripe payment processing is now a standalone, configurable plugin.
    • Improved accessibility for checkbox and switch controls for better screen reader support.
  • Bug Fixes

    • Addressed accessibility issues in interactive form components.
  • Chores

    • Automatic migration to convert existing Stripe settings to the new plugin format.
    • Backend Stripe toggle removed from the config UI (managed via plugin going forward).

@changeset-bot

changeset-bot Bot commented Mar 14, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 9b65789

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 23 packages
Name Type
@baseplate-dev/plugin-payments Patch
@baseplate-dev/fastify-generators Patch
@baseplate-dev/project-builder-lib Patch
@baseplate-dev/project-builder-server Patch
@baseplate-dev/project-builder-web Patch
@baseplate-dev/project-builder-common Patch
@baseplate-dev/plugin-auth Patch
@baseplate-dev/plugin-email Patch
@baseplate-dev/plugin-observability Patch
@baseplate-dev/plugin-queue Patch
@baseplate-dev/plugin-rate-limit Patch
@baseplate-dev/plugin-storage Patch
@baseplate-dev/create-project Patch
@baseplate-dev/project-builder-cli Patch
@baseplate-dev/project-builder-dev Patch
@baseplate-dev/project-builder-test Patch
@baseplate-dev/code-morph Patch
@baseplate-dev/core-generators Patch
@baseplate-dev/react-generators Patch
@baseplate-dev/sync Patch
@baseplate-dev/tools Patch
@baseplate-dev/ui-components Patch
@baseplate-dev/utils Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitai Bot commented Mar 14, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

Extracts Stripe from fastify-generators into a new @baseplate-dev/plugin-payments package, removes the backend enableStripe flag, adds a schema migration (v27→v28) to convert configs to a plugin entry, updates generator wiring and example project definitions, and applies accessibility and UI handler updates.

Changes

Cohort / File(s) Summary
New payments plugin
plugins/plugin-payments/*, plugins/plugin-payments/src/stripe/*
Adds a new @baseplate-dev/plugin-payments package: package config, build/vite/test configs, LICENSE/README/CHANGELOG, plugin modules (common/node/web), Stripe schema, generators, StripeDefinitionEditor component, styles, and type re-exports.
Schema migration & schema
packages/project-builder-lib/src/migrations/migration-028-enable-stripe-plugin.*, packages/project-builder-lib/src/migrations/index.ts, packages/project-builder-lib/src/schema/apps/backend/index.ts
Adds migration v28 to convert per-app enableStripe booleans into a plugin-payments:stripe plugin entry; includes unit tests and removes enableStripe from backend schema.
Project/example definitions
examples/*/baseplate/project-definition.json, examples/todo-with-better-auth/.../file-id-map.json, examples/todo-with-better-auth/.../.templates-info.json
Removes enableStripe from examples, bumps schemaVersion to 28, and adds/updates plugin entries and file-id/template metadata to reference @baseplate-dev/plugin-payments for Stripe artifacts.
Generator & runtime wiring
packages/fastify-generators/src/generators/index.ts, packages/project-builder-server/src/compiler/backend/fastify.ts, plugins/plugin-payments/src/stripe/core/generators/...
Removes Stripe re-export from fastify-generators, removes stripe wiring from fastify app compiler, and provides fastify-stripe generator wiring inside the new plugin-payments node module.
Project builder & workspace updates
packages/project-builder-common/package.json, packages/project-builder-lib/tsconfig.build.json, tsconfig.build.json, knip.config.js
Adds workspace dependency on @baseplate-dev/plugin-payments, adds plugin-payments to build references, and removes three plugin entries from knip.config.js.
UI accessibility & templates
packages/ui-components/src/components/ui/*/, packages/react-generators/src/generators/core/.../templates/components/ui/*, examples/*/apps/*/src/components/ui/*
Adds accessibility props (nativeButton={true}, render={}) to Checkbox and Switch usages across UI components and templates.
Web UI handler & layout changes
packages/project-builder-web/src/.../app-breadcrumbs.tsx, .../model-field-*.tsx, .../model-field-form.tsx, .../service-transformers-section.tsx, .../plugins/edit.$key.tsx, .../routes/plugins/route.tsx
Switches DropdownMenuItem handlers from onSelectonClick, removes backend Stripe toggle field from backend config UI, and replaces a Button+Link with a styled Link for Manage plugins.
Compiler safety and minor fixes
plugins/plugin-rate-limit/src/.../rate-limit-definition-editor.tsx, plugins/plugin-storage/src/.../storage-definition-editor.tsx, .workspace-meta/config.ts
Adds nil-safe checks for featureRef in resolveFeatureName and uses nullish coalescing to avoid undefined comparisons in workspace-meta logic.
Prettier/ignore & license updates
multiple *.prettierignore, many LICENSE files, .root.prettierignore
Adds/updates prettier ignores (LICENSE entries) across packages and applies broad formatting/reflow changes to many LICENSE files (MPL-2.0 text reflow/formatting).

Sequence Diagram

sequenceDiagram
    participant ProjDef as Project Definition
    participant PluginSys as Plugin System
    participant WebUI as Web UI (StripeEditor)
    participant Compiler as Backend Compiler
    participant Runtime as Fastify Runtime

    ProjDef->>PluginSys: include plugin-payments:stripe in plugins[]
    PluginSys->>WebUI: mount StripeDefinitionEditor for plugin key
    WebUI->>WebUI: user edits stripeOptions and saves
    WebUI->>PluginSys: PluginUtils.setPluginConfig(update)
    PluginSys->>Compiler: expose plugin metadata to appCompiler
    Compiler->>Compiler: add stripe child (fastifyStripeGenerator) during compile
    Compiler->>Runtime: compiled app includes stripe routes & services
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch kingston/eng-1035-split-stripe-into-plugin-payments
📝 Coding Plan
  • Generate coding plan for human review comments

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Mar 14, 2026

Copy link
Copy Markdown

Deploying baseplate-storybook with  Cloudflare Pages  Cloudflare Pages

Latest commit: 9b65789
Status: ✅  Deploy successful!
Preview URL: https://1aab1fc4.baseplate-storybook.pages.dev
Branch Preview URL: https://kingston-eng-1035-split-stri.baseplate-storybook.pages.dev

View logs

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@examples/todo-with-better-auth/apps/backend/src/services/.templates-info.json`:
- Around line 43-48: The extractor metadata contains outdated generator
references: replace all occurrences of the old generator string
"@baseplate-dev/fastify-generators#stripe/fastify-stripe" in extractor.json with
the new "@baseplate-dev/plugin-payments#stripe/fastify-stripe" so the template
metadata round-trips correctly; update the four instances noted in the review to
match the strings used elsewhere (e.g., those seen in .templates-info.json) to
ensure tool resolution consistency.

In `@plugins/plugin-payments/LICENSE`:
- Around line 275-317: The LICENSE file's sections titled "Disclaimer of
Warranty" and "Limitation of Liability" contain corrupted line prefixes/suffixes
(stray "-" and "\*") and broken line breaks; replace the malformed blocks under
the headings "6. Disclaimer of Warranty" and "7. Limitation of Liability" with
the canonical MPL-2.0 paragraph text (remove all "-" prefixes and "\*" suffixes
and restore normal sentences/line breaks) so the text matches the official
license wording exactly; locate the blocks by the section headings in the
LICENSE and perform a straight textual replacement to the standard MPL-2.0
content for those two sections.

In `@plugins/plugin-payments/src/styles.css`:
- Around line 3-4: The CSS `@import` lines using Tailwind v4 modifiers (e.g. the
lines containing "@import 'tailwindcss/theme.css' layer(theme) prefix(payments)"
and the similar utilities import) cause Biome v2.4.6 parse errors; add an
overrides entry to your biome.json that targets this plugin's styles.css and
disables the CSS formatter and linter (css.formatter.enabled = false and
css.linter.enabled = false) so Biome will skip parsing these Tailwind v4
constructs, or alternatively add a top-of-file Biome suppression comment to
disable formatting for this file.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 70ce22ad-92ac-486c-8e5a-b1bc175a4d16

📥 Commits

Reviewing files that changed from the base of the PR and between 55be8d4 and 931a387.

⛔ Files ignored due to path filters (13)
  • examples/blog-with-auth/apps/admin/baseplate/generated/src/components/ui/checkbox-field.tsx is excluded by !**/generated/**, !**/generated/**
  • examples/blog-with-auth/apps/admin/baseplate/generated/src/components/ui/switch-field.tsx is excluded by !**/generated/**, !**/generated/**
  • examples/todo-with-better-auth/apps/admin/baseplate/generated/src/components/ui/checkbox-field.tsx is excluded by !**/generated/**, !**/generated/**
  • examples/todo-with-better-auth/apps/admin/baseplate/generated/src/components/ui/switch-field.tsx is excluded by !**/generated/**, !**/generated/**
  • examples/todo-with-better-auth/apps/web/baseplate/generated/src/components/ui/checkbox-field.tsx is excluded by !**/generated/**, !**/generated/**
  • examples/todo-with-better-auth/apps/web/baseplate/generated/src/components/ui/switch-field.tsx is excluded by !**/generated/**, !**/generated/**
  • plugins/plugin-payments/src/stripe/core/generators/fastify-stripe/generated/index.ts is excluded by !**/generated/**, !**/generated/**
  • plugins/plugin-payments/src/stripe/core/generators/fastify-stripe/generated/template-paths.ts is excluded by !**/generated/**, !**/generated/**
  • plugins/plugin-payments/src/stripe/core/generators/fastify-stripe/generated/template-renderers.ts is excluded by !**/generated/**, !**/generated/**
  • plugins/plugin-payments/src/stripe/core/generators/fastify-stripe/generated/ts-import-providers.ts is excluded by !**/generated/**, !**/generated/**
  • plugins/plugin-payments/src/stripe/core/generators/fastify-stripe/generated/typed-templates.ts is excluded by !**/generated/**, !**/generated/**
  • plugins/plugin-payments/src/stripe/static/icon.svg is excluded by !**/*.svg
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (68)
  • .changeset/extract-stripe-to-plugin-payments.md
  • examples/blog-with-auth/apps/admin/src/components/ui/checkbox-field.tsx
  • examples/blog-with-auth/apps/admin/src/components/ui/switch-field.tsx
  • examples/blog-with-auth/baseplate/project-definition.json
  • examples/todo-with-better-auth/apps/admin/src/components/ui/checkbox-field.tsx
  • examples/todo-with-better-auth/apps/admin/src/components/ui/switch-field.tsx
  • examples/todo-with-better-auth/apps/backend/baseplate/file-id-map.json
  • examples/todo-with-better-auth/apps/backend/src/plugins/.templates-info.json
  • examples/todo-with-better-auth/apps/backend/src/services/.templates-info.json
  • examples/todo-with-better-auth/apps/web/src/components/ui/checkbox-field.tsx
  • examples/todo-with-better-auth/apps/web/src/components/ui/switch-field.tsx
  • examples/todo-with-better-auth/baseplate/project-definition.json
  • knip.config.js
  • packages/fastify-generators/src/generators/index.ts
  • packages/project-builder-common/package.json
  • packages/project-builder-lib/src/migrations/index.ts
  • packages/project-builder-lib/src/migrations/migration-028-enable-stripe-plugin.ts
  • packages/project-builder-lib/src/migrations/migration-028-enable-stripe-plugin.unit.test.ts
  • packages/project-builder-lib/src/schema/apps/backend/index.ts
  • packages/project-builder-server/src/compiler/backend/fastify.ts
  • packages/project-builder-web/public/preview-app.json
  • packages/project-builder-web/src/app/app-layout/app-breadcrumbs.tsx
  • packages/project-builder-web/src/routes/data/models/edit.$key/-components/fields/model-field-default-value-input.tsx
  • packages/project-builder-web/src/routes/data/models/edit.$key/-components/fields/model-field-form.tsx
  • packages/project-builder-web/src/routes/data/models/edit.$key/-components/service/service-transformers-section.tsx
  • packages/project-builder-web/src/routes/packages/apps.$key/backend.tsx
  • packages/project-builder-web/src/routes/plugins/edit.$key.tsx
  • packages/project-builder-web/src/routes/plugins/route.tsx
  • packages/react-generators/src/generators/core/react-components/templates/components/ui/checkbox-field.tsx
  • packages/react-generators/src/generators/core/react-components/templates/components/ui/switch-field.tsx
  • packages/ui-components/src/components/ui/checkbox-field/checkbox-field.tsx
  • packages/ui-components/src/components/ui/switch-field/switch-field.tsx
  • plugins/plugin-payments/.gitignore
  • plugins/plugin-payments/CHANGELOG.md
  • plugins/plugin-payments/LICENSE
  • plugins/plugin-payments/README.md
  • plugins/plugin-payments/eslint.config.js
  • plugins/plugin-payments/index.html
  • plugins/plugin-payments/package.json
  • plugins/plugin-payments/prettier.config.js
  • plugins/plugin-payments/src/index.ts
  • plugins/plugin-payments/src/stripe/core/common.ts
  • plugins/plugin-payments/src/stripe/core/components/stripe-definition-editor.tsx
  • plugins/plugin-payments/src/stripe/core/generators/fastify-stripe/extractor.json
  • plugins/plugin-payments/src/stripe/core/generators/fastify-stripe/fastify-stripe.generator.ts
  • plugins/plugin-payments/src/stripe/core/generators/fastify-stripe/index.ts
  • plugins/plugin-payments/src/stripe/core/generators/fastify-stripe/templates/src/plugins/stripe-webhook.int.test.ts
  • plugins/plugin-payments/src/stripe/core/generators/fastify-stripe/templates/src/plugins/stripe-webhook.ts
  • plugins/plugin-payments/src/stripe/core/generators/fastify-stripe/templates/src/services/stripe-events.ts
  • plugins/plugin-payments/src/stripe/core/generators/fastify-stripe/templates/src/services/stripe.ts
  • plugins/plugin-payments/src/stripe/core/generators/index.ts
  • plugins/plugin-payments/src/stripe/core/index.ts
  • plugins/plugin-payments/src/stripe/core/node.ts
  • plugins/plugin-payments/src/stripe/core/schema/plugin-definition.ts
  • plugins/plugin-payments/src/stripe/core/web.ts
  • plugins/plugin-payments/src/stripe/index.ts
  • plugins/plugin-payments/src/stripe/plugin.json
  • plugins/plugin-payments/src/styles.css
  • plugins/plugin-payments/src/vite-env.d.ts
  • plugins/plugin-payments/src/web-export.ts
  • plugins/plugin-payments/tsconfig.build.json
  • plugins/plugin-payments/tsconfig.json
  • plugins/plugin-payments/tsconfig.node.json
  • plugins/plugin-payments/vite.config.ts
  • plugins/plugin-payments/vitest.config.js
  • plugins/plugin-rate-limit/src/rate-limit/core/components/rate-limit-definition-editor.tsx
  • plugins/plugin-storage/src/storage/core/components/storage-definition-editor.tsx
  • tsconfig.build.json
💤 Files with no reviewable changes (6)
  • packages/project-builder-web/public/preview-app.json
  • packages/project-builder-web/src/routes/packages/apps.$key/backend.tsx
  • knip.config.js
  • packages/project-builder-server/src/compiler/backend/fastify.ts
  • packages/project-builder-lib/src/schema/apps/backend/index.ts
  • packages/fastify-generators/src/generators/index.ts

Comment on lines +43 to +48
"generator": "@baseplate-dev/plugin-payments#stripe/fastify-stripe",
"instanceData": {},
"template": "service-events"
},
"stripe.ts": {
"generator": "@baseplate-dev/fastify-generators#stripe/fastify-stripe",
"generator": "@baseplate-dev/plugin-payments#stripe/fastify-stripe",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "1) Find stale Stripe generator references (expected: no matches):"
rg -n '"generator":\s*"@baseplate-dev/fastify-generators#stripe/fastify-stripe"' \
  plugins/plugin-payments/src/stripe/core/generators/fastify-stripe/extractor.json

echo
echo "2) Confirm new package reference exists (expected: one or more matches):"
rg -n '"generator":\s*"@baseplate-dev/plugin-payments#stripe/fastify-stripe"' \
  plugins/plugin-payments/src/stripe/core/generators/fastify-stripe/extractor.json

Repository: halfdomelabs/baseplate

Length of output: 528


Update plugin-payments extractor generator references to match this migration

Lines 43 and 48 correctly point to @baseplate-dev/plugin-payments#stripe/fastify-stripe, but plugins/plugin-payments/src/stripe/core/generators/fastify-stripe/extractor.json still references the old @baseplate-dev/fastify-generators#stripe/fastify-stripe at lines 7, 27, 42, and 58. This inconsistency can break template metadata round-tripping and tool resolution.

Update all four occurrences in extractor.json:

-      "generator": "@baseplate-dev/fastify-generators#stripe/fastify-stripe",
+      "generator": "@baseplate-dev/plugin-payments#stripe/fastify-stripe",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@examples/todo-with-better-auth/apps/backend/src/services/.templates-info.json`
around lines 43 - 48, The extractor metadata contains outdated generator
references: replace all occurrences of the old generator string
"@baseplate-dev/fastify-generators#stripe/fastify-stripe" in extractor.json with
the new "@baseplate-dev/plugin-payments#stripe/fastify-stripe" so the template
metadata round-trips correctly; update the four instances noted in the review to
match the strings used elsewhere (e.g., those seen in .templates-info.json) to
ensure tool resolution consistency.

Comment thread plugins/plugin-payments/LICENSE Outdated
Comment on lines +3 to +4
@import 'tailwindcss/theme.css' layer(theme) prefix(payments);
@import 'tailwindcss/utilities.css' layer(utilities) prefix(payments);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

Does Biome v2.4.6 support Tailwind CSS v4 @importmodifiers likeprefix(...)(e.g.,@import 'tailwindcss/theme.css' layer(theme) prefix(payments);), and if not, what is the recommended workaround in Biome configuration?

💡 Result:

No. Biome v2.4.6 still doesn’t parse Tailwind CSS v4’s extra @import “modifiers”/functions (like source(...) and, by extension, prefix(...) after layer(...)), so formatting/linting the file can fail at parse time. Biome has an open/closed history of treating this as unsupported Tailwind-specific @import syntax (for example @import "tailwindcss" source(none); causing a parse error). [1] Tailwind’s own recommended v4 syntax does use layer(...) + prefix(...) on @import lines. [2]

Workaround (recommended in Biome config): disable Biome’s CSS formatter (and optionally CSS lint) for the file(s) that contain these Tailwind v4 @import ... prefix(...) lines using an overrides entry, since overrides can replace top-level config per glob match. [3]

// biome.json
{
  "overrides": [
    {
      "include": ["src/app/globals.css"], // adjust
      "css": {
        "formatter": { "enabled": false },
        "linter": { "enabled": false } // optional, but often paired
      }
    }
  ]
}

If you prefer not to use config, Biome also supports suppressing formatting for a whole file via a top-of-file ignore comment. [4]

Sources: [1] [2] [3] [4]


Add biome.json overrides config for Tailwind v4 syntax support

Lines 3-4 use prefix(payments) correctly for plugin scoping. However, Biome v2.4.6 does not parse Tailwind v4's @import modifiers (layer(...) and prefix(...)) and will report parse errors. Configure Biome to skip CSS parsing for this file using an overrides entry:

biome.json configuration example
{
  "overrides": [
    {
      "include": ["plugins/plugin-payments/src/styles.css"],
      "css": {
        "formatter": { "enabled": false },
        "linter": { "enabled": false }
      }
    }
  ]
}

Alternatively, suppress formatting via a top-of-file comment if config-based exclusion is not preferred.

🧰 Tools
🪛 Biome (2.4.6)

[error] 3-3: expected , but instead found (

(parse)


[error] 4-4: expected , but instead found (

(parse)


[error] 3-3: Don't use unknown media feature names.

(lint/correctness/noUnknownMediaFeatureName)


[error] 4-4: Don't use unknown media feature names.

(lint/correctness/noUnknownMediaFeatureName)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@plugins/plugin-payments/src/styles.css` around lines 3 - 4, The CSS `@import`
lines using Tailwind v4 modifiers (e.g. the lines containing "@import
'tailwindcss/theme.css' layer(theme) prefix(payments)" and the similar utilities
import) cause Biome v2.4.6 parse errors; add an overrides entry to your
biome.json that targets this plugin's styles.css and disables the CSS formatter
and linter (css.formatter.enabled = false and css.linter.enabled = false) so
Biome will skip parsing these Tailwind v4 constructs, or alternatively add a
top-of-file Biome suppression comment to disable formatting for this file.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.workspace-meta/templates/LICENSE:
- Around line 67-73: Section 1.11 in the LICENSE template deviates from
canonical MPL-2.0 wording; update the text in Section 1.11 (the "Patent Claims"
definition) to replace the phrase "have made, import, or transfer" with the
correct canonical phrase "have made, import, or otherwise transfer". Locate the
template's Section 1.11 string and edit the sentence so it exactly matches the
standard MPL-2.0 wording for that clause.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 108d8a37-1d8b-4c74-ba11-b74f8a83c3f4

📥 Commits

Reviewing files that changed from the base of the PR and between 931a387 and 9b65789.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (50)
  • .prettierignore
  • .root.prettierignore
  • .workspace-meta/config.ts
  • .workspace-meta/templates/LICENSE
  • LICENSE
  • packages/code-morph/LICENSE
  • packages/core-generators/LICENSE
  • packages/create-project/.prettierignore
  • packages/create-project/LICENSE
  • packages/fastify-generators/.prettierignore
  • packages/fastify-generators/LICENSE
  • packages/project-builder-cli/.prettierignore
  • packages/project-builder-cli/LICENSE
  • packages/project-builder-common/.prettierignore
  • packages/project-builder-common/LICENSE
  • packages/project-builder-dev/.prettierignore
  • packages/project-builder-dev/LICENSE
  • packages/project-builder-lib/.prettierignore
  • packages/project-builder-lib/LICENSE
  • packages/project-builder-server/.prettierignore
  • packages/project-builder-server/LICENSE
  • packages/project-builder-test/.prettierignore
  • packages/project-builder-test/LICENSE
  • packages/project-builder-web/.prettierignore
  • packages/project-builder-web/LICENSE
  • packages/react-generators/.prettierignore
  • packages/react-generators/LICENSE
  • packages/sync/.prettierignore
  • packages/sync/LICENSE
  • packages/tools/.prettierignore
  • packages/tools/LICENSE
  • packages/ui-components/.prettierignore
  • packages/ui-components/LICENSE
  • packages/utils/.prettierignore
  • packages/utils/LICENSE
  • plugins/plugin-auth/.prettierignore
  • plugins/plugin-auth/LICENSE
  • plugins/plugin-email/.prettierignore
  • plugins/plugin-email/LICENSE
  • plugins/plugin-observability/.prettierignore
  • plugins/plugin-observability/LICENSE
  • plugins/plugin-payments/.prettierignore
  • plugins/plugin-payments/LICENSE
  • plugins/plugin-queue/.prettierignore
  • plugins/plugin-queue/LICENSE
  • plugins/plugin-rate-limit/.prettierignore
  • plugins/plugin-rate-limit/LICENSE
  • plugins/plugin-storage/.prettierignore
  • plugins/plugin-storage/LICENSE
  • turbo.json
✅ Files skipped from review due to trivial changes (16)
  • plugins/plugin-queue/.prettierignore
  • packages/sync/.prettierignore
  • packages/project-builder-cli/.prettierignore
  • plugins/plugin-payments/LICENSE
  • packages/create-project/.prettierignore
  • plugins/plugin-auth/.prettierignore
  • packages/ui-components/.prettierignore
  • packages/project-builder-test/LICENSE
  • packages/project-builder-common/LICENSE
  • packages/react-generators/.prettierignore
  • plugins/plugin-rate-limit/.prettierignore
  • plugins/plugin-payments/.prettierignore
  • plugins/plugin-observability/.prettierignore
  • plugins/plugin-storage/LICENSE
  • plugins/plugin-observability/LICENSE
  • packages/tools/.prettierignore

Comment on lines 67 to +73
1.11. "Patent Claims" of a Contributor
means any patent claim(s), including without limitation, method,
process, and apparatus claims, in any patent Licensable by such
Contributor that would be infringed, but for the grant of the
License, by the making, using, selling, offering for sale, having
made, import, or transfer of either its Contributions or its
Contributor Version.
means any patent claim(s), including without limitation, method,
process, and apparatus claims, in any patent Licensable by such
Contributor that would be infringed, but for the grant of the
License, by the making, using, selling, offering for sale, having
made, import, or transfer of either its Contributions or its
Contributor Version.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Restore canonical MPL wording in Section 1.11.

Line 72 currently says “have made, import, or transfer”. The standard MPL-2.0 text is “have made, import, or otherwise transfer”. This is a legal-text deviation and should be corrected at the template source to avoid propagating non-canonical license language.

📄 Proposed fix
-    made, import, or transfer of either its Contributions or its
+    made, import, or otherwise transfer of either its Contributions or its
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
1.11. "Patent Claims" of a Contributor
means any patent claim(s), including without limitation, method,
process, and apparatus claims, in any patent Licensable by such
Contributor that would be infringed, but for the grant of the
License, by the making, using, selling, offering for sale, having
made, import, or transfer of either its Contributions or its
Contributor Version.
means any patent claim(s), including without limitation, method,
process, and apparatus claims, in any patent Licensable by such
Contributor that would be infringed, but for the grant of the
License, by the making, using, selling, offering for sale, having
made, import, or transfer of either its Contributions or its
Contributor Version.
1.11. "Patent Claims" of a Contributor
means any patent claim(s), including without limitation, method,
process, and apparatus claims, in any patent Licensable by such
Contributor that would be infringed, but for the grant of the
License, by the making, using, selling, offering for sale, having
made, import, or otherwise transfer of either its Contributions or its
Contributor Version.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.workspace-meta/templates/LICENSE around lines 67 - 73, Section 1.11 in the
LICENSE template deviates from canonical MPL-2.0 wording; update the text in
Section 1.11 (the "Patent Claims" definition) to replace the phrase "have made,
import, or transfer" with the correct canonical phrase "have made, import, or
otherwise transfer". Locate the template's Section 1.11 string and edit the
sentence so it exactly matches the standard MPL-2.0 wording for that clause.

@kingston kingston merged commit 28517d6 into main Mar 14, 2026
14 checks passed
@kingston kingston deleted the kingston/eng-1035-split-stripe-into-plugin-payments branch March 14, 2026 12:07
@github-actions github-actions Bot mentioned this pull request Mar 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant