Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/hot-toys-poke.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@clerk/nextjs': patch
'@clerk/vue': patch
'@clerk/nuxt': patch
---

Fix export of `RedirectToTasks` control component
1 change: 1 addition & 0 deletions packages/nextjs/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ export {
RedirectToOrganizationProfile,
RedirectToSignIn,
RedirectToSignUp,
RedirectToTasks,
RedirectToUserProfile,
} from './client-boundary/controlComponents';
Comment on lines +15 to 17
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Verify the source module actually exports RedirectToTasks

Ensure ./client-boundary/controlComponents provides a named export RedirectToTasks (and no duplicate re-exports elsewhere) to avoid runtime/import errors.

Run this script to confirm:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "1) Verify source module exports RedirectToTasks (named export or declaration):"
rg -n -A 2 -B 2 $'\bexport\\s+\\{[^}]*\\bRedirectToTasks\\b' packages/nextjs/src || true
rg -n -A 2 -B 2 $'\bexport\\s+(const|function|class)\\s+RedirectToTasks\\b' packages/nextjs/src || true

echo -e "\n2) Confirm index.ts re-export path is present:"
rg -n -A 1 -B 1 "from './client-boundary/controlComponents'" packages/nextjs/src/index.ts

echo -e "\n3) Check for props type export (optional but recommended):"
rg -n -A 2 -B 2 $'\bexport\\s+type\\s+.*RedirectToTasks.*Props\\b' packages/nextjs/src || true

echo -e "\n4) Ensure no duplicate re-exports elsewhere:"
rg -n -A 1 -B 1 $'\bexport\\s+\\{[^}]*\\bRedirectToTasks\\b' packages -g '!packages/nextjs/src/index.ts' || true

Length of output: 1095


Missing RedirectToTasks Export in controlComponents

The re-export in packages/nextjs/src/index.ts references a RedirectToTasks symbol that isn’t defined or exported in ./client-boundary/controlComponents. This will cause a runtime import error.

• Location of broken re-export:

  • File: packages/nextjs/src/index.ts
  • Lines: 15–17 (includes RedirectToTasks, … } from './client-boundary/controlComponents';)

Action required:

  • Add a corresponding export (function, class, or const) for RedirectToTasks in packages/nextjs/src/client-boundary/controlComponents, or
  • Remove or correct the re-export in the index file to match the actual exports.
🤖 Prompt for AI Agents
In packages/nextjs/src/index.ts around lines 15–17 the named export
RedirectToTasks is re-exported from './client-boundary/controlComponents' but
that symbol is not defined there; either add a matching export named
RedirectToTasks (function/class/const) into
packages/nextjs/src/client-boundary/controlComponents and export it, or
remove/rename the RedirectToTasks entry in the index re-export so it matches the
actual exported names from controlComponents; ensure the exported identifier
spelling and casing match exactly and update any imports/tests that expect
RedirectToTasks.


