-
-
Notifications
You must be signed in to change notification settings - Fork 365
feat(nextjs-mf): RSC Support #3736
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
Open
ScriptedAlchemy
wants to merge
137
commits into
main
Choose a base branch
from
share-filter
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
137 commits
Select commit
Hold shift + click to select a range
2e6ace2
chore: add test for filter
ScriptedAlchemy 1d58c0c
feat(enhanced): add filter option for shared modules
ScriptedAlchemy 4b86d21
feat(enhanced): add filter test
ScriptedAlchemy da1e026
chore: restore tests
ScriptedAlchemy c05e7a2
chore: restore tests
ScriptedAlchemy 5d78f3c
chore: restore tests
ScriptedAlchemy c46c487
fix(enhanced): update share plugin schema
ScriptedAlchemy 8a95e75
feat(enhanced): exclude shares by semver (#3744)
ScriptedAlchemy 05e7742
chore: remove log in test
ScriptedAlchemy 1483170
docs: add sharing documentation
ScriptedAlchemy bb72311
docs: add tests back
ScriptedAlchemy 999f868
test: add consume share plugin compiler tests
ScriptedAlchemy 60a019b
test: add consume share plugin compiler tests
ScriptedAlchemy 44af541
test: add consume share plugin compiler tests
ScriptedAlchemy 4db8201
test: add comprehensive tests for ConsumeSharedPlugin with layer hand…
ScriptedAlchemy c49095f
chore: locks
ScriptedAlchemy 696bfe7
fix: update tests for provide shared
ScriptedAlchemy 7ff42d4
chore: lint
ScriptedAlchemy cce9d94
feat: add singleton validation warnings for include/exclude
ScriptedAlchemy 3b364a2
chore: remove implicit dep
ScriptedAlchemy 1de2ad0
chore: changeset
ScriptedAlchemy 76b85eb
chore: nx mcp
ScriptedAlchemy 804cfb5
chore(3001-shop): sync project.json serve parallel and e2e logic
ScriptedAlchemy a47bfc2
chore: locks
ScriptedAlchemy 4d933c0
chore: locks
ScriptedAlchemy b66d3aa
chore: add missing next deps
ScriptedAlchemy a6d71e1
chore: update cmd syntax exit
ScriptedAlchemy 8835584
chore: update cmd syntax exit
ScriptedAlchemy c0b01e5
chore: update cmd syntax exit
ScriptedAlchemy 404426b
chore: update cmd syntax exit
ScriptedAlchemy c932295
chore: update cmd syntax exit
ScriptedAlchemy 17aef77
chore: update cmd syntax exit
ScriptedAlchemy 258935a
chore: refactor E2E testing workflow to separate tests for each app a…
ScriptedAlchemy 7718566
test: update ProvideSharedPlugin and SharePlugin tests to verify node…
ScriptedAlchemy ba50f5c
chore: update Nx version to 21.0.3 and change package manager to pnpm…
ScriptedAlchemy d193f05
feat: integrate Module Federation core sharing plugin updates
ScriptedAlchemy bdaeed5
feat: complete incremental Module Federation ProvideSharedPlugin updates
ScriptedAlchemy 8bb126b
feat(enhanced): add nodeModulesReconstructedLookup support
ScriptedAlchemy ccc0c62
feat(enhanced): remove complex singleton warnings from factorize hook
ScriptedAlchemy 62a9c70
docs: refresh mermaid diagrams and remove sections
ScriptedAlchemy 083ed5d
docs: remove Advanced Patterns & Use Cases section
ScriptedAlchemy a5fb4f9
fix: resolve Mermaid sequence diagram CSP participant activation/deac…
ScriptedAlchemy 603163e
chore: no build cache nx in ci
ScriptedAlchemy 1834da1
chore: ci
ScriptedAlchemy 7ddb260
feat(enhanced): update hook system for container dependency management
ScriptedAlchemy 1d3136f
feat(nextjs-mf): complete migration from app-router-share-filter to s…
ScriptedAlchemy 47cc279
fix(enhanced): add CI stability improvements to jest configurations
ScriptedAlchemy 4eba234
fix(enhanced): resolve jest maxWorkers validation error
ScriptedAlchemy 9459edc
fix(enhanced): restore jest configurations to original state
ScriptedAlchemy 557161f
feat(nextjs-mf): rewrite outdated tests with proper mocks
ScriptedAlchemy 99ba2fb
fix(nextjs-mf): simplify tests to eliminate interference issues
ScriptedAlchemy cdc5cbc
feat: update e2e scripts to test all three Next.js apps (home, shop, …
ScriptedAlchemy 76e2a5a
feat: add individual e2e test scripts for Next.js apps
ScriptedAlchemy 4040ebc
feat: incremental merge of share-filter branch changes (#3879)
ScriptedAlchemy 206803c
chore: remove rslib
ScriptedAlchemy 6f4e94c
chore: remove rslib
ScriptedAlchemy 23c0946
feat(nextjs-mf): increment 1 - migrate enhanced test file from app-ro…
ScriptedAlchemy afe145c
fix(nextjs-mf): fix failing internal tests by mocking Next.js version
ScriptedAlchemy a7d1967
chore: restore rslib module app
ScriptedAlchemy 28855ae
feat: sync all Next.js versions to 15.3.3 and enable remote components
ScriptedAlchemy 979627a
fix: resolve React 19 TypeScript compatibility in chrome-devtools
ScriptedAlchemy 24eb6fa
fix(managers): update snapshot for React 19 compatibility
ScriptedAlchemy 342a4a5
fix: resolve React version conflicts in Next.js apps
ScriptedAlchemy 8a295a6
fix: add safety checks for webpack startup functions
ScriptedAlchemy 4d56e65
chore: lock file
ScriptedAlchemy 7240626
fix: update SharedManager snapshot for React 19.1.0
ScriptedAlchemy 1f4f4ed
fix(data-prefetch): react 19 compatibility fixes
ScriptedAlchemy 22769e6
fix(data-prefetch): update pnpm lockfile after react 19 upgrade
ScriptedAlchemy b8dc9aa
fix(bridge-react): react 19 compatibility for tests
ScriptedAlchemy 95a8971
fix(bridge-react): update tests to handle React 19 async rendering
ScriptedAlchemy 5e0d942
feat: merge increment A - CI/CD and development infrastructure
ScriptedAlchemy 9663c04
chore: update pnpm lockfile after increment A package.json changes
ScriptedAlchemy f746503
feat: merge increment B - documentation and changesets
ScriptedAlchemy 370a51d
feat: merge increment C - core package dependencies
ScriptedAlchemy 365c417
feat: merge increment D - enhanced library core changes
ScriptedAlchemy 2ed32a5
fix: resolve React 19 TypeScript compatibility in modernjs package
ScriptedAlchemy a728a83
fix(nextjs-mf): resolve test failure by mocking getNextVersion for Ne…
ScriptedAlchemy f7bb479
feat: merge increment E - bridge and data prefetch updates
ScriptedAlchemy 77ce6e9
fix: update React dependencies to v19.0.0 across packages
ScriptedAlchemy b68f28d
fix: update React dependencies to v19.0.0 across packages
ScriptedAlchemy a9a56f1
fix: use pnpm overrides for React 19 instead of individual package edits
ScriptedAlchemy 0e86813
fix: update packages to React 19 individually instead of global overr…
ScriptedAlchemy 882c6b3
fix: resolve React 19 compatibility issues in bridge-react
ScriptedAlchemy 99bddbb
fix: remove accidental __mocks__ files causing CI format failure
ScriptedAlchemy 308e215
fix(bridge-react): resolve React 19 testing warnings and race conditions
ScriptedAlchemy b59c12a
feat(next-app-router-4000): merge enhanced layer support for Next.js …
ScriptedAlchemy 37a6856
feat(next-app-router-4001): merge enhanced layer support for Next.js …
ScriptedAlchemy 36c3695
feat(runtime-core,node): merge enhanced layer support for runtime and…
ScriptedAlchemy f908262
feat: complete enhanced layer support integration and add .node file …
ScriptedAlchemy 60881ad
fix: restore missing files from app-router-share-filter and remove te…
ScriptedAlchemy cdf7687
fix: clean up remaining file differences and update dependencies
ScriptedAlchemy 865234a
fix(3001-shop,3002-checkout): restore workspace dependencies
ScriptedAlchemy 2b86e37
fix(nextjs-mf): correct path to next-flight-loader
ScriptedAlchemy ee57400
chore: lock file
ScriptedAlchemy 1cf289b
chore: fix sh
ScriptedAlchemy 255ccef
fix(3000-home,3002-checkout): restore e2e configurations from working…
ScriptedAlchemy 6025938
feat: restore old CI infrastructure for Next.js e2e tests
ScriptedAlchemy 9660670
App router share filter (#3745)
ScriptedAlchemy af303e9
test: trigger CI workflow (#3890)
ScriptedAlchemy 61f403e
Potential fix for code scanning alert no. 132: Workflow does not cont…
ScriptedAlchemy 6d0fc9d
Share flalback (#3893)
ScriptedAlchemy ab26ac3
docs: add incremental PR plan for breaking up enhanced package changes
ScriptedAlchemy accdf48
docs: add incremental PR plan for breaking up enhanced package changes
ScriptedAlchemy 4ae5c4c
fix: include request warning logs in ProvideSharedPlugin (#3906)
adit-shah-devrev d1610dc
chore: fix conflicts
ScriptedAlchemy 8b0b051
fix: resolve 500 Internal Server Error in 3002-checkout app
ScriptedAlchemy dd7fb40
chore: fix conflicts
ScriptedAlchemy 09cd8fb
test: update error message expectations for loadShareSync
ScriptedAlchemy 6ede202
feat: incremental merge of share-filter branch changes (#3879)
ScriptedAlchemy 89f3447
Apply suggested changes
ScriptedAlchemy 9829c09
chore: fix package conflicts
ScriptedAlchemy c077c59
chore: fix package conflicts
ScriptedAlchemy 9b23498
feat(enhanced): implement layer-aware module sharing with comprehensi…
ScriptedAlchemy 5de4fb3
fix: resolve merge conflicts in ProvideSharedPlugin.ts
ScriptedAlchemy 7b6feba
fix: resolve remaining merge conflicts
ScriptedAlchemy 5b862ca
fix: resolve merge conflict in data-prefetch react test
ScriptedAlchemy c7b1633
fix(enhanced): resolve TypeScript errors in ConsumeSharedPlugin
ScriptedAlchemy ea3ac9e
Apply suggested changes
ScriptedAlchemy 5a758ee
Apply suggested changes
ScriptedAlchemy 36005a7
Apply suggested changes
ScriptedAlchemy be4d9a8
fix(enhanced): resolve TypeScript errors in ProvideSharedPlugin
ScriptedAlchemy fef9e58
Apply suggested changes
ScriptedAlchemy cf1e7b1
fix(enhanced): resolve test failures and import issues
ScriptedAlchemy 1b2ba8c
chore: trigger CI run to verify test fixes
ScriptedAlchemy ca3daf6
fix(bridge-react): resolve React 19 compatibility in legacy provider
ScriptedAlchemy b84d26c
fix(bridge-react): remove unused TypeScript ignore directives
ScriptedAlchemy 280f933
fix(modernjs): disable syntax checking to allow ES6 dynamic imports
ScriptedAlchemy d234bc5
fix(rsbuild-plugin): set output.emitAssets as true (#3996)
2heal1 414c3c1
fix(runtime-core): set shared loaded status true after calling loadSh…
2heal1 50750c3
chore: bump axios to resolve vulnerabilities in form-data dependency …
DanielChutkowskiJMMJ 808879d
fix(rsbuild-plugin): invalid type field (#4002)
2heal1 4fa1b8b
chore: release v0.18.2 (#4003)
2heal1 e646704
feat: support env vars to add cors when use serve command (#4005)
zllkjc 8dcaba9
chore: v0.18.3 (#4007)
KyrieLii 38b96fc
chore: use only default share scope
ScriptedAlchemy aab5c25
chore: use only default share scope
ScriptedAlchemy 1b804df
chore: locks
ScriptedAlchemy File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- | ||
"@module-federation/nextjs-mf": patch | ||
--- | ||
|
||
Enhanced Next.js App Router demo applications with improved Module Federation integration. | ||
|
||
- Updated Next.js App Router demo applications (4000 and 4001) with better RSC support preparation | ||
- Added comprehensive E2E test coverage for Next.js App Router scenarios | ||
- Improved demo application configuration and dependency management | ||
- Enhanced development workflow with better patching and build scripts | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
--- | ||
"@module-federation/nextjs-mf": patch | ||
--- | ||
|
||
Enhanced Next.js App Router demo applications and CI/CD infrastructure. | ||
|
||
- Updated Next.js App Router demo applications (4000 and 4001) with React 19 and Next.js 15.3.3 | ||
- Added comprehensive E2E test coverage for Next.js App Router scenarios using Cypress | ||
- Improved demo application configuration with better Module Federation setup | ||
- Enhanced development workflow with automated Next.js patching scripts | ||
- Added new CI/CD workflow for Next.js App Router E2E testing | ||
- Updated existing Next.js demo applications (3000-home, 3001-shop, 3002-checkout) to latest versions | ||
- Improved build and development scripts across all Next.js applications |
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,40 +0,0 @@ | ||
an assistant that engages in extremely thorough, self-questioning reasoning. Your approach mirrors human stream-of- | ||
consciousness thinking, characterized by continuous exploration, self-doubt, and iterative analysis. | ||
## Core Principles | ||
1. EXPLORATION OVER CONCLUSION | ||
- Never rush to conclusions | ||
- Keep exploring until a solution emerges naturally from the evidence | ||
- If uncertain, continue reasoning indefinitely | ||
- Question every assumption and inference | ||
2. DEPTH OF REASONING | ||
- Engage in extensive contemplation (minimum 10,000 characters) | ||
- Express thoughts in natural, conversational internal monologue | ||
- Break down complex thoughts into simple, atomic steps | ||
- Embrace uncertainty and revision of previous thoughts | ||
3. THINKING PROCESS | ||
- Use short, simple sentences that mirror natural thought patterns | ||
- Express uncertainty and internal debate freely | ||
- Show work-in-progress thinking | ||
- Acknowledge and explore dead ends | ||
- Frequently backtrack and revise | ||
- Contemplate before each new action | ||
- Contemplate after each and every step | ||
4. PERSISTENCE | ||
- Value thorough exploration over quick resolution | ||
## Output Format | ||
Your responses | ||
must follow this exact structure given below. | ||
Make sure | ||
to | ||
always include the final answer. | ||
... | ||
<contemplator> | ||
Your extensive internal monologue goes here | ||
- Begin with small, foundational observations | ||
- read each file related to the subject in full, make functional observations | ||
- Question each step thoroughly | ||
- Show natural thought progression | ||
- Express doubts and uncertainties | ||
- Revise and backtrack if you need to | ||
- Continue until natural resolution </contemplator> | ||
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
name: E2E Test for Next.js App Router | ||
|
||
on: | ||
workflow_call: | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
e2e-next-app-router: | ||
runs-on: ubuntu-latest | ||
timeout-minutes: 30 | ||
steps: | ||
- name: Checkout Repository | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Install Pnpm | ||
run: | | ||
corepack prepare [email protected] --activate | ||
corepack enable | ||
|
||
- name: Setup Node.js 18 | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: '18' | ||
cache: 'pnpm' | ||
|
||
- name: Set Nx SHA | ||
uses: nrwl/nx-set-shas@v3 | ||
|
||
- name: Set SKIP_DEVTOOLS_POSTINSTALL environment variable | ||
run: echo "SKIP_DEVTOOLS_POSTINSTALL=true" >> $GITHUB_ENV | ||
|
||
- name: Set local webpack | ||
run: echo "NEXT_PRIVATE_LOCAL_WEBPACK=true" >> $GITHUB_ENV | ||
|
||
- name: Install Dependencies | ||
run: pnpm install | ||
|
||
- name: Install Cypress | ||
run: npx cypress install | ||
|
||
- name: Run Build for All | ||
run: npx nx run-many --targets=build --projects=tag:type:pkg | ||
|
||
- name: Run condition check script | ||
id: check-ci | ||
run: node tools/scripts/ci-is-affected.mjs --appName=next-app-router-4000,next-app-router-4001 | ||
|
||
- name: E2E Test for Next.js App Router | ||
if: steps.check-ci.outcome == 'success' | ||
run: npx kill-port --port 4000,4001 || true && pnpm run app:next-router:dev & echo "done" && sleep 25 && npx nx run-many --target=e2e --projects=next-app-router-4000,next-app-router-4001 --parallel=1 && lsof -ti tcp:4000,4001 | xargs kill || true | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -88,4 +88,6 @@ vitest.config.*.timestamp* | |
.rsbuild | ||
ssg | ||
.claude | ||
__mocks__/ | ||
# Native binary files | ||
*.node | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
{ | ||
"name": "module-federation-react-example-host", | ||
"version": "1.0.0", | ||
"description": "Host application for Module Federation demo", | ||
"main": "index.js", | ||
"scripts": { | ||
"start": "webpack serve", | ||
"build": "webpack --mode production" | ||
}, | ||
"dependencies": { | ||
"react": "^18.2.0", | ||
"react-dom": "^18.2.0", | ||
"react-router-dom": "^6.15.0" | ||
}, | ||
"devDependencies": { | ||
"@babel/core": "^7.22.11", | ||
"@babel/preset-react": "^7.22.5", | ||
"babel-loader": "^9.1.3", | ||
"html-webpack-plugin": "^5.5.3", | ||
"webpack": "^5.88.2", | ||
"webpack-cli": "^5.1.4", | ||
"webpack-dev-server": "^4.15.1" | ||
} | ||
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
{ | ||
"name": "module-federation-react-example-host", | ||
"$schema": "../../node_modules/nx/schemas/project-schema.json", | ||
"sourceRoot": "apps/module-federation-react-example/host", | ||
"projectType": "application", | ||
"targets": { | ||
"build": { | ||
"executor": "nx:run-commands", | ||
"options": { | ||
"cwd": "apps/module-federation-react-example/host", | ||
"command": "webpack --mode production" | ||
} | ||
}, | ||
"serve": { | ||
"executor": "nx:run-commands", | ||
"options": { | ||
"cwd": "apps/module-federation-react-example/host", | ||
"command": "webpack serve" | ||
} | ||
} | ||
}, | ||
"tags": [] | ||
} |
11 changes: 11 additions & 0 deletions
11
apps/module-federation-react-example/host/public/index.html
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<!doctype html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="UTF-8" /> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
<title>Module Federation Example</title> | ||
</head> | ||
<body> | ||
<div id="root"></div> | ||
</body> | ||
</html> |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.