-
Notifications
You must be signed in to change notification settings - Fork 0
Restructure all packages #39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…roofgeist to @proofkit for fmdapi. Enhance CLI documentation with new video resources and improve layout handling in typegen configuration.
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
Caution Review failedThe pull request is closed. WalkthroughThis update restructures the project by removing the legacy Astro-based documentation app and introducing a new Next.js-based documentation system under Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant CLI
participant TypegenConfig (JSONC)
participant CodegenProcess
User->>CLI: Add or remove FileMaker layout/data source
CLI->>TypegenConfig: Read/modify proofkit-typegen.config.jsonc
TypegenConfig-->>CLI: Updated config
CLI->>CodegenProcess: Optionally trigger typegen CLI
CodegenProcess-->>CLI: Generate/update TypeScript schemas and clients
CLI-->>User: Operation complete (schemas/clients updated)
Poem
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Caution
Inline review comments failed to post. This is likely due to GitHub's limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.
🛑 Comments failed to post (29)
.changeset/config.json (1)
2-2: 💡 Verification agent
🧩 Analysis chain
Verify the schema version downgrade is intentional.
The schema version was downgraded from 2.3.1 to 2.0.0. Please confirm this is intentional, as it might remove access to newer changeset features.
🌐 Web query:
What are the differences between @changesets/config schema versions 2.0.0 and 2.3.1?
💡 Result:
Key Differences Between @changesets/config Schema Versions 2.0.0 and 2.3.1
The primary differences between the
@changesets/config
schema versions 2.0.0 and 2.3.1 revolve around new configuration options introduced, expanded flexibility, and enhancements in managing package releases within monorepos. Below is a detailed comparison based on the available documentation and changelogs.
Base Configuration in 2.0.0
When version 2.0.0 of Changesets was released, the configuration format and options were significantly updated:
- Configuration moved to a JSON format for clarity and safety.
- Fewer options were supported, with a focus on simplicity and clear defaults.
Default 2.0.0 config structure:
{ "$schema": "https://unpkg.com/@changesets/config/schema.json", "changelog": "@changesets/cli/changelog", "commit": false, "linked": [], "access": "private" }Notable points:
- Only basic options (
changelog
,commit
,linked
,access
) were present.- The config was intentionally minimal to reduce complexity and risk[4].
Enhancements as of 2.3.1
By schema version 2.3.1, the configuration options had expanded to support more advanced workflows, especially for larger monorepo projects. Example config excerpt:
{ "$schema": "https://unpkg.com/@changesets/[email protected]/schema.json", "changelog": [ "@changesets/changelog-github", { "repo": "lirantal/astro-keyboard-controls" } ], "commit": false, "fixed": [], "linked": [], "access": "public", "baseBranch": "main", "updateInternalDependencies": "patch", "ignore": [] }Key new/changed options in 2.3.1:
fixed
: Introduced to group packages for fixed/locked releases—packages listed here will always be released together if any one of them is changed[1].baseBranch
: Allows specifying the main branch for release operations.updateInternalDependencies
: Controls how internal package dependencies are bumped (patch
, etc.).ignore
: Lets you exclude certain packages from automatic versioning[2].- Enhanced
changelog
field supporting structured configuration including repo information.
Summary Table
Feature/Option 2.0.0 2.3.1 $schema
Generic Versioned (e.g., 2.3.1) changelog
String or basic Structured, repo field commit
Yes Yes linked
Yes Yes access
"private" "public" or "private" fixed
No Yes baseBranch
No Yes updateInternalDependencies
No Yes ignore
No Yes
Conclusion
Version 2.3.1 of the
@changesets/config
schema introduces several new configuration options and greater flexibility compared to 2.0.0. The most significant additions are support for package grouping withfixed
, more granular control over dependency updates, ability to ignore specific packages, and richer changelog configuration. These improvements make Changesets more powerful and suitable for complex monorepo workflows[1][2][4].Citations:
- 1: https://github.com/changesets/changesets/blob/main/packages/cli/CHANGELOG.md
- 2: https://lirantal.com/blog/introducing-changesets-simplify-project-versioning-with-semantic-releases
- 3: Changesets action is publishing my entire monorepo as package contents changesets/changesets#1440
- 4: https://app.unpkg.com/@changesets/[email protected]/files/CHANGELOG.md
- 5: https://hexdocs.pm/oban/2.4.3/changelog.html
- 6: https://documentation.elasticpath.com/commerce/docs/release-notes.html
- 7: https://atlaskit.atlassian.com/packages/editor/editor-plugin-placeholder-text/changelog
- 8: https://hexdocs.pm/oban/2.9.0/changelog.html
- 9: https://www.itwinjs.org/v2/reference/imodeljs-backend/changelog/
- 10: https://docs.redhat.com/en/documentation/red_hat_quay/3.6/html-single/red_hat_quay_release_notes/index
Update Changesets schema to match added options
The config.json uses
baseBranch
andignore
, which were introduced in schema 2.3.1. Version 2.0.0 doesn’t support these fields and will trigger validation errors. Please bump the schema URL accordingly:• File:
.changeset/config.json
Change:- "$schema": "https://unpkg.com/@changesets/[email protected]/schema.json", + "$schema": "https://unpkg.com/@changesets/[email protected]/schema.json",If you intentionally need to stick with 2.0.0, remove any unsupported keys (
baseBranch
,ignore
, etc.) instead.📝 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."$schema": "https://unpkg.com/@changesets/[email protected]/schema.json",
🤖 Prompt for AI Agents
In .changeset/config.json at line 2, the schema version is set to 2.0.0, but the config includes fields like baseBranch and ignore that are only supported in schema version 2.3.1. To fix this, update the $schema URL to use version 2.3.1 to match the config options used, or alternatively remove unsupported keys if you want to keep the schema at 2.0.0.
.changeset/pre.json (1)
5-12: 💡 Verification agent
🧩 Analysis chain
Ensure
initialVersions
matchpackage.json
entries. Version mismatches can break the release pipeline.
🏁 Script executed:
#!/bin/bash # Verify that versions in .changeset/pre.json match package.json pre=".changeset/pre.json" for pkg in $(jq -r '.initialVersions | keys[]' $pre); do expected=$(jq -r --arg n "$pkg" '.initialVersions[$n]' $pre) file=$(grep -rl "\"name\": \"$pkg\"" -n packages apps create-proofkit demo) actual=$(jq -r '.version' "$file") if [ "$expected" != "$actual" ]; then echo "Mismatch for $pkg: expected $expected, found $actual in $file" exit 1 fi done echo "All package versions match pre-release manifest."Length of output: 726
Align
.changeset/pre.json
withpackage.json
versionsThe entry for @proofkit/cli is out of sync and will break the release pipeline. Update the
initialVersions
mapping to match the actual package version.
- File:
.changeset/pre.json
– Change"@proofkit/cli": "0.3.2"
to"1.0.0-beta.0"
Suggested diff:
--- .changeset/pre.json @@ -7,7 +7,7 @@ "@proofkit/webviewer": "3.0.0", "demo": "0.1.0", - "@proofkit/cli": "0.3.2", + "@proofkit/cli": "1.0.0-beta.0", "create-proofkit": "0.0.7" },📝 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."initialVersions": { "@proofkit/docs": "0.0.2", "@proofkit/fmdapi": "4.3.2", "@proofkit/typegen": "0.0.1", "@proofkit/webviewer": "3.0.0", "demo": "0.1.0", "@proofkit/cli": "1.0.0-beta.0", "create-proofkit": "0.0.7" },
🤖 Prompt for AI Agents
In .changeset/pre.json around lines 5 to 12, the version for "@proofkit/cli" in the initialVersions mapping is "0.3.2" but it should match the actual package.json version "1.0.0-beta.0". Update the version string for "@proofkit/cli" from "0.3.2" to "1.0.0-beta.0" to ensure consistency and prevent release pipeline failures.
README.md (3)
43-49:
⚠️ Potential issueFix NPM scope instructions. The “Changing the npm organization scope” instructions reference
@acme
. Update these steps to use@proofkit
for consistency.🧰 Tools
🪛 LanguageTool
[style] ~45-~45: For conciseness, consider replacing this expression with an adverb.
Context: ...cme`. To change this, it's a bit manual at the moment, but you'll need to do the following: ...(AT_THE_MOMENT)
🤖 Prompt for AI Agents
In README.md lines 43 to 49, update the npm organization scope instructions by replacing all instances of `@acme` with `@proofkit` to maintain consistency with the current project naming conventions.
19-24:
⚠️ Potential issueCorrect package names. The “Apps and Packages” section lists
@acme/*
packages. These should be updated to@proofkit/*
to match the new namespace.🧰 Tools
🪛 LanguageTool
[uncategorized] ~19-~19: Loose punctuation mark.
Context: ...: ### Apps and Packages -@acme/docs
: A placeholder documentation site powere...(UNLIKELY_OPENING_PUNCTUATION)
🤖 Prompt for AI Agents
In README.md around lines 19 to 24, the package names listed under the "Apps and Packages" section use the old namespace `@acme/*`. Update all occurrences of `@acme/*` to the new namespace `@proofkit/*` to ensure consistency with the current project naming conventions.
1-1:
⚠️ Potential issueUpdate title and branding. The README still references a generic Turborepo example and the
@acme
scope, but this repo now uses@proofkit
. Please revise the title and introduction to reflect Proofkit’s branding.🤖 Prompt for AI Agents
In README.md at line 1, update the title and any introductory text to replace generic Turborepo references and the `@acme` scope with Proofkit branding. Ensure the title clearly reflects that this is a Proofkit design system starter using Turborepo and Changesets, aligning all mentions with the current project identity.
packages/cli/src/helpers/version-fetcher.ts (1)
5-5: 🛠️ Refactor suggestion
Standardize Zod import to named export
Use the namedz
export instead of a default import to align with other modules and ensure correct typings.
Apply:-import z from "zod/v4"; +import { z } from "zod/v4";📝 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.import { z } from "zod/v4";
🤖 Prompt for AI Agents
In packages/cli/src/helpers/version-fetcher.ts at line 5, change the import of Zod from a default import to a named import by replacing 'import z from "zod/v4";' with 'import { z } from "zod";' to standardize the import style and ensure correct typings.
packages/cli/src/utils/parseSettings.ts (1)
3-3: 💡 Verification agent
🧩 Analysis chain
Standardize Zod import to lock major version
Good update to import Zod from the"zod/v4"
entrypoint. Please verify that thezod
dependency in yourpackage.json
has been bumped to v4 and that there are no remaining generic"zod"
imports elsewhere in the repo.Run this script from the repo root to confirm:
🏁 Script executed:
#!/bin/bash # 1. Find any imports from generic "zod" rg "from ['\"]zod['\"]" -g "*.ts" # 2. Check the declared zod version in your CLI package grep -R '"zod"' -n packages/cli/package.jsonLength of output: 131
Update Zod dependency to v4 in package.json
The import changes to
"zod/v4"
are correct and there are no remaining genericfrom "zod"
imports. However, the CLI package is still on Zod v3:• packages/cli/package.json (line 119) shows:
- "zod": "3.25.0-beta.20250519T094321", + "zod": "^4.0.0",Please bump the Zod dependency to v4 in your
package.json
and verify compatibility with the v4 API.Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In packages/cli/src/utils/parseSettings.ts at line 3, the import of Zod from "zod/v4" is correct, but the packages/cli/package.json still lists Zod version 3. Update the Zod dependency in packages/cli/package.json to version 4, then run npm install or yarn to update the lockfile. After that, verify that all Zod usages in the CLI package are compatible with the v4 API and adjust code if necessary.
packages/cli/src/cli/init.ts (1)
216-216: 💡 Verification agent
🧩 Analysis chain
Verify package name consistency across the codebase.
The package rename from
@proofgeist/kit
to@proofkit/cli
looks correct as part of the restructuring effort. Please ensure all references to the old package name have been updated consistently.
🏁 Script executed:
#!/bin/bash # Description: Verify that all references to @proofgeist packages have been updated to @proofkit # Expected: No remaining @proofgeist references except in changelogs or documentation about migration echo "Searching for remaining @proofgeist references..." rg "@proofgeist" --type-not md --type-not txt -A 2 echo "Searching for @proofkit references to verify consistency..." rg "@proofkit" -A 1 | head -20Length of output: 5765
Replace remaining
@proofgeist
references with@proofkit
The rename from
@proofgeist/...
to@proofkit/...
is only partially applied. Remaining references were found in:
- packages/cli/template/vite-wv/package.json
@proofgeist/fm-webviewer-fetch
@proofgeist/fmdapi
- packages/webviewer/pnpm-lock.yaml
- packages/typegen/src/cli.ts (CLI warning messages)
- packages/fmdapi/stubs/fmschema.config.stub.mjs & .js (type imports)
- packages/fmdapi/pnpm-lock.yaml
- apps/demo/
- Snapshot headers in
__snapshots__/without-zod.snap.ts
&with-zod.snap.ts
fmschema.config.mjs
imports- apps/docs/content/docs/fmdapi/version-5.mdx (migration docs still reference
@proofgeist/fmdapi
)Please update all of these to the new
@proofkit
namespace—import paths, CLI messages, templates, tests, and documentation. Once done, rerun a global search to confirm there are no remaining@proofgeist/
references in the codebase.🤖 Prompt for AI Agents
In packages/cli/src/cli/init.ts at line 216, verify that all package dependencies and references have been updated from the old namespace '@proofgeist' to the new '@proofkit'. Specifically, ensure that any remaining '@proofgeist' references in import paths, CLI messages, templates, tests, and documentation across the entire codebase are replaced with '@proofkit'. After making these replacements, perform a global search to confirm no '@proofgeist/' references remain.
packages/cli/src/cli/add/data-source/filemaker.ts (1)
4-4: 💡 Verification agent
🧩 Analysis chain
Verify zod version upgrade consistency across codebase.
The import change from
"zod"
to"zod/v4"
suggests a major version upgrade. Ensure this change is consistent across the entire codebase to avoid compatibility issues.
🏁 Script executed:
#!/bin/bash # Description: Check for inconsistent zod imports across the codebase # Expected: All imports should use the same zod version/path echo "Checking for zod imports across the codebase..." rg -n 'from ["\'"'"']zod[^"'"'"']*["\'"'"']' --type ts --type js --type tsx --type jsx echo -e "\nChecking package.json files for zod dependencies..." fd 'package\.json$' --exec grep -l 'zod' {} \; --exec cat {} \;Length of output: 13400
Fix zod import path or upgrade to v4 across all packages.
The import in
packages/cli/src/cli/add/data-source/filemaker.ts
– import { type z } from "zod/v4"; + import { type z } from "zod";is inconsistent with the rest of the repo, which still pins zod v3. Either:
- Revert this import back to
"zod"
, or- Bump all zod dependencies in
package.json
files to v4 and ensure every import uses"zod/v4"
.Files requiring attention (examples):
- packages/cli/src/cli/add/data-source/filemaker.ts (line 4)
- All other TypeScript/JavaScript files importing from
"zod"
(should be audited)- All
package.json
files where"zod"
is listed (update version to v4 if you choose the upgrade path)🤖 Prompt for AI Agents
In packages/cli/src/cli/add/data-source/filemaker.ts at line 4, the import statement uses "zod/v4" which is inconsistent with the rest of the codebase still using "zod" for version 3. To fix this, either revert the import back to "zod" to match the current version used across the repo or upgrade all zod dependencies in all package.json files to version 4 and update all import statements throughout the codebase to use "zod/v4" for consistency.
apps/docs/content/docs/cli/reference/cli-commands.mdx (1)
20-20: 💡 Verification agent
🧩 Analysis chain
Verify CliCommand component API compatibility.
The removal of
frame="none"
attributes suggests the component API has changed. Ensure this change is consistent with the new CliCommand component implementation.Also applies to: 26-26, 43-43, 57-57
🏁 Script executed:
#!/bin/bash # Description: Check CliCommand component implementation and verify frame prop usage # Find the CliCommand component implementation cat apps/docs/src/components/CliCommand.tsx # Check if any MDX files still use the frame prop rg 'frame=' apps/docs/content/Length of output: 1072
Remove
frame
prop from CliCommand usagesThe
CliCommand
component no longer accepts aframe
prop, so all MDX references need updating.• apps/docs/content/docs/cli/webviewer/getting-started.mdx
- <CliCommand command={["build", "upload", "build:upload"]} frame="none" /> + <CliCommand command={["build", "upload", "build:upload"]} />• apps/docs/content/docs/cli/guides/getting-started.mdx
- {/* <CliCommand command="dev" frame="none" /> */} + {/* <CliCommand command="dev" /> */}🤖 Prompt for AI Agents
In apps/docs/content/docs/cli/reference/cli-commands.mdx at line 20 and similarly at lines 26, 43, and 57, the CliCommand component usage still includes the now-removed frame="none" prop. Update all these instances by removing the frame prop entirely to align with the current CliCommand component API, ensuring no frame attribute is passed in any MDX file referencing this component.
apps/docs/src/app/typegen-config-schema.json/route.ts (1)
1-2: 💡 Verification agent
🧩 Analysis chain
Verify import paths after package restructuring.
Ensure that the import paths are correct following the restructuring from
@proofgeist
to@proofkit
packages. The import should align with the new package structure.
🏁 Script executed:
#!/bin/bash # Description: Verify the typegenConfig export exists in the new package structure # Expected: Find the typegenConfig export in the @proofkit/typegen package fd -t f "index.ts|config.ts" packages/typegen/src --exec grep -l "typegenConfig" rg -A 3 "export.*typegenConfig" packages/typegen/src/Length of output: 943
Fix typegenConfig import path
The
@proofkit/typegen
package exportstypegenConfig
from its main entrypoint, not from aconfig
subpath. Update your import accordingly:- import { typegenConfig } from "@proofkit/typegen/config"; + import { typegenConfig } from "@proofkit/typegen";📝 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.import { typegenConfig } from "@proofkit/typegen"; import { z } from "zod/v4";
🤖 Prompt for AI Agents
In apps/docs/src/app/typegen-config-schema.json/route.ts at lines 1 to 2, the import path for typegenConfig is incorrect because it imports from "@proofkit/typegen/config" which does not exist. Update the import statement to import typegenConfig directly from "@proofkit/typegen" to match the new package structure.
apps/demo/src/app/globals.css (1)
22-26: 🛠️ Refactor suggestion
Font fallback inconsistency with CSS variables.
The body element uses a generic font fallback (
Arial, Helvetica, sans-serif
) instead of the Geist fonts defined in the CSS variables. This could lead to inconsistent typography.-body { - background: var(--background); - color: var(--foreground); - font-family: Arial, Helvetica, sans-serif; -} +body { + background: var(--background); + color: var(--foreground); + font-family: var(--font-sans), system-ui, sans-serif; +}📝 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.body { background: var(--background); color: var(--foreground); font-family: var(--font-sans), system-ui, sans-serif; }
🤖 Prompt for AI Agents
In apps/demo/src/app/globals.css around lines 22 to 26, the body element's font-family uses a generic fallback (Arial, Helvetica, sans-serif) instead of the Geist fonts defined in CSS variables. Update the font-family to use the appropriate Geist font CSS variable to ensure consistent typography across the app.
packages/cli/template/extras/_cursor/rules/filemaker-api.mdc (1)
138-139: 🛠️ Refactor suggestion
Major version updates require migration guidance.
The version updates reflect significant changes:
@proofkit/fmdapi
: 4.x → 5.0.0 (major version bump)@proofkit/cli
: 0.x → 1.0.0 (major version bump)Consider adding migration notes or changelog references to help users understand what breaking changes to expect with these major version bumps.
🤖 Prompt for AI Agents
In packages/cli/template/extras/_cursor/rules/filemaker-api.mdc around lines 138 to 139, the dependency versions for @proofkit/fmdapi and @proofkit/cli have been updated to major new versions without any migration guidance. Add migration notes or references to the changelog explaining breaking changes and upgrade steps for these major version bumps to assist users in adapting their code.
packages/cli/src/cli/add/fmschema.ts (1)
8-8: 💡 Verification agent
🧩 Analysis chain
Verify the zod/v4 import path is correct.
The change from
zod
tozod/v4
suggests a specific version import. Ensure this is the correct import path for the zod version being used.
🏁 Script executed:
#!/bin/bash # Verify zod package structure and v4 export rg -A 3 "zod/v4" packages/cli/ cat packages/cli/package.json | jq '.dependencies.zod // .devDependencies.zod'Length of output: 13937
#!/bin/bash
Fetch the published package.json to inspect exports
curl -s https://unpkg.com/[email protected]/package.json | jq '.exports'
Check if the v4 entrypoint file exists on the CDN
curl -s -o /dev/null -w "%{http_code}" https://unpkg.com/[email protected]/v4/index.js
Update zod import path to match your 3.x dependency
The CLI’s package.json pins zod at 3.25.0-beta…, which doesn’t provide a
/v4
entrypoint. You’ll need to either:
- Replace all
import { z } from "zod/v4";
(e.g. line 8 inpackages/cli/src/cli/add/fmschema.ts
) withorimport { z } from "zod";- Upgrade the dependency to a 4.x prerelease (e.g.
4.0.0-beta…
) if you intend to import from/v4
.🤖 Prompt for AI Agents
In packages/cli/src/cli/add/fmschema.ts at line 8, the import path "zod/v4" is incorrect because the project uses zod version 3.25.0-beta, which does not support the "/v4" entrypoint. Fix this by changing the import statement to "import { z } from 'zod';" to match the installed version, or alternatively, upgrade the zod dependency to a 4.x prerelease if you want to keep the "/v4" import path.
apps/docs/package.json (1)
33-45: 💡 Verification agent
❓ Verification inconclusive
Verify compatibility of
next-transpile-modules
.
Next.js 15+ can natively handle monorepo packages. Confirm that thenext-transpile-modules@^10.0.1
version still works as expected or if it can be removed.Run:
🏁 Script executed:
# Check if transpile-modules plugin is required grep -R "transpileModu" -n apps/docs/next.config.*Length of output: 51
Remove unused
next-transpile-modules
devDependency
I checked and didn’t find any reference tonext-transpile-modules
inapps/docs/next.config.*
. Since Next.js 15+ handles monorepo packages natively, you can safely remove it.• In
apps/docs/package.json
, delete the line- "next-transpile-modules": "^10.0.1",
📝 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."devDependencies": { "@proofkit/fmdapi": "workspace:*", "@tailwindcss/postcss": "^4.1.4", "@types/mdx": "^2.0.13", "@types/node": "^22.15.19", "@types/react": "^19.1.2", "@types/react-dom": "^19.1.2", "postcss": "^8.5.3", "tailwindcss": "^4.1.4", "tw-animate-css": "^1.2.8", "typescript": "^5.8.3" }
🤖 Prompt for AI Agents
In apps/docs/package.json between lines 33 and 45, the devDependency "next-transpile-modules" is no longer used or referenced in the project configuration. Remove the line containing "next-transpile-modules": "^10.0.1" from the devDependencies section to clean up unused dependencies.
apps/demo/src/app/layout.tsx (1)
1-4: 💡 Verification agent
🧩 Analysis chain
Verify font imports exist in
next/font/google
.
Geist
andGeist_Mono
are not standard Google fonts—confirm thatnext/font/google
supports them or switch tonext/font/local
.
🌐 Web query:
Do `next/font/google` exports include `Geist` and `Geist_Mono` fonts?
💡 Result:
The
next/font/google
module in Next.js does not include the Geist and Geist Mono fonts. These fonts are not part of the Google Fonts library; instead, they are available through Vercel's own package. (vercel.com)To use Geist and Geist Mono in your Next.js project, follow these steps:
Install the Geist package:
npm install geistImport and apply the fonts:
For the App Router (
app/layout.js
):import { GeistSans } from 'geist/font/sans'; export default function RootLayout({ children }) { return ( <html lang="en" className={GeistSans.className}> <body>{children}</body> </html> ); }For the Pages Router (
pages/_app.js
):import { GeistSans } from 'geist/font/sans'; export default function MyApp({ Component, pageProps }) { return ( <main className={GeistSans.className}> <Component {...pageProps} /> </main> ); }For more detailed instructions, refer to Vercel's official documentation. (vercel.com)
Citations:
Update font imports to use Vercel’s
geist
packageThe fonts
Geist
andGeist_Mono
aren’t provided bynext/font/google
. To use them, install and import from Vercel’s official package:• Install the package:
npm install geist• In apps/demo/src/app/layout.tsx (around lines 1–4), replace:
- import { Geist, Geist_Mono } from "next/font/google"; + import { GeistSans, GeistMono } from "geist/font/sans";• Apply their classNames to your root elements:
<html lang="en" className={GeistSans.className}> <body className={GeistMono.className}> {children} </body> </html>Refer to Vercel’s Font docs for more details: https://vercel.com/font.
🤖 Prompt for AI Agents
In apps/demo/src/app/layout.tsx around lines 1 to 4, the imports for Geist and Geist_Mono fonts from next/font/google are incorrect because these fonts are not part of Google Fonts. To fix this, first install the geist package using npm install geist. Then replace the imports to import GeistSans and GeistMono from 'geist/font/sans'. Finally, apply their className properties to the html and body elements respectively in the layout component to correctly use these fonts.
apps/demo/tsconfig.json (1)
21-23:
⚠️ Potential issueMissing
baseUrl
for path aliases.
TypeScript’spaths
mapping requires abaseUrl
(typically"."
) to be defined; otherwise alias resolution will not work.Apply:
"compilerOptions": { + "baseUrl": ".", ... }
📝 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.{ "compilerOptions": { "baseUrl": ".", "paths": { "@/*": ["./src/*"] } } }
🤖 Prompt for AI Agents
In apps/demo/tsconfig.json around lines 21 to 23, the "paths" alias is defined without a corresponding "baseUrl". Add a "baseUrl" property set to "." at the same level as "paths" to enable proper resolution of the path aliases by TypeScript.
apps/docs/content/docs/cli/meta.json (1)
12-13:
⚠️ Potential issueRemove non-CLI entry from CLI metadata
The"webviewer"
page appears in the CLI metadata but lives outside thecli/
directory. This will break navigation. Remove or relocate it:- "guides/typegen", - "webviewer", + "guides/typegen",📝 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."guides/typegen",
🤖 Prompt for AI Agents
In apps/docs/content/docs/cli/meta.json at lines 12 to 13, the entry "webviewer" is included in the CLI metadata but it is not part of the cli/ directory, which will cause navigation issues. Remove the "webviewer" entry from this metadata file to ensure only CLI-related pages are listed, or alternatively move the "webviewer" page into the cli/ directory if it belongs there.
apps/docs/content/docs/typegen/options.mdx (1)
45-47: 🛠️ Refactor suggestion
Clarify or deduplicate --config option documentation.
The
--config
option is documented twice - once under thegenerate
command (lines 21-23) and again as a standalone section underinit
command (lines 45-47). This could be confusing for users.Consider one of these approaches:
- Move this section under the
init
command as a subsection- Create a shared "Global Options" section for options that apply to multiple commands
- Explicitly state which commands each option applies to
-## `--config <filename>` - -Set a custom filename/path for where the config file will be created. The file name must end with either `jsonc` or `json`. +### `--config <filename>` + +Set a custom filename/path for where the config file will be created. The file name must end with either `jsonc` or `json`.📝 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.### `--config <filename>` Set a custom filename/path for where the config file will be created. The file name must end with either `jsonc` or `json`.
🤖 Prompt for AI Agents
In apps/docs/content/docs/typegen/options.mdx around lines 21-23 and 45-47, the --config option is documented twice, causing potential confusion. To fix this, consolidate the documentation by either moving the standalone --config section under the init command as a subsection, creating a shared "Global Options" section for options used by multiple commands, or explicitly stating which commands each --config option applies to, ensuring clarity and avoiding duplication.
.github/workflows/release.yml (2)
35-36: 💡 Verification agent
❓ Verification inconclusive
Verify release script existence
Ensure you have arelease
script defined in your rootpackage.json
to back this step.Run to confirm:
🏁 Script executed:
grep -R "\"release\":" -n package.json
Length of output: 38
Add missing
release
script to package.json
It looks like there isn’t arelease
script defined in your rootpackage.json
, yet your GitHub Action invokespnpm release
. You’ll need to add something like this under the"scripts"
section of yourpackage.json
:"scripts": { // …existing scripts + "release": "pnpm build && changeset publish" }
• File: package.json
• Section:"scripts"
Once added, rerun
grep -R "\"release\":" -n package.json
to confirm the entry appears.Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In .github/workflows/release.yml at lines 35-36, the GitHub Action runs `pnpm release` but your root package.json lacks a `release` script. To fix this, add a `release` script entry under the "scripts" section in your root package.json that performs the build and calls changeset publish as needed. After adding, verify the script exists by running `grep -R "\"release\":" -n package.json` to confirm the addition.
41-44: 🛠️ Refactor suggestion
Replace placeholder Slack command
my-slack-bot
is unlikely to exist in the runner; use the official Slack action or ensure the CLI is installed.- run: my-slack-bot send-notification --message "A new version of ${GITHUB_REPOSITORY} was published!" + uses: slackapi/[email protected] + with: + payload: | + { "text": "A new version of ${{ github.repository }} was published!" } + env: + SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}📝 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.- name: Send a Slack notification if a publish happens if: steps.changesets.outputs.published == 'true' # You can do something when a publish happens. uses: slackapi/[email protected] with: payload: | { "text": "A new version of ${{ github.repository }} was published!" } env: SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
🤖 Prompt for AI Agents
In .github/workflows/release.yml at lines 41 to 44, the Slack notification step uses a placeholder command 'my-slack-bot' which is not available in the runner environment. Replace this with the official Slack GitHub Action or another supported method to send Slack messages, or add steps to install and configure the required CLI before running the command.
apps/docs/src/components/magicui/aurora-text.tsx (1)
32-32: 💡 Verification agent
🧩 Analysis chain
Verify the animate-aurora CSS class is defined.
The component references
animate-aurora
class which should be defined in the global CSS or Tailwind configuration to ensure the animation works correctly.
🏁 Script executed:
#!/bin/bash # Description: Check if the animate-aurora CSS class is defined # Expected: Find the CSS animation definition # Search for aurora animation definitions rg -A 10 -B 2 "aurora|@keyframes.*aurora" --type css --type scss # Check Tailwind config for custom animations fd -e js -e ts -e json tailwind | xargs rg -A 5 -B 5 "aurora"Length of output: 1676
🏁 Script executed:
#!/usr/bin/env bash # Locate any Tailwind configuration files in the repo find . -type f -iname "tailwind.config.*"Length of output: 43
#!/usr/bin/env bash # Search for a .animate-aurora class in any CSS files rg -n "\.animate-aurora" --type css # Search for any animation rules referencing the --animate-aurora variable rg -n "animation:\s*var\(--animate-aurora\)" --type css
Define the
.animate-aurora
utility
I see you’ve added the@keyframes aurora
rule and set--animate-aurora
inapps/docs/src/app/global.css
, but there’s no.animate-aurora { … }
class being emitted. You have two options:
If you’re using a Tailwind animation plugin (e.g.
tailwindcss-animate
), ensure it’s installed and declared in yourtailwind.config.js
.Otherwise, add this to your global CSS under
@layer utilities
:/* apps/docs/src/app/global.css */ @layer utilities { .animate-aurora { animation: var(--animate-aurora); } }This will ensure
className="animate-aurora"
actually applies the aurora animation.🤖 Prompt for AI Agents
In apps/docs/src/components/magicui/aurora-text.tsx at line 32, the class "animate-aurora" is used but not defined in the CSS or Tailwind config. To fix this, define the ".animate-aurora" utility class in your global CSS file (apps/docs/src/app/global.css) inside an "@layer utilities" block with the rule "animation: var(--animate-aurora);". Alternatively, if using a Tailwind animation plugin, ensure it is installed and properly configured in tailwind.config.js to emit this class.
apps/docs/src/components/magicui/animated-gradient-text.tsx (2)
4-9:
⚠️ Potential issueFix props interface mismatch between div and span element.
The interface extends
ComponentPropsWithoutRef<"div">
but the component renders a<span>
element. This could cause TypeScript type issues.-export interface AnimatedGradientTextProps - extends ComponentPropsWithoutRef<"div"> { +export interface AnimatedGradientTextProps + extends ComponentPropsWithoutRef<"span"> {📝 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.export interface AnimatedGradientTextProps extends ComponentPropsWithoutRef<"span"> { speed?: number; colorFrom?: string; colorTo?: string; }
🤖 Prompt for AI Agents
In apps/docs/src/components/magicui/animated-gradient-text.tsx between lines 4 and 9, the props interface extends ComponentPropsWithoutRef<"div"> but the component renders a span element. To fix the type mismatch, change the interface to extend ComponentPropsWithoutRef<"span"> so the props correctly match the rendered element.
28-31: 💡 Verification agent
🧩 Analysis chain
Verify that required Tailwind animation classes are defined.
The component uses
animate-gradient
class which needs to be defined in your Tailwind configuration or global CSS for the animation to work properly.
🏁 Script executed:
#!/bin/bash # Check if animate-gradient animation is defined in Tailwind config or CSS rg -A 5 "animate-gradient" --type css --type js --type tsLength of output: 991
Let’s verify whether the
gradient
animation is registered in your Tailwind config:
🏁 Script executed:
#!/bin/bash # Locate Tailwind config file (JS or TS) config_file=$(fd tailwind.config.* | head -n1) echo "Using config: $config_file" # Search for custom animation and keyframes definitions rg -n "animation" -A5 "$config_file" rg -n "keyframes" -A5 "$config_file"Length of output: 223
Define the
animate-gradient
utilityI see that
apps/docs/src/app/global.css
defines the CSS variable--animate-gradient
and the@keyframes gradient
, but there’s no actual.animate-gradient
rule (nor a Tailwind extension) to wire it up. As a result,className="animate-gradient…"
won’t trigger any animation.Please add one of the following:
• Extend Tailwind in your
tailwind.config.js
(at your repo root):module.exports = { theme: { extend: { animation: { gradient: 'gradient 8s linear infinite', }, keyframes: { gradient: { to: { backgroundPosition: 'var(--bg-size, 300%) 0' }, }, }, }, }, }• Or define the class in
apps/docs/src/app/global.css
:.animate-gradient { animation: var(--animate-gradient); }This ensures that the
<AnimatedGradientText>
component’sanimate-gradient
class actually applies the intended effect.🤖 Prompt for AI Agents
In apps/docs/src/components/magicui/animated-gradient-text.tsx around lines 28 to 31, the className uses the animate-gradient class which is not defined in Tailwind config or global CSS, so the animation won't run. Fix this by either extending the Tailwind configuration (tailwind.config.js) to include the gradient animation and keyframes under theme.extend.animation and theme.extend.keyframes, or by adding a CSS rule for .animate-gradient in apps/docs/src/app/global.css that sets animation to var(--animate-gradient). This will ensure the animation class triggers the intended gradient animation effect.
apps/docs/content/docs/cli/guides/motivation.mdx (1)
37-37:
⚠️ Potential issueFix grammatical error in sentence structure.
The phrase "web a web app" is incorrect and should be "get a web app".
-A well-supported open-source React framework for full-stack web applications. This means it runs code on your frontened (in the client's web browser) and backend (on the web server, or API routes). It makes is easy to web a web app up and running with all the features that we expect from a modern web app and is used by companies of all sizes to power their online precence. +A well-supported open-source React framework for full-stack web applications. This means it runs code on your frontend (in the client's web browser) and backend (on the web server, or API routes). It makes it easy to get a web app up and running with all the features that we expect from a modern web app and is used by companies of all sizes to power their online presence.📝 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.A well-supported open-source React framework for full-stack web applications. This means it runs code on your frontend (in the client's web browser) and backend (on the web server, or API routes). It makes it easy to get a web app up and running with all the features that we expect from a modern web app and is used by companies of all sizes to power their online presence.
🤖 Prompt for AI Agents
In apps/docs/content/docs/cli/guides/motivation.mdx at line 37, fix the grammatical error by replacing the incorrect phrase "web a web app" with the correct phrase "get a web app" to improve sentence clarity and correctness.
apps/docs/content/docs/typegen/index.mdx (1)
84-87:
⚠️ Potential issueFix structural issue in Files component.
There are duplicate File entries outside the proper Folder structure, which will cause rendering issues.
- - <File name="Customers.ts" type="ts" icon={<IconFileTypeTs />} /> - <File name="Invoices.ts" type="ts" icon={<IconFileTypeTs />} /> - </Folder> + </Folder>📝 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.</Folder>
🤖 Prompt for AI Agents
In apps/docs/content/docs/typegen/index.mdx around lines 84 to 87, there are duplicate File components placed outside the Folder component, causing rendering issues. Remove the duplicate File entries that are not nested inside the Folder component to ensure all File components are properly structured within their respective Folder.
apps/demo/tests/fmdapi-typegen.test.ts (1)
97-99:
⚠️ Potential issueRemove duplicate function call.
The
testTypegenConfig
function is called twice consecutively - once without capturing the return value (line 97) and again capturing it (line 99). This results in unnecessary duplicate type generation.Remove the first call to fix the issue:
- await testTypegenConfig(config); - const { genPath } = await testTypegenConfig(config);📝 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.const { genPath } = await testTypegenConfig(config);
🤖 Prompt for AI Agents
In apps/demo/tests/fmdapi-typegen.test.ts around lines 97 to 99, the function testTypegenConfig is called twice consecutively, once without capturing its return value and once with. Remove the first call on line 97 to avoid duplicate type generation and keep only the call that captures the return value on line 99.
package.json (1)
7-8: 🛠️ Refactor suggestion
clean
script is not cross-platformUsing
rm -rf
will fail on Windows shells. Prefer a cross-platform helper (rimraf
,del-cli
, orpnpm exec shx rm -rf
) so contributors on Windows can runpnpm clean
without WSL/Git-bash.- "clean": "turbo run clean && rm -rf node_modules", + "clean": "turbo run clean && pnpm dlx rimraf node_modules",📝 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."clean": "turbo run clean && pnpm dlx rimraf node_modules", "format": "prettier --write \"**/*.{ts,tsx,md}\"",
🤖 Prompt for AI Agents
In package.json lines 7 to 8, the "clean" script uses "rm -rf" which is not cross-platform and will fail on Windows. Replace "rm -rf node_modules" with a cross-platform command using a helper like "rimraf", "del-cli", or "pnpm exec shx rm -rf" to ensure the script works on all operating systems without requiring WSL or Git-bash.
packages/cli/src/generators/fmdapi.ts (1)
44-63: 🛠️ Refactor suggestion
fs.readJson
cannot parse.jsonc
(comments, trailing commas)
.jsonc
is not valid JSON; any comments will makefs.readJson
throw, causing the silent fallback that wipes the in-file configuration. This risks data loss.Use a JSONC-aware parser (e.g.
strip-json-comments
+JSON.parse
, orjsonc-parser
) instead offs.readJson
.-import fs from "fs-extra"; +import fs from "fs-extra"; +import stripJsonComments from "strip-json-comments"; ... - return (await fs.readJson(configPath)) as FullProofkitTypegenJsonFile; + const raw = await fs.readFile(configPath, "utf8"); + return JSON.parse(stripJsonComments(raw)) as FullProofkitTypegenJsonFile;🤖 Prompt for AI Agents
In packages/cli/src/generators/fmdapi.ts around lines 44 to 63, the current code uses fs.readJson which cannot parse JSONC files containing comments or trailing commas, causing parsing errors and fallback to a default config that may overwrite existing data. Replace fs.readJson with a JSONC-aware parsing approach by reading the file content as text, then stripping comments using a library like strip-json-comments, and finally parsing the cleaned string with JSON.parse to correctly handle JSONC files without losing configuration data.
…nused test call in fmdapi-typegen test, and refactor fmdapi generator to utilize jsonc-parser for reading and writing JSONC config files while preserving comments.
…n and remove duplication
@coderabbitai ignore all files in the apps/docs folder |
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chainI'll help you configure CodeRabbit to ignore the apps/docs folder. Let me fetch the latest configuration documentation to provide you with accurate instructions. @eluce2, to ignore all files in the Option 1: Update your
|
@coderabbitai this seems like it would ignore other packages too. How can I exclude only the demo app? |
Tip For best results, initiate chat on the files or code changes. @eluce2, great question! Let me clarify how CodeRabbit's Path Filters Are SpecificThe pattern To exclude only the demo app:# .coderabbit.yaml
reviews:
auto_review:
enabled: true
base_branches: [".*"]
review_status: false
path_filters:
- "apps/demo/**" # Only ignores files in apps/demo/ To exclude both apps (if that's what you want):path_filters:
- "apps/demo/**" # Ignores demo app
- "apps/docs/**" # Ignores docs app How these patterns work:
Other examples for precision:path_filters:
- "apps/demo/**" # Only demo app
- "packages/cli/test/**" # Only tests in CLI package
- "*.md" # All markdown files anywhere
- "package-lock.json" # Specific file types Each pattern is independent and precise - they won't accidentally exclude other packages. So Which specific app(s) would you like to exclude from reviews? |
…and remove unused fmschema.config files
…ing for consistency
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 13
🧹 Nitpick comments (3)
apps/docs/content/docs/cli/guides/getting-started.mdx (2)
16-16
: Add terminal punctuation.Consistently end sentences with a period.
-If you're brand new to web development, you'll want to make sure these basics are installed on your system +If you're brand new to web development, you'll want to make sure these basics are installed on your system.🧰 Tools
🪛 LanguageTool
[misspelling] ~16-~16: Did you mean “your”?
Context: .../cli). ## Prerequisites If you're brand new to web development, you'll wa...(YOUR_NN)
21-27
: Consistent punctuation in list items.Some bullets lack periods. For clarity, end each list item with a period.
-- [Visual Studio Code](https://code.visualstudio.com/download) (or similar IDE) +- [Visual Studio Code](https://code.visualstudio.com/download) (or similar IDE). -- - git (download [GitHub Desktop](https://github.com/apps/desktop) if you've never used git before) +- - git (download [GitHub Desktop](https://github.com/apps/desktop) if you've never used git before). -- - _(suggested)_ [pnpm](https://pnpm.io/installation) +- - _(suggested)_ [pnpm](https://pnpm.io/installation).packages/cli/src/generators/fmdapi.ts (1)
371-399
: Incomplete function implementation needs attention.The
getFieldNamesForSchema
function is mostly commented out and returns an empty array. This appears to be intentional due to ts-morph dependency removal, but it leaves the function in a non-functional state.Would you like me to help implement an alternative approach that doesn't require ts-morph, such as using regex patterns or a lightweight TypeScript AST parser to extract field names from the generated schema files?
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (14)
.coderabbit.yaml
(1 hunks).cursor/rules/always.mdc
(1 hunks)apps/demo/package.json
(1 hunks)apps/demo/tests/__snapshots__/with-zod.snap.ts
(1 hunks)apps/demo/tests/__snapshots__/without-zod.snap.ts
(1 hunks)apps/demo/tests/fmdapi-typegen.test.ts
(1 hunks)apps/docs/content/docs/cli/guides/getting-started.mdx
(3 hunks)apps/docs/content/docs/cli/guides/motivation.mdx
(1 hunks)apps/docs/content/docs/cli/webviewer/getting-started.mdx
(6 hunks)apps/docs/content/docs/typegen/options.mdx
(1 hunks)apps/docs/package.json
(1 hunks)package.json
(1 hunks)packages/cli/package.json
(4 hunks)packages/cli/src/generators/fmdapi.ts
(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- .cursor/rules/always.mdc
🚧 Files skipped from review as they are similar to previous changes (8)
- .coderabbit.yaml
- apps/docs/content/docs/typegen/options.mdx
- apps/docs/package.json
- apps/docs/content/docs/cli/webviewer/getting-started.mdx
- apps/demo/tests/snapshots/without-zod.snap.ts
- apps/demo/tests/snapshots/with-zod.snap.ts
- apps/demo/tests/fmdapi-typegen.test.ts
- apps/demo/package.json
🧰 Additional context used
🧬 Code Graph Analysis (1)
packages/cli/src/generators/fmdapi.ts (4)
packages/typegen/src/types.ts (2)
TypegenConfig
(89-89)typegenConfigSingle
(52-83)packages/cli/src/state.ts (1)
state
(21-21)packages/cli/src/utils/parseSettings.ts (2)
getSettings
(59-70)envNamesSchema
(27-31)packages/create-proofkit/src/index.js (1)
pkgManager
(9-9)
🪛 Biome (1.9.4)
packages/cli/src/generators/fmdapi.ts
[error] 293-293: Change to an optional chain.
Unsafe fix: Change to an optional chain.
(lint/complexity/useOptionalChain)
[error] 497-497: Change to an optional chain.
Unsafe fix: Change to an optional chain.
(lint/complexity/useOptionalChain)
🪛 LanguageTool
apps/docs/content/docs/cli/guides/getting-started.mdx
[misspelling] ~16-~16: Did you mean “your”?
Context: .../cli). ## Prerequisites If you're brand new to web development, you'll wa...
(YOUR_NN)
[grammar] ~19-~19: One of these verbs is redundant, or a word is missing.
Context: ...ps://nodejs.org/en) - To check if you have already have Node installed, run node -v
in your t...
(HAVE_RB_HAVE)
[uncategorized] ~20-~20: The official spelling of this programming framework is “Node.js”.
Context: ... - If not, download and install here: nodejs.org - [Visual S...
(NODE_JS)
apps/docs/content/docs/cli/guides/motivation.mdx
[uncategorized] ~37-~37: Possible missing comma found.
Context: ...atures that we expect from a modern web app and is used by companies of all sizes t...
(AI_HYDRA_LEO_MISSING_COMMA)
[style] ~41-~41: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...ult components and styles to build apps very quickly, but with the option of adding custom s...
(EN_WEAK_ADJECTIVE)
[uncategorized] ~43-~43: The preposition ‘on’ seems more likely in this position.
Context: ...as allowed our team to work much faster for the kinds of web apps that we build for...
(AI_HYDRA_LEO_REPLACE_FOR_ON)
[uncategorized] ~55-~55: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... A wrapper around Next.js actions that include middleware (for easily checking that a ...
(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[grammar] ~61-~61: The word “setup” is a noun. The verb is spelled with a space.
Context: ...cation service that is extremly easy to setup and use. It's a great choice to secure ...
(NOUN_VERB_CONFUSION)
[grammar] ~61-~61: A hyphen is missing in the adjective “built-in”.
Context: ...ost customer-facing web apps, including built in features such as Social logins, magin l...
(BUILT_IN_HYPHEN)
[misspelling] ~61-~61: This word is normally spelled as one.
Context: ...ures such as Social logins, magin link, multi-factor authentication, and more. <Callout typ...
(EN_COMPOUNDS_MULTI_FACTOR)
🔇 Additional comments (11)
apps/docs/content/docs/cli/guides/getting-started.mdx (8)
3-3
: Approve description update.The new
description
frontmatter is clear and concise.
10-12
: Visual learner callout looks good.The
<Callout>
for video resources is clear and well-styled.
14-14
: Prerequisites header is correct.Section heading aligns with content.
50-52
: PNPM scaffolding snippet is clear.Tab-enabled code block for
pnpm
is well formatted.
54-56
: NPM scaffolding snippet is clear.Tab-enabled code block for
npm
is well formatted.
81-84
: Tip callout is well styled.The
<Callout>
use is appropriate and content is clear.
91-96
: First step content is valid.The
<Step>
and fenced code block are properly structured.
102-111
: Second step content is valid.The
<Step>
content, including the commented<CliCommand>
, is correctly formatted.packages/cli/package.json (1)
1-122
: Package restructuring looks good!The renaming from
@proofgeist/kit
to@proofkit/cli
and version bump to1.0.0-beta.0
aligns well with the broader restructuring effort. The dependency updates and workspace references are properly configured.package.json (1)
1-28
: Root package.json simplification is appropriate for monorepo structure.The transformation to a minimal changeset-focused configuration is consistent with the Turborepo design pattern. The updated
pnpm
version and relaxed Node.js requirement appropriately support a wider range of development environments.packages/cli/src/generators/fmdapi.ts (1)
5-6
:✅ Verification successful
Verify the import path exists.
The import from
@proofkit/typegen/config
assumes this path exports the required types. Ensure this module and export path exist in the@proofkit/typegen
package.
🏁 Script executed:
#!/bin/bash # Check if the @proofkit/typegen package exports the required types from /config path fd -t f "package.json" -x grep -l "@proofkit/typegen" {} \; | while read -r file; do dir=$(dirname "$file") # Look for config exports in the package if [ -f "$dir/src/config.ts" ] || [ -f "$dir/config.ts" ] || [ -f "$dir/src/types.ts" ] || [ -f "$dir/types.ts" ]; then echo "Found potential config/types file in: $dir" # Check for exports rg -A 3 "export.*(?:type|interface).*(?:TypegenConfig|typegenConfigSingle)" "$dir" || true fi done # Also check the package.json exports field fd -g "package.json" -x jq -r 'select(.name == "@proofkit/typegen") | .exports' {} \; 2>/dev/null || trueLength of output: 1866
Import path exists and exports verified
The
@proofkit/typegen
package’s package.json defines an export for"./config"
pointing todist/esm/types.d.ts
, andTypegenConfig
is exported frompackages/typegen/src/types.ts
. The import from@proofkit/typegen/config
is valid—no changes needed.
</Steps> | ||
|
||
Your ProofKit app is now up and running! Now you'll want to learn how to [add more pieces](/guides/adding-components) to your project, or check out the [motivations](/guides/motivation) page to learn more about the tech stack used here so you can learn more about each underlying framework that you'll come across. | ||
u |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove stray character.
There’s an unintended “u” at the end of the document.
-u
📝 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.
u | |
// (remove line 115 – the solitary “u”) |
🤖 Prompt for AI Agents
In apps/docs/content/docs/cli/guides/getting-started.mdx at line 115, remove the
stray character "u" that appears at the end of the document to clean up the
content.
…t version to 15.3.3, typos
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (3)
packages/cli/src/generators/fmdapi.ts (1)
252-257
: Duplicate comment: Use consistent data source path matching logic.The same path matching logic pattern from
addLayout
is repeated here. Consider extracting this into a shared utility function to reduce duplication and ensure consistency.function findDataSourceByName( configArray: ImportedDataSourceConfig[], dataSourceName: string ): ImportedDataSourceConfig | undefined { return configArray.find((ds) => { if (!ds.path) return false; const normalizedPath = ds.path.replace(/\\/g, '/').replace(/\/$/, ''); const expectedPath = `./src/config/schemas/${dataSourceName}`; return normalizedPath === expectedPath || normalizedPath.endsWith(`/${dataSourceName}`); }); }Also applies to: 288-293
apps/docs/content/docs/cli/guides/getting-started.mdx (2)
114-114
: Remove stray character
Delete the trailing “u” at the end of the document.- u
17-19
:⚠️ Potential issueNormalize Node.js spelling & remove duplicate “have”
Update the Node bullet to use “Node.js” and eliminate the repeated verb.- - [Node](https://nodejs.org/en) - - To check if you have already have Node.js installed, run `node -v` in your terminal. - - If not, download and install here: [nodejs.org](https://nodejs.org/en) + - [Node.js](https://nodejs.org/en) + - To check if you already have Node.js installed, run `node -v` in your terminal. + - If not, download and install it from [nodejs.org](https://nodejs.org/en).🧰 Tools
🪛 LanguageTool
[grammar] ~18-~18: One of these verbs is redundant, or a word is missing.
Context: ...ps://nodejs.org/en) - To check if you have already have Node.js installed, runnode -v
in you...(HAVE_RB_HAVE)
[uncategorized] ~19-~19: The official spelling of this programming framework is “Node.js”.
Context: ... - If not, download and install here: nodejs.org - [Visual S...(NODE_JS)
🧹 Nitpick comments (8)
apps/docs/content/docs/cli/guides/motivation.mdx (3)
37-37
: Add missing comma for compound predicate.-A well-supported open-source React framework for full-stack web applications. This means it runs code on your frontend (in the client's web browser) and backend (on the web server, or API routes). It makes it easy to get a web app up and running with all the features that we expect from a modern web app and is used by companies of all sizes to power their online presence. +A well-supported open-source React framework for full-stack web applications. This means it runs code on your frontend (in the client's web browser) and backend (on the web server, or API routes). It makes it easy to get a web app up and running with all the features that we expect from a modern web app, and is used by companies of all sizes to power their online presence.🧰 Tools
🪛 LanguageTool
[uncategorized] ~37-~37: Possible missing comma found.
Context: ...atures that we expect from a modern web app and is used by companies of all sizes t...(AI_HYDRA_LEO_MISSING_COMMA)
55-55
: Fix subject-verb agreement.The singular subject "wrapper" should agree with "includes" rather than "include."
-A wrapper around Next.js actions that include middleware (for easily checking that a user is signed in) and input validation with zod schemas. +A wrapper around Next.js actions that includes middleware (for easily checking that a user is signed in) and input validation with zod schemas.🧰 Tools
🪛 LanguageTool
[uncategorized] ~55-~55: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... A wrapper around Next.js actions that include middleware (for easily checking that a ...(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
61-61
: Standardize compound word spelling.-A hosted authentication service that is extremely easy to set up and use. It's a great choice to secure most customer-facing web apps, including built-in features such as Social logins, magic link, multi-factor authentication, and more. +A hosted authentication service that is extremely easy to set up and use. It's a great choice to secure most customer-facing web apps, including built-in features such as Social logins, magic link, multifactor authentication, and more.🧰 Tools
🪛 LanguageTool
[style] ~61-~61: As an alternative to the over-used intensifier ‘extremely’, consider replacing this phrase.
Context: ...A hosted authentication service that is extremely easy to set up and use. It's a great choice ...(EN_WEAK_ADJECTIVE)
[misspelling] ~61-~61: This word is normally spelled as one.
Context: ...ures such as Social logins, magic link, multi-factor authentication, and more. <Callout typ...(EN_COMPOUNDS_MULTI_FACTOR)
packages/cli/src/generators/fmdapi.ts (3)
131-136
: Simplify and strengthen data source path matching logic.The current path matching logic uses multiple
endsWith
conditions that could miss edge cases or match unintended paths.- let targetDataSource: ImportedDataSourceConfig | undefined = configArray.find( - (ds) => - ds.path?.endsWith(dataSourceName) || - ds.path?.endsWith(dataSourceName + "/") || - ds.path === dataSourceName - ); + let targetDataSource: ImportedDataSourceConfig | undefined = configArray.find( + (ds) => { + if (!ds.path) return false; + const normalizedPath = ds.path.replace(/\\/g, '/').replace(/\/$/, ''); + const expectedPath = `./src/config/schemas/${dataSourceName}`; + return normalizedPath === expectedPath || normalizedPath.endsWith(`/${dataSourceName}`); + } + );
231-266
: Consider making file reading functions consistent (async vs sync).
getClientSuffix
andgetExistingSchemas
use synchronous file operations while other functions use async. This inconsistency could impact performance and error handling patterns.Consider making these async for consistency:
-export function getClientSuffix({ +export async function getClientSuffix({-export function getExistingSchemas({ +export async function getExistingSchemas({And update the file reading calls accordingly.
Also applies to: 268-309
373-436
: Address the incomplete getFieldNamesForSchema function.This function is currently non-functional and returns an empty array. If ts-morph removal is complete, consider either implementing an alternative approach or removing this function entirely.
Do you want me to help implement an alternative approach for parsing TypeScript schema files without ts-morph, or should this function be removed entirely?
apps/docs/content/docs/cli/guides/getting-started.mdx (2)
23-25
: Refine pnpm guidance phrasing
Make the recommendation clearer and consistent with other bullets.- - _(suggested)_ [pnpm](https://pnpm.io/installation) - - If you skip this step, just follow the guides for `npm` instead, which comes with Node - - To check if you already have pnpm installed, run `pnpm -v` in your terminal. It will return the version number if already installed. + - _(optional)_ [pnpm](https://pnpm.io/installation) + - If you opt out, follow the npm instructions instead (npm is included with Node.js). + - To verify, run `pnpm -v` in your terminal; it will return the version number if installed.
101-110
: Remove commented-out<CliCommand>
component
The legacy component is no longer used—clean up the JSX comment.- {/* <CliCommand command="dev" /> */} + {/* removed unused <CliCommand> wrapper; using direct instructions */}
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (7)
apps/demo/package.json
(1 hunks)apps/docs/content/docs/cli/guides/getting-started.mdx
(3 hunks)apps/docs/content/docs/cli/guides/motivation.mdx
(1 hunks)apps/docs/package.json
(1 hunks)package.json
(1 hunks)packages/cli/package.json
(4 hunks)packages/cli/src/generators/fmdapi.ts
(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (4)
- apps/docs/package.json
- apps/demo/package.json
- packages/cli/package.json
- package.json
🧰 Additional context used
🧬 Code Graph Analysis (1)
packages/cli/src/generators/fmdapi.ts (3)
packages/typegen/src/types.ts (2)
TypegenConfig
(89-89)typegenConfigSingle
(52-83)packages/cli/src/state.ts (1)
state
(21-21)packages/cli/src/utils/parseSettings.ts (2)
getSettings
(59-70)envNamesSchema
(27-31)
🪛 LanguageTool
apps/docs/content/docs/cli/guides/getting-started.mdx
[misspelling] ~15-~15: Did you mean “your”?
Context: .../cli). ## Prerequisites If you're brand new to web development, you'll wa...
(YOUR_NN)
[grammar] ~18-~18: One of these verbs is redundant, or a word is missing.
Context: ...ps://nodejs.org/en) - To check if you have already have Node.js installed, run node -v
in you...
(HAVE_RB_HAVE)
[uncategorized] ~19-~19: The official spelling of this programming framework is “Node.js”.
Context: ... - If not, download and install here: nodejs.org - [Visual S...
(NODE_JS)
apps/docs/content/docs/cli/guides/motivation.mdx
[uncategorized] ~37-~37: Possible missing comma found.
Context: ...atures that we expect from a modern web app and is used by companies of all sizes t...
(AI_HYDRA_LEO_MISSING_COMMA)
[style] ~41-~41: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...ult components and styles to build apps very quickly, but with the option of adding custom s...
(EN_WEAK_ADJECTIVE)
[uncategorized] ~43-~43: The preposition ‘on’ seems more likely in this position.
Context: ...as allowed our team to work much faster for the kinds of web apps that we build for...
(AI_HYDRA_LEO_REPLACE_FOR_ON)
[uncategorized] ~55-~55: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... A wrapper around Next.js actions that include middleware (for easily checking that a ...
(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)
[style] ~61-~61: As an alternative to the over-used intensifier ‘extremely’, consider replacing this phrase.
Context: ...A hosted authentication service that is extremely easy to set up and use. It's a great choice ...
(EN_WEAK_ADJECTIVE)
[misspelling] ~61-~61: This word is normally spelled as one.
Context: ...ures such as Social logins, magic link, multi-factor authentication, and more. <Callout typ...
(EN_COMPOUNDS_MULTI_FACTOR)
🔇 Additional comments (10)
apps/docs/content/docs/cli/guides/getting-started.mdx (10)
3-3
: Frontmatter description added
Good to see the newdescription
field; it complements the title and improves SEO metadata.
6-7
: Imports ofCallout
,Step
, andSteps
are correct
These components are used below for consistent UI; no unused imports detected.
9-10
: Initial visual‐learner callout looks good
This provides a clear pointer to video resources.
13-13
: “Prerequisites” heading added
Introducing this section improves content structure.
15-15
: Introductory sentence is clear
The phrasing is concise and sets expectations for the section.🧰 Tools
🪛 LanguageTool
[misspelling] ~15-~15: Did you mean “your”?
Context: .../cli). ## Prerequisites If you're brand new to web development, you'll wa...(YOUR_NN)
49-50
: pnpm scaffolding code block is correct
Thebash tab="pnpm"
fence will render the PNPM install tab as expected.
53-54
: npm scaffolding code block is correct
The correspondingnpm
tab is properly configured.
67-74
: Data API key troubleshooting callout
Good use of aCallout
for common setup errors; the spelling of “privilege” is correct and consistent.
80-83
: Tip callout is well-formatted
This provides a useful UX hint for API-prefixed layouts.
90-99
: First<Step>
block is clear
The steps and embedded code fence (bash
) are correctly indented and descriptive.
Summary by CodeRabbit
New Features
Bug Fixes
Refactor
@proofgeist
to@proofkit
and updated imports accordingly.Chores
.gitignore
and.prettierignore
files..npmrc
setting for automatic peer dependency installation.Documentation
Callout
,Tabs
, and updated import paths.Tests
Style