Expand Down
1 change: 1 addition & 0 deletions packages/nuxt/src/runtime/components/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ export {
RedirectToSignIn,
RedirectToSignUp,
RedirectToUserProfile,
RedirectToTasks,
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

LGTM: Nuxt re-export of RedirectToTasks from @clerk/vue is consistent.

This mirrors the Vue export and keeps the tree-shakable named export pattern. Please confirm dependency alignment so Nuxt consumes a @clerk/vue version that contains RedirectToTasks.

  • Verify @clerk/nuxt depends (dep/peer) on a version range of @clerk/vue that includes this symbol (changeset should bump as needed).
  • Optional: add a smoke test importing RedirectToTasks from @clerk/nuxt to ensure the symbol is publicly exposed post-build.

Run this script to check dependency alignment and presence across packages:

If helpful, I can also prepare a tiny import test to assert RedirectToTasks is accessible from @clerk/nuxt.


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "1) Confirm nuxt re-exports RedirectToTasks only once"
rg -n 'RedirectToTasks' packages/nuxt/src/runtime/components/index.ts

echo "2) Check that @clerk/nuxt depends on @clerk/vue at an appropriate version"
NUXT_PKG=$(fd -a '^package\.json$' packages/nuxt | head -n1)
if [ -n "$NUXT_PKG" ]; then
  echo "Found package file: $NUXT_PKG"
  if command -v jq >/dev/null 2>&1; then
    jq -r '
      {
        dependencies: (.dependencies["@clerk/vue"] // null),
        peerDependencies: (.peerDependencies["@clerk/vue"] // null),
        devDependencies: (.devDependencies["@clerk/vue"] // null)
      }' "$NUXT_PKG"
  else
    rg -n '"@clerk/vue":' "$NUXT_PKG" || true
  fi
else
  echo "Could not find packages/nuxt package.json" >&2
fi

echo "3) Ensure Vue index includes RedirectToTasks"
rg -n 'RedirectToTasks' packages/vue/src/components/index.ts || true

echo "4) Locate changeset mentioning RedirectToTasks"
fd -a '\.changeset/.*\.md' | xargs -r rg -n 'RedirectToTasks|@clerk/vue|@clerk/nuxt'

Length of output: 1441


Confirm dependency alignment and add missing changeset

All checks pass on the re-export, but there’s no recorded changeset for this new export.

• packages/nuxt/src/runtime/components/index.ts
RedirectToTasks is re-exported exactly once.
• packages/nuxt/package.json
– Depends on @clerk/vue via workspace:^, so it will always pull in the local Vue package.
• packages/vue/src/components/index.ts
– Exports RedirectToTasks in its public API.
• .changeset/*.md
– No changeset mentions this new export or bumps @clerk/nuxt.

Next steps:

  1. Add a changeset to bump @clerk/nuxt so consumers receive the new RedirectToTasks export.
  2. (Optional) Add a small smoke test that imports RedirectToTasks from @clerk/nuxt post-build to verify it’s publicly exposed.
🤖 Prompt for AI Agents
In packages/nuxt/src/runtime/components/index.ts around line 22 the new export
RedirectToTasks was added but no changeset was created to bump @clerk/nuxt; add
a new .changeset markdown file that increments the @clerk/nuxt package version
(patch or minor as appropriate) and describes the new public export so consumers
receive the new symbol, and optionally add a minimal smoke test in the nuxt
package (post-build) that imports RedirectToTasks from @clerk/nuxt to verify the
re-export is publicly exposed; no code changes to the export are required, only
the changeset (and optional test) and commit.

AuthenticateWithRedirectCallback,
RedirectToCreateOrganization,
RedirectToOrganizationProfile,
Expand Down
1 change: 1 addition & 0 deletions packages/vue/src/components/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ export {
RedirectToSignIn,
RedirectToSignUp,
RedirectToUserProfile,
RedirectToTasks,
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

LGTM: Added RedirectToTasks export is correct and tree-shake friendly.

Placement is consistent with other control components and maintains the existing export style. Please verify the source symbol exists and that consumers get proper typings.

  • Ensure ./controlComponents actually exports RedirectToTasks and that its JSDoc (public API doc) is present at the declaration site.
  • Consider adding a lightweight smoke test to assert RedirectToTasks is importable from @clerk/vue.

Run this script to verify the source export and look for potential cycles:

If you want, I can draft a minimal smoke test that imports RedirectToTasks from @clerk/vue to prevent regressions.


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "1) Ensure Vue controlComponents exports RedirectToTasks"
fd -a -t f 'controlComponents(\.ts|/index\.ts)?$' packages/vue 2>/dev/null | tee /tmp/cc_files.txt
if [ ! -s /tmp/cc_files.txt ]; then
  echo "Could not find controlComponents file(s) in packages/vue" >&2
fi
rg -n 'export\s+\{[^}]*RedirectToTasks|export\s+(const|function|class)\s+RedirectToTasks' $(cat /tmp/cc_files.txt) || true

echo "2) Ensure Vue components index re-exports RedirectToTasks"
rg -n 'RedirectToTasks' packages/vue/src/components/index.ts || true

echo "3) Quick cycle smell: controlComponents importing components index"
rg -n "from ['\"]\./components['\"]" packages/vue/src || true

Length of output: 323


I’ve updated the verification script to avoid using tee (which isn’t available in this environment) and directly capture & inspect the files:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "1) Locate Vue controlComponents file(s)"
files=$(fd -t f -e ts -- 'controlComponents(\.ts|/index\.ts)?$' packages/vue 2>/dev/null)
if [[ -z "$files" ]]; then
  echo "✖ Could not find any controlComponents file(s) under packages/vue" >&2
else
  echo "Found:"
  echo "$files"
  echo
  echo "Searching for RedirectToTasks export in those files:"
  rg -n 'export\s+\{[^}]*RedirectToTasks|export\s+(const|function|class)\s+RedirectToTasks' $files || true
fi

echo
echo "2) Verify re-export in components index.ts"
rg -n 'RedirectToTasks' packages/vue/src/components/index.ts || true

echo
echo "3) Quick cycle check: controlComponents → components index"
rg -n "from ['\"]\./components['\"]" packages/vue/src || true

Length of output: 1184


I’ll check whether there’s a JSDoc block immediately above the RedirectToTasks declaration:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Inspecting context around RedirectToTasks export for JSDoc:"
rg -n -C3 'export\s+const\s+RedirectToTasks' packages/vue/src/components/controlComponents.ts || true

Length of output: 414


Add public JSDoc for RedirectToTasks and consider a smoke test

  • ✅ Verified RedirectToTasks is exported in
    packages/vue/src/components/controlComponents.ts (line 63)
    and re-exported in packages/vue/src/components/index.ts (line 21).
  • ✅ No import cycles detected between controlComponents and components.
  • ⚠️ Missing JSDoc: please add a public API doc comment immediately above the
    export const RedirectToTasks = … declaration in
    packages/vue/src/components/controlComponents.ts.
  • 🔍 Consider adding a lightweight smoke test that imports
    RedirectToTasks from @clerk/vue to catch any regressions.
🤖 Prompt for AI Agents
In packages/vue/src/components/controlComponents.ts around line 63, the exported
RedirectToTasks constant is missing a public JSDoc comment; add a short /** ...
*/ block immediately above the export that describes what RedirectToTasks does,
marks it as public (e.g., @public), and documents any props/params or usage
note; then add a lightweight smoke test (e.g., in the library's test harness)
that simply imports { RedirectToTasks } from '@clerk/vue' to ensure the
re-export in packages/vue/src/components/index.ts stays valid.

AuthenticateWithRedirectCallback,
RedirectToCreateOrganization,
RedirectToOrganizationProfile,
Expand Down
Loading