Full Code of vercel/next.js for AI

canary c2914790119f cached
26672 files
107.9 MB
28.1M tokens
86713 symbols
2 requests
Copy disabled (too large) Download .txt
Showing preview only (112,278K chars total). Download the full file to get everything.
Repository: vercel/next.js
Branch: canary
Commit: c2914790119f
Files: 26672
Total size: 107.9 MB

Directory structure:
gitextract_40a4nsqh/

├── .agents/
│   └── skills/
│       ├── README.md
│       ├── authoring-skills/
│       │   └── SKILL.md
│       ├── dce-edge/
│       │   └── SKILL.md
│       ├── flags/
│       │   └── SKILL.md
│       ├── pr-status-triage/
│       │   ├── SKILL.md
│       │   ├── local-repro.md
│       │   └── workflow.md
│       ├── react-vendoring/
│       │   └── SKILL.md
│       ├── router-act/
│       │   └── SKILL.md
│       ├── runtime-debug/
│       │   └── SKILL.md
│       ├── update-docs/
│       │   ├── SKILL.md
│       │   └── references/
│       │       ├── CODE-TO-DOCS-MAPPING.md
│       │       └── DOC-CONVENTIONS.md
│       ├── v8-jit/
│       │   └── SKILL.md
│       ├── write-api-reference/
│       │   └── SKILL.md
│       └── write-guide/
│           └── SKILL.md
├── .alexignore
├── .alexrc
├── .cargo/
│   ├── .vercel.approvers
│   └── config.toml
├── .claude-plugin/
│   ├── marketplace.json
│   └── plugins/
│       ├── README.md
│       └── cache-components/
│           ├── .claude-plugin/
│           │   └── plugin.json
│           ├── README.md
│           └── skills/
│               └── cache-components/
│                   ├── PATTERNS.md
│                   ├── REFERENCE.md
│                   ├── SKILL.md
│                   └── TROUBLESHOOTING.md
├── .conductor/
│   ├── README.md
│   └── scripts/
│       ├── run.sh
│       └── setup.sh
├── .config/
│   ├── .vercel.approvers
│   ├── ast-grep/
│   │   ├── rule-tests/
│   │   │   ├── __snapshots__/
│   │   │   │   ├── no-context-format-snapshot.yml
│   │   │   │   ├── no-context-snapshot.yml
│   │   │   │   ├── no-context-turbofmt-snapshot.yml
│   │   │   │   ├── no-err-anyhow-snapshot.yml
│   │   │   │   ├── no-map-async-cell-snapshot.yml
│   │   │   │   ├── resolved-vc-in-return-type-snapshot.yml
│   │   │   │   └── resolved-vc-in-trait-arguments-snapshot.yml
│   │   │   ├── no-context-format-test.yml
│   │   │   ├── no-context-test.yml
│   │   │   ├── no-err-anyhow-test.yml
│   │   │   ├── no-map-async-cell-test.yml
│   │   │   ├── resolved-vc-in-return-type-test.yml
│   │   │   └── resolved-vc-in-trait-arguments-test.yml
│   │   ├── rule-utils/
│   │   │   └── .gitkeep
│   │   └── rules/
│   │       ├── no-context-format.yml
│   │       ├── no-context.yml
│   │       ├── no-err-anyhow.yml
│   │       ├── no-map-async-cell.yml
│   │       ├── resolved-vc-in-return-type.yml
│   │       └── resolved-vc-in-trait.yml
│   ├── eslintignore.mjs
│   └── nextest.toml
├── .cursor/
│   ├── commands/
│   │   └── gt-workflow.md
│   └── worktrees.json
├── .cursorindexingignore
├── .devcontainer/
│   ├── devcontainer-lock.json
│   ├── devcontainer.json
│   ├── headless-browser/
│   │   ├── devcontainer-feature.json
│   │   └── install.sh
│   ├── node-extras/
│   │   ├── devcontainer-feature.json
│   │   └── install.sh
│   └── rust/
│       ├── devcontainer-feature.json
│       └── install.sh
├── .git-blame-ignore-revs
├── .gitattributes
├── .github/
│   ├── CODEOWNERS
│   ├── DISCUSSION_TEMPLATE/
│   │   ├── help.yml
│   │   └── ideas.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── 1.bug_report.yml
│   │   ├── 4.docs_report.yml
│   │   └── config.yml
│   ├── actions/
│   │   ├── needs-triage/
│   │   │   ├── action.yaml
│   │   │   ├── dist/
│   │   │   │   ├── index.js
│   │   │   │   └── licenses.txt
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   └── index.ts
│   │   │   └── tsconfig.json
│   │   ├── next-integration-stat/
│   │   │   ├── action.yml
│   │   │   ├── dist/
│   │   │   │   ├── 37.index.js
│   │   │   │   └── index.js
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── index.ts
│   │   │   │   └── manifest.d.ts
│   │   │   └── tsconfig.json
│   │   ├── next-repo-actions/
│   │   │   ├── dist/
│   │   │   │   ├── feature-requests/
│   │   │   │   │   ├── index.mjs
│   │   │   │   │   └── licenses.txt
│   │   │   │   ├── issues/
│   │   │   │   │   ├── index.mjs
│   │   │   │   │   └── licenses.txt
│   │   │   │   ├── prs/
│   │   │   │   │   ├── index.js
│   │   │   │   │   └── licenses.txt
│   │   │   │   └── wrong-issue-template/
│   │   │   │       ├── index.js
│   │   │   │       └── licenses.txt
│   │   │   ├── lib/
│   │   │   │   └── util.mjs
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── popular-feature-requests.mjs
│   │   │   │   ├── popular-issues.mjs
│   │   │   │   ├── popular-prs.ts
│   │   │   │   └── wrong-issue-template.ts
│   │   │   └── tsconfig.json
│   │   ├── next-stats-action/
│   │   │   ├── Dockerfile
│   │   │   ├── README.md
│   │   │   ├── action.yml
│   │   │   ├── entrypoint.sh
│   │   │   ├── native/
│   │   │   │   └── .gitignore
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── add-comment.js
│   │   │   │   ├── aggregate-results.js
│   │   │   │   ├── constants.js
│   │   │   │   ├── index.js
│   │   │   │   ├── prepare/
│   │   │   │   │   ├── action-info.js
│   │   │   │   │   ├── load-stats-config.js
│   │   │   │   │   └── repo-setup.js
│   │   │   │   ├── run/
│   │   │   │   │   ├── benchmark-url.js
│   │   │   │   │   ├── collect-diffs.js
│   │   │   │   │   ├── collect-stats.js
│   │   │   │   │   ├── get-dir-size.js
│   │   │   │   │   └── index.js
│   │   │   │   └── util/
│   │   │   │       ├── exec.js
│   │   │   │       ├── glob.js
│   │   │   │       ├── logger.js
│   │   │   │       └── stats.js
│   │   │   └── test-local.js
│   │   ├── setup-rust/
│   │   │   ├── action.yml
│   │   │   └── matchers.json
│   │   ├── upload-turboyet-data/
│   │   │   ├── action.yml
│   │   │   ├── dist/
│   │   │   │   ├── index.js
│   │   │   │   ├── index.js.map
│   │   │   │   └── sourcemap-register.js
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── main.js
│   │   └── validate-docs-links/
│   │       ├── README.MD
│   │       ├── dist/
│   │       │   ├── index.js
│   │       │   ├── licenses.txt
│   │       │   └── package.json
│   │       ├── package.json
│   │       ├── src/
│   │       │   └── index.ts
│   │       ├── tsconfig.json
│   │       └── types.d.ts
│   ├── comments/
│   │   ├── good-first-issue.md
│   │   ├── invalid-link.md
│   │   ├── invalid-reproduction.md
│   │   ├── resolved.md
│   │   ├── simplify-reproduction.md
│   │   └── verify-canary.md
│   ├── labeler.json
│   ├── pnpm-workspace.yaml
│   ├── pull_request_template.md
│   └── workflows/
│       ├── build_and_deploy.yml
│       ├── build_and_test.yml
│       ├── build_reusable.yml
│       ├── code_freeze.yml
│       ├── create_release_branch.yml
│       ├── deploy_docs.yml
│       ├── graphite_ci_optimizer.yml
│       ├── integration_tests_reusable.yml
│       ├── issue_lock.yml
│       ├── issue_stale.yml
│       ├── issue_wrong_template.yml
│       ├── popular.yml
│       ├── pull_request_stats.yml
│       ├── release-next-rspack.yml
│       ├── retry_deploy_test.yml
│       ├── retry_test.yml
│       ├── rspack-nextjs-build-integration-tests.yml
│       ├── rspack-nextjs-dev-integration-tests.yml
│       ├── rspack-update-tests-manifest.yml
│       ├── setup-nextjs-build.yml
│       ├── test-turbopack-rust-bench-test.yml
│       ├── test_e2e_deploy_release.yml
│       ├── test_e2e_project_reset_cron.yml
│       ├── test_examples.yml
│       ├── triage.yml
│       ├── trigger_release.yml
│       ├── turbopack-benchmark.yml
│       ├── turbopack-nextjs-build-integration-tests.yml
│       ├── turbopack-nextjs-dev-integration-tests.yml
│       ├── turbopack-update-tests-manifest.yml
│       ├── update_fonts_data.yml
│       ├── update_react.yml
│       └── upload-tests-manifest.yml
├── .gitignore
├── .husky/
│   ├── pre-commit
│   └── pre-push
├── .ignore
├── .node-version
├── .npmrc
├── .prettierignore
├── .prettierrc.json
├── .rustfmt.toml
├── .typos.toml
├── .vscode/
│   ├── extensions.json
│   ├── launch.json
│   ├── settings.json
│   └── tasks.json
├── AGENTS.md
├── CODE_OF_CONDUCT.md
├── Cargo.toml
├── UPGRADING.md
├── apps/
│   ├── bundle-analyzer/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── components/
│   │   │   ├── error-state.tsx
│   │   │   ├── file-search.tsx
│   │   │   ├── import-chain.tsx
│   │   │   ├── index.ts
│   │   │   ├── route-typeahead.tsx
│   │   │   ├── sidebar.tsx
│   │   │   ├── theme-provider.tsx
│   │   │   ├── treemap-visualizer.tsx
│   │   │   └── ui/
│   │   │       ├── badge.tsx
│   │   │       ├── button.tsx
│   │   │       ├── command.tsx
│   │   │       ├── dialog.tsx
│   │   │       ├── input.tsx
│   │   │       ├── kbd.tsx
│   │   │       ├── multi-select.tsx
│   │   │       ├── popover.tsx
│   │   │       ├── select.tsx
│   │   │       ├── skeleton.tsx
│   │   │       ├── toggle-group.tsx
│   │   │       └── tooltip.tsx
│   │   ├── components.json
│   │   ├── lib/
│   │   │   ├── analyze-data.ts
│   │   │   ├── errors.ts
│   │   │   ├── layout-treemap.ts
│   │   │   ├── module-graph.ts
│   │   │   ├── treemap-layout.ts
│   │   │   ├── types.ts
│   │   │   └── utils.ts
│   │   ├── next.config.mjs
│   │   ├── package.json
│   │   ├── postcss.config.mjs
│   │   └── tsconfig.json
│   └── docs/
│       ├── .gitignore
│       ├── README.md
│       ├── app/
│       │   ├── .prettierrc.json
│       │   ├── docs/
│       │   │   ├── [[...slug]]/
│       │   │   │   └── page.tsx
│       │   │   └── layout.tsx
│       │   ├── global.css
│       │   ├── layout.config.tsx
│       │   ├── layout.tsx
│       │   └── page.tsx
│       ├── constants/
│       │   └── brand.ts
│       ├── eslint.config.mjs
│       ├── lib/
│       │   └── source.ts
│       ├── mdx-components.tsx
│       ├── next.config.ts
│       ├── package.json
│       ├── postcss.config.mjs
│       ├── source.config.ts
│       └── tsconfig.json
├── bench/
│   ├── BENCHMARKING.md
│   ├── app-router-server/
│   │   ├── app/
│   │   │   ├── layout.js
│   │   │   └── rsc/
│   │   │       └── page.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── pages/
│   │       └── index.js
│   ├── basic-app/
│   │   ├── app/
│   │   │   ├── api/
│   │   │   │   └── app/
│   │   │   │       └── route.js
│   │   │   ├── layout.js
│   │   │   ├── page.js
│   │   │   └── streaming/
│   │   │       ├── _shared/
│   │   │       │   ├── client-boundary.js
│   │   │       │   └── stress-page.js
│   │   │       ├── bulk/
│   │   │       │   └── page.js
│   │   │       ├── chunkstorm/
│   │   │       │   └── page.js
│   │   │       ├── heavy/
│   │   │       │   └── page.js
│   │   │       ├── light/
│   │   │       │   └── page.js
│   │   │       ├── medium/
│   │   │       │   └── page.js
│   │   │       └── wide/
│   │   │           └── page.js
│   │   ├── benchmark.sh
│   │   ├── next.config.js
│   │   └── pages/
│   │       ├── api/
│   │       │   └── page-api.js
│   │       └── pages/
│   │           └── index.js
│   ├── fuzzponent/
│   │   ├── bin/
│   │   │   └── fuzzponent.js
│   │   ├── package.json
│   │   └── readme.md
│   ├── heavy-npm-deps/
│   │   ├── .eslintrc.json
│   │   ├── .gitignore
│   │   ├── app/
│   │   │   ├── globals.css
│   │   │   ├── layout.js
│   │   │   └── page.js
│   │   ├── components/
│   │   │   ├── lodash.js
│   │   │   ├── mantine.js
│   │   │   └── mermaid.js
│   │   ├── next.config.mjs
│   │   ├── package.json
│   │   ├── postcss.config.cjs
│   │   └── tailwind.config.js
│   ├── module-cost/
│   │   ├── .gitignore
│   │   ├── app/
│   │   │   ├── app/
│   │   │   │   ├── commonjs/
│   │   │   │   │   └── route.js
│   │   │   │   ├── esm/
│   │   │   │   │   └── route.js
│   │   │   │   └── page.js
│   │   │   └── layout.js
│   │   ├── components/
│   │   │   └── client.js
│   │   ├── lib/
│   │   │   ├── commonjs.js
│   │   │   ├── esm.js
│   │   │   └── measure.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── api/
│   │   │   │   ├── commonjs.js
│   │   │   │   └── esm.js
│   │   │   └── index.jsx
│   │   └── scripts/
│   │       ├── benchmark-runner.mjs
│   │       └── prepare-bench.mjs
│   ├── nested-deps/
│   │   ├── .gitignore
│   │   ├── bench.mjs
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── pages/
│   │       └── index.jsx
│   ├── nested-deps-app-router/
│   │   ├── .gitignore
│   │   ├── app/
│   │   │   ├── client-components-only/
│   │   │   │   └── page.js
│   │   │   ├── layout.js
│   │   │   ├── server-and-client-components/
│   │   │   │   ├── client-component.js
│   │   │   │   └── page.js
│   │   │   └── server-components-only/
│   │   │       └── page.js
│   │   ├── bench.mjs
│   │   ├── next.config.js
│   │   └── package.json
│   ├── nested-deps-app-router-many-pages/
│   │   ├── .gitignore
│   │   ├── bench.mjs
│   │   ├── create-pages.mjs
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── template/
│   │       ├── client-components-only/
│   │       │   └── page.js
│   │       ├── layout.js
│   │       ├── root-layout.js
│   │       ├── server-and-client-components/
│   │       │   ├── client-component.js
│   │       │   └── page.js
│   │       └── server-components-only/
│   │           └── page.js
│   ├── next-minimal-server/
│   │   ├── bin/
│   │   │   └── minimal-server.js
│   │   └── package.json
│   ├── recursive-copy/
│   │   └── run.js
│   ├── recursive-delete/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── nodejs-rm.js
│   │   ├── output.txt
│   │   ├── package.json
│   │   ├── recursive-delete.js
│   │   ├── rimraf.js
│   │   └── run.sh
│   ├── render-pipeline/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── analyze-profiles.ts
│   │   └── benchmark.ts
│   ├── rendering/
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── stateless-big.js
│   │   │   └── stateless.js
│   │   └── readme.md
│   └── vercel/
│       ├── .gitignore
│       ├── README.md
│       ├── bench.js
│       ├── benchmark-app/
│       │   ├── .gitignore
│       │   ├── app/
│       │   │   ├── layout.js
│       │   │   └── rsc/
│       │   │       └── page.js
│       │   ├── next.config.js
│       │   ├── package.json
│       │   └── pages/
│       │       └── index.js
│       ├── chart.js
│       ├── gen-request.js
│       ├── generate-package-json.js
│       ├── package.json
│       └── project-utils.js
├── conductor.json
├── contributing/
│   ├── core/
│   │   ├── adding-error-links.md
│   │   ├── adding-features.md
│   │   ├── building.md
│   │   ├── developing-using-local-app.md
│   │   ├── developing.md
│   │   ├── testing.md
│   │   └── vscode-debugger.md
│   ├── docs/
│   │   └── adding-documentation.md
│   ├── repository/
│   │   ├── linting.md
│   │   ├── pull-request-descriptions.md
│   │   ├── release-channels-publishing.md
│   │   └── triaging.md
│   └── turbopack/
│       └── tracing.md
├── contributing.md
├── crates/
│   ├── next-api/
│   │   ├── Cargo.toml
│   │   ├── build.rs
│   │   └── src/
│   │       ├── analyze.rs
│   │       ├── app.rs
│   │       ├── asset_hashes_manifest.rs
│   │       ├── client_references.rs
│   │       ├── dynamic_imports.rs
│   │       ├── empty.rs
│   │       ├── entrypoints.rs
│   │       ├── font.rs
│   │       ├── instrumentation.rs
│   │       ├── lib.rs
│   │       ├── loadable_manifest.rs
│   │       ├── middleware.rs
│   │       ├── module_graph.rs
│   │       ├── next_server_nft.rs
│   │       ├── nft_json.rs
│   │       ├── operation.rs
│   │       ├── pages.rs
│   │       ├── paths.rs
│   │       ├── project.rs
│   │       ├── project_asset_hashes_manifest.rs
│   │       ├── route.rs
│   │       ├── routes_hashes_manifest.rs
│   │       ├── server_actions.rs
│   │       ├── sri_manifest.rs
│   │       └── versioned_content_map.rs
│   ├── next-build/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── build_options.rs
│   │       └── lib.rs
│   ├── next-build-test/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── bench.sh
│   │   ├── jsConfig.json
│   │   ├── nextConfig.json
│   │   └── src/
│   │       ├── lib.rs
│   │       └── main.rs
│   ├── next-code-frame/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── benches/
│   │   │   └── code_frame_bench.rs
│   │   └── src/
│   │       ├── bin/
│   │       │   └── code_frame.rs
│   │       ├── frame.rs
│   │       ├── highlight.rs
│   │       ├── lib.rs
│   │       └── tests.rs
│   ├── next-core/
│   │   ├── Cargo.toml
│   │   ├── js/
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   └── entry/
│   │   │   │       └── page-loader.ts
│   │   │   ├── tsconfig.json
│   │   │   └── turbo.json
│   │   └── src/
│   │       ├── app_page_loader_tree.rs
│   │       ├── app_structure.rs
│   │       ├── assets/
│   │       │   ├── layout.js
│   │       │   └── layout.tsx
│   │       ├── base_loader_tree.rs
│   │       ├── bootstrap.rs
│   │       ├── embed_js.rs
│   │       ├── emit.rs
│   │       ├── hmr_entry.rs
│   │       ├── instrumentation.rs
│   │       ├── lib.rs
│   │       ├── middleware.rs
│   │       ├── mode.rs
│   │       ├── next_app/
│   │       │   ├── app_client_references_chunks.rs
│   │       │   ├── app_client_shared_chunks.rs
│   │       │   ├── app_entry.rs
│   │       │   ├── app_page_entry.rs
│   │       │   ├── app_route_entry.rs
│   │       │   ├── metadata/
│   │       │   │   ├── image.rs
│   │       │   │   ├── mod.rs
│   │       │   │   └── route.rs
│   │       │   └── mod.rs
│   │       ├── next_build.rs
│   │       ├── next_client/
│   │       │   ├── context.rs
│   │       │   ├── mod.rs
│   │       │   ├── runtime_entry.rs
│   │       │   └── transforms.rs
│   │       ├── next_client_reference/
│   │       │   ├── css_client_reference/
│   │       │   │   ├── css_client_reference_module.rs
│   │       │   │   ├── css_client_reference_transition.rs
│   │       │   │   └── mod.rs
│   │       │   ├── ecmascript_client_reference/
│   │       │   │   ├── ecmascript_client_reference_module.rs
│   │       │   │   ├── ecmascript_client_reference_transition.rs
│   │       │   │   └── mod.rs
│   │       │   ├── mod.rs
│   │       │   └── visit_client_reference.rs
│   │       ├── next_config.rs
│   │       ├── next_dynamic/
│   │       │   ├── dynamic_module.rs
│   │       │   ├── dynamic_transition.rs
│   │       │   └── mod.rs
│   │       ├── next_edge/
│   │       │   ├── context.rs
│   │       │   ├── entry.rs
│   │       │   ├── mod.rs
│   │       │   ├── route_regex.rs
│   │       │   └── unsupported.rs
│   │       ├── next_font/
│   │       │   ├── font_fallback.rs
│   │       │   ├── google/
│   │       │   │   ├── font_fallback.rs
│   │       │   │   ├── mod.rs
│   │       │   │   ├── options.rs
│   │       │   │   ├── request.rs
│   │       │   │   ├── stylesheet.rs
│   │       │   │   └── util.rs
│   │       │   ├── issue.rs
│   │       │   ├── local/
│   │       │   │   ├── errors.rs
│   │       │   │   ├── font_fallback.rs
│   │       │   │   ├── mod.rs
│   │       │   │   ├── options.rs
│   │       │   │   ├── request.rs
│   │       │   │   ├── stylesheet.rs
│   │       │   │   └── util.rs
│   │       │   ├── mod.rs
│   │       │   ├── stylesheet.rs
│   │       │   └── util.rs
│   │       ├── next_image/
│   │       │   ├── mod.rs
│   │       │   ├── module.rs
│   │       │   └── source_asset.rs
│   │       ├── next_import_map.rs
│   │       ├── next_manifests/
│   │       │   ├── client_reference_manifest.rs
│   │       │   ├── encode_uri_component.rs
│   │       │   └── mod.rs
│   │       ├── next_pages/
│   │       │   ├── mod.rs
│   │       │   └── page_entry.rs
│   │       ├── next_root_params/
│   │       │   └── mod.rs
│   │       ├── next_server/
│   │       │   ├── context.rs
│   │       │   ├── mod.rs
│   │       │   ├── resolve.rs
│   │       │   └── transforms.rs
│   │       ├── next_server_component/
│   │       │   ├── mod.rs
│   │       │   ├── server_component_module.rs
│   │       │   └── server_component_transition.rs
│   │       ├── next_server_utility/
│   │       │   ├── mod.rs
│   │       │   ├── server_utility_module.rs
│   │       │   ├── server_utility_reference.rs
│   │       │   └── server_utility_transition.rs
│   │       ├── next_shared/
│   │       │   ├── mod.rs
│   │       │   ├── resolve.rs
│   │       │   ├── transforms/
│   │       │   │   ├── debug_fn_name.rs
│   │       │   │   ├── emotion.rs
│   │       │   │   ├── mod.rs
│   │       │   │   ├── modularize_imports.rs
│   │       │   │   ├── next_cjs_optimizer.rs
│   │       │   │   ├── next_debug_instant_stack.rs
│   │       │   │   ├── next_disallow_re_export_all_in_page.rs
│   │       │   │   ├── next_dynamic.rs
│   │       │   │   ├── next_edge_node_api_assert.rs
│   │       │   │   ├── next_font.rs
│   │       │   │   ├── next_lint.rs
│   │       │   │   ├── next_middleware_dynamic_assert.rs
│   │       │   │   ├── next_optimize_server_react.rs
│   │       │   │   ├── next_pure.rs
│   │       │   │   ├── next_react_server_components.rs
│   │       │   │   ├── next_strip_page_exports.rs
│   │       │   │   ├── next_track_dynamic_imports.rs
│   │       │   │   ├── react_remove_properties.rs
│   │       │   │   ├── relay.rs
│   │       │   │   ├── remove_console.rs
│   │       │   │   ├── server_actions.rs
│   │       │   │   ├── styled_components.rs
│   │       │   │   ├── styled_jsx.rs
│   │       │   │   └── swc_ecma_transform_plugins.rs
│   │       │   └── webpack_rules/
│   │       │       ├── babel.rs
│   │       │       ├── mod.rs
│   │       │       └── sass.rs
│   │       ├── next_telemetry.rs
│   │       ├── page_loader.rs
│   │       ├── pages_structure.rs
│   │       ├── raw_ecmascript_module.rs
│   │       ├── segment_config.rs
│   │       ├── tracing_presets.rs
│   │       ├── transform_options.rs
│   │       ├── url_node.rs
│   │       └── util.rs
│   ├── next-custom-transforms/
│   │   ├── Cargo.toml
│   │   ├── src/
│   │   │   ├── chain_transforms.rs
│   │   │   ├── lib.rs
│   │   │   ├── linter.rs
│   │   │   ├── react_compiler.rs
│   │   │   └── transforms/
│   │   │       ├── cjs_finder.rs
│   │   │       ├── cjs_optimizer.rs
│   │   │       ├── debug_fn_name.rs
│   │   │       ├── debug_instant_stack.rs
│   │   │       ├── disallow_re_export_all_in_page.rs
│   │   │       ├── dynamic.rs
│   │   │       ├── fonts/
│   │   │       │   ├── find_functions_outside_module_scope.rs
│   │   │       │   ├── font_functions_collector.rs
│   │   │       │   ├── font_imports_generator.rs
│   │   │       │   └── mod.rs
│   │   │       ├── import_analyzer.rs
│   │   │       ├── lint_codemod_comments.rs
│   │   │       ├── middleware_dynamic.rs
│   │   │       ├── mod.rs
│   │   │       ├── named_import_transform.rs
│   │   │       ├── next_ssg.rs
│   │   │       ├── optimize_barrel.rs
│   │   │       ├── optimize_server_react.rs
│   │   │       ├── page_config.rs
│   │   │       ├── pure.rs
│   │   │       ├── react_server_components.rs
│   │   │       ├── server_actions.rs
│   │   │       ├── shake_exports.rs
│   │   │       ├── strip_page_exports.rs
│   │   │       ├── track_dynamic_imports.rs
│   │   │       └── warn_for_edge_runtime.rs
│   │   └── tests/
│   │       ├── errors/
│   │       │   ├── next-dynamic/
│   │       │   │   ├── no-arguments/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── options-as-variable/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   └── too-many-arguments/
│   │       │   │       ├── input.js
│   │       │   │       ├── output.js
│   │       │   │       └── output.stderr
│   │       │   ├── next-font-loaders/
│   │       │   │   ├── export-let/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── import-all/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── not-const/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── not-ident/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── options-object/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── spread-arg/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   └── wrong-scope/
│   │       │   │       ├── input.js
│   │       │   │       ├── output.js
│   │       │   │       └── output.stderr
│   │       │   ├── next-ssg/
│   │       │   │   ├── server-side-after-static-paths/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── server-side-after-static-props/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── static-paths-after-server-side/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   └── static-props-after-server-side/
│   │       │   │       ├── input.js
│   │       │   │       ├── output.js
│   │       │   │       └── output.stderr
│   │       │   ├── re-export-all-in-page/
│   │       │   │   ├── re-export-all/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   └── re-export-default/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── react-server-components/
│   │       │   │   ├── client-graph/
│   │       │   │   │   ├── app-dir/
│   │       │   │   │   │   ├── cache-life/
│   │       │   │   │   │   │   ├── input.js
│   │       │   │   │   │   │   ├── output.js
│   │       │   │   │   │   │   └── output.stderr
│   │       │   │   │   │   ├── cache-tag/
│   │       │   │   │   │   │   ├── input.js
│   │       │   │   │   │   │   ├── output.js
│   │       │   │   │   │   │   └── output.stderr
│   │       │   │   │   │   ├── root-params/
│   │       │   │   │   │   │   ├── input.js
│   │       │   │   │   │   │   ├── output.js
│   │       │   │   │   │   │   └── output.stderr
│   │       │   │   │   │   └── server-only/
│   │       │   │   │   │       ├── input.js
│   │       │   │   │   │       ├── output.js
│   │       │   │   │   │       └── output.stderr
│   │       │   │   │   ├── cache-life/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output.js
│   │       │   │   │   │   └── output.stderr
│   │       │   │   │   ├── cache-tag/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output.js
│   │       │   │   │   │   └── output.stderr
│   │       │   │   │   ├── client-only/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── generate-metadata/
│   │       │   │   │   │   ├── output.js
│   │       │   │   │   │   ├── output.stderr
│   │       │   │   │   │   └── page.js
│   │       │   │   │   ├── get-server-side-props/
│   │       │   │   │   │   ├── output.js
│   │       │   │   │   │   ├── output.stderr
│   │       │   │   │   │   └── page.js
│   │       │   │   │   ├── get-static-props/
│   │       │   │   │   │   ├── output.js
│   │       │   │   │   │   ├── output.stderr
│   │       │   │   │   │   └── page.js
│   │       │   │   │   ├── metadata/
│   │       │   │   │   │   ├── output.js
│   │       │   │   │   │   ├── output.stderr
│   │       │   │   │   │   └── page.js
│   │       │   │   │   ├── multiple/
│   │       │   │   │   │   ├── output.js
│   │       │   │   │   │   ├── output.stderr
│   │       │   │   │   │   └── page.js
│   │       │   │   │   ├── root-params/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output.js
│   │       │   │   │   │   └── output.stderr
│   │       │   │   │   ├── server-only/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output.js
│   │       │   │   │   │   └── output.stderr
│   │       │   │   │   └── use-client/
│   │       │   │   │       ├── input.js
│   │       │   │   │       ├── output.js
│   │       │   │   │       └── output.stderr
│   │       │   │   └── server-graph/
│   │       │   │       ├── cache-components/
│   │       │   │       │   ├── instant-with-cache-components/
│   │       │   │       │   │   ├── output.js
│   │       │   │       │   │   └── page.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   ├── output.stderr
│   │       │   │       │   └── page.js
│   │       │   │       ├── client-only/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── dynamic-ssr-false/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── fake-client-entry/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── generate-metadata/
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── page.js
│   │       │   │       ├── get-server-side-props/
│   │       │   │       │   ├── output.js
│   │       │   │       │   ├── output.stderr
│   │       │   │       │   └── page.js
│   │       │   │       ├── get-static-props/
│   │       │   │       │   ├── output.js
│   │       │   │       │   ├── output.stderr
│   │       │   │       │   └── page.js
│   │       │   │       ├── image-response/
│   │       │   │       │   ├── output.js
│   │       │   │       │   ├── output.stderr
│   │       │   │       │   └── route.js
│   │       │   │       ├── instant-requires-cache-components/
│   │       │   │       │   ├── output.js
│   │       │   │       │   ├── output.stderr
│   │       │   │       │   └── page.js
│   │       │   │       ├── metadata/
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── page.js
│   │       │   │       ├── metadata-conflict/
│   │       │   │       │   ├── output.js
│   │       │   │       │   ├── output.stderr
│   │       │   │       │   └── page.js
│   │       │   │       ├── react-api/
│   │       │   │       │   ├── output.js
│   │       │   │       │   ├── output.stderr
│   │       │   │       │   └── page.js
│   │       │   │       ├── react-dom-api/
│   │       │   │       │   ├── output.js
│   │       │   │       │   ├── output.stderr
│   │       │   │       │   └── page.js
│   │       │   │       ├── react-dom-server-client/
│   │       │   │       │   ├── output.js
│   │       │   │       │   ├── output.stderr
│   │       │   │       │   └── page.js
│   │       │   │       ├── taint-without-config/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       └── use-cache/
│   │       │   │           ├── output.js
│   │       │   │           ├── output.stderr
│   │       │   │           └── page.js
│   │       │   ├── server-actions/
│   │       │   │   ├── client-graph/
│   │       │   │   │   ├── 1/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output.js
│   │       │   │   │   │   └── output.stderr
│   │       │   │   │   └── 2/
│   │       │   │   │       ├── input.js
│   │       │   │   │       ├── output.js
│   │       │   │   │       └── output.stderr
│   │       │   │   └── server-graph/
│   │       │   │       ├── 1/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 10/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 11/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 12/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 13/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 14/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 15/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 16/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 17/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 18/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 19/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 2/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 20/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 21/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 22/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 23/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 24/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 25/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 26/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 27/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 28/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 29/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 3/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 30/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 32/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 4/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 5/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 6/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 7/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 8/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       └── 9/
│   │       │   │           ├── input.js
│   │       │   │           ├── output.js
│   │       │   │           └── output.stderr
│   │       │   ├── strip-page-exports/
│   │       │   │   ├── server-side-after-static-paths/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── server-side-after-static-props/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── static-paths-after-server-side/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   └── static-props-after-server-side/
│   │       │   │       ├── input.js
│   │       │   │       ├── output.js
│   │       │   │       └── output.stderr
│   │       │   └── use-cache-not-allowed/
│   │       │       ├── 1/
│   │       │       │   ├── input.js
│   │       │       │   ├── output.js
│   │       │       │   └── output.stderr
│   │       │       └── 2/
│   │       │           ├── input.js
│   │       │           ├── output.js
│   │       │           └── output.stderr
│   │       ├── errors.rs
│   │       ├── fixture/
│   │       │   ├── cjs-optimize/
│   │       │   │   ├── 1/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── 2/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── 3/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── not-processed/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── not-processed-2/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── not-processed-3/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   └── not-processed-4/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── debug-fn-name/
│   │       │   │   ├── anonymous-component/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── composite-hook/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── export-default-decl/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── export-default-expr/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── hoc/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── lone-memo/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── normal/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   └── outlined-functions/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── debug-instant-stack/
│   │       │   │   ├── with-aliased-export/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── with-indirect-export/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── with-instant/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── with-named-export/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── with-reexport/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   └── without-instant/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── edge-assert/
│   │       │   │   ├── guarded-nodejs/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── guarded-process/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── guarded-runtime-process/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── mixed-process-api/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── nodejs-import/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── nodejs-import-allowed/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── nodejs-import-prefix/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── process-api/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   └── process-env/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── named-import-transform/
│   │       │   │   ├── 1/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   └── 2/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── next-dynamic/
│   │       │   │   ├── duplicated-imports/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output-dev.js
│   │       │   │   │   ├── output-prod.js
│   │       │   │   │   ├── output-server.js
│   │       │   │   │   ├── output-turbo-dev.js
│   │       │   │   │   ├── output-turbo-prod.js
│   │       │   │   │   └── output-turbo-server.js
│   │       │   │   ├── issue-48098/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output-dev.js
│   │       │   │   │   ├── output-prod.js
│   │       │   │   │   ├── output-server.js
│   │       │   │   │   ├── output-turbo-dev.js
│   │       │   │   │   ├── output-turbo-prod.js
│   │       │   │   │   └── output-turbo-server.js
│   │       │   │   ├── member-with-same-name/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output-dev.js
│   │       │   │   │   ├── output-prod.js
│   │       │   │   │   ├── output-server.js
│   │       │   │   │   ├── output-turbo-dev.js
│   │       │   │   │   ├── output-turbo-prod.js
│   │       │   │   │   └── output-turbo-server.js
│   │       │   │   ├── no-options/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output-dev.js
│   │       │   │   │   ├── output-prod.js
│   │       │   │   │   ├── output-server.js
│   │       │   │   │   ├── output-turbo-dev.js
│   │       │   │   │   ├── output-turbo-prod.js
│   │       │   │   │   └── output-turbo-server.js
│   │       │   │   ├── template-literal/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output-dev.js
│   │       │   │   │   ├── output-prod.js
│   │       │   │   │   ├── output-server.js
│   │       │   │   │   ├── output-turbo-dev.js
│   │       │   │   │   ├── output-turbo-prod.js
│   │       │   │   │   └── output-turbo-server.js
│   │       │   │   ├── with-options/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output-dev.js
│   │       │   │   │   ├── output-prod.js
│   │       │   │   │   ├── output-server.js
│   │       │   │   │   ├── output-turbo-dev.js
│   │       │   │   │   ├── output-turbo-prod.js
│   │       │   │   │   └── output-turbo-server.js
│   │       │   │   └── wrapped-import/
│   │       │   │       ├── input.js
│   │       │   │       ├── output-dev.js
│   │       │   │       ├── output-prod.js
│   │       │   │       ├── output-server.js
│   │       │   │       ├── output-turbo-dev.js
│   │       │   │       ├── output-turbo-prod.js
│   │       │   │       └── output-turbo-server.js
│   │       │   ├── next-dynamic-app-dir/
│   │       │   │   └── no-ssr/
│   │       │   │       ├── input.js
│   │       │   │       ├── output-dev.js
│   │       │   │       ├── output-prod.js
│   │       │   │       ├── output-server-client-layer.js
│   │       │   │       ├── output-server.js
│   │       │   │       ├── output-turbo-dev.js
│   │       │   │       ├── output-turbo-prod.js
│   │       │   │       ├── output-turbo-server-client-layer.js
│   │       │   │       └── output-turbo-server.js
│   │       │   ├── next-font-loaders/
│   │       │   │   ├── default-import/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── export-const/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── exports/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── font-options/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── import-as/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── many-args/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── multiple-calls/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── multiple-font-downloaders/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── multiple-fonts/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── multiple-imports/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   └── no-args/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── next-font-with-directive/
│   │       │   │   ├── use-cache/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   └── use-server/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── optimize-barrel/
│   │       │   │   ├── normal/
│   │       │   │   │   ├── 1/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 2/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 3/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 4/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   └── 5/
│   │       │   │   │       ├── input.js
│   │       │   │   │       └── output.js
│   │       │   │   └── wildcard/
│   │       │   │       ├── 1/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       └── 2/
│   │       │   │           ├── input.js
│   │       │   │           └── output.js
│   │       │   ├── optimize_server_react/
│   │       │   │   ├── 1/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── 2/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── 3/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── 4/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── 5/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── 6/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   └── 7/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── pure/
│   │       │   │   ├── no-name-clash/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   └── simple/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── react-server-components/
│   │       │   │   ├── client-graph/
│   │       │   │   │   ├── actions/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── cache-life/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── cache-tag/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   └── client-entry/
│   │       │   │   │       ├── input.js
│   │       │   │   │       └── output.js
│   │       │   │   ├── pack-3186/
│   │       │   │   │   ├── input.ts
│   │       │   │   │   └── output.ts
│   │       │   │   └── server-graph/
│   │       │   │       ├── client-entry/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       └── client-entry-cjs/
│   │       │   │           ├── input.js
│   │       │   │           └── output.js
│   │       │   ├── relay/
│   │       │   │   ├── input.tsx
│   │       │   │   └── output.js
│   │       │   ├── server-actions/
│   │       │   │   ├── client-graph/
│   │       │   │   │   ├── 1/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 10/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 11/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 12/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 13/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 14/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 15/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 16/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 17/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 2/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 3/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 4/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 5/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 6/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 7/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 8/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 9/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   └── turbopack/
│   │       │   │   │       └── 1/
│   │       │   │   │           ├── input.js
│   │       │   │   │           └── output.js
│   │       │   │   ├── index.ts
│   │       │   │   ├── modules.d.ts
│   │       │   │   ├── next.d.ts
│   │       │   │   ├── server-graph/
│   │       │   │   │   ├── 1/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 10/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 11/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 12/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 13/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 14/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 15/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 16/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 17/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 18/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 19/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 2/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 20/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 21/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 22/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 23/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 24/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 25/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 26/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 27/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 28/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 29/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 3/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 30/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 31/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 32/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 33/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 34/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 35/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 36/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 37/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 38/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 39/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 4/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 40/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 41/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 42/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 43/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 44/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 45/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 46/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 47/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 48/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 49/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 5/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 50/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 51/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 52/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 53/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 54/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 55/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 56/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 57/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 58/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 59/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 6/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 60/
│   │       │   │   │   │   ├── input.ts
│   │       │   │   │   │   └── output.ts
│   │       │   │   │   ├── 61/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 62/
│   │       │   │   │   │   ├── input.ts
│   │       │   │   │   │   └── output.ts
│   │       │   │   │   ├── 63/
│   │       │   │   │   │   ├── data.ts
│   │       │   │   │   │   ├── input.tsx
│   │       │   │   │   │   └── output.tsx
│   │       │   │   │   ├── 64/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 65/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 66/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 67/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 68/
│   │       │   │   │   │   ├── input.tsx
│   │       │   │   │   │   └── output.tsx
│   │       │   │   │   ├── 69/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 7/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 70/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 71/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 8/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   └── 9/
│   │       │   │   │       ├── input.js
│   │       │   │   │       └── output.js
│   │       │   │   └── tsconfig.json
│   │       │   ├── shake-exports/
│   │       │   │   ├── keep-default/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   └── most-usecases/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── source-maps/
│   │       │   │   ├── client-graph/
│   │       │   │   │   ├── development/
│   │       │   │   │   │   └── server-actions/
│   │       │   │   │   │       └── 1/
│   │       │   │   │   │           ├── input.js
│   │       │   │   │   │           └── output.js
│   │       │   │   │   └── production/
│   │       │   │   │       └── server-actions/
│   │       │   │   │           └── 1/
│   │       │   │   │               ├── input.js
│   │       │   │   │               └── output.js
│   │       │   │   ├── server-graph/
│   │       │   │   │   └── use-cache/
│   │       │   │   │       └── 1/
│   │       │   │   │           ├── input.js
│   │       │   │   │           └── output.js
│   │       │   │   └── turbopack/
│   │       │   │       └── client-graph/
│   │       │   │           ├── development/
│   │       │   │           │   └── server-actions/
│   │       │   │           │       └── 1/
│   │       │   │           │           ├── input.js
│   │       │   │           │           └── output.js
│   │       │   │           └── production/
│   │       │   │               └── server-actions/
│   │       │   │                   └── 1/
│   │       │   │                       ├── input.js
│   │       │   │                       └── output.js
│   │       │   ├── ssg/
│   │       │   │   ├── getServerSideProps/
│   │       │   │   │   ├── destructuring-assignment-array/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   └── query-usage/
│   │       │   │   │       ├── input.js
│   │       │   │   │       └── output.js
│   │       │   │   └── getStaticProps/
│   │       │   │       ├── destructuring-assignment-array/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── destructuring-assignment-object/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── issue-30091/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── issue-31855/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── multi-declarator-export/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── no-props/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-not-crash-for-class-declarations/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-not-mix-up-bindings/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-not-remove-extra-named-export-function-declarations/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-not-remove-extra-named-export-variable-declarations/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-not-remove-import-used-in-render/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-combined-named-export-specifiers/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-extra-named-export-speicifers/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-named-export-function-declarations/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-named-export-function-declarations-async/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-named-export-variable-declarations/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-named-export-variable-declarations-async/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-re-exported-function-declarations/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-re-exported-function-declarations-dependents-variables-functions-imports/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-re-exported-variable-declarations/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-re-exported-variable-declarations-safe/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-separate-named-export-specifiers/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-support-babel-style-memoized-function/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-support-class-exports/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-support-class-exports-2/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-support-export-named-as-default-with-a-class/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-support-export-named-as-default-with-other-specifiers/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-support-full-re-export/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       └── should-support-named-export-as-default/
│   │       │   │           ├── input.js
│   │       │   │           └── output.js
│   │       │   ├── strip-page-exports/
│   │       │   │   ├── getInitialProps/
│   │       │   │   │   ├── class/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── function-anon-function/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── function-arrow/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── function-before/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── function-named-function/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   └── reused-elsewhere/
│   │       │   │   │       ├── input.js
│   │       │   │   │       ├── output-data.js
│   │       │   │   │       └── output-default.js
│   │       │   │   ├── getServerSideProps/
│   │       │   │   │   ├── destructuring-assignment-array/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   └── query-usage/
│   │       │   │   │       ├── input.js
│   │       │   │   │       ├── output-data.js
│   │       │   │   │       └── output-default.js
│   │       │   │   ├── getStaticProps/
│   │       │   │   │   ├── destructuring-assignment-array/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── destructuring-assignment-array-expr/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── destructuring-assignment-object/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── issue-30091/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── issue-31855/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── no-props/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── not-crash-for-class-declarations/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── not-mix-up-bindings/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── not-remove-extra-named-export-function-declarations/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── not-remove-extra-named-export-variable-declarations/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── not-remove-import-used-in-other-export/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── not-remove-import-used-in-render/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── not-remove-unused-function/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-combined-named-export-specifiers/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-extra-named-export-specifiers/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-named-export-function-declarations/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-named-export-function-declarations-async/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-named-export-variable-declarations/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-named-export-variable-declarations-async/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-re-exported-function-declarations/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-re-exported-function-declarations-dependents-variables-functions-imports/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-re-exported-variable-declarations/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-re-exported-variable-declarations-safe/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-separate-named-export-specifiers/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── support-babel-style-memoized-function/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── support-class-exports/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── support-class-exports-2/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── support-export-named-as-default-with-a-class/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── support-export-named-as-default-with-other-specifiers/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   ├── output-default.js
│   │       │   │   │   │   └── support-export-named-as-default-with-a-class/
│   │       │   │   │   │       ├── input.js
│   │       │   │   │   │       ├── output-data.js
│   │       │   │   │   │       └── output-default.js
│   │       │   │   │   ├── support-export-named-as-default-with-other-specifiers-and-import/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── support-full-re-export/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── support-multiple-export-var-decl/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   └── support-named-export-as-default/
│   │       │   │   │       ├── input.js
│   │       │   │   │       ├── output-data.js
│   │       │   │   │       └── output-default.js
│   │       │   │   └── propTypes/
│   │       │   │       ├── complex/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output-data.js
│   │       │   │       │   └── output-default.js
│   │       │   │       └── simple/
│   │       │   │           ├── input.js
│   │       │   │           ├── output-data.js
│   │       │   │           └── output-default.js
│   │       │   └── track-dynamic-imports/
│   │       │       ├── 1/
│   │       │       │   ├── input.js
│   │       │       │   └── output.js
│   │       │       ├── 2/
│   │       │       │   ├── input.js
│   │       │       │   └── output.js
│   │       │       ├── 3/
│   │       │       │   ├── input.js
│   │       │       │   └── output.js
│   │       │       ├── 4/
│   │       │       │   ├── input.js
│   │       │       │   └── output.js
│   │       │       ├── 5/
│   │       │       │   ├── input.js
│   │       │       │   └── output.js
│   │       │       ├── 6/
│   │       │       │   ├── input.js
│   │       │       │   └── output.js
│   │       │       ├── index.ts
│   │       │       ├── modules.d.ts
│   │       │       ├── next.d.ts
│   │       │       └── tsconfig.json
│   │       ├── fixture.rs
│   │       ├── full/
│   │       │   └── example/
│   │       │       ├── input.js
│   │       │       └── output.js
│   │       ├── full.rs
│   │       ├── loader/
│   │       │   ├── auto-cjs/
│   │       │   │   ├── 1/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── 2/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── 3/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── issue-60197/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── pack-2074/
│   │       │   │   │   ├── 1/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   └── 2/
│   │       │   │   │       ├── input.js
│   │       │   │   │       └── output.js
│   │       │   │   └── react-prod/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── css-hygiene-1/
│   │       │   │   ├── input.js
│   │       │   │   └── output.js
│   │       │   ├── example/
│   │       │   │   ├── input.js
│   │       │   │   └── output.js
│   │       │   ├── front/
│   │       │   │   └── attr-1/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── issue-30389/
│   │       │   │   ├── input.js
│   │       │   │   └── output.js
│   │       │   ├── issue-30766/
│   │       │   │   ├── input.js
│   │       │   │   └── output.js
│   │       │   ├── issue-31627/
│   │       │   │   ├── input.js
│   │       │   │   └── output.js
│   │       │   ├── issue-32553/
│   │       │   │   ├── input.js
│   │       │   │   └── output.js
│   │       │   ├── issue-40231/
│   │       │   │   ├── input.js
│   │       │   │   └── output.js
│   │       │   └── styled-components/
│   │       │       └── 1/
│   │       │           ├── input.js
│   │       │           └── output.js
│   │       └── telemetry.rs
│   ├── next-error-code-swc-plugin/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── build-and-move.sh
│   │   └── src/
│   │       └── lib.rs
│   ├── next-napi-bindings/
│   │   ├── Cargo.toml
│   │   ├── build.rs
│   │   ├── npm/
│   │   │   ├── .gitignore
│   │   │   ├── darwin-arm64/
│   │   │   │   ├── README.md
│   │   │   │   └── package.json
│   │   │   ├── darwin-x64/
│   │   │   │   ├── README.md
│   │   │   │   └── package.json
│   │   │   ├── linux-arm64-gnu/
│   │   │   │   ├── README.md
│   │   │   │   └── package.json
│   │   │   ├── linux-arm64-musl/
│   │   │   │   ├── README.md
│   │   │   │   └── package.json
│   │   │   ├── linux-x64-gnu/
│   │   │   │   ├── README.md
│   │   │   │   └── package.json
│   │   │   ├── linux-x64-musl/
│   │   │   │   ├── README.md
│   │   │   │   └── package.json
│   │   │   ├── win32-arm64-msvc/
│   │   │   │   ├── README.md
│   │   │   │   └── package.json
│   │   │   └── win32-x64-msvc/
│   │   │       ├── README.md
│   │   │       └── package.json
│   │   └── src/
│   │       ├── code_frame.rs
│   │       ├── css/
│   │       │   └── mod.rs
│   │       ├── lib.rs
│   │       ├── lockfile.rs
│   │       ├── mdx.rs
│   │       ├── minify.rs
│   │       ├── next_api/
│   │       │   ├── analyze.rs
│   │       │   ├── endpoint.rs
│   │       │   ├── mod.rs
│   │       │   ├── project.rs
│   │       │   ├── turbopack_ctx.rs
│   │       │   └── utils.rs
│   │       ├── parse.rs
│   │       ├── react_compiler.rs
│   │       ├── rspack.rs
│   │       ├── transform.rs
│   │       ├── turbo_trace_server.rs
│   │       ├── turbopack.rs
│   │       └── util.rs
│   ├── next-taskless/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   └── src/
│   │       ├── constants.rs
│   │       ├── lib.rs
│   │       └── patterns.rs
│   └── wasm/
│       ├── Cargo.toml
│       ├── README.md
│       └── src/
│           ├── lib.rs
│           └── mdx.rs
├── docs/
│   ├── 01-app/
│   │   ├── 01-getting-started/
│   │   │   ├── 01-installation.mdx
│   │   │   ├── 02-project-structure.mdx
│   │   │   ├── 03-layouts-and-pages.mdx
│   │   │   ├── 04-linking-and-navigating.mdx
│   │   │   ├── 05-server-and-client-components.mdx
│   │   │   ├── 06-fetching-data.mdx
│   │   │   ├── 07-mutating-data.mdx
│   │   │   ├── 08-caching.mdx
│   │   │   ├── 09-revalidating.mdx
│   │   │   ├── 10-error-handling.mdx
│   │   │   ├── 11-css.mdx
│   │   │   ├── 12-images.mdx
│   │   │   ├── 13-fonts.mdx
│   │   │   ├── 14-metadata-and-og-images.mdx
│   │   │   ├── 15-route-handlers.mdx
│   │   │   ├── 16-proxy.mdx
│   │   │   ├── 17-deploying.mdx
│   │   │   ├── 18-upgrading.mdx
│   │   │   └── index.mdx
│   │   ├── 02-guides/
│   │   │   ├── ai-agents.mdx
│   │   │   ├── analytics.mdx
│   │   │   ├── authentication.mdx
│   │   │   ├── backend-for-frontend.mdx
│   │   │   ├── caching-without-cache-components.mdx
│   │   │   ├── cdn-caching.mdx
│   │   │   ├── ci-build-caching.mdx
│   │   │   ├── content-security-policy.mdx
│   │   │   ├── css-in-js.mdx
│   │   │   ├── custom-server.mdx
│   │   │   ├── data-security.mdx
│   │   │   ├── debugging.mdx
│   │   │   ├── deploying-to-platforms.mdx
│   │   │   ├── draft-mode.mdx
│   │   │   ├── environment-variables.mdx
│   │   │   ├── forms.mdx
│   │   │   ├── how-revalidation-works.mdx
│   │   │   ├── incremental-static-regeneration.mdx
│   │   │   ├── index.mdx
│   │   │   ├── instant-navigation.mdx
│   │   │   ├── instrumentation.mdx
│   │   │   ├── internationalization.mdx
│   │   │   ├── json-ld.mdx
│   │   │   ├── lazy-loading.mdx
│   │   │   ├── local-development.mdx
│   │   │   ├── mcp.mdx
│   │   │   ├── mdx.mdx
│   │   │   ├── memory-usage.mdx
│   │   │   ├── migrating/
│   │   │   │   ├── app-router-migration.mdx
│   │   │   │   ├── from-create-react-app.mdx
│   │   │   │   ├── from-vite.mdx
│   │   │   │   └── index.mdx
│   │   │   ├── migrating-to-cache-components.mdx
│   │   │   ├── multi-tenant.mdx
│   │   │   ├── multi-zones.mdx
│   │   │   ├── open-telemetry.mdx
│   │   │   ├── package-bundling.mdx
│   │   │   ├── ppr-platform-guide.mdx
│   │   │   ├── prefetching.mdx
│   │   │   ├── preserving-ui-state.mdx
│   │   │   ├── production-checklist.mdx
│   │   │   ├── progressive-web-apps.mdx
│   │   │   ├── public-static-pages.mdx
│   │   │   ├── redirecting.mdx
│   │   │   ├── rendering-philosophy.mdx
│   │   │   ├── sass.mdx
│   │   │   ├── scripts.mdx
│   │   │   ├── self-hosting.mdx
│   │   │   ├── single-page-applications.mdx
│   │   │   ├── static-exports.mdx
│   │   │   ├── streaming.mdx
│   │   │   ├── tailwind-v3-css.mdx
│   │   │   ├── testing/
│   │   │   │   ├── cypress.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   ├── jest.mdx
│   │   │   │   ├── playwright.mdx
│   │   │   │   └── vitest.mdx
│   │   │   ├── third-party-libraries.mdx
│   │   │   ├── upgrading/
│   │   │   │   ├── codemods.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   ├── version-14.mdx
│   │   │   │   ├── version-15.mdx
│   │   │   │   └── version-16.mdx
│   │   │   └── videos.mdx
│   │   ├── 03-api-reference/
│   │   │   ├── 01-directives/
│   │   │   │   ├── index.mdx
│   │   │   │   ├── use-cache-private.mdx
│   │   │   │   ├── use-cache-remote.mdx
│   │   │   │   ├── use-cache.mdx
│   │   │   │   ├── use-client.mdx
│   │   │   │   └── use-server.mdx
│   │   │   ├── 02-components/
│   │   │   │   ├── font.mdx
│   │   │   │   ├── form.mdx
│   │   │   │   ├── image.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   ├── link.mdx
│   │   │   │   └── script.mdx
│   │   │   ├── 03-file-conventions/
│   │   │   │   ├── 01-metadata/
│   │   │   │   │   ├── app-icons.mdx
│   │   │   │   │   ├── index.mdx
│   │   │   │   │   ├── manifest.mdx
│   │   │   │   │   ├── opengraph-image.mdx
│   │   │   │   │   ├── robots.mdx
│   │   │   │   │   └── sitemap.mdx
│   │   │   │   ├── 02-route-segment-config/
│   │   │   │   │   ├── dynamicParams.mdx
│   │   │   │   │   ├── index.mdx
│   │   │   │   │   ├── instant.mdx
│   │   │   │   │   ├── maxDuration.mdx
│   │   │   │   │   ├── preferredRegion.mdx
│   │   │   │   │   └── runtime.mdx
│   │   │   │   ├── default.mdx
│   │   │   │   ├── dynamic-routes.mdx
│   │   │   │   ├── error.mdx
│   │   │   │   ├── forbidden.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   ├── instrumentation-client.mdx
│   │   │   │   ├── instrumentation.mdx
│   │   │   │   ├── intercepting-routes.mdx
│   │   │   │   ├── layout.mdx
│   │   │   │   ├── loading.mdx
│   │   │   │   ├── mdx-components.mdx
│   │   │   │   ├── not-found.mdx
│   │   │   │   ├── page.mdx
│   │   │   │   ├── parallel-routes.mdx
│   │   │   │   ├── proxy.mdx
│   │   │   │   ├── public-folder.mdx
│   │   │   │   ├── route-groups.mdx
│   │   │   │   ├── route.mdx
│   │   │   │   ├── src-folder.mdx
│   │   │   │   ├── template.mdx
│   │   │   │   └── unauthorized.mdx
│   │   │   ├── 04-functions/
│   │   │   │   ├── after.mdx
│   │   │   │   ├── cacheLife.mdx
│   │   │   │   ├── cacheTag.mdx
│   │   │   │   ├── catchError.mdx
│   │   │   │   ├── connection.mdx
│   │   │   │   ├── cookies.mdx
│   │   │   │   ├── draft-mode.mdx
│   │   │   │   ├── fetch.mdx
│   │   │   │   ├── forbidden.mdx
│   │   │   │   ├── generate-image-metadata.mdx
│   │   │   │   ├── generate-metadata.mdx
│   │   │   │   ├── generate-sitemaps.mdx
│   │   │   │   ├── generate-static-params.mdx
│   │   │   │   ├── generate-viewport.mdx
│   │   │   │   ├── headers.mdx
│   │   │   │   ├── image-response.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   ├── next-request.mdx
│   │   │   │   ├── next-response.mdx
│   │   │   │   ├── not-found.mdx
│   │   │   │   ├── permanentRedirect.mdx
│   │   │   │   ├── redirect.mdx
│   │   │   │   ├── refresh.mdx
│   │   │   │   ├── revalidatePath.mdx
│   │   │   │   ├── revalidateTag.mdx
│   │   │   │   ├── unauthorized.mdx
│   │   │   │   ├── unstable_cache.mdx
│   │   │   │   ├── unstable_noStore.mdx
│   │   │   │   ├── unstable_rethrow.mdx
│   │   │   │   ├── updateTag.mdx
│   │   │   │   ├── use-link-status.mdx
│   │   │   │   ├── use-params.mdx
│   │   │   │   ├── use-pathname.mdx
│   │   │   │   ├── use-report-web-vitals.mdx
│   │   │   │   ├── use-router.mdx
│   │   │   │   ├── use-search-params.mdx
│   │   │   │   ├── use-selected-layout-segment.mdx
│   │   │   │   ├── use-selected-layout-segments.mdx
│   │   │   │   └── userAgent.mdx
│   │   │   ├── 05-config/
│   │   │   │   ├── 01-next-config-js/
│   │   │   │   │   ├── adapterPath.mdx
│   │   │   │   │   ├── allowedDevOrigins.mdx
│   │   │   │   │   ├── appDir.mdx
│   │   │   │   │   ├── assetPrefix.mdx
│   │   │   │   │   ├── authInterrupts.mdx
│   │   │   │   │   ├── basePath.mdx
│   │   │   │   │   ├── cacheComponents.mdx
│   │   │   │   │   ├── cacheHandlers.mdx
│   │   │   │   │   ├── cacheLife.mdx
│   │   │   │   │   ├── compress.mdx
│   │   │   │   │   ├── crossOrigin.mdx
│   │   │   │   │   ├── cssChunking.mdx
│   │   │   │   │   ├── deploymentId.mdx
│   │   │   │   │   ├── devIndicators.mdx
│   │   │   │   │   ├── distDir.mdx
│   │   │   │   │   ├── env.mdx
│   │   │   │   │   ├── expireTime.mdx
│   │   │   │   │   ├── exportPathMap.mdx
│   │   │   │   │   ├── generateBuildId.mdx
│   │   │   │   │   ├── generateEtags.mdx
│   │   │   │   │   ├── headers.mdx
│   │   │   │   │   ├── htmlLimitedBots.mdx
│   │   │   │   │   ├── httpAgentOptions.mdx
│   │   │   │   │   ├── images.mdx
│   │   │   │   │   ├── incrementalCacheHandlerPath.mdx
│   │   │   │   │   ├── index.mdx
│   │   │   │   │   ├── inlineCss.mdx
│   │   │   │   │   ├── logging.mdx
│   │   │   │   │   ├── mdxRs.mdx
│   │   │   │   │   ├── onDemandEntries.mdx
│   │   │   │   │   ├── optimizePackageImports.mdx
│   │   │   │   │   ├── output.mdx
│   │   │   │   │   ├── pageExtensions.mdx
│   │   │   │   │   ├── poweredByHeader.mdx
│   │   │   │   │   ├── productionBrowserSourceMaps.mdx
│   │   │   │   │   ├── proxyClientMaxBodySize.mdx
│   │   │   │   │   ├── reactCompiler.mdx
│   │   │   │   │   ├── reactMaxHeadersLength.mdx
│   │   │   │   │   ├── reactStrictMode.mdx
│   │   │   │   │   ├── redirects.mdx
│   │   │   │   │   ├── rewrites.mdx
│   │   │   │   │   ├── sassOptions.mdx
│   │   │   │   │   ├── serverActions.mdx
│   │   │   │   │   ├── serverComponentsHmrCache.mdx
│   │   │   │   │   ├── serverExternalPackages.mdx
│   │   │   │   │   ├── staleTimes.mdx
│   │   │   │   │   ├── staticGeneration.mdx
│   │   │   │   │   ├── taint.mdx
│   │   │   │   │   ├── trailingSlash.mdx
│   │   │   │   │   ├── transpilePackages.mdx
│   │   │   │   │   ├── turbopack.mdx
│   │   │   │   │   ├── turbopackFileSystemCache.mdx
│   │   │   │   │   ├── turbopackIgnoreIssue.mdx
│   │   │   │   │   ├── typedRoutes.mdx
│   │   │   │   │   ├── typescript.mdx
│   │   │   │   │   ├── urlImports.mdx
│   │   │   │   │   ├── useLightningcss.mdx
│   │   │   │   │   ├── viewTransition.mdx
│   │   │   │   │   ├── webVitalsAttribution.mdx
│   │   │   │   │   └── webpack.mdx
│   │   │   │   ├── 02-typescript.mdx
│   │   │   │   ├── 03-eslint.mdx
│   │   │   │   └── index.mdx
│   │   │   ├── 06-cli/
│   │   │   │   ├── create-next-app.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   └── next.mdx
│   │   │   ├── 07-adapters/
│   │   │   │   ├── 01-configuration.mdx
│   │   │   │   ├── 02-creating-an-adapter.mdx
│   │   │   │   ├── 03-api-reference.mdx
│   │   │   │   ├── 04-testing-adapters.mdx
│   │   │   │   ├── 05-routing-with-next-routing.mdx
│   │   │   │   ├── 06-implementing-ppr-in-an-adapter.mdx
│   │   │   │   ├── 07-runtime-integration.mdx
│   │   │   │   ├── 08-invoking-entrypoints.mdx
│   │   │   │   ├── 09-output-types.mdx
│   │   │   │   ├── 10-routing-information.mdx
│   │   │   │   ├── 11-use-cases.mdx
│   │   │   │   └── index.mdx
│   │   │   ├── 07-edge.mdx
│   │   │   ├── 08-turbopack.mdx
│   │   │   └── index.mdx
│   │   ├── 04-glossary.mdx
│   │   └── index.mdx
│   ├── 02-pages/
│   │   ├── 01-getting-started/
│   │   │   ├── 01-installation.mdx
│   │   │   ├── 02-project-structure.mdx
│   │   │   ├── 04-images.mdx
│   │   │   ├── 05-fonts.mdx
│   │   │   ├── 06-css.mdx
│   │   │   ├── 11-deploying.mdx
│   │   │   └── index.mdx
│   │   ├── 02-guides/
│   │   │   ├── analytics.mdx
│   │   │   ├── authentication.mdx
│   │   │   ├── babel.mdx
│   │   │   ├── ci-build-caching.mdx
│   │   │   ├── content-security-policy.mdx
│   │   │   ├── css-in-js.mdx
│   │   │   ├── custom-server.mdx
│   │   │   ├── debugging.mdx
│   │   │   ├── draft-mode.mdx
│   │   │   ├── environment-variables.mdx
│   │   │   ├── forms.mdx
│   │   │   ├── incremental-static-regeneration.mdx
│   │   │   ├── index.mdx
│   │   │   ├── instrumentation.mdx
│   │   │   ├── internationalization.mdx
│   │   │   ├── lazy-loading.mdx
│   │   │   ├── mdx.mdx
│   │   │   ├── migrating/
│   │   │   │   ├── app-router-migration.mdx
│   │   │   │   ├── from-create-react-app.mdx
│   │   │   │   ├── from-vite.mdx
│   │   │   │   └── index.mdx
│   │   │   ├── multi-zones.mdx
│   │   │   ├── open-telemetry.mdx
│   │   │   ├── package-bundling.mdx
│   │   │   ├── post-css.mdx
│   │   │   ├── preview-mode.mdx
│   │   │   ├── production-checklist.mdx
│   │   │   ├── redirecting.mdx
│   │   │   ├── sass.mdx
│   │   │   ├── scripts.mdx
│   │   │   ├── self-hosting.mdx
│   │   │   ├── static-exports.mdx
│   │   │   ├── tailwind-v3-css.mdx
│   │   │   ├── testing/
│   │   │   │   ├── cypress.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   ├── jest.mdx
│   │   │   │   ├── playwright.mdx
│   │   │   │   └── vitest.mdx
│   │   │   ├── third-party-libraries.mdx
│   │   │   └── upgrading/
│   │   │       ├── codemods.mdx
│   │   │       ├── index.mdx
│   │   │       ├── version-10.mdx
│   │   │       ├── version-11.mdx
│   │   │       ├── version-12.mdx
│   │   │       ├── version-13.mdx
│   │   │       ├── version-14.mdx
│   │   │       └── version-9.mdx
│   │   ├── 03-building-your-application/
│   │   │   ├── 01-routing/
│   │   │   │   ├── 01-pages-and-layouts.mdx
│   │   │   │   ├── 02-dynamic-routes.mdx
│   │   │   │   ├── 03-linking-and-navigating.mdx
│   │   │   │   ├── 05-custom-app.mdx
│   │   │   │   ├── 06-custom-document.mdx
│   │   │   │   ├── 07-api-routes.mdx
│   │   │   │   ├── 08-custom-error.mdx
│   │   │   │   └── index.mdx
│   │   │   ├── 02-rendering/
│   │   │   │   ├── 01-server-side-rendering.mdx
│   │   │   │   ├── 02-static-site-generation.mdx
│   │   │   │   ├── 04-automatic-static-optimization.mdx
│   │   │   │   ├── 05-client-side-rendering.mdx
│   │   │   │   └── index.mdx
│   │   │   ├── 03-data-fetching/
│   │   │   │   ├── 01-get-static-props.mdx
│   │   │   │   ├── 02-get-static-paths.mdx
│   │   │   │   ├── 03-forms-and-mutations.mdx
│   │   │   │   ├── 03-get-server-side-props.mdx
│   │   │   │   ├── 05-client-side.mdx
│   │   │   │   └── index.mdx
│   │   │   ├── 06-configuring/
│   │   │   │   ├── 12-error-handling.mdx
│   │   │   │   └── index.mdx
│   │   │   └── index.mdx
│   │   ├── 04-api-reference/
│   │   │   ├── 01-components/
│   │   │   │   ├── font.mdx
│   │   │   │   ├── form.mdx
│   │   │   │   ├── head.mdx
│   │   │   │   ├── image-legacy.mdx
│   │   │   │   ├── image.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   ├── link.mdx
│   │   │   │   └── script.mdx
│   │   │   ├── 02-file-conventions/
│   │   │   │   ├── index.mdx
│   │   │   │   ├── instrumentation.mdx
│   │   │   │   ├── proxy.mdx
│   │   │   │   ├── public-folder.mdx
│   │   │   │   └── src-folder.mdx
│   │   │   ├── 03-functions/
│   │   │   │   ├── get-initial-props.mdx
│   │   │   │   ├── get-server-side-props.mdx
│   │   │   │   ├── get-static-paths.mdx
│   │   │   │   ├── get-static-props.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   ├── next-request.mdx
│   │   │   │   ├── next-response.mdx
│   │   │   │   ├── use-params.mdx
│   │   │   │   ├── use-report-web-vitals.mdx
│   │   │   │   ├── use-router.mdx
│   │   │   │   ├── use-search-params.mdx
│   │   │   │   └── userAgent.mdx
│   │   │   ├── 04-config/
│   │   │   │   ├── 01-next-config-js/
│   │   │   │   │   ├── adapterPath.mdx
│   │   │   │   │   ├── allowedDevOrigins.mdx
│   │   │   │   │   ├── assetPrefix.mdx
│   │   │   │   │   ├── basePath.mdx
│   │   │   │   │   ├── bundlePagesRouterDependencies.mdx
│   │   │   │   │   ├── compress.mdx
│   │   │   │   │   ├── crossOrigin.mdx
│   │   │   │   │   ├── deploymentId.mdx
│   │   │   │   │   ├── devIndicators.mdx
│   │   │   │   │   ├── distDir.mdx
│   │   │   │   │   ├── env.mdx
│   │   │   │   │   ├── exportPathMap.mdx
│   │   │   │   │   ├── generateBuildId.mdx
│   │   │   │   │   ├── generateEtags.mdx
│   │   │   │   │   ├── headers.mdx
│   │   │   │   │   ├── httpAgentOptions.mdx
│   │   │   │   │   ├── images.mdx
│   │   │   │   │   ├── index.mdx
│   │   │   │   │   ├── logging.mdx
│   │   │   │   │   ├── onDemandEntries.mdx
│   │   │   │   │   ├── optimizePackageImports.mdx
│   │   │   │   │   ├── output.mdx
│   │   │   │   │   ├── pageExtensions.mdx
│   │   │   │   │   ├── poweredByHeader.mdx
│   │   │   │   │   ├── productionBrowserSourceMaps.mdx
│   │   │   │   │   ├── proxyClientMaxBodySize.mdx
│   │   │   │   │   ├── reactStrictMode.mdx
│   │   │   │   │   ├── redirects.mdx
│   │   │   │   │   ├── rewrites.mdx
│   │   │   │   │   ├── serverExternalPackages.mdx
│   │   │   │   │   ├── trailingSlash.mdx
│   │   │   │   │   ├── transpilePackages.mdx
│   │   │   │   │   ├── turbopack.mdx
│   │   │   │   │   ├── typescript.mdx
│   │   │   │   │   ├── urlImports.mdx
│   │   │   │   │   ├── useLightningcss.mdx
│   │   │   │   │   ├── webVitalsAttribution.mdx
│   │   │   │   │   └── webpack.mdx
│   │   │   │   ├── 01-typescript.mdx
│   │   │   │   ├── 02-eslint.mdx
│   │   │   │   └── index.mdx
│   │   │   ├── 05-cli/
│   │   │   │   ├── create-next-app.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   └── next.mdx
│   │   │   ├── 06-adapters/
│   │   │   │   ├── 01-configuration.mdx
│   │   │   │   ├── 02-creating-an-adapter.mdx
│   │   │   │   ├── 03-api-reference.mdx
│   │   │   │   ├── 04-testing-adapters.mdx
│   │   │   │   ├── 05-routing-with-next-routing.mdx
│   │   │   │   ├── 06-implementing-ppr-in-an-adapter.mdx
│   │   │   │   ├── 07-runtime-integration.mdx
│   │   │   │   ├── 08-invoking-entrypoints.mdx
│   │   │   │   ├── 09-output-types.mdx
│   │   │   │   ├── 10-routing-information.mdx
│   │   │   │   ├── 11-use-cases.mdx
│   │   │   │   └── index.mdx
│   │   │   ├── 06-edge.mdx
│   │   │   ├── 08-turbopack.mdx
│   │   │   └── index.mdx
│   │   └── index.mdx
│   ├── 03-architecture/
│   │   ├── accessibility.mdx
│   │   ├── fast-refresh.mdx
│   │   ├── index.mdx
│   │   ├── nextjs-compiler.mdx
│   │   └── supported-browsers.mdx
│   ├── 04-community/
│   │   ├── 01-contribution-guide.mdx
│   │   ├── 02-rspack.mdx
│   │   └── index.mdx
│   └── index.mdx
├── errors/
│   ├── 404-get-initial-props.mdx
│   ├── api-routes-response-size-limit.mdx
│   ├── api-routes-static-export.mdx
│   ├── app-container-deprecated.mdx
│   ├── app-dir-dynamic-href.mdx
│   ├── app-static-to-dynamic-error.mdx
│   ├── babel-font-loader-conflict.mdx
│   ├── blocking-route.mdx
│   ├── build-dir-not-writeable.mdx
│   ├── built-in-css-disabled.mdx
│   ├── built-in-next-font.mdx
│   ├── cache-bypass-in-dev.mdx
│   ├── can-not-output-to-public.mdx
│   ├── can-not-output-to-static.mdx
│   ├── cant-override-next-props.mdx
│   ├── circular-structure.mdx
│   ├── class-component-in-server-component.mdx
│   ├── client-side-exception-occurred.mdx
│   ├── config-resolve-alias.mdx
│   ├── conflicting-public-file-page.mdx
│   ├── conflicting-ssg-paths.mdx
│   ├── context-in-server-component.mdx
│   ├── css-global.mdx
│   ├── css-modules-npm.mdx
│   ├── css-npm.mdx
│   ├── custom-document-image-import.mdx
│   ├── custom-error-no-custom-404.mdx
│   ├── deleting-query-params-in-proxy.mdx
│   ├── deopted-into-client-rendering.mdx
│   ├── deploymentid-invalid-characters.mdx
│   ├── deploymentid-not-a-string.mdx
│   ├── deprecated-analyticsid.mdx
│   ├── deprecated-target-config.mdx
│   ├── doc-crossorigin-deprecated.mdx
│   ├── duplicate-sass.mdx
│   ├── dynamic-server-error.mdx
│   ├── edge-dynamic-code-evaluation.mdx
│   ├── empty-configuration.mdx
│   ├── empty-generate-static-params.mdx
│   ├── empty-object-getInitialProps.mdx
│   ├── env-key-not-allowed.mdx
│   ├── env-loading-disabled.mdx
│   ├── experimental-app-dir-config.mdx
│   ├── experimental-jest-transformer.mdx
│   ├── export-all-in-page.mdx
│   ├── export-image-api.mdx
│   ├── export-no-custom-routes.mdx
│   ├── export-no-i18n.mdx
│   ├── export-path-mismatch.mdx
│   ├── failed-loading-swc.mdx
│   ├── failed-to-fetch-devpagesmanifest.mdx
│   ├── failed-to-find-server-action.mdx
│   ├── fast-refresh-reload.mdx
│   ├── future-webpack5-moved-to-webpack5.mdx
│   ├── generatebuildid-not-a-string.mdx
│   ├── get-initial-props-as-an-instance-method.mdx
│   ├── get-initial-props-export.mdx
│   ├── google-font-display.mdx
│   ├── google-font-preconnect.mdx
│   ├── google-fonts-missing-subsets.mdx
│   ├── gsp-redirect-during-prerender.mdx
│   ├── gssp-component-member.mdx
│   ├── gssp-export.mdx
│   ├── gssp-mixed-not-found-redirect.mdx
│   ├── gssp-no-mutating-res.mdx
│   ├── head-build-id.mdx
│   ├── href-interpolation-failed.mdx
│   ├── ignored-compiler-options.mdx
│   ├── import-esm-externals.mdx
│   ├── import-next.mdx
│   ├── improper-devtool.mdx
│   ├── incompatible-href-as.mdx
│   ├── inline-script-id.mdx
│   ├── install-sass.mdx
│   ├── install-sharp.mdx
│   ├── invalid-api-status-body.mdx
│   ├── invalid-assetprefix.mdx
│   ├── invalid-dynamic-options-type.mdx
│   ├── invalid-dynamic-suspense.mdx
│   ├── invalid-external-rewrite.mdx
│   ├── invalid-getserversideprops-value.mdx
│   ├── invalid-getstaticpaths-value.mdx
│   ├── invalid-getstaticprops-value.mdx
│   ├── invalid-href-passed.mdx
│   ├── invalid-i18n-config.mdx
│   ├── invalid-images-config.mdx
│   ├── invalid-instant-configuration.mdx
│   ├── invalid-multi-match.mdx
│   ├── invalid-new-link-with-extra-anchor.mdx
│   ├── invalid-next-config.mdx
│   ├── invalid-page-config.mdx
│   ├── invalid-project-dir-casing.mdx
│   ├── invalid-react-version.mdx
│   ├── invalid-redirect-gssp.mdx
│   ├── invalid-relative-url-external-as.mdx
│   ├── invalid-resolve-alias.mdx
│   ├── invalid-route-source.mdx
│   ├── invalid-script.mdx
│   ├── invalid-segment-export.mdx
│   ├── invalid-server-options.mdx
│   ├── invalid-styled-jsx-children.mdx
│   ├── invalid-use-server-value.mdx
│   ├── invalid-webpack-5-version.mdx
│   ├── large-page-data.mdx
│   ├── link-multiple-children.mdx
│   ├── link-no-children.mdx
│   ├── link-passhref.mdx
│   ├── max-custom-routes-reached.mdx
│   ├── middleware-to-proxy.mdx
│   ├── middleware-upgrade-guide.mdx
│   ├── minification-disabled.mdx
│   ├── missing-data-scroll-behavior.mdx
│   ├── missing-document-component.mdx
│   ├── missing-env-value.mdx
│   ├── missing-root-layout-tags.mdx
│   ├── missing-suspense-with-csr-bailout.mdx
│   ├── module-not-found.mdx
│   ├── multi-tabs.mdx
│   ├── nested-proxy.mdx
│   ├── nested-reserved-page.mdx
│   ├── nested-styled-jsx-tags.mdx
│   ├── nested-use-cache-no-explicit-cachelife.mdx
│   ├── next-config-error.mdx
│   ├── next-dynamic-api-wrong-context.mdx
│   ├── next-dynamic-modules.mdx
│   ├── next-export-no-build-id.mdx
│   ├── next-export-serverless.mdx
│   ├── next-head-count-missing.mdx
│   ├── next-image-missing-loader-width.mdx
│   ├── next-image-missing-loader.mdx
│   ├── next-image-unconfigured-host.mdx
│   ├── next-image-unconfigured-localpatterns.mdx
│   ├── next-image-unconfigured-qualities.mdx
│   ├── next-image-upgrade-to-13.mdx
│   ├── next-prerender-crypto-client.mdx
│   ├── next-prerender-crypto.mdx
│   ├── next-prerender-current-time-client.mdx
│   ├── next-prerender-current-time.mdx
│   ├── next-prerender-dynamic-metadata.mdx
│   ├── next-prerender-dynamic-viewport.mdx
│   ├── next-prerender-random-client.mdx
│   ├── next-prerender-random.mdx
│   ├── next-prerender-runtime-crypto.mdx
│   ├── next-prerender-runtime-current-time.mdx
│   ├── next-prerender-runtime-random.mdx
│   ├── next-prerender-sync-headers.mdx
│   ├── next-prerender-sync-params.mdx
│   ├── next-prerender-sync-request.mdx
│   ├── next-request-in-use-cache.mdx
│   ├── next-response-next-in-app-route-handler.mdx
│   ├── next-router-not-mounted.mdx
│   ├── next-script-for-ga.mdx
│   ├── next-start-serverless.mdx
│   ├── no-assign-module-variable.mdx
│   ├── no-async-client-component.mdx
│   ├── no-before-interactive-script-outside-document.mdx
│   ├── no-cache.mdx
│   ├── no-css-tags.mdx
│   ├── no-document-import-in-page.mdx
│   ├── no-document-title.mdx
│   ├── no-document-viewport-meta.mdx
│   ├── no-duplicate-head.mdx
│   ├── no-head-element.mdx
│   ├── no-head-import-in-document.mdx
│   ├── no-html-link-for-pages.mdx
│   ├── no-img-element.mdx
│   ├── no-on-app-updated-hook.mdx
│   ├── no-page-custom-font.mdx
│   ├── no-router-instance.mdx
│   ├── no-script-component-in-head.mdx
│   ├── no-script-in-document.mdx
│   ├── no-script-tags-in-head-component.mdx
│   ├── no-server-import-in-page.mdx
│   ├── no-styled-jsx-in-document.mdx
│   ├── no-stylesheets-in-head-component.mdx
│   ├── no-sync-scripts.mdx
│   ├── no-title-in-document-head.mdx
│   ├── no-unwanted-polyfillio.mdx
│   ├── node-module-in-edge-runtime.mdx
│   ├── non-dynamic-getstaticpaths-usage.mdx
│   ├── non-standard-node-env.mdx
│   ├── nonce-contained-invalid-characters.mdx
│   ├── opening-an-issue.mdx
│   ├── opt-out-auto-static-optimization.mdx
│   ├── opt-out-automatic-prerendering.mdx
│   ├── page-data-collection-timeout.mdx
│   ├── page-without-valid-component.mdx
│   ├── parallel-build-without-worker.mdx
│   ├── placeholder-blur-data-url.mdx
│   ├── popstate-state-empty.mdx
│   ├── postcss-function.mdx
│   ├── postcss-ignored-plugin.mdx
│   ├── postcss-shape.mdx
│   ├── ppr-caught-error.mdx
│   ├── ppr-preview.mdx
│   ├── prefetch-true-deprecated.mdx
│   ├── prerender-error.mdx
│   ├── production-start-no-build-id.mdx
│   ├── promise-in-next-config.mdx
│   ├── proxy-dynamic-wasm-compilation.mdx
│   ├── proxy-new-signature.mdx
│   ├── proxy-parse-user-agent.mdx
│   ├── proxy-relative-urls.mdx
│   ├── proxy-request-page.mdx
│   ├── proxy-user-agent.mdx
│   ├── public-next-folder-conflict.mdx
│   ├── react-client-hook-in-server-component.mdx
│   ├── react-hydration-error.mdx
│   ├── react-version.mdx
│   ├── render-no-starting-slash.mdx
│   ├── reserved-page-prop.mdx
│   ├── reserved-port.mdx
│   ├── revalidate-tag-single-arg.mdx
│   ├── rewrite-auto-export-fallback.mdx
│   ├── routes-must-be-array.mdx
│   ├── sharp-missing-in-production.mdx
│   ├── sharp-version-avif.mdx
│   ├── slot-missing-default.mdx
│   ├── ssg-fallback-true-export.mdx
│   ├── static-dir-deprecated.mdx
│   ├── static-page-generation-timeout.mdx
│   ├── swc-disabled.mdx
│   ├── swc-minify-enabled.mdx
│   ├── sync-dynamic-apis.mdx
│   ├── template.txt
│   ├── threw-undefined.mdx
│   ├── undefined-webpack-config.mdx
│   ├── url-deprecated.mdx
│   ├── version-staleness.mdx
│   ├── webpack-build-worker-opt-out.mdx
│   └── webpack5.mdx
├── eslint.cli.config.mjs
├── eslint.config.mjs
├── evals/
│   ├── README.md
│   ├── evals/
│   │   ├── .gitignore
│   │   ├── agent-000-app-router-migration-simple/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   ├── pages/
│   │   │   │   ├── _app.tsx
│   │   │   │   ├── _document.tsx
│   │   │   │   ├── about.tsx
│   │   │   │   └── index.tsx
│   │   │   └── tsconfig.json
│   │   ├── agent-021-avoid-fetch-in-effect/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── ProductList.tsx
│   │   │   │   ├── UserProfile.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-022-prefer-server-actions/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── ContactForm.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-023-avoid-getserversideprops/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── UserDashboard.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-024-avoid-redundant-usestate/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── UserStats.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-025-prefer-next-link/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── Navigation.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-026-no-serial-await/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── Dashboard.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-027-prefer-next-image/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── ProductGallery.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-028-prefer-next-font/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── BlogHeader.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-029-use-cache-directive/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── lib/
│   │   │   │   └── db.js
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-030-app-router-migration-hard/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── components/
│   │   │   │   └── AppProvider.js
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   ├── pages/
│   │   │   │   ├── 404.js
│   │   │   │   ├── _app.js
│   │   │   │   ├── _document.js
│   │   │   │   ├── _error.js
│   │   │   │   ├── api/
│   │   │   │   │   └── posts/
│   │   │   │   │       ├── [id].js
│   │   │   │   │       └── index.js
│   │   │   │   ├── blog/
│   │   │   │   │   ├── [id].js
│   │   │   │   │   └── index.js
│   │   │   │   └── index.js
│   │   │   ├── styles/
│   │   │   │   └── globals.css
│   │   │   └── tsconfig.json
│   │   ├── agent-031-proxy-middleware/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-032-use-cache-directive/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── lib/
│   │   │   │   └── api.ts
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-033-forbidden-auth/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── lib/
│   │   │   │   │   └── auth.ts
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-034-async-cookies/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-035-connection-dynamic/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-036-after-response/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-037-updatetag-cache/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-038-refresh-settings/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   └── page.tsx
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-039-indirect-proxy/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-040-unstable-instant/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── page.tsx
│   │   │   │   └── product/
│   │   │   │       └── page.tsx
│   │   │   ├── lib/
│   │   │   │   └── data.ts
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-041-optimize-ppr-shell/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── CardStats.tsx
│   │   │   │   ├── LatestInvoices.tsx
│   │   │   │   ├── RevenueChart.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── loading.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   └── agent-042-enable-ppr/
│   │       ├── EVAL.ts
│   │       ├── PROMPT.md
│   │       ├── app/
│   │       │   ├── ProductList.tsx
│   │       │   ├── Recommendations.tsx
│   │       │   ├── layout.tsx
│   │       │   └── page.tsx
│   │       ├── next.config.ts
│   │       ├── package.json
│   │       └── tsconfig.json
│   ├── lib/
│   │   └── setup.ts
│   └── tsconfig.json
├── examples/
│   ├── .prettierrc.json
│   ├── active-class-name/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── [slug]/
│   │   │   │   └── page.tsx
│   │   │   ├── about/
│   │   │   │   └── page.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── news/
│   │   │   │   └── page.tsx
│   │   │   └── page.tsx
│   │   ├── components/
│   │   │   ├── ActiveLink.tsx
│   │   │   └── Nav.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── api-routes-apollo-server/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── [username].tsx
│   │   │   ├── api/
│   │   │   │   └── graphql.ts
│   │   │   └── index.tsx
│   │   ├── shared/
│   │   │   └── query-graphql/
│   │   │       └── index.ts
│   │   └── tsconfig.json
│   ├── api-routes-apollo-server-and-client/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── apollo/
│   │   │   ├── client.tsx
│   │   │   ├── resolvers.ts
│   │   │   ├── schema.ts
│   │   │   └── type-defs.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── about.tsx
│   │   │   ├── api/
│   │   │   │   └── graphql.ts
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── api-routes-apollo-server-and-client-auth/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── apollo/
│   │   │   ├── client.tsx
│   │   │   ├── resolvers.ts
│   │   │   ├── schema.ts
│   │   │   └── type-defs.ts
│   │   ├── components/
│   │   │   └── field.tsx
│   │   ├── lib/
│   │   │   ├── auth-cookies.ts
│   │   │   ├── auth.ts
│   │   │   ├── form.ts
│   │   │   └── user.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── about.tsx
│   │   │   ├── api/
│   │   │   │   └── graphql.ts
│   │   │   ├── index.tsx
│   │   │   ├── signin.tsx
│   │   │   ├── signout.tsx
│   │   │   └── signup.tsx
│   │   └── tsconfig.json
│   ├── api-routes-cors/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── api/
│   │   │   │   └── cors.ts
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── api-routes-graphql/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── api/
│   │   │   │   └── graphql.ts
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── api-routes-middleware/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── api/
│   │   │   │   └── cookies.ts
│   │   │   └── index.tsx
│   │   ├── tsconfig.json
│   │   └── utils/
│   │       └── cookies.ts
│   ├── api-routes-rest/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── interfaces/
│   │   │   └── index.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── api/
│   │   │   │   ├── user/
│   │   │   │   │   └── [id].ts
│   │   │   │   └── users.ts
│   │   │   ├── index.tsx
│   │   │   └── user/
│   │   │       └── [id].tsx
│   │   └── tsconfig.json
│   ├── auth/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── api/
│   │   │   │   └── auth/
│   │   │   │       └── [...nextauth]/
│   │   │   │           └── route.ts
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── auth.ts
│   │   ├── middleware.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── auth-with-stytch/
│   │   ├── .gitignore
│   │   └── readme.md
│   ├── auth0/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── additional.d.ts
│   │   ├── components/
│   │   │   ├── header.tsx
│   │   │   └── layout.tsx
│   │   ├── interfaces/
│   │   │   └── index.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── about.tsx
│   │   │   ├── advanced/
│   │   │   │   ├── api-profile.tsx
│   │   │   │   └── ssr-profile.tsx
│   │   │   ├── api/
│   │   │   │   ├── auth/
│   │   │   │   │   └── [...auth0].tsx
│   │   │   │   └── protected-api.ts
│   │   │   ├── index.tsx
│   │   │   └── profile.tsx
│   │   └── tsconfig.json
│   ├── basic-css/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── styles.module.css
│   │   └── tsconfig.json
│   ├── blog/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── _document.tsx
│   │   │   ├── index.mdx
│   │   │   ├── photos.mdx
│   │   │   ├── posts/
│   │   │   │   ├── index.md
│   │   │   │   ├── markdown.md
│   │   │   │   └── pages.md
│   │   │   └── tags/
│   │   │       └── [tag].mdx
│   │   ├── scripts/
│   │   │   └── gen-rss.js
│   │   ├── styles/
│   │   │   └── main.css
│   │   ├── theme.config.js
│   │   └── tsconfig.json
│   ├── blog-starter/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── _posts/
│   │   │   ├── dynamic-routing.md
│   │   │   ├── hello-world.md
│   │   │   └── preview.md
│   │   ├── package.json
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── src/
│   │   │   ├── app/
│   │   │   │   ├── _components/
│   │   │   │   │   ├── alert.tsx
│   │   │   │   │   ├── avatar.tsx
│   │   │   │   │   ├── container.tsx
│   │   │   │   │   ├── cover-image.tsx
│   │   │   │   │   ├── date-formatter.tsx
│   │   │   │   │   ├── footer.tsx
│   │   │   │   │   ├── header.tsx
│   │   │   │   │   ├── hero-post.tsx
│   │   │   │   │   ├── intro.tsx
│   │   │   │   │   ├── markdown-styles.module.css
│   │   │   │   │   ├── more-stories.tsx
│   │   │   │   │   ├── post-body.tsx
│   │   │   │   │   ├── post-header.tsx
│   │   │   │   │   ├── post-preview.tsx
│   │   │   │   │   ├── post-title.tsx
│   │   │   │   │   ├── section-separator.tsx
│   │   │   │   │   ├── switch.module.css
│   │   │   │   │   └── theme-switcher.tsx
│   │   │   │   ├── globals.css
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── page.tsx
│   │   │   │   └── posts/
│   │   │   │       └── [slug]/
│   │   │   │           └── page.tsx
│   │   │   ├── interfaces/
│   │   │   │   ├── author.ts
│   │   │   │   └── post.ts
│   │   │   └── lib/
│   │   │       ├── api.ts
│   │   │       ├── constants.ts
│   │   │       └── markdownToHtml.ts
│   │   ├── tailwind.config.ts
│   │   └── tsconfig.json
│   ├── blog-with-comment/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── _posts/
│   │   │   ├── long-expected-party.md
│   │   │   ├── passing-of-grey-company.md
│   │   │   ├── prancing-pony.md
│   │   │   └── riders-of-rohan.md
│   │   ├── components/
│   │   │   ├── comment/
│   │   │   │   ├── form.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   └── list.tsx
│   │   │   ├── container.tsx
│   │   │   └── header.tsx
│   │   ├── environment.d.ts
│   │   ├── hooks/
│   │   │   └── useComment.ts
│   │   ├── interfaces/
│   │   │   └── index.ts
│   │   ├── lib/
│   │   │   ├── clearUrl.ts
│   │   │   ├── createComment.ts
│   │   │   ├── dateRelative.ts
│   │   │   ├── deleteComment.ts
│   │   │   ├── fetchComment.ts
│   │   │   ├── getPost.ts
│   │   │   ├── getUser.ts
│   │   │   ├── markdownToHtml.ts
│   │   │   └── redis.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── _document.tsx
│   │   │   ├── api/
│   │   │   │   └── comment.ts
│   │   │   ├── index.tsx
│   │   │   └── posts/
│   │   │       ├── [slug].tsx
│   │   │       └── index.tsx
│   │   ├── postcss.config.js
│   │   ├── tailwind.config.js
│   │   └── tsconfig.json
│   ├── cache-handler-redis/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── [timezone]/
│   │   │   │   └── page.tsx
│   │   │   ├── cache-state-watcher.tsx
│   │   │   ├── global.css
│   │   │   ├── layout.tsx
│   │   │   ├── revalidate-from.tsx
│   │   │   └── server-actions.ts
│   │   ├── cache-handler.js
│   │   ├── compose.yaml
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── cloudflare-turnstile/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app.css
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── api/
│   │   │   │   └── handler.ts
│   │   │   ├── explicit.tsx
│   │   │   └── implicit.tsx
│   │   └── tsconfig.json
│   ├── cms-agilitycms/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.tsx
│   │   │   ├── avatar.tsx
│   │   │   ├── container.tsx
│   │   │   ├── cover-image.tsx
│   │   │   ├── date.tsx
│   │   │   ├── footer.tsx
│   │   │   ├── header.tsx
│   │   │   ├── hero-post.tsx
│   │   │   ├── intro.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.tsx
│   │   │   ├── more-stories.tsx
│   │   │   ├── post-body.tsx
│   │   │   ├── post-details.tsx
│   │   │   ├── post-header.tsx
│   │   │   ├── post-preview.tsx
│   │   │   ├── post-title.tsx
│   │   │   └── section-separator.tsx
│   │   ├── environment.d.ts
│   │   ├── lib/
│   │   │   ├── api.ts
│   │   │   ├── components/
│   │   │   │   ├── content-zone.tsx
│   │   │   │   ├── image.tsx
│   │   │   │   ├── one-column-template.tsx
│   │   │   │   ├── page-template.tsx
│   │   │   │   └── rich-text-area.tsx
│   │   │   ├── constants.ts
│   │   │   ├── dependencies.ts
│   │   │   ├── normalize.ts
│   │   │   ├── preview.ts
│   │   │   ├── use-preview-redirect.ts
│   │   │   └── utils.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── [...slug].tsx
│   │   │   ├── _app.tsx
│   │   │   ├── _document.tsx
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.ts
│   │   │   │   └── preview.ts
│   │   │   └── index.ts
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   ├── tailwind.config.js
│   │   └── tsconfig.json
│   ├── cms-builder-io/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── builder/
│   │   │   ├── author/
│   │   │   │   ├── joe-public.json
│   │   │   │   ├── johnny-doe.json
│   │   │   │   └── schema.model.json
│   │   │   ├── post/
│   │   │   │   ├── first-one.json
│   │   │   │   ├── schema.model.json
│   │   │   │   └── second.json
│   │   │   └── settings.json
│   │   ├── components/
│   │   │   ├── alert.js
│   │   │   ├── avatar.js
│   │   │   ├── builder-image.js
│   │   │   ├── container.js
│   │   │   ├── cover-image.js
│   │   │   ├── date.js
│   │   │   ├── footer.js
│   │   │   ├── header.js
│   │   │   ├── hero-post.js
│   │   │   ├── intro.js
│   │   │   ├── layout.js
│   │   │   ├── meta.js
│   │   │   ├── more-stories.js
│   │   │   ├── post-body.js
│   │   │   ├── post-header.js
│   │   │   ├── post-preview.js
│   │   │   ├── post-title.js
│   │   │   └── section-separator.js
│   │   ├── jsconfig.json
│   │   ├── lib/
│   │   │   ├── api.js
│   │   │   └── constants.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.js
│   │   │   │   └── preview.js
│   │   │   ├── index.js
│   │   │   └── posts/
│   │   │       └── [slug].js
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   └── tailwind.config.js
│   ├── cms-buttercms/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app.json
│   │   ├── components/
│   │   │   ├── author-card.js
│   │   │   ├── blog/
│   │   │   │   ├── blog.js
│   │   │   │   ├── categories-widget.js
│   │   │   │   ├── post-preview-condensed.js
│   │   │   │   ├── post-preview.js
│   │   │   │   ├── posts-list.js
│   │   │   │   └── search-widget.js
│   │   │   ├── footer-section.js
│   │   │   ├── header-section.js
│   │   │   ├── human-date.js
│   │   │   ├── landing-page-sections/
│   │   │   │   ├── feature.js
│   │   │   │   ├── features.js
│   │   │   │   ├── hero.js
│   │   │   │   ├── landing-page-section.js
│   │   │   │   ├── missing-section.js
│   │   │   │   ├── testimonial.js
│   │   │   │   ├── testimonials.js
│   │   │   │   └── two-column-with-image.js
│   │   │   ├── main-menu/
│   │   │   │   ├── main-menu-link.js
│   │   │   │   └── main-menu.js
│   │   │   ├── missing-token-section.js
│   │   │   ├── preloader.js
│   │   │   └── scroll-to-top-button.js
│   │   ├── css/
│   │   │   ├── lineicons.css
│   │   │   └── main.css
│   │   ├── jsconfig.json
│   │   ├── lib/
│   │   │   └── api.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── pages/
│   │       ├── _app.js
│   │       ├── _document.js
│   │       ├── blog/
│   │       │   ├── [slug].js
│   │       │   ├── category/
│   │       │   │   └── [slug].js
│   │       │   ├── search.js
│   │       │   └── tag/
│   │       │       └── [slug].js
│   │       ├── blog.js
│   │       ├── landing-page/
│   │       │   └── [slug].js
│   │       └── missing-token.js
│   ├── cms-contentful/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── api/
│   │   │   │   ├── disable-draft/
│   │   │   │   │   └── route.ts
│   │   │   │   ├── draft/
│   │   │   │   │   └── route.ts
│   │   │   │   └── revalidate/
│   │   │   │       └── route.ts
│   │   │   ├── avatar.tsx
│   │   │   ├── cover-image.tsx
│   │   │   ├── date.tsx
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   ├── more-stories.tsx
│   │   │   ├── page.tsx
│   │   │   └── posts/
│   │   │       └── [slug]/
│   │   │           └── page.tsx
│   │   ├── lib/
│   │   │   ├── api.ts
│   │   │   ├── constants.ts
│   │   │   ├── contentful-image.tsx
│   │   │   ├── export.json
│   │   │   ├── markdown.tsx
│   │   │   └── setup.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── postcss.config.js
│   │   ├── tailwind.config.ts
│   │   └── tsconfig.json
│   ├── cms-cosmic/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.tsx
│   │   │   ├── avatar.tsx
│   │   │   ├── container.tsx
│   │   │   ├── cover-image.tsx
│   │   │   ├── date.tsx
│   │   │   ├── footer.tsx
│   │   │   ├── header.tsx
│   │   │   ├── hero-post.tsx
│   │   │   ├── intro.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.tsx
│   │   │   ├── more-stories.tsx
│   │   │   ├── post-body.tsx
│   │   │   ├── post-header.tsx
│   │   │   ├── post-preview.tsx
│   │   │   ├── post-title.tsx
│   │   │   └── section-separator.tsx
│   │   ├── interfaces/
│   │   │   └── index.ts
│   │   ├── jsconfig.json
│   │   ├── lib/
│   │   │   ├── api.tsx
│   │   │   ├── constants.ts
│   │   │   └── markdownToHtml.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── _document.tsx
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.ts
│   │   │   │   └── preview.ts
│   │   │   ├── index.tsx
│   │   │   └── posts/
│   │   │       └── [slug].tsx
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   ├── tailwind.config.js
│   │   └── tsconfig.json
│   ├── cms-datocms/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.js
│   │   │   ├── avatar.js
│   │   │   ├── container.js
│   │   │   ├── cover-image.js
│   │   │   ├── date.js
│   │   │   ├── footer.js
│   │   │   ├── header.js
│   │   │   ├── hero-post.js
│   │   │   ├── intro.js
│   │   │   ├── layout.js
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.js
│   │   │   ├── more-stories.js
│   │   │   ├── post-body.js
│   │   │   ├── post-header.js
│   │   │   ├── post-preview.js
│   │   │   ├── post-title.js
│   │   │   └── section-separator.js
│   │   ├── jsconfig.json
│   │   ├── lib/
│   │   │   ├── api.js
│   │   │   ├── constants.js
│   │   │   └── markdownToHtml.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── _document.js
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.js
│   │   │   │   └── preview.js
│   │   │   ├── index.js
│   │   │   └── posts/
│   │   │       └── [slug].js
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   └── tailwind.config.js
│   ├── cms-dotcms/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.tsx
│   │   │   ├── avatar.tsx
│   │   │   ├── blocks.tsx
│   │   │   ├── container.tsx
│   │   │   ├── content-blocks.tsx
│   │   │   ├── cover-image.tsx
│   │   │   ├── date.tsx
│   │   │   ├── dotcms-image.tsx
│   │   │   ├── footer.tsx
│   │   │   ├── header.tsx
│   │   │   ├── hero-post.tsx
│   │   │   ├── intro.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── meta.tsx
│   │   │   ├── more-stories.tsx
│   │   │   ├── post-body.tsx
│   │   │   ├── post-header.tsx
│   │   │   ├── post-preview.tsx
│   │   │   ├── post-title.tsx
│   │   │   └── section-separator.tsx
│   │   ├── lib/
│   │   │   ├── api.ts
│   │   │   └── constants.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.tsx
│   │   │   │   └── preview.tsx
│   │   │   ├── index.tsx
│   │   │   └── posts/
│   │   │       └── [slug].tsx
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   ├── tailwind.config.js
│   │   └── tsconfig.json
│   ├── cms-drupal/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.js
│   │   │   ├── avatar.js
│   │   │   ├── categories.js
│   │   │   ├── container.js
│   │   │   ├── cover-image.js
│   │   │   ├── date.js
│   │   │   ├── footer.js
│   │   │   ├── header.js
│   │   │   ├── hero-post.js
│   │   │   ├── intro.js
│   │   │   ├── layout.js
│   │   │   ├── meta.js
│   │   │   ├── more-stories.js
│   │   │   ├── post-body.js
│   │   │   ├── post-body.module.css
│   │   │   ├── post-header.js
│   │   │   ├── post-preview.js
│   │   │   ├── post-title.js
│   │   │   ├── section-separator.js
│   │   │   └── tags.js
│   │   ├── lib/
│   │   │   ├── api.js
│   │   │   └── constants.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── [...slug].js
│   │   │   ├── _app.js
│   │   │   ├── _document.js
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.js
│   │   │   │   └── preview.js
│   │   │   └── index.js
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   └── tailwind.config.js
│   ├── cms-enterspeed/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.tsx
│   │   │   ├── avatar.tsx
│   │   │   ├── categories.tsx
│   │   │   ├── container.tsx
│   │   │   ├── cover-image.tsx
│   │   │   ├── date.tsx
│   │   │   ├── footer.tsx
│   │   │   ├── header.tsx
│   │   │   ├── hero-post.tsx
│   │   │   ├── intro.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── meta.tsx
│   │   │   ├── more-stories.tsx
│   │   │   ├── post-body.module.css
│   │   │   ├── post-body.tsx
│   │   │   ├── post-header.tsx
│   │   │   ├── post-preview.tsx
│   │   │   ├── post-title.tsx
│   │   │   ├── section-separator.tsx
│   │   │   └── tags.tsx
│   │   ├── lib/
│   │   │   ├── api.ts
│   │   │   └── constants.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.js
│   │   │   │   └── preview.js
│   │   │   ├── index.tsx
│   │   │   └── posts/
│   │   │       └── [slug].tsx
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   ├── tailwind.config.js
│   │   ├── tsconfig.json
│   │   └── types/
│   │       ├── authorType.ts
│   │       └── postType.ts
│   ├── cms-ghost/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.js
│   │   │   ├── avatar.js
│   │   │   ├── container.js
│   │   │   ├── cover-image.js
│   │   │   ├── date.js
│   │   │   ├── footer.js
│   │   │   ├── header.js
│   │   │   ├── hero-post.js
│   │   │   ├── intro.js
│   │   │   ├── layout.js
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.js
│   │   │   ├── more-stories.js
│   │   │   ├── post-body.js
│   │   │   ├── post-header.js
│   │   │   ├── post-preview.js
│   │   │   ├── post-title.js
│   │   │   └── section-separator.js
│   │   ├── jsconfig.json
│   │   ├── lib/
│   │   │   ├── api.js
│   │   │   ├── constants.js
│   │   │   └── defaults.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── _document.js
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.js
│   │   │   │   └── preview.js
│   │   │   ├── index.js
│   │   │   └── posts/
│   │   │       └── [slug].js
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   └── tailwind.config.js
│   ├── cms-graphcms/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.js
│   │   │   ├── avatar.js
│   │   │   ├── container.js
│   │   │   ├── cover-image.js
│   │   │   ├── date.js
│   │   │   ├── footer.js
│   │   │   ├── header.js
│   │   │   ├── hero-post.js
│   │   │   ├── intro.js
│   │   │   ├── layout.js
│   │   │   ├── meta.js
│   │   │   ├── more-stories.js
│   │   │   ├── post-body.js
│   │   │   ├── post-header.js
│   │   │   ├── post-preview.js
│   │   │   ├── post-styles.module.css
│   │   │   ├── post-title.js
│   │   │   └── section-separator.js
│   │   ├── jsconfig.json
│   │   ├── lib/
│   │   │   ├── constants.js
│   │   │   └── graphcms.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── _document.js
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.js
│   │   │   │   └── preview.js
│   │   │   ├── index.js
│   │   │   └── posts/
│   │   │       └── [slug].js
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   └── tailwind.config.js
│   ├── cms-keystonejs-embedded/
│   │   ├── .gitignore
│   │   └── README.md
│   ├── cms-kontent-ai/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.tsx
│   │   │   ├── avatar.tsx
│   │   │   ├── container.tsx
│   │   │   ├── cover-image.tsx
│   │   │   ├── date-formatter.tsx
│   │   │   ├── footer.tsx
│   │   │   ├── header.tsx
│   │   │   ├── hero-post.tsx
│   │   │   ├── image.tsx
│   │   │   ├── intro.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.tsx
│   │   │   ├── more-stories.tsx
│   │   │   ├── post-body.tsx
│   │   │   ├── post-header.tsx
│   │   │   ├── post-preview.tsx
│   │   │   ├── post-title.tsx
│   │   │   └── section-separator.tsx
│   │   ├── lib/
│   │   │   ├── api.ts
│   │   │   ├── constants.ts
│   │   │   └── markdownToHtml.ts
│   │   ├── models/
│   │   │   ├── content-type-snippets/
│   │   │   │   └── index.ts
│   │   │   ├── content-types/
│   │   │   │   ├── author.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── post.ts
│   │   │   ├── index.ts
│   │   │   ├── project/
│   │   │   │   ├── assetFolders.ts
│   │   │   │   ├── collections.ts
│   │   │   │   ├── contentTypeSnippets.ts
│   │   │   │   ├── contentTypes.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── languages.ts
│   │   │   │   ├── roles.ts
│   │   │   │   ├── taxonomies.ts
│   │   │   │   ├── webhooks.ts
│   │   │   │   └── workflows.ts
│   │   │   └── taxonomies/
│   │   │       └── index.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── _document.tsx
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.ts
│   │   │   │   └── preview.ts
│   │   │   ├── index.tsx
│   │   │   └── posts/
│   │   │       └── [slug].tsx
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   ├── tailwind.config.js
│   │   ├── tsconfig.json
│   │   └── viewmodels/
│   │       ├── author.ts
│   │       └── post.ts
│   ├── cms-makeswift/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── lib/
│   │   │   └── makeswift/
│   │   │       └── register-components.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── [[...path]].tsx
│   │   │   ├── _document.ts
│   │   │   └── api/
│   │   │       └── makeswift/
│   │   │           └── [...makeswift].ts
│   │   └── tsconfig.json
│   ├── cms-payload/
│   │   ├── .gitignore
│   │   ├── .npmrc
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── (payload)/
│   │   │   │   └── admin/
│   │   │   │       ├── [...slug]/
│   │   │   │       │   └── page.tsx
│   │   │   │       └── page.tsx
│   │   │   ├── (site)/
│   │   │   │   ├── [slug]/
│   │   │   │   │   └── page.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   └── layout.tsx
│   │   ├── components/
│   │   │   ├── AdminBar/
│   │   │   │   ├── index.module.scss
│   │   │   │   └── index.tsx
│   │   │   ├── BackgroundColor/
│   │   │   │   ├── index.module.scss
│   │   │   │   └── index.tsx
│   │   │   ├── Blocks/
│   │   │   │   ├── CallToAction/
│   │   │   │   │   ├── index.module.scss
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── Content/
│   │   │   │   │   ├── index.module.scss
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── MediaBlock/
│   │   │   │   │   ├── index.module.scss
│   │   │   │   │   └── index.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── Button/
│   │   │   │   ├── index.module.scss
│   │   │   │   └── index.tsx
│   │   │   ├── Gutter/
│   │   │   │   ├── index.module.scss
│   │   │   │   └── index.tsx
│   │   │   ├── Header/
│   │   │   │   ├── MobileMenuModal.tsx
│   │   │   │   ├── index.module.scss
│   │   │   │   ├── index.tsx
│   │   │   │   └── mobileMenuModal.module.scss
│   │   │   ├── Hero/
│   │   │   │   ├── HighImpact/
│   │   │   │   │   ├── index.module.scss
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── LowImpact/
│   │   │   │   │   ├── index.module.scss
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── MediumImpact/
│   │   │   │   │   ├── index.module.scss
│   │   │   │   │   └── index.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── Label/
│   │   │   │   ├── index.module.scss
│   │   │   │   └── index.tsx
│   │   │   ├── LargeBody/
│   │   │   │   ├── index.module.scss
│   │   │   │   └── index.tsx
│   │   │   ├── Layout/
│   │   │   │   └── index.tsx
│   │   │   ├── Link/
│   │   │   │   └── index.tsx
│   │   │   ├── Logo/
│   │   │   │   └── index.tsx
│   │   │   ├── Media/
│   │   │   │   ├── Image/
│   │   │   │   │   ├── index.module.scss
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── Video/
│   │   │   │   │   ├── index.module.scss
│   │   │   │   │   └── index.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── RichText/
│   │   │   │   ├── index.module.scss
│   │   │   │   ├── index.tsx
│   │   │   │   └── serialize.tsx
│   │   │   ├── VerticalPadding/
│   │   │   │   ├── index.module.scss
│   │   │   │   └── index.tsx
│   │   │   └── icons/
│   │   │       ├── Chevron/
│   │   │       │   └── index.tsx
│   │   │       └── Menu/
│   │   │           └── index.tsx
│   │   ├── css/
│   │   │   ├── app.scss
│   │   │   ├── colors.scss
│   │   │   ├── common.scss
│   │   │   ├── queries.scss
│   │   │   └── type.scss
│   │   ├── cssVariables.js
│   │   ├── next-env.scss.d.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   └── api/
│   │   │       ├── [collection]/
│   │   │       │   ├── [id].ts
│   │   │       │   ├── access/
│   │   │       │   │   └── [id].ts
│   │   │       │   ├── first-register.ts
│   │   │       │   ├── forgot-password.ts
│   │   │       │   ├── index.ts
│   │   │       │   ├── init.ts
│   │   │       │   ├── login.ts
│   │   │       │   ├── logout.ts
│   │   │       │   ├── me.ts
│   │   │       │   └── refresh.ts
│   │   │       ├── access.ts
│   │   │       ├── globals/
│   │   │       │   └── [global]/
│   │   │       │       ├── access.ts
│   │   │       │       └── index.ts
│   │   │       ├── graphql-playground.ts
│   │   │       ├── graphql.ts
│   │   │       └── regenerate.ts
│   │   ├── payload/
│   │   │   ├── access/
│   │   │   │   └── publishedOnly.ts
│   │   │   ├── blocks/
│   │   │   │   ├── CallToAction/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Content/
│   │   │   │   │   └── index.ts
│   │   │   │   └── Media/
│   │   │   │       └── index.ts
│   │   │   ├── collections/
│   │   │   │   ├── Media.ts
│   │   │   │   ├── Pages.ts
│   │   │   │   └── Users.ts
│   │   │   ├── fields/
│   │   │   │   ├── backgroundColor.ts
│   │   │   │   ├── hero.ts
│   │   │   │   ├── link.ts
│   │   │   │   ├── linkGroup.ts
│   │   │   │   ├── richText/
│   │   │   │   │   ├── elements.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── label/
│   │   │   │   │   │   ├── Button/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── Element/
│   │   │   │   │   │   │   ├── index.scss
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── Icon/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── plugin.ts
│   │   │   │   │   ├── largeBody/
│   │   │   │   │   │   ├── Button/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── Element/
│   │   │   │   │   │   │   ├── index.scss
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── Icon/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── plugin.ts
│   │   │   │   │   └── leaves.ts
│   │   │   │   └── slug.ts
│   │   │   ├── globals/
│   │   │   │   └── MainMenu.ts
│   │   │   ├── payload.config.ts
│   │   │   ├── payloadClient.ts
│   │   │   └── utilities/
│   │   │       ├── deepMerge.ts
│   │   │       ├── formatSlug.ts
│   │   │       └── regenerateStaticPage.ts
│   │   ├── payload-types.ts
│   │   ├── tsconfig.json
│   │   └── utilities/
│   │       ├── timestamp.ts
│   │       └── toKebabCase.ts
│   ├── cms-plasmic/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── [[...catchall]].tsx
│   │   │   ├── _app.js
│   │   │   └── api/
│   │   │       ├── exit-preview.ts
│   │   │       └── preview.ts
│   │   ├── plasmic-init.ts
│   │   ├── styles/
│   │   │   └── globals.css
│   │   └── tsconfig.json
│   ├── cms-prepr/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.js
│   │   │   ├── avatar.js
│   │   │   ├── container.js
│   │   │   ├── cover-image.js
│   │   │   ├── date.js
│   │   │   ├── footer.js
│   │   │   ├── header.js
│   │   │   ├── hero-post.js
│   │   │   ├── intro.js
│   │   │   ├── layout.js
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.js
│   │   │   ├── more-stories.js
│   │   │   ├── post-body.js
│   │   │   ├── post-header.js
│   │   │   ├── post-preview.js
│   │   │   ├── post-title.js
│   │   │   └── section-separator.js
│   │   ├── jsconfig.json
│   │   ├── lib/
│   │   │   ├── api.js
│   │   │   └── constants.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── _document.js
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.js
│   │   │   │   └── preview.js
│   │   │   ├── index.js
│   │   │   └── posts/
│   │   │       └── [slug].js
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   └── tailwind.config.js
│   ├── cms-prismic/
│   │   ├── .gitignore
│   │   ├── .slicemachine/
│   │   │   ├── assets/
│   │   │   │   ├── customtypes/
│   │   │   │   │   ├── author/
│   │   │   │   │   │   └── mocks.json
│   │   │   │   │   └── post/
│   │   │   │   │       └── mocks.json
│   │   │   │   └── slices/
│   │   │   │       ├── Image/
│   │   │   │       │   ├── index.stories.js
│   │   │   │       │   └── mocks.json
│   │   │   │       └── Text/
│   │   │   │           ├── index.stories.js
│   │   │   │           └── mocks.json
│   │   │   ├── libraries-state.json
│   │   │   └── mock-config.json
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.tsx
│   │   │   ├── avatar.tsx
│   │   │   ├── container.tsx
│   │   │   ├── cover-image.tsx
│   │   │   ├── date.tsx
│   │   │   ├── footer.tsx
│   │   │   ├── header.tsx
│   │   │   ├── hero-post.tsx
│   │   │   ├── intro.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── meta.tsx
│   │   │   ├── more-stories.tsx
│   │   │   ├── post-body.tsx
│   │   │   ├── post-header.tsx
│   │   │   ├── post-preview.tsx
│   │   │   ├── post-title.tsx
│   │   │   └── section-separator.tsx
│   │   ├── customtypes/
│   │   │   ├── author/
│   │   │   │   └── index.json
│   │   │   └── post/
│   │   │       └── index.json
│   │   ├── documents/
│   │   │   └── .keep
│   │   ├── lib/
│   │   │   ├── constants.ts
│   │   │   ├── prismic.ts
│   │   │   └── types.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── _document.tsx
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.ts
│   │   │   │   └── preview.ts
│   │   │   ├── index.tsx
│   │   │   ├── posts/
│   │   │   │   └── [slug].tsx
│   │   │   └── slice-simulator.tsx
│   │   ├── postcss.config.js
│   │   ├── prismicCodegen.config.ts
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── slices/
│   │   │   ├── Image/
│   │   │   │   ├── index.tsx
│   │   │   │   └── model.json
│   │   │   ├── Text/
│   │   │   │   ├── index.tsx
│   │   │   │   └── model.json
│   │   │   └── index.js
│   │   ├── sm.json
│   │   ├── styles/
│   │   │   └── index.css
│   │   ├── tailwind.config.js
│   │   ├── tsconfig.json
│   │   └── types.generated.ts
│   ├── cms-sanity/
│   │   ├── .eslintignore
│   │   ├── .eslintrc
│   │   ├── .gitignore
│   │   ├── .prettierignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── (blog)/
│   │   │   │   ├── actions.ts
│   │   │   │   ├── alert-banner.tsx
│   │   │   │   ├── avatar.tsx
│   │   │   │   ├── cover-image.tsx
│   │   │   │   ├── date.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── more-stories.tsx
│   │   │   │   ├── onboarding.tsx
│   │   │   │   ├── page.tsx
│   │   │   │   ├── portable-text.tsx
│   │   │   │   └── posts/
│   │   │   │       └── [slug]/
│   │   │   │           └── page.tsx
│   │   │   ├── (sanity)/
│   │   │   │   ├── layout.tsx
│   │   │   │   └── studio/
│   │   │   │       └── [[...tool]]/
│   │   │   │           └── page.tsx
│   │   │   ├── api/
│   │   │   │   └── draft-mode/
│   │   │   │       └── enable/
│   │   │   │           └── route.ts
│   │   │   └── globals.css
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   ├── postcss.config.js
│   │   ├── sanity/
│   │   │   ├── lib/
│   │   │   │   ├── api.ts
│   │   │   │   ├── client.ts
│   │   │   │   ├── demo.ts
│   │   │   │   ├── fetch.ts
│   │   │   │   ├── queries.ts
│   │   │   │   ├── token.ts
│   │   │   │   └── utils.ts
│   │   │   ├── plugins/
│   │   │   │   ├── assist.ts
│   │   │   │   └── settings.tsx
│   │   │   └── schemas/
│   │   │       ├── documents/
│   │   │       │   ├── author.ts
│   │   │       │   └── post.ts
│   │   │       └── singletons/
│   │   │           └── settings.tsx
│   │   ├── sanity.cli.ts
│   │   ├── sanity.config.ts
│   │   ├── sanity.types.ts
│   │   ├── schema.json
│   │   ├── tailwind.config.ts
│   │   └── tsconfig.json
│   ├── cms-sitecore-xmcloud/
│   │   ├── .gitignore
│   │   ├── .graphql-let.yml
│   │   ├── LICENSE.txt
│   │   ├── README.md
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   ├── bootstrap.ts
│   │   │   ├── config/
│   │   │   │   ├── index.ts
│   │   │   │   └── plugins/
│   │   │   │       ├── computed.ts
│   │   │   │       ├── fallback.ts
│   │   │   │       ├── package-json.ts
│   │   │   │       └── scjssconfig.ts
│   │   │   ├── fetch-graphql-introspection-data.ts
│   │   │   ├── generate-component-factory.ts
│   │   │   ├── generate-config.ts
│   │   │   ├── generate-plugins.ts
│   │   │   ├── scaffold-component.ts
│   │   │   ├── temp/
│   │   │   │   ├── .npmignore
│   │   │   │   └── config-plugins.ts
│   │   │   ├── templates/
│   │   │   │   ├── component-factory.ts
│   │   │   │   └── component-src.ts
│   │   │   └── utils.ts
│   │   ├── sitecore/
│   │   │   └── config/
│   │   │       └── xmcloud-nextjs-starter.config
│   │   ├── src/
│   │   │   ├── Layout.tsx
│   │   │   ├── Navigation.tsx
│   │   │   ├── NotFound.tsx
│   │   │   ├── Scripts.tsx
│   │   │   ├── assets/
│   │   │   │   ├── app.css
│   │   │   │   ├── basic/
│   │   │   │   │   ├── _component.scss
│   │   │   │   │   ├── _container.scss
│   │   │   │   │   ├── _fonts.scss
│   │   │   │   │   ├── _footer.scss
│   │   │   │   │   ├── _header.scss
│   │   │   │   │   ├── _navigation.scss
│   │   │   │   │   ├── _promo.scss
│   │   │   │   │   ├── _rich-text.scss
│   │   │   │   │   ├── _variables.scss
│   │   │   │   │   └── main.scss
│   │   │   │   ├── main.scss
│   │   │   │   └── sass/
│   │   │   │       ├── _app.scss
│   │   │   │       ├── abstracts/
│   │   │   │       │   ├── _functions.scss
│   │   │   │       │   ├── _mixins.scss
│   │   │   │       │   ├── _vars.scss
│   │   │   │       │   └── vars/
│   │   │   │       │       ├── _colors.scss
│   │   │   │       │       ├── _fontSizes.scss
│   │   │   │       │       └── _margins.scss
│   │   │   │       ├── base/
│   │   │   │       │   ├── fonts/
│   │   │   │       │   │   ├── _fonts.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   ├── index.scss
│   │   │   │       │   ├── links/
│   │   │   │       │   │   ├── _link-button.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   ├── reset/
│   │   │   │       │   │   ├── _inputs.scss
│   │   │   │       │   │   ├── _links.scss
│   │   │   │       │   │   └── _ui-datepicker.scss
│   │   │   │       │   ├── richtext/
│   │   │   │       │   │   ├── _richtext-files-icons.scss
│   │   │   │       │   │   ├── _richtext.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   └── typehead/
│   │   │   │       │       ├── _typehead.scss
│   │   │   │       │       └── index.scss
│   │   │   │       ├── components/
│   │   │   │       │   ├── _component-column-splitter.scss
│   │   │   │       │   ├── _component-container.scss
│   │   │   │       │   ├── _component-image.scss
│   │   │   │       │   ├── _component-navigation.scss
│   │   │   │       │   ├── _component-promo.scss
│   │   │   │       │   ├── _component-richtext-content.scss
│   │   │   │       │   ├── common/
│   │   │   │       │   │   ├── _alignment.scss
│   │   │   │       │   │   ├── _boxed.scss
│   │   │   │       │   │   ├── _clearfix.scss
│   │   │   │       │   │   ├── _highlighted.scss
│   │   │   │       │   │   ├── _link-button.scss
│   │   │   │       │   │   ├── _promoted-box.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   ├── container/
│   │   │   │       │   │   ├── _bordered.scss
│   │   │   │       │   │   ├── _title-row-box.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   ├── image/
│   │   │   │       │   │   ├── _image-banner.scss
│   │   │   │       │   │   ├── _image-default-size.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   ├── image-alignment/
│   │   │   │       │   │   ├── _image-left.scss
│   │   │   │       │   │   └── _image-right.scss
│   │   │   │       │   ├── index.scss
│   │   │   │       │   ├── layout/
│   │   │   │       │   │   ├── _acaindent.scss
│   │   │   │       │   │   ├── _background.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   ├── link-list/
│   │   │   │       │   │   ├── _component-link-list.scss
│   │   │   │       │   │   ├── _list-vertical.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   ├── navigation/
│   │   │   │       │   │   ├── _navigation-fat.scss
│   │   │   │       │   │   ├── _navigation-main-horizontal-vertical.scss
│   │   │   │       │   │   ├── _navigation-mobile.scss
│   │   │   │       │   │   ├── _navigation-sidebar.scss
│   │   │   │       │   │   ├── _sitemap-navigation.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   ├── promo/
│   │   │   │       │   │   ├── _absolute-bottom-link.scss
│   │   │   │       │   │   ├── _promo-hero.scss
│   │   │   │       │   │   ├── _promo-shadow.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   ├── rich-text/
│   │   │   │       │   │   ├── _rich-text-lists.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   ├── spacing/
│   │   │   │       │   │   ├── _background-colors.scss
│   │   │   │       │   │   ├── _indent.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   └── title/
│   │   │   │       │       ├── _component-title.scss
│   │   │   │       │       └── index.scss
│   │   │   │       ├── main.scss
│   │   │   │       └── variants/
│   │   │   │           ├── index.scss
│   │   │   │           ├── link-list/
│   │   │   │           │   └── index.scss
│   │   │   │           ├── navigation/
│   │   │   │           │   └── index.scss
│   │   │   │           ├── page-content/
│   │   │   │           │   └── index.scss
│   │   │   │           ├── promo/
│   │   │   │           │   └── index.scss
│   │   │   │           ├── rich-text/
│   │   │   │           │   └── index.scss
│   │   │   │           └── title/
│   │   │   │               └── index.scss
│   │   │   ├── components/
│   │   │   │   ├── ColumnSplitter.tsx
│   │   │   │   ├── Container.tsx
│   │   │   │   ├── ContentBlock.tsx
│   │   │   │   ├── FEaaSWrapper.tsx
│   │   │   │   ├── Image.tsx
│   │   │   │   ├── LinkList.tsx
│   │   │   │   ├── Navigation.tsx
│   │   │   │   ├── PageContent.tsx
│   │   │   │   ├── PartialDesignDynamicPlaceholder.tsx
│   │   │   │   ├── Promo.tsx
│   │   │   │   ├── RichText.tsx
│   │   │   │   ├── RowSplitter.tsx
│   │   │   │   └── Title.tsx
│   │   │   ├── lib/
│   │   │   │   ├── component-props/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── data-fetcher.ts
│   │   │   │   ├── dictionary-service-factory.ts
│   │   │   │   ├── extract-path/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── layout-service-factory.ts
│   │   │   │   ├── middleware/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── next-config/
│   │   │   │   │   └── plugins/
│   │   │   │   │       ├── graphql.js
│   │   │   │   │       ├── robots.js
│   │   │   │   │       ├── sass.js
│   │   │   │   │       └── sitemap.js
│   │   │   │   ├── page-props-factory/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── plugins/
│   │   │   │   │       ├── component-props.ts
│   │   │   │   │       ├── normal-mode.ts
│   │   │   │   │       ├── preview-mode.ts
│   │   │   │   │       └── site.ts
│   │   │   │   ├── page-props.ts
│   │   │   │   ├── site-resolver/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── plugins/
│   │   │   │   │       └── default.ts
│   │   │   │   └── sitemap-fetcher/
│   │   │   │       ├── index.ts
│   │   │   │       └── plugins/
│   │   │   │           └── graphql-sitemap-service.ts
│   │   │   ├── middleware.ts
│   │   │   ├── pages/
│   │   │   │   ├── 404.tsx
│   │   │   │   ├── 500.tsx
│   │   │   │   ├── [[...path]].tsx
│   │   │   │   ├── _app.tsx
│   │   │   │   ├── _error.tsx
│   │   │   │   └── api/
│   │   │   │       ├── editing/
│   │   │   │       │   ├── data/
│   │   │   │       │   │   └── [key].ts
│   │   │   │       │   └── render.ts
│   │   │   │       ├── healthz.ts
│   │   │   │       ├── robots.ts
│   │   │   │       └── sitemap.ts
│   │   │   └── temp/
│   │   │       ├── .gitignore
│   │   │       └── GraphQLIntrospectionResult.json
│   │   ├── tsconfig.json
│   │   └── tsconfig.scripts.json
│   ├── cms-sitefinity/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.tsx
│   │   │   ├── avatar.tsx
│   │   │   ├── container.tsx
│   │   │   ├── cover-image.tsx
│   │   │   ├── date-formatter.tsx
│   │   │   ├── footer.tsx
│   │   │   ├── header.tsx
│   │   │   ├── hero-post.tsx
│   │   │   ├── intro.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.tsx
│   │   │   ├── more-stories.tsx
│   │   │   ├── post-body.tsx
│   │   │   ├── post-header.tsx
│   │   │   ├── post-preview.tsx
│   │   │   ├── post-title.tsx
│   │   │   └── section-separator.tsx
│   │   ├── interfaces/
│   │   │   ├── author.ts
│   │   │   └── post.ts
│   │   ├── lib/
│   │   │   ├── api.ts
│   │   │   └── constants.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── index.tsx
│   │   │   └── posts/
│   │   │       └── [...slug].tsx
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   ├── tailwind.config.js
│   │   └── tsconfig.json
│   ├── cms-storyblok/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.js
│   │   │   ├── avatar.js
│   │   │   ├── container.js
│   │   │   ├── cover-image.js
│   │   │   ├── date.js
│   │   │   ├── footer.js
│   │   │   ├── header.js
│   │   │   ├── hero-post.js
│   │   │   ├── intro.js
│   │   │   ├── layout.js
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.js
│   │   │   ├── more-stories.js
│   │   │   ├── post-body.js
│   │   │   ├── post-header.js
│   │   │   ├── post-preview.js
│   │   │   ├── post-title.js
│   │   │   └── section-separator.js
│   │   ├── jsconfig.json
│   │   ├── lib/
│   │   │   ├── api.js
│   │   │   ├── constants.js
│   │   │   └── markdownToHtml.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── _document.js
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.js
│   │   │   │   └── preview.js
│   │   │   ├── index.js
│   │   │   └── posts/
│   │   │       └── [slug].js
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   └── tailwind.config.js
│   ├── cms-strapi/
│   │   ├── .gitignore
│   │   └── README.md
│   ├── cms-takeshape/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.js
│   │   │   ├── avatar.js
│   │   │   ├── container.js
│   │   │   ├── cover-image.js
│   │   │   ├── date.js
│   │   │   ├── footer.js
│   │   │   ├── header.js
│   │   │   ├── hero-post.js
│   │   │   ├── intro.js
│   │   │   ├── layout.js
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.js
│   │   │   ├── more-stories.js
│   │   │   ├── post-body.js
│   │   │   ├── post-header.js
│   │   │   ├── post-preview.js
│   │   │   ├── post-title.js
│   │   │   └── section-separator.js
│   │   ├── lib/
│   │   │   ├── api.js
│   │   │   ├── constants.js
│   │   │   └── markdownToHtml.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── _document.js
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.js
│   │   │   │   └── preview.js
│   │   │   ├── index.js
│   │   │   └── posts/
│   │   │       └── [slug].js
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   └── tailwind.config.js
│   ├── cms-tina/
│   │   ├── .gitignore
│   │   ├── .tina/
│   │   │   ├── __generated__/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── _graphql.json
│   │   │   │   ├── _lookup.json
│   │   │   │   ├── _schema.json
│   │   │   │   ├── frags.gql
│   │   │   │   ├── queries.gql
│   │   │   │   ├── schema.gql
│   │   │   │   └── types.ts
│   │   │   ├── components/
│   │   │   │   ├── TinaDynamicProvider.js
│   │   │   │   └── TinaProvider.js
│   │   │   └── schema.ts
│   │   ├── README.md
│   │   ├── _posts/
│   │   │   ├── dynamic-routing.md
│   │   │   ├── hello-world.md
│   │   │   └── preview.md
│   │   ├── components/
│   │   │   ├── alert.js
│   │   │   ├── avatar.js
│   │   │   ├── container.js
│   │   │   ├── cover-image.js
│   │   │   ├── date-formatter.js
│   │   │   ├── footer.js
│   │   │   ├── header.js
│   │   │   ├── hero-post.js
│   │   │   ├── intro.js
│   │   │   ├── layout.js
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.js
│   │   │   ├── more-stories.js
│   │   │   ├── post-body.js
│   │   │   ├── post-header.js
│   │   │   ├── post-preview.js
│   │   │   ├── post-title.js
│   │   │   └── section-separator.js
│   │   ├── lib/
│   │   │   ├── api.js
│   │   │   ├── constants.js
│   │   │   └── markdownToHtml.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── _document.js
│   │   │   ├── admin.js
│   │   │   ├── index.js
│   │   │   └── posts/
│   │   │       └── [slug].js
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicons/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   └── tailwind.config.js
│   ├── cms-umbraco/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.tsx
│   │   │   ├── avatar.tsx
│   │   │   ├── container.tsx
│   │   │   ├── cover-image.tsx
│   │   │   ├── date.tsx
│   │   │   ├── footer.tsx
│   │   │   ├── header.tsx
│   │   │   ├── hero-post.tsx
│   │   │   ├── intro.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── meta.tsx
│   │   │   ├── more-stories.tsx
│   │   │   ├── post-body.module.css
│   │   │   ├── post-body.tsx
│   │   │   ├── post-header.tsx
│   │   │   ├── post-preview.tsx
│   │   │   ├── post-title.tsx
│   │   │   ├── section-separator.tsx
│   │   │   └── tags.tsx
│   │   ├── lib/
│   │   │   ├── api.ts
│   │   │   └── constants.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.ts
│   │   │   │   └── preview.ts
│   │   │   ├── index.tsx
│   │   │   └── posts/
│   │   │       └── [slug].tsx
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   ├── tailwind.config.js
│   │   ├── tsconfig.json
│   │   └── types/
│   │       ├── author.ts
│   │       ├── picture.ts
│   │       ├── post.ts
│   │       └── postAndMorePosts.ts
│   ├── cms-umbraco-heartcore/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.js
│   │   │   ├── avatar.js
│   │   │   ├── container.js
│   │   │   ├── cover-image.js
│   │   │   ├── date.js
│   │   │   ├── footer.js
│   │   │   ├── header.js
│   │   │   ├── hero-post.js
│   │   │   ├── intro.js
│   │   │   ├── layout.js
│   │   │   ├── meta.js
│   │   │   ├── more-stories.js
│   │   │   ├── post-body.js
│   │   │   ├── post-header.js
│   │   │   ├── post-preview.js
│   │   │   ├── post-styles.module.css
│   │   │   ├── post-title.js
│   │   │   └── section-separator.js
│   │   ├── jsconfig.json
│   │   ├── lib/
│   │   │   ├── constants.js
│   │   │   └── umbraco-heartcore.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── [...slug].js
│   │   │   ├── _app.js
│   │   │   ├── _document.js
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.js
│   │   │   │   └── preview.js
│   │   │   └── index.js
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   └── tailwind.config.js
│   ├── cms-webiny/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.tsx
│   │   │   ├── avatar.tsx
│   │   │   ├── container.tsx
│   │   │   ├── cover-image.tsx
│   │   │   ├── date-formatter.tsx
│   │   │   ├── footer.tsx
│   │   │   ├── header.tsx
│   │   │   ├── hero-post.tsx
│   │   │   ├── intro.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.tsx
│   │   │   ├── more-stories.tsx
│   │   │   ├── post-body.tsx
│   │   │   ├── post-header.tsx
│   │   │   ├── post-preview.tsx
│   │   │   ├── post-title.tsx
│   │   │   └── section-separator.tsx
│   │   ├── lib/
│   │   │   ├── api.ts
│   │   │   ├── constants.ts
│   │   │   └── rich-text-renderer.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.ts
│   │   │   │   └── preview.ts
│   │   │   ├── index.tsx
│   │   │   └── posts/
│   │   │       └── [slug].tsx
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicons/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── globals.css
│   │   ├── tailwind.config.js
│   │   └── tsconfig.json
│   ├── cms-wordpress/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── add-ts-nocheck.js
│   │   ├── codegen.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── app/
│   │   │   │   ├── [[...slug]]/
│   │   │   │   │   └── page.tsx
│   │   │   │   ├── api/
│   │   │   │   │   ├── exit-preview/
│   │   │   │   │   │   └── route.ts
│   │   │   │   │   ├── preview/
│   │   │   │   │   │   └── route.ts
│   │   │   │   │   └── revalidate/
│   │   │   │   │       └── route.ts
│   │   │   │   ├── globals.css
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── not-found.tsx
│   │   │   │   ├── robots.ts
│   │   │   │   └── sitemap.ts
│   │   │   ├── components/
│   │   │   │   ├── Globals/
│   │   │   │   │   ├── Navigation/
│   │   │   │   │   │   ├── Navigation.module.css
│   │   │   │   │   │   └── Navigation.tsx
│   │   │   │   │   └── PreviewNotice/
│   │   │   │   │       ├── PreviewNotice.module.css
│   │   │   │   │       └── PreviewNotice.tsx
│   │   │   │   └── Templates/
│   │   │   │       ├── Page/
│   │   │   │       │   ├── PageQuery.ts
│   │   │   │       │   └── PageTemplate.tsx
│   │   │   │       └── Post/
│   │   │   │           ├── PostQuery.ts
│   │   │   │           ├── PostTemplate.module.css
│   │   │   │           └── PostTemplate.tsx
│   │   │   ├── middleware.ts
│   │   │   ├── queries/
│   │   │   │   └── general/
│   │   │   │       ├── ContentInfoQuery.ts
│   │   │   │       └── SeoQuery.ts
│   │   │   └── utils/
│   │   │       ├── fetchGraphQL.ts
│   │   │       ├── nextSlugToWpSlug.ts
│   │   │       └── seoData.ts
│   │   └── tsconfig.json
│   ├── convex/
│   │   ├── .gitignore
│   │   ├── .prettierignore
│   │   ├── README.md
│   │   ├── convex/
│   │   │   ├── README.md
│   │   │   ├── _generated/
│   │   │   │   ├── api.d.ts
│   │   │   │   ├── api.js
│   │   │   │   ├── dataModel.d.ts
│   │   │   │   ├── server.d.ts
│   │   │   │   └── server.js
│   │   │   ├── messages.ts
│   │   │   ├── schema.ts
│   │   │   └── tsconfig.json
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   └── index.tsx
│   │   ├── styles/
│   │   │   └── globals.css
│   │   └── tsconfig.json
│   ├── custom-server/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── b/
│   │   │   │   └── page.tsx
│   │   │   └── layout.tsx
│   │   ├── nodemon.json
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── a.tsx
│   │   │   └── index.tsx
│   │   ├── server.ts
│   │   ├── tsconfig.json
│   │   └── tsconfig.server.json
│   ├── github-pages/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── about/
│   │   │   │   └── page.tsx
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── hello-world/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── i18n-routing/
│   │   ├── .gitignore
│   │   ├── .vscode/
│   │   │   └── settings.json
│   │   ├── README.md
│   │   ├── app/
│   │   │   └── [lang]/
│   │   │       ├── components/
│   │   │       │   ├── counter.tsx
│   │   │       │   └── locale-switcher.tsx
│   │   │       ├── layout.tsx
│   │   │       └── page.tsx
│   │   ├── dictionaries/
│   │   │   ├── cs.json
│   │   │   ├── de.json
│   │   │   └── en.json
│   │   ├── get-dictionary.ts
│   │   ├── i18n-config.ts
│   │   ├── middleware.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── i18n-routing-pages/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   └── locale-switcher.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── gsp/
│   │   │   │   ├── [slug].tsx
│   │   │   │   └── index.tsx
│   │   │   ├── gssp.tsx
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── image-component/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── background/
│   │   │   │   └── page.tsx
│   │   │   ├── color/
│   │   │   │   └── page.tsx
│   │   │   ├── fill/
│   │   │   │   └── page.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── page.tsx
│   │   │   ├── placeholder/
│   │   │   │   └── page.tsx
│   │   │   ├── responsive/
│   │   │   │   └── page.tsx
│   │   │   ├── shimmer/
│   │   │   │   └── page.tsx
│   │   │   └── theme/
│   │   │       └── page.tsx
│   │   ├── app.css
│   │   ├── components/
│   │   │   ├── view-source.module.css
│   │   │   └── view-source.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── styles.module.css
│   │   └── tsconfig.json
│   ├── image-secure-compute/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── globals.css
│   │   │   ├── image-api/
│   │   │   │   └── [...path]/
│   │   │   │       └── route.ts
│   │   │   ├── layout.tsx
│   │   │   ├── page.module.css
│   │   │   └── page.tsx
│   │   ├── components/
│   │   │   └── secure-image.tsx
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── inngest/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── app/
│   │   │   │   ├── api/
│   │   │   │   │   └── inngest/
│   │   │   │   │       └── route.ts
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   └── inngest/
│   │   │       └── inngest.config.ts
│   │   └── tsconfig.json
│   ├── markdoc/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── markdoc/
│   │   │   ├── functions.ts
│   │   │   ├── nodes.ts
│   │   │   └── tags.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   └── index.md
│   │   ├── public/
│   │   │   └── globals.css
│   │   └── tsconfig.json
│   ├── mdx/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── blog/
│   │   │   │   └── hello-world/
│   │   │   │       └── page.mdx
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   ├── message.mdx
│   │   │   ├── page.module.css
│   │   │   └── page.tsx
│   │   ├── mdx-components.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── tsconfig.json
│   │   └── types/
│   │       └── mdx.d.ts
│   ├── mdx-pages/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   └── button.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── pages/
│   │       └── index.mdx
│   ├── next-forms/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── actions.ts
│   │   │   ├── add-form.tsx
│   │   │   ├── delete-form.tsx
│   │   │   ├── global.css
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── panda-css/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── components/
│   │   │   │   ├── link-with-atomic-recipe.tsx
│   │   │   │   ├── link-with-atomic-style.tsx
│   │   │   │   ├── link-with-config-recipe.tsx
│   │   │   │   └── link-with-text-styles.tsx
│   │   │   ├── global.css
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── panda.config.ts
│   │   ├── postcss.config.js
│   │   └── tsconfig.json
│   ├── prisma-postgres/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── Header.tsx
│   │   │   ├── api/
│   │   │   │   └── posts/
│   │   │   │       └── route.ts
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   ├── page.tsx
│   │   │   ├── posts/
│   │   │   │   ├── [id]/
│   │   │   │   │   └── page.tsx
│   │   │   │   ├── new/
│   │   │   │   │   └── page.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── setup/
│   │   │   │   └── page.tsx
│   │   │   └── users/
│   │   │       └── new/
│   │   │           └── page.tsx
│   │   ├── lib/
│   │   │   └── prisma.ts
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   ├── postcss.config.mjs
│   │   ├── prisma/
│   │   │   ├── schema.prisma
│   │   │   └── seed.ts
│   │   ├── tailwind.config.ts
│   │   └── tsconfig.json
│   ├── radix-ui/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── package.json
│   │   ├── postcss.config.js
│   │   ├── styles/
│   │   │   └── globals.css
│   │   ├── tailwind.config.js
│   │   └── tsconfig.json
│   ├── react-remove-properties/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── remove-console/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── reproduction-template/
│   │   ├── .codesandbox/
│   │   │   └── tasks.json
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── reproduction-template-pages/
│   │   ├── .codesandbox/
│   │   │   └── tasks.json
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── with-ably/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── api/
│   │   │   │   ├── createTokenRequest.ts
│   │   │   │   └── send-message.ts
│   │   │   └── index.tsx
│   │   ├── styles/
│   │   │   ├── Home.module.css
│   │   │   └── globals.css
│   │   ├── tsconfig.json
│   │   └── types.d.ts
│   ├── with-absolute-imports/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── components/
│   │   │   ├── button.tsx
│   │   │   └── header.tsx
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-algolia-react-instantsearch/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── components/
│   │   │   ├── Panel.tsx
│   │   │   └── Search.tsx
│   │   ├── package.json
│   │   ├── styles/
│   │   │   └── global.css
│   │   └── tsconfig.json
│   ├── with-ant-design/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── AntdRegistry.tsx
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   ├── page.tsx
│   │   │   └── themeConfig.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-apivideo/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── Card/
│   │   │   │   ├── Card.module.css
│   │   │   │   └── index.tsx
│   │   │   ├── Loader/
│   │   │   │   ├── Loader.module.css
│   │   │   │   └── index.tsx
│   │   │   └── Status/
│   │   │       ├── Status.module.css
│   │   │       └── index.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── api/
│   │   │   │   ├── [videoId].ts
│   │   │   │   ├── uploadToken.ts
│   │   │   │   └── videos.ts
│   │   │   ├── index.tsx
│   │   │   ├── uploader/
│   │   │   │   └── index.tsx
│   │   │   └── videos/
│   │   │       ├── [videoId].tsx
│   │   │       └── index.tsx
│   │   ├── style/
│   │   │   ├── common.css
│   │   │   └── index.css
│   │   └── tsconfig.json
│   ├── with-apollo/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── next.config.mjs
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── app/
│   │   │   │   ├── globals.css
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── loading.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── components/
│   │   │   │   ├── ApolloClientProvider.tsx
│   │   │   │   ├── FiveRocketsClient.tsx
│   │   │   │   └── LatestMissionName.tsx
│   │   │   └── lib/
│   │   │       └── ApolloClient.ts
│   │   └── tsconfig.json
│   ├── with-apollo-and-redux/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── Clock.js
│   │   │   ├── Counter.js
│   │   │   ├── ErrorMessage.js
│   │   │   ├── Layout.js
│   │   │   ├── Nav.js
│   │   │   ├── PostList.js
│   │   │   ├── PostUpvoter.js
│   │   │   └── Submit.js
│   │   ├── lib/
│   │   │   ├── apollo.js
│   │   │   ├── redux.js
│   │   │   └── useInterval.js
│   │   ├── package.json
│   │   └── pages/
│   │       ├── _app.js
│   │       ├── apollo.js
│   │       ├── index.js
│   │       └── redux.js
│   ├── with-axiom/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── middleware.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── api/
│   │   │   │   └── hello.ts
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── with-azure-cosmos/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── lib/
│   │   │   └── cosmosdb.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── with-babel-macros/
│   │   ├── .babelrc
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-biome/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── biome.json
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-chakra-ui/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── components/
│   │   │   │   ├── CTA.tsx
│   │   │   │   ├── Container.tsx
│   │   │   │   ├── DarkModeSwitch.tsx
│   │   │   │   ├── Footer.tsx
│   │   │   │   ├── Hero.tsx
│   │   │   │   └── Main.tsx
│   │   │   ├── pages/
│   │   │   │   ├── _app.tsx
│   │   │   │   ├── _document.tsx
│   │   │   │   └── index.tsx
│   │   │   └── theme.tsx
│   │   └── tsconfig.json
│   ├── with-clerk/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── api/
│   │   │   │   └── getAuthenticatedUserId/
│   │   │   │       └── route.ts
│   │   │   ├── api-request.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── page.tsx
│   │   │   ├── sign-in/
│   │   │   │   └── [[...sign-in]]/
│   │   │   │       └── page.tsx
│   │   │   ├── sign-up/
│   │   │   │   └── [[...sign-up]]/
│   │   │   │       └── page.tsx
│   │   │   └── user/
│   │   │       └── [[...index]]/
│   │   │           └── page.tsx
│   │   ├── middleware.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── styles/
│   │   │   ├── Auth.module.css
│   │   │   ├── Header.module.css
│   │   │   ├── Home.module.css
│   │   │   ├── User.module.css
│   │   │   ├── globals.css
│   │   │   └── prism.css
│   │   └── tsconfig.json
│   ├── with-cloudinary/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── Carousel.tsx
│   │   │   ├── Icons/
│   │   │   │   ├── Bridge.tsx
│   │   │   │   ├── Logo.tsx
│   │   │   │   └── Twitter.tsx
│   │   │   ├── Modal.tsx
│   │   │   └── SharedModal.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── _document.tsx
│   │   │   ├── index.tsx
│   │   │   └── p/
│   │   │       └── [photoId].tsx
│   │   ├── postcss.config.js
│   │   ├── styles/
│   │   │   └── index.css
│   │   ├── tailwind.config.js
│   │   ├── tsconfig.json
│   │   └── utils/
│   │       ├── animationVariants.ts
│   │       ├── cachedImages.ts
│   │       ├── cloudinary.ts
│   │       ├── downloadPhoto.ts
│   │       ├── generateBlurPlaceholder.ts
│   │       ├── range.ts
│   │       ├── types.ts
│   │       └── useLastViewedPhoto.ts
│   ├── with-compiled-css/
│   │   ├── .babelrc
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── class-names-box.js
│   │   │   └── styled-button.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   └── index.js
│   │   └── style/
│   │       └── colors.js
│   ├── with-context-api/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── _components/
│   │   │   └── Counter.tsx
│   │   ├── app/
│   │   │   ├── about/
│   │   │   │   └── page.tsx
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-cookies-next/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── api/
│   │   │   │   ├── get-api-cookie.ts
│   │   │   │   ├── remove-api-cookie.ts
│   │   │   │   └── set-api-cookie.ts
│   │   │   ├── index.tsx
│   │   │   └── ssr-cookies.tsx
│   │   └── tsconfig.json
│   ├── with-couchbase/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   └── index.js
│   │   ├── styles/
│   │   │   ├── Home.module.css
│   │   │   └── globals.css
│   │   └── util/
│   │       └── couchbase.js
│   ├── with-custom-babel-config/
│   │   ├── .babelrc
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   └── pages/
│   │       └── index.js
│   ├── with-cxs/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _document.tsx
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── with-cypress/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── about/
│   │   │   │   └── page.tsx
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── components/
│   │   │   ├── about-component.cy.tsx
│   │   │   └── about-component.tsx
│   │   ├── cypress/
│   │   │   ├── e2e/
│   │   │   │   ├── app.cy.ts
│   │   │   │   └── pages.cy.ts
│   │   │   ├── fixtures/
│   │   │   │   └── example.json
│   │   │   ├── support/
│   │   │   │   ├── commands.ts
│   │   │   │   ├── component-index.html
│   │   │   │   ├── component.ts
│   │   │   │   └── e2e.ts
│   │   │   └── tsconfig.json
│   │   ├── cypress.config.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   └── home/
│   │   │       ├── about.tsx
│   │   │       └── index.tsx
│   │   ├── styles/
│   │   │   ├── Home.module.css
│   │   │   └── globals.css
│   │   └── tsconfig.json
│   ├── with-docker/
│   │   ├── .dockerignore
│   │   ├── .gitignore
│   │   ├── Dockerfile
│   │   ├── Dockerfile.bun
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── app.json
│   │   ├── compose.yml
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   ├── postcss.config.js
│   │   └── tsconfig.json
│   ├── with-docker-compose/
│   │   ├── .dockerignore
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── compose.dev.yaml
│   │   ├── compose.prod-without-multistage.yaml
│   │   ├── compose.prod.yaml
│   │   └── next-app/
│   │       ├── .gitignore
│   │       ├── dev.Dockerfile
│   │       ├── next.config.js
│   │       ├── package.json
│   │       ├── prod-without-multistage.Dockerfile
│   │       ├── prod.Dockerfile
│   │       ├── src/
│   │       │   ├── pages/
│   │       │   │   ├── _app.tsx
│   │       │   │   └── index.tsx
│   │       │   └── styles/
│   │       │       ├── Home.module.css
│   │       │       └── globals.css
│   │       └── tsconfig.json
│   ├── with-docker-export-output/
│   │   ├── .dockerignore
│   │   ├── .gitignore
│   │   ├── Dockerfile
│   │   ├── Dockerfile.serve
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── compose.yml
│   │   ├── next.config.ts
│   │   ├── nginx.conf
│   │   ├── package.json
│   │   ├── postcss.config.js
│   │   └── tsconfig.json
│   ├── with-docker-multi-env/
│   │   ├── .dockerignore
│   │   ├── .gitignore
│   │   ├── Makefile
│   │   ├── README.md
│   │   ├── docker/
│   │   │   ├── development/
│   │   │   │   ├── Dockerfile
│   │   │   │   └── compose.yaml
│   │   │   ├── production/
│   │   │   │   ├── Dockerfile
│   │   │   │   └── compose.yaml
│   │   │   └── staging/
│   │   │       ├── Dockerfile
│   │   │       └── compose.yaml
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── api/
│   │   │   │   └── hello.js
│   │   │   └── index.js
│   │   └── styles/
│   │       ├── Home.module.css
│   │       └── globals.css
│   ├── with-dynamic-import/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── _components/
│   │   │   │   ├── Header.tsx
│   │   │   │   ├── hello1.tsx
│   │   │   │   ├── hello2.tsx
│   │   │   │   ├── hello3.tsx
│   │   │   │   ├── hello4.tsx
│   │   │   │   └── hello5.tsx
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-edgedb/
│   │   ├── .eslintignore
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── client.ts
│   │   ├── components/
│   │   │   ├── Header.tsx
│   │   │   ├── Layout.tsx
│   │   │   └── Post.tsx
│   │   ├── dbschema/
│   │   │   ├── default.esdl
│   │   │   └── migrations/
│   │   │       └── 00001.edgeql
│   │   ├── edgedb.toml
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── api/
│   │   │   │   ├── post/
│   │   │   │   │   ├── [id].ts
│   │   │   │   │   └── index.ts
│   │   │   │   └── publish/
│   │   │   │       └── [id].ts
│   │   │   ├── blog/
│   │   │   │   └── [id].tsx
│   │   │   ├── create.tsx
│   │   │   ├── drafts.tsx
│   │   │   └── index.tsx
│   │   ├── postcss.config.js
│   │   ├── seed.ts
│   │   ├── styles/
│   │   │   └── global.css
│   │   ├── tailwind.config.js
│   │   └── tsconfig.json
│   ├── with-elasticsearch/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── lib/
│   │   │   └── elasticsearch.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   └── index.tsx
│   │   ├── styles/
│   │   │   ├── Home.module.css
│   │   │   └── globals.css
│   │   └── tsconfig.json
│   ├── with-electron/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── main/
│   │   │   ├── index.js
│   │   │   └── preload.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── renderer/
│   │       ├── babel.config.js
│   │       └── pages/
│   │           └── index.js
│   ├── with-electron-typescript/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── electron-src/
│   │   │   ├── electron-next.d.ts
│   │   │   ├── index.ts
│   │   │   ├── preload.ts
│   │   │   └── tsconfig.json
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── renderer/
│   │       ├── components/
│   │       │   ├── Layout.tsx
│   │       │   ├── List.tsx
│   │       │   ├── ListDetail.tsx
│   │       │   └── ListItem.tsx
│   │       ├── interfaces/
│   │       │   └── index.ts
│   │       ├── pages/
│   │       │   ├── about.tsx
│   │       │   ├── detail/
│   │       │   │   └── [id].tsx
│   │       │   ├── index.tsx
│   │       │   └── initial-props.tsx
│   │       ├── tsconfig.json
│   │       └── utils/
│   │           └── sample-api.ts
│   ├── with-emotion/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   └── index.tsx
│   │   ├── shared/
│   │   │   └── styles.tsx
│   │   └── tsconfig.json
│   ├── with-eslint/
│   │   ├── .eslintrc
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-expo-typescript/
│   │   ├── .gitignore
│   │   ├── App.tsx
│   │   ├── README.md
│   │   ├── babel.config.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _document.tsx
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── with-facebook-pixel/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── _pages/
│   │   │   ├── _app.js
│   │   │   ├── _document.js
│   │   │   ├── index.js
│   │   │   └── navigation.js
│   │   ├── app/
│   │   │   ├── about/
│   │   │   │   └── page.js
│   │   │   ├── components/
│   │   │   │   ├── FacebookPixel.js
│   │   │   │   └── index.js
│   │   │   ├── layout.js
│   │   │   ├── page.js
│   │   │   └── readme.txt
│   │   ├── lib/
│   │   │   └── fpixel.js
│   │   ├── package.json
│   │   └── public/
│   │       └── scripts/
│   │           └── pixel.js
│   ├── with-fela/
│   │   ├── .gitignore
│   │   ├── FelaProvider.js
│   │   ├── README.md
│   │   ├── getFelaRenderer.js
│   │   ├── package.json
│   │   └── pages/
│   │       ├── _app.js
│   │       ├── _document.js
│   │       └── index.js
│   ├── with-filbert/
│   │   ├── .babelrc
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   └── pages/
│   │       ├── _document.js
│   │       └── index.js
│   ├── with-fingerprintjs-pro/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── CacheStrategySelector.tsx
│   │   │   ├── Nav.tsx
│   │   │   ├── Toggler.tsx
│   │   │   ├── VisitorDataPresenter.tsx
│   │   │   └── types.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── home/
│   │   │   │   └── [cacheStrategy].tsx
│   │   │   └── signin/
│   │   │       └── [cacheStrategy].tsx
│   │   ├── providers/
│   │   │   ├── InMemoryCache.tsx
│   │   │   ├── LocalStorageCache.tsx
│   │   │   ├── SessionStorageCache.tsx
│   │   │   └── WithoutCache.tsx
│   │   ├── styles/
│   │   │   ├── App.css
│   │   │   └── globals.css
│   │   └── tsconfig.json
│   ├── with-firebase/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── context/
│   │   │   └── userContext.js
│   │   ├── fetchData/
│   │   │   └── getProfileData.js
│   │   ├── firebase/
│   │   │   ├── clientApp.js
│   │   │   └── nodeApp.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── index.js
│   │   │   └── profile/
│   │   │       └── [username].js
│   │   └── vercel.json
│   ├── with-firebase-cloud-messaging/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── pages/
│   │   │   └── index.js
│   │   ├── public/
│   │   │   └── firebase-messaging-sw.js
│   │   └── utils/
│   │       └── webPush.js
│   ├── with-firebase-hosting/
│   │   ├── .firebaserc
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── firebase.json
│   │   ├── firebaseFunctions.js
│   │   ├── package.json
│   │   ├── public/
│   │   │   └── .gitignore
│   │   └── src/
│   │       ├── components/
│   │       │   ├── App.jsx
│   │       │   └── Header.jsx
│   │       ├── next.config.js
│   │       └── pages/
│   │           ├── about.jsx
│   │           └── index.jsx
│   ├── with-flow/
│   │   ├── .babelrc
│   │   ├── .eslintrc.json
│   │   ├── .flowconfig
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   └── Page.js
│   │   ├── flow-typed/
│   │   │   └── next.js.flow
│   │   ├── package.json
│   │   └── pages/
│   │       ├── _app.js
│   │       ├── about.js
│   │       ├── contact.js
│   │       └── index.js
│   ├── with-formspree/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   └── contact-form.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   └── index.js
│   │   └── styles/
│   │       ├── Home.module.css
│   │       ├── form.module.css
│   │       └── globals.css
│   ├── with-framer-motion/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── Gallery.js
│   │   │   └── SingleImage.js
│   │   ├── constants.js
│   │   ├── package.json
│   │   └── pages/
│   │       ├── _app.js
│   │       ├── image/
│   │       │   └── [index].js
│   │       └── index.js
│   ├── with-goober/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-google-analytics/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── about/
│   │   │   │   └── page.tsx
│   │   │   ├── contact/
│   │   │   │   └── page.tsx
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── components/
│   │   │   ├── Header.tsx
│   │   │   └── Page.tsx
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-google-maps-embed/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-google-tag-manager/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── _components/
│   │   │   └── EventButton.tsx
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-grafbase/
│   │   ├── .gitignore
│   │   ├── .vscode/
│   │   │   └── settings.json
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   ├── page.tsx
│   │   │   └── posts/
│   │   │       └── [slug]/
│   │   │           └── page.tsx
│   │   ├── codegen.ts
│   │   ├── gql/
│   │   │   ├── fragment-masking.ts
│   │   │   ├── gql.ts
│   │   │   ├── graphql.ts
│   │   │   └── index.ts
│   │   ├── grafbase/
│   │   │   └── schema.graphql
│   │   ├── lib/
│   │   │   └── grafbase.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── postcss.config.js
│   │   ├── tailwind.config.js
│   │   └── tsconfig.json
│   ├── with-graphql-gateway/
│   │   ├── .gitignore
│   │   ├── .meshrc.yaml
│   │   ├── README.md
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── api/
│   │   │   │   └── graphql.ts
│   │   │   └── index.tsx
│   │   ├── styles/
│   │   │   ├── Home.module.css
│   │   │   └── globals.css
│   │   └── tsconfig.json
│   ├── with-graphql-hooks/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── next.config.mjs
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── app/
│   │   │   │   ├── globals.css
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   └── client-components/
│   │   │       ├── client-context-provider.tsx
│   │   │       ├── index.ts
│   │   │       └── repo-list.tsx
│   │   └── tsconfig.json
│   ├── with-graphql-react/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   └── pages/
│   │       ├── _app.js
│   │       └── index.js
│   ├── with-gsap/
│   │   ├── .gitignore
│   │   ├── App.scss
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── Content.tsx
│   │   │   ├── Home.tsx
│   │   │   └── Title.tsx
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── with-hls-js/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   └── video-player.js
│   │   ├── package.json
│   │   └── pages/
│   │       └── index.js
│   ├── with-http2/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── about.js
│   │   │   └── index.js
│   │   └── server.js
│   ├── with-i18n-next-intl/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── Code.js
│   │   │   ├── Navigation.js
│   │   │   └── PageLayout.js
│   │   ├── messages/
│   │   │   ├── about/
│   │   │   │   ├── de.json
│   │   │   │   └── en.json
│   │   │   ├── index/
│   │   │   │   ├── de.json
│   │   │   │   └── en.json
│   │   │   └── shared/
│   │   │       ├── de.json
│   │   │       └── en.json
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── pages/
│   │       ├── _app.js
│   │       ├── about.js
│   │       └── index.js
│   ├── with-i18n-rosetta/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   └── title.js
│   │   ├── hooks/
│   │   │   └── use-i18n.js
│   │   ├── lib/
│   │   │   └── i18n.js
│   │   ├── locales/
│   │   │   ├── de.json
│   │   │   └── en.json
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── pages/
│   │       ├── [lng]/
│   │       │   └── index.js
│   │       ├── _app.js
│   │       ├── _document.js
│   │       └── dashboard.js
│   ├── with-ionic/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── _components/
│   │   │   ├── Card.tsx
│   │   │   └── IonicLayout.tsx
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── ionic.d.ts
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-iron-session/
│   │   ├── .gitignore
│   │   └── README.md
│   ├── with

================================================
FILE CONTENTS
================================================

================================================
FILE: .agents/skills/README.md
================================================
# Skills Authoring Guide

Skills are on-demand context files that Claude loads when relevant. They extend `AGENTS.md` with deep-dive workflows, code templates, and verification steps.

## When to Create a Skill

Create a skill when content is:
- **Too detailed for AGENTS.md** (code templates, multi-step workflows, diagnostic procedures)
- **Only relevant for specific tasks** (not every session needs it)
- **Self-contained enough to load independently**

Do NOT create a skill for:
- One-liner rules or guardrails (keep those in AGENTS.md)
- Content every agent session needs (that's what AGENTS.md is for)
- Simple facts without actionable steps

## File Structure

```
.agents/skills/
├── my-skill/
│   └── SKILL.md          # Required: frontmatter + content
│   └── workflow.md        # Optional: supplementary files
│   └── examples.md        # Optional: referenced from SKILL.md
└── README.md              # This file
```

## SKILL.md Format

```yaml
---
name: my-skill
description: >
  What this skill covers and when to use it. Include key file names,
  concepts, and trigger phrases so Claude can match user intent to this
  skill. This is the primary field Claude uses for auto-activation.
---
```

### Supported Frontmatter Fields

| Field | Required | Description |
|-------|----------|-------------|
| `name` | Yes | Skill name, used for `$name` references and `/name` slash commands |
| `description` | Yes | What the skill does and when to use it. **This is how Claude decides to auto-load the skill.** Include file names, concepts, and keywords. |
| `argument-hint` | No | Hint for expected arguments in autocomplete |
| `user-invocable` | No | Set to `false` to hide from `/` slash command menu |
| `disable-model-invocation` | No | Set to `true` to prevent Claude from auto-triggering this skill |
| `allowed-tools` | No | Tools Claude can use without permission when this skill is active |
| `model` | No | Model override for this skill |
| `context` | No | Set to `fork` for isolated subagent execution |
| `agent` | No | Subagent type to use with `context: fork` |
| `hooks` | No | Hooks scoped to this skill's lifecycle |

Only use fields from this table. Unknown fields are ignored by Claude Code.

### Writing Good Descriptions

The `description` is the single most important field. Claude uses it to decide when to auto-load the skill. Include:

- **What the skill covers** (the topic)
- **When to use it** (the trigger scenario)
- **Key file names** mentioned in the skill (e.g. `config-shared.ts`, `entry-base.ts`)
- **Key concepts/keywords** a user or agent might mention (e.g. "DCE", "feature flag", "vendored React")

```yaml
# Bad: too vague, won't match well
description: Helps with flags.

# Good: specific, includes file names and keywords
description: >
  How to add or modify Next.js experimental feature flags end-to-end.
  Use when editing config-shared.ts, config-schema.ts, define-env-plugin.ts,
  next-server.ts, export/worker.ts, or module.compiled.js.
```

## Content Guidelines

### Relationship to AGENTS.md

AGENTS.md holds **always-loaded guardrails** (one-liner rules every session needs). Skills hold **deep-dive content** loaded on demand.

- AGENTS.md should have a one-liner version of any critical rule
- Skills expand on those rules with verification steps, code examples, and context
- AGENTS.md points to skills via `$skill-name` references
- Skills should not duplicate AGENTS.md content; they should go deeper

### Structure a Skill for Action

Skills should tell the agent what to **do**, not just what to **know**:

- Lead with a clear "Use this skill when..." statement
- Include step-by-step procedures where applicable
- Add code templates ready to adapt
- End with verification commands
- Cross-reference related skills with a "Related Skills" section

### Naming

- Use short, descriptive names scoped to the topic: `flags`, `dce-edge`, `react-vendoring`
- No repo-name prefix (skills are already scoped to this repo by being in `.agents/skills/`)
- Use hyphens for multi-word names

### Supplementary Files

For complex skills, split into a hub SKILL.md + detail files:

```
pr-status-triage/
├── SKILL.md         # Overview + quick commands
├── workflow.md      # Detailed prioritization and patterns
└── local-repro.md   # CI env matching guide
```

Reference detail files from SKILL.md with relative links. Keep SKILL.md scannable as an entry point.


================================================
FILE: .agents/skills/authoring-skills/SKILL.md
================================================
---
name: authoring-skills
description: >
  How to create and maintain agent skills in .agents/skills/. Use when
  creating a new SKILL.md, writing skill descriptions, choosing frontmatter
  fields, or deciding what content belongs in a skill vs AGENTS.md.
  Covers the supported spec fields, description writing, naming conventions,
  and the relationship between always-loaded AGENTS.md and on-demand skills.
user-invocable: false
---

# Authoring Skills

Use this skill when creating or modifying agent skills in `.agents/skills/`.

## When to Create a Skill

Create a skill when content is:

- Too detailed for AGENTS.md (code templates, multi-step workflows, diagnostic procedures)
- Only relevant for specific tasks (not needed every session)
- Self-contained enough to load independently

Keep in AGENTS.md instead when:

- It's a one-liner rule or guardrail every session needs
- It's a general-purpose gotcha any agent could hit

## File Structure

```
.agents/skills/
└── my-skill/
    ├── SKILL.md          # Required: frontmatter + content
    ├── workflow.md        # Optional: supplementary detail
    └── examples.md        # Optional: referenced from SKILL.md
```

## Supported Frontmatter Fields

```yaml
---
name: my-skill # Required. Used for $name references and /name commands.
description: > # Required. How Claude decides to auto-load the skill.
  What this covers and when to use it. Include file names and keywords.
argument-hint: '<pr-number>' # Optional. Hint for expected arguments.
user-invocable: false # Optional. Set false to hide from / menu.
disable-model-invocation: true # Optional. Set true to prevent auto-triggering.
allowed-tools: [Bash, Read] # Optional. Tools allowed without permission.
model: opus # Optional. Model override.
context: fork # Optional. Isolated subagent execution.
agent: Explore # Optional. Subagent type (with context: fork).
---
```

Only use fields from this list. Unknown fields are silently ignored.

## Writing Descriptions

The `description` is the primary matching surface for auto-activation. Include:

1. **What the skill covers** (topic)
2. **When to use it** (trigger scenario)
3. **Key file names** the skill references (e.g. `config-shared.ts`)
4. **Keywords** a user or agent might mention (e.g. "feature flag", "DCE")

```yaml
# Too vague - won't auto-trigger reliably
description: Helps with flags.

# Good - specific files and concepts for matching
description: >
  How to add or modify Next.js experimental feature flags end-to-end.
  Use when editing config-shared.ts, config-schema.ts, define-env-plugin.ts.
```

## Content Conventions

### Structure for Action

Skills should tell the agent what to **do**, not just what to **know**:

- Lead with "Use this skill when..."
- Include step-by-step procedures
- Add code templates ready to adapt
- End with verification commands
- Cross-reference related skills in a "Related Skills" section

### Relationship to AGENTS.md

| AGENTS.md (always loaded)               | Skills (on demand)                                                     |
| --------------------------------------- | ---------------------------------------------------------------------- |
| One-liner guardrails                    | Step-by-step workflows                                                 |
| "Keep require() behind if/else for DCE" | Full DCE pattern with code examples, verification commands, edge cases |
| Points to skills via `$name`            | Expands on AGENTS.md rules                                             |

When adding a skill, also add a one-liner summary to the relevant AGENTS.md section with a `$skill-name` reference.

### Naming

- Short, descriptive, topic-scoped: `flags`, `dce-edge`, `react-vendoring`
- No repo prefix (already scoped by `.agents/skills/`)
- Hyphens for multi-word names

### Supplementary Files

For complex skills, use a hub + detail pattern:

```
pr-status-triage/
├── SKILL.md         # Overview, quick commands, links to details
├── workflow.md      # Prioritization and patterns
└── local-repro.md   # CI env matching
```


================================================
FILE: .agents/skills/dce-edge/SKILL.md
================================================
---
name: dce-edge
description: >
  DCE-safe require() patterns and edge runtime constraints. Use when writing
  conditional require() calls, guarding Node-only imports (node:stream etc.),
  or editing define-env-plugin.ts / app-render / stream-utils for edge builds.
  Covers if/else branching for webpack DCE, TypeScript definite assignment,
  the NEXT_RUNTIME vs real feature flag distinction, and forcing flags false
  for edge in define-env.ts.
---

# DCE + Edge

Use this skill when changing conditional `require()` paths, Node-only imports, or edge/runtime branching.

## DCE-Safe `require()` Pattern

Webpack only DCEs a `require()` when it sits inside the dead branch of an `if/else` whose condition DefinePlugin can evaluate at compile time.

```ts
// CORRECT - webpack can eliminate the dead branch
if (process.env.__NEXT_USE_NODE_STREAMS) {
  require('node:stream')
} else {
  // web path
}
```

What does NOT work:

- **Early-return/throw guards**: webpack doesn't do control-flow analysis for throws/returns, so the `require()` is still traced.
- **Bare `if` without `else`**: works for inline `node:*` specifiers but NOT for `require('./some-module')` that pulls a new file into the module graph.

Always test edge changes with `pnpm test-start-webpack` on `test/e2e/app-dir/app/standalone.test.ts` (has edge routes), not with `NEXT_SKIP_ISOLATE=1` which skips the full webpack compilation.

## TypeScript + DCE Interaction

Use `if/else` (not two independent `if` blocks) when assigning a variable conditionally on `process.env.X`. TypeScript cannot prove exhaustiveness across `if (flag) { x = a }; if (!flag) { x = b }` and will error with "variable used before being assigned". The `if/else` pattern satisfies both TypeScript (definite assignment) and webpack DCE.

## Compile-Time Switcher Pattern

Platform-specific code (node vs web) can use a single `.ts` switcher module that conditionally `require()`s either `.node.ts` or `.web.ts` into a typed variable, then re-exports the shared runtime API as named exports. Keep the branch as `if/else` so DefinePlugin can dead-code-eliminate the unused `require()`. Keep shared types canonical in `.node.ts`, with `.web.ts` importing them via `import type` and the switcher re-exporting types as needed. Examples: `stream-ops.ts` and `debug-channel-server.ts`.

## `NEXT_RUNTIME` Is Not a Feature Flag

In user-project webpack server compilers, `process.env.NEXT_RUNTIME` is inlined to `'nodejs'`. Guarding Node-only `require('node:*')` paths with `NEXT_RUNTIME === 'nodejs'` does **not** prune anything. For feature-gated codepaths, guard on the real feature define (e.g. `process.env.__NEXT_USE_NODE_STREAMS`).

## Edge Runtime Constraints

Edge routes do NOT use pre-compiled runtime bundles. They are compiled by the user's webpack/Turbopack, so `define-env.ts` controls DCE. Feature flags that gate `node:*` imports must be forced to `false` for edge builds in `define-env.ts` (`isEdgeServer ? false : flagValue`), otherwise webpack will try to resolve `node:stream` etc. and fail.

## `app-page.ts` Template Gotchas

- `app-page.ts` is a build template compiled by the user's bundler. Any `require()` in this file is traced by webpack/turbopack at `next build` time. You cannot require internal modules with relative paths because they won't be resolvable from the user's project. Instead, export new helpers from `entry-base.ts` and access them via `entryBase.*` in the template.
- Template helpers should stay out of `RenderResult`. If `app-page.ts` needs a Node-stream-only utility, prefer a small dedicated helper module in `server/stream-utils/` (with DCE-safe `if/else` + `require()`).

## Verification

- Validate edge bundling regressions with `pnpm test-start-webpack test/e2e/app-dir/app/standalone.test.ts`
- For module-resolution/build-graph fixes, verify without `NEXT_SKIP_ISOLATE=1`

## Related Skills

- `$flags` - flag wiring (config/schema/define-env/runtime env)
- `$react-vendoring` - entry-base boundaries and vendored React
- `$runtime-debug` - reproduction and verification workflow


================================================
FILE: .agents/skills/flags/SKILL.md
================================================
---
name: flags
description: >
  How to add or modify Next.js experimental feature flags end-to-end.
  Use when editing config-shared.ts, config-schema.ts, define-env-plugin.ts,
  next-server.ts, export/worker.ts, or module.compiled.js. Covers type
  declaration, zod schema, build-time injection, runtime env plumbing,
  and the decision between runtime env-var branching vs separate bundle variants.
---

# Feature Flags

Use this skill when adding or changing framework feature flags in Next.js internals.

## Required Wiring

All flags need: `config-shared.ts` (type) → `config-schema.ts` (zod). If the flag is consumed in user-bundled code (client components, edge routes, `app-page.ts` template), also add it to `define-env.ts` for build-time injection. Runtime-only flags consumed exclusively in pre-compiled bundles can skip `define-env.ts`.

## Where the Flag Is Consumed

**Client/bundled code only** (e.g. `__NEXT_PPR` in client components): `define-env.ts` is sufficient. Webpack/Turbopack replaces `process.env.X` at the user's build time.

**Pre-compiled runtime bundles** (e.g. code in `app-render.tsx`): The flag must also be set as a real `process.env` var at runtime, because `app-render.tsx` runs from pre-compiled bundles where `define-env.ts` doesn't reach. Two approaches:

- **Runtime env var**: Set in `next-server.ts` + `export/worker.ts`. Both code paths stay in one bundle. Simple but increases bundle size.
- **Separate bundle variant**: Add DefinePlugin entry in `next-runtime.webpack-config.js` (scoped to `bundleType === 'app'`), new taskfile tasks, update `module.compiled.js` selector, and still set env var in `next-server.ts` + `export/worker.ts` for bundle selection. Eliminates dead code but adds build complexity.

For runtime flags, also add the field to the `NextConfigRuntime` Pick type in `config-shared.ts`.

## Runtime-Bundle Model

- Runtime bundles are built by `next-runtime.webpack-config.js` (rspack) via `taskfile.js` bundle tasks.
- Bundle selection occurs at runtime in `src/server/route-modules/app-page/module.compiled.js` based on `process.env` vars.
- Variants: `{turbo/webpack} × {experimental/stable/nodestreams/experimental-nodestreams} × {dev/prod}` = up to 16 bundles per route type.
- `define-env.ts` affects user bundling, not pre-compiled runtime internals.
- `process.env.X` checks in `app-render.tsx` are either replaced by DefinePlugin at runtime-bundle-build time, or read as actual env vars at server startup. They are NOT affected by the user's defines from `define-env.ts`.
- **Gotcha**: DefinePlugin entries in `next-runtime.webpack-config.js` must be scoped to the correct `bundleType` (e.g. `app` only, not `server`) to avoid replacing assignment targets in `next-server.ts`.

## Related Skills

- `$dce-edge` - DCE-safe require patterns and edge constraints
- `$react-vendoring` - entry-base boundaries and vendored React
- `$runtime-debug` - reproduction and verification workflow


================================================
FILE: .agents/skills/pr-status-triage/SKILL.md
================================================
---
name: pr-status-triage
description: >
  Triage CI failures and PR review comments using scripts/pr-status.js.
  Use when investigating failing CI jobs, flaky tests, or PR review feedback.
  Covers blocker-first prioritization (build > lint > types > tests),
  CI env var matching for local reproduction, and the Known Flaky Tests
  distinction.
---

# PR Status Triage

Use this skill when the user asks about PR status, CI failures, or review comments in the Next.js monorepo.

## Workflow

1. Run `node scripts/pr-status.js --wait` in the background (timeout 1 min), then read `scripts/pr-status/index.md`.
2. Analyze each `job-{id}.md` and `thread-{N}.md` file for failures and review feedback.
3. Prioritize blocking jobs first: build, lint, types, then test jobs.
4. Treat failures as real until disproven; check the "Known Flaky Tests" section before calling anything flaky.
5. Reproduce locally with the same mode and env vars as CI.
6. After addressing review comments, reply to the thread describing what was done, then resolve it. See `thread-N.md` files for ready-to-use commands.
7. When the only remaining failures are known flaky tests and no code changes are needed, retrigger the failing CI jobs with `gh run rerun <run-id> --failed`. Then wait 5 minutes and go back to step 1. Repeat this loop up to 5 times.

## Quick Commands

```bash
node scripts/pr-status.js                  # current branch PR
node scripts/pr-status.js <number>         # specific PR
node scripts/pr-status.js [PR] --wait      # background mode, waits for CI to finish
node scripts/pr-status.js --skip-flaky-check  # skip flaky test detection
```

## References

- [workflow.md](./workflow.md) — prioritization, common failure patterns, resolving review threads
- [local-repro.md](./local-repro.md) — mode/env matching and isolation guidance


================================================
FILE: .agents/skills/pr-status-triage/local-repro.md
================================================
# Local Reproduction Guide

## Match CI Job Mode

- Dev-mode failures: use `pnpm test-dev-turbo` or `pnpm test-dev-webpack` based on job mode.
- Start-mode failures: use `pnpm test-start-turbo` or `pnpm test-start-webpack`.

## Match CI Environment Variables

Read the "Job Environment Variables" section in `index.md` and mirror them locally. Key variables:

- `IS_WEBPACK_TEST=1` — forces webpack mode (turbopack is default locally).
- `NEXT_SKIP_ISOLATE=1` — skips package isolation; **never use** when verifying module resolution or build-time compilation fixes.
- Feature flags like `__NEXT_USE_NODE_STREAMS=true`, `__NEXT_CACHE_COMPONENTS=true` change DefinePlugin replacements.

Example: a failure in "test node streams prod" needs:

```bash
IS_WEBPACK_TEST=1 __NEXT_USE_NODE_STREAMS=true __NEXT_CACHE_COMPONENTS=true NEXT_TEST_MODE=start
```

## Isolation Rule

When validating module-resolution, entrypoint-export, or internal require-path fixes, rerun without `NEXT_SKIP_ISOLATE=1`.

## One-Run Log Analysis

Capture once, analyze multiple times:

```bash
HEADLESS=true pnpm test-dev-turbo test/path/to/test.ts > /tmp/test-output.log 2>&1
grep "●" /tmp/test-output.log
grep -A5 "Error:" /tmp/test-output.log
tail -5 /tmp/test-output.log
```


================================================
FILE: .agents/skills/pr-status-triage/workflow.md
================================================
# CI Triage Workflow

## Prioritization Order

1. Build failures
2. Lint failures
3. Type failures
4. Test failures
5. Review comments (after CI blockers)

## Failure Handling Rules

- Investigate each failing job as if it is caused by the current changes.
- Do not assume flakiness by default.
- If the job output has a "Known Flaky Tests" section, use it as historical context, not as automatic dismissal.

## Common Patterns

- `rust check / build`:
  - Run `cargo fmt -- --check`
  - Fix with `cargo fmt`
- `lint / build`:
  - Run `pnpm prettier --write <file>`
  - Run the repo lint command if needed
- test failures:
  - Run the exact failing test file locally
  - Match dev vs start mode to the CI job

## Resolving Review Threads

After addressing a review comment (e.g., making the requested code change), or when you detect the current code already addresses it:

1. Reply to the thread describing what action was taken:
   ```bash
   node scripts/pr-status.js reply-thread <threadNodeId> "Done -- <description of changes>"
   ```
2. Then resolve the thread:
   ```bash
   node scripts/pr-status.js resolve-thread <threadNodeId>
   ```

The ready-to-use commands with the correct thread IDs are at the bottom of each `thread-N.md` file in `scripts/pr-status/`.

**Important:** Always reply with a description of the actions taken before resolving. This gives the reviewer context about what changed.


================================================
FILE: .agents/skills/react-vendoring/SKILL.md
================================================
---
name: react-vendoring
description: >
  React vendoring and react-server layer boundaries. Use when editing
  entry-base.ts, $$compiled.internal.d.ts, compiled/react* packages,
  or taskfile.js copy_vendor_react. Covers the entry-base.ts boundary
  (all react-server-dom-webpack/* imports must go through it), vendored
  React channels, type declarations, Turbopack remap to
  react-server-dom-turbopack, ComponentMod access patterns, and ESLint
  suppression for guarded requires.
---

# React Vendoring

Use this skill for changes touching vendored React, `react-server-dom-webpack/*`, or react-server layer boundaries.

## App Router Vendoring

React is NOT resolved from `node_modules` for App Router. It's vendored into `packages/next/src/compiled/` during `pnpm build` (task: `copy_vendor_react()` in `taskfile.js`). Pages Router resolves React from `node_modules` normally.

- **Two channels**: stable (`compiled/react/`) and experimental (`compiled/react-experimental/`). The runtime bundle webpack config aliases to the correct channel via `makeAppAliases({ experimental })`.

## `entry-base.ts` Boundary

Only `entry-base.ts` is compiled in rspack's `(react-server)` layer. ALL imports from `react-server-dom-webpack/*` (Flight server/static APIs) must go through `entry-base.ts`. Other files like `stream-ops.node.ts` or `app-render.tsx` must access Flight APIs via the `ComponentMod` parameter (which is the `entry-base.ts` module exposed through the `app-page.ts` build template).

Direct imports from `react-server-dom-webpack/server.node` or `react-server-dom-webpack/static` in files outside `entry-base.ts` will fail at runtime with "The react-server condition must be enabled". Dev mode may mask this error, but production workers fail immediately.

## Type Declarations

`packages/next/types/$$compiled.internal.d.ts` contains `declare module` blocks for vendored React packages. When adding new APIs (e.g. `renderToPipeableStream`, `prerenderToNodeStream`), you must add type declarations here. The bare specifier types (e.g. `declare module 'react-server-dom-webpack/server'`) are what source code in `src/` imports against.

## Adding Node.js-Only React APIs

These exist in `.node` builds but not in the type definitions. Steps:

1. Add type declarations to `$$compiled.internal.d.ts`.
2. Export the API from `entry-base.ts` behind a `process.env` guard.
3. Access it via `ComponentMod` in other files.

```typescript
// In entry-base.ts (react-server layer) only:
/* eslint-disable import/no-extraneous-dependencies */
export let renderToPipeableStream: ... | undefined
if (process.env.__NEXT_USE_NODE_STREAMS) {
  renderToPipeableStream = (
    require('react-server-dom-webpack/server.node') as typeof import('react-server-dom-webpack/server.node')
  ).renderToPipeableStream
} else {
  renderToPipeableStream = undefined
}
/* eslint-enable import/no-extraneous-dependencies */

// In other files, access via ComponentMod:
ComponentMod.renderToPipeableStream!(payload, clientModules, opts)
```

## ESLint Practical Rule

For guarded runtime `require()` blocks that need `import/no-extraneous-dependencies` suppression, prefer scoped block disable/enable. If using `eslint-disable-next-line`, the comment must be on the line immediately before the `require()` call, NOT before the `const` declaration. When the `const` and `require()` are on different lines, this is error-prone.

## Turbopack Remap

`react-server-dom-webpack/*` is silently remapped to `react-server-dom-turbopack/*` by Turbopack's import map. Code says "webpack" everywhere, but Turbopack gets its own bindings at runtime. This affects debugging: stack traces and error messages will reference the turbopack variant.

## Related Skills

- `$flags` - flag wiring (config/schema/define-env/runtime env)
- `$dce-edge` - DCE-safe require patterns and edge constraints
- `$runtime-debug` - reproduction and verification workflow


================================================
FILE: .agents/skills/router-act/SKILL.md
================================================
---
name: router-act
description: >
  How to write end-to-end tests using createRouterAct and LinkAccordion.
  Use when writing or modifying tests that need to control the timing of
  internal Next.js requests (like prefetches) or assert on their responses.
  Covers the act API, fixture patterns, prefetch control via LinkAccordion,
  fake clocks, and avoiding flaky testing patterns.
user-invocable: false
---

# Router Act Testing

Use this skill when writing or modifying tests that involve prefetch requests, client router navigations, or the segment cache. The `createRouterAct` utility from `test/lib/router-act.ts` lets you assert on prefetch and navigation responses in an end-to-end way without coupling to the exact number of requests or the protocol details. This is why most client router-related tests use this pattern.

## When NOT to Use `act`

Don't bother with `act` if you don't need to instrument the network responses — either to control their timing or to assert on what's included in them. If all you're doing is waiting for some part of the UI to appear after a navigation, regular Playwright helpers like `browser.elementById()`, `browser.elementByCss()`, and `browser.waitForElementByCss()` are sufficient.

## Core Principles

1. **Use `LinkAccordion` to control when prefetches happen.** Never let links be visible outside an `act` scope.
2. **Prefer `'no-requests'`** whenever the data should be served from cache. This is the strongest assertion — it proves the cache is working.
3. **Avoid retry/polling timers.** The `act` utility exists specifically to replace inherently flaky patterns like `retry()` loops or `setTimeout` waits for network activity. If you find yourself wanting to poll, you're probably not using `act` correctly.
4. **Avoid the `block` feature.** It's prone to false negatives. Prefer `includes` and `'no-requests'` assertions instead.

## Act API

### Config Options

```typescript
// Assert NO router requests are made (data served from cache).
// Prefer this whenever possible — it's the strongest assertion.
await act(async () => { ... }, 'no-requests')

// Expect at least one response containing this substring
await act(async () => { ... }, { includes: 'Page content' })

// Expect multiple responses (checked in order)
await act(async () => { ... }, [
  { includes: 'First response' },
  { includes: 'Second response' },
])

// Assert the same content appears in two separate responses
await act(async () => { ... }, [
  { includes: 'Repeated content' },
  { includes: 'Repeated content' },
])

// Expect at least one request, don't assert on content
await act(async () => { ... })
```

### How `includes` Matching Works

- The `includes` substring is matched against the HTTP response body. Use text content that appears literally in the rendered output (e.g. `'Dynamic content (stale time 60s)'`).
- Extra responses that don't match any `includes` assertion are silently ignored — you only need to assert on the responses you care about. This keeps tests decoupled from the exact number of requests the router makes.
- Each `includes` expectation claims exactly one response. If the same substring appears in N separate responses, provide N separate `{ includes: '...' }` entries.

### What `act` Does Internally

`act` intercepts all router requests — prefetches, navigations, and Server Actions — made during the scope:

1. Installs a Playwright route handler to intercept router requests
2. Runs your scope function
3. Waits for a `requestIdleCallback` (captures IntersectionObserver-triggered prefetches)
4. Fulfills buffered responses to the browser
5. Repeats steps 3-4 until no more requests arrive
6. Asserts on the responses based on the config

Responses are buffered and only forwarded to the browser after the scope function returns. This means you cannot navigate to a new page and wait for it to render within the same scope — that would deadlock. Trigger the navigation (click the link) and let `act` handle the rest. Read destination page content _after_ `act` returns:

```typescript
await act(
  async () => {
    /* toggle accordion, click link */
  },
  { includes: 'Page content' }
)

// Read content after act returns, not inside the scope
expect(await browser.elementById('my-content').text()).toBe('Page content')
```

## LinkAccordion Pattern

### Why LinkAccordion Exists

`LinkAccordion` controls when `<Link>` components enter the DOM. A Next.js `<Link>` triggers a prefetch when it enters the viewport (via IntersectionObserver). By hiding the Link behind a checkbox toggle, you control exactly when prefetches happen — only when you explicitly toggle the accordion inside an `act` scope.

```tsx
// components/link-accordion.tsx
'use client'
import Link from 'next/link'
import { useState } from 'react'

export function LinkAccordion({ href, children, prefetch }) {
  const [isVisible, setIsVisible] = useState(false)
  return (
    <>
      <input
        type="checkbox"
        checked={isVisible}
        onChange={() => setIsVisible(!isVisible)}
        data-link-accordion={href}
      />
      {isVisible ? (
        <Link href={href} prefetch={prefetch}>
          {children}
        </Link>
      ) : (
        `${children} (link is hidden)`
      )}
    </>
  )
}
```

### Standard Navigation Pattern

Always toggle the accordion and click the link inside the same `act` scope:

```typescript
await act(
  async () => {
    // 1. Toggle accordion — Link enters DOM, triggers prefetch
    const toggle = await browser.elementByCss(
      'input[data-link-accordion="/target-page"]'
    )
    await toggle.click()

    // 2. Click the now-visible link — triggers navigation
    const link = await browser.elementByCss('a[href="/target-page"]')
    await link.click()
  },
  { includes: 'Expected page content' }
)
```

## Common Sources of Flakiness

### Using `browser.back()` with open accordions

Do not use `browser.back()` to return to a page where accordions were previously opened. BFCache restores the full React state including `useState` values, so previously-opened Links are immediately visible. This triggers IntersectionObserver callbacks outside any `act` scope — if the cached data is stale, uncontrolled re-prefetches fire and break subsequent `no-requests` assertions.

The only safe use of `browser.back()`/`browser.forward()` is when testing BFCache behavior specifically.

**Fix:** navigate forward to a fresh hub page instead. See [Hub Pages](#hub-pages).

### Using visible `<Link>` components outside `act` scopes

Any `<Link>` visible in the viewport can trigger a prefetch at any time via IntersectionObserver. If this happens outside an `act` scope, the request is uncontrolled and can interfere with subsequent assertions. Always hide links behind `LinkAccordion` and only toggle them inside `act`.

### Using retry/polling timers to wait for network activity

`retry()`, `setTimeout`, or any polling pattern to wait for prefetches or navigations to settle is inherently flaky. `act` deterministically waits for all router requests to complete before returning.

### Navigating and waiting for render in the same `act` scope

Responses are buffered until the scope exits. Clicking a link then reading destination content in the same scope deadlocks. Read page content after `act` returns instead.

## Hub Pages

When you need to navigate away from a page and come back to test staleness, use "hub" pages instead of `browser.back()`. Each hub is a fresh page with its own `LinkAccordion` components that start closed.

Hub pages use `connection()` to ensure they are dynamically rendered. This guarantees that navigating to a hub always produces a router request, which lets `act` properly manage the navigation and wait for the page to fully render before continuing.

**Hub page pattern:**

```tsx
// app/my-test/hub-a/page.tsx
import { Suspense } from 'react'
import { connection } from 'next/server'
import { LinkAccordion } from '../../components/link-accordion'

async function Content() {
  await connection()
  return <div id="hub-a-content">Hub a</div>
}

export default function Page() {
  return (
    <>
      <Suspense fallback="Loading...">
        <Content />
      </Suspense>
      <ul>
        <li>
          <LinkAccordion href="/my-test/target-page">Target page</LinkAccordion>
        </li>
      </ul>
    </>
  )
}
```

**Target pages link to hubs via LinkAccordion too:**

```tsx
// On target pages, add LinkAccordion links to hub pages
<LinkAccordion href="/my-test/hub-a">Hub A</LinkAccordion>
```

**Test flow:**

```typescript
// 1. Navigate to target (first visit)
await act(
  async () => {
    /* toggle accordion, click link */
  },
  { includes: 'Target content' }
)

// 2. Navigate to hub-a (fresh page, all accordions closed)
await act(
  async () => {
    const toggle = await browser.elementByCss(
      'input[data-link-accordion="/my-test/hub-a"]'
    )
    await toggle.click()
    const link = await browser.elementByCss('a[href="/my-test/hub-a"]')
    await link.click()
  },
  { includes: 'Hub a' }
)

// 3. Advance time
await page.clock.setFixedTime(startDate + 60 * 1000)

// 4. Navigate back to target from hub (controlled prefetch)
await act(async () => {
  const toggle = await browser.elementByCss(
    'input[data-link-accordion="/my-test/target-page"]'
  )
  await toggle.click()
  const link = await browser.elementByCss('a[href="/my-test/target-page"]')
  await link.click()
}, 'no-requests') // or { includes: '...' } if data is stale
```

## Fake Clock Setup

Segment cache staleness tests use Playwright's clock API to control `Date.now()`:

```typescript
async function startBrowserWithFakeClock(url: string) {
  let page!: Playwright.Page
  const startDate = Date.now()

  const browser = await next.browser(url, {
    async beforePageLoad(p: Playwright.Page) {
      page = p
      await page.clock.install()
      await page.clock.setFixedTime(startDate)
    },
  })

  const act = createRouterAct(page)
  return { browser, page, act, startDate }
}
```

- `setFixedTime` changes `Date.now()` return value but timers still run in real time
- The segment cache uses `Date.now()` for staleness checks
- Advancing the clock doesn't trigger IntersectionObserver — only viewport changes do
- `setFixedTime` does NOT fire pending `setTimeout`/`setInterval` callbacks

## Reference

- `createRouterAct`: `test/lib/router-act.ts`
- `LinkAccordion`: `test/e2e/app-dir/segment-cache/staleness/components/link-accordion.tsx`
- Example tests: `test/e2e/app-dir/segment-cache/staleness/`


================================================
FILE: .agents/skills/runtime-debug/SKILL.md
================================================
---
name: runtime-debug
description: >
  Debug and verification workflow for runtime-bundle and module-resolution
  regressions. Use when diagnosing unexpected module inclusions, bundle
  size regressions, or CI failures related to NEXT_SKIP_ISOLATE, nft.json
  traces, or runtime bundle selection (module.compiled.js). Covers CI env
  mirroring, full stack traces via __NEXT_SHOW_IGNORE_LISTED, route trace
  inspection, and webpack stats diffing.
---

# Runtime Debug

Use this skill when reproducing runtime-bundle, module-resolution, or user-bundle inclusion regressions.

## Local Repro Discipline

- Mirror CI env vars when reproducing CI failures.
- Key variables: `IS_WEBPACK_TEST=1` forces webpack (turbopack is default), `NEXT_SKIP_ISOLATE=1` skips packing next.js.
- For module-resolution validation, always rerun without `NEXT_SKIP_ISOLATE=1`.

## Stack Trace Visibility

Set `__NEXT_SHOW_IGNORE_LISTED=true` to disable the ignore-list filtering in dev server error output. By default, Next.js collapses internal frames to `at ignore-listed frames`, which hides useful context when debugging framework internals. Defined in `packages/next/src/server/patch-error-inspect.ts`.

## User-Bundle Regression Guardrail

When user `next build` starts bundling internal Node-only helpers unexpectedly:

1. Inspect route trace artifacts (`.next/server/.../page.js.nft.json`).
2. Inspect traced server chunks for forbidden internals (e.g. `next/dist/server/stream-utils/node-stream-helpers.js`, `node:stream/promises`).
3. Add a `test-start-webpack` assertion that reads the route trace and traced server chunks, and fails on forbidden internals. This validates user-project bundling (not publish-time runtime bundling).

## Bundle Tracing / Inclusion Proof

To prove what user bundling includes, emit webpack stats from the app's `next.config.js`:

```js
// next.config.js
module.exports = {
  webpack(config) {
    config.profile = true
    return config
  },
}
```

Then use `stats.toJson({ modules: true, chunks: true, reasons: true })` and diff `webpack-stats-server.json` between modes. This gives concrete inclusion reasons (e.g. which module required `node:stream/promises`) and is more reliable than analyzer HTML alone.

## Related Skills

- `$flags` - flag wiring (config/schema/define-env/runtime env)
- `$dce-edge` - DCE-safe require patterns and edge constraints
- `$react-vendoring` - entry-base boundaries and vendored React


================================================
FILE: .agents/skills/update-docs/SKILL.md
================================================
---
name: update-docs
description: This skill should be used when the user asks to "update documentation for my changes", "check docs for this PR", "what docs need updating", "sync docs with code", "scaffold docs for this feature", "document this feature", "review docs completeness", "add docs for this change", "what documentation is affected", "docs impact", or mentions "docs/", "docs/01-app", "docs/02-pages", "MDX", "documentation update", "API reference", ".mdx files". Provides guided workflow for updating Next.js documentation based on code changes.
---

# Next.js Documentation Updater

Guides you through updating Next.js documentation based on code changes on the active branch. Designed for maintainers reviewing PRs for documentation completeness.

## Quick Start

1. **Analyze changes**: Run `git diff canary...HEAD --stat` to see what files changed
2. **Identify affected docs**: Map changed source files to documentation paths
3. **Review each doc**: Walk through updates with user confirmation
4. **Validate**: Run `pnpm lint` to check formatting
5. **Commit**: Stage documentation changes

## Workflow: Analyze Code Changes

### Step 1: Get the diff

```bash
# See all changed files on this branch
git diff canary...HEAD --stat

# See changes in specific areas
git diff canary...HEAD -- packages/next/src/
```

### Step 2: Identify documentation-relevant changes

Look for changes in these areas:

| Source Path                            | Likely Doc Impact           |
| -------------------------------------- | --------------------------- |
| `packages/next/src/client/components/` | Component API reference     |
| `packages/next/src/server/`            | Function API reference      |
| `packages/next/src/shared/lib/`        | Varies by export            |
| `packages/next/src/build/`             | Configuration or build docs |
| `packages/next/src/lib/`               | Various features            |

### Step 3: Map to documentation files

Use the code-to-docs mapping in `references/CODE-TO-DOCS-MAPPING.md` to find corresponding documentation files.

Example mappings:

- `src/client/components/image.tsx` → `docs/01-app/03-api-reference/02-components/image.mdx`
- `src/server/config-shared.ts` → `docs/01-app/03-api-reference/05-config/`

## Workflow: Update Existing Documentation

### Step 1: Read the current documentation

Before making changes, read the existing doc to understand:

- Current structure and sections
- Frontmatter fields in use
- Whether it uses `<AppOnly>` / `<PagesOnly>` for router-specific content

### Step 2: Identify what needs updating

Common updates include:

- **New props/options**: Add to the props table and create a section explaining usage
- **Changed behavior**: Update descriptions and examples
- **Deprecated features**: Add deprecation notices and migration guidance
- **New examples**: Add code blocks following conventions

### Step 3: Apply updates with confirmation

For each change:

1. Show the user what you plan to change
2. Wait for confirmation before editing
3. Apply the edit
4. Move to the next change

### Step 4: Check for shared content

If the doc uses the `source` field pattern (common for Pages Router docs), the source file is the one to edit. Example:

```yaml
# docs/02-pages/... file with shared content
---
source: app/building-your-application/optimizing/images
---
```

Edit the App Router source, not the Pages Router file.

### Step 5: Validate changes

```bash
pnpm lint          # Check formatting
pnpm prettier-fix  # Auto-fix formatting issues
```

## Workflow: Scaffold New Feature Documentation

Use this when adding documentation for entirely new features.

### Step 1: Determine the doc type

| Feature Type        | Doc Location                                        | Template         |
| ------------------- | --------------------------------------------------- | ---------------- |
| New component       | `docs/01-app/03-api-reference/02-components/`       | API Reference    |
| New function        | `docs/01-app/03-api-reference/04-functions/`        | API Reference    |
| New config option   | `docs/01-app/03-api-reference/05-config/`           | Config Reference |
| New concept/guide   | `docs/01-app/02-guides/`                            | Guide            |
| New file convention | `docs/01-app/03-api-reference/03-file-conventions/` | File Convention  |

### Step 2: Create the file with proper naming

- Use kebab-case: `my-new-feature.mdx`
- Add numeric prefix if ordering matters: `05-my-new-feature.mdx`
- Place in the correct directory based on feature type

### Step 3: Use the appropriate template

**API Reference Template:**

```mdx
---
title: Feature Name
description: Brief description of what this feature does.
---

{/* The content of this doc is shared between the app and pages router. You can use the `<PagesOnly>Content</PagesOnly>` component to add content that is specific to the Pages Router. Any shared content should not be wrapped in a component. */}

Brief introduction to the feature.

## Reference

### Props

<div style={{ overflowX: 'auto', width: '100%' }}>

| Prop                    | Example            | Type   | Status   |
| ----------------------- | ------------------ | ------ | -------- |
| [`propName`](#propname) | `propName="value"` | String | Required |

</div>

#### `propName`

Description of the prop.

\`\`\`tsx filename="app/example.tsx" switcher
// TypeScript example
\`\`\`

\`\`\`jsx filename="app/example.js" switcher
// JavaScript example
\`\`\`
```

**Guide Template:**

```mdx
---
title: How to do X in Next.js
nav_title: X
description: Learn how to implement X in your Next.js application.
---

Introduction explaining why this guide is useful.

## Prerequisites

What the reader needs to know before starting.

## Step 1: First Step

Explanation and code example.

\`\`\`tsx filename="app/example.tsx" switcher
// Code example
\`\`\`

## Step 2: Second Step

Continue with more steps...

## Next Steps

Related topics to explore.
```

### Step 4: Add related links

Update frontmatter with related documentation:

```yaml
related:
  title: Next Steps
  description: Learn more about related features.
  links:
    - app/api-reference/functions/related-function
    - app/guides/related-guide
```

## Documentation Conventions

See `references/DOC-CONVENTIONS.md` for complete formatting rules.

### Quick Reference

**Frontmatter (required):**

```yaml
---
title: Page Title (2-3 words)
description: One or two sentences describing the page.
---
```

**Code blocks:**

```
\`\`\`tsx filename="app/page.tsx" switcher
// TypeScript first
\`\`\`

\`\`\`jsx filename="app/page.js" switcher
// JavaScript second
\`\`\`
```

**Router-specific content:**

```mdx
<AppOnly>Content only for App Router docs.</AppOnly>

<PagesOnly>Content only for Pages Router docs.</PagesOnly>
```

**Notes:**

```mdx
> **Good to know**: Single line note.

> **Good to know**:
>
> - Multi-line note point 1
> - Multi-line note point 2
```

## Validation Checklist

Before committing documentation changes:

- [ ] Frontmatter has `title` and `description`
- [ ] Code blocks have `filename` attribute
- [ ] TypeScript examples use `switcher` with JS variant
- [ ] Props tables are properly formatted
- [ ] Related links point to valid paths
- [ ] `pnpm lint` passes
- [ ] Changes render correctly (if preview available)

## References

- `references/DOC-CONVENTIONS.md` - Complete frontmatter and formatting rules
- `references/CODE-TO-DOCS-MAPPING.md` - Source code to documentation mapping


================================================
FILE: .agents/skills/update-docs/references/CODE-TO-DOCS-MAPPING.md
================================================
# Code to Documentation Mapping

Maps Next.js source code directories to their corresponding documentation files.

## Core Mappings

### Components

| Source Path                                      | Documentation Path                                      |
| ------------------------------------------------ | ------------------------------------------------------- |
| `packages/next/src/client/components/image.tsx`  | `docs/01-app/03-api-reference/02-components/image.mdx`  |
| `packages/next/src/client/components/link.tsx`   | `docs/01-app/03-api-reference/02-components/link.mdx`   |
| `packages/next/src/client/components/script.tsx` | `docs/01-app/03-api-reference/02-components/script.mdx` |
| `packages/next/src/client/components/form.tsx`   | `docs/01-app/03-api-reference/02-components/form.mdx`   |

### Functions

| Source Path                                          | Documentation Path                                                |
| ---------------------------------------------------- | ----------------------------------------------------------------- |
| `packages/next/src/server/request/`                  | `docs/01-app/03-api-reference/04-functions/`                      |
| `packages/next/src/server/lib/metadata/`             | `docs/01-app/03-api-reference/04-functions/generate-metadata.mdx` |
| `packages/next/src/client/components/navigation.tsx` | `docs/01-app/03-api-reference/04-functions/use-router.mdx`        |
| `packages/next/src/client/components/navigation.tsx` | `docs/01-app/03-api-reference/04-functions/use-pathname.mdx`      |
| `packages/next/src/client/components/navigation.tsx` | `docs/01-app/03-api-reference/04-functions/use-search-params.mdx` |

### File Conventions

| Source Path                                | Documentation Path                                            |
| ------------------------------------------ | ------------------------------------------------------------- |
| `packages/next/src/build/webpack/loaders/` | `docs/01-app/03-api-reference/03-file-conventions/`           |
| `packages/next/src/server/app-render/`     | `docs/01-app/03-api-reference/03-file-conventions/layout.mdx` |
| `packages/next/src/server/app-render/`     | `docs/01-app/03-api-reference/03-file-conventions/page.mdx`   |

### Configuration

| Source Path                                 | Documentation Path                                          |
| ------------------------------------------- | ----------------------------------------------------------- |
| `packages/next/src/server/config-shared.ts` | `docs/01-app/03-api-reference/05-config/01-next-config-js/` |
| `packages/next/src/server/config.ts`        | `docs/01-app/03-api-reference/05-config/01-next-config-js/` |
| `packages/next/src/build/webpack-config.ts` | `docs/01-app/03-api-reference/05-config/01-next-config-js/` |

### Directives

| Source Path                              | Documentation Path                                          |
| ---------------------------------------- | ----------------------------------------------------------- |
| `packages/next/src/server/use-cache/`    | `docs/01-app/03-api-reference/01-directives/use-cache.mdx`  |
| `packages/next/src/client/use-client.ts` | `docs/01-app/03-api-reference/01-directives/use-client.mdx` |
| `packages/next/src/server/use-server.ts` | `docs/01-app/03-api-reference/01-directives/use-server.mdx` |

### Metadata File Conventions

| Source Path                       | Documentation Path                                                                 |
| --------------------------------- | ---------------------------------------------------------------------------------- |
| `packages/next/src/lib/metadata/` | `docs/01-app/03-api-reference/03-file-conventions/01-metadata/`                    |
| Metadata icons handling           | `docs/01-app/03-api-reference/03-file-conventions/01-metadata/app-icons.mdx`       |
| Open Graph images                 | `docs/01-app/03-api-reference/03-file-conventions/01-metadata/opengraph-image.mdx` |
| Sitemap generation                | `docs/01-app/03-api-reference/03-file-conventions/01-metadata/sitemap.mdx`         |

## Directory Pattern Mappings

### By Feature Area

| Source Directory                       | Documentation Area                            | Notes                  |
| -------------------------------------- | --------------------------------------------- | ---------------------- |
| `packages/next/src/client/`            | `docs/01-app/03-api-reference/02-components/` | Client-side components |
| `packages/next/src/server/`            | `docs/01-app/03-api-reference/04-functions/`  | Server functions       |
| `packages/next/src/build/`             | `docs/01-app/03-api-reference/05-config/`     | Build configuration    |
| `packages/next/src/shared/lib/router/` | `docs/01-app/02-guides/`                      | Routing guides         |
| `packages/next/src/lib/metadata/`      | `docs/01-app/02-guides/metadata/`             | Metadata guides        |

### CLI Commands

| Source Path                           | Documentation Path                                   |
| ------------------------------------- | ---------------------------------------------------- |
| `packages/next/src/cli/next-dev.ts`   | `docs/01-app/03-api-reference/06-cli/next-dev.mdx`   |
| `packages/next/src/cli/next-build.ts` | `docs/01-app/03-api-reference/06-cli/next-build.mdx` |
| `packages/next/src/cli/next-start.ts` | `docs/01-app/03-api-reference/06-cli/next-start.mdx` |

## Finding Related Documentation

### Step 1: Identify the changed export

Look at what's exported from the changed file:

- Public API exports → API Reference docs
- Internal utilities → Usually no docs needed
- Configuration types → Config docs

### Step 2: Search for existing docs

Use Claude's built-in tools for searching:

- **Find docs mentioning a term**: Use the Grep tool with the pattern and `docs/` as the path
- **List docs in a directory**: Use the Glob tool with pattern like `docs/01-app/03-api-reference/04-functions/*.mdx`

### Step 3: Check for shared content

If editing App Router docs, check if Pages Router has a corresponding file with `source` field:

- **Find source references**: Use the Grep tool with pattern `source: app/api-reference` in `docs/02-pages/`

## Common Patterns

### New API Function

1. Export added to `packages/next/src/server/`
2. Create doc at `docs/01-app/03-api-reference/04-functions/function-name.mdx`
3. Update index/listing pages if applicable

### New Component Prop

1. Prop added to component in `packages/next/src/client/components/`
2. Update the props table in corresponding doc
3. Add a section explaining the new prop with examples

### New Config Option

1. Option added to `packages/next/src/server/config-shared.ts`
2. Find the relevant config doc in `docs/01-app/03-api-reference/05-config/01-next-config-js/`
3. Add the option with description and example

### Behavioral Change

1. Logic changed in any source file
2. Find all docs that describe this behavior
3. Update descriptions and examples to match new behavior
4. Add migration notes if breaking change

## Quick Search Commands

Use Claude's built-in tools for efficient searching:

- **Find all docs mentioning a term**: Use the Grep tool with your search pattern and `docs/` as the path, filtering to `*.mdx` files
- **List all API reference docs**: Use the Glob tool with pattern `docs/01-app/03-api-reference/**/*.mdx`
- **Find docs by filename pattern**: Use the Glob tool with pattern like `docs/**/*image*.mdx`
- **Read a doc's frontmatter**: Use the Read tool with a line limit to check the `source` field


================================================
FILE: .agents/skills/update-docs/references/DOC-CONVENTIONS.md
================================================
# Next.js Documentation Conventions

Complete reference for frontmatter schema, code block formatting, and MDX component usage.

## Frontmatter Schema

All MDX files must start with YAML frontmatter enclosed in `---` delimiters.

### Required Fields

| Field         | Description                                 | Example                                          |
| ------------- | ------------------------------------------- | ------------------------------------------------ |
| `title`       | Page title for SEO and headings (2-3 words) | `title: Image Component`                         |
| `description` | Brief description (1-2 sentences)           | `description: Optimize images using next/image.` |

### Optional Fields

| Field       | Description                                        | Example                                      |
| ----------- | -------------------------------------------------- | -------------------------------------------- |
| `nav_title` | Shorter title for navigation sidebar               | `nav_title: Image`                           |
| `source`    | Pull content from another page (avoid duplication) | `source: app/api-reference/components/image` |
| `related`   | Next steps section with related links              | See below                                    |
| `version`   | Development stage indicator                        | `version: experimental`                      |

### Related Links Format

```yaml
---
title: My Feature
description: Description here.
related:
  title: Next Steps
  description: Learn more about related features.
  links:
    - app/api-reference/components/image
    - app/guides/optimizing/images
---
```

### Version Field Values

- `experimental` - Experimental feature, may change
- `legacy` - Legacy feature, consider alternatives
- `unstable` - Unstable API, not recommended for production
- `RC` - Release candidate

## Code Block Conventions

### Basic Syntax

````
```language filename="path/to/file.ext"
code here
```
````

### Required Attributes

| Attribute   | When to Use                       | Example                   |
| ----------- | --------------------------------- | ------------------------- |
| `filename`  | Always for code examples          | `filename="app/page.tsx"` |
| `switcher`  | When providing TS and JS variants | `switcher`                |
| `highlight` | To highlight specific lines       | `highlight={1,3-5}`       |

### TypeScript/JavaScript Switcher Pattern

Always provide TypeScript first, then JavaScript:

````mdx
```tsx filename="app/page.tsx" switcher
import type { Metadata } from 'next'

export const metadata: Metadata = {
  title: 'My Page',
}
```

```jsx filename="app/page.js" switcher
export const metadata = {
  title: 'My Page',
}
```
````

### Terminal Commands

Use `bash` language without filename:

````mdx
```bash
npm install next
```
````

### Highlighting Lines

```
highlight={1}        # Single line
highlight={1,3}      # Multiple lines
highlight={1-5}      # Range
highlight={1,3-5,8}  # Combined
```

## MDX Components

### AppOnly / PagesOnly

Use for router-specific content in shared documentation:

```mdx
<AppOnly>

This content only appears in App Router documentation.

</AppOnly>

<PagesOnly>

This content only appears in Pages Router documentation.

</PagesOnly>
```

**Important:** Include blank lines inside the components for proper markdown parsing.

### Image Component

For themed images with light/dark variants:

```mdx
<Image
  alt="Description of the image"
  srcLight="/docs/light/image-name.png"
  srcDark="/docs/dark/image-name.png"
  width={1600}
  height={800}
/>
```

### Notes and Callouts

**Single line:**

```mdx
> **Good to know**: Important information here.
```

**Multi-line:**

```mdx
> **Good to know**:
>
> - First point
> - Second point
> - Third point
```

## Props Tables

Use HTML table wrapper for horizontal scroll on mobile:

```mdx
<div style={{ overflowX: 'auto', width: '100%' }}>

| Prop              | Example             | Type    | Status   |
| ----------------- | ------------------- | ------- | -------- |
| [`src`](#src)     | `src="/image.png"`  | String  | Required |
| [`alt`](#alt)     | `alt="Description"` | String  | Required |
| [`width`](#width) | `width={500}`       | Integer | -        |

</div>
```

### Status Values

- `Required` - Must be provided
- `-` - Optional
- `Deprecated` - Will be removed, use alternative

## Shared Content Pattern

For Pages Router docs that share content with App Router:

**App Router (source):** `docs/01-app/03-api-reference/02-components/image.mdx`

- Contains the full documentation
- Uses `<AppOnly>` and `<PagesOnly>` for router-specific sections

**Pages Router (consumer):** `docs/02-pages/03-api-reference/01-components/image.mdx`

```yaml
---
title: Image Component
description: Optimize images using next/image.
source: app/api-reference/components/image
---
```

The `source` field pulls content from the App Router doc.

## Writing Style

### Voice

- **Guides:** Instructional, use "you" to address users
- **API Reference:** Technical, use imperative verbs ("create", "pass", "return")

### Clarity

- Use plain words over complex alternatives
- Be specific: "the `src` prop" not "this prop"
- Avoid jargon unless explaining it

### Structure

Typical page structure:

1. Brief introduction (what and why)
2. Minimal working example
3. Detailed reference/options
4. Examples for different use cases
5. Related links (via frontmatter)

## File Naming

- Use kebab-case: `generate-metadata.mdx`
- Add numeric prefix for ordering: `01-installation.mdx`
- Index pages: `index.mdx`

## Validation Commands

```bash
pnpm lint              # Full lint check
pnpm prettier-fix      # Fix formatting
pnpm types             # TypeScript check
```


================================================
FILE: .agents/skills/v8-jit/SKILL.md
================================================
---
name: v8-jit
description: >
  V8 JIT optimization patterns for writing high-performance JavaScript in
  Next.js server internals. Use when writing or reviewing hot-path code in
  app-render, stream-utils, routing, caching, or any per-request code path.
  Covers hidden classes / shapes, monomorphic call sites, inline caches,
  megamorphic deopt, closure allocation, array packing, and profiling with
  --trace-opt / --trace-deopt.
user-invocable: false
---

# V8 JIT Optimization

Use this skill when writing or optimizing performance-critical code paths in
Next.js server internals — especially per-request hot paths like rendering,
streaming, routing, and caching.

## Background: V8's Tiered Compilation

V8 compiles JavaScript through multiple tiers:

1. **Ignition** (interpreter) — executes bytecode immediately.
2. **Sparkplug** — fast baseline compiler (no optimization).
3. **Maglev** — mid-tier optimizing compiler.
4. **Turbofan** — full optimizing compiler (speculative, type-feedback-driven).

Code starts in Ignition and is promoted to higher tiers based on execution
frequency and collected type feedback. Turbofan produces the fastest machine
code but **bails out (deopts)** when assumptions are violated at runtime.

The key principle: **help V8 make correct speculative assumptions by keeping
types, shapes, and control flow predictable.**

## Hidden Classes (Shapes / Maps)

Every JavaScript object has an internal "hidden class" (V8 calls it a _Map_,
the spec calls it a _Shape_). Objects that share the same property names, added
in the same order, share the same hidden class. This enables fast property
access via inline caches.

### Initialize All Properties in Constructors

```ts
// GOOD — consistent shape, single hidden class transition chain
class RequestContext {
  url: string
  method: string
  headers: Record<string, string>
  startTime: number
  cached: boolean

  constructor(url: string, method: string, headers: Record<string, string>) {
    this.url = url
    this.method = method
    this.headers = headers
    this.startTime = performance.now()
    this.cached = false // always initialize, even defaults
  }
}
```

```ts
// BAD — conditional property addition creates multiple hidden classes
class RequestContext {
  constructor(url, method, headers, options) {
    this.url = url
    this.method = method
    if (options.timing) {
      this.startTime = performance.now() // shape fork!
    }
    if (options.cache) {
      this.cached = false // another shape fork!
    }
    this.headers = headers
  }
}
```

**Rules:**

- Assign every property in the constructor, in the same order, for every
  instance. Use `null` / `undefined` / `false` as default values rather than
  omitting the property.
- Prefer factory functions when constructing hot-path objects. A single factory
  makes it harder to accidentally fork shapes in different call sites.
- Never `delete` a property on a hot object — it forces a transition to
  dictionary mode (slow properties).
- Avoid adding properties after construction (`obj.newProp = x`) on objects
  used in hot paths.
- Object literals that flow into the same function should have keys in the
  same order:
- Use tuples for very small fixed-size records when names are not needed.
  Tuples avoid key-order pitfalls entirely.

```ts
// GOOD — same key order, shares hidden class
const a = { type: 'static', value: 1 }
const b = { type: 'dynamic', value: 2 }

// BAD — different key order, different hidden classes
const a = { type: 'static', value: 1 }
const b = { value: 2, type: 'dynamic' }
```

### Real Codebase Example

`Span` in `src/trace/trace.ts` initializes all fields in the constructor in a
fixed order — `name`, `parentId`, `attrs`, `status`, `id`, `_start`, `now`.
This ensures all `Span` instances share one hidden class.

## Monomorphic vs Polymorphic vs Megamorphic

V8's inline caches (ICs) track the types/shapes seen at each call site or
property access:

| IC State        | Shapes Seen | Speed                                 |
| --------------- | ----------- | ------------------------------------- |
| **Monomorphic** | 1           | Fastest — single direct check         |
| **Polymorphic** | 2–4         | Fast — linear search through cases    |
| **Megamorphic** | 5+          | Slow — hash-table lookup, no inlining |

Once an IC goes megamorphic it does NOT recover (until the function is
re-compiled). Megamorphic ICs also **prevent Turbofan from inlining** the
function.

### Keep Hot Call Sites Monomorphic

```ts
// GOOD — always called with the same argument shape
function processChunk(chunk: Uint8Array): void {
  // chunk is always Uint8Array → monomorphic
}

// BAD — called with different types at the same call site
function processChunk(chunk: Uint8Array | Buffer | string): void {
  // IC becomes polymorphic/megamorphic
}
```

**Practical strategies:**

- Normalize inputs at the boundary (e.g. convert `Buffer` → `Uint8Array`
  once) and keep internal functions monomorphic.
- Avoid passing both `null` and `undefined` for the same parameter — pick one
  sentinel value.
- When a function must handle multiple types, split into separate specialized
  functions and dispatch once at the entry point:

```ts
// Entry point dispatches once
function handleStream(stream: ReadableStream | Readable) {
  if (stream instanceof ReadableStream) {
    return handleWebStream(stream) // monomorphic call
  }
  return handleNodeStream(stream) // monomorphic call
}
```

This is the pattern used in `stream-ops.ts` and throughout the stream-utils
code (Node.js vs Web stream split via compile-time switcher).

## Closure and Allocation Pressure

Every closure captures its enclosing scope. Creating closures in hot loops
or per-request paths generates GC pressure and can prevent escape analysis.

### Hoist Closures Out of Hot Paths

```ts
// BAD — closure allocated for every request
function handleRequest(req) {
  stream.on('data', (chunk) => processChunk(chunk, req.id))
}

// GOOD — shared listener, request context looked up by stream
const requestIdByStream = new WeakMap()
function onData(chunk) {
  const id = requestIdByStream.get(this)
  if (id !== undefined) processChunk(chunk, id)
}

function processChunk(chunk, id) {
  /* ... */
}

function handleRequest(req) {
  requestIdByStream.set(stream, req.id)
  stream.on('data', onData)
}
```

```ts
// BEST — pre-allocate the callback as a method on a context object
class StreamProcessor {
  id: string
  constructor(id: string) {
    this.id = id
  }
  handleChunk(chunk: Uint8Array) {
    processChunk(chunk, this.id)
  }
}
```

### Avoid Allocations in Tight Loops

```ts
// BAD — allocates a new object per iteration
for (const item of items) {
  doSomething({ key: item.key, value: item.value })
}

// GOOD — reuse a mutable scratch object
const scratch = { key: '', value: '' }
for (const item of items) {
  scratch.key = item.key
  scratch.value = item.value
  doSomething(scratch)
}
```

### Real Codebase Example

`node-stream-helpers.ts` hoists `encoder`, `BUFFER_TAGS`, and tag constants to
module scope to avoid re-creating them on every request. The `bufferIndexOf`
helper uses `Buffer.indexOf` (C++ native) instead of a per-call JS loop,
eliminating per-chunk allocation.

## Array Optimizations

V8 tracks array "element kinds" — an internal type tag that determines how
elements are stored in memory:

| Element Kind      | Description                   | Speed                       |
| ----------------- | ----------------------------- | --------------------------- |
| `PACKED_SMI`      | Small integers only, no holes | Fastest                     |
| `PACKED_DOUBLE`   | Numbers only, no holes        | Fast                        |
| `PACKED_ELEMENTS` | Mixed/objects, no holes       | Moderate                    |
| `HOLEY_*`         | Any of above with holes       | Slower (extra bounds check) |

**Transitions are one-way** — once an array becomes `HOLEY` or `PACKED_ELEMENTS`,
it never goes back.

### Rules

- Pre-allocate arrays with known size: `new Array(n)` creates a holey array.
  Prefer `[]` and `push()`, or use `Array.from({ length: n }, initFn)`.
- Don't create holes: `arr[100] = x` on an empty array creates 100 holes.
- Don't mix types: `[1, 'two', {}]` immediately becomes `PACKED_ELEMENTS`.
- Prefer typed arrays only when you need binary interop/contiguous memory or
  have profiling evidence that they help. For small/short-lived collections,
  normal arrays can be faster and allocate less.

```ts
// GOOD — packed SMI array
const indices: number[] = []
for (let i = 0; i < n; i++) {
  indices.push(i)
}

// BAD — holey from the start
const indices = new Array(n)
for (let i = 0; i < n; i++) {
  indices[i] = i
}
```

### Real Codebase Example

`accumulateStreamChunks` in `app-render.tsx` uses `const staticChunks: Array<Uint8Array> = []` with `push()` — keeping a packed array of a single type
throughout its lifetime.

## Function Optimization and Deopts

### Hot-Path Deopt Footguns

- **`arguments` object**: using `arguments` in non-trivial ways (e.g.
  `arguments[i]` with variable `i`, leaking `arguments`). Use rest params
  instead.
- **Type instability at one call site**: same operation sees both numbers and
  strings (or many object shapes) and becomes polymorphic/megamorphic.
- **`eval` / `with`**: prevents optimization entirely.
- **Highly dynamic object iteration**: avoid `for...in` on hot objects; prefer
  `Object.keys()` / `Object.entries()` when possible.

### Favor Predictable Control Flow

```ts
// GOOD — predictable: always returns same type
function getStatus(code: number): string {
  if (code === 200) return 'ok'
  if (code === 404) return 'not found'
  return 'error'
}

// BAD — returns different types
function getStatus(code: number): string | null | undefined {
  if (code === 200) return 'ok'
  if (code === 404) return null
  // implicitly returns undefined
}
```

### Watch Shape Diversity in `switch` Dispatch

```ts
// WATCH OUT — `node.type` IC can go megamorphic if many shapes hit one site
function render(node) {
  switch (node.type) {
    case 'div':
      return { tag: 'div', children: node.children }
    case 'span':
      return { tag: 'span', text: node.text }
    case 'img':
      return { src: node.src, alt: node.alt }
    // Many distinct node layouts can make this dispatch site polymorphic
  }
}
```

This pattern is not always bad. Often the main pressure is at the shared
dispatch site (`node.type`), while properties used only in one branch stay
monomorphic within that branch. Reach for normalization/splitting only when
profiles show this site is hot and polymorphic.

## String Operations

- **String concatenation in loops is usually fine in modern V8** (ropes make
  many concatenations cheap). For binary data, use `Buffer.concat()`.
- **Template literals vs concatenation**: equivalent performance in modern V8,
  but template literals are clearer.
- **`string.indexOf()` > regex** for simple substring checks.
- **Reuse RegExp objects**: don't create a `new RegExp()` inside a hot
  function — hoist it to module scope.

```ts
// GOOD — regex hoisted to module scope
const ROUTE_PATTERN = /^\/api\//

function isApiRoute(path: string): boolean {
  return ROUTE_PATTERN.test(path)
}

// BAD — regex recreated on every call
function isApiRoute(path: string): boolean {
  return /^\/api\//.test(path) // V8 may or may not cache this
}
```

## `Map` and `Set` vs Plain Objects

- **`Map`** is faster than plain objects for frequent additions/deletions
  (avoids hidden class transitions and dictionary mode).
- **`Set`** is faster than `obj[key] = true` for membership checks with
  dynamic keys.
- For **static lookups** (known keys at module load), plain objects or
  `Object.freeze({...})` are fine — V8 optimizes them as constant.
- Never use an object as a map if keys come from user input (prototype
  pollution risk + megamorphic shapes).

## Profiling and Verification

### V8 Flags for Diagnosing JIT Issues

```bash
# Trace which functions get optimized
node --trace-opt server.js 2>&1 | grep "my-function-name"

# Trace deoptimizations (critical for finding perf regressions)
node --trace-deopt server.js 2>&1 | grep "my-function-name"

# Combined: see the full opt/deopt lifecycle
node --trace-opt --trace-deopt server.js 2>&1 | tee /tmp/v8-trace.log

# Show IC state transitions (verbose)
node --trace-ic server.js 2>&1 | tee /tmp/ic-trace.log

# Print optimized code (advanced)
node --print-opt-code --code-comments server.js
```

### Targeted Profiling in Next.js

```bash
# Profile a production build
node --cpu-prof --cpu-prof-dir=/tmp/profiles \
  node_modules/.bin/next build

# Profile the server during a benchmark
node --cpu-prof --cpu-prof-dir=/tmp/profiles \
  node_modules/.bin/next start &
# ... run benchmark ...
# Analyze in Chrome DevTools: chrome://inspect → Open dedicated DevTools

# Quick trace-deopt check on a specific test
node --trace-deopt $(which jest) --runInBand test/path/to/test.ts \
  2>&1 | grep -i "deopt" | head -50
```

### Using `%` Natives (Development/Testing Only)

With `--allow-natives-syntax`:

```js
function hotFunction(x) {
  return x + 1
}

// Force optimization
%PrepareFunctionForOptimization(hotFunction)
hotFunction(1)
hotFunction(2) % OptimizeFunctionOnNextCall(hotFunction)
hotFunction(3)

// Check optimization status
// 1 = optimized, 2 = not optimized, 3 = always optimized, 6 = maglev
console.log(%GetOptimizationStatus(hotFunction))
```

## Checklist for Hot Path Code Reviews

- [ ] All object properties initialized in constructor/literal, same order
- [ ] No `delete` on hot objects
- [ ] No post-construction property additions on hot objects
- [ ] Functions receive consistent types (monomorphic call sites)
- [ ] Type dispatch happens at boundaries, not deep in hot loops
- [ ] No closures allocated inside tight loops
- [ ] Module-scope constants for regex, encoders, tag buffers
- [ ] Arrays are packed (no holes, no mixed types)
- [ ] `Map`/`Set` used for dynamic key collections
- [ ] No `arguments` object — use rest params
- [ ] `try/catch` at function boundary, not inside tight loops
- [ ] String building via array + `join()` or `Buffer.concat()`
- [ ] Return types are consistent (no `string | null | undefined` mixes)

## Related Skills

- `$dce-edge` — DCE-safe require patterns (compile-time dead code)
- `$runtime-debug` — runtime bundle debugging and profiling workflow


================================================
FILE: .agents/skills/write-api-reference/SKILL.md
================================================
---
name: write-api-reference
description: |
  Produces API reference documentation for Next.js APIs: functions, components, file conventions, directives, and config options.

  **Auto-activation:** User asks to write, create, or draft an API reference page. Also triggers on paths like `docs/01-app/03-api-reference/`, or keywords like "API reference", "props", "parameters", "returns", "signature".

  **Input sources:** Next.js source code, existing API reference pages, or user-provided specifications.

  **Output type:** A markdown (.mdx) API reference page with YAML frontmatter, usage example, reference section, behavior notes, and examples.
agent: Plan
context: fork
---

# Writing API Reference Pages

## Goal

Produce an API reference page that documents a single API surface (function, component, file convention, directive, or config option). The page should be concise, scannable, and example-driven.

Each page documents **one API**. If the API has sub-methods (like `cookies.set()`), document them on the same page. If two APIs are independent, they get separate pages.

## Structure

Identify which category the API belongs to, then follow the corresponding template.

### Categories

1. **Function** (`cookies`, `fetch`, `generateStaticParams`): signature, params/returns, methods table, examples
2. **Component** (`Link`, `Image`, `Script`): props summary table, individual prop docs, examples
3. **File convention** (`page`, `layout`, `route`): definition, code showing the convention, props, behavior, examples
4. **Directive** (`use client`, `use cache`): definition, usage, serialization/boundary rules, reference
5. **Config option** (`basePath`, `images`, etc.): definition, config code, behavioral sections

### Template

````markdown
---
title: {API name}
description: {API Reference for the {API name} {function|component|file convention|directive|config option}.}
---

{One sentence defining what it does and where it's used.}

```tsx filename="path/to/file.tsx" switcher
// Minimal working usage
```

```jsx filename="path/to/file.js" switcher
// Same example in JS
```

## Reference

{For functions: methods/params table, return type.}
{For components: props summary table, then `#### propName` subsections.}
{For file conventions: `### Props` with `#### propName` subsections.}
{For directives: usage rules and serialization constraints.}
{For config: options table or individual option docs.}

### {Subsection name}

{Description + code example + table of values where applicable.}

## Good to know

- {Default behavior or implicit effects.}
- {Caveats, limitations, or version-specific notes.}
- {Edge cases the developer should be aware of.}

## Examples

### {Example name}

{Brief context, 1-2 sentences.}

```tsx filename="path/to/file.tsx" switcher
// Complete working example
```

```jsx filename="path/to/file.js" switcher
// Same example in JS
```

## Version History

| Version  | Changes         |
| -------- | --------------- |
| `vX.Y.Z` | {What changed.} |
````

**Category-specific notes:**

- **Functions**: Lead with the function signature and `await` if async. Document methods in a table if the return value has methods (like `cookies`). Document options in a separate table if applicable.
- **Components**: Start with a props summary table (`| Prop | Example | Type | Required |`). Then document each prop under `#### propName` with description, code example, and value table where useful.
- **File conventions**: Show the default export signature with TypeScript types. Document each prop (`params`, `searchParams`, etc.) under `#### propName` with a route/URL/value example table.
- **Directives**: No `## Reference` section. Use `## Usage` instead, showing correct placement. Document serialization constraints and boundary rules.
- **Config options**: Show the `next.config.ts` snippet. Use subsections for each behavioral aspect.

## Rules

1. **Lead with what it does.** First sentence defines the API. No preamble.
2. **Show working code immediately.** A minimal usage example appears right after the opening sentence, before `## Reference`.
3. **Use `switcher` for tsx/jsx pairs.** Always include both. Always include `filename="path/to/file.ext"`.
4. **Use `highlight={n}` for key lines.** Highlight the line that demonstrates the API being documented.
5. **Tables for simple APIs, subsections for complex ones.** If a prop/param needs only a type and one-line description, use a table row. If it needs a code example or multiple values, use a `####` subsection.
6. **Behavior section uses `> **Good to know**:`or`## Good to know`.** Use the blockquote format for brief notes (1-3 bullets). Use the heading format for longer sections. Not "Note:" or "Warning:".
7. **Examples section uses `### Example Name` subsections.** Each example solves one specific use case.
8. **Version History table at the end.** Include when the API has changed across versions. Omit for new APIs.
9. **No em dashes.** Use periods, commas, or parentheses instead.
10. **Mechanical, observable language.** Describe what happens, not how it feels. "Returns an object" not "gives you an object".
11. **Link to related docs with relative paths.** Use `/docs/app/...` format.
12. **No selling or justifying.** No "powerful", "easily", "simply". State what the API does.

| Don't                                                   | Do                                                                                          |
| ------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| "This powerful function lets you easily manage cookies" | "`cookies` is an async function that reads HTTP request cookies in Server Components"       |
| "You can conveniently access..."                        | "Returns an object containing..."                                                           |
| "The best way to handle navigation"                     | "`<Link>` extends the HTML `<a>` element to provide prefetching and client-side navigation" |

## Workflow

1. **Ask for reference material.** Ask the user if they have any RFCs, PRs, design docs, or other context that should inform the doc.
2. **Identify the API category** (function, component, file convention, directive, config).
3. **Research the implementation.** Read the source code to understand params, return types, edge cases, and defaults.
4. **Check e2e tests.** Search `test/` for tests exercising the API to find real usage patterns, edge cases, and expected behavior.
5. **Check existing related docs** for linking opportunities and to avoid duplication.
6. **Write using the appropriate category template.** Follow the rules above.
7. **Review against the rules.** Verify: one sentence opener, immediate code example, correct `switcher`/`filename` usage, tables vs subsections, "Good to know" format, no em dashes, mechanical language.

## References

Read these pages in `docs/01-app/03-api-reference/` before writing. They demonstrate the patterns above.

- `04-functions/cookies.mdx` - Function with methods table, options table, and behavior notes
- `03-file-conventions/page.mdx` - File convention with props subsections and route/URL/value tables
- `02-components/link.mdx` - Component with props summary table and detailed per-prop docs
- `01-directives/use-client.mdx` - Directive with usage section and serialization rules
- `04-functions/fetch.mdx` - Function with troubleshooting section and version history


================================================
FILE: .agents/skills/write-guide/SKILL.md
================================================
---
name: write-guide
description: |
  Generates technical guides that teach real-world use cases through progressive examples.

  **Auto-activation:** User asks to write, create, or draft a guide or tutorial. Also use when converting feature documentation, API references, or skill knowledge into step-by-step learning content.

  **Input sources:** Feature skills, API documentation, existing code examples, or user-provided specifications.

  **Output type:** A markdown guide with YAML frontmatter, introduction, 2-4 progressive steps, and next steps section.
agent: Plan
context: fork
---

# Writing Guides

## Goal

Produce a technical guide that teaches a real-world use case through progressive examples. Concepts are introduced only when the reader needs them.

Each guide solves **one specific problem**. Not a category of problems. If the outline has 5+ steps or covers multiple approaches, split it.

## Structure

Every guide follows this arc: introduction, example setup, 2-5 progressive steps, next steps.

Each step follows this loop: working code → new requirement → friction → explanation → resolution → observable proof.

Sections: introduction (no heading, 2 paragraphs max), `## Example` (what we're building + source link), `### Step N` (action-oriented titles, 2-4 steps), `## Next steps` (summary + related links).

Headings should tell a story on their own. If readers only saw the headings, they'd understand the guide's takeaway.

### Template

````markdown
---
title: {Action-oriented, e.g., "Building X" or "How to Y"}
description: {One sentence}
nav_title: {Short title for navigation}
---

{What the reader will accomplish and why it matters. The friction and how this approach resolves it. 2 paragraphs max.}

## Example

As an example, we'll build {what we're building}.

We'll start with {step 1}, then {step 2}, and {step 3}.

{Source code link.}

### Step 1: {Action-oriented title}

{Brief context, 1-2 sentences.}

```tsx filename="path/to/file.tsx"
// Minimal working code
```

{Explain what happens.}

{Introduce friction: warning, limitation, or constraint.}

{Resolution: explain the choice, apply the fix.}

{Verify the fix with observable proof.}

### Step 2: {Action-oriented title}

{Same pattern: context → code → explain → friction → resolution → proof.}

### Step 3: {Action-oriented title}

{Same pattern.}

## Next steps

You now know how to {summary}.

Next, learn how to:

- [Related guide 1]()
- [Related guide 2]()
````

### Workflow

1. **Research**: Check available skills for relevant features. Read existing docs for context and linking opportunities.
2. **Plan**: Outline sections. Verify scope (one problem, 2-4 steps). Each step needs a friction point and resolution.
3. **Write**: Follow the template above. Apply the rules below.
4. **Review**: Re-read the rules, verify, then present.

## Rules

1. **Progressive disclosure.** Start with the smallest working example. Introduce complexity only when the example breaks. Name concepts at the moment of resolution, after the reader has felt the problem. Full loop: working → new requirement → something breaks → explain why → name the fix → apply → verify with proof → move on.
2. **Show problems visually.** Console errors, terminal output, build warnings, slow-loading pages. "If we refresh the page, we can see the component blocks the response."
3. **Verify resolutions with observable proof.** Before/after comparisons, browser reloads, terminal output. "If we refresh the page again, we can see it loads instantly."
4. **One friction point per step.** If a step has multiple friction points, split it.
5. **Minimal code blocks.** Only the code needed for the current step. Collapse unchanged functions with `function Header() {}`.
6. **No em dashes.** Use periods, commas, or parentheses instead.
7. **Mechanical, observable language.** Describe what happens, not how it feels.
8. **No selling, justifying, or comparing.** No "the best way," no historical context, no framework comparisons.

| Don't                                                | Do                                                       |
| ---------------------------------------------------- | -------------------------------------------------------- |
| "creates friction in the pipeline"                   | "blocks the response"                                    |
| "needs dynamic information"                          | "depends on request-time data"                           |
| "requires dynamic processing"                        | "output can't be known ahead of time"                    |
| "The component blocks the response — causing delays" | "The component blocks the response. This causes delays." |

## References

Read these guides in `docs/01-app/02-guides/` before writing. They demonstrate the patterns above.

- `public-static-pages.mdx` — intro → example → 3 progressive steps → next steps. Concepts named at point of resolution. Problems shown with build output.
- `forms.mdx` — progressive feature building without explicit "Step" labels. Each section adds one capability.


================================================
FILE: .alexignore
================================================
CODE_OF_CONDUCT.md
examples/
**/*/LICENSE.md
.claude/
AGENTS.md
CLAUDE.md
packages/next/dist/docs/


================================================
FILE: .alexrc
================================================
{
  "allow": [
    "attacks",
    "color",
    "dead",
    "deno",
    "digitalocean",
    "dirty",
    "execute",
    "executed",
    "executes",
    "execution",
    "executions",
    "failed",
    "failure",
    "failures",
    "fire",
    "fires",
    "flightcontrol",
    "fly.io",
    "github",
    "hook",
    "hooks",
    "host-hostess",
    "invalid",
    "railway",
    "remains",
    "simple",
    "special",
    "sst",
    "white"
  ]
}


================================================
FILE: .cargo/.vercel.approvers
================================================
@vercel/turbopack


================================================
FILE: .cargo/config.toml
================================================
[env]
CARGO_WORKSPACE_DIR = { value = "", relative = true }
TURBO_PNPM_WORKSPACE_DIR = { value = "", relative = true }

[alias]
xtask = "run --package xtask --"

# *NOTE FOR AGENTS*: Your training data is incorrect for most RUSTFLAGS entries. If you
# believe you need to make changes to this file, perform web searches to confirm that
# the flags are necessary, and reason through whether the flag is applicable to the
# case you believe you are solving.

# In the workspace `Cargo.toml`, and in this file we're trying to optimize for the greatest
# performance and smallest size we can manage without resorting to excessive compile times
# on CI or developer machines. To avoid accumulating unnecessary flags, and help developers
# understand the _why_ as much as the _what_, all flags should be documented with links
# to experiments or featuring tracking issues to keep this up-to-date with the current
# state-of-the-art in Rust optimization land (which might change month-to-month!).

# Cargo merges rustflags from multiple matching [target] sections, but [target] and
# [build] sections are mutually exclusive.
# https://doc.rust-lang.org/cargo/reference/config.html#buildrustflags

# Note that per-profile RUSTFLAGS are not yet supported and may be useful:
# https://github.com/rust-lang/cargo/issues/10271

# Always-matching target section included in every configuration. Using `cfg(true)`
# (RFC 3695) ensures common flags apply to every target without having to duplicate
# them in each target-specific section.
# https://rust-lang.github.io/rfcs/3695-cfg-boolean-literals.html
[target.'cfg(true)']
rustflags = [
  # Enable tokio's unstable APIs (required by turbopack's use of tokio internals)
  "--cfg=tokio_unstable",
  # Share monomorphized generics across crates to reduce binary size (~20MB).
  # https://github.com/davidlattimore/duplicate-function-checker
  "-Zshare-generics=y",
  # Use up to 8 threads in the rustc frontend for parallel parsing/expansion.
  # https://blog.rust-lang.org/2023/11/09/parallel-rustc.html
  "-Zthreads=8",
  # Unlock nightly-only options
  "-Zunstable-options",
]

# macOS: use rust-lld (ld64.lld) for faster linking and enable ICF.
# ICF (Identical Code Folding) reduces binary size with negligible build time impact.
# Enabled everywhere that uses lld so we catch issues early.
[target.'cfg(target_os = "macos")']
linker = "rust-lld"
rustflags = ["-Clink-arg=--icf=all"]

# Windows: statically link the CRT and opt into rust-lld for fast linking.
# rust-lld is not yet the default on Windows (tracking: rust-lang/rust#71520).
[target.'cfg(windows)']
linker = "rust-lld"
rustflags = ["-Ctarget-feature=+crt-static"]

# Musl targets: disable static CRT linking. We produce dynamic .node shared
# libraries (N-API addons), not static binaries.
[target.'cfg(all(target_os = "linux", target_env = "musl"))']
rustflags = ["-Ctarget-feature=-crt-static"]

# WASM: configure getrandom to use the wasm_js backend (Math.random / crypto).
[target.wasm32-unknown-unknown]
rustflags = [
  "--cfg", "getrandom_backend=\"wasm_js\"",
]


================================================
FILE: .claude-plugin/marketplace.json
================================================
{
  "name": "nextjs",
  "owner": {
    "name": "Vercel",
    "url": "https://vercel.com"
  },
  "plugins": [
    {
      "name": "cache-components",
      "source": "./plugins/cache-components",
      "description": "Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). Proactively activates in projects with cacheComponents enabled.",
      "version": "1.0.0",
      "author": {
        "name": "Next.js Team"
      }
    }
  ]
}


================================================
FILE: .claude-plugin/plugins/README.md
================================================
# Next.js Claude Code Plugins

This directory contains Claude Code plugins for Next.js development.

## Using the Next.js Plugin Marketplace

The Next.js repository serves as a Claude Code plugin marketplace. Team members and contributors can install plugins directly from this repo.

### Quick Start

```bash
# Add the Next.js marketplace
/plugin marketplace add vercel/next.js

# List available plugins
/plugin list

# Install a plugin
/plugin install cache-components@nextjs
```

### Available Plugins

| Plugin | Description |
|--------|-------------|
| `cache-components` | Expert guidance for Cache Components and PPR |

## For Team Members

To auto-enable plugins for everyone working in a Next.js project, add to `.claude/settings.json`:

```json
{
  "extraKnownMarketplaces": {
    "nextjs": {
      "source": {
        "source": "github",
        "repo": "vercel/next.js"
      }
    }
  },
  "enabledPlugins": {
    "cache-components@nextjs": true
  }
}
```

## Creating New Plugins

To add a new plugin to the marketplace:

### 1. Create Plugin Directory

```bash
mkdir -p .claude-plugin/plugins/my-plugin/.claude-plugin
mkdir -p .claude-plugin/plugins/my-plugin/skills/my-skill
```

### 2. Create Plugin Manifest

**File**: `.claude-plugin/plugins/my-plugin/.claude-plugin/plugin.json`

```json
{
  "name": "my-plugin",
  "version": "1.0.0",
  "description": "What the plugin does",
  "author": {
    "name": "Next.js Team"
  }
}
```

### 3. Create Skill

**File**: `.claude-plugin/plugins/my-plugin/skills/my-skill/SKILL.md`

```yaml
---
name: my-skill
description: When to use this skill
---

# My Skill

Instructions for Claude...
```

### 4. Register in Marketplace

Add to `.claude-plugin/marketplace.json`:

```json
{
  "plugins": [
    {
      "name": "my-plugin",
      "source": "./plugins/my-plugin",
      "description": "What it does"
    }
  ]
}
```

### 5. Test Locally

```bash
claude --plugin-dir .claude-plugin/plugins/my-plugin
```

## Plugin Structure

```
.claude-plugin/
├── marketplace.json                       ← Marketplace catalog
└── plugins/
    ├── README.md                          ← This file
    └── cache-components/
        ├── .claude-plugin/
        │   └── plugin.json                ← Plugin manifest
        ├── skills/
        │   └── cache-components/
        │       ├── SKILL.md               ← Main skill file
        │       ├── REFERENCE.md           ← API reference
        │       ├── PATTERNS.md            ← Usage patterns
        │       └── TROUBLESHOOTING.md     ← Debugging guide
        └── README.md                      ← Plugin documentation
```


================================================
FILE: .claude-plugin/plugins/cache-components/.claude-plugin/plugin.json
================================================
{
  "name": "cache-components",
  "version": "1.0.0",
  "description": "Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). Proactively activates in projects with cacheComponents: true, providing patterns for 'use cache' directive, cacheLife(), cacheTag(), cache invalidation, and parameter permutation rendering.",
  "author": {
    "name": "Next.js Team",
    "url": "https://nextjs.org"
  },
  "homepage": "https://nextjs.org/docs/app/building-your-application/caching",
  "repository": "https://github.com/vercel/next.js",
  "license": "MIT",
  "keywords": [
    "nextjs",
    "cache",
    "ppr",
    "partial-prerendering",
    "react-server-components",
    "use-cache"
  ]
}


================================================
FILE: .claude-plugin/plugins/cache-components/README.md
================================================
# Cache Components Plugin for Claude Code

Expert guidance for Next.js Cache Components and Partial Prerendering (PPR).

## Features

This plugin provides a comprehensive skill that:

- **Proactively activates** in projects with `cacheComponents: true`
- Teaches the `'use cache'` directive, `cacheLife()`, `cacheTag()`, and invalidation APIs
- Explains **parameter permutation rendering** and subshell generation
- Covers migration from deprecated `revalidate`/`dynamic` segment configs
- Provides build-time error solutions and debugging guidance

## Installation

### Step 1: Add the Next.js Marketplace

```
/plugin marketplace add vercel/next.js
```

### Step 2: Install the Plugin

```
/plugin install cache-components@nextjs
```

Or install via CLI:

```bash
claude plugin install cache-components@nextjs
```

### Step 3 (Optional): Enable for Your Team

Add to your project's `.claude/settings.json` to auto-enable for all team members:

```json
{
  "enabledPlugins": {
    "cache-components@nextjs": true
  }
}
```

## What's Included

| File | Description |
|------|-------------|
| `SKILL.md` | Core concepts, APIs, and proactive application guidelines |
| `REFERENCE.md` | Complete API reference, generateStaticParams, deprecated configs |
| `PATTERNS.md` | 12 production patterns including subshell composition |
| `TROUBLESHOOTING.md` | Build errors, debugging techniques, common issues |

## Usage

Once installed, the skill automatically activates when:

1. You're working in a Next.js project with `cacheComponents: true`
2. You ask about caching, PPR, or the `'use cache'` directive
3. You're writing React Server Components or Server Actions

### Example Triggers

- "How do I cache this data fetching function?"
- "What's the difference between updateTag and revalidateTag?"
- "I'm getting a build error about uncached data outside Suspense"
- "Help me set up generateStaticParams for my product pages"

## Key Concepts Covered

### Parameter Permutation Rendering

When you provide `generateStaticParams`, Next.js renders ALL permutations:

```
generateStaticParams returns:
  [{ category: 'jackets', slug: 'bomber' }]

Next.js renders:
  /products/jackets/bomber     ← Complete page
  /products/jackets/[slug]     ← Category subshell (reusable!)
  /products/[category]/[slug]  ← Fallback shell
```

### Deprecated Segment Configs

| Old (Deprecated) | New (Cache Components) |
|------------------|------------------------|
| `export const revalidate = 3600` | `cacheLife('hours')` inside `'use cache'` |
| `export const dynamic = 'force-static'` | Use `'use cache'` + Suspense |

## Contributing

This plugin lives in the Next.js repository at `.claude-plugin/plugins/cache-components/`.

To contribute improvements:

1. Edit files in `.claude-plugin/plugins/cache-components/skills/cache-components/`
2. Test locally with `claude --plugin-dir .claude-plugin/plugins/cache-components`
3. Submit a PR to the Next.js repository

## Version History

### 1.0.0

- Initial release
- Covers `'use cache'`, `cacheLife()`, `cacheTag()`, `updateTag()`, `revalidateTag()`
- Parameter permutation rendering and subshell generation
- Migration guide from deprecated segment configs
- Build-time feedback and troubleshooting


================================================
FILE: .claude-plugin/plugins/cache-components/skills/cache-components/PATTERNS.md
================================================
# Cache Components Patterns & Recipes

Common patterns for implementing Cache Components effectively.

## Pattern 1: Static + Cached + Dynamic Page

The foundational pattern for Partial Prerendering:

```tsx
import { Suspense } from 'react'
import { cacheLife } from 'next/cache'

// Static - no special handling needed
function Header() {
  return <header>My Blog</header>
}

// Cached - included in static shell
async function FeaturedPosts() {
  'use cache'
  cacheLife('hours')

  const posts = await db.posts.findMany({
    where: { featured: true },
    take: 5,
  })

  return (
    <section>
      {posts.map((post) => (
        <PostCard key={post.id} post={post} />
      ))}
    </section>
  )
}

// Dynamic - streams at request time
async function PersonalizedFeed() {
  const session = await getSession()
  const feed = await db.posts.findMany({
    where: { authorId: { in: session.following } },
  })

  return <FeedList posts={feed} />
}

// Page composition
export default async function HomePage() {
  return (
    <>
      <Header />
      <FeaturedPosts />
      <Suspense fallback={<FeedSkeleton />}>
        <PersonalizedFeed />
      </Suspense>
    </>
  )
}
```

---

## Pattern 2: Read-Your-Own-Writes with Server Actions

Ensure users see their changes immediately:

```tsx
// components/posts.tsx
import { cacheTag, cacheLife } from 'next/cache'

async function PostsList() {
  'use cache'
  cacheTag('posts')
  cacheLife('hours')

  const posts = await db.posts.findMany({ orderBy: { createdAt: 'desc' } })
  return (
    <ul>
      {posts.map((p) => (
        <PostItem key={p.id} post={p} />
      ))}
    </ul>
  )
}

// actions/posts.ts
'use server'
import { updateTag } from 'next/cache'

export async function createPost(formData: FormData) {
  const post = await db.posts.create({
    data: {
      title: formData.get('title') as string,
      content: formData.get('content') as string,
    },
  })

  // Immediate invalidation - user sees new post right away
  updateTag('posts')

  return { success: true, postId: post.id }
}

// components/create-post-form.tsx
'use client'
import { useTransition } from 'react'
import { createPost } from '@/actions/posts'

export function CreatePostForm() {
  const [isPending, startTransition] = useTransition()

  return (
    <form
      action={(formData) => {
        startTransition(() => createPost(formData))
      }}
    >
      <input name="title" required />
      <textarea name="content" required />
      <button disabled={isPending}>
        {isPending ? 'Creating...' : 'Create Post'}
      </button>
    </form>
  )
}
```

---

## Pattern 3: Granular Cache Invalidation

Tag caches at multiple levels for precise invalidation:

```tsx
// Cached with multiple tags
async function BlogPost({ postId }: { postId: string }) {
  'use cache'
  cacheTag('posts', `post-${postId}`)
  cacheLife('days')

  const post = await db.posts.findUnique({
    where: { id: postId },
    include: { author: true, comments: true },
  })

  return <Article post={post} />
}

async function AuthorPosts({ authorId }: { authorId: string }) {
  'use cache'
  cacheTag('posts', `author-${authorId}`)
  cacheLife('hours')

  const posts = await db.posts.findMany({
    where: { authorId },
  })

  return <PostGrid posts={posts} />
}

// Server actions with targeted invalidation
'use server'
import { updateTag } from 'next/cache'

export async function updatePost(postId: string, data: FormData) {
  const post = await db.posts.update({
    where: { id: postId },
    data: { title: data.get('title'), content: data.get('content') },
  })

  // Invalidate specific post only
  updateTag(`post-${postId}`)
}

export async function deleteAuthorPosts(authorId: string) {
  await db.posts.deleteMany({ where: { authorId } })

  // Invalidate all author's posts
  updateTag(`author-${authorId}`)
}

export async function clearAllPosts() {
  await db.posts.deleteMany()

  // Nuclear option - invalidate everything tagged 'posts'
  updateTag('posts')
}
```

---

## Pattern 4: Cached Data Fetching Functions

Create reusable cached data fetchers:

```tsx
// lib/data.ts
import { cacheTag, cacheLife } from 'next/cache'

export async function getUser(userId: string) {
  'use cache'
  cacheTag('users', `user-${userId}`)
  cacheLife('hours')

  return db.users.findUnique({ where: { id: userId } })
}

export async function getPostsByCategory(category: string) {
  'use cache'
  cacheTag('posts', `category-${category}`)
  cacheLife('minutes')

  return db.posts.findMany({
    where: { category },
    orderBy: { createdAt: 'desc' },
  })
}

export async function getPopularProducts() {
  'use cache'
  cacheTag('products', 'popular')
  cacheLife('hours')

  return db.products.findMany({
    orderBy: { salesCount: 'desc' },
    take: 10,
  })
}

// Usage in components
async function Sidebar() {
  const popular = await getPopularProducts()
  return <ProductList products={popular} />
}
```

---

## Pattern 5: Stale-While-Revalidate for Background Updates

Use `revalidateTag` for non-critical updates:

```tsx
// For background analytics or non-user-facing updates
'use server'
import { revalidateTag } from 'next/cache'

export async function trackView(postId: string) {
  await db.posts.update({
    where: { id: postId },
    data: { views: { increment: 1 } },
  })

  // Background revalidation - old count shown while updating
  revalidateTag(`post-${postId}`, 'max')
}

// For user-facing mutations, use updateTag instead
export async function likePost(postId: string) {
  await db.likes.create({ data: { postId, userId: getCurrentUserId() } })

  // Immediate - user sees their like right away
  updateTag(`post-${postId}`)
}
```

---

## Pattern 6: Conditional Caching Based on Content

Cache based on content characteristics:

```tsx
async function ContentBlock({ id }: { id: string }) {
  'use cache'

  const content = await db.content.findUnique({ where: { id } })

  // Adjust cache life based on content type
  if (content.type === 'static') {
    cacheLife('max')
    cacheTag('static-content')
  } else if (content.type === 'news') {
    cacheLife('minutes')
    cacheTag('news', `news-${id}`)
  } else {
    cacheLife('default')
    cacheTag('content', `content-${id}`)
  }

  return <ContentRenderer content={content} />
}
```

---

## Pattern 7: Nested Cached Components

Compose cached components for fine-grained caching:

```tsx
// Each component caches independently
async function Header() {
  'use cache'
  cacheTag('layout', 'header')
  cacheLife('days')

  const nav = await db.navigation.findFirst()
  return <Nav items={nav.items} />
}

async function Footer() {
  'use cache'
  cacheTag('layout', 'footer')
  cacheLife('days')

  const footer = await db.footer.findFirst()
  return <FooterContent data={footer} />
}

async function Sidebar({ category }: { category: string }) {
  'use cache'
  cacheTag('sidebar', `category-${category}`)
  cacheLife('hours')

  const related = await db.posts.findMany({
    where: { category },
    take: 5,
  })
  return <RelatedPosts posts={related} />
}

// Page composes cached components
export default async function BlogLayout({
  children,
  params,
}: {
  children: React.ReactNode
  params: { category: string }
}) {
  return (
    <>
      <Header />
      <main>
        {children}
        <Sidebar category={params.category} />
      </main>
      <Footer />
    </>
  )
}
```

---

## Pattern 8: E-commerce Product Page

Complete example for e-commerce:

```tsx
// app/products/[id]/page.tsx
import { Suspense } from 'react'
import { cacheTag, cacheLife } from 'next/cache'

// Cached product details (changes rarely)
async function ProductDetails({ productId }: { productId: string }) {
  'use cache'
  cacheTag('products', `product-${productId}`)
  cacheLife('hours')

  const product = await db.products.findUnique({
    where: { id: productId },
    include: { images: true, specifications: true },
  })

  return (
    <div>
      <ProductGallery images={product.images} />
      <ProductInfo product={product} />
      <Specifications specs={product.specifications} />
    </div>
  )
}

// Cached reviews (moderate change frequency)
async function ProductReviews({ productId }: { productId: string }) {
  'use cache'
  cacheTag(`product-${productId}-reviews`)
  cacheLife('minutes')

  const reviews = await db.reviews.findMany({
    where: { productId },
    orderBy: { createdAt: 'desc' },
    take: 10,
  })

  return <ReviewsList reviews={reviews} />
}

// Dynamic inventory (real-time)
async function InventoryStatus({ productId }: { productId: string }) {
  // No cache - always fresh
  const inventory = await db.inventory.findUnique({
    where: { productId },
  })

  return (
    <div>
      {inventory.quantity > 0 ? (
        <span className="text-green-600">In Stock ({inventory.quantity})</span>
      ) : (
        <span className="text-red-600">Out of Stock</span>
      )}
    </div>
  )
}

// Page composition
export default async function ProductPage({
  params,
}: {
  params: Promise<{ id: string }>
}) {
  const { id } = await params

  return (
    <>
      <ProductDetails productId={id} />

      <Suspense fallback={<InventorySkeleton />}>
        <InventoryStatus productId={id} />
      </Suspense>

      {/* Suspense around cached components:
          - At BUILD TIME (PPR): Cached content is pre-rendered into the static shell,
            so the fallback is never shown for initial page loads.
          - At RUNTIME (cache miss/expiration): When the cache expires or on cold start,
            Suspense shows the fallback while fresh data loads.
          - For long-lived caches ('minutes', 'hours', 'days'), Suspense is optional
            but improves UX during the rare cache miss. */}
      <Suspense fallback={<ReviewsSkeleton />}>
        <ProductReviews productId={id} />
      </Suspense>
    </>
  )
}
```

---

## Pattern 9: Multi-tenant SaaS Application

Handle tenant-specific caching:

```tsx
// lib/tenant.ts
export async function getTenantId() {
  const host = (await headers()).get('host')
  return host?.split('.')[0] // subdomain as tenant ID
}

// Tenant-scoped cached data
async function TenantDashboard({ tenantId }: { tenantId: string }) {
  'use cache'
  cacheTag(`tenant-${tenantId}`, 'dashboards')
  cacheLife('minutes')

  const data = await db.dashboards.findFirst({
    where: { tenantId },
  })

  return <Dashboard data={data} />
}

// Page with tenant context
export default function DashboardPage() {
  return (
    <Suspense fallback={<DashboardSkeleton />}>
      <DashboardLoader />
    </Suspense>
  )
}

async function DashboardLoader() {
  const tenantId = await getTenantId()
  return <TenantDashboard tenantId={tenantId} />
}

// Tenant-specific invalidation
'use server'
import { updateTag } from 'next/cache'

export async function updateTenantSettings(data: FormData) {
  const tenantId = await getTenantId()

  await db.settings.update({
    where: { tenantId },
    data: {
      /* ... */
    },
  })

  // Only invalidate this tenant's cache
  updateTag(`tenant-${tenantId}`)
}
```

---

## Pattern 10: Subshell Composition with generateStaticParams

Leverage parameter permutations to create reusable subshells:

```tsx
// app/products/[category]/[slug]/page.tsx
import { Suspense } from 'react'
import { cacheLife, cacheTag } from 'next/cache'

// Product details - uses both params
async function ProductDetails({
  category,
  slug,
}: {
  category: string
  slug: string
}) {
  'use cache'
  cacheTag('products', `product-${slug}`)
  cacheLife('hours')

  const product = await db.products.findUnique({
    where: { category, slug },
  })

  return <ProductCard product={product} />
}

export default async function ProductPage({
  params,
}: {
  params: Promise<{ category: string; slug: string }>
}) {
  const { category, slug } = await params

  return <ProductDetails category={category} slug={slug} />
}

// Provide params to enable subshell generation
export async function generateStaticParams() {
  const products = await db.products.findMany({
    select: { category: true, slug: true },
    take: 100,
  })
  return products.map(({ category, slug }) => ({ category, slug }))
}
```

```tsx
// app/products/[category]/layout.tsx
import { Suspense } from 'react'
import { cacheLife, cacheTag } from 'next/cache'

// Category header - uses only category param
async function CategoryHeader({ category }: { category: string }) {
  'use cache'
  cacheTag('categories', `category-${category}`)
  cacheLife('days')

  const cat = await db.categories.findUnique({ where: { slug: category } })
  return (
    <header>
      <h1>{cat.name}</h1>
      <p>{cat.description}</p>
    </header>
  )
}

export default async function CategoryLayout({
  children,
  params,
}: {
  children: React.ReactNode
  params: Promise<{ category: string }>
}) {
  const { category } = await params

  return (
    <>
      <CategoryHeader category={category} />
      {/* Suspense enables subshell generation */}
      <Suspense fallback={<ProductSkeleton />}>{children}</Suspense>
    </>
  )
}
```

**Result**: When users navigate to `/products/jackets/unknown-jacket`:

1. Category subshell (`/products/jackets/[slug]`) served instantly
2. Product details stream in as they load
3. Future visits to any jacket product reuse the category shell

---

## Pattern 11: Hierarchical Params for Deep Routes

For deeply nested routes, structure layouts to maximize subshell reuse:

```tsx
// Route: /store/[region]/[category]/[productId]

// app/store/[region]/layout.tsx
export default async function RegionLayout({
  children,
  params,
}: {
  children: React.ReactNode
  params: Promise<{ region: string }>
}) {
  const { region } = await params

  return (
    <>
      <RegionHeader region={region} /> {/* Cached */}
      <RegionPromos region={region} /> {/* Cached */}
      <Suspense>{children}</Suspense> {/* Subshell boundary */}
    </>
  )
}

// app/store/[region]/[category]/layout.tsx
export default async function CategoryLayout({
  children,
  params,
}: {
  children: React.ReactNode
  params: Promise<{ region: string; category: string }>
}) {
  const { region, category } = await params

  return (
    <>
      <CategoryNav region={region} category={category} /> {/* Cached */}
      <Suspense>{children}</Suspense> {/* Subshell boundary */}
    </>
  )
}

// app/store/[region]/[category]/[productId]/page.tsx
export default async function ProductPage({
  params,
}: {
  params: Promise<{ region: string; category: string; productId: string }>
}) {
  const { region, category, productId } = await params

  return <ProductDetails region={region} productId={productId} />
}

export async function generateStaticParams() {
  // Return popular products - subshells generated for all unique region/category combos
  return [
    { region: 'us', category: 'electronics', productId: 'iphone-16' },
    { region: 'us', category: 'electronics', productId: 'macbook-pro' },
    { region: 'us', category: 'clothing', productId: 'hoodie-xl' },
    { region: 'eu', category: 'electronics', productId: 'iphone-16' },
  ]
}
```

**Generated subshells:**

- `/store/us/[category]/[productId]` - US region shell
- `/store/eu/[category]/[productId]` - EU region shell
- `/store/us/electronics/[productId]` - US Electronics shell
- `/store/us/clothing/[productId]` - US Clothing shell
- `/store/eu/electronics/[productId]` - EU Electronics shell

---

## When to Use Suspense with Cached Components

Understanding when Suspense is required vs. optional for cached components:

### Dynamic Components (no cache) → Suspense Required

```tsx
// Dynamic content MUST have Suspense for streaming
async function PersonalizedFeed() {
  const session = await getSession() // Dynamic - reads cookies
  const feed = await fetchFeed(session.userId)
  return <Feed posts={feed} />
}

export default function Page() {
  return (
    <Suspense fallback={<FeedSkeleton />}>
      <PersonalizedFeed />
    </Suspense>
  )
}
```

### Cached Components → Suspense Optional (but recommended)

```tsx
// Cached content: Suspense is optional but improves UX
async function ProductReviews({ productId }: { productId: string }) {
  'use cache'
  cacheLife('minutes')
  const reviews = await fetchReviews(productId)
  return <ReviewsList reviews={reviews} />
}

// ✅ With Suspense - handles cache miss gracefully
<Suspense fallback={<ReviewsSkeleton />}>
  <ProductReviews productId={id} />
</Suspense>

// ✅ Without Suspense - also valid for long-lived caches
<ProductReviews productId={id} />
```

### Why Cached Components Don't Always Need Suspense

| Scenario | What Happens | Suspense Needed? |
|----------|--------------|------------------|
| **Build time (PPR enabled)** | Content pre-rendered into static shell | No - fallback never shown |
| **Runtime - cache hit** | Cached result returned immediately | No - no suspension |
| **Runtime - cache miss** | Async function executes, component suspends | Yes - for better UX |

### Recommendations by Cache Lifetime

| Cache Lifetime | Suspense Recommendation | Reasoning |
|----------------|------------------------|-----------|
| `'seconds'` | **Recommended** | Frequent cache misses |
| `'minutes'` | Optional | ~5 min expiry, occasional misses |
| `'hours'` / `'days'` | Optional | Rare cache misses |
| `'max'` | Not needed | Essentially static |

### The Trade-off

**Without Suspense**: On cache miss, the page waits for data before rendering anything downstream. For long-lived caches, this is rare and brief.

**With Suspense**: On cache miss, users see the skeleton immediately while data loads. Better perceived performance, slightly more code.

**Rule of thumb**: When in doubt, add Suspense. It never hurts and handles edge cases gracefully.

---

## Anti-Patterns to Avoid

### ❌ Caching user-specific data without parameters

```tsx
// BAD: Same cache for all users
async function UserProfile() {
  'use cache'
  const user = await getCurrentUser() // Different per user!
  return <Profile user={user} />
}

// GOOD: User ID as parameter (becomes cache key)
async function UserProfile({ userId }: { userId: string }) {
  'use cache'
  cacheTag(`user-${userId}`)
  const user = await db.users.findUnique({ where: { id: userId } })
  return <Profile user={user} />
}
```

### ❌ Over-caching volatile data

```tsx
// BAD: Caching real-time data
async function StockPrice({ symbol }: { symbol: string }) {
  'use cache'
  cacheLife('hours') // Stale prices!
  return await fetchStockPrice(symbol)
}

// GOOD: Don't cache, or use very short cache
async function StockPrice({ symbol }: { symbol: string }) {
  'use cache'
  cacheLife('seconds') // 1 second max
  return await fetchStockPrice(symbol)
}

// BETTER: No cache for truly real-time
async function StockPrice({ symbol }: { symbol: string }) {
  return await fetchStockPrice(symbol)
}
```

### ❌ Forgetting Suspense for dynamic content

```tsx
// BAD: No fallback for DYNAMIC content - breaks streaming
export default async function Page() {
  return (
    <>
      <CachedHeader />
      <DynamicContent /> {/* Dynamic - NEEDS Suspense */}
    </>
  )
}

// GOOD: Proper Suspense boundary for dynamic content
export default async function Page() {
  return (
    <>
      <CachedHeader />
      <Suspense fallback={<ContentSkeleton />}>
        <DynamicContent />
      </Suspense>
    </>
  )
}

// ALSO GOOD: Cached content without Suspense (optional for long-lived caches)
export default async function Page() {
  return (
    <>
      <CachedHeader />       {/* 'use cache' - no Suspense needed */}
      <CachedSidebar />      {/* 'use cache' - no Suspense needed */}
      <Suspense fallback={<ContentSkeleton />}>
        <DynamicContent />   {/* Dynamic - Suspense required */}
      </Suspense>
    </>
  )
}
```


================================================
FILE: .claude-plugin/plugins/cache-components/skills/cache-components/REFERENCE.md
================================================
# Cache Components API Reference

Complete API reference for Next.js Cache Components.

## Directive: `'use cache'`

Marks a function or file as cacheable. The cached output is included in the static shell during Partial Prerendering.

### Syntax

```tsx
// File-level (applies to all exports)
'use cache'

export async function getData() {
  /* ... */
}

// Function-level
async function Component() {
  'use cache'
  // ...
}
```

### Variants

| Directive             | Description              | Cache Storage            |
| --------------------- | ------------------------ | ------------------------ |
| `'use cache'`         | Standard cache (default) | Default handler + Remote |
| `'use cache: remote'` | Platform remote cache    | Remote handler only      |

### `'use cache: remote'`

Uses platform-specific remote cache handler. Requires network roundtrip.

```tsx
async function HeavyComputation() {
  'use cache: remote'
  cacheLife('days')

  return await expensiveCalculation()
}
```

### Understanding Cache Handlers

Next.js uses **cache handlers** to store and retrieve cached data. The directive variant determines which handlers are used:

| Handler   | Description                                                                 |
| --------- | --------------------------------------------------------------------------- |
| `default` | Local in-memory cache with optional persistence. Fast, single-server scope |
| `remote`  | Platform-specific distributed cache. Network roundtrip, multi-server scope |

**How variants map to handlers:**

- `'use cache'` → Uses **both** default and remote handlers. Data is cached locally for fast access and remotely for sharing across instances
- `'use cache: remote'` → Uses **only** the remote handler. Skips local cache, always fetches from distributed cache

**When to use each:**

| Use Case                              | Recommended Variant   |
| ------------------------------------- | --------------------- |
| Most cached data                      | `'use cache'`         |
| Heavy computations to share globally  | `'use cache: remote'` |
| Data that must be consistent globally | `'use cache: remote'` |

### Rules

1. **Must be async** - All cached functions must return a Promise
2. **First statement** - `'use cache'` must be the first statement in the function body
3. **No runtime APIs** - Cannot call `cookies()`, `headers()`, `searchParams` directly
4. **Serializable arguments** - All arguments must be serializable (no functions, class instances)
5. **Serializable return values** - Cached functions must return serializable data (no functions, class instances)

---

## Function: `cacheLife()`

Configures cache duration and revalidation behavior.

### Import

```tsx
import { cacheLife } from 'next/cache'
```

### Signature

```tsx
function cacheLife(profile: string): void
function cacheLife(options: CacheLifeOptions): void

interface CacheLifeOptions {
  stale?: number // Client cache duration (seconds)
  revalidate?: number // Background revalidation window (seconds)
  expire?: number // Absolute expiration (seconds)
}
```

### Parameters

| Parameter    | Description                                             | Constraint            |
| ------------ | ------------------------------------------------------- | --------------------- |
| `stale`      | How long the client can cache without server validation | None                  |
| `revalidate` | When to start background refresh                        | `revalidate ≤ expire` |
| `expire`     | Absolute expiration; deopts to dynamic if exceeded      | Must be largest       |

### Predefined Profiles

| Profile     | stale | revalidate    | expire         |
| ----------- | ----- | ------------- | -------------- |
| `'default'` | 300\* | 900 (15min)   | ∞ (INFINITE)   |
| `'seconds'` | 30    | 1             | 60             |
| `'minutes'` | 300   | 60 (1min)     | 3600 (1hr)     |
| `'hours'`   | 300   | 3600 (1hr)    | 86400 (1day)   |
| `'days'`    | 300   | 86400 (1day)  | 604800 (1wk)   |
| `'weeks'`   | 300   | 604800 (1wk)  | 2592000 (30d)  |
| `'max'`     | 300   | 2592000 (30d) | 31536000 (1yr) |

\* Default `stale` falls back to `experimental.staleTimes.static` (300 seconds)

> **Important:** Profiles with `expire < 300` seconds (like `'seconds'`) are treated as **dynamic** and won't be included in the static shell during Partial Prerendering. See [Dynamic Threshold](#dynamic-threshold) below.

### Custom Profiles

Define custom profiles in `next.config.ts`:

```typescript
const nextConfig: NextConfig = {
  cacheLife: {
    // Custom profile
    'blog-posts': {
      stale: 300, // 5 minutes
      revalidate: 3600, // 1 hour
      expire: 86400, // 1 day
    },
    // Override default
    default: {
      stale: 60,
      revalidate: 600,
      expire: 3600,
    },
  },
}
```

### Usage

```tsx
async function BlogPosts() {
  'use cache'
  cacheLife('blog-posts') // Custom profile

  return await db.posts.findMany()
}
```

### HTTP Cache-Control Mapping

```
stale     → max-age
revalidate → s-maxage
expire - revalidate → stale-while-revalidate

Example: stale=60, revalidate=3600, expire=86400
→ Cache-Control: max-age=60, s-maxage=3600, stale-while-revalidate=82800
```

### Dynamic Threshold

Cache entries with short expiration times are treated as **dynamic holes** during Partial Prerendering:

| Condition               | Behavior                                 |
| ----------------------- | ---------------------------------------- |
| `expire < 300` seconds  | Treated as dynamic (not in static shell) |
| `revalidate === 0`      | Treated as dynamic (not in static shell) |
| `expire >= 300` seconds | Included in static shell                 |

**Why `expire`, not `stale`?**

The threshold uses `expire` (absolute expiration) because:

- `expire` defines the **maximum lifetime** of the cache entry
- If `expire` is very short, the cached content would immediately become invalid in the static shell
- `stale` only affects **client-side freshness perception** - how long before the browser revalidates
- Including short-lived content in the static shell would serve guaranteed-stale data

**Practical implications:**

- `cacheLife('seconds')` (expire=60) → **Dynamic** - streams at request time
- `cacheLife('minutes')` (expire=3600) → **Static** - included in PPR shell
- Custom `cacheLife({ expire: 120 })` → **Dynamic** - below 300s threshold

This 300-second threshold ensures that very short-lived caches don't pollute the static shell with immediately-stale content.

```tsx
// This cache is DYNAMIC (expire=60 < 300)
async function RealtimePrice() {
  'use cache'
  cacheLife('seconds') // expire=60, below threshold
  return await fetchPrice()
}

// This cache is STATIC (expire=3600 >= 300)
async function ProductDetails() {
  'use cache'
  cacheLife('minutes') // expire=3600, above threshold
  return await fetchProduct()
}
```

---

## Function: `cacheTag()`

Tags cached data for targeted invalidation.

### Import

```tsx
import { cacheTag } from 'next/cache'
```

### Signature

```tsx
function cacheTag(...tags: string[]): void
```

### Usage

```tsx
async function UserProfile({ userId }: { userId: string }) {
  'use cache'
  cacheTag('users', `user-${userId}`) // Multiple tags
  cacheLife('hours')

  return await db.users.findUnique({ where: { id: userId } })
}
```

### Tagging Strategies

**Entity-based tagging**:

```tsx
cacheTag('posts') // All posts
cacheTag(`post-${postId}`) // Specific post
cacheTag(`user-${userId}-posts`) // User's posts
```

**Feature-based tagging**:

```tsx
cacheTag('homepage')
cacheTag('dashboard')
cacheTag('admin')
```

**Combined approach**:

```tsx
cacheTag('posts', `post-${id}`, `author-${authorId}`)
```

### Tag Constraints

Tags have enforced limits:

| Limit          | Value          | Behavior if exceeded           |
| -------------- | -------------- | ------------------------------ |
| Max tag length | 256 characters | Warning logged, tag ignored    |
| Max total tags | 128 tags       | Warning logged, excess ignored |

```tsx
// ❌ Tag too long (>256 chars) - will be ignored with warning
cacheTag('a'.repeat(300))

// ❌ Too many tags (>128) - excess will be ignored with warning
cacheTag(...Array(200).fill('tag'))

// ✅ Valid usage
cacheTag('products', `product-${id}`, `category-${category}`)
```

### Implicit Tags (Automatic)

In addition to explicit `cacheTag()` calls, Next.js automatically applies **implicit tags** based on the route hierarchy. This means `revalidatePath()` works without any explicit `cacheTag()` calls:

```tsx
'use server'
import { revalidatePath } from 'next/cache'

export async function publishBlogPost() {
  await db.posts.create({
    /* ... */
  })

  // Works without explicit cacheTag() - uses implicit route-based tags
  revalidatePath('/blog', 'layout') // Invalidates all /blog/* routes
}
```

**How it works:**

- Each route segment (layout, page) automatically receives an internal tag
- `revalidatePath('/blog', 'layout')` invalidates the `/blog` layout and all nested routes
- `revalidatePath('/blog/my-post')` invalidates only that specific page

**Choosing between implicit and explicit tags**:

| Use Case                                 | Approach                            |
| ---------------------------------------- | ----------------------------------- |
| Invalidate all cached data under a route | `revalidatePath()` (uses implicit)  |
| Invalidate specific entity across routes | `cacheTag()` + `updateTag()`        |
| User needs to see their change (eager)   | `updateTag()` with explicit tag     |
| Background update, eventual OK (lazy)    | `revalidateTag()` with explicit tag |

---

## Understanding Cache Scope

### What Creates a New Cache Entry?

A new cache entry is created when ANY of these differ:

| Factor                | Example                                 |
| --------------------- | --------------------------------------- |
| **Function identity** | Different functions = different entries |
| **Arguments**         | `getUser("123")` vs `getUser("456")`    |
| **File path**         | Same function name in different files   |

### Cache Key Composition

Cache keys are composed of multiple parts:

```
[buildId, functionId, serializedArgs, (hmrRefreshHash)]
```

| Part             | Description                                                     |
| ---------------- | --------------------------------------------------------------- |
| `buildId`        | Unique build identifier (prevents cross-deployment cache reuse) |
| `functionId`     | Server reference ID for the cached function                     |
| `serializedArgs` | React Flight-encoded function arguments                         |
| `hmrRefreshHash` | (Dev only) Invalidates cache on file changes                    |

```tsx
// These create TWO separate cache entries (third call is a cache hit):
async function getProduct(id: string) {
  'use cache'
  return db.products.findUnique({ where: { id } })
}

await getProduct('prod-1') // Cache entry 1: [buildId, getProduct, "prod-1"]
await getProduct('prod-2') // Cache entry 2: [buildId, getProduct, "prod-2"]
await getProduct('prod-1') // Cache HIT on entry 1
```

### Object Arguments and Cache Keys

Arguments are serialized using React's `encodeReply()`, which performs **structural serialization**:

```tsx
async function getData(options: { limit: number }) {
  'use cache'
  return fetch(`/api?limit=${options.limit}`)
}

// Objects with identical structure produce the same cache key
getData({ limit: 10 }) // Cache key includes serialized { limit: 10 }
getData({ limit: 10 }) // HIT! Same structural content

// Different values = different cache keys
getData({ limit: 20 }) // MISS - different content
```

**Best practice:** While objects work correctly, primitives are simpler to reason about:

```tsx
// ✅ Clear and explicit
async function getData(limit: number) {
  'use cache'
  return fetch(`/api?limit=${limit}`)
}
```

> **Note:** Non-serializable values (functions, class instances, Symbols) cannot be used as arguments to cached functions and will cause errors.

---

## Function: `updateTag()`

Immediately invalidates cache entries and ensures read-your-own-writes.

### Import

```tsx
import { updateTag } from 'next/cache'
```

### Signature

```tsx
function updateTag(tag: string): void
```

### Usage

```tsx
'use server'
import { updateTag } from 'next/cache'

export async function createPost(formData: FormData) {
  const post = await db.posts.create({ data: formData })

  updateTag('posts') // Update all cache entries tagged with 'posts'
  updateTag(`user-${userId}`) // Update all cache entries tagged with this user

  // Client immediately sees fresh data
}
```

### Behavior

- **Immediate**: Cache invalidated synchronously
- **Read-your-own-writes**: Subsequent reads return fresh data
- **Server Actions only**: Must be called from Server Actions

---

## Function: `revalidateTag()`

Marks cache entries as stale for background revalidation.

### Import

```tsx
import { revalidateTag } from 'next/cache'
```

### Signature

```tsx
function revalidateTag(tag: string, profile: string | { expire?: number }): void
```

### Parameters

| Parameter | Type                            | Description                                                    |
| --------- | ------------------------------- | -------------------------------------------------------------- |
| `tag`     | `string`                        | The cache tag to invalidate                                    |
| `profile` | `string \| { expire?: number }` | Cache profile name or object with expire time (seconds)        |

> **Note:** Unlike `cacheLife()` which accepts `stale`, `revalidate`, and `expire`, the `revalidateTag()` object form only accepts `expire`. Use a predefined profile name (like `'hours'`) for full control over stale-while-revalidate behavior.

### Usage

```tsx
'use server'
import { revalidateTag } from 'next/cache'

export async function updateSettings(data: FormData) {
  await db.settings.update({ data })

  // With predefined profile (recommended)
  revalidateTag('settings', 'hours')

  // With custom expiration
  revalidateTag('settings', { expire: 3600 })
}
```

### Behavior

- **Stale-while-revalidate**: Serves cached content while refreshing in background
- **Background refresh**: Cache entry is refreshed in the background after the next visit
- **Broader context**: Can be called from Route Handlers and Server Actions

---

## updateTag() vs revalidateTag(): When to Use Each

The key distinction is **eager vs lazy** invalidation:

- **`updateTag()`** - Eager invalidation. Cache is immediately invalidated, and the next read fetches fresh data synchronously. Use when the user who triggered the action needs to see the result.
- **`revalidateTag()`** - Lazy (SWR-style) invalidation. Stale data may be served while fresh data is fetched in the background. Use when eventual consistency is acceptable.

Here's a decision guide:

| Scenario                   | Use               | Why                                        |
| -------------------------- | ----------------- | ------------------------------------------ |
| User creates a post        | `updateTag()`     | User expects to see their post immediately |
| User updates their profile | `updateTag()`     | Read-your-own-writes semantics             |
| Admin publishes content    | `revalidateTag()` | Other users can see stale briefly          |
| Analytics/view counts      | `revalidateTag()` | Freshness less critical                    |
| Background sync job        | `revalidateTag()` | No user waiting for result                 |
| E-commerce cart update     | `updateTag()`     | User needs accurate cart state             |

### E-commerce Example

```tsx
'use server'
import { updateTag, revalidateTag } from 'next/cache'

// When USER adds to cart → updateTag (they need accurate count)
export async function addToCart(productId: string, userId: string) {
  await db.cart.add({ productId, userId })
  updateTag(`cart-${userId}`) // Immediate - user sees their cart
}

// When INVENTORY changes from warehouse sync → revalidateTag
export async function syncInventory(products: Product[]) {
  await db.inventory.bulkUpdate(products)
  revalidateTag('inventory', 'max') // Background - eventual consistency OK
}

// When USER completes purchase → updateTag for buyer, revalidateTag for product
export async function completePurchase(orderId: string) {
  const order = await processOrder(orderId)

  updateTag(`order-${orderId}`) // Buyer sees confirmation immediately
  updateTag(`cart-${order.userId}`) // Buyer's cart clears immediately
  revalidateTag(`product-${order.productId}`, 'max') // Others see updated stock eventually
}
```

### The Rule of Thumb

> **updateTag**: "The person who triggered this action is waiting to see the result"
>
> **revalidateTag**: "This update affects others, but they don't know to wait for it"

---

## Function: `revalidatePath()`

Revalidates all cache entries associated with a path.

### Import

```tsx
import { revalidatePath } from 'next/cache'
```

### Signature

```tsx
function revalidatePath(path: string, type?: 'page' | 'layout'): void
```

### Usage

```tsx
'use server'
import { revalidatePath } from 'next/cache'

export async function updateBlog() {
  await db.posts.update({
    /* ... */
  })

  revalidatePath('/blog') // Specific path
  revalidatePath('/blog', 'layout') // Layout and all children
  revalidatePath('/', 'layout') // Entire app
}
```

---

## Configuration: `next.config.ts`

### Enable Cache Components

```typescript
import type { NextConfig } from 'next'

const nextConfig: NextConfig = {
  cacheComponents: true,
}

export default nextConfig
```

### Configure Cache Handlers

```typescript
const nextConfig: NextConfig = {
  cacheHandlers: {
    default: {
      maxMemorySize: 52428800, // 50MB
    },
    // Platform-specific remote handler
    remote: CustomRemoteHandler,
  },
}
```

### Define Cache Profiles

```typescript
const nextConfig: NextConfig = {
  cacheLife: {
    default: {
      stale: 60,
      revalidate: 3600,
      expire: 86400,
    },
    posts: {
      stale: 300,
      revalidate: 3600,
      expire: 604800,
    },
  },
}
```

---

## `generateStaticParams` with Cache Components

When Cache Components is enabled, `generateStaticParams` behavior changes significantly.

### Parameter Permutation Rendering

Next.js renders ALL permutations of provided parameters to create reusable subshells:

```tsx
// app/products/[category]/[slug]/page.tsx
export async function generateStaticParams() {
  return [
    { category: 'jackets', slug: 'bomber' },
    { category: 'jackets', slug: 'parka' },
    { category: 'shoes', slug: 'sneakers' },
  ]
}
```

**Rendered routes:**

| Route                         | Params Known       | Shell Type        |
| ----------------------------- | ------------------ | ----------------- |
| `/products/jackets/bomber`    | category ✓, slug ✓ | Complete page     |
| `/products/jackets/parka`     | category ✓, slug ✓ | Complete page     |
| `/products/shoes/sneakers`    | category ✓, slug ✓ | Complete page     |
| `/products/jackets/[slug]`    | category ✓, slug ✗ | Category subshell |
| `/products/shoes/[slug]`      | category ✓, slug ✗ | Category subshell |
| `/products/[category]/[slug]` | category ✗, slug ✗ | Fallback shell    |

### Requirements

1. **Must return at least one parameter set** - Empty arrays cause build errors
2. **Params validate static safety** - Next.js uses provided params to verify no dynamic APIs are accessed
3. **Subshells require Suspense** - If accessing unknown params without Suspense, no subshell is generated

```tsx
// ❌ BUILD ERROR: Empty array not allowed
export function generateStaticParams() {
  return []
}

// ✅ CORRECT: Provide at least one param set
export async function generateStaticParams() {
  const products = await getProducts({ limit: 100 })
  return products.map((p) => ({ category: p.category, slug: p.slug }))
}
```

### Subshell Generation with Layouts

Create category-level subshells by adding Suspense in layouts:

```tsx
// app/products/[category]/layout.tsx
export default async function CategoryLayout({
  children,
  params,
}: {
  children: React.ReactNode
  params: Promise<{ category: string }>
}) {
  const { category } = await params

  return (
    <>
      <h2>{category}</h2>
      <Suspense>{children}</Suspense> {/* Creates subshell boundary */}
    </>
  )
}
```

Now `/products/jackets/[slug]` generates a reusable shell with the category header, streaming product details when visited.

### Why Subshells Matter

Without `generateStaticParams`, visiting `/products/jackets/unknown-product`:

- **Before**: Full dynamic render, user waits for everything
- **After**: Cached category subshell served instantly, product details stream in

---

## Deprecated Segment Configurations

These exports are **deprecated** when `cacheComponents: true`:

### `export const revalidate` (Deprecated)

**Before:**

```tsx
// app/products/page.tsx
export const revalidate = 3600 // 1 hour

export default async function ProductsPage() {
  const products = await db.products.findMany()
  return <ProductList products={products} />
}
```

**Problems with this approach:**

- Revalidation time lived at segment level, not with the data
- Couldn't vary revalidation based on fetched data
- No control over client-side caching (`stale`) or expiration

**After (Cache Components):**

```tsx
// app/products/page.tsx
import { cacheLife } from 'next/cache'

async function getProducts() {
  'use cache'
  cacheLife('hours') // Co-located with the data

  return await db.products.findMany()
}

export default async function ProductsPage() {
  const products = await getProducts()
  return <ProductList products={products} />
}
```

**Benefits:**

- Cache lifetime co-located with data fetching
- Granular control: `stale`, `revalidate`, and `expire`
- Different functions can have different lifetimes
- Can conditionally set cache life based on data

### `export const dynamic` (Deprecated)

**Before:**

```tsx
// app/products/page.tsx
export const dynamic = 'force-static'

export default async function ProductsPage() {
  // Headers would return empty, silently breaking components
  const headers = await getHeaders()
  return <ProductList />
}
```

**Problems:**

- All-or-nothing approach
- `force-static` silently broke dynamic APIs (cookies, headers return empty)
- `force-dynamic` prevented any static optimization
- Hidden bugs when dynamic components received empty data

**After (Cache Components):**

```tsx
// app/products/page.tsx
export default async function ProductsPage() {
  return (
    <>
      <CachedProductList /> {/* Static via 'use cache' */}
      <Suspense fallback={<Skeleton />}>
        <DynamicUserRecommendations /> {/* Dynamic via Suspense */}
      </Suspense>
    </>
  )
}
```

**Benefits:**

- No silent API failures
- Granular static/dynamic at component level
- Build errors guide you to correct patterns
- Pages can be BOTH static AND dynamic

### Migration Guide

| Old Pattern                              | New Pattern                                            |
| ---------------------------------------- | ------------------------------------------------------ |
| `export const revalidate = 60`           | `cacheLife({ revalidate: 60 })` inside `'use cache'`   |
| `export const revalidate = 0`            | Remove cache or use `cacheLife('seconds')`             |
| `export const revalidate = false`        | `cacheLife('max')` for long-term caching               |
| `export const dynamic = 'force-static'`  | Use `'use cache'` on data fetching                     |
| `export const dynamic = 'force-dynamic'` | Wrap in `<Suspense>` without cache                     |
| `export const dynamic = 'auto'`          | Default behavior - not needed                          |
| `export const dynamic = 'error'`         | Default with Cache Components (build errors guide you) |

---

## Migration Scenarios

### Scenario 1: Page with `revalidate` Export

**Before:**

```tsx
// app/products/page.tsx
export const revalidate = 3600

export default async function ProductsPage() {
  const products = await db.products.findMany()
  return <ProductGrid products={products} />
}
```

**After:**

```tsx
// app/products/page.tsx
import { cacheLife } from 'next/cache'

async function getProducts() {
  'use cache'
  cacheLife('hours') // Roughly equivalent to revalidate = 3600

  return db.products.findMany()
}

export default async function ProductsPage() {
  const products = await getProducts()
  return <ProductGrid products={products} />
}
```

### Scenario 2: Page with `dynamic = 'force-dynamic'`

**Before:**

```tsx
// app/dashboard/page.tsx
export const dynamic = 'force-dynamic'

export default async function Dashboard() {
  const user = await getCurrentUser()
  const stats = await getStats()
  const notifications = await getNotifications(user.id)

  return (
    <div>
      <UserHeader user={user} />
      <Stats data={stats} />
      <Notifications items={notifications} />
    </div>
  )
}
```

**After:**

```tsx
// app/dashboard/page.tsx
import { Suspense } from 'react'

// All data is dynamic - fetches user-specific content
async function DashboardContent() {
  const user = await getCurrentUser()
  const stats = await getStats()
  const notifications = await getNotifications(user.id)

  return (
    <>
      <UserHeader user={user} />
      <Stats data={stats} />
      <Notifications items={notifications} />
    </>
  )
}

export default function Dashboard() {
  return (
    <div>
      <Suspense fallback={<DashboardSkeleton />}>
        <DashboardContent /> {/* Streams dynamically */}
      </Suspense>
    </div>
  )
}
```

**Key difference:** No `export const dynamic` needed. Components are dynamic by default - just wrap in Suspense to enable streaming.

### Scenario 3: ISR with `revalidate` + On-Demand Revalidation

**Before:**

```tsx
// app/blog/[slug]/page.tsx
export const revalidate = 3600

export async function generateStaticParams() {
  const posts = await getAllPosts()
  return posts.map((post) => ({ slug: post.slug }))
}

export default async function BlogPost({
  params,
}: {
  params: Promise<{ slug: string }>
}) {
  const { slug } = await params
  const post = await getPost(slug)
  return <Article post={post} />
}

// api/revalidate/route.ts
export async function POST(request: Request) {
  const { slug } = await request.json()
  revalidatePath(`/blog/${slug}`)
  return Response.json({ revalidated: true })
}
```

**After:**

```tsx
// lib/posts.ts
import { cacheTag, cacheLife } from 'next/cache'

export async function getPost(slug: string) {
  'use cache'
  cacheTag('posts', `post-${slug}`)
  cacheLife('hours')

  return db.posts.findUnique({ where: { slug } })
}

// app/blog/[slug]/page.tsx
export default async function BlogPost({
  params,
}: {
  params: Promise<{ slug: string }>
}) {
  const { slug } = await params
  const post = await getPost(slug)
  return <Article post={post} />
}

// app/api/revalidate/route.ts
import { revalidatePath } from 'next/cache'

export async function POST(request: Request) {
  const { slug } = await request.json()
  revalidatePath(`/blog/${slug}`)
  return Response.json({ revalidated: true })
}
```

**Key improvements:**

- Cache configuration co-located with data fetching via `'use cache'`
- Explicit cache tags enable targeted invalidation
- Route Handler pattern preserved for external webhook integration

---

## Runtime Behaviors

### Draft Mode

When [Draft Mode](https://nextjs.org/docs/app/building-your-application/configuring/draft-mode) is enabled, cache entries are **not saved**:

```tsx
import { draftMode } from 'next/headers'

export default async function PreviewPage() {
  const { isEnabled } = await draftMode()

  // When isEnabled is true:
  // - 'use cache' functions still execute
  // - But results are NOT stored in cache
  // - Ensures preview content is always fresh
}
```

This prevents stale preview content from being cached and served to production users.

### Cache Bypass Conditions

Cache is bypassed (not read from) when:

| Condition              | Description                                        |
| ---------------------- | -------------------------------------------------- |
| Draft Mode enabled     | `draftMode().isEnabled === true`                   |
| On-demand revalidation | `revalidateTag()` or `revalidatePath()` was called |
| Dev mode + no-cache    | Request includes `Cache-Control: no-cache` header  |

### Prerender Timeout

During static prerendering (build time), cached functions have a **50-second timeout**:

- If a cached function doesn't complete within 50 seconds, it becomes a dynamic hole
- At request time, there is **no timeout** - background revalidation can take as long as needed
- Timeout errors throw `UseCacheTimeoutError` with code `'USE_CACHE_TIMEOUT'`

```tsx
// If this takes >50s during build, it becomes dynamic
async function SlowData() {
  'use cache'
  return await verySlowApiCall() // May timeout during prerender
}
```

### Development Mode: HMR Cache Invalidation

In development, cache keys include an **HMR refresh hash**:

- When you edit a file containing a cached function, the cache automatically invalidates
- No manual cache clearing needed during development
- This hash is not included in production builds

### Cache Propagation (Nested Caches)

When cached functions call other cached functions, cache metadata propagates **upward**:

```tsx
async function Inner() {
  'use cache'
  cacheLife('seconds') // expire=60
  cacheTag('inner')
  return await fetchData()
}

async function Outer() {
  'use cache'
  cacheLife('hours') // expire=86400
  cacheTag('outer')

  const data = await Inner() // Calls inner cached function
  return process(data)
}

// Outer's effective cache:
// - expire = min(86400, 60) = 60 (inherits Inner's shorter expiration)
// - tags = ['outer', 'inner'] (tags merge)
```

This ensures parent caches don't outlive their dependencies.

---

## Type Definitions

### CacheLife

```typescript
type CacheLife = {
  stale?: number // Default: 300 (from staleTimes.static)
  revalidate?: number // Default: profile-dependent
  expire?: number // Default: profile-dependent
}
```

### CacheLifeProfile

```typescript
type CacheLifeProfile =
  | 'default'
  | 'seconds'
  | 'minutes'
  | 'hours'
  | 'days'
  | 'weeks'
  | 'max'
  | string // Custom profiles
```


================================================
FILE: .claude-plugin/plugins/cache-components/skills/cache-components/SKILL.md
================================================
---
name: cache-components
description: |
  Expert guidance for Next.js Cache Components and Partial Prerendering (PPR).

  **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations.

  **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions.

  **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.
---

# Next.js Cache Components

> **Auto-activation**: This skill activates automatically in projects with `cacheComponents: true` in next.config.

## Project Detection

When starting work in a Next.js project, check if Cache Components are enabled:

```bash
# Check next.config.ts or next.config.js for cacheComponents
grep -r "cacheComponents" next.config.* 2>/dev/null
```

If `cacheComponents: true` is found, apply this skill's patterns proactively when:

- Writing React Server Components
- Implementing data fetching
- Creating Server Actions with mutations
- Optimizing page performance
- Reviewing existing component code

Cache Components enable **Partial Prerendering (PPR)** - mixing static HTML shells with dynamic streaming content for optimal performance.

## Philosophy: Code Over Configuration

Cache Components represents a shift from **segment configuration** to **compositional code**:

| Before (Deprecated)                     | After (Cache Components)                  |
| --------------------------------------- | ----------------------------------------- |
| `export const revalidate = 3600`        | `cacheLife('hours')` inside `'use cache'` |
| `export const dynamic = 'force-static'` | Use `'use cache'` and Suspense boundaries |
| All-or-nothing static/dynamic           | Granular: static shell + cached + dynamic |

**Key Principle**: Components co-locate their caching, not just their data. Next.js provides build-time feedback to guide you toward optimal patterns.

## Core Concept

```
┌─────────────────────────────────────────────────────┐
│                   Static Shell                       │
│  (Sent immediately to browser)                       │
│                                                      │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  │
│  │   Header    │  │  Cached     │  │  Suspense   │  │
│  │  (static)   │  │  Content    │  │  Fallback   │  │
│  └─────────────┘  └─────────────┘  └──────┬──────┘  │
│                                           │         │
│                                    ┌──────▼──────┐  │
│                                    │  Dynamic    │  │
│                                    │  (streams)  │  │
│                                    └─────────────┘  │
└─────────────────────────────────────────────────────┘
```

## Mental Model: The Caching Decision Tree

When writing a React Server Component, ask these questions in order:

```
┌─────────────────────────────────────────────────────────┐
│ Does this component fetch data or perform I/O?          │
└─────────────────────┬───────────────────────────────────┘
                      │
           ┌──────────▼──────────┐
           │   YES               │ NO → Pure component, no action needed
           └──────────┬──────────┘
                      │
    ┌─────────────────▼─────────────────┐
    │ Does it depend on request context? │
    │ (cookies, headers, searchParams)   │
    └─────────────────┬─────────────────┘
                      │
         ┌────────────┴────────────┐
         │                         │
    ┌────▼────┐              ┌─────▼─────┐
    │   YES   │              │    NO     │
    └────┬────┘              └─────┬─────┘
         │                         │
         │                   ┌─────▼─────────────────┐
         │                   │ Can this be cached?   │
         │                   │ (same for all users?) │
         │                   └─────┬─────────────────┘
         │                         │
         │              ┌──────────┴──────────┐
         │              │                     │
         │         ┌────▼────┐          ┌─────▼─────┐
         │         │   YES   │          │    NO     │
         │         └────┬────┘          └─────┬─────┘
         │              │                     │
         │              ▼                     │
         │         'use cache'                │
         │         + cacheTag()               │
         │         + cacheLife()              │
         │                                    │
         └──────────────┬─────────────────────┘
                        │
                        ▼
              Wrap in <Suspense>
              (dynamic streaming)
```

**Key insight**: The `'use cache'` directive is for data that's the _same across users_. User-specific data stays dynamic with Suspense.

## Quick Start

### Enable Cache Components

```typescript
// next.config.ts
import type { NextConfig } from 'next'

const nextConfig: NextConfig = {
  cacheComponents: true,
}

export default nextConfig
```

### Basic Usage

```tsx
// Cached component - output included in static shell
async function CachedPosts() {
  'use cache'
  const posts = await db.posts.findMany()
  return <PostList posts={posts} />
}

// Page with static + cached + dynamic content
export default async function BlogPage() {
  return (
    <>
      <Header /> {/* Static */}
      <CachedPosts /> {/* Cached */}
      <Suspense fallback={<Skeleton />}>
        <DynamicComments /> {/* Dynamic - streams */}
      </Suspense>
    </>
  )
}
```

## Core APIs

### 1. `'use cache'` Directive

Marks code as cacheable. Can be applied at three levels:

```tsx
// File-level: All exports are cached
'use cache'
export async function getData() {
  /* ... */
}
export async function Component() {
  /* ... */
}

// Component-level
async function UserCard({ id }: { id: string }) {
  'use cache'
  const user = await fetchUser(id)
  return <Card>{user.name}</Card>
}

// Function-level
async function fetchWithCache(url: string) {
  'use cache'
  return fetch(url).then((r) => r.json())
}
```

**Important**: All cached functions must be `async`.

### 2. `cacheLife()` - Control Cache Duration

```tsx
import { cacheLife } from 'next/cache'

async function Posts() {
  'use cache'
  cacheLife('hours') // Use a predefined profile

  // Or custom configuration:
  cacheLife({
    stale: 60, // 1 min - client cache validity
    revalidate: 3600, // 1 hr - start background refresh
    expire: 86400, // 1 day - absolute expiration
  })

  return await db.posts.findMany()
}
```

**Predefined profiles**: `'default'`, `'seconds'`, `'minutes'`, `'hours'`, `'days'`, `'weeks'`, `'max'`

### 3. `cacheTag()` - Tag for Invalidation

```tsx
import { cacheTag } from 'next/cache'

async function BlogPosts() {
  'use cache'
  cacheTag('posts')
  cacheLife('days')

  return await db.posts.findMany()
}

async function UserProfile({ userId }: { userId: string }) {
  'use cache'
  cacheTag('users', `user-${userId}`) // Multiple tags

  return await db.users.findUnique({ where: { id: userId } })
}
```

### 4. `updateTag()` - Immediate Invalidation

For **read-your-own-writes** semantics:

```tsx
'use server'
import { updateTag } from 'next/cache'

export async function createPost(formData: FormData) {
  await db.posts.create({ data: formData })

  updateTag('posts') // Client immediately sees fresh data
}
```

### 5. `revalidateTag()` - Background Revalidation

For stale-while-revalidate pattern:

```tsx
'use server'
import { revalidateTag } from 'next/cache'

export async function updatePost(id: string, data: FormData) {
  await db.posts.update({ where: { id }, data })

  revalidateTag('posts', 'max') // Serve stale, refresh in background
}
```

## When to Use Each Pattern

| Content Type | API                 | Behavior                              |
| ------------ | ------------------- | ------------------------------------- |
| **Static**   | No directive        | Rendered at build time                |
| **Cached**   | `'use cache'`       | Included in static shell, revalidates |
| **Dynamic**  | Inside `<Suspense>` | Streams at request time               |

## Parameter Permutations & Subshells

**Critical Concept**: With Cache Components, Next.js renders ALL permutations of provided parameters to create reusable subshells.

```tsx
// app/products/[category]/[slug]/page.tsx
export async function generateStaticParams() {
  return [
    { category: 'jackets', slug: 'classic-bomber' },
    { category: 'jackets', slug: 'essential-windbreaker' },
    { category: 'accessories', slug: 'thermal-fleece-gloves' },
  ]
}
```

Next.js renders these routes:

```
/products/jackets/classic-bomber        ← Full params (complete page)
/products/jackets/essential-windbreaker ← Full params (complete page)
/products/accessories/thermal-fleece-gloves ← Full params (complete page)
/products/jackets/[slug]                ← Partial params (category subshell)
/products/accessories/[slug]            ← Partial params (category subshell)
/products/[category]/[slug]             ← No params (fallback shell)
```

**Why this matters**: The category subshell (`/products/jackets/[slug]`) can be reused for ANY jacket product, even ones not in `generateStaticParams`. Users navigating to an unlisted jacket get the cached category shell immediately, with product details streaming in.

### `generateStaticParams` Requirements

With Cache Components enabled:

1. **Must provide at least one parameter** - Empty arrays now cause build errors (prevents silent production failures)
2. **Params prove static safety** - Providing params lets Next.js verify no dynamic APIs are called
3. **Partial params create subshells** - Each unique permutation generates a reusable shell

```tsx
// ❌ ERROR with Cache Components
export function generateStaticParams() {
  return [] // Build error: must provide at least one param
}

// ✅ CORRECT: Provide real params
export async function generateStaticParams() {
  const products = await getPopularProducts()
  return products.map(({ category, slug }) => ({ category, slug }))
}
```

## Cache Key = Arguments

Arguments become part of the cache key:

```tsx
// Different userId = different cache entry
async function UserData({ userId }: { userId: string }) {
  'use cache'
  cacheTag(`user-${userId}`)

  return await fetchUser(userId)
}
```

## Build-Time Feedback

Cache Components provides early feedback during development. These build errors **guide you toward optimal patterns**:

### Error: Dynamic data outside Suspense

```
Error: Accessing cookies/headers/searchParams outside a Suspense boundary
```

**Solution**: Wrap dynamic components in `<Suspense>`:

```tsx
<Suspense fallback={<Skeleton />}>
  <ComponentThatUsesCookies />
</Suspense>
```

### Error: Uncached data outside Suspense

```
Error: Accessing uncached data outside Suspense
```

**Solution**: Either cache the data or wrap in Suspense:

```tsx
// Option 1: Cache it
async function ProductData({ id }: { id: string }) {
  'use cache'
  return await db.products.findUnique({ where: { id } })
}

// Option 2: Make it dynamic with Suspense
;<Suspense fallback={<Loading />}>
  <DynamicProductData id={id} />
</Suspense>
```

### Error: Request data inside cache

```
Error: Cannot access cookies/headers inside 'use cache'
```

**Solution**: Extract runtime data outside cache boundary (see "Handling Runtime Data" above).

## Additional Resources

- For complete API reference, see [REFERENCE.md](REFERENCE.md)
- For common patterns and recipes, see [PATTERNS.md](PATTERNS.md)
- For debugging and troubleshooting, see [TROUBLESHOOTING.md](TROUBLESHOOTING.md)

## Code Generation Guidelines

When generating Cache Component code:

1. **Always use `async`** - All cached functions must be async
2. **Place `'use cache'` first** - Must be first statement in function body
3. **Call `cacheLife()` early** - Should follow `'use cache'` directive
4. **Tag meaningfully** - Use semantic tags that match your invalidation needs
5. **Extract runtime data** - Move `cookies()`/`headers()` outside cached scope
6. **Wrap dynamic content** - Use `<Suspense>` for non-cached async components

---

## Proactive Application (When Cache Components Enabled)

When `cacheComponents: true` is detected in the project, **automatically apply these patterns**:

### When Writing Data Fetching Components

Ask yourself: "Can this data be cached?" If yes, add `'use cache'`:

```tsx
// Before: Uncached fetch
async function ProductList() {
  const products = await db.products.findMany()
  return <Grid products={products} />
}

// After: With caching
async function ProductList() {
  'use cache'
  cacheTag('products')
  cacheLife('hours')

  const products = await db.products.findMany()
  return <Grid products={products} />
}
```

### When Writing Server Actions

Always invalidate relevant caches after mutations:

```tsx
'use server'
import { updateTag } from 'next/cache'

export async function createProduct(data: FormData) {
  await db.products.create({ data })
  updateTag('products') // Don't forget!
}
```

### When Composing Pages

Structure with static shell + cached content + dynamic streaming:

```tsx
export default async function Page() {
  return (
    <>
      <StaticHeader /> {/* No cache needed */}
      <CachedContent /> {/* 'use cache' */}
      <Suspense fallback={<Skeleton />}>
        <DynamicUserContent /> {/* Streams at runtime */}
      </Suspense>
    </>
  )
}
```

### When Reviewing Code

Flag these issues in Cache Components projects:

- [ ] Data fetching without `'use cache'` where caching would benefit
- [ ] Missing `cacheTag()` calls (makes invalidation impossible)
- [ ] Missing `cacheLife()` (relies on defaults which may not be appropriate)
- [ ] Server Actions without `updateTag()`/`revalidateTag()` after mutations
- [ ] `cookies()`/`headers()` called inside `'use cache'` scope
- [ ] Dynamic components without `<Suspense>` boundaries
- [ ] **DEPRECATED**: `export const revalidate` - replace with `cacheLife()` in `'use cache'`
- [ ] **DEPRECATED**: `export const dynamic` - replace with Suspense + cache boundaries
- [ ] Empty `generateStaticParams()` return - must provide at least one param


================================================
FILE: .claude-plugin/plugins/cache-components/skills/cache-components/TROUBLESHOOTING.md
================================================
# Cache Components Troubleshooting

Common issues, debugging techniques, and solutions for Cache Components.

## Build-Time Feedback Philosophy

Cache Components introduces **early feedback** during development. Unlike before where errors might only appear in production, Cache Components produces build errors that **guide you toward optimal patterns**.

Key principle: **If it builds, it's correct.** The build process validates that:

- Dynamic data isn't accessed outside Suspense boundaries
- Cached data doesn't depend on request-specific APIs
- `generateStaticParams` provides valid parameters to test rendering

---

## Quick Debugging Checklist

Copy this checklist when debugging cache issues:

### Cache Not Working

- [ ] `cacheComponents: true` in next.config?
- [ ] Function is `async`?
- [ ] `'use cache'` is FIRST statement in function body?
- [ ] All arguments are serializable (no functions, class instances)?
- [ ] Not accessing `cookies()`/`headers()` inside cache?

### Stale Data After Mutation

- [ ] Called `updateTag()` or `revalidateTag()` after mutation?
- [ ] Tag in invalidation matches tag in `cacheTag()`?
- [ ] Using `updateTag()` (not `revalidateTag()`) for immediate updates?

### Build Errors

- [ ] Dynamic data wrapped in `<Suspense>`?
- [ ] `generateStaticParams` returns at least one param?
- [ ] Not mixing `'use cache'` with `cookies()`/`headers()`?

### Performance Issues

- [ ] Cache granularity appropriate? (not too coarse/fine)
- [ ] `cacheLife` set appropriately for data volatility?
- [ ] Using hierarchical tags for targeted invalidation?

---

## Error: UseCacheTimeoutError

### Symptoms

```
Error: A component used 'use cache' but didn't complete within 50 seconds.
```

### Cause

The cached function is accessing request-specific data (cookies, headers, searchParams) or making requests that depend on runtime context.

### Solution

User-specific content that depends on runtime data (cookies, headers, searchParams) should **not be cached**. Instead, stream it dynamically:

```tsx
// ❌ WRONG: Trying to cache user-specific content
async function UserContent() {
  'use cache'
  const session = await cookies() // Causes timeout!
  return await fetchContent(session.userId)
}

// ✅ CORRECT: Don't cache user-specific content, stream it instead
async function UserContent() {
  const session = await cookies()
  return await fetchContent(session.get('userId')?.value)
}

export default function Page() {
  return (
    <Suspense fallback={<Loading />}>
      <UserContent /> {/* No 'use cache' - streams dynamically */}
    </Suspense>
  )
}
```

**Key insight**: Cache Components are for content that can be shared across users (e.g., product details, blog posts). User-specific content should stream at request time.

---

## Error: Cannot use 'use cache' with sync function

### Symptoms

```
Error: 'use cache' can only be used in async functions
```

### Cause

Cache Components require async functions because cached outputs are streamed.

### Solution

```tsx
// ❌ WRONG: Synchronous function
function CachedComponent() {
  'use cache'
  return <div>Hello</div>
}

// ✅ CORRECT: Async function
async function CachedComponent() {
  'use cache'
  return <div>Hello</div>
}
```

---

## Error: Dynamic Data Outside Suspense

### Symptoms

```
Error: Accessing cookies/headers/searchParams outside a Suspense boundary
```

### Cause

With Cache Components, accessing request-specific APIs (cookies, headers, searchParams, connection) requires a Suspense boundary so Next.js can provide a static fallback.

### Why This Changed

**Before Cache Components**: The page silently became fully dynamic - no static content served.

**After Cache Components**: Build error ensures you explicitly handle the dynamic boundary.

### Solution

Wrap dynamic content in Suspense:

```tsx
// ❌ ERROR: No Suspense boundary
export default async function Page() {
  return (
    <>
      <Header />
      <UserDeals /> {/* Uses cookies() */}
    </>
  )
}

// ✅ CORRECT: Suspense provides static fallback
export default async function Page() {
  return (
    <>
      <Header />
      <Suspense fallback={<DealsSkeleton />}>
        <UserDeals />
      </Suspense>
    </>
  )
}
```

> **See also**: Pattern 1 (Static + Cached + Dynamic Page) in PATTERNS.md shows the foundational Suspense boundary pattern.

---

## Error: Uncached Data Outside Suspense

### Symptoms

```
Error: Accessing uncached data outside Suspense
```

### Cause

With Cache Components, ALL **async** I/O is considered dynamic by default. Database queries, fetch calls, and file reads must either be cached or wrapped in Suspense.

> **Note on synchronous databases**: Libraries with synchronous APIs (e.g., `better-sqlite3`) don't trigger this error because they don't involve async I/O. Synchronous operations complete during render and are included in the static shell. However, this also means they block the render thread - use judiciously for small, fast queries only.

### Solution

Either cache the data or wrap in Suspense:

```tsx
// ❌ ERROR: Uncached database query without Suspense
export default async function ProductPage({ params }) {
  const product = await db.products.findUnique({ where: { id: params.id } })
  return <ProductCard product={product} />
}

// ✅ OPTION 1: Cache the data
async function getProduct(id: string) {
  'use cache'
  cacheTag(`product-${id}`)
  cacheLife('hours')

  return await db.products.findUnique({ where: { id } })
}

export default async function ProductPage({ params }) {
  const product = await getProduct(params.id)
  return <ProductCard product={product} />
}

// ✅ OPTION 2: Wrap in Suspense (streams dynamically)
export default async function ProductPage({ params }) {
  return (
    <Suspense fallback={<ProductSkeleton />}>
      <ProductContent id={params.id} />
    </Suspense>
  )
}
```

> **See also**: Pattern 5 (Cached Data Fetching Functions) in PATTERNS.md shows reusable cached data fetcher patterns.

---

## Error: Empty generateStaticParams

### Symptoms

```
Error: generateStaticParams must return at least one parameter set
```

### Cause

With Cache Components, empty `generateStaticParams` is no longer allowed. This prevents a class of bugs where dynamic API usage in components would only error in production.

### Why This Changed

**Before**: Empty array = "trust me, this is static". Dynamic API usage in production caused runtime errors.

**After**: Must provide at least one param set so Next.js can validate the page actually renders statically.

### Solution

```tsx
// ❌ ERROR: Empty array
export function generateStaticParams() {
  return []
}

// ✅ CORRECT: Provide at least one param
export async function generateStaticParams() {
  const products = await getPopularProducts()
  return products.map(({ category, slug }) => ({ category, slug }))
}

// ✅ ALSO CORRECT: Hardcoded for known routes
export function generateStaticParams() {
  return [{ slug: 'about' }, { slug: 'contact' }, { slug: 'pricing' }]
}
```

---

## Error: Request Data Inside Cache

### Symptoms

```
Error: Cannot access cookies/headers inside 'use cache'
```

### Cause

Cache contexts cannot depend on request-specific data because the cached result would be shared across all users.

### Solution

User-specific content should **not be cached**. Remove `'use cache'` and stream the content dynamically:

```tsx
// ❌ ERROR: Cookies inside cache
async function UserDashboard() {
  'use cache'
  const session = await cookies() // Error!
  return await fetchDashboard(session.get('userId'))
}

// ✅ CORRECT: Don't cache user-specific content
async function UserDashboard() {
  const session = await cookies()
  return await fetchDashboard(session.get('userId')?.value)
}

export default function Page() {
  return (
    <Suspense fallback={<DashboardSkeleton />}>
      <UserDashboard /> {/* Streams at request time */}
    </Suspense>
  )
}
```

**Key insight**: Cache Components are for content that can be shared across users. User-specific dashboards should stream dynamically.

---

## Issue: Cache Not Being Used

### Symptoms

- Data always fresh on every request
- No caching behavior observed
- Build logs don't show cached routes

### Checklist

**1. Is `cacheComponents` enabled?**

```typescript
// next.config.ts
const nextConfig: NextConfig = {
  cacheComponents: true, // Required!
}
```

**2. Is the function async?**

```tsx
// Must be async
async function CachedData() {
  'use cache'
  return await fetchData()
}
```

**3. Is `'use cache'` the first statement?**

```tsx
// ❌ WRONG: Directive not first
async function CachedData() {
  const x = 1 // Something before 'use cache'
  ;('use cache')
  return await fetchData()
}

// ✅ CORRECT: Directive first
async function CachedData() {
  'use cache'
  const x = 1
  return await fetchData()
}
```

**4. Are arguments serializable?**

```tsx
// ❌ WRONG: Function as argument (not serializable)
async function CachedData({ transform }: { transform: (x: any) => any }) {
  'use cache'
  const data = await fetchData()
  return transform(data)
}

// ✅ CORRECT: Only serializable arguments
async function CachedData({ transformType }: { transformType: string }) {
  'use cache'
  const data = await fetchData()
  return applyTransform(data, transformType)
}
```

---

## Issue: Stale Data After Mutation

### Symptoms

- Created/updated data doesn't appear immediately
- Need to refresh page to see changes

### Cause

Cache not invalidated after mutation.

### Solutions

**1. Use `updateTag()` for immediate consistency:**

```tsx
'use server'
import { updateTag } from 'next/cache'

export async function createPost(data: FormData) {
  await db.posts.create({ data })
  updateTag('posts') // Immediate invalidation
}
```

**2. Ensure tags match:**

```tsx
// Cache uses this tag
async function Posts() {
  'use cache'
  cacheTag('posts') // Must match invalidation tag
  return await db.posts.findMany()
}

// Invalidation must use same tag
export async function createPost(data: FormData) {
  await db.posts.create({ data })
  updateTag('posts') // Same tag!
}
```

**3. Invalidate all relevant tags:**

```tsx
export async function updatePost(postId: string, data: FormData) {
  const post = await db.posts.update({
    where: { id: postId },
    data,
  })

  // Invalidate all affected caches
  updateTag('posts') // All posts list
  updateTag(`post-${postId}`) // Specific post
  updateTag(`author-${post.authorId}`) // Author's posts
}
```

---

## Issue: Different Cache Values for Same Key

### Symptoms

- Cache returns different values for what should be the same query
- Inconsistent behavior across requests

### Cause

Arguments are part of cache key. Different argument values = different cache entries.

### Solution

Normalize arguments:

```tsx
// ❌ Problem: Object reference differs
async function CachedData({ options }: { options: { limit: number } }) {
  'use cache'
  return await fetchData(options)
}

// Each call creates new object = new cache key
<CachedData options={{ limit: 10 }} />
<CachedData options={{ limit: 10 }} /> // Different cache entry!

// ✅ Solution: Use primitives or stable references
async function CachedData({ limit }: { limit: number }) {
  'use cache'
  return await fetchData({ limit })
}

<CachedData limit={10} />
<CachedData limit={10} /> // Same cache entry!
```

---

## Issue: Cache Too Aggressive (Stale Data)

### Symptoms

- Data doesn't update when expected
- Users see outdated content

### Solutions

**1. Reduce cache lifetime:**

```tsx
async function FrequentlyUpdatedData() {
  'use cache'
  cacheLife('seconds') // Short cache

  // Or custom short duration
  cacheLife({
    stale: 0,
    revalidate: 30,
    expire: 60,
  })

  return await fetchData()
}
```

**2. Don't cache volatile data:**

```tsx
// For truly real-time data, skip caching
async function LiveData() {
  // No 'use cache'
  return await fetchLiveData()
}

export default function Page() {
  return (
    <Suspense fallback={<Loading />}>
      <LiveData />
    </Suspense>
  )
}
```

---

## Issue: Build Takes Too Long

### Symptoms

- Build hangs during prerendering
- Timeout errors during `next build`

### Cause

Cached functions making slow network requests or accessing unavailable services during build.

### Solutions

**1. Use fallback data for build:**

```tsx
async function CachedData() {
  'use cache'

  try {
    return await fetchFromAPI()
  } catch (error) {
    // Return fallback during build if API unavailable
    return getFallbackData()
  }
}
```

**2. Limit static generation scope:**

```tsx
// app/[slug]/page.tsx
export function generateStaticParams() {
  // Only prerender most important pages at build time
  // Other pages will be generated on-demand at request time
  return [{ slug: 'home' }, { slug: 'about' }]
}
```

**3. Use Suspense for truly dynamic content:**

```tsx
// app/[slug]/page.tsx
import { Suspense } from 'react'

export default function Page({
  params,
}: {
  params: Promise<{ slug: string }>
}) {
  return (
    <Suspense fallback={<PageSkeleton />}>
      <DynamicContent params={params} />
    </Suspense>
  )
}
```

> **Note:** Avoid using `export const dynamic = 'force-dynamic'` as this segment config is deprecated with Cache Components. Use Suspense boundaries and `'use cache'` for granular control instead.

---

## Debugging Techniques

### 1. Check Cache Headers

In development, inspect response headers:

```bash
curl -I http://localhost:3000/your-page
```

Look for:

- `x-nextjs-cache: HIT` - Served from cache
- `x-nextjs-cache: MISS` - Cache miss, recomputed
- `x-nextjs-cache: STALE` - Stale content, revalidating

### 2. Enable Verbose Logging

```bash
# Environment variable for cache debugging
NEXT_PRIVATE_DEBUG_CACHE=1 npm run dev
```

### 3. Check Build Output

```bash
npm run build

# Look for:
# ○ (Static) - Fully static
# ◐ (Partial) - Partial prerender with cache
# λ (Dynamic) - Server-rendered
```

### 4. Inspect Cache Tags

Add logging to verify tags:

```tsx
async function CachedData({ id }: { id: string }) {
  'use cache'

  const tags = ['data', `item-${id}`]
  console.log('Cache tags:', tags) // Check during build

  tags.forEach((tag) => cacheTag(tag))
  cacheLife('hours')

  return await fetchData(id)
}
```

---

## Common Mistakes Checklist

| Mistake                            | Symptom            | Fix                   |
| ---------------------------------- | ------------------ | --------------------- |
| Missing `cacheComponents: true`    | No caching         | Add to next.config.ts |
| Sync function with `'use cache'`   | Build error        | Make function async   |
| `'use cache'` not first statement  | Cache ignored      | Move to first line    |
| Accessing cookies/headers in cache | Timeout error      | Extract to wrapper    |
| Non-serializable arguments         | Inconsistent cache | Use primitives        |
| Missing Suspense for dynamic       | Streaming broken   | Wrap in Suspense      |
| Wrong tag in invalidation          | Stale data         | Match cache tags      |
| Over-caching volatile data         | Stale data         | Reduce cacheLife      |

---

## Performance Optimization Tips

### 1. Profile Cache Hit Rates

Monitor cache effectiveness:

```tsx
async function CachedData() {
  'use cache'

  const start = performance.now()
  const data = await fetchData()
  const duration = performance.now() - start

  // Log for analysis
  console.log(`Cache execution: ${duration}ms`)

  return data
}
```

### 2. Optimize Cache Granularity

```tsx
// ❌ Coarse: One big cached component
async function PageContent() {
  'use cache'
  const header = await fetchHeader()
  const posts = await fetchPosts()
  const sidebar = await fetchSidebar()
  return <>{/* everything */}</>
}

// ✅ Fine-grained: Independent cached components
async function Header() {
  'use cache'
  cacheLife('days')
  return await fetchHeader()
}

async function Posts() {
  'use cache'
  cacheLife('hours')
  return await fetchPosts()
}

async function Sidebar() {
  'use cache'
  cacheLife('minutes')
  return await fetchSidebar()
}
```

### 3. Strategic Tag Design

```tsx
// Hierarchical tags for targeted invalidation
cacheTag(
  'posts', // All posts
  `category-${category}`, // Posts in category
  `post-${id}`, // Specific post
  `author-${authorId}` // Author's posts
)

// Invalidate at appropriate level
updateTag(`post-${id}`) // Single post changed
updateTag(`author-${author}`) // Author updated all posts
updateTag('posts') // Nuclear option
```


================================================
FILE: .conductor/README.md
================================================
# Conductor Configuration for Next.js

This directory contains [Conductor](https://www.conductor.build/) configuration for parallel Claude Code agent development.

## What is Conductor?

Conductor is a macOS application that orchestrates multiple Claude Code agents in parallel. Each agent gets its own isolated git worktree, enabling concurrent development on different features without branch conflicts.

## Directory Structure

```
.conductor/
├── conductor.json      # Main configuration (used for new workspaces)
├── README.md           # This file
├── scripts/
│   ├── setup.sh        # Runs on workspace creation
│   └── run.sh          # Runs when starting work
└── <workspace>/        # Individual workspace directories (git worktrees, gitignored)
```

## Configuration

### Main Configuration (`conductor.json`)

The root `conductor.json` defines:

- **`scripts.setup`**: Runs when creating a new workspace
  - Enables corepack for pnpm
  - Validates Node.js version (18+)
  - Installs dependencies with `pnpm install`
  - Builds all packages with `pnpm build`

- **`scripts.run`**: Runs when starting work in a workspace
  - Starts watch mode (`pnpm --filter=next dev`) for fast iteration

- **`environment`**: Environment variables for all workspaces
  - Disables telemetry for cleaner development

- **`worktree`**: Git worktree configuration
  - Default branch to create worktrees from

## Usage

### Creating a New Workspace

In the Conductor app:
1. Add this repository
2. Create a new workspace with a descriptive name
3. The setup script will automatically install dependencies and build

### Manual Worktree Setup

If setting up worktrees manually (without Conductor app):

```bash
# Create a new worktree from canary
git worktree add ../next.js-worktrees/my-feature -b my-feature-branch canary

# Navigate to the worktree
cd ../next.js-worktrees/my-feature

# Run the setup script (same script Conductor uses)
./.conductor/scripts/setup.sh

# Or manually:
# pnpm install --prefer-offline
# pnpm build
```

## Managing Worktrees

View all worktrees:
```bash
git worktree list
```

## Best Practices

### Disk Space Management
- Each worktree uses ~500MB-1GB after build
- Run `pnpm sweep` periodically to clean Rust build artifacts
- Remove unused worktrees with `git worktree remove <path>`

### Development Workflow
1. **Never run `pnpm build` while `pnpm dev` is active** (causes build corruption)
2. Use `pnpm test-dev-turbo` for fastest test iteration
3. Use `NEXT_SKIP_ISOLATE=1` for faster test runs during development

### Parallel Agent Recommendations
- Limit to 3-4 concurrent agents to avoid:
  - GitHub API rate limits
  - Disk space exhaustion
  - System resource contention

## Troubleshooting

### Build Corruption
If builds become corrupted:
```bash
# Kill any running dev processes
pkill -f "pnpm dev"

# Clean and rebuild
pnpm clean
pnpm install
pnpm build
```

### Worktree Issues
```bash
# List worktrees with status
git worktree list

# Prune stale worktree references
git worktree prune

# Remove a worktree
git worktree remove <path>
```

## Related Documentation

- [Conductor App](https://www.conductor.build/)
- [Git Worktrees](https://git-scm.com/docs/git-worktree)
- [Next.js Contributing Guide](../contributing.md)


================================================
FILE: .conductor/scripts/run.sh
================================================
#!/bin/bash
#
# Conductor Run Script for Next.js
#
# This script runs when starting work in a Conductor workspace.
# It starts the watch mode build for fast iteration.
#

set -e

echo "🚀 Starting Next.js development environment..."
echo ""
echo "Starting watch mode (pnpm --filter=next dev)..."
echo "This will auto-rebuild on file changes."
echo ""
echo "⚠️  Remember: Never run 'pnpm build' while this is running!"
echo ""

# Start the watch mode build for the next package
pnpm --filter=next dev


================================================
FILE: .conductor/scripts/setup.sh
================================================
#!/bin/bash
#
# Conductor Setup Script for Next.js
#
# This script runs when creating a new Conductor workspace.
# It ensures the development environment is properly configured.
#

set -e

echo "🔧 Setting up Next.js development environment..."

# Enable corepack for pnpm (requires pnpm 9.6.0)
if command -v corepack &> /dev/null; then
  echo "📦 Enabling corepack for pnpm..."
  corepack enable pnpm
fi

# Validate Node.js version
NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1)
if [ "$NODE_VERSION" -lt 18 ]; then
  echo "❌ Node.js 18+ required (found: $(node -v))"
  exit 1
fi
echo "✓ Node.js $(node -v) detected"

# Install dependencies
echo "📦 Installing dependencies..."
pnpm install --prefer-offline

# Build all packages
echo "🏗️ Building packages..."
pnpm build

echo ""
echo "✅ Setup complete! Ready for development."
echo ""
echo "Tips:"
echo "  • Run 'pnpm test-dev-turbo <path>' for fast test iteration"
echo "  • Run 'pnpm --filter=next dev' for watch mode"
echo "  • Run 'pnpm sweep' periodically to clean Rust build artifacts"


================================================
FILE: .config/.vercel.approvers
================================================
nextest.toml @vercel/turbopack


================================================
FILE: .config/ast-grep/rule-tests/__snapshots__/no-context-format-snapshot.yml
================================================
id: no-context-format
snapshots:
  foo.bar().context(format!("{} failed", name)):
    fixed: foo.bar().with_context(|| format!("{} failed", name))
    labels:
    - source: foo.bar().context(format!("{} failed", name))
      style: primary
      start: 0
      end: 45
  'foo.context(format!("error: {}", msg))':
    fixed: 'foo.with_context(|| format!("error: {}", msg))'
    labels:
    - source: 'foo.context(format!("error: {}", msg))'
      style: primary
      start: 0
      end: 38
  foo.context(format!("simple message")):
    fixed: foo.with_context(|| format!("simple message"))
    labels:
    - source: foo.context(format!("simple message"))
      style: primary
      start: 0
      end: 38


================================================
FILE: .config/ast-grep/rule-tests/__snapshots__/no-context-snapshot.yml
================================================
id: no-context
snapshots:
  'fn foo(context: ChunkingContext) -> u32 { 5 };':
    labels:
    - source: context
      style: primary
      start: 7
      end: 14
    - source: 'context: ChunkingContext'
      style: secondary
      start: 7
      end: 31
  foo(|context| context):
    labels:
    - source: context
      style: primary
      start: 5
      end: 12
    - source: '|context|'
      style: secondary
      start: 4
      end: 13
  let context = ChunkingContext::new();:
    labels:
    - source: context
      style: primary
      start: 4
      end: 11
    - source: let context = ChunkingContext::new();
      style: secondary
      start: 0
      end: 37
  'struct Foo { context: Context };':
    labels:
    - source: context
      style: primary
      start: 13
      end: 20
    - source: 'context: Context'
      style: secondary
      start: 13
      end: 29


================================================
FILE: .config/ast-grep/rule-tests/__snapshots__/no-context-turbofmt-snapshot.yml
================================================
id: no-context-turbofmt
snapshots:
  foo.bar().context(turbofmt!("{} failed", name)):
    fixed: foo.bar().with_context(|| turbofmt!("{} failed", name))
    labels:
    - source: foo.bar().context(turbofmt!("{} failed", name))
      style: primary
      start: 0
      end: 47
  foo.bar().context(turbofmt!("{} failed", name).await?):
    labels:
    - source: foo.bar().context(turbofmt!("{} failed", name).await?)
      style: primary
      start: 0
      end: 54
  'foo.context(turbofmt!("error: {}", msg))':
    fixed: 'foo.with_context(|| turbofmt!("error: {}", msg))'
    labels:
    - source: 'foo.context(turbofmt!("error: {}", msg))'
      style: primary
      start: 0
      end: 40
  'foo.context(turbofmt!("error: {}", msg).await?)':
    labels:
    - source: 'foo.context(turbofmt!("error: {}", msg).await?)'
      style: primary
      start: 0
      end: 47
  foo.context(turbofmt!("simple message")):
    fixed: foo.with_context(|| turbofmt!("simple message"))
    labels:
    - source: foo.context(turbofmt!("simple message"))
      style: primary
      start: 0
      end: 40
  foo.context(turbofmt!("simple message").await?):
    labels:
    - source: foo.context(turbofmt!("simple message").await?)
      style: primary
      start: 0
      end: 47


================================================
FILE: .config/ast-grep/rule-tests/__snapshots__/no-err-anyhow-snapshot.yml
================================================
id: no-err-anyhow
snapshots:
  Err(anyhow!("error message")):
    labels:
    - source: Err(anyhow!("error message"))
      style: primary
      start: 0
      end: 29
  'Err(anyhow!("error: {}", msg))':
    labels:
    - source: 'Err(anyhow!("error: {}", msg))'
      style: primary
      start: 0
      end: 30
  Err(anyhow::anyhow!("error message")):
    labels:
    - source: Err(anyhow::anyhow!("error message"))
      style: primary
      start: 0
      end: 37
  'Err(anyhow::anyhow!("error: {}", msg))':
    labels:
    - source: 'Err(anyhow::anyhow!("error: {}", msg))'
      style: primary
      start: 0
      end: 38


================================================
FILE: .config/ast-grep/rule-tests/__snapshots__/no-map-async-cell-snapshot.yml
================================================
id: no-map-async-cell
snapshots:
  ? |
    items.into_iter()
        .map(async |item| Ok(item.process().await?.cell()))
        .try_join()
        .await
  : labels:
    - source: item.process().await?.cell()
      style: primary
      start: 43
      end: 71
    - source: |-
        items.into_iter()
            .map(async |item| Ok(item.process().await?.cell()))
      style: secondary
      start: 0
      end: 73
    - source: async |item| Ok(item.process().await?.cell())
      style: secondary
      start: 27
      end: 72
  ? |
    items.into_iter()
        .map(async |item| item.process().await.cell())
        .try_join()
        .await
  : labels:
    - source: |-
        items.into_iter()
            .map(async |item| item.process().await.cell())
      style: primary
      start: 0
      end: 68
    - source: item.process().await.cell()
      style: secondary
      start: 40
      end: 67
  ? |
    items.into_iter()
        .map(async |item| {
            Ok(item.process().await?.cell())
        })
        .try_join()
        .await
  : labels:
    - source: item.process().await?.cell()
      style: primary
      start: 53
      end: 81
    - source: |-
        items.into_iter()
            .map(async |item| {
                Ok(item.process().await?.cell())
            })
      style: secondary
      start: 0
      end: 89
    - source: |-
        async |item| {
                Ok(item.process().await?.cell())
            }
      style: secondary
      start: 27
      end: 88
  ? |
    items.into_iter()
        .map(async |item| {
            item.process().await.cell()
        })
        .try_join()
        .await
  : labels:
    - source: |-
        items.into_iter()
            .map(async |item| {
                item.process().await.cell()
            })
      style: primary
      start: 0
      end: 84
    - source: item.process().await.cell()
      style: secondary
      start: 50
      end: 77
  ? |
    items.into_iter()
        .map(|item| async move {
            Ok(item.process().await?.cell())
        })
        .try_join()
        .await
  : labels:
    - source: item.process().await?.cell()
      style: primary
      start: 58
      end: 86
    - source: |-
        items.into_iter()
            .map(|item| async move {
                Ok(item.process().await?.cell())
            })
      style: secondary
      start: 0
      end: 94
    - source: |-
        |item| async move {
                Ok(item.process().await?.cell())
            }
      style: secondary
      start: 27
      end: 93
  ? |
    items.into_iter()
        .map(|item| async {
            Ok(item.process().await?.cell())
        })
        .try_join()
        .await
  : labels:
    - source: item.process().await?.cell()
      style: primary
      start: 53
      end: 81
    - source: |-
        items.into_iter()
            .map(|item| async {
                Ok(item.process().await?.cell())
            })
      style: secondary
      start: 0
      end: 89
    - source: |-
        |item| async {
                Ok(item.process().await?.cell())
            }
      style: secondary
      start: 27
      end: 88
  ? |
    map.into_iter()
        .map(|(ty, items)| {
            (
                ty,
                ChunkItemBatchGroup {
                    items,
                    chunk_groups: this.chunk_groups.clone(),
                },
            )
        })
        .map(async |(ty, batch_group)| Ok((ty, batch_group.resolved_cell())))
        .try_join()
  : labels:
    - source: batch_group.resolved_cell()
      style: primary
      start: 256
      end: 283
    - source: |-
        map.into_iter()
            .map(|(ty, items)| {
                (
                    ty,
                    ChunkItemBatchGroup {
                        items,
                        chunk_groups: this.chunk_groups.clone(),
                    },
                )
            })
            .map(async |(ty, batch_group)| Ok((ty, batch_group.resolved_cell())))
      style: secondary
      start: 0
      end: 286
    - source: async |(ty, batch_group)| Ok((ty, batch_group.resolved_cell()))
      style: secondary
      start: 222
      end: 285
  ? |
    modules
        .map(async |module| {
            let result = module.compute().await?;
            result.into_value().cell()
        })
  : labels:
    - source: result.into_value().cell()
      style: primary
      start: 88
      end: 114
    - source: |-
        modules
            .map(async |module| {
                let result = module.compute().await?;
                result.into_value().cell()
            })
      style: secondary
      start: 0
      end: 121
    - source: |-
        async |module| {
                let result = module.compute().await?;
                result.into_value().cell()
            }
      style: secondary
      start: 17
      end: 120
  ? |
    modules
        .map(async |module| {
            let result = module.compute().await?;
            result.into_value().cell()
        })
        .try_join()
  : labels:
    - source: |-
        modules
            .map(async |module| {
                let result = module.compute().await?;
                result.into_value().cell()
            })
      style: primary
      start: 0
      end: 121
    - source: result.into_value().cell()
      style: secondary
      start: 88
      end: 114
  ? |
    paths.map(async |(path, asset)| {
        AssetBinding {
            name: wasm_edge_var_name(Vc::upcast(*asset)).owned().await?,
        }.cell()
    })
  : labels:
    - source: |-
        paths.map(async |(path, asset)| {
            AssetBinding {
                name: wasm_edge_var_name(Vc::upcast(*asset)).owned().await?,
            }.cell()
        })
      style: primary
      start: 0
      end: 137
    - source: |-
        AssetBinding {
                name: wasm_edge_var_name(Vc::upcast(*asset)).owned().await?,
            }.cell()
      style: secondary
      start: 38
      end: 134
  ? |
    paths.map(async |(path, asset)| {
        Ok(AssetBinding {
            name: wasm_edge_var_name(Vc::upcast(*asset)).owned().await?,
        }.cell())
    })
    .try_join()
    .await
  : labels:
    - source: |-
        AssetBinding {
                name: wasm_edge_var_name(Vc::upcast(*asset)).owned().await?,
            }.cell()
      style: primary
      start: 41
      end: 137
    - source: |-
        paths.map(async |(path, asset)| {
            Ok(AssetBinding {
                name: wasm_edge_var_name(Vc::upcast(*asset)).owned().await?,
            }.cell())
        })
      style: secondary
      start: 0
      end: 141
    - source: |-
        async |(path, asset)| {
            Ok(AssetBinding {
                name: wasm_edge_var_name(Vc::upcast(*asset)).owned().await?,
            }.cell())
        }
      style: secondary
      start: 10
      end: 140


================================================
FILE: .config/ast-grep/rule-tests/__snapshots__/resolved-vc-in-return-type-snapshot.yml
================================================
id: resolved-vc-in-return-type
snapshots:
  ? |
    #[turbo_tasks::function]
    pub async fn flag_this(x: ResolvedVc<MyType>) -> ResolvedVc<MyType> {}
  : fixed: |
      #[turbo_tasks::function]
      pub async fn flag_this(x: ResolvedVc<MyType>) -> Vc<MyType> {}
    labels:
    - source: ResolvedVc<MyType>
      style: primary
      start: 74
      end: 92
    - source: flag_this
      style: secondary
      start: 38
      end: 47
    - source: '#[turbo_tasks::function]'
      style: secondary
      start: 0
      end: 24
    - source: 'pub async fn flag_this(x: ResolvedVc<MyType>) -> ResolvedVc<MyType> {}'
      style: secondary
      start: 25
      end: 95
  ? |
    #[turbo_tasks::function]
    pub async fn flag_this_too(x: ResolvedVc<MyType>) -> Result<ResolvedVc<MyType>> {}
  : fixed: |
      #[turbo_tasks::function]
      pub async fn flag_this_too(x: ResolvedVc<MyType>) -> Result<Vc<MyType>> {}
    labels:
    - source: ResolvedVc<MyType>
      style: primary
      start: 85
      end: 103
    - source: flag_this_too
      style: secondary
      start: 38
      end: 51
    - source: '#[turbo_tasks::function]'
      style: secondary
      start: 0
      end: 24
    - source: 'pub async fn flag_this_too(x: ResolvedVc<MyType>) -> Result<ResolvedVc<MyType>> {}'
      style: secondary
      start: 25
      end: 107
  ? |
    #[turbo_tasks::value_trait]
    pub trait ValueTrait() {
        fn flag_this() -> ResolvedVc<MyType>;
    }
  : fixed: |
      #[turbo_tasks::value_trait]
      pub trait ValueTrait() {
     
Download .txt
Showing preview only (2,151K chars total). Download the full file or copy to clipboard to get everything.
gitextract_40a4nsqh/

├── .agents/
│   └── skills/
│       ├── README.md
│       ├── authoring-skills/
│       │   └── SKILL.md
│       ├── dce-edge/
│       │   └── SKILL.md
│       ├── flags/
│       │   └── SKILL.md
│       ├── pr-status-triage/
│       │   ├── SKILL.md
│       │   ├── local-repro.md
│       │   └── workflow.md
│       ├── react-vendoring/
│       │   └── SKILL.md
│       ├── router-act/
│       │   └── SKILL.md
│       ├── runtime-debug/
│       │   └── SKILL.md
│       ├── update-docs/
│       │   ├── SKILL.md
│       │   └── references/
│       │       ├── CODE-TO-DOCS-MAPPING.md
│       │       └── DOC-CONVENTIONS.md
│       ├── v8-jit/
│       │   └── SKILL.md
│       ├── write-api-reference/
│       │   └── SKILL.md
│       └── write-guide/
│           └── SKILL.md
├── .alexignore
├── .alexrc
├── .cargo/
│   ├── .vercel.approvers
│   └── config.toml
├── .claude-plugin/
│   ├── marketplace.json
│   └── plugins/
│       ├── README.md
│       └── cache-components/
│           ├── .claude-plugin/
│           │   └── plugin.json
│           ├── README.md
│           └── skills/
│               └── cache-components/
│                   ├── PATTERNS.md
│                   ├── REFERENCE.md
│                   ├── SKILL.md
│                   └── TROUBLESHOOTING.md
├── .conductor/
│   ├── README.md
│   └── scripts/
│       ├── run.sh
│       └── setup.sh
├── .config/
│   ├── .vercel.approvers
│   ├── ast-grep/
│   │   ├── rule-tests/
│   │   │   ├── __snapshots__/
│   │   │   │   ├── no-context-format-snapshot.yml
│   │   │   │   ├── no-context-snapshot.yml
│   │   │   │   ├── no-context-turbofmt-snapshot.yml
│   │   │   │   ├── no-err-anyhow-snapshot.yml
│   │   │   │   ├── no-map-async-cell-snapshot.yml
│   │   │   │   ├── resolved-vc-in-return-type-snapshot.yml
│   │   │   │   └── resolved-vc-in-trait-arguments-snapshot.yml
│   │   │   ├── no-context-format-test.yml
│   │   │   ├── no-context-test.yml
│   │   │   ├── no-err-anyhow-test.yml
│   │   │   ├── no-map-async-cell-test.yml
│   │   │   ├── resolved-vc-in-return-type-test.yml
│   │   │   └── resolved-vc-in-trait-arguments-test.yml
│   │   ├── rule-utils/
│   │   │   └── .gitkeep
│   │   └── rules/
│   │       ├── no-context-format.yml
│   │       ├── no-context.yml
│   │       ├── no-err-anyhow.yml
│   │       ├── no-map-async-cell.yml
│   │       ├── resolved-vc-in-return-type.yml
│   │       └── resolved-vc-in-trait.yml
│   ├── eslintignore.mjs
│   └── nextest.toml
├── .cursor/
│   ├── commands/
│   │   └── gt-workflow.md
│   └── worktrees.json
├── .cursorindexingignore
├── .devcontainer/
│   ├── devcontainer-lock.json
│   ├── devcontainer.json
│   ├── headless-browser/
│   │   ├── devcontainer-feature.json
│   │   └── install.sh
│   ├── node-extras/
│   │   ├── devcontainer-feature.json
│   │   └── install.sh
│   └── rust/
│       ├── devcontainer-feature.json
│       └── install.sh
├── .git-blame-ignore-revs
├── .gitattributes
├── .github/
│   ├── CODEOWNERS
│   ├── DISCUSSION_TEMPLATE/
│   │   ├── help.yml
│   │   └── ideas.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── 1.bug_report.yml
│   │   ├── 4.docs_report.yml
│   │   └── config.yml
│   ├── actions/
│   │   ├── needs-triage/
│   │   │   ├── action.yaml
│   │   │   ├── dist/
│   │   │   │   ├── index.js
│   │   │   │   └── licenses.txt
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   └── index.ts
│   │   │   └── tsconfig.json
│   │   ├── next-integration-stat/
│   │   │   ├── action.yml
│   │   │   ├── dist/
│   │   │   │   ├── 37.index.js
│   │   │   │   └── index.js
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── index.ts
│   │   │   │   └── manifest.d.ts
│   │   │   └── tsconfig.json
│   │   ├── next-repo-actions/
│   │   │   ├── dist/
│   │   │   │   ├── feature-requests/
│   │   │   │   │   ├── index.mjs
│   │   │   │   │   └── licenses.txt
│   │   │   │   ├── issues/
│   │   │   │   │   ├── index.mjs
│   │   │   │   │   └── licenses.txt
│   │   │   │   ├── prs/
│   │   │   │   │   ├── index.js
│   │   │   │   │   └── licenses.txt
│   │   │   │   └── wrong-issue-template/
│   │   │   │       ├── index.js
│   │   │   │       └── licenses.txt
│   │   │   ├── lib/
│   │   │   │   └── util.mjs
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── popular-feature-requests.mjs
│   │   │   │   ├── popular-issues.mjs
│   │   │   │   ├── popular-prs.ts
│   │   │   │   └── wrong-issue-template.ts
│   │   │   └── tsconfig.json
│   │   ├── next-stats-action/
│   │   │   ├── Dockerfile
│   │   │   ├── README.md
│   │   │   ├── action.yml
│   │   │   ├── entrypoint.sh
│   │   │   ├── native/
│   │   │   │   └── .gitignore
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── add-comment.js
│   │   │   │   ├── aggregate-results.js
│   │   │   │   ├── constants.js
│   │   │   │   ├── index.js
│   │   │   │   ├── prepare/
│   │   │   │   │   ├── action-info.js
│   │   │   │   │   ├── load-stats-config.js
│   │   │   │   │   └── repo-setup.js
│   │   │   │   ├── run/
│   │   │   │   │   ├── benchmark-url.js
│   │   │   │   │   ├── collect-diffs.js
│   │   │   │   │   ├── collect-stats.js
│   │   │   │   │   ├── get-dir-size.js
│   │   │   │   │   └── index.js
│   │   │   │   └── util/
│   │   │   │       ├── exec.js
│   │   │   │       ├── glob.js
│   │   │   │       ├── logger.js
│   │   │   │       └── stats.js
│   │   │   └── test-local.js
│   │   ├── setup-rust/
│   │   │   ├── action.yml
│   │   │   └── matchers.json
│   │   ├── upload-turboyet-data/
│   │   │   ├── action.yml
│   │   │   ├── dist/
│   │   │   │   ├── index.js
│   │   │   │   ├── index.js.map
│   │   │   │   └── sourcemap-register.js
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── main.js
│   │   └── validate-docs-links/
│   │       ├── README.MD
│   │       ├── dist/
│   │       │   ├── index.js
│   │       │   ├── licenses.txt
│   │       │   └── package.json
│   │       ├── package.json
│   │       ├── src/
│   │       │   └── index.ts
│   │       ├── tsconfig.json
│   │       └── types.d.ts
│   ├── comments/
│   │   ├── good-first-issue.md
│   │   ├── invalid-link.md
│   │   ├── invalid-reproduction.md
│   │   ├── resolved.md
│   │   ├── simplify-reproduction.md
│   │   └── verify-canary.md
│   ├── labeler.json
│   ├── pnpm-workspace.yaml
│   ├── pull_request_template.md
│   └── workflows/
│       ├── build_and_deploy.yml
│       ├── build_and_test.yml
│       ├── build_reusable.yml
│       ├── code_freeze.yml
│       ├── create_release_branch.yml
│       ├── deploy_docs.yml
│       ├── graphite_ci_optimizer.yml
│       ├── integration_tests_reusable.yml
│       ├── issue_lock.yml
│       ├── issue_stale.yml
│       ├── issue_wrong_template.yml
│       ├── popular.yml
│       ├── pull_request_stats.yml
│       ├── release-next-rspack.yml
│       ├── retry_deploy_test.yml
│       ├── retry_test.yml
│       ├── rspack-nextjs-build-integration-tests.yml
│       ├── rspack-nextjs-dev-integration-tests.yml
│       ├── rspack-update-tests-manifest.yml
│       ├── setup-nextjs-build.yml
│       ├── test-turbopack-rust-bench-test.yml
│       ├── test_e2e_deploy_release.yml
│       ├── test_e2e_project_reset_cron.yml
│       ├── test_examples.yml
│       ├── triage.yml
│       ├── trigger_release.yml
│       ├── turbopack-benchmark.yml
│       ├── turbopack-nextjs-build-integration-tests.yml
│       ├── turbopack-nextjs-dev-integration-tests.yml
│       ├── turbopack-update-tests-manifest.yml
│       ├── update_fonts_data.yml
│       ├── update_react.yml
│       └── upload-tests-manifest.yml
├── .gitignore
├── .husky/
│   ├── pre-commit
│   └── pre-push
├── .ignore
├── .node-version
├── .npmrc
├── .prettierignore
├── .prettierrc.json
├── .rustfmt.toml
├── .typos.toml
├── .vscode/
│   ├── extensions.json
│   ├── launch.json
│   ├── settings.json
│   └── tasks.json
├── AGENTS.md
├── CODE_OF_CONDUCT.md
├── Cargo.toml
├── UPGRADING.md
├── apps/
│   ├── bundle-analyzer/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── components/
│   │   │   ├── error-state.tsx
│   │   │   ├── file-search.tsx
│   │   │   ├── import-chain.tsx
│   │   │   ├── index.ts
│   │   │   ├── route-typeahead.tsx
│   │   │   ├── sidebar.tsx
│   │   │   ├── theme-provider.tsx
│   │   │   ├── treemap-visualizer.tsx
│   │   │   └── ui/
│   │   │       ├── badge.tsx
│   │   │       ├── button.tsx
│   │   │       ├── command.tsx
│   │   │       ├── dialog.tsx
│   │   │       ├── input.tsx
│   │   │       ├── kbd.tsx
│   │   │       ├── multi-select.tsx
│   │   │       ├── popover.tsx
│   │   │       ├── select.tsx
│   │   │       ├── skeleton.tsx
│   │   │       ├── toggle-group.tsx
│   │   │       └── tooltip.tsx
│   │   ├── components.json
│   │   ├── lib/
│   │   │   ├── analyze-data.ts
│   │   │   ├── errors.ts
│   │   │   ├── layout-treemap.ts
│   │   │   ├── module-graph.ts
│   │   │   ├── treemap-layout.ts
│   │   │   ├── types.ts
│   │   │   └── utils.ts
│   │   ├── next.config.mjs
│   │   ├── package.json
│   │   ├── postcss.config.mjs
│   │   └── tsconfig.json
│   └── docs/
│       ├── .gitignore
│       ├── README.md
│       ├── app/
│       │   ├── .prettierrc.json
│       │   ├── docs/
│       │   │   ├── [[...slug]]/
│       │   │   │   └── page.tsx
│       │   │   └── layout.tsx
│       │   ├── global.css
│       │   ├── layout.config.tsx
│       │   ├── layout.tsx
│       │   └── page.tsx
│       ├── constants/
│       │   └── brand.ts
│       ├── eslint.config.mjs
│       ├── lib/
│       │   └── source.ts
│       ├── mdx-components.tsx
│       ├── next.config.ts
│       ├── package.json
│       ├── postcss.config.mjs
│       ├── source.config.ts
│       └── tsconfig.json
├── bench/
│   ├── BENCHMARKING.md
│   ├── app-router-server/
│   │   ├── app/
│   │   │   ├── layout.js
│   │   │   └── rsc/
│   │   │       └── page.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── pages/
│   │       └── index.js
│   ├── basic-app/
│   │   ├── app/
│   │   │   ├── api/
│   │   │   │   └── app/
│   │   │   │       └── route.js
│   │   │   ├── layout.js
│   │   │   ├── page.js
│   │   │   └── streaming/
│   │   │       ├── _shared/
│   │   │       │   ├── client-boundary.js
│   │   │       │   └── stress-page.js
│   │   │       ├── bulk/
│   │   │       │   └── page.js
│   │   │       ├── chunkstorm/
│   │   │       │   └── page.js
│   │   │       ├── heavy/
│   │   │       │   └── page.js
│   │   │       ├── light/
│   │   │       │   └── page.js
│   │   │       ├── medium/
│   │   │       │   └── page.js
│   │   │       └── wide/
│   │   │           └── page.js
│   │   ├── benchmark.sh
│   │   ├── next.config.js
│   │   └── pages/
│   │       ├── api/
│   │       │   └── page-api.js
│   │       └── pages/
│   │           └── index.js
│   ├── fuzzponent/
│   │   ├── bin/
│   │   │   └── fuzzponent.js
│   │   ├── package.json
│   │   └── readme.md
│   ├── heavy-npm-deps/
│   │   ├── .eslintrc.json
│   │   ├── .gitignore
│   │   ├── app/
│   │   │   ├── globals.css
│   │   │   ├── layout.js
│   │   │   └── page.js
│   │   ├── components/
│   │   │   ├── lodash.js
│   │   │   ├── mantine.js
│   │   │   └── mermaid.js
│   │   ├── next.config.mjs
│   │   ├── package.json
│   │   ├── postcss.config.cjs
│   │   └── tailwind.config.js
│   ├── module-cost/
│   │   ├── .gitignore
│   │   ├── app/
│   │   │   ├── app/
│   │   │   │   ├── commonjs/
│   │   │   │   │   └── route.js
│   │   │   │   ├── esm/
│   │   │   │   │   └── route.js
│   │   │   │   └── page.js
│   │   │   └── layout.js
│   │   ├── components/
│   │   │   └── client.js
│   │   ├── lib/
│   │   │   ├── commonjs.js
│   │   │   ├── esm.js
│   │   │   └── measure.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── api/
│   │   │   │   ├── commonjs.js
│   │   │   │   └── esm.js
│   │   │   └── index.jsx
│   │   └── scripts/
│   │       ├── benchmark-runner.mjs
│   │       └── prepare-bench.mjs
│   ├── nested-deps/
│   │   ├── .gitignore
│   │   ├── bench.mjs
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── pages/
│   │       └── index.jsx
│   ├── nested-deps-app-router/
│   │   ├── .gitignore
│   │   ├── app/
│   │   │   ├── client-components-only/
│   │   │   │   └── page.js
│   │   │   ├── layout.js
│   │   │   ├── server-and-client-components/
│   │   │   │   ├── client-component.js
│   │   │   │   └── page.js
│   │   │   └── server-components-only/
│   │   │       └── page.js
│   │   ├── bench.mjs
│   │   ├── next.config.js
│   │   └── package.json
│   ├── nested-deps-app-router-many-pages/
│   │   ├── .gitignore
│   │   ├── bench.mjs
│   │   ├── create-pages.mjs
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── template/
│   │       ├── client-components-only/
│   │       │   └── page.js
│   │       ├── layout.js
│   │       ├── root-layout.js
│   │       ├── server-and-client-components/
│   │       │   ├── client-component.js
│   │       │   └── page.js
│   │       └── server-components-only/
│   │           └── page.js
│   ├── next-minimal-server/
│   │   ├── bin/
│   │   │   └── minimal-server.js
│   │   └── package.json
│   ├── recursive-copy/
│   │   └── run.js
│   ├── recursive-delete/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── nodejs-rm.js
│   │   ├── output.txt
│   │   ├── package.json
│   │   ├── recursive-delete.js
│   │   ├── rimraf.js
│   │   └── run.sh
│   ├── render-pipeline/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── analyze-profiles.ts
│   │   └── benchmark.ts
│   ├── rendering/
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── stateless-big.js
│   │   │   └── stateless.js
│   │   └── readme.md
│   └── vercel/
│       ├── .gitignore
│       ├── README.md
│       ├── bench.js
│       ├── benchmark-app/
│       │   ├── .gitignore
│       │   ├── app/
│       │   │   ├── layout.js
│       │   │   └── rsc/
│       │   │       └── page.js
│       │   ├── next.config.js
│       │   ├── package.json
│       │   └── pages/
│       │       └── index.js
│       ├── chart.js
│       ├── gen-request.js
│       ├── generate-package-json.js
│       ├── package.json
│       └── project-utils.js
├── conductor.json
├── contributing/
│   ├── core/
│   │   ├── adding-error-links.md
│   │   ├── adding-features.md
│   │   ├── building.md
│   │   ├── developing-using-local-app.md
│   │   ├── developing.md
│   │   ├── testing.md
│   │   └── vscode-debugger.md
│   ├── docs/
│   │   └── adding-documentation.md
│   ├── repository/
│   │   ├── linting.md
│   │   ├── pull-request-descriptions.md
│   │   ├── release-channels-publishing.md
│   │   └── triaging.md
│   └── turbopack/
│       └── tracing.md
├── contributing.md
├── crates/
│   ├── next-api/
│   │   ├── Cargo.toml
│   │   ├── build.rs
│   │   └── src/
│   │       ├── analyze.rs
│   │       ├── app.rs
│   │       ├── asset_hashes_manifest.rs
│   │       ├── client_references.rs
│   │       ├── dynamic_imports.rs
│   │       ├── empty.rs
│   │       ├── entrypoints.rs
│   │       ├── font.rs
│   │       ├── instrumentation.rs
│   │       ├── lib.rs
│   │       ├── loadable_manifest.rs
│   │       ├── middleware.rs
│   │       ├── module_graph.rs
│   │       ├── next_server_nft.rs
│   │       ├── nft_json.rs
│   │       ├── operation.rs
│   │       ├── pages.rs
│   │       ├── paths.rs
│   │       ├── project.rs
│   │       ├── project_asset_hashes_manifest.rs
│   │       ├── route.rs
│   │       ├── routes_hashes_manifest.rs
│   │       ├── server_actions.rs
│   │       ├── sri_manifest.rs
│   │       └── versioned_content_map.rs
│   ├── next-build/
│   │   ├── Cargo.toml
│   │   └── src/
│   │       ├── build_options.rs
│   │       └── lib.rs
│   ├── next-build-test/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── bench.sh
│   │   ├── jsConfig.json
│   │   ├── nextConfig.json
│   │   └── src/
│   │       ├── lib.rs
│   │       └── main.rs
│   ├── next-code-frame/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── benches/
│   │   │   └── code_frame_bench.rs
│   │   └── src/
│   │       ├── bin/
│   │       │   └── code_frame.rs
│   │       ├── frame.rs
│   │       ├── highlight.rs
│   │       ├── lib.rs
│   │       └── tests.rs
│   ├── next-core/
│   │   ├── Cargo.toml
│   │   ├── js/
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   └── entry/
│   │   │   │       └── page-loader.ts
│   │   │   ├── tsconfig.json
│   │   │   └── turbo.json
│   │   └── src/
│   │       ├── app_page_loader_tree.rs
│   │       ├── app_structure.rs
│   │       ├── assets/
│   │       │   ├── layout.js
│   │       │   └── layout.tsx
│   │       ├── base_loader_tree.rs
│   │       ├── bootstrap.rs
│   │       ├── embed_js.rs
│   │       ├── emit.rs
│   │       ├── hmr_entry.rs
│   │       ├── instrumentation.rs
│   │       ├── lib.rs
│   │       ├── middleware.rs
│   │       ├── mode.rs
│   │       ├── next_app/
│   │       │   ├── app_client_references_chunks.rs
│   │       │   ├── app_client_shared_chunks.rs
│   │       │   ├── app_entry.rs
│   │       │   ├── app_page_entry.rs
│   │       │   ├── app_route_entry.rs
│   │       │   ├── metadata/
│   │       │   │   ├── image.rs
│   │       │   │   ├── mod.rs
│   │       │   │   └── route.rs
│   │       │   └── mod.rs
│   │       ├── next_build.rs
│   │       ├── next_client/
│   │       │   ├── context.rs
│   │       │   ├── mod.rs
│   │       │   ├── runtime_entry.rs
│   │       │   └── transforms.rs
│   │       ├── next_client_reference/
│   │       │   ├── css_client_reference/
│   │       │   │   ├── css_client_reference_module.rs
│   │       │   │   ├── css_client_reference_transition.rs
│   │       │   │   └── mod.rs
│   │       │   ├── ecmascript_client_reference/
│   │       │   │   ├── ecmascript_client_reference_module.rs
│   │       │   │   ├── ecmascript_client_reference_transition.rs
│   │       │   │   └── mod.rs
│   │       │   ├── mod.rs
│   │       │   └── visit_client_reference.rs
│   │       ├── next_config.rs
│   │       ├── next_dynamic/
│   │       │   ├── dynamic_module.rs
│   │       │   ├── dynamic_transition.rs
│   │       │   └── mod.rs
│   │       ├── next_edge/
│   │       │   ├── context.rs
│   │       │   ├── entry.rs
│   │       │   ├── mod.rs
│   │       │   ├── route_regex.rs
│   │       │   └── unsupported.rs
│   │       ├── next_font/
│   │       │   ├── font_fallback.rs
│   │       │   ├── google/
│   │       │   │   ├── font_fallback.rs
│   │       │   │   ├── mod.rs
│   │       │   │   ├── options.rs
│   │       │   │   ├── request.rs
│   │       │   │   ├── stylesheet.rs
│   │       │   │   └── util.rs
│   │       │   ├── issue.rs
│   │       │   ├── local/
│   │       │   │   ├── errors.rs
│   │       │   │   ├── font_fallback.rs
│   │       │   │   ├── mod.rs
│   │       │   │   ├── options.rs
│   │       │   │   ├── request.rs
│   │       │   │   ├── stylesheet.rs
│   │       │   │   └── util.rs
│   │       │   ├── mod.rs
│   │       │   ├── stylesheet.rs
│   │       │   └── util.rs
│   │       ├── next_image/
│   │       │   ├── mod.rs
│   │       │   ├── module.rs
│   │       │   └── source_asset.rs
│   │       ├── next_import_map.rs
│   │       ├── next_manifests/
│   │       │   ├── client_reference_manifest.rs
│   │       │   ├── encode_uri_component.rs
│   │       │   └── mod.rs
│   │       ├── next_pages/
│   │       │   ├── mod.rs
│   │       │   └── page_entry.rs
│   │       ├── next_root_params/
│   │       │   └── mod.rs
│   │       ├── next_server/
│   │       │   ├── context.rs
│   │       │   ├── mod.rs
│   │       │   ├── resolve.rs
│   │       │   └── transforms.rs
│   │       ├── next_server_component/
│   │       │   ├── mod.rs
│   │       │   ├── server_component_module.rs
│   │       │   └── server_component_transition.rs
│   │       ├── next_server_utility/
│   │       │   ├── mod.rs
│   │       │   ├── server_utility_module.rs
│   │       │   ├── server_utility_reference.rs
│   │       │   └── server_utility_transition.rs
│   │       ├── next_shared/
│   │       │   ├── mod.rs
│   │       │   ├── resolve.rs
│   │       │   ├── transforms/
│   │       │   │   ├── debug_fn_name.rs
│   │       │   │   ├── emotion.rs
│   │       │   │   ├── mod.rs
│   │       │   │   ├── modularize_imports.rs
│   │       │   │   ├── next_cjs_optimizer.rs
│   │       │   │   ├── next_debug_instant_stack.rs
│   │       │   │   ├── next_disallow_re_export_all_in_page.rs
│   │       │   │   ├── next_dynamic.rs
│   │       │   │   ├── next_edge_node_api_assert.rs
│   │       │   │   ├── next_font.rs
│   │       │   │   ├── next_lint.rs
│   │       │   │   ├── next_middleware_dynamic_assert.rs
│   │       │   │   ├── next_optimize_server_react.rs
│   │       │   │   ├── next_pure.rs
│   │       │   │   ├── next_react_server_components.rs
│   │       │   │   ├── next_strip_page_exports.rs
│   │       │   │   ├── next_track_dynamic_imports.rs
│   │       │   │   ├── react_remove_properties.rs
│   │       │   │   ├── relay.rs
│   │       │   │   ├── remove_console.rs
│   │       │   │   ├── server_actions.rs
│   │       │   │   ├── styled_components.rs
│   │       │   │   ├── styled_jsx.rs
│   │       │   │   └── swc_ecma_transform_plugins.rs
│   │       │   └── webpack_rules/
│   │       │       ├── babel.rs
│   │       │       ├── mod.rs
│   │       │       └── sass.rs
│   │       ├── next_telemetry.rs
│   │       ├── page_loader.rs
│   │       ├── pages_structure.rs
│   │       ├── raw_ecmascript_module.rs
│   │       ├── segment_config.rs
│   │       ├── tracing_presets.rs
│   │       ├── transform_options.rs
│   │       ├── url_node.rs
│   │       └── util.rs
│   ├── next-custom-transforms/
│   │   ├── Cargo.toml
│   │   ├── src/
│   │   │   ├── chain_transforms.rs
│   │   │   ├── lib.rs
│   │   │   ├── linter.rs
│   │   │   ├── react_compiler.rs
│   │   │   └── transforms/
│   │   │       ├── cjs_finder.rs
│   │   │       ├── cjs_optimizer.rs
│   │   │       ├── debug_fn_name.rs
│   │   │       ├── debug_instant_stack.rs
│   │   │       ├── disallow_re_export_all_in_page.rs
│   │   │       ├── dynamic.rs
│   │   │       ├── fonts/
│   │   │       │   ├── find_functions_outside_module_scope.rs
│   │   │       │   ├── font_functions_collector.rs
│   │   │       │   ├── font_imports_generator.rs
│   │   │       │   └── mod.rs
│   │   │       ├── import_analyzer.rs
│   │   │       ├── lint_codemod_comments.rs
│   │   │       ├── middleware_dynamic.rs
│   │   │       ├── mod.rs
│   │   │       ├── named_import_transform.rs
│   │   │       ├── next_ssg.rs
│   │   │       ├── optimize_barrel.rs
│   │   │       ├── optimize_server_react.rs
│   │   │       ├── page_config.rs
│   │   │       ├── pure.rs
│   │   │       ├── react_server_components.rs
│   │   │       ├── server_actions.rs
│   │   │       ├── shake_exports.rs
│   │   │       ├── strip_page_exports.rs
│   │   │       ├── track_dynamic_imports.rs
│   │   │       └── warn_for_edge_runtime.rs
│   │   └── tests/
│   │       ├── errors/
│   │       │   ├── next-dynamic/
│   │       │   │   ├── no-arguments/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── options-as-variable/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   └── too-many-arguments/
│   │       │   │       ├── input.js
│   │       │   │       ├── output.js
│   │       │   │       └── output.stderr
│   │       │   ├── next-font-loaders/
│   │       │   │   ├── export-let/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── import-all/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── not-const/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── not-ident/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── options-object/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── spread-arg/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   └── wrong-scope/
│   │       │   │       ├── input.js
│   │       │   │       ├── output.js
│   │       │   │       └── output.stderr
│   │       │   ├── next-ssg/
│   │       │   │   ├── server-side-after-static-paths/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── server-side-after-static-props/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── static-paths-after-server-side/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   └── static-props-after-server-side/
│   │       │   │       ├── input.js
│   │       │   │       ├── output.js
│   │       │   │       └── output.stderr
│   │       │   ├── re-export-all-in-page/
│   │       │   │   ├── re-export-all/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   └── re-export-default/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── react-server-components/
│   │       │   │   ├── client-graph/
│   │       │   │   │   ├── app-dir/
│   │       │   │   │   │   ├── cache-life/
│   │       │   │   │   │   │   ├── input.js
│   │       │   │   │   │   │   ├── output.js
│   │       │   │   │   │   │   └── output.stderr
│   │       │   │   │   │   ├── cache-tag/
│   │       │   │   │   │   │   ├── input.js
│   │       │   │   │   │   │   ├── output.js
│   │       │   │   │   │   │   └── output.stderr
│   │       │   │   │   │   ├── root-params/
│   │       │   │   │   │   │   ├── input.js
│   │       │   │   │   │   │   ├── output.js
│   │       │   │   │   │   │   └── output.stderr
│   │       │   │   │   │   └── server-only/
│   │       │   │   │   │       ├── input.js
│   │       │   │   │   │       ├── output.js
│   │       │   │   │   │       └── output.stderr
│   │       │   │   │   ├── cache-life/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output.js
│   │       │   │   │   │   └── output.stderr
│   │       │   │   │   ├── cache-tag/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output.js
│   │       │   │   │   │   └── output.stderr
│   │       │   │   │   ├── client-only/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── generate-metadata/
│   │       │   │   │   │   ├── output.js
│   │       │   │   │   │   ├── output.stderr
│   │       │   │   │   │   └── page.js
│   │       │   │   │   ├── get-server-side-props/
│   │       │   │   │   │   ├── output.js
│   │       │   │   │   │   ├── output.stderr
│   │       │   │   │   │   └── page.js
│   │       │   │   │   ├── get-static-props/
│   │       │   │   │   │   ├── output.js
│   │       │   │   │   │   ├── output.stderr
│   │       │   │   │   │   └── page.js
│   │       │   │   │   ├── metadata/
│   │       │   │   │   │   ├── output.js
│   │       │   │   │   │   ├── output.stderr
│   │       │   │   │   │   └── page.js
│   │       │   │   │   ├── multiple/
│   │       │   │   │   │   ├── output.js
│   │       │   │   │   │   ├── output.stderr
│   │       │   │   │   │   └── page.js
│   │       │   │   │   ├── root-params/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output.js
│   │       │   │   │   │   └── output.stderr
│   │       │   │   │   ├── server-only/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output.js
│   │       │   │   │   │   └── output.stderr
│   │       │   │   │   └── use-client/
│   │       │   │   │       ├── input.js
│   │       │   │   │       ├── output.js
│   │       │   │   │       └── output.stderr
│   │       │   │   └── server-graph/
│   │       │   │       ├── cache-components/
│   │       │   │       │   ├── instant-with-cache-components/
│   │       │   │       │   │   ├── output.js
│   │       │   │       │   │   └── page.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   ├── output.stderr
│   │       │   │       │   └── page.js
│   │       │   │       ├── client-only/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── dynamic-ssr-false/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── fake-client-entry/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── generate-metadata/
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── page.js
│   │       │   │       ├── get-server-side-props/
│   │       │   │       │   ├── output.js
│   │       │   │       │   ├── output.stderr
│   │       │   │       │   └── page.js
│   │       │   │       ├── get-static-props/
│   │       │   │       │   ├── output.js
│   │       │   │       │   ├── output.stderr
│   │       │   │       │   └── page.js
│   │       │   │       ├── image-response/
│   │       │   │       │   ├── output.js
│   │       │   │       │   ├── output.stderr
│   │       │   │       │   └── route.js
│   │       │   │       ├── instant-requires-cache-components/
│   │       │   │       │   ├── output.js
│   │       │   │       │   ├── output.stderr
│   │       │   │       │   └── page.js
│   │       │   │       ├── metadata/
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── page.js
│   │       │   │       ├── metadata-conflict/
│   │       │   │       │   ├── output.js
│   │       │   │       │   ├── output.stderr
│   │       │   │       │   └── page.js
│   │       │   │       ├── react-api/
│   │       │   │       │   ├── output.js
│   │       │   │       │   ├── output.stderr
│   │       │   │       │   └── page.js
│   │       │   │       ├── react-dom-api/
│   │       │   │       │   ├── output.js
│   │       │   │       │   ├── output.stderr
│   │       │   │       │   └── page.js
│   │       │   │       ├── react-dom-server-client/
│   │       │   │       │   ├── output.js
│   │       │   │       │   ├── output.stderr
│   │       │   │       │   └── page.js
│   │       │   │       ├── taint-without-config/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       └── use-cache/
│   │       │   │           ├── output.js
│   │       │   │           ├── output.stderr
│   │       │   │           └── page.js
│   │       │   ├── server-actions/
│   │       │   │   ├── client-graph/
│   │       │   │   │   ├── 1/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output.js
│   │       │   │   │   │   └── output.stderr
│   │       │   │   │   └── 2/
│   │       │   │   │       ├── input.js
│   │       │   │   │       ├── output.js
│   │       │   │   │       └── output.stderr
│   │       │   │   └── server-graph/
│   │       │   │       ├── 1/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 10/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 11/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 12/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 13/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 14/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 15/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 16/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 17/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 18/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 19/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 2/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 20/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 21/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 22/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 23/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 24/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 25/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 26/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 27/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 28/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 29/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 3/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 30/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 32/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 4/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 5/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 6/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 7/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       ├── 8/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output.js
│   │       │   │       │   └── output.stderr
│   │       │   │       └── 9/
│   │       │   │           ├── input.js
│   │       │   │           ├── output.js
│   │       │   │           └── output.stderr
│   │       │   ├── strip-page-exports/
│   │       │   │   ├── server-side-after-static-paths/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── server-side-after-static-props/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── static-paths-after-server-side/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   └── static-props-after-server-side/
│   │       │   │       ├── input.js
│   │       │   │       ├── output.js
│   │       │   │       └── output.stderr
│   │       │   └── use-cache-not-allowed/
│   │       │       ├── 1/
│   │       │       │   ├── input.js
│   │       │       │   ├── output.js
│   │       │       │   └── output.stderr
│   │       │       └── 2/
│   │       │           ├── input.js
│   │       │           ├── output.js
│   │       │           └── output.stderr
│   │       ├── errors.rs
│   │       ├── fixture/
│   │       │   ├── cjs-optimize/
│   │       │   │   ├── 1/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── 2/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── 3/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── not-processed/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── not-processed-2/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── not-processed-3/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   └── not-processed-4/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── debug-fn-name/
│   │       │   │   ├── anonymous-component/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── composite-hook/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── export-default-decl/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── export-default-expr/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── hoc/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── lone-memo/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── normal/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   └── outlined-functions/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── debug-instant-stack/
│   │       │   │   ├── with-aliased-export/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── with-indirect-export/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── with-instant/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── with-named-export/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── with-reexport/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   └── without-instant/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── edge-assert/
│   │       │   │   ├── guarded-nodejs/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── guarded-process/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── guarded-runtime-process/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── mixed-process-api/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── nodejs-import/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── nodejs-import-allowed/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── nodejs-import-prefix/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   ├── process-api/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output.js
│   │       │   │   │   └── output.stderr
│   │       │   │   └── process-env/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── named-import-transform/
│   │       │   │   ├── 1/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   └── 2/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── next-dynamic/
│   │       │   │   ├── duplicated-imports/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output-dev.js
│   │       │   │   │   ├── output-prod.js
│   │       │   │   │   ├── output-server.js
│   │       │   │   │   ├── output-turbo-dev.js
│   │       │   │   │   ├── output-turbo-prod.js
│   │       │   │   │   └── output-turbo-server.js
│   │       │   │   ├── issue-48098/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output-dev.js
│   │       │   │   │   ├── output-prod.js
│   │       │   │   │   ├── output-server.js
│   │       │   │   │   ├── output-turbo-dev.js
│   │       │   │   │   ├── output-turbo-prod.js
│   │       │   │   │   └── output-turbo-server.js
│   │       │   │   ├── member-with-same-name/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output-dev.js
│   │       │   │   │   ├── output-prod.js
│   │       │   │   │   ├── output-server.js
│   │       │   │   │   ├── output-turbo-dev.js
│   │       │   │   │   ├── output-turbo-prod.js
│   │       │   │   │   └── output-turbo-server.js
│   │       │   │   ├── no-options/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output-dev.js
│   │       │   │   │   ├── output-prod.js
│   │       │   │   │   ├── output-server.js
│   │       │   │   │   ├── output-turbo-dev.js
│   │       │   │   │   ├── output-turbo-prod.js
│   │       │   │   │   └── output-turbo-server.js
│   │       │   │   ├── template-literal/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output-dev.js
│   │       │   │   │   ├── output-prod.js
│   │       │   │   │   ├── output-server.js
│   │       │   │   │   ├── output-turbo-dev.js
│   │       │   │   │   ├── output-turbo-prod.js
│   │       │   │   │   └── output-turbo-server.js
│   │       │   │   ├── with-options/
│   │       │   │   │   ├── input.js
│   │       │   │   │   ├── output-dev.js
│   │       │   │   │   ├── output-prod.js
│   │       │   │   │   ├── output-server.js
│   │       │   │   │   ├── output-turbo-dev.js
│   │       │   │   │   ├── output-turbo-prod.js
│   │       │   │   │   └── output-turbo-server.js
│   │       │   │   └── wrapped-import/
│   │       │   │       ├── input.js
│   │       │   │       ├── output-dev.js
│   │       │   │       ├── output-prod.js
│   │       │   │       ├── output-server.js
│   │       │   │       ├── output-turbo-dev.js
│   │       │   │       ├── output-turbo-prod.js
│   │       │   │       └── output-turbo-server.js
│   │       │   ├── next-dynamic-app-dir/
│   │       │   │   └── no-ssr/
│   │       │   │       ├── input.js
│   │       │   │       ├── output-dev.js
│   │       │   │       ├── output-prod.js
│   │       │   │       ├── output-server-client-layer.js
│   │       │   │       ├── output-server.js
│   │       │   │       ├── output-turbo-dev.js
│   │       │   │       ├── output-turbo-prod.js
│   │       │   │       ├── output-turbo-server-client-layer.js
│   │       │   │       └── output-turbo-server.js
│   │       │   ├── next-font-loaders/
│   │       │   │   ├── default-import/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── export-const/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── exports/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── font-options/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── import-as/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── many-args/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── multiple-calls/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── multiple-font-downloaders/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── multiple-fonts/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── multiple-imports/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   └── no-args/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── next-font-with-directive/
│   │       │   │   ├── use-cache/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   └── use-server/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── optimize-barrel/
│   │       │   │   ├── normal/
│   │       │   │   │   ├── 1/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 2/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 3/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 4/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   └── 5/
│   │       │   │   │       ├── input.js
│   │       │   │   │       └── output.js
│   │       │   │   └── wildcard/
│   │       │   │       ├── 1/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       └── 2/
│   │       │   │           ├── input.js
│   │       │   │           └── output.js
│   │       │   ├── optimize_server_react/
│   │       │   │   ├── 1/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── 2/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── 3/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── 4/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── 5/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── 6/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   └── 7/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── pure/
│   │       │   │   ├── no-name-clash/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   └── simple/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── react-server-components/
│   │       │   │   ├── client-graph/
│   │       │   │   │   ├── actions/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── cache-life/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── cache-tag/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   └── client-entry/
│   │       │   │   │       ├── input.js
│   │       │   │   │       └── output.js
│   │       │   │   ├── pack-3186/
│   │       │   │   │   ├── input.ts
│   │       │   │   │   └── output.ts
│   │       │   │   └── server-graph/
│   │       │   │       ├── client-entry/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       └── client-entry-cjs/
│   │       │   │           ├── input.js
│   │       │   │           └── output.js
│   │       │   ├── relay/
│   │       │   │   ├── input.tsx
│   │       │   │   └── output.js
│   │       │   ├── server-actions/
│   │       │   │   ├── client-graph/
│   │       │   │   │   ├── 1/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 10/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 11/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 12/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 13/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 14/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 15/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 16/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 17/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 2/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 3/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 4/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 5/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 6/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 7/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 8/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 9/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   └── turbopack/
│   │       │   │   │       └── 1/
│   │       │   │   │           ├── input.js
│   │       │   │   │           └── output.js
│   │       │   │   ├── index.ts
│   │       │   │   ├── modules.d.ts
│   │       │   │   ├── next.d.ts
│   │       │   │   ├── server-graph/
│   │       │   │   │   ├── 1/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 10/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 11/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 12/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 13/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 14/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 15/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 16/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 17/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 18/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 19/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 2/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 20/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 21/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 22/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 23/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 24/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 25/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 26/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 27/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 28/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 29/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 3/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 30/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 31/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 32/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 33/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 34/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 35/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 36/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 37/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 38/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 39/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 4/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 40/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 41/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 42/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 43/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 44/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 45/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 46/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 47/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 48/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 49/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 5/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 50/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 51/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 52/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 53/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 54/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 55/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 56/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 57/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 58/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 59/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 6/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 60/
│   │       │   │   │   │   ├── input.ts
│   │       │   │   │   │   └── output.ts
│   │       │   │   │   ├── 61/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 62/
│   │       │   │   │   │   ├── input.ts
│   │       │   │   │   │   └── output.ts
│   │       │   │   │   ├── 63/
│   │       │   │   │   │   ├── data.ts
│   │       │   │   │   │   ├── input.tsx
│   │       │   │   │   │   └── output.tsx
│   │       │   │   │   ├── 64/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 65/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 66/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 67/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 68/
│   │       │   │   │   │   ├── input.tsx
│   │       │   │   │   │   └── output.tsx
│   │       │   │   │   ├── 69/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 7/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 70/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 71/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   ├── 8/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   └── 9/
│   │       │   │   │       ├── input.js
│   │       │   │   │       └── output.js
│   │       │   │   └── tsconfig.json
│   │       │   ├── shake-exports/
│   │       │   │   ├── keep-default/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   └── most-usecases/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── source-maps/
│   │       │   │   ├── client-graph/
│   │       │   │   │   ├── development/
│   │       │   │   │   │   └── server-actions/
│   │       │   │   │   │       └── 1/
│   │       │   │   │   │           ├── input.js
│   │       │   │   │   │           └── output.js
│   │       │   │   │   └── production/
│   │       │   │   │       └── server-actions/
│   │       │   │   │           └── 1/
│   │       │   │   │               ├── input.js
│   │       │   │   │               └── output.js
│   │       │   │   ├── server-graph/
│   │       │   │   │   └── use-cache/
│   │       │   │   │       └── 1/
│   │       │   │   │           ├── input.js
│   │       │   │   │           └── output.js
│   │       │   │   └── turbopack/
│   │       │   │       └── client-graph/
│   │       │   │           ├── development/
│   │       │   │           │   └── server-actions/
│   │       │   │           │       └── 1/
│   │       │   │           │           ├── input.js
│   │       │   │           │           └── output.js
│   │       │   │           └── production/
│   │       │   │               └── server-actions/
│   │       │   │                   └── 1/
│   │       │   │                       ├── input.js
│   │       │   │                       └── output.js
│   │       │   ├── ssg/
│   │       │   │   ├── getServerSideProps/
│   │       │   │   │   ├── destructuring-assignment-array/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   └── query-usage/
│   │       │   │   │       ├── input.js
│   │       │   │   │       └── output.js
│   │       │   │   └── getStaticProps/
│   │       │   │       ├── destructuring-assignment-array/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── destructuring-assignment-object/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── issue-30091/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── issue-31855/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── multi-declarator-export/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── no-props/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-not-crash-for-class-declarations/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-not-mix-up-bindings/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-not-remove-extra-named-export-function-declarations/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-not-remove-extra-named-export-variable-declarations/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-not-remove-import-used-in-render/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-combined-named-export-specifiers/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-extra-named-export-speicifers/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-named-export-function-declarations/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-named-export-function-declarations-async/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-named-export-variable-declarations/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-named-export-variable-declarations-async/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-re-exported-function-declarations/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-re-exported-function-declarations-dependents-variables-functions-imports/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-re-exported-variable-declarations/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-re-exported-variable-declarations-safe/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-remove-separate-named-export-specifiers/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-support-babel-style-memoized-function/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-support-class-exports/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-support-class-exports-2/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-support-export-named-as-default-with-a-class/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-support-export-named-as-default-with-other-specifiers/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       ├── should-support-full-re-export/
│   │       │   │       │   ├── input.js
│   │       │   │       │   └── output.js
│   │       │   │       └── should-support-named-export-as-default/
│   │       │   │           ├── input.js
│   │       │   │           └── output.js
│   │       │   ├── strip-page-exports/
│   │       │   │   ├── getInitialProps/
│   │       │   │   │   ├── class/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── function-anon-function/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── function-arrow/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── function-before/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── function-named-function/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   └── reused-elsewhere/
│   │       │   │   │       ├── input.js
│   │       │   │   │       ├── output-data.js
│   │       │   │   │       └── output-default.js
│   │       │   │   ├── getServerSideProps/
│   │       │   │   │   ├── destructuring-assignment-array/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   └── query-usage/
│   │       │   │   │       ├── input.js
│   │       │   │   │       ├── output-data.js
│   │       │   │   │       └── output-default.js
│   │       │   │   ├── getStaticProps/
│   │       │   │   │   ├── destructuring-assignment-array/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── destructuring-assignment-array-expr/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── destructuring-assignment-object/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── issue-30091/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── issue-31855/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── no-props/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── not-crash-for-class-declarations/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── not-mix-up-bindings/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── not-remove-extra-named-export-function-declarations/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── not-remove-extra-named-export-variable-declarations/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── not-remove-import-used-in-other-export/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── not-remove-import-used-in-render/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── not-remove-unused-function/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-combined-named-export-specifiers/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-extra-named-export-specifiers/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-named-export-function-declarations/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-named-export-function-declarations-async/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-named-export-variable-declarations/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-named-export-variable-declarations-async/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-re-exported-function-declarations/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-re-exported-function-declarations-dependents-variables-functions-imports/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-re-exported-variable-declarations/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-re-exported-variable-declarations-safe/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── remove-separate-named-export-specifiers/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── support-babel-style-memoized-function/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── support-class-exports/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── support-class-exports-2/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── support-export-named-as-default-with-a-class/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── support-export-named-as-default-with-other-specifiers/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   ├── output-default.js
│   │       │   │   │   │   └── support-export-named-as-default-with-a-class/
│   │       │   │   │   │       ├── input.js
│   │       │   │   │   │       ├── output-data.js
│   │       │   │   │   │       └── output-default.js
│   │       │   │   │   ├── support-export-named-as-default-with-other-specifiers-and-import/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── support-full-re-export/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   ├── support-multiple-export-var-decl/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   ├── output-data.js
│   │       │   │   │   │   └── output-default.js
│   │       │   │   │   └── support-named-export-as-default/
│   │       │   │   │       ├── input.js
│   │       │   │   │       ├── output-data.js
│   │       │   │   │       └── output-default.js
│   │       │   │   └── propTypes/
│   │       │   │       ├── complex/
│   │       │   │       │   ├── input.js
│   │       │   │       │   ├── output-data.js
│   │       │   │       │   └── output-default.js
│   │       │   │       └── simple/
│   │       │   │           ├── input.js
│   │       │   │           ├── output-data.js
│   │       │   │           └── output-default.js
│   │       │   └── track-dynamic-imports/
│   │       │       ├── 1/
│   │       │       │   ├── input.js
│   │       │       │   └── output.js
│   │       │       ├── 2/
│   │       │       │   ├── input.js
│   │       │       │   └── output.js
│   │       │       ├── 3/
│   │       │       │   ├── input.js
│   │       │       │   └── output.js
│   │       │       ├── 4/
│   │       │       │   ├── input.js
│   │       │       │   └── output.js
│   │       │       ├── 5/
│   │       │       │   ├── input.js
│   │       │       │   └── output.js
│   │       │       ├── 6/
│   │       │       │   ├── input.js
│   │       │       │   └── output.js
│   │       │       ├── index.ts
│   │       │       ├── modules.d.ts
│   │       │       ├── next.d.ts
│   │       │       └── tsconfig.json
│   │       ├── fixture.rs
│   │       ├── full/
│   │       │   └── example/
│   │       │       ├── input.js
│   │       │       └── output.js
│   │       ├── full.rs
│   │       ├── loader/
│   │       │   ├── auto-cjs/
│   │       │   │   ├── 1/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── 2/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── 3/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── issue-60197/
│   │       │   │   │   ├── input.js
│   │       │   │   │   └── output.js
│   │       │   │   ├── pack-2074/
│   │       │   │   │   ├── 1/
│   │       │   │   │   │   ├── input.js
│   │       │   │   │   │   └── output.js
│   │       │   │   │   └── 2/
│   │       │   │   │       ├── input.js
│   │       │   │   │       └── output.js
│   │       │   │   └── react-prod/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── css-hygiene-1/
│   │       │   │   ├── input.js
│   │       │   │   └── output.js
│   │       │   ├── example/
│   │       │   │   ├── input.js
│   │       │   │   └── output.js
│   │       │   ├── front/
│   │       │   │   └── attr-1/
│   │       │   │       ├── input.js
│   │       │   │       └── output.js
│   │       │   ├── issue-30389/
│   │       │   │   ├── input.js
│   │       │   │   └── output.js
│   │       │   ├── issue-30766/
│   │       │   │   ├── input.js
│   │       │   │   └── output.js
│   │       │   ├── issue-31627/
│   │       │   │   ├── input.js
│   │       │   │   └── output.js
│   │       │   ├── issue-32553/
│   │       │   │   ├── input.js
│   │       │   │   └── output.js
│   │       │   ├── issue-40231/
│   │       │   │   ├── input.js
│   │       │   │   └── output.js
│   │       │   └── styled-components/
│   │       │       └── 1/
│   │       │           ├── input.js
│   │       │           └── output.js
│   │       └── telemetry.rs
│   ├── next-error-code-swc-plugin/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   ├── build-and-move.sh
│   │   └── src/
│   │       └── lib.rs
│   ├── next-napi-bindings/
│   │   ├── Cargo.toml
│   │   ├── build.rs
│   │   ├── npm/
│   │   │   ├── .gitignore
│   │   │   ├── darwin-arm64/
│   │   │   │   ├── README.md
│   │   │   │   └── package.json
│   │   │   ├── darwin-x64/
│   │   │   │   ├── README.md
│   │   │   │   └── package.json
│   │   │   ├── linux-arm64-gnu/
│   │   │   │   ├── README.md
│   │   │   │   └── package.json
│   │   │   ├── linux-arm64-musl/
│   │   │   │   ├── README.md
│   │   │   │   └── package.json
│   │   │   ├── linux-x64-gnu/
│   │   │   │   ├── README.md
│   │   │   │   └── package.json
│   │   │   ├── linux-x64-musl/
│   │   │   │   ├── README.md
│   │   │   │   └── package.json
│   │   │   ├── win32-arm64-msvc/
│   │   │   │   ├── README.md
│   │   │   │   └── package.json
│   │   │   └── win32-x64-msvc/
│   │   │       ├── README.md
│   │   │       └── package.json
│   │   └── src/
│   │       ├── code_frame.rs
│   │       ├── css/
│   │       │   └── mod.rs
│   │       ├── lib.rs
│   │       ├── lockfile.rs
│   │       ├── mdx.rs
│   │       ├── minify.rs
│   │       ├── next_api/
│   │       │   ├── analyze.rs
│   │       │   ├── endpoint.rs
│   │       │   ├── mod.rs
│   │       │   ├── project.rs
│   │       │   ├── turbopack_ctx.rs
│   │       │   └── utils.rs
│   │       ├── parse.rs
│   │       ├── react_compiler.rs
│   │       ├── rspack.rs
│   │       ├── transform.rs
│   │       ├── turbo_trace_server.rs
│   │       ├── turbopack.rs
│   │       └── util.rs
│   ├── next-taskless/
│   │   ├── Cargo.toml
│   │   ├── README.md
│   │   └── src/
│   │       ├── constants.rs
│   │       ├── lib.rs
│   │       └── patterns.rs
│   └── wasm/
│       ├── Cargo.toml
│       ├── README.md
│       └── src/
│           ├── lib.rs
│           └── mdx.rs
├── docs/
│   ├── 01-app/
│   │   ├── 01-getting-started/
│   │   │   ├── 01-installation.mdx
│   │   │   ├── 02-project-structure.mdx
│   │   │   ├── 03-layouts-and-pages.mdx
│   │   │   ├── 04-linking-and-navigating.mdx
│   │   │   ├── 05-server-and-client-components.mdx
│   │   │   ├── 06-fetching-data.mdx
│   │   │   ├── 07-mutating-data.mdx
│   │   │   ├── 08-caching.mdx
│   │   │   ├── 09-revalidating.mdx
│   │   │   ├── 10-error-handling.mdx
│   │   │   ├── 11-css.mdx
│   │   │   ├── 12-images.mdx
│   │   │   ├── 13-fonts.mdx
│   │   │   ├── 14-metadata-and-og-images.mdx
│   │   │   ├── 15-route-handlers.mdx
│   │   │   ├── 16-proxy.mdx
│   │   │   ├── 17-deploying.mdx
│   │   │   ├── 18-upgrading.mdx
│   │   │   └── index.mdx
│   │   ├── 02-guides/
│   │   │   ├── ai-agents.mdx
│   │   │   ├── analytics.mdx
│   │   │   ├── authentication.mdx
│   │   │   ├── backend-for-frontend.mdx
│   │   │   ├── caching-without-cache-components.mdx
│   │   │   ├── cdn-caching.mdx
│   │   │   ├── ci-build-caching.mdx
│   │   │   ├── content-security-policy.mdx
│   │   │   ├── css-in-js.mdx
│   │   │   ├── custom-server.mdx
│   │   │   ├── data-security.mdx
│   │   │   ├── debugging.mdx
│   │   │   ├── deploying-to-platforms.mdx
│   │   │   ├── draft-mode.mdx
│   │   │   ├── environment-variables.mdx
│   │   │   ├── forms.mdx
│   │   │   ├── how-revalidation-works.mdx
│   │   │   ├── incremental-static-regeneration.mdx
│   │   │   ├── index.mdx
│   │   │   ├── instant-navigation.mdx
│   │   │   ├── instrumentation.mdx
│   │   │   ├── internationalization.mdx
│   │   │   ├── json-ld.mdx
│   │   │   ├── lazy-loading.mdx
│   │   │   ├── local-development.mdx
│   │   │   ├── mcp.mdx
│   │   │   ├── mdx.mdx
│   │   │   ├── memory-usage.mdx
│   │   │   ├── migrating/
│   │   │   │   ├── app-router-migration.mdx
│   │   │   │   ├── from-create-react-app.mdx
│   │   │   │   ├── from-vite.mdx
│   │   │   │   └── index.mdx
│   │   │   ├── migrating-to-cache-components.mdx
│   │   │   ├── multi-tenant.mdx
│   │   │   ├── multi-zones.mdx
│   │   │   ├── open-telemetry.mdx
│   │   │   ├── package-bundling.mdx
│   │   │   ├── ppr-platform-guide.mdx
│   │   │   ├── prefetching.mdx
│   │   │   ├── preserving-ui-state.mdx
│   │   │   ├── production-checklist.mdx
│   │   │   ├── progressive-web-apps.mdx
│   │   │   ├── public-static-pages.mdx
│   │   │   ├── redirecting.mdx
│   │   │   ├── rendering-philosophy.mdx
│   │   │   ├── sass.mdx
│   │   │   ├── scripts.mdx
│   │   │   ├── self-hosting.mdx
│   │   │   ├── single-page-applications.mdx
│   │   │   ├── static-exports.mdx
│   │   │   ├── streaming.mdx
│   │   │   ├── tailwind-v3-css.mdx
│   │   │   ├── testing/
│   │   │   │   ├── cypress.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   ├── jest.mdx
│   │   │   │   ├── playwright.mdx
│   │   │   │   └── vitest.mdx
│   │   │   ├── third-party-libraries.mdx
│   │   │   ├── upgrading/
│   │   │   │   ├── codemods.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   ├── version-14.mdx
│   │   │   │   ├── version-15.mdx
│   │   │   │   └── version-16.mdx
│   │   │   └── videos.mdx
│   │   ├── 03-api-reference/
│   │   │   ├── 01-directives/
│   │   │   │   ├── index.mdx
│   │   │   │   ├── use-cache-private.mdx
│   │   │   │   ├── use-cache-remote.mdx
│   │   │   │   ├── use-cache.mdx
│   │   │   │   ├── use-client.mdx
│   │   │   │   └── use-server.mdx
│   │   │   ├── 02-components/
│   │   │   │   ├── font.mdx
│   │   │   │   ├── form.mdx
│   │   │   │   ├── image.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   ├── link.mdx
│   │   │   │   └── script.mdx
│   │   │   ├── 03-file-conventions/
│   │   │   │   ├── 01-metadata/
│   │   │   │   │   ├── app-icons.mdx
│   │   │   │   │   ├── index.mdx
│   │   │   │   │   ├── manifest.mdx
│   │   │   │   │   ├── opengraph-image.mdx
│   │   │   │   │   ├── robots.mdx
│   │   │   │   │   └── sitemap.mdx
│   │   │   │   ├── 02-route-segment-config/
│   │   │   │   │   ├── dynamicParams.mdx
│   │   │   │   │   ├── index.mdx
│   │   │   │   │   ├── instant.mdx
│   │   │   │   │   ├── maxDuration.mdx
│   │   │   │   │   ├── preferredRegion.mdx
│   │   │   │   │   └── runtime.mdx
│   │   │   │   ├── default.mdx
│   │   │   │   ├── dynamic-routes.mdx
│   │   │   │   ├── error.mdx
│   │   │   │   ├── forbidden.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   ├── instrumentation-client.mdx
│   │   │   │   ├── instrumentation.mdx
│   │   │   │   ├── intercepting-routes.mdx
│   │   │   │   ├── layout.mdx
│   │   │   │   ├── loading.mdx
│   │   │   │   ├── mdx-components.mdx
│   │   │   │   ├── not-found.mdx
│   │   │   │   ├── page.mdx
│   │   │   │   ├── parallel-routes.mdx
│   │   │   │   ├── proxy.mdx
│   │   │   │   ├── public-folder.mdx
│   │   │   │   ├── route-groups.mdx
│   │   │   │   ├── route.mdx
│   │   │   │   ├── src-folder.mdx
│   │   │   │   ├── template.mdx
│   │   │   │   └── unauthorized.mdx
│   │   │   ├── 04-functions/
│   │   │   │   ├── after.mdx
│   │   │   │   ├── cacheLife.mdx
│   │   │   │   ├── cacheTag.mdx
│   │   │   │   ├── catchError.mdx
│   │   │   │   ├── connection.mdx
│   │   │   │   ├── cookies.mdx
│   │   │   │   ├── draft-mode.mdx
│   │   │   │   ├── fetch.mdx
│   │   │   │   ├── forbidden.mdx
│   │   │   │   ├── generate-image-metadata.mdx
│   │   │   │   ├── generate-metadata.mdx
│   │   │   │   ├── generate-sitemaps.mdx
│   │   │   │   ├── generate-static-params.mdx
│   │   │   │   ├── generate-viewport.mdx
│   │   │   │   ├── headers.mdx
│   │   │   │   ├── image-response.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   ├── next-request.mdx
│   │   │   │   ├── next-response.mdx
│   │   │   │   ├── not-found.mdx
│   │   │   │   ├── permanentRedirect.mdx
│   │   │   │   ├── redirect.mdx
│   │   │   │   ├── refresh.mdx
│   │   │   │   ├── revalidatePath.mdx
│   │   │   │   ├── revalidateTag.mdx
│   │   │   │   ├── unauthorized.mdx
│   │   │   │   ├── unstable_cache.mdx
│   │   │   │   ├── unstable_noStore.mdx
│   │   │   │   ├── unstable_rethrow.mdx
│   │   │   │   ├── updateTag.mdx
│   │   │   │   ├── use-link-status.mdx
│   │   │   │   ├── use-params.mdx
│   │   │   │   ├── use-pathname.mdx
│   │   │   │   ├── use-report-web-vitals.mdx
│   │   │   │   ├── use-router.mdx
│   │   │   │   ├── use-search-params.mdx
│   │   │   │   ├── use-selected-layout-segment.mdx
│   │   │   │   ├── use-selected-layout-segments.mdx
│   │   │   │   └── userAgent.mdx
│   │   │   ├── 05-config/
│   │   │   │   ├── 01-next-config-js/
│   │   │   │   │   ├── adapterPath.mdx
│   │   │   │   │   ├── allowedDevOrigins.mdx
│   │   │   │   │   ├── appDir.mdx
│   │   │   │   │   ├── assetPrefix.mdx
│   │   │   │   │   ├── authInterrupts.mdx
│   │   │   │   │   ├── basePath.mdx
│   │   │   │   │   ├── cacheComponents.mdx
│   │   │   │   │   ├── cacheHandlers.mdx
│   │   │   │   │   ├── cacheLife.mdx
│   │   │   │   │   ├── compress.mdx
│   │   │   │   │   ├── crossOrigin.mdx
│   │   │   │   │   ├── cssChunking.mdx
│   │   │   │   │   ├── deploymentId.mdx
│   │   │   │   │   ├── devIndicators.mdx
│   │   │   │   │   ├── distDir.mdx
│   │   │   │   │   ├── env.mdx
│   │   │   │   │   ├── expireTime.mdx
│   │   │   │   │   ├── exportPathMap.mdx
│   │   │   │   │   ├── generateBuildId.mdx
│   │   │   │   │   ├── generateEtags.mdx
│   │   │   │   │   ├── headers.mdx
│   │   │   │   │   ├── htmlLimitedBots.mdx
│   │   │   │   │   ├── httpAgentOptions.mdx
│   │   │   │   │   ├── images.mdx
│   │   │   │   │   ├── incrementalCacheHandlerPath.mdx
│   │   │   │   │   ├── index.mdx
│   │   │   │   │   ├── inlineCss.mdx
│   │   │   │   │   ├── logging.mdx
│   │   │   │   │   ├── mdxRs.mdx
│   │   │   │   │   ├── onDemandEntries.mdx
│   │   │   │   │   ├── optimizePackageImports.mdx
│   │   │   │   │   ├── output.mdx
│   │   │   │   │   ├── pageExtensions.mdx
│   │   │   │   │   ├── poweredByHeader.mdx
│   │   │   │   │   ├── productionBrowserSourceMaps.mdx
│   │   │   │   │   ├── proxyClientMaxBodySize.mdx
│   │   │   │   │   ├── reactCompiler.mdx
│   │   │   │   │   ├── reactMaxHeadersLength.mdx
│   │   │   │   │   ├── reactStrictMode.mdx
│   │   │   │   │   ├── redirects.mdx
│   │   │   │   │   ├── rewrites.mdx
│   │   │   │   │   ├── sassOptions.mdx
│   │   │   │   │   ├── serverActions.mdx
│   │   │   │   │   ├── serverComponentsHmrCache.mdx
│   │   │   │   │   ├── serverExternalPackages.mdx
│   │   │   │   │   ├── staleTimes.mdx
│   │   │   │   │   ├── staticGeneration.mdx
│   │   │   │   │   ├── taint.mdx
│   │   │   │   │   ├── trailingSlash.mdx
│   │   │   │   │   ├── transpilePackages.mdx
│   │   │   │   │   ├── turbopack.mdx
│   │   │   │   │   ├── turbopackFileSystemCache.mdx
│   │   │   │   │   ├── turbopackIgnoreIssue.mdx
│   │   │   │   │   ├── typedRoutes.mdx
│   │   │   │   │   ├── typescript.mdx
│   │   │   │   │   ├── urlImports.mdx
│   │   │   │   │   ├── useLightningcss.mdx
│   │   │   │   │   ├── viewTransition.mdx
│   │   │   │   │   ├── webVitalsAttribution.mdx
│   │   │   │   │   └── webpack.mdx
│   │   │   │   ├── 02-typescript.mdx
│   │   │   │   ├── 03-eslint.mdx
│   │   │   │   └── index.mdx
│   │   │   ├── 06-cli/
│   │   │   │   ├── create-next-app.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   └── next.mdx
│   │   │   ├── 07-adapters/
│   │   │   │   ├── 01-configuration.mdx
│   │   │   │   ├── 02-creating-an-adapter.mdx
│   │   │   │   ├── 03-api-reference.mdx
│   │   │   │   ├── 04-testing-adapters.mdx
│   │   │   │   ├── 05-routing-with-next-routing.mdx
│   │   │   │   ├── 06-implementing-ppr-in-an-adapter.mdx
│   │   │   │   ├── 07-runtime-integration.mdx
│   │   │   │   ├── 08-invoking-entrypoints.mdx
│   │   │   │   ├── 09-output-types.mdx
│   │   │   │   ├── 10-routing-information.mdx
│   │   │   │   ├── 11-use-cases.mdx
│   │   │   │   └── index.mdx
│   │   │   ├── 07-edge.mdx
│   │   │   ├── 08-turbopack.mdx
│   │   │   └── index.mdx
│   │   ├── 04-glossary.mdx
│   │   └── index.mdx
│   ├── 02-pages/
│   │   ├── 01-getting-started/
│   │   │   ├── 01-installation.mdx
│   │   │   ├── 02-project-structure.mdx
│   │   │   ├── 04-images.mdx
│   │   │   ├── 05-fonts.mdx
│   │   │   ├── 06-css.mdx
│   │   │   ├── 11-deploying.mdx
│   │   │   └── index.mdx
│   │   ├── 02-guides/
│   │   │   ├── analytics.mdx
│   │   │   ├── authentication.mdx
│   │   │   ├── babel.mdx
│   │   │   ├── ci-build-caching.mdx
│   │   │   ├── content-security-policy.mdx
│   │   │   ├── css-in-js.mdx
│   │   │   ├── custom-server.mdx
│   │   │   ├── debugging.mdx
│   │   │   ├── draft-mode.mdx
│   │   │   ├── environment-variables.mdx
│   │   │   ├── forms.mdx
│   │   │   ├── incremental-static-regeneration.mdx
│   │   │   ├── index.mdx
│   │   │   ├── instrumentation.mdx
│   │   │   ├── internationalization.mdx
│   │   │   ├── lazy-loading.mdx
│   │   │   ├── mdx.mdx
│   │   │   ├── migrating/
│   │   │   │   ├── app-router-migration.mdx
│   │   │   │   ├── from-create-react-app.mdx
│   │   │   │   ├── from-vite.mdx
│   │   │   │   └── index.mdx
│   │   │   ├── multi-zones.mdx
│   │   │   ├── open-telemetry.mdx
│   │   │   ├── package-bundling.mdx
│   │   │   ├── post-css.mdx
│   │   │   ├── preview-mode.mdx
│   │   │   ├── production-checklist.mdx
│   │   │   ├── redirecting.mdx
│   │   │   ├── sass.mdx
│   │   │   ├── scripts.mdx
│   │   │   ├── self-hosting.mdx
│   │   │   ├── static-exports.mdx
│   │   │   ├── tailwind-v3-css.mdx
│   │   │   ├── testing/
│   │   │   │   ├── cypress.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   ├── jest.mdx
│   │   │   │   ├── playwright.mdx
│   │   │   │   └── vitest.mdx
│   │   │   ├── third-party-libraries.mdx
│   │   │   └── upgrading/
│   │   │       ├── codemods.mdx
│   │   │       ├── index.mdx
│   │   │       ├── version-10.mdx
│   │   │       ├── version-11.mdx
│   │   │       ├── version-12.mdx
│   │   │       ├── version-13.mdx
│   │   │       ├── version-14.mdx
│   │   │       └── version-9.mdx
│   │   ├── 03-building-your-application/
│   │   │   ├── 01-routing/
│   │   │   │   ├── 01-pages-and-layouts.mdx
│   │   │   │   ├── 02-dynamic-routes.mdx
│   │   │   │   ├── 03-linking-and-navigating.mdx
│   │   │   │   ├── 05-custom-app.mdx
│   │   │   │   ├── 06-custom-document.mdx
│   │   │   │   ├── 07-api-routes.mdx
│   │   │   │   ├── 08-custom-error.mdx
│   │   │   │   └── index.mdx
│   │   │   ├── 02-rendering/
│   │   │   │   ├── 01-server-side-rendering.mdx
│   │   │   │   ├── 02-static-site-generation.mdx
│   │   │   │   ├── 04-automatic-static-optimization.mdx
│   │   │   │   ├── 05-client-side-rendering.mdx
│   │   │   │   └── index.mdx
│   │   │   ├── 03-data-fetching/
│   │   │   │   ├── 01-get-static-props.mdx
│   │   │   │   ├── 02-get-static-paths.mdx
│   │   │   │   ├── 03-forms-and-mutations.mdx
│   │   │   │   ├── 03-get-server-side-props.mdx
│   │   │   │   ├── 05-client-side.mdx
│   │   │   │   └── index.mdx
│   │   │   ├── 06-configuring/
│   │   │   │   ├── 12-error-handling.mdx
│   │   │   │   └── index.mdx
│   │   │   └── index.mdx
│   │   ├── 04-api-reference/
│   │   │   ├── 01-components/
│   │   │   │   ├── font.mdx
│   │   │   │   ├── form.mdx
│   │   │   │   ├── head.mdx
│   │   │   │   ├── image-legacy.mdx
│   │   │   │   ├── image.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   ├── link.mdx
│   │   │   │   └── script.mdx
│   │   │   ├── 02-file-conventions/
│   │   │   │   ├── index.mdx
│   │   │   │   ├── instrumentation.mdx
│   │   │   │   ├── proxy.mdx
│   │   │   │   ├── public-folder.mdx
│   │   │   │   └── src-folder.mdx
│   │   │   ├── 03-functions/
│   │   │   │   ├── get-initial-props.mdx
│   │   │   │   ├── get-server-side-props.mdx
│   │   │   │   ├── get-static-paths.mdx
│   │   │   │   ├── get-static-props.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   ├── next-request.mdx
│   │   │   │   ├── next-response.mdx
│   │   │   │   ├── use-params.mdx
│   │   │   │   ├── use-report-web-vitals.mdx
│   │   │   │   ├── use-router.mdx
│   │   │   │   ├── use-search-params.mdx
│   │   │   │   └── userAgent.mdx
│   │   │   ├── 04-config/
│   │   │   │   ├── 01-next-config-js/
│   │   │   │   │   ├── adapterPath.mdx
│   │   │   │   │   ├── allowedDevOrigins.mdx
│   │   │   │   │   ├── assetPrefix.mdx
│   │   │   │   │   ├── basePath.mdx
│   │   │   │   │   ├── bundlePagesRouterDependencies.mdx
│   │   │   │   │   ├── compress.mdx
│   │   │   │   │   ├── crossOrigin.mdx
│   │   │   │   │   ├── deploymentId.mdx
│   │   │   │   │   ├── devIndicators.mdx
│   │   │   │   │   ├── distDir.mdx
│   │   │   │   │   ├── env.mdx
│   │   │   │   │   ├── exportPathMap.mdx
│   │   │   │   │   ├── generateBuildId.mdx
│   │   │   │   │   ├── generateEtags.mdx
│   │   │   │   │   ├── headers.mdx
│   │   │   │   │   ├── httpAgentOptions.mdx
│   │   │   │   │   ├── images.mdx
│   │   │   │   │   ├── index.mdx
│   │   │   │   │   ├── logging.mdx
│   │   │   │   │   ├── onDemandEntries.mdx
│   │   │   │   │   ├── optimizePackageImports.mdx
│   │   │   │   │   ├── output.mdx
│   │   │   │   │   ├── pageExtensions.mdx
│   │   │   │   │   ├── poweredByHeader.mdx
│   │   │   │   │   ├── productionBrowserSourceMaps.mdx
│   │   │   │   │   ├── proxyClientMaxBodySize.mdx
│   │   │   │   │   ├── reactStrictMode.mdx
│   │   │   │   │   ├── redirects.mdx
│   │   │   │   │   ├── rewrites.mdx
│   │   │   │   │   ├── serverExternalPackages.mdx
│   │   │   │   │   ├── trailingSlash.mdx
│   │   │   │   │   ├── transpilePackages.mdx
│   │   │   │   │   ├── turbopack.mdx
│   │   │   │   │   ├── typescript.mdx
│   │   │   │   │   ├── urlImports.mdx
│   │   │   │   │   ├── useLightningcss.mdx
│   │   │   │   │   ├── webVitalsAttribution.mdx
│   │   │   │   │   └── webpack.mdx
│   │   │   │   ├── 01-typescript.mdx
│   │   │   │   ├── 02-eslint.mdx
│   │   │   │   └── index.mdx
│   │   │   ├── 05-cli/
│   │   │   │   ├── create-next-app.mdx
│   │   │   │   ├── index.mdx
│   │   │   │   └── next.mdx
│   │   │   ├── 06-adapters/
│   │   │   │   ├── 01-configuration.mdx
│   │   │   │   ├── 02-creating-an-adapter.mdx
│   │   │   │   ├── 03-api-reference.mdx
│   │   │   │   ├── 04-testing-adapters.mdx
│   │   │   │   ├── 05-routing-with-next-routing.mdx
│   │   │   │   ├── 06-implementing-ppr-in-an-adapter.mdx
│   │   │   │   ├── 07-runtime-integration.mdx
│   │   │   │   ├── 08-invoking-entrypoints.mdx
│   │   │   │   ├── 09-output-types.mdx
│   │   │   │   ├── 10-routing-information.mdx
│   │   │   │   ├── 11-use-cases.mdx
│   │   │   │   └── index.mdx
│   │   │   ├── 06-edge.mdx
│   │   │   ├── 08-turbopack.mdx
│   │   │   └── index.mdx
│   │   └── index.mdx
│   ├── 03-architecture/
│   │   ├── accessibility.mdx
│   │   ├── fast-refresh.mdx
│   │   ├── index.mdx
│   │   ├── nextjs-compiler.mdx
│   │   └── supported-browsers.mdx
│   ├── 04-community/
│   │   ├── 01-contribution-guide.mdx
│   │   ├── 02-rspack.mdx
│   │   └── index.mdx
│   └── index.mdx
├── errors/
│   ├── 404-get-initial-props.mdx
│   ├── api-routes-response-size-limit.mdx
│   ├── api-routes-static-export.mdx
│   ├── app-container-deprecated.mdx
│   ├── app-dir-dynamic-href.mdx
│   ├── app-static-to-dynamic-error.mdx
│   ├── babel-font-loader-conflict.mdx
│   ├── blocking-route.mdx
│   ├── build-dir-not-writeable.mdx
│   ├── built-in-css-disabled.mdx
│   ├── built-in-next-font.mdx
│   ├── cache-bypass-in-dev.mdx
│   ├── can-not-output-to-public.mdx
│   ├── can-not-output-to-static.mdx
│   ├── cant-override-next-props.mdx
│   ├── circular-structure.mdx
│   ├── class-component-in-server-component.mdx
│   ├── client-side-exception-occurred.mdx
│   ├── config-resolve-alias.mdx
│   ├── conflicting-public-file-page.mdx
│   ├── conflicting-ssg-paths.mdx
│   ├── context-in-server-component.mdx
│   ├── css-global.mdx
│   ├── css-modules-npm.mdx
│   ├── css-npm.mdx
│   ├── custom-document-image-import.mdx
│   ├── custom-error-no-custom-404.mdx
│   ├── deleting-query-params-in-proxy.mdx
│   ├── deopted-into-client-rendering.mdx
│   ├── deploymentid-invalid-characters.mdx
│   ├── deploymentid-not-a-string.mdx
│   ├── deprecated-analyticsid.mdx
│   ├── deprecated-target-config.mdx
│   ├── doc-crossorigin-deprecated.mdx
│   ├── duplicate-sass.mdx
│   ├── dynamic-server-error.mdx
│   ├── edge-dynamic-code-evaluation.mdx
│   ├── empty-configuration.mdx
│   ├── empty-generate-static-params.mdx
│   ├── empty-object-getInitialProps.mdx
│   ├── env-key-not-allowed.mdx
│   ├── env-loading-disabled.mdx
│   ├── experimental-app-dir-config.mdx
│   ├── experimental-jest-transformer.mdx
│   ├── export-all-in-page.mdx
│   ├── export-image-api.mdx
│   ├── export-no-custom-routes.mdx
│   ├── export-no-i18n.mdx
│   ├── export-path-mismatch.mdx
│   ├── failed-loading-swc.mdx
│   ├── failed-to-fetch-devpagesmanifest.mdx
│   ├── failed-to-find-server-action.mdx
│   ├── fast-refresh-reload.mdx
│   ├── future-webpack5-moved-to-webpack5.mdx
│   ├── generatebuildid-not-a-string.mdx
│   ├── get-initial-props-as-an-instance-method.mdx
│   ├── get-initial-props-export.mdx
│   ├── google-font-display.mdx
│   ├── google-font-preconnect.mdx
│   ├── google-fonts-missing-subsets.mdx
│   ├── gsp-redirect-during-prerender.mdx
│   ├── gssp-component-member.mdx
│   ├── gssp-export.mdx
│   ├── gssp-mixed-not-found-redirect.mdx
│   ├── gssp-no-mutating-res.mdx
│   ├── head-build-id.mdx
│   ├── href-interpolation-failed.mdx
│   ├── ignored-compiler-options.mdx
│   ├── import-esm-externals.mdx
│   ├── import-next.mdx
│   ├── improper-devtool.mdx
│   ├── incompatible-href-as.mdx
│   ├── inline-script-id.mdx
│   ├── install-sass.mdx
│   ├── install-sharp.mdx
│   ├── invalid-api-status-body.mdx
│   ├── invalid-assetprefix.mdx
│   ├── invalid-dynamic-options-type.mdx
│   ├── invalid-dynamic-suspense.mdx
│   ├── invalid-external-rewrite.mdx
│   ├── invalid-getserversideprops-value.mdx
│   ├── invalid-getstaticpaths-value.mdx
│   ├── invalid-getstaticprops-value.mdx
│   ├── invalid-href-passed.mdx
│   ├── invalid-i18n-config.mdx
│   ├── invalid-images-config.mdx
│   ├── invalid-instant-configuration.mdx
│   ├── invalid-multi-match.mdx
│   ├── invalid-new-link-with-extra-anchor.mdx
│   ├── invalid-next-config.mdx
│   ├── invalid-page-config.mdx
│   ├── invalid-project-dir-casing.mdx
│   ├── invalid-react-version.mdx
│   ├── invalid-redirect-gssp.mdx
│   ├── invalid-relative-url-external-as.mdx
│   ├── invalid-resolve-alias.mdx
│   ├── invalid-route-source.mdx
│   ├── invalid-script.mdx
│   ├── invalid-segment-export.mdx
│   ├── invalid-server-options.mdx
│   ├── invalid-styled-jsx-children.mdx
│   ├── invalid-use-server-value.mdx
│   ├── invalid-webpack-5-version.mdx
│   ├── large-page-data.mdx
│   ├── link-multiple-children.mdx
│   ├── link-no-children.mdx
│   ├── link-passhref.mdx
│   ├── max-custom-routes-reached.mdx
│   ├── middleware-to-proxy.mdx
│   ├── middleware-upgrade-guide.mdx
│   ├── minification-disabled.mdx
│   ├── missing-data-scroll-behavior.mdx
│   ├── missing-document-component.mdx
│   ├── missing-env-value.mdx
│   ├── missing-root-layout-tags.mdx
│   ├── missing-suspense-with-csr-bailout.mdx
│   ├── module-not-found.mdx
│   ├── multi-tabs.mdx
│   ├── nested-proxy.mdx
│   ├── nested-reserved-page.mdx
│   ├── nested-styled-jsx-tags.mdx
│   ├── nested-use-cache-no-explicit-cachelife.mdx
│   ├── next-config-error.mdx
│   ├── next-dynamic-api-wrong-context.mdx
│   ├── next-dynamic-modules.mdx
│   ├── next-export-no-build-id.mdx
│   ├── next-export-serverless.mdx
│   ├── next-head-count-missing.mdx
│   ├── next-image-missing-loader-width.mdx
│   ├── next-image-missing-loader.mdx
│   ├── next-image-unconfigured-host.mdx
│   ├── next-image-unconfigured-localpatterns.mdx
│   ├── next-image-unconfigured-qualities.mdx
│   ├── next-image-upgrade-to-13.mdx
│   ├── next-prerender-crypto-client.mdx
│   ├── next-prerender-crypto.mdx
│   ├── next-prerender-current-time-client.mdx
│   ├── next-prerender-current-time.mdx
│   ├── next-prerender-dynamic-metadata.mdx
│   ├── next-prerender-dynamic-viewport.mdx
│   ├── next-prerender-random-client.mdx
│   ├── next-prerender-random.mdx
│   ├── next-prerender-runtime-crypto.mdx
│   ├── next-prerender-runtime-current-time.mdx
│   ├── next-prerender-runtime-random.mdx
│   ├── next-prerender-sync-headers.mdx
│   ├── next-prerender-sync-params.mdx
│   ├── next-prerender-sync-request.mdx
│   ├── next-request-in-use-cache.mdx
│   ├── next-response-next-in-app-route-handler.mdx
│   ├── next-router-not-mounted.mdx
│   ├── next-script-for-ga.mdx
│   ├── next-start-serverless.mdx
│   ├── no-assign-module-variable.mdx
│   ├── no-async-client-component.mdx
│   ├── no-before-interactive-script-outside-document.mdx
│   ├── no-cache.mdx
│   ├── no-css-tags.mdx
│   ├── no-document-import-in-page.mdx
│   ├── no-document-title.mdx
│   ├── no-document-viewport-meta.mdx
│   ├── no-duplicate-head.mdx
│   ├── no-head-element.mdx
│   ├── no-head-import-in-document.mdx
│   ├── no-html-link-for-pages.mdx
│   ├── no-img-element.mdx
│   ├── no-on-app-updated-hook.mdx
│   ├── no-page-custom-font.mdx
│   ├── no-router-instance.mdx
│   ├── no-script-component-in-head.mdx
│   ├── no-script-in-document.mdx
│   ├── no-script-tags-in-head-component.mdx
│   ├── no-server-import-in-page.mdx
│   ├── no-styled-jsx-in-document.mdx
│   ├── no-stylesheets-in-head-component.mdx
│   ├── no-sync-scripts.mdx
│   ├── no-title-in-document-head.mdx
│   ├── no-unwanted-polyfillio.mdx
│   ├── node-module-in-edge-runtime.mdx
│   ├── non-dynamic-getstaticpaths-usage.mdx
│   ├── non-standard-node-env.mdx
│   ├── nonce-contained-invalid-characters.mdx
│   ├── opening-an-issue.mdx
│   ├── opt-out-auto-static-optimization.mdx
│   ├── opt-out-automatic-prerendering.mdx
│   ├── page-data-collection-timeout.mdx
│   ├── page-without-valid-component.mdx
│   ├── parallel-build-without-worker.mdx
│   ├── placeholder-blur-data-url.mdx
│   ├── popstate-state-empty.mdx
│   ├── postcss-function.mdx
│   ├── postcss-ignored-plugin.mdx
│   ├── postcss-shape.mdx
│   ├── ppr-caught-error.mdx
│   ├── ppr-preview.mdx
│   ├── prefetch-true-deprecated.mdx
│   ├── prerender-error.mdx
│   ├── production-start-no-build-id.mdx
│   ├── promise-in-next-config.mdx
│   ├── proxy-dynamic-wasm-compilation.mdx
│   ├── proxy-new-signature.mdx
│   ├── proxy-parse-user-agent.mdx
│   ├── proxy-relative-urls.mdx
│   ├── proxy-request-page.mdx
│   ├── proxy-user-agent.mdx
│   ├── public-next-folder-conflict.mdx
│   ├── react-client-hook-in-server-component.mdx
│   ├── react-hydration-error.mdx
│   ├── react-version.mdx
│   ├── render-no-starting-slash.mdx
│   ├── reserved-page-prop.mdx
│   ├── reserved-port.mdx
│   ├── revalidate-tag-single-arg.mdx
│   ├── rewrite-auto-export-fallback.mdx
│   ├── routes-must-be-array.mdx
│   ├── sharp-missing-in-production.mdx
│   ├── sharp-version-avif.mdx
│   ├── slot-missing-default.mdx
│   ├── ssg-fallback-true-export.mdx
│   ├── static-dir-deprecated.mdx
│   ├── static-page-generation-timeout.mdx
│   ├── swc-disabled.mdx
│   ├── swc-minify-enabled.mdx
│   ├── sync-dynamic-apis.mdx
│   ├── template.txt
│   ├── threw-undefined.mdx
│   ├── undefined-webpack-config.mdx
│   ├── url-deprecated.mdx
│   ├── version-staleness.mdx
│   ├── webpack-build-worker-opt-out.mdx
│   └── webpack5.mdx
├── eslint.cli.config.mjs
├── eslint.config.mjs
├── evals/
│   ├── README.md
│   ├── evals/
│   │   ├── .gitignore
│   │   ├── agent-000-app-router-migration-simple/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   ├── pages/
│   │   │   │   ├── _app.tsx
│   │   │   │   ├── _document.tsx
│   │   │   │   ├── about.tsx
│   │   │   │   └── index.tsx
│   │   │   └── tsconfig.json
│   │   ├── agent-021-avoid-fetch-in-effect/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── ProductList.tsx
│   │   │   │   ├── UserProfile.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-022-prefer-server-actions/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── ContactForm.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-023-avoid-getserversideprops/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── UserDashboard.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-024-avoid-redundant-usestate/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── UserStats.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-025-prefer-next-link/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── Navigation.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-026-no-serial-await/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── Dashboard.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-027-prefer-next-image/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── ProductGallery.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-028-prefer-next-font/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── BlogHeader.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-029-use-cache-directive/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── lib/
│   │   │   │   └── db.js
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-030-app-router-migration-hard/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── components/
│   │   │   │   └── AppProvider.js
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   ├── pages/
│   │   │   │   ├── 404.js
│   │   │   │   ├── _app.js
│   │   │   │   ├── _document.js
│   │   │   │   ├── _error.js
│   │   │   │   ├── api/
│   │   │   │   │   └── posts/
│   │   │   │   │       ├── [id].js
│   │   │   │   │       └── index.js
│   │   │   │   ├── blog/
│   │   │   │   │   ├── [id].js
│   │   │   │   │   └── index.js
│   │   │   │   └── index.js
│   │   │   ├── styles/
│   │   │   │   └── globals.css
│   │   │   └── tsconfig.json
│   │   ├── agent-031-proxy-middleware/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-032-use-cache-directive/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── lib/
│   │   │   │   └── api.ts
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-033-forbidden-auth/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── lib/
│   │   │   │   │   └── auth.ts
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-034-async-cookies/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-035-connection-dynamic/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-036-after-response/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-037-updatetag-cache/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-038-refresh-settings/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   └── page.tsx
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-039-indirect-proxy/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-040-unstable-instant/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── page.tsx
│   │   │   │   └── product/
│   │   │   │       └── page.tsx
│   │   │   ├── lib/
│   │   │   │   └── data.ts
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   ├── agent-041-optimize-ppr-shell/
│   │   │   ├── EVAL.ts
│   │   │   ├── PROMPT.md
│   │   │   ├── app/
│   │   │   │   ├── CardStats.tsx
│   │   │   │   ├── LatestInvoices.tsx
│   │   │   │   ├── RevenueChart.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── loading.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── next.config.ts
│   │   │   ├── package.json
│   │   │   └── tsconfig.json
│   │   └── agent-042-enable-ppr/
│   │       ├── EVAL.ts
│   │       ├── PROMPT.md
│   │       ├── app/
│   │       │   ├── ProductList.tsx
│   │       │   ├── Recommendations.tsx
│   │       │   ├── layout.tsx
│   │       │   └── page.tsx
│   │       ├── next.config.ts
│   │       ├── package.json
│   │       └── tsconfig.json
│   ├── lib/
│   │   └── setup.ts
│   └── tsconfig.json
├── examples/
│   ├── .prettierrc.json
│   ├── active-class-name/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── [slug]/
│   │   │   │   └── page.tsx
│   │   │   ├── about/
│   │   │   │   └── page.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── news/
│   │   │   │   └── page.tsx
│   │   │   └── page.tsx
│   │   ├── components/
│   │   │   ├── ActiveLink.tsx
│   │   │   └── Nav.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── api-routes-apollo-server/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── [username].tsx
│   │   │   ├── api/
│   │   │   │   └── graphql.ts
│   │   │   └── index.tsx
│   │   ├── shared/
│   │   │   └── query-graphql/
│   │   │       └── index.ts
│   │   └── tsconfig.json
│   ├── api-routes-apollo-server-and-client/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── apollo/
│   │   │   ├── client.tsx
│   │   │   ├── resolvers.ts
│   │   │   ├── schema.ts
│   │   │   └── type-defs.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── about.tsx
│   │   │   ├── api/
│   │   │   │   └── graphql.ts
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── api-routes-apollo-server-and-client-auth/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── apollo/
│   │   │   ├── client.tsx
│   │   │   ├── resolvers.ts
│   │   │   ├── schema.ts
│   │   │   └── type-defs.ts
│   │   ├── components/
│   │   │   └── field.tsx
│   │   ├── lib/
│   │   │   ├── auth-cookies.ts
│   │   │   ├── auth.ts
│   │   │   ├── form.ts
│   │   │   └── user.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── about.tsx
│   │   │   ├── api/
│   │   │   │   └── graphql.ts
│   │   │   ├── index.tsx
│   │   │   ├── signin.tsx
│   │   │   ├── signout.tsx
│   │   │   └── signup.tsx
│   │   └── tsconfig.json
│   ├── api-routes-cors/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── api/
│   │   │   │   └── cors.ts
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── api-routes-graphql/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── api/
│   │   │   │   └── graphql.ts
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── api-routes-middleware/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── api/
│   │   │   │   └── cookies.ts
│   │   │   └── index.tsx
│   │   ├── tsconfig.json
│   │   └── utils/
│   │       └── cookies.ts
│   ├── api-routes-rest/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── interfaces/
│   │   │   └── index.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── api/
│   │   │   │   ├── user/
│   │   │   │   │   └── [id].ts
│   │   │   │   └── users.ts
│   │   │   ├── index.tsx
│   │   │   └── user/
│   │   │       └── [id].tsx
│   │   └── tsconfig.json
│   ├── auth/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── api/
│   │   │   │   └── auth/
│   │   │   │       └── [...nextauth]/
│   │   │   │           └── route.ts
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── auth.ts
│   │   ├── middleware.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── auth-with-stytch/
│   │   ├── .gitignore
│   │   └── readme.md
│   ├── auth0/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── additional.d.ts
│   │   ├── components/
│   │   │   ├── header.tsx
│   │   │   └── layout.tsx
│   │   ├── interfaces/
│   │   │   └── index.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── about.tsx
│   │   │   ├── advanced/
│   │   │   │   ├── api-profile.tsx
│   │   │   │   └── ssr-profile.tsx
│   │   │   ├── api/
│   │   │   │   ├── auth/
│   │   │   │   │   └── [...auth0].tsx
│   │   │   │   └── protected-api.ts
│   │   │   ├── index.tsx
│   │   │   └── profile.tsx
│   │   └── tsconfig.json
│   ├── basic-css/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── styles.module.css
│   │   └── tsconfig.json
│   ├── blog/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── _document.tsx
│   │   │   ├── index.mdx
│   │   │   ├── photos.mdx
│   │   │   ├── posts/
│   │   │   │   ├── index.md
│   │   │   │   ├── markdown.md
│   │   │   │   └── pages.md
│   │   │   └── tags/
│   │   │       └── [tag].mdx
│   │   ├── scripts/
│   │   │   └── gen-rss.js
│   │   ├── styles/
│   │   │   └── main.css
│   │   ├── theme.config.js
│   │   └── tsconfig.json
│   ├── blog-starter/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── _posts/
│   │   │   ├── dynamic-routing.md
│   │   │   ├── hello-world.md
│   │   │   └── preview.md
│   │   ├── package.json
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── src/
│   │   │   ├── app/
│   │   │   │   ├── _components/
│   │   │   │   │   ├── alert.tsx
│   │   │   │   │   ├── avatar.tsx
│   │   │   │   │   ├── container.tsx
│   │   │   │   │   ├── cover-image.tsx
│   │   │   │   │   ├── date-formatter.tsx
│   │   │   │   │   ├── footer.tsx
│   │   │   │   │   ├── header.tsx
│   │   │   │   │   ├── hero-post.tsx
│   │   │   │   │   ├── intro.tsx
│   │   │   │   │   ├── markdown-styles.module.css
│   │   │   │   │   ├── more-stories.tsx
│   │   │   │   │   ├── post-body.tsx
│   │   │   │   │   ├── post-header.tsx
│   │   │   │   │   ├── post-preview.tsx
│   │   │   │   │   ├── post-title.tsx
│   │   │   │   │   ├── section-separator.tsx
│   │   │   │   │   ├── switch.module.css
│   │   │   │   │   └── theme-switcher.tsx
│   │   │   │   ├── globals.css
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── page.tsx
│   │   │   │   └── posts/
│   │   │   │       └── [slug]/
│   │   │   │           └── page.tsx
│   │   │   ├── interfaces/
│   │   │   │   ├── author.ts
│   │   │   │   └── post.ts
│   │   │   └── lib/
│   │   │       ├── api.ts
│   │   │       ├── constants.ts
│   │   │       └── markdownToHtml.ts
│   │   ├── tailwind.config.ts
│   │   └── tsconfig.json
│   ├── blog-with-comment/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── _posts/
│   │   │   ├── long-expected-party.md
│   │   │   ├── passing-of-grey-company.md
│   │   │   ├── prancing-pony.md
│   │   │   └── riders-of-rohan.md
│   │   ├── components/
│   │   │   ├── comment/
│   │   │   │   ├── form.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   └── list.tsx
│   │   │   ├── container.tsx
│   │   │   └── header.tsx
│   │   ├── environment.d.ts
│   │   ├── hooks/
│   │   │   └── useComment.ts
│   │   ├── interfaces/
│   │   │   └── index.ts
│   │   ├── lib/
│   │   │   ├── clearUrl.ts
│   │   │   ├── createComment.ts
│   │   │   ├── dateRelative.ts
│   │   │   ├── deleteComment.ts
│   │   │   ├── fetchComment.ts
│   │   │   ├── getPost.ts
│   │   │   ├── getUser.ts
│   │   │   ├── markdownToHtml.ts
│   │   │   └── redis.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── _document.tsx
│   │   │   ├── api/
│   │   │   │   └── comment.ts
│   │   │   ├── index.tsx
│   │   │   └── posts/
│   │   │       ├── [slug].tsx
│   │   │       └── index.tsx
│   │   ├── postcss.config.js
│   │   ├── tailwind.config.js
│   │   └── tsconfig.json
│   ├── cache-handler-redis/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── [timezone]/
│   │   │   │   └── page.tsx
│   │   │   ├── cache-state-watcher.tsx
│   │   │   ├── global.css
│   │   │   ├── layout.tsx
│   │   │   ├── revalidate-from.tsx
│   │   │   └── server-actions.ts
│   │   ├── cache-handler.js
│   │   ├── compose.yaml
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── cloudflare-turnstile/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app.css
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── api/
│   │   │   │   └── handler.ts
│   │   │   ├── explicit.tsx
│   │   │   └── implicit.tsx
│   │   └── tsconfig.json
│   ├── cms-agilitycms/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.tsx
│   │   │   ├── avatar.tsx
│   │   │   ├── container.tsx
│   │   │   ├── cover-image.tsx
│   │   │   ├── date.tsx
│   │   │   ├── footer.tsx
│   │   │   ├── header.tsx
│   │   │   ├── hero-post.tsx
│   │   │   ├── intro.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.tsx
│   │   │   ├── more-stories.tsx
│   │   │   ├── post-body.tsx
│   │   │   ├── post-details.tsx
│   │   │   ├── post-header.tsx
│   │   │   ├── post-preview.tsx
│   │   │   ├── post-title.tsx
│   │   │   └── section-separator.tsx
│   │   ├── environment.d.ts
│   │   ├── lib/
│   │   │   ├── api.ts
│   │   │   ├── components/
│   │   │   │   ├── content-zone.tsx
│   │   │   │   ├── image.tsx
│   │   │   │   ├── one-column-template.tsx
│   │   │   │   ├── page-template.tsx
│   │   │   │   └── rich-text-area.tsx
│   │   │   ├── constants.ts
│   │   │   ├── dependencies.ts
│   │   │   ├── normalize.ts
│   │   │   ├── preview.ts
│   │   │   ├── use-preview-redirect.ts
│   │   │   └── utils.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── [...slug].tsx
│   │   │   ├── _app.tsx
│   │   │   ├── _document.tsx
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.ts
│   │   │   │   └── preview.ts
│   │   │   └── index.ts
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   ├── tailwind.config.js
│   │   └── tsconfig.json
│   ├── cms-builder-io/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── builder/
│   │   │   ├── author/
│   │   │   │   ├── joe-public.json
│   │   │   │   ├── johnny-doe.json
│   │   │   │   └── schema.model.json
│   │   │   ├── post/
│   │   │   │   ├── first-one.json
│   │   │   │   ├── schema.model.json
│   │   │   │   └── second.json
│   │   │   └── settings.json
│   │   ├── components/
│   │   │   ├── alert.js
│   │   │   ├── avatar.js
│   │   │   ├── builder-image.js
│   │   │   ├── container.js
│   │   │   ├── cover-image.js
│   │   │   ├── date.js
│   │   │   ├── footer.js
│   │   │   ├── header.js
│   │   │   ├── hero-post.js
│   │   │   ├── intro.js
│   │   │   ├── layout.js
│   │   │   ├── meta.js
│   │   │   ├── more-stories.js
│   │   │   ├── post-body.js
│   │   │   ├── post-header.js
│   │   │   ├── post-preview.js
│   │   │   ├── post-title.js
│   │   │   └── section-separator.js
│   │   ├── jsconfig.json
│   │   ├── lib/
│   │   │   ├── api.js
│   │   │   └── constants.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.js
│   │   │   │   └── preview.js
│   │   │   ├── index.js
│   │   │   └── posts/
│   │   │       └── [slug].js
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   └── tailwind.config.js
│   ├── cms-buttercms/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app.json
│   │   ├── components/
│   │   │   ├── author-card.js
│   │   │   ├── blog/
│   │   │   │   ├── blog.js
│   │   │   │   ├── categories-widget.js
│   │   │   │   ├── post-preview-condensed.js
│   │   │   │   ├── post-preview.js
│   │   │   │   ├── posts-list.js
│   │   │   │   └── search-widget.js
│   │   │   ├── footer-section.js
│   │   │   ├── header-section.js
│   │   │   ├── human-date.js
│   │   │   ├── landing-page-sections/
│   │   │   │   ├── feature.js
│   │   │   │   ├── features.js
│   │   │   │   ├── hero.js
│   │   │   │   ├── landing-page-section.js
│   │   │   │   ├── missing-section.js
│   │   │   │   ├── testimonial.js
│   │   │   │   ├── testimonials.js
│   │   │   │   └── two-column-with-image.js
│   │   │   ├── main-menu/
│   │   │   │   ├── main-menu-link.js
│   │   │   │   └── main-menu.js
│   │   │   ├── missing-token-section.js
│   │   │   ├── preloader.js
│   │   │   └── scroll-to-top-button.js
│   │   ├── css/
│   │   │   ├── lineicons.css
│   │   │   └── main.css
│   │   ├── jsconfig.json
│   │   ├── lib/
│   │   │   └── api.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── pages/
│   │       ├── _app.js
│   │       ├── _document.js
│   │       ├── blog/
│   │       │   ├── [slug].js
│   │       │   ├── category/
│   │       │   │   └── [slug].js
│   │       │   ├── search.js
│   │       │   └── tag/
│   │       │       └── [slug].js
│   │       ├── blog.js
│   │       ├── landing-page/
│   │       │   └── [slug].js
│   │       └── missing-token.js
│   ├── cms-contentful/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── api/
│   │   │   │   ├── disable-draft/
│   │   │   │   │   └── route.ts
│   │   │   │   ├── draft/
│   │   │   │   │   └── route.ts
│   │   │   │   └── revalidate/
│   │   │   │       └── route.ts
│   │   │   ├── avatar.tsx
│   │   │   ├── cover-image.tsx
│   │   │   ├── date.tsx
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   ├── more-stories.tsx
│   │   │   ├── page.tsx
│   │   │   └── posts/
│   │   │       └── [slug]/
│   │   │           └── page.tsx
│   │   ├── lib/
│   │   │   ├── api.ts
│   │   │   ├── constants.ts
│   │   │   ├── contentful-image.tsx
│   │   │   ├── export.json
│   │   │   ├── markdown.tsx
│   │   │   └── setup.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── postcss.config.js
│   │   ├── tailwind.config.ts
│   │   └── tsconfig.json
│   ├── cms-cosmic/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.tsx
│   │   │   ├── avatar.tsx
│   │   │   ├── container.tsx
│   │   │   ├── cover-image.tsx
│   │   │   ├── date.tsx
│   │   │   ├── footer.tsx
│   │   │   ├── header.tsx
│   │   │   ├── hero-post.tsx
│   │   │   ├── intro.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.tsx
│   │   │   ├── more-stories.tsx
│   │   │   ├── post-body.tsx
│   │   │   ├── post-header.tsx
│   │   │   ├── post-preview.tsx
│   │   │   ├── post-title.tsx
│   │   │   └── section-separator.tsx
│   │   ├── interfaces/
│   │   │   └── index.ts
│   │   ├── jsconfig.json
│   │   ├── lib/
│   │   │   ├── api.tsx
│   │   │   ├── constants.ts
│   │   │   └── markdownToHtml.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── _document.tsx
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.ts
│   │   │   │   └── preview.ts
│   │   │   ├── index.tsx
│   │   │   └── posts/
│   │   │       └── [slug].tsx
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   ├── tailwind.config.js
│   │   └── tsconfig.json
│   ├── cms-datocms/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.js
│   │   │   ├── avatar.js
│   │   │   ├── container.js
│   │   │   ├── cover-image.js
│   │   │   ├── date.js
│   │   │   ├── footer.js
│   │   │   ├── header.js
│   │   │   ├── hero-post.js
│   │   │   ├── intro.js
│   │   │   ├── layout.js
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.js
│   │   │   ├── more-stories.js
│   │   │   ├── post-body.js
│   │   │   ├── post-header.js
│   │   │   ├── post-preview.js
│   │   │   ├── post-title.js
│   │   │   └── section-separator.js
│   │   ├── jsconfig.json
│   │   ├── lib/
│   │   │   ├── api.js
│   │   │   ├── constants.js
│   │   │   └── markdownToHtml.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── _document.js
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.js
│   │   │   │   └── preview.js
│   │   │   ├── index.js
│   │   │   └── posts/
│   │   │       └── [slug].js
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   └── tailwind.config.js
│   ├── cms-dotcms/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.tsx
│   │   │   ├── avatar.tsx
│   │   │   ├── blocks.tsx
│   │   │   ├── container.tsx
│   │   │   ├── content-blocks.tsx
│   │   │   ├── cover-image.tsx
│   │   │   ├── date.tsx
│   │   │   ├── dotcms-image.tsx
│   │   │   ├── footer.tsx
│   │   │   ├── header.tsx
│   │   │   ├── hero-post.tsx
│   │   │   ├── intro.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── meta.tsx
│   │   │   ├── more-stories.tsx
│   │   │   ├── post-body.tsx
│   │   │   ├── post-header.tsx
│   │   │   ├── post-preview.tsx
│   │   │   ├── post-title.tsx
│   │   │   └── section-separator.tsx
│   │   ├── lib/
│   │   │   ├── api.ts
│   │   │   └── constants.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.tsx
│   │   │   │   └── preview.tsx
│   │   │   ├── index.tsx
│   │   │   └── posts/
│   │   │       └── [slug].tsx
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   ├── tailwind.config.js
│   │   └── tsconfig.json
│   ├── cms-drupal/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.js
│   │   │   ├── avatar.js
│   │   │   ├── categories.js
│   │   │   ├── container.js
│   │   │   ├── cover-image.js
│   │   │   ├── date.js
│   │   │   ├── footer.js
│   │   │   ├── header.js
│   │   │   ├── hero-post.js
│   │   │   ├── intro.js
│   │   │   ├── layout.js
│   │   │   ├── meta.js
│   │   │   ├── more-stories.js
│   │   │   ├── post-body.js
│   │   │   ├── post-body.module.css
│   │   │   ├── post-header.js
│   │   │   ├── post-preview.js
│   │   │   ├── post-title.js
│   │   │   ├── section-separator.js
│   │   │   └── tags.js
│   │   ├── lib/
│   │   │   ├── api.js
│   │   │   └── constants.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── [...slug].js
│   │   │   ├── _app.js
│   │   │   ├── _document.js
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.js
│   │   │   │   └── preview.js
│   │   │   └── index.js
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   └── tailwind.config.js
│   ├── cms-enterspeed/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.tsx
│   │   │   ├── avatar.tsx
│   │   │   ├── categories.tsx
│   │   │   ├── container.tsx
│   │   │   ├── cover-image.tsx
│   │   │   ├── date.tsx
│   │   │   ├── footer.tsx
│   │   │   ├── header.tsx
│   │   │   ├── hero-post.tsx
│   │   │   ├── intro.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── meta.tsx
│   │   │   ├── more-stories.tsx
│   │   │   ├── post-body.module.css
│   │   │   ├── post-body.tsx
│   │   │   ├── post-header.tsx
│   │   │   ├── post-preview.tsx
│   │   │   ├── post-title.tsx
│   │   │   ├── section-separator.tsx
│   │   │   └── tags.tsx
│   │   ├── lib/
│   │   │   ├── api.ts
│   │   │   └── constants.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.js
│   │   │   │   └── preview.js
│   │   │   ├── index.tsx
│   │   │   └── posts/
│   │   │       └── [slug].tsx
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   ├── tailwind.config.js
│   │   ├── tsconfig.json
│   │   └── types/
│   │       ├── authorType.ts
│   │       └── postType.ts
│   ├── cms-ghost/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.js
│   │   │   ├── avatar.js
│   │   │   ├── container.js
│   │   │   ├── cover-image.js
│   │   │   ├── date.js
│   │   │   ├── footer.js
│   │   │   ├── header.js
│   │   │   ├── hero-post.js
│   │   │   ├── intro.js
│   │   │   ├── layout.js
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.js
│   │   │   ├── more-stories.js
│   │   │   ├── post-body.js
│   │   │   ├── post-header.js
│   │   │   ├── post-preview.js
│   │   │   ├── post-title.js
│   │   │   └── section-separator.js
│   │   ├── jsconfig.json
│   │   ├── lib/
│   │   │   ├── api.js
│   │   │   ├── constants.js
│   │   │   └── defaults.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── _document.js
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.js
│   │   │   │   └── preview.js
│   │   │   ├── index.js
│   │   │   └── posts/
│   │   │       └── [slug].js
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   └── tailwind.config.js
│   ├── cms-graphcms/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.js
│   │   │   ├── avatar.js
│   │   │   ├── container.js
│   │   │   ├── cover-image.js
│   │   │   ├── date.js
│   │   │   ├── footer.js
│   │   │   ├── header.js
│   │   │   ├── hero-post.js
│   │   │   ├── intro.js
│   │   │   ├── layout.js
│   │   │   ├── meta.js
│   │   │   ├── more-stories.js
│   │   │   ├── post-body.js
│   │   │   ├── post-header.js
│   │   │   ├── post-preview.js
│   │   │   ├── post-styles.module.css
│   │   │   ├── post-title.js
│   │   │   └── section-separator.js
│   │   ├── jsconfig.json
│   │   ├── lib/
│   │   │   ├── constants.js
│   │   │   └── graphcms.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── _document.js
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.js
│   │   │   │   └── preview.js
│   │   │   ├── index.js
│   │   │   └── posts/
│   │   │       └── [slug].js
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   └── tailwind.config.js
│   ├── cms-keystonejs-embedded/
│   │   ├── .gitignore
│   │   └── README.md
│   ├── cms-kontent-ai/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.tsx
│   │   │   ├── avatar.tsx
│   │   │   ├── container.tsx
│   │   │   ├── cover-image.tsx
│   │   │   ├── date-formatter.tsx
│   │   │   ├── footer.tsx
│   │   │   ├── header.tsx
│   │   │   ├── hero-post.tsx
│   │   │   ├── image.tsx
│   │   │   ├── intro.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.tsx
│   │   │   ├── more-stories.tsx
│   │   │   ├── post-body.tsx
│   │   │   ├── post-header.tsx
│   │   │   ├── post-preview.tsx
│   │   │   ├── post-title.tsx
│   │   │   └── section-separator.tsx
│   │   ├── lib/
│   │   │   ├── api.ts
│   │   │   ├── constants.ts
│   │   │   └── markdownToHtml.ts
│   │   ├── models/
│   │   │   ├── content-type-snippets/
│   │   │   │   └── index.ts
│   │   │   ├── content-types/
│   │   │   │   ├── author.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── post.ts
│   │   │   ├── index.ts
│   │   │   ├── project/
│   │   │   │   ├── assetFolders.ts
│   │   │   │   ├── collections.ts
│   │   │   │   ├── contentTypeSnippets.ts
│   │   │   │   ├── contentTypes.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── languages.ts
│   │   │   │   ├── roles.ts
│   │   │   │   ├── taxonomies.ts
│   │   │   │   ├── webhooks.ts
│   │   │   │   └── workflows.ts
│   │   │   └── taxonomies/
│   │   │       └── index.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── _document.tsx
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.ts
│   │   │   │   └── preview.ts
│   │   │   ├── index.tsx
│   │   │   └── posts/
│   │   │       └── [slug].tsx
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   ├── tailwind.config.js
│   │   ├── tsconfig.json
│   │   └── viewmodels/
│   │       ├── author.ts
│   │       └── post.ts
│   ├── cms-makeswift/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── lib/
│   │   │   └── makeswift/
│   │   │       └── register-components.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── [[...path]].tsx
│   │   │   ├── _document.ts
│   │   │   └── api/
│   │   │       └── makeswift/
│   │   │           └── [...makeswift].ts
│   │   └── tsconfig.json
│   ├── cms-payload/
│   │   ├── .gitignore
│   │   ├── .npmrc
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── (payload)/
│   │   │   │   └── admin/
│   │   │   │       ├── [...slug]/
│   │   │   │       │   └── page.tsx
│   │   │   │       └── page.tsx
│   │   │   ├── (site)/
│   │   │   │   ├── [slug]/
│   │   │   │   │   └── page.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   └── layout.tsx
│   │   ├── components/
│   │   │   ├── AdminBar/
│   │   │   │   ├── index.module.scss
│   │   │   │   └── index.tsx
│   │   │   ├── BackgroundColor/
│   │   │   │   ├── index.module.scss
│   │   │   │   └── index.tsx
│   │   │   ├── Blocks/
│   │   │   │   ├── CallToAction/
│   │   │   │   │   ├── index.module.scss
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── Content/
│   │   │   │   │   ├── index.module.scss
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── MediaBlock/
│   │   │   │   │   ├── index.module.scss
│   │   │   │   │   └── index.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── Button/
│   │   │   │   ├── index.module.scss
│   │   │   │   └── index.tsx
│   │   │   ├── Gutter/
│   │   │   │   ├── index.module.scss
│   │   │   │   └── index.tsx
│   │   │   ├── Header/
│   │   │   │   ├── MobileMenuModal.tsx
│   │   │   │   ├── index.module.scss
│   │   │   │   ├── index.tsx
│   │   │   │   └── mobileMenuModal.module.scss
│   │   │   ├── Hero/
│   │   │   │   ├── HighImpact/
│   │   │   │   │   ├── index.module.scss
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── LowImpact/
│   │   │   │   │   ├── index.module.scss
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── MediumImpact/
│   │   │   │   │   ├── index.module.scss
│   │   │   │   │   └── index.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── Label/
│   │   │   │   ├── index.module.scss
│   │   │   │   └── index.tsx
│   │   │   ├── LargeBody/
│   │   │   │   ├── index.module.scss
│   │   │   │   └── index.tsx
│   │   │   ├── Layout/
│   │   │   │   └── index.tsx
│   │   │   ├── Link/
│   │   │   │   └── index.tsx
│   │   │   ├── Logo/
│   │   │   │   └── index.tsx
│   │   │   ├── Media/
│   │   │   │   ├── Image/
│   │   │   │   │   ├── index.module.scss
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── Video/
│   │   │   │   │   ├── index.module.scss
│   │   │   │   │   └── index.tsx
│   │   │   │   └── index.tsx
│   │   │   ├── RichText/
│   │   │   │   ├── index.module.scss
│   │   │   │   ├── index.tsx
│   │   │   │   └── serialize.tsx
│   │   │   ├── VerticalPadding/
│   │   │   │   ├── index.module.scss
│   │   │   │   └── index.tsx
│   │   │   └── icons/
│   │   │       ├── Chevron/
│   │   │       │   └── index.tsx
│   │   │       └── Menu/
│   │   │           └── index.tsx
│   │   ├── css/
│   │   │   ├── app.scss
│   │   │   ├── colors.scss
│   │   │   ├── common.scss
│   │   │   ├── queries.scss
│   │   │   └── type.scss
│   │   ├── cssVariables.js
│   │   ├── next-env.scss.d.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   └── api/
│   │   │       ├── [collection]/
│   │   │       │   ├── [id].ts
│   │   │       │   ├── access/
│   │   │       │   │   └── [id].ts
│   │   │       │   ├── first-register.ts
│   │   │       │   ├── forgot-password.ts
│   │   │       │   ├── index.ts
│   │   │       │   ├── init.ts
│   │   │       │   ├── login.ts
│   │   │       │   ├── logout.ts
│   │   │       │   ├── me.ts
│   │   │       │   └── refresh.ts
│   │   │       ├── access.ts
│   │   │       ├── globals/
│   │   │       │   └── [global]/
│   │   │       │       ├── access.ts
│   │   │       │       └── index.ts
│   │   │       ├── graphql-playground.ts
│   │   │       ├── graphql.ts
│   │   │       └── regenerate.ts
│   │   ├── payload/
│   │   │   ├── access/
│   │   │   │   └── publishedOnly.ts
│   │   │   ├── blocks/
│   │   │   │   ├── CallToAction/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Content/
│   │   │   │   │   └── index.ts
│   │   │   │   └── Media/
│   │   │   │       └── index.ts
│   │   │   ├── collections/
│   │   │   │   ├── Media.ts
│   │   │   │   ├── Pages.ts
│   │   │   │   └── Users.ts
│   │   │   ├── fields/
│   │   │   │   ├── backgroundColor.ts
│   │   │   │   ├── hero.ts
│   │   │   │   ├── link.ts
│   │   │   │   ├── linkGroup.ts
│   │   │   │   ├── richText/
│   │   │   │   │   ├── elements.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── label/
│   │   │   │   │   │   ├── Button/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── Element/
│   │   │   │   │   │   │   ├── index.scss
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── Icon/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── plugin.ts
│   │   │   │   │   ├── largeBody/
│   │   │   │   │   │   ├── Button/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── Element/
│   │   │   │   │   │   │   ├── index.scss
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── Icon/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── plugin.ts
│   │   │   │   │   └── leaves.ts
│   │   │   │   └── slug.ts
│   │   │   ├── globals/
│   │   │   │   └── MainMenu.ts
│   │   │   ├── payload.config.ts
│   │   │   ├── payloadClient.ts
│   │   │   └── utilities/
│   │   │       ├── deepMerge.ts
│   │   │       ├── formatSlug.ts
│   │   │       └── regenerateStaticPage.ts
│   │   ├── payload-types.ts
│   │   ├── tsconfig.json
│   │   └── utilities/
│   │       ├── timestamp.ts
│   │       └── toKebabCase.ts
│   ├── cms-plasmic/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── [[...catchall]].tsx
│   │   │   ├── _app.js
│   │   │   └── api/
│   │   │       ├── exit-preview.ts
│   │   │       └── preview.ts
│   │   ├── plasmic-init.ts
│   │   ├── styles/
│   │   │   └── globals.css
│   │   └── tsconfig.json
│   ├── cms-prepr/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.js
│   │   │   ├── avatar.js
│   │   │   ├── container.js
│   │   │   ├── cover-image.js
│   │   │   ├── date.js
│   │   │   ├── footer.js
│   │   │   ├── header.js
│   │   │   ├── hero-post.js
│   │   │   ├── intro.js
│   │   │   ├── layout.js
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.js
│   │   │   ├── more-stories.js
│   │   │   ├── post-body.js
│   │   │   ├── post-header.js
│   │   │   ├── post-preview.js
│   │   │   ├── post-title.js
│   │   │   └── section-separator.js
│   │   ├── jsconfig.json
│   │   ├── lib/
│   │   │   ├── api.js
│   │   │   └── constants.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── _document.js
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.js
│   │   │   │   └── preview.js
│   │   │   ├── index.js
│   │   │   └── posts/
│   │   │       └── [slug].js
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   └── tailwind.config.js
│   ├── cms-prismic/
│   │   ├── .gitignore
│   │   ├── .slicemachine/
│   │   │   ├── assets/
│   │   │   │   ├── customtypes/
│   │   │   │   │   ├── author/
│   │   │   │   │   │   └── mocks.json
│   │   │   │   │   └── post/
│   │   │   │   │       └── mocks.json
│   │   │   │   └── slices/
│   │   │   │       ├── Image/
│   │   │   │       │   ├── index.stories.js
│   │   │   │       │   └── mocks.json
│   │   │   │       └── Text/
│   │   │   │           ├── index.stories.js
│   │   │   │           └── mocks.json
│   │   │   ├── libraries-state.json
│   │   │   └── mock-config.json
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.tsx
│   │   │   ├── avatar.tsx
│   │   │   ├── container.tsx
│   │   │   ├── cover-image.tsx
│   │   │   ├── date.tsx
│   │   │   ├── footer.tsx
│   │   │   ├── header.tsx
│   │   │   ├── hero-post.tsx
│   │   │   ├── intro.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── meta.tsx
│   │   │   ├── more-stories.tsx
│   │   │   ├── post-body.tsx
│   │   │   ├── post-header.tsx
│   │   │   ├── post-preview.tsx
│   │   │   ├── post-title.tsx
│   │   │   └── section-separator.tsx
│   │   ├── customtypes/
│   │   │   ├── author/
│   │   │   │   └── index.json
│   │   │   └── post/
│   │   │       └── index.json
│   │   ├── documents/
│   │   │   └── .keep
│   │   ├── lib/
│   │   │   ├── constants.ts
│   │   │   ├── prismic.ts
│   │   │   └── types.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── _document.tsx
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.ts
│   │   │   │   └── preview.ts
│   │   │   ├── index.tsx
│   │   │   ├── posts/
│   │   │   │   └── [slug].tsx
│   │   │   └── slice-simulator.tsx
│   │   ├── postcss.config.js
│   │   ├── prismicCodegen.config.ts
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── slices/
│   │   │   ├── Image/
│   │   │   │   ├── index.tsx
│   │   │   │   └── model.json
│   │   │   ├── Text/
│   │   │   │   ├── index.tsx
│   │   │   │   └── model.json
│   │   │   └── index.js
│   │   ├── sm.json
│   │   ├── styles/
│   │   │   └── index.css
│   │   ├── tailwind.config.js
│   │   ├── tsconfig.json
│   │   └── types.generated.ts
│   ├── cms-sanity/
│   │   ├── .eslintignore
│   │   ├── .eslintrc
│   │   ├── .gitignore
│   │   ├── .prettierignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── (blog)/
│   │   │   │   ├── actions.ts
│   │   │   │   ├── alert-banner.tsx
│   │   │   │   ├── avatar.tsx
│   │   │   │   ├── cover-image.tsx
│   │   │   │   ├── date.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── more-stories.tsx
│   │   │   │   ├── onboarding.tsx
│   │   │   │   ├── page.tsx
│   │   │   │   ├── portable-text.tsx
│   │   │   │   └── posts/
│   │   │   │       └── [slug]/
│   │   │   │           └── page.tsx
│   │   │   ├── (sanity)/
│   │   │   │   ├── layout.tsx
│   │   │   │   └── studio/
│   │   │   │       └── [[...tool]]/
│   │   │   │           └── page.tsx
│   │   │   ├── api/
│   │   │   │   └── draft-mode/
│   │   │   │       └── enable/
│   │   │   │           └── route.ts
│   │   │   └── globals.css
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   ├── postcss.config.js
│   │   ├── sanity/
│   │   │   ├── lib/
│   │   │   │   ├── api.ts
│   │   │   │   ├── client.ts
│   │   │   │   ├── demo.ts
│   │   │   │   ├── fetch.ts
│   │   │   │   ├── queries.ts
│   │   │   │   ├── token.ts
│   │   │   │   └── utils.ts
│   │   │   ├── plugins/
│   │   │   │   ├── assist.ts
│   │   │   │   └── settings.tsx
│   │   │   └── schemas/
│   │   │       ├── documents/
│   │   │       │   ├── author.ts
│   │   │       │   └── post.ts
│   │   │       └── singletons/
│   │   │           └── settings.tsx
│   │   ├── sanity.cli.ts
│   │   ├── sanity.config.ts
│   │   ├── sanity.types.ts
│   │   ├── schema.json
│   │   ├── tailwind.config.ts
│   │   └── tsconfig.json
│   ├── cms-sitecore-xmcloud/
│   │   ├── .gitignore
│   │   ├── .graphql-let.yml
│   │   ├── LICENSE.txt
│   │   ├── README.md
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   ├── bootstrap.ts
│   │   │   ├── config/
│   │   │   │   ├── index.ts
│   │   │   │   └── plugins/
│   │   │   │       ├── computed.ts
│   │   │   │       ├── fallback.ts
│   │   │   │       ├── package-json.ts
│   │   │   │       └── scjssconfig.ts
│   │   │   ├── fetch-graphql-introspection-data.ts
│   │   │   ├── generate-component-factory.ts
│   │   │   ├── generate-config.ts
│   │   │   ├── generate-plugins.ts
│   │   │   ├── scaffold-component.ts
│   │   │   ├── temp/
│   │   │   │   ├── .npmignore
│   │   │   │   └── config-plugins.ts
│   │   │   ├── templates/
│   │   │   │   ├── component-factory.ts
│   │   │   │   └── component-src.ts
│   │   │   └── utils.ts
│   │   ├── sitecore/
│   │   │   └── config/
│   │   │       └── xmcloud-nextjs-starter.config
│   │   ├── src/
│   │   │   ├── Layout.tsx
│   │   │   ├── Navigation.tsx
│   │   │   ├── NotFound.tsx
│   │   │   ├── Scripts.tsx
│   │   │   ├── assets/
│   │   │   │   ├── app.css
│   │   │   │   ├── basic/
│   │   │   │   │   ├── _component.scss
│   │   │   │   │   ├── _container.scss
│   │   │   │   │   ├── _fonts.scss
│   │   │   │   │   ├── _footer.scss
│   │   │   │   │   ├── _header.scss
│   │   │   │   │   ├── _navigation.scss
│   │   │   │   │   ├── _promo.scss
│   │   │   │   │   ├── _rich-text.scss
│   │   │   │   │   ├── _variables.scss
│   │   │   │   │   └── main.scss
│   │   │   │   ├── main.scss
│   │   │   │   └── sass/
│   │   │   │       ├── _app.scss
│   │   │   │       ├── abstracts/
│   │   │   │       │   ├── _functions.scss
│   │   │   │       │   ├── _mixins.scss
│   │   │   │       │   ├── _vars.scss
│   │   │   │       │   └── vars/
│   │   │   │       │       ├── _colors.scss
│   │   │   │       │       ├── _fontSizes.scss
│   │   │   │       │       └── _margins.scss
│   │   │   │       ├── base/
│   │   │   │       │   ├── fonts/
│   │   │   │       │   │   ├── _fonts.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   ├── index.scss
│   │   │   │       │   ├── links/
│   │   │   │       │   │   ├── _link-button.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   ├── reset/
│   │   │   │       │   │   ├── _inputs.scss
│   │   │   │       │   │   ├── _links.scss
│   │   │   │       │   │   └── _ui-datepicker.scss
│   │   │   │       │   ├── richtext/
│   │   │   │       │   │   ├── _richtext-files-icons.scss
│   │   │   │       │   │   ├── _richtext.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   └── typehead/
│   │   │   │       │       ├── _typehead.scss
│   │   │   │       │       └── index.scss
│   │   │   │       ├── components/
│   │   │   │       │   ├── _component-column-splitter.scss
│   │   │   │       │   ├── _component-container.scss
│   │   │   │       │   ├── _component-image.scss
│   │   │   │       │   ├── _component-navigation.scss
│   │   │   │       │   ├── _component-promo.scss
│   │   │   │       │   ├── _component-richtext-content.scss
│   │   │   │       │   ├── common/
│   │   │   │       │   │   ├── _alignment.scss
│   │   │   │       │   │   ├── _boxed.scss
│   │   │   │       │   │   ├── _clearfix.scss
│   │   │   │       │   │   ├── _highlighted.scss
│   │   │   │       │   │   ├── _link-button.scss
│   │   │   │       │   │   ├── _promoted-box.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   ├── container/
│   │   │   │       │   │   ├── _bordered.scss
│   │   │   │       │   │   ├── _title-row-box.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   ├── image/
│   │   │   │       │   │   ├── _image-banner.scss
│   │   │   │       │   │   ├── _image-default-size.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   ├── image-alignment/
│   │   │   │       │   │   ├── _image-left.scss
│   │   │   │       │   │   └── _image-right.scss
│   │   │   │       │   ├── index.scss
│   │   │   │       │   ├── layout/
│   │   │   │       │   │   ├── _acaindent.scss
│   │   │   │       │   │   ├── _background.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   ├── link-list/
│   │   │   │       │   │   ├── _component-link-list.scss
│   │   │   │       │   │   ├── _list-vertical.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   ├── navigation/
│   │   │   │       │   │   ├── _navigation-fat.scss
│   │   │   │       │   │   ├── _navigation-main-horizontal-vertical.scss
│   │   │   │       │   │   ├── _navigation-mobile.scss
│   │   │   │       │   │   ├── _navigation-sidebar.scss
│   │   │   │       │   │   ├── _sitemap-navigation.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   ├── promo/
│   │   │   │       │   │   ├── _absolute-bottom-link.scss
│   │   │   │       │   │   ├── _promo-hero.scss
│   │   │   │       │   │   ├── _promo-shadow.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   ├── rich-text/
│   │   │   │       │   │   ├── _rich-text-lists.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   ├── spacing/
│   │   │   │       │   │   ├── _background-colors.scss
│   │   │   │       │   │   ├── _indent.scss
│   │   │   │       │   │   └── index.scss
│   │   │   │       │   └── title/
│   │   │   │       │       ├── _component-title.scss
│   │   │   │       │       └── index.scss
│   │   │   │       ├── main.scss
│   │   │   │       └── variants/
│   │   │   │           ├── index.scss
│   │   │   │           ├── link-list/
│   │   │   │           │   └── index.scss
│   │   │   │           ├── navigation/
│   │   │   │           │   └── index.scss
│   │   │   │           ├── page-content/
│   │   │   │           │   └── index.scss
│   │   │   │           ├── promo/
│   │   │   │           │   └── index.scss
│   │   │   │           ├── rich-text/
│   │   │   │           │   └── index.scss
│   │   │   │           └── title/
│   │   │   │               └── index.scss
│   │   │   ├── components/
│   │   │   │   ├── ColumnSplitter.tsx
│   │   │   │   ├── Container.tsx
│   │   │   │   ├── ContentBlock.tsx
│   │   │   │   ├── FEaaSWrapper.tsx
│   │   │   │   ├── Image.tsx
│   │   │   │   ├── LinkList.tsx
│   │   │   │   ├── Navigation.tsx
│   │   │   │   ├── PageContent.tsx
│   │   │   │   ├── PartialDesignDynamicPlaceholder.tsx
│   │   │   │   ├── Promo.tsx
│   │   │   │   ├── RichText.tsx
│   │   │   │   ├── RowSplitter.tsx
│   │   │   │   └── Title.tsx
│   │   │   ├── lib/
│   │   │   │   ├── component-props/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── data-fetcher.ts
│   │   │   │   ├── dictionary-service-factory.ts
│   │   │   │   ├── extract-path/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── layout-service-factory.ts
│   │   │   │   ├── middleware/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── next-config/
│   │   │   │   │   └── plugins/
│   │   │   │   │       ├── graphql.js
│   │   │   │   │       ├── robots.js
│   │   │   │   │       ├── sass.js
│   │   │   │   │       └── sitemap.js
│   │   │   │   ├── page-props-factory/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── plugins/
│   │   │   │   │       ├── component-props.ts
│   │   │   │   │       ├── normal-mode.ts
│   │   │   │   │       ├── preview-mode.ts
│   │   │   │   │       └── site.ts
│   │   │   │   ├── page-props.ts
│   │   │   │   ├── site-resolver/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── plugins/
│   │   │   │   │       └── default.ts
│   │   │   │   └── sitemap-fetcher/
│   │   │   │       ├── index.ts
│   │   │   │       └── plugins/
│   │   │   │           └── graphql-sitemap-service.ts
│   │   │   ├── middleware.ts
│   │   │   ├── pages/
│   │   │   │   ├── 404.tsx
│   │   │   │   ├── 500.tsx
│   │   │   │   ├── [[...path]].tsx
│   │   │   │   ├── _app.tsx
│   │   │   │   ├── _error.tsx
│   │   │   │   └── api/
│   │   │   │       ├── editing/
│   │   │   │       │   ├── data/
│   │   │   │       │   │   └── [key].ts
│   │   │   │       │   └── render.ts
│   │   │   │       ├── healthz.ts
│   │   │   │       ├── robots.ts
│   │   │   │       └── sitemap.ts
│   │   │   └── temp/
│   │   │       ├── .gitignore
│   │   │       └── GraphQLIntrospectionResult.json
│   │   ├── tsconfig.json
│   │   └── tsconfig.scripts.json
│   ├── cms-sitefinity/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.tsx
│   │   │   ├── avatar.tsx
│   │   │   ├── container.tsx
│   │   │   ├── cover-image.tsx
│   │   │   ├── date-formatter.tsx
│   │   │   ├── footer.tsx
│   │   │   ├── header.tsx
│   │   │   ├── hero-post.tsx
│   │   │   ├── intro.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.tsx
│   │   │   ├── more-stories.tsx
│   │   │   ├── post-body.tsx
│   │   │   ├── post-header.tsx
│   │   │   ├── post-preview.tsx
│   │   │   ├── post-title.tsx
│   │   │   └── section-separator.tsx
│   │   ├── interfaces/
│   │   │   ├── author.ts
│   │   │   └── post.ts
│   │   ├── lib/
│   │   │   ├── api.ts
│   │   │   └── constants.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── index.tsx
│   │   │   └── posts/
│   │   │       └── [...slug].tsx
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   ├── tailwind.config.js
│   │   └── tsconfig.json
│   ├── cms-storyblok/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.js
│   │   │   ├── avatar.js
│   │   │   ├── container.js
│   │   │   ├── cover-image.js
│   │   │   ├── date.js
│   │   │   ├── footer.js
│   │   │   ├── header.js
│   │   │   ├── hero-post.js
│   │   │   ├── intro.js
│   │   │   ├── layout.js
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.js
│   │   │   ├── more-stories.js
│   │   │   ├── post-body.js
│   │   │   ├── post-header.js
│   │   │   ├── post-preview.js
│   │   │   ├── post-title.js
│   │   │   └── section-separator.js
│   │   ├── jsconfig.json
│   │   ├── lib/
│   │   │   ├── api.js
│   │   │   ├── constants.js
│   │   │   └── markdownToHtml.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── _document.js
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.js
│   │   │   │   └── preview.js
│   │   │   ├── index.js
│   │   │   └── posts/
│   │   │       └── [slug].js
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   └── tailwind.config.js
│   ├── cms-strapi/
│   │   ├── .gitignore
│   │   └── README.md
│   ├── cms-takeshape/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.js
│   │   │   ├── avatar.js
│   │   │   ├── container.js
│   │   │   ├── cover-image.js
│   │   │   ├── date.js
│   │   │   ├── footer.js
│   │   │   ├── header.js
│   │   │   ├── hero-post.js
│   │   │   ├── intro.js
│   │   │   ├── layout.js
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.js
│   │   │   ├── more-stories.js
│   │   │   ├── post-body.js
│   │   │   ├── post-header.js
│   │   │   ├── post-preview.js
│   │   │   ├── post-title.js
│   │   │   └── section-separator.js
│   │   ├── lib/
│   │   │   ├── api.js
│   │   │   ├── constants.js
│   │   │   └── markdownToHtml.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── _document.js
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.js
│   │   │   │   └── preview.js
│   │   │   ├── index.js
│   │   │   └── posts/
│   │   │       └── [slug].js
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   └── tailwind.config.js
│   ├── cms-tina/
│   │   ├── .gitignore
│   │   ├── .tina/
│   │   │   ├── __generated__/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── _graphql.json
│   │   │   │   ├── _lookup.json
│   │   │   │   ├── _schema.json
│   │   │   │   ├── frags.gql
│   │   │   │   ├── queries.gql
│   │   │   │   ├── schema.gql
│   │   │   │   └── types.ts
│   │   │   ├── components/
│   │   │   │   ├── TinaDynamicProvider.js
│   │   │   │   └── TinaProvider.js
│   │   │   └── schema.ts
│   │   ├── README.md
│   │   ├── _posts/
│   │   │   ├── dynamic-routing.md
│   │   │   ├── hello-world.md
│   │   │   └── preview.md
│   │   ├── components/
│   │   │   ├── alert.js
│   │   │   ├── avatar.js
│   │   │   ├── container.js
│   │   │   ├── cover-image.js
│   │   │   ├── date-formatter.js
│   │   │   ├── footer.js
│   │   │   ├── header.js
│   │   │   ├── hero-post.js
│   │   │   ├── intro.js
│   │   │   ├── layout.js
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.js
│   │   │   ├── more-stories.js
│   │   │   ├── post-body.js
│   │   │   ├── post-header.js
│   │   │   ├── post-preview.js
│   │   │   ├── post-title.js
│   │   │   └── section-separator.js
│   │   ├── lib/
│   │   │   ├── api.js
│   │   │   ├── constants.js
│   │   │   └── markdownToHtml.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── _document.js
│   │   │   ├── admin.js
│   │   │   ├── index.js
│   │   │   └── posts/
│   │   │       └── [slug].js
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicons/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   └── tailwind.config.js
│   ├── cms-umbraco/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.tsx
│   │   │   ├── avatar.tsx
│   │   │   ├── container.tsx
│   │   │   ├── cover-image.tsx
│   │   │   ├── date.tsx
│   │   │   ├── footer.tsx
│   │   │   ├── header.tsx
│   │   │   ├── hero-post.tsx
│   │   │   ├── intro.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── meta.tsx
│   │   │   ├── more-stories.tsx
│   │   │   ├── post-body.module.css
│   │   │   ├── post-body.tsx
│   │   │   ├── post-header.tsx
│   │   │   ├── post-preview.tsx
│   │   │   ├── post-title.tsx
│   │   │   ├── section-separator.tsx
│   │   │   └── tags.tsx
│   │   ├── lib/
│   │   │   ├── api.ts
│   │   │   └── constants.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.ts
│   │   │   │   └── preview.ts
│   │   │   ├── index.tsx
│   │   │   └── posts/
│   │   │       └── [slug].tsx
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   ├── tailwind.config.js
│   │   ├── tsconfig.json
│   │   └── types/
│   │       ├── author.ts
│   │       ├── picture.ts
│   │       ├── post.ts
│   │       └── postAndMorePosts.ts
│   ├── cms-umbraco-heartcore/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.js
│   │   │   ├── avatar.js
│   │   │   ├── container.js
│   │   │   ├── cover-image.js
│   │   │   ├── date.js
│   │   │   ├── footer.js
│   │   │   ├── header.js
│   │   │   ├── hero-post.js
│   │   │   ├── intro.js
│   │   │   ├── layout.js
│   │   │   ├── meta.js
│   │   │   ├── more-stories.js
│   │   │   ├── post-body.js
│   │   │   ├── post-header.js
│   │   │   ├── post-preview.js
│   │   │   ├── post-styles.module.css
│   │   │   ├── post-title.js
│   │   │   └── section-separator.js
│   │   ├── jsconfig.json
│   │   ├── lib/
│   │   │   ├── constants.js
│   │   │   └── umbraco-heartcore.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── [...slug].js
│   │   │   ├── _app.js
│   │   │   ├── _document.js
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.js
│   │   │   │   └── preview.js
│   │   │   └── index.js
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicon/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── index.css
│   │   └── tailwind.config.js
│   ├── cms-webiny/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── alert.tsx
│   │   │   ├── avatar.tsx
│   │   │   ├── container.tsx
│   │   │   ├── cover-image.tsx
│   │   │   ├── date-formatter.tsx
│   │   │   ├── footer.tsx
│   │   │   ├── header.tsx
│   │   │   ├── hero-post.tsx
│   │   │   ├── intro.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── markdown-styles.module.css
│   │   │   ├── meta.tsx
│   │   │   ├── more-stories.tsx
│   │   │   ├── post-body.tsx
│   │   │   ├── post-header.tsx
│   │   │   ├── post-preview.tsx
│   │   │   ├── post-title.tsx
│   │   │   └── section-separator.tsx
│   │   ├── lib/
│   │   │   ├── api.ts
│   │   │   ├── constants.ts
│   │   │   └── rich-text-renderer.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── api/
│   │   │   │   ├── exit-preview.ts
│   │   │   │   └── preview.ts
│   │   │   ├── index.tsx
│   │   │   └── posts/
│   │   │       └── [slug].tsx
│   │   ├── postcss.config.js
│   │   ├── public/
│   │   │   └── favicons/
│   │   │       ├── browserconfig.xml
│   │   │       └── site.webmanifest
│   │   ├── styles/
│   │   │   └── globals.css
│   │   ├── tailwind.config.js
│   │   └── tsconfig.json
│   ├── cms-wordpress/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── add-ts-nocheck.js
│   │   ├── codegen.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── app/
│   │   │   │   ├── [[...slug]]/
│   │   │   │   │   └── page.tsx
│   │   │   │   ├── api/
│   │   │   │   │   ├── exit-preview/
│   │   │   │   │   │   └── route.ts
│   │   │   │   │   ├── preview/
│   │   │   │   │   │   └── route.ts
│   │   │   │   │   └── revalidate/
│   │   │   │   │       └── route.ts
│   │   │   │   ├── globals.css
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── not-found.tsx
│   │   │   │   ├── robots.ts
│   │   │   │   └── sitemap.ts
│   │   │   ├── components/
│   │   │   │   ├── Globals/
│   │   │   │   │   ├── Navigation/
│   │   │   │   │   │   ├── Navigation.module.css
│   │   │   │   │   │   └── Navigation.tsx
│   │   │   │   │   └── PreviewNotice/
│   │   │   │   │       ├── PreviewNotice.module.css
│   │   │   │   │       └── PreviewNotice.tsx
│   │   │   │   └── Templates/
│   │   │   │       ├── Page/
│   │   │   │       │   ├── PageQuery.ts
│   │   │   │       │   └── PageTemplate.tsx
│   │   │   │       └── Post/
│   │   │   │           ├── PostQuery.ts
│   │   │   │           ├── PostTemplate.module.css
│   │   │   │           └── PostTemplate.tsx
│   │   │   ├── middleware.ts
│   │   │   ├── queries/
│   │   │   │   └── general/
│   │   │   │       ├── ContentInfoQuery.ts
│   │   │   │       └── SeoQuery.ts
│   │   │   └── utils/
│   │   │       ├── fetchGraphQL.ts
│   │   │       ├── nextSlugToWpSlug.ts
│   │   │       └── seoData.ts
│   │   └── tsconfig.json
│   ├── convex/
│   │   ├── .gitignore
│   │   ├── .prettierignore
│   │   ├── README.md
│   │   ├── convex/
│   │   │   ├── README.md
│   │   │   ├── _generated/
│   │   │   │   ├── api.d.ts
│   │   │   │   ├── api.js
│   │   │   │   ├── dataModel.d.ts
│   │   │   │   ├── server.d.ts
│   │   │   │   └── server.js
│   │   │   ├── messages.ts
│   │   │   ├── schema.ts
│   │   │   └── tsconfig.json
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   └── index.tsx
│   │   ├── styles/
│   │   │   └── globals.css
│   │   └── tsconfig.json
│   ├── custom-server/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── b/
│   │   │   │   └── page.tsx
│   │   │   └── layout.tsx
│   │   ├── nodemon.json
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── a.tsx
│   │   │   └── index.tsx
│   │   ├── server.ts
│   │   ├── tsconfig.json
│   │   └── tsconfig.server.json
│   ├── github-pages/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── about/
│   │   │   │   └── page.tsx
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── hello-world/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── i18n-routing/
│   │   ├── .gitignore
│   │   ├── .vscode/
│   │   │   └── settings.json
│   │   ├── README.md
│   │   ├── app/
│   │   │   └── [lang]/
│   │   │       ├── components/
│   │   │       │   ├── counter.tsx
│   │   │       │   └── locale-switcher.tsx
│   │   │       ├── layout.tsx
│   │   │       └── page.tsx
│   │   ├── dictionaries/
│   │   │   ├── cs.json
│   │   │   ├── de.json
│   │   │   └── en.json
│   │   ├── get-dictionary.ts
│   │   ├── i18n-config.ts
│   │   ├── middleware.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── i18n-routing-pages/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   └── locale-switcher.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── gsp/
│   │   │   │   ├── [slug].tsx
│   │   │   │   └── index.tsx
│   │   │   ├── gssp.tsx
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── image-component/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── background/
│   │   │   │   └── page.tsx
│   │   │   ├── color/
│   │   │   │   └── page.tsx
│   │   │   ├── fill/
│   │   │   │   └── page.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── page.tsx
│   │   │   ├── placeholder/
│   │   │   │   └── page.tsx
│   │   │   ├── responsive/
│   │   │   │   └── page.tsx
│   │   │   ├── shimmer/
│   │   │   │   └── page.tsx
│   │   │   └── theme/
│   │   │       └── page.tsx
│   │   ├── app.css
│   │   ├── components/
│   │   │   ├── view-source.module.css
│   │   │   └── view-source.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── styles.module.css
│   │   └── tsconfig.json
│   ├── image-secure-compute/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── globals.css
│   │   │   ├── image-api/
│   │   │   │   └── [...path]/
│   │   │   │       └── route.ts
│   │   │   ├── layout.tsx
│   │   │   ├── page.module.css
│   │   │   └── page.tsx
│   │   ├── components/
│   │   │   └── secure-image.tsx
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── inngest/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── app/
│   │   │   │   ├── api/
│   │   │   │   │   └── inngest/
│   │   │   │   │       └── route.ts
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   └── inngest/
│   │   │       └── inngest.config.ts
│   │   └── tsconfig.json
│   ├── markdoc/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── markdoc/
│   │   │   ├── functions.ts
│   │   │   ├── nodes.ts
│   │   │   └── tags.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   └── index.md
│   │   ├── public/
│   │   │   └── globals.css
│   │   └── tsconfig.json
│   ├── mdx/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── blog/
│   │   │   │   └── hello-world/
│   │   │   │       └── page.mdx
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   ├── message.mdx
│   │   │   ├── page.module.css
│   │   │   └── page.tsx
│   │   ├── mdx-components.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── tsconfig.json
│   │   └── types/
│   │       └── mdx.d.ts
│   ├── mdx-pages/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   └── button.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── pages/
│   │       └── index.mdx
│   ├── next-forms/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── actions.ts
│   │   │   ├── add-form.tsx
│   │   │   ├── delete-form.tsx
│   │   │   ├── global.css
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── panda-css/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── components/
│   │   │   │   ├── link-with-atomic-recipe.tsx
│   │   │   │   ├── link-with-atomic-style.tsx
│   │   │   │   ├── link-with-config-recipe.tsx
│   │   │   │   └── link-with-text-styles.tsx
│   │   │   ├── global.css
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── panda.config.ts
│   │   ├── postcss.config.js
│   │   └── tsconfig.json
│   ├── prisma-postgres/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── Header.tsx
│   │   │   ├── api/
│   │   │   │   └── posts/
│   │   │   │       └── route.ts
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   ├── page.tsx
│   │   │   ├── posts/
│   │   │   │   ├── [id]/
│   │   │   │   │   └── page.tsx
│   │   │   │   ├── new/
│   │   │   │   │   └── page.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── setup/
│   │   │   │   └── page.tsx
│   │   │   └── users/
│   │   │       └── new/
│   │   │           └── page.tsx
│   │   ├── lib/
│   │   │   └── prisma.ts
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   ├── postcss.config.mjs
│   │   ├── prisma/
│   │   │   ├── schema.prisma
│   │   │   └── seed.ts
│   │   ├── tailwind.config.ts
│   │   └── tsconfig.json
│   ├── radix-ui/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── package.json
│   │   ├── postcss.config.js
│   │   ├── styles/
│   │   │   └── globals.css
│   │   ├── tailwind.config.js
│   │   └── tsconfig.json
│   ├── react-remove-properties/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── remove-console/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── reproduction-template/
│   │   ├── .codesandbox/
│   │   │   └── tasks.json
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── reproduction-template-pages/
│   │   ├── .codesandbox/
│   │   │   └── tasks.json
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── with-ably/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── api/
│   │   │   │   ├── createTokenRequest.ts
│   │   │   │   └── send-message.ts
│   │   │   └── index.tsx
│   │   ├── styles/
│   │   │   ├── Home.module.css
│   │   │   └── globals.css
│   │   ├── tsconfig.json
│   │   └── types.d.ts
│   ├── with-absolute-imports/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── components/
│   │   │   ├── button.tsx
│   │   │   └── header.tsx
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-algolia-react-instantsearch/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── components/
│   │   │   ├── Panel.tsx
│   │   │   └── Search.tsx
│   │   ├── package.json
│   │   ├── styles/
│   │   │   └── global.css
│   │   └── tsconfig.json
│   ├── with-ant-design/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── AntdRegistry.tsx
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   ├── page.tsx
│   │   │   └── themeConfig.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-apivideo/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── Card/
│   │   │   │   ├── Card.module.css
│   │   │   │   └── index.tsx
│   │   │   ├── Loader/
│   │   │   │   ├── Loader.module.css
│   │   │   │   └── index.tsx
│   │   │   └── Status/
│   │   │       ├── Status.module.css
│   │   │       └── index.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── api/
│   │   │   │   ├── [videoId].ts
│   │   │   │   ├── uploadToken.ts
│   │   │   │   └── videos.ts
│   │   │   ├── index.tsx
│   │   │   ├── uploader/
│   │   │   │   └── index.tsx
│   │   │   └── videos/
│   │   │       ├── [videoId].tsx
│   │   │       └── index.tsx
│   │   ├── style/
│   │   │   ├── common.css
│   │   │   └── index.css
│   │   └── tsconfig.json
│   ├── with-apollo/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── next.config.mjs
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── app/
│   │   │   │   ├── globals.css
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── loading.tsx
│   │   │   │   └── page.tsx
│   │   │   ├── components/
│   │   │   │   ├── ApolloClientProvider.tsx
│   │   │   │   ├── FiveRocketsClient.tsx
│   │   │   │   └── LatestMissionName.tsx
│   │   │   └── lib/
│   │   │       └── ApolloClient.ts
│   │   └── tsconfig.json
│   ├── with-apollo-and-redux/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── Clock.js
│   │   │   ├── Counter.js
│   │   │   ├── ErrorMessage.js
│   │   │   ├── Layout.js
│   │   │   ├── Nav.js
│   │   │   ├── PostList.js
│   │   │   ├── PostUpvoter.js
│   │   │   └── Submit.js
│   │   ├── lib/
│   │   │   ├── apollo.js
│   │   │   ├── redux.js
│   │   │   └── useInterval.js
│   │   ├── package.json
│   │   └── pages/
│   │       ├── _app.js
│   │       ├── apollo.js
│   │       ├── index.js
│   │       └── redux.js
│   ├── with-axiom/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── middleware.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── api/
│   │   │   │   └── hello.ts
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── with-azure-cosmos/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── lib/
│   │   │   └── cosmosdb.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── with-babel-macros/
│   │   ├── .babelrc
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-biome/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── biome.json
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-chakra-ui/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── components/
│   │   │   │   ├── CTA.tsx
│   │   │   │   ├── Container.tsx
│   │   │   │   ├── DarkModeSwitch.tsx
│   │   │   │   ├── Footer.tsx
│   │   │   │   ├── Hero.tsx
│   │   │   │   └── Main.tsx
│   │   │   ├── pages/
│   │   │   │   ├── _app.tsx
│   │   │   │   ├── _document.tsx
│   │   │   │   └── index.tsx
│   │   │   └── theme.tsx
│   │   └── tsconfig.json
│   ├── with-clerk/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── api/
│   │   │   │   └── getAuthenticatedUserId/
│   │   │   │       └── route.ts
│   │   │   ├── api-request.tsx
│   │   │   ├── layout.tsx
│   │   │   ├── page.tsx
│   │   │   ├── sign-in/
│   │   │   │   └── [[...sign-in]]/
│   │   │   │       └── page.tsx
│   │   │   ├── sign-up/
│   │   │   │   └── [[...sign-up]]/
│   │   │   │       └── page.tsx
│   │   │   └── user/
│   │   │       └── [[...index]]/
│   │   │           └── page.tsx
│   │   ├── middleware.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── styles/
│   │   │   ├── Auth.module.css
│   │   │   ├── Header.module.css
│   │   │   ├── Home.module.css
│   │   │   ├── User.module.css
│   │   │   ├── globals.css
│   │   │   └── prism.css
│   │   └── tsconfig.json
│   ├── with-cloudinary/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── Carousel.tsx
│   │   │   ├── Icons/
│   │   │   │   ├── Bridge.tsx
│   │   │   │   ├── Logo.tsx
│   │   │   │   └── Twitter.tsx
│   │   │   ├── Modal.tsx
│   │   │   └── SharedModal.tsx
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── _document.tsx
│   │   │   ├── index.tsx
│   │   │   └── p/
│   │   │       └── [photoId].tsx
│   │   ├── postcss.config.js
│   │   ├── styles/
│   │   │   └── index.css
│   │   ├── tailwind.config.js
│   │   ├── tsconfig.json
│   │   └── utils/
│   │       ├── animationVariants.ts
│   │       ├── cachedImages.ts
│   │       ├── cloudinary.ts
│   │       ├── downloadPhoto.ts
│   │       ├── generateBlurPlaceholder.ts
│   │       ├── range.ts
│   │       ├── types.ts
│   │       └── useLastViewedPhoto.ts
│   ├── with-compiled-css/
│   │   ├── .babelrc
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── class-names-box.js
│   │   │   └── styled-button.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   └── index.js
│   │   └── style/
│   │       └── colors.js
│   ├── with-context-api/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── _components/
│   │   │   └── Counter.tsx
│   │   ├── app/
│   │   │   ├── about/
│   │   │   │   └── page.tsx
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-cookies-next/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── api/
│   │   │   │   ├── get-api-cookie.ts
│   │   │   │   ├── remove-api-cookie.ts
│   │   │   │   └── set-api-cookie.ts
│   │   │   ├── index.tsx
│   │   │   └── ssr-cookies.tsx
│   │   └── tsconfig.json
│   ├── with-couchbase/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   └── index.js
│   │   ├── styles/
│   │   │   ├── Home.module.css
│   │   │   └── globals.css
│   │   └── util/
│   │       └── couchbase.js
│   ├── with-custom-babel-config/
│   │   ├── .babelrc
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   └── pages/
│   │       └── index.js
│   ├── with-cxs/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _document.tsx
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── with-cypress/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── about/
│   │   │   │   └── page.tsx
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── components/
│   │   │   ├── about-component.cy.tsx
│   │   │   └── about-component.tsx
│   │   ├── cypress/
│   │   │   ├── e2e/
│   │   │   │   ├── app.cy.ts
│   │   │   │   └── pages.cy.ts
│   │   │   ├── fixtures/
│   │   │   │   └── example.json
│   │   │   ├── support/
│   │   │   │   ├── commands.ts
│   │   │   │   ├── component-index.html
│   │   │   │   ├── component.ts
│   │   │   │   └── e2e.ts
│   │   │   └── tsconfig.json
│   │   ├── cypress.config.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   └── home/
│   │   │       ├── about.tsx
│   │   │       └── index.tsx
│   │   ├── styles/
│   │   │   ├── Home.module.css
│   │   │   └── globals.css
│   │   └── tsconfig.json
│   ├── with-docker/
│   │   ├── .dockerignore
│   │   ├── .gitignore
│   │   ├── Dockerfile
│   │   ├── Dockerfile.bun
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── app.json
│   │   ├── compose.yml
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   ├── postcss.config.js
│   │   └── tsconfig.json
│   ├── with-docker-compose/
│   │   ├── .dockerignore
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── compose.dev.yaml
│   │   ├── compose.prod-without-multistage.yaml
│   │   ├── compose.prod.yaml
│   │   └── next-app/
│   │       ├── .gitignore
│   │       ├── dev.Dockerfile
│   │       ├── next.config.js
│   │       ├── package.json
│   │       ├── prod-without-multistage.Dockerfile
│   │       ├── prod.Dockerfile
│   │       ├── src/
│   │       │   ├── pages/
│   │       │   │   ├── _app.tsx
│   │       │   │   └── index.tsx
│   │       │   └── styles/
│   │       │       ├── Home.module.css
│   │       │       └── globals.css
│   │       └── tsconfig.json
│   ├── with-docker-export-output/
│   │   ├── .dockerignore
│   │   ├── .gitignore
│   │   ├── Dockerfile
│   │   ├── Dockerfile.serve
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── compose.yml
│   │   ├── next.config.ts
│   │   ├── nginx.conf
│   │   ├── package.json
│   │   ├── postcss.config.js
│   │   └── tsconfig.json
│   ├── with-docker-multi-env/
│   │   ├── .dockerignore
│   │   ├── .gitignore
│   │   ├── Makefile
│   │   ├── README.md
│   │   ├── docker/
│   │   │   ├── development/
│   │   │   │   ├── Dockerfile
│   │   │   │   └── compose.yaml
│   │   │   ├── production/
│   │   │   │   ├── Dockerfile
│   │   │   │   └── compose.yaml
│   │   │   └── staging/
│   │   │       ├── Dockerfile
│   │   │       └── compose.yaml
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── api/
│   │   │   │   └── hello.js
│   │   │   └── index.js
│   │   └── styles/
│   │       ├── Home.module.css
│   │       └── globals.css
│   ├── with-dynamic-import/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── _components/
│   │   │   │   ├── Header.tsx
│   │   │   │   ├── hello1.tsx
│   │   │   │   ├── hello2.tsx
│   │   │   │   ├── hello3.tsx
│   │   │   │   ├── hello4.tsx
│   │   │   │   └── hello5.tsx
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-edgedb/
│   │   ├── .eslintignore
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── client.ts
│   │   ├── components/
│   │   │   ├── Header.tsx
│   │   │   ├── Layout.tsx
│   │   │   └── Post.tsx
│   │   ├── dbschema/
│   │   │   ├── default.esdl
│   │   │   └── migrations/
│   │   │       └── 00001.edgeql
│   │   ├── edgedb.toml
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── api/
│   │   │   │   ├── post/
│   │   │   │   │   ├── [id].ts
│   │   │   │   │   └── index.ts
│   │   │   │   └── publish/
│   │   │   │       └── [id].ts
│   │   │   ├── blog/
│   │   │   │   └── [id].tsx
│   │   │   ├── create.tsx
│   │   │   ├── drafts.tsx
│   │   │   └── index.tsx
│   │   ├── postcss.config.js
│   │   ├── seed.ts
│   │   ├── styles/
│   │   │   └── global.css
│   │   ├── tailwind.config.js
│   │   └── tsconfig.json
│   ├── with-elasticsearch/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── lib/
│   │   │   └── elasticsearch.ts
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   └── index.tsx
│   │   ├── styles/
│   │   │   ├── Home.module.css
│   │   │   └── globals.css
│   │   └── tsconfig.json
│   ├── with-electron/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── main/
│   │   │   ├── index.js
│   │   │   └── preload.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── renderer/
│   │       ├── babel.config.js
│   │       └── pages/
│   │           └── index.js
│   ├── with-electron-typescript/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── electron-src/
│   │   │   ├── electron-next.d.ts
│   │   │   ├── index.ts
│   │   │   ├── preload.ts
│   │   │   └── tsconfig.json
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── renderer/
│   │       ├── components/
│   │       │   ├── Layout.tsx
│   │       │   ├── List.tsx
│   │       │   ├── ListDetail.tsx
│   │       │   └── ListItem.tsx
│   │       ├── interfaces/
│   │       │   └── index.ts
│   │       ├── pages/
│   │       │   ├── about.tsx
│   │       │   ├── detail/
│   │       │   │   └── [id].tsx
│   │       │   ├── index.tsx
│   │       │   └── initial-props.tsx
│   │       ├── tsconfig.json
│   │       └── utils/
│   │           └── sample-api.ts
│   ├── with-emotion/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   └── index.tsx
│   │   ├── shared/
│   │   │   └── styles.tsx
│   │   └── tsconfig.json
│   ├── with-eslint/
│   │   ├── .eslintrc
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-expo-typescript/
│   │   ├── .gitignore
│   │   ├── App.tsx
│   │   ├── README.md
│   │   ├── babel.config.js
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _document.tsx
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── with-facebook-pixel/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── _pages/
│   │   │   ├── _app.js
│   │   │   ├── _document.js
│   │   │   ├── index.js
│   │   │   └── navigation.js
│   │   ├── app/
│   │   │   ├── about/
│   │   │   │   └── page.js
│   │   │   ├── components/
│   │   │   │   ├── FacebookPixel.js
│   │   │   │   └── index.js
│   │   │   ├── layout.js
│   │   │   ├── page.js
│   │   │   └── readme.txt
│   │   ├── lib/
│   │   │   └── fpixel.js
│   │   ├── package.json
│   │   └── public/
│   │       └── scripts/
│   │           └── pixel.js
│   ├── with-fela/
│   │   ├── .gitignore
│   │   ├── FelaProvider.js
│   │   ├── README.md
│   │   ├── getFelaRenderer.js
│   │   ├── package.json
│   │   └── pages/
│   │       ├── _app.js
│   │       ├── _document.js
│   │       └── index.js
│   ├── with-filbert/
│   │   ├── .babelrc
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   └── pages/
│   │       ├── _document.js
│   │       └── index.js
│   ├── with-fingerprintjs-pro/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── CacheStrategySelector.tsx
│   │   │   ├── Nav.tsx
│   │   │   ├── Toggler.tsx
│   │   │   ├── VisitorDataPresenter.tsx
│   │   │   └── types.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── home/
│   │   │   │   └── [cacheStrategy].tsx
│   │   │   └── signin/
│   │   │       └── [cacheStrategy].tsx
│   │   ├── providers/
│   │   │   ├── InMemoryCache.tsx
│   │   │   ├── LocalStorageCache.tsx
│   │   │   ├── SessionStorageCache.tsx
│   │   │   └── WithoutCache.tsx
│   │   ├── styles/
│   │   │   ├── App.css
│   │   │   └── globals.css
│   │   └── tsconfig.json
│   ├── with-firebase/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── context/
│   │   │   └── userContext.js
│   │   ├── fetchData/
│   │   │   └── getProfileData.js
│   │   ├── firebase/
│   │   │   ├── clientApp.js
│   │   │   └── nodeApp.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── index.js
│   │   │   └── profile/
│   │   │       └── [username].js
│   │   └── vercel.json
│   ├── with-firebase-cloud-messaging/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── pages/
│   │   │   └── index.js
│   │   ├── public/
│   │   │   └── firebase-messaging-sw.js
│   │   └── utils/
│   │       └── webPush.js
│   ├── with-firebase-hosting/
│   │   ├── .firebaserc
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── firebase.json
│   │   ├── firebaseFunctions.js
│   │   ├── package.json
│   │   ├── public/
│   │   │   └── .gitignore
│   │   └── src/
│   │       ├── components/
│   │       │   ├── App.jsx
│   │       │   └── Header.jsx
│   │       ├── next.config.js
│   │       └── pages/
│   │           ├── about.jsx
│   │           └── index.jsx
│   ├── with-flow/
│   │   ├── .babelrc
│   │   ├── .eslintrc.json
│   │   ├── .flowconfig
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   └── Page.js
│   │   ├── flow-typed/
│   │   │   └── next.js.flow
│   │   ├── package.json
│   │   └── pages/
│   │       ├── _app.js
│   │       ├── about.js
│   │       ├── contact.js
│   │       └── index.js
│   ├── with-formspree/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   └── contact-form.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   └── index.js
│   │   └── styles/
│   │       ├── Home.module.css
│   │       ├── form.module.css
│   │       └── globals.css
│   ├── with-framer-motion/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── Gallery.js
│   │   │   └── SingleImage.js
│   │   ├── constants.js
│   │   ├── package.json
│   │   └── pages/
│   │       ├── _app.js
│   │       ├── image/
│   │       │   └── [index].js
│   │       └── index.js
│   ├── with-goober/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-google-analytics/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── about/
│   │   │   │   └── page.tsx
│   │   │   ├── contact/
│   │   │   │   └── page.tsx
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── components/
│   │   │   ├── Header.tsx
│   │   │   └── Page.tsx
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-google-maps-embed/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-google-tag-manager/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── _components/
│   │   │   └── EventButton.tsx
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-grafbase/
│   │   ├── .gitignore
│   │   ├── .vscode/
│   │   │   └── settings.json
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── globals.css
│   │   │   ├── layout.tsx
│   │   │   ├── page.tsx
│   │   │   └── posts/
│   │   │       └── [slug]/
│   │   │           └── page.tsx
│   │   ├── codegen.ts
│   │   ├── gql/
│   │   │   ├── fragment-masking.ts
│   │   │   ├── gql.ts
│   │   │   ├── graphql.ts
│   │   │   └── index.ts
│   │   ├── grafbase/
│   │   │   └── schema.graphql
│   │   ├── lib/
│   │   │   └── grafbase.ts
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── postcss.config.js
│   │   ├── tailwind.config.js
│   │   └── tsconfig.json
│   ├── with-graphql-gateway/
│   │   ├── .gitignore
│   │   ├── .meshrc.yaml
│   │   ├── README.md
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   ├── api/
│   │   │   │   └── graphql.ts
│   │   │   └── index.tsx
│   │   ├── styles/
│   │   │   ├── Home.module.css
│   │   │   └── globals.css
│   │   └── tsconfig.json
│   ├── with-graphql-hooks/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── next.config.mjs
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── app/
│   │   │   │   ├── globals.css
│   │   │   │   ├── layout.tsx
│   │   │   │   └── page.tsx
│   │   │   └── client-components/
│   │   │       ├── client-context-provider.tsx
│   │   │       ├── index.ts
│   │   │       └── repo-list.tsx
│   │   └── tsconfig.json
│   ├── with-graphql-react/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   └── pages/
│   │       ├── _app.js
│   │       └── index.js
│   ├── with-gsap/
│   │   ├── .gitignore
│   │   ├── App.scss
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── Content.tsx
│   │   │   ├── Home.tsx
│   │   │   └── Title.tsx
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.tsx
│   │   │   └── index.tsx
│   │   └── tsconfig.json
│   ├── with-hls-js/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   └── video-player.js
│   │   ├── package.json
│   │   └── pages/
│   │       └── index.js
│   ├── with-http2/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── next.config.js
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── about.js
│   │   │   └── index.js
│   │   └── server.js
│   ├── with-i18n-next-intl/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   ├── Code.js
│   │   │   ├── Navigation.js
│   │   │   └── PageLayout.js
│   │   ├── messages/
│   │   │   ├── about/
│   │   │   │   ├── de.json
│   │   │   │   └── en.json
│   │   │   ├── index/
│   │   │   │   ├── de.json
│   │   │   │   └── en.json
│   │   │   └── shared/
│   │   │       ├── de.json
│   │   │       └── en.json
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── pages/
│   │       ├── _app.js
│   │       ├── about.js
│   │       └── index.js
│   ├── with-i18n-rosetta/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── components/
│   │   │   └── title.js
│   │   ├── hooks/
│   │   │   └── use-i18n.js
│   │   ├── lib/
│   │   │   └── i18n.js
│   │   ├── locales/
│   │   │   ├── de.json
│   │   │   └── en.json
│   │   ├── next.config.js
│   │   ├── package.json
│   │   └── pages/
│   │       ├── [lng]/
│   │       │   └── index.js
│   │       ├── _app.js
│   │       ├── _document.js
│   │       └── dashboard.js
│   ├── with-ionic/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── _components/
│   │   │   ├── Card.tsx
│   │   │   └── IonicLayout.tsx
│   │   ├── app/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── ionic.d.ts
│   │   ├── next.config.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── with-iron-session/
│   │   ├── .gitignore
│   │   └── README.md
│   ├── with-jest/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── __snapshots__/
│   │   │   │
Download .txt
Showing preview only (9,197K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (86713 symbols across 13728 files)

FILE: .github/actions/needs-triage/dist/index.js
  function assertNotNullable (line 1) | function assertNotNullable(e){if(e===undefined||e===null)throw new Error...
  function run (line 1) | async function run(){try{const{payload:e,repo:p}=s.context;const{issue:a...
  function issueCommand (line 1) | function issueCommand(e,p,a){const d=new Command(e,p,a);process.stdout.w...
  function issue (line 1) | function issue(e,p=""){issueCommand(e,{},p)}
  class Command (line 1) | class Command{constructor(e,p,a){if(!e){e="missing.command"}this.command...
    method constructor (line 1) | constructor(e,p,a){if(!e){e="missing.command"}this.command=e;this.prop...
    method toString (line 1) | toString(){let e=o+this.command;if(this.properties&&Object.keys(this.p...
  function escapeData (line 1) | function escapeData(e){return i.toCommandValue(e).replace(/%/g,"%25").re...
  function escapeProperty (line 1) | function escapeProperty(e){return i.toCommandValue(e).replace(/%/g,"%25"...
  function adopt (line 1) | function adopt(e){return e instanceof a?e:new a((function(p){p(e)}))}
  function fulfilled (line 1) | function fulfilled(e){try{step(d.next(e))}catch(e){t(e)}}
  function rejected (line 1) | function rejected(e){try{step(d["throw"](e))}catch(e){t(e)}}
  function step (line 1) | function step(e){e.done?a(e.value):adopt(e.value).then(fulfilled,rejected)}
  function exportVariable (line 1) | function exportVariable(e,p){const a=n.toCommandValue(p);process.env[e]=...
  function setSecret (line 1) | function setSecret(e){i.issueCommand("add-mask",{},e)}
  function addPath (line 1) | function addPath(e){const p=process.env["GITHUB_PATH"]||"";if(p){o.issue...
  function getInput (line 1) | function getInput(e,p){const a=process.env[`INPUT_${e.replace(/ /g,"_")....
  function getMultilineInput (line 1) | function getMultilineInput(e,p){const a=getInput(e,p).split("\n").filter...
  function getBooleanInput (line 1) | function getBooleanInput(e,p){const a=["true","True","TRUE"];const d=["f...
  function setOutput (line 1) | function setOutput(e,p){const a=process.env["GITHUB_OUTPUT"]||"";if(a){r...
  function setCommandEcho (line 1) | function setCommandEcho(e){i.issue("echo",e?"on":"off")}
  function setFailed (line 1) | function setFailed(e){process.exitCode=c.Failure;error(e)}
  function isDebug (line 1) | function isDebug(){return process.env["RUNNER_DEBUG"]==="1"}
  function debug (line 1) | function debug(e){i.issueCommand("debug",{},e)}
  function error (line 1) | function error(e,p={}){i.issueCommand("error",n.toCommandProperties(p),e...
  function warning (line 1) | function warning(e,p={}){i.issueCommand("warning",n.toCommandProperties(...
  function notice (line 1) | function notice(e,p={}){i.issueCommand("notice",n.toCommandProperties(p)...
  function info (line 1) | function info(e){process.stdout.write(e+l.EOL)}
  function startGroup (line 1) | function startGroup(e){i.issue("group",e)}
  function endGroup (line 1) | function endGroup(){i.issue("endgroup")}
  function group (line 1) | function group(e,p){return s(this,void 0,void 0,(function*(){startGroup(...
  function saveState (line 1) | function saveState(e,p){const a=process.env["GITHUB_STATE"]||"";if(a){re...
  function getState (line 1) | function getState(e){return process.env[`STATE_${e}`]||""}
  function getIDToken (line 1) | function getIDToken(e){return s(this,void 0,void 0,(function*(){return y...
  function issueFileCommand (line 1) | function issueFileCommand(e,p){const a=process.env[`GITHUB_${e}`];if(!a)...
  function prepareKeyValueMessage (line 1) | function prepareKeyValueMessage(e,p){const a=`ghadelimiter_${o.v4()}`;co...
  function adopt (line 1) | function adopt(e){return e instanceof a?e:new a((function(p){p(e)}))}
  function fulfilled (line 1) | function fulfilled(e){try{step(d.next(e))}catch(e){t(e)}}
  function rejected (line 1) | function rejected(e){try{step(d["throw"](e))}catch(e){t(e)}}
  function step (line 1) | function step(e){e.done?a(e.value):adopt(e.value).then(fulfilled,rejected)}
  class OidcClient (line 1) | class OidcClient{static createHttpClient(e=true,p=10){const a={allowRetr...
    method createHttpClient (line 1) | static createHttpClient(e=true,p=10){const a={allowRetries:e,maxRetrie...
    method getRequestToken (line 1) | static getRequestToken(){const e=process.env["ACTIONS_ID_TOKEN_REQUEST...
    method getIDTokenUrl (line 1) | static getIDTokenUrl(){const e=process.env["ACTIONS_ID_TOKEN_REQUEST_U...
    method getCall (line 1) | static getCall(e){var p;return d(this,void 0,void 0,(function*(){const...
    method getIDToken (line 1) | static getIDToken(e){return d(this,void 0,void 0,(function*(){try{let ...
  function toPosixPath (line 1) | function toPosixPath(e){return e.replace(/[\\]/g,"/")}
  function toWin32Path (line 1) | function toWin32Path(e){return e.replace(/[/]/g,"\\")}
  function toPlatformPath (line 1) | function toPlatformPath(e){return e.replace(/[/\\]/g,s.sep)}
  function adopt (line 1) | function adopt(e){return e instanceof a?e:new a((function(p){p(e)}))}
  function fulfilled (line 1) | function fulfilled(e){try{step(d.next(e))}catch(e){t(e)}}
  function rejected (line 1) | function rejected(e){try{step(d["throw"](e))}catch(e){t(e)}}
  function step (line 1) | function step(e){e.done?a(e.value):adopt(e.value).then(fulfilled,rejected)}
  class Summary (line 1) | class Summary{constructor(){this._buffer=""}filePath(){return d(this,voi...
    method constructor (line 1) | constructor(){this._buffer=""}
    method filePath (line 1) | filePath(){return d(this,void 0,void 0,(function*(){if(this._filePath)...
    method wrap (line 1) | wrap(e,p,a={}){const d=Object.entries(a).map((([e,p])=>` ${e}="${p}"`)...
    method write (line 1) | write(e){return d(this,void 0,void 0,(function*(){const p=!!(e===null|...
    method clear (line 1) | clear(){return d(this,void 0,void 0,(function*(){return this.emptyBuff...
    method stringify (line 1) | stringify(){return this._buffer}
    method isEmptyBuffer (line 1) | isEmptyBuffer(){return this._buffer.length===0}
    method emptyBuffer (line 1) | emptyBuffer(){this._buffer="";return this}
    method addRaw (line 1) | addRaw(e,p=false){this._buffer+=e;return p?this.addEOL():this}
    method addEOL (line 1) | addEOL(){return this.addRaw(t.EOL)}
    method addCodeBlock (line 1) | addCodeBlock(e,p){const a=Object.assign({},p&&{lang:p});const d=this.w...
    method addList (line 1) | addList(e,p=false){const a=p?"ol":"ul";const d=e.map((e=>this.wrap("li...
    method addTable (line 1) | addTable(e){const p=e.map((e=>{const p=e.map((e=>{if(typeof e==="strin...
    method addDetails (line 1) | addDetails(e,p){const a=this.wrap("details",this.wrap("summary",e)+p);...
    method addImage (line 1) | addImage(e,p,a){const{width:d,height:t}=a||{};const r=Object.assign(Ob...
    method addHeading (line 1) | addHeading(e,p){const a=`h${p}`;const d=["h1","h2","h3","h4","h5","h6"...
    method addSeparator (line 1) | addSeparator(){const e=this.wrap("hr",null);return this.addRaw(e).addE...
    method addBreak (line 1) | addBreak(){const e=this.wrap("br",null);return this.addRaw(e).addEOL()}
    method addQuote (line 1) | addQuote(e,p){const a=Object.assign({},p&&{cite:p});const d=this.wrap(...
    method addLink (line 1) | addLink(e,p){const a=this.wrap("a",e,{href:p});return this.addRaw(a).a...
  function toCommandValue (line 1) | function toCommandValue(e){if(e===null||e===undefined){return""}else if(...
  function toCommandProperties (line 1) | function toCommandProperties(e){if(!Object.keys(e).length){return{}}retu...
  class Context (line 1) | class Context{constructor(){var e,p,a;this.payload={};if(process.env.GIT...
    method constructor (line 1) | constructor(){var e,p,a;this.payload={};if(process.env.GITHUB_EVENT_PA...
    method issue (line 1) | get issue(){const e=this.payload;return Object.assign(Object.assign({}...
    method repo (line 1) | get repo(){if(process.env.GITHUB_REPOSITORY){const[e,p]=process.env.GI...
  function getOctokit (line 1) | function getOctokit(e,p,...a){const d=i.GitHub.plugin(...a);return new d...
  function getAuthString (line 1) | function getAuthString(e,p){if(!e&&!p.auth){throw new Error("Parameter t...
  function getProxyAgent (line 1) | function getProxyAgent(e){const p=new s.HttpClient;return p.getAgent(e)}
  function getApiBaseUrl (line 1) | function getApiBaseUrl(){return process.env["GITHUB_API_URL"]||"https://...
  function getOctokitOptions (line 1) | function getOctokitOptions(e,p){const a=Object.assign({},p||{});const d=...
  function adopt (line 1) | function adopt(e){return e instanceof a?e:new a((function(p){p(e)}))}
  function fulfilled (line 1) | function fulfilled(e){try{step(d.next(e))}catch(e){t(e)}}
  function rejected (line 1) | function rejected(e){try{step(d["throw"](e))}catch(e){t(e)}}
  function step (line 1) | function step(e){e.done?a(e.value):adopt(e.value).then(fulfilled,rejected)}
  class BasicCredentialHandler (line 1) | class BasicCredentialHandler{constructor(e,p){this.username=e;this.passw...
    method constructor (line 1) | constructor(e,p){this.username=e;this.password=p}
    method prepareRequest (line 1) | prepareRequest(e){if(!e.headers){throw Error("The request has no heade...
    method canHandleAuthentication (line 1) | canHandleAuthentication(){return false}
    method handleAuthentication (line 1) | handleAuthentication(){return a(this,void 0,void 0,(function*(){throw ...
  class BearerCredentialHandler (line 1) | class BearerCredentialHandler{constructor(e){this.token=e}prepareRequest...
    method constructor (line 1) | constructor(e){this.token=e}
    method prepareRequest (line 1) | prepareRequest(e){if(!e.headers){throw Error("The request has no heade...
    method canHandleAuthentication (line 1) | canHandleAuthentication(){return false}
    method handleAuthentication (line 1) | handleAuthentication(){return a(this,void 0,void 0,(function*(){throw ...
  class PersonalAccessTokenCredentialHandler (line 1) | class PersonalAccessTokenCredentialHandler{constructor(e){this.token=e}p...
    method constructor (line 1) | constructor(e){this.token=e}
    method prepareRequest (line 1) | prepareRequest(e){if(!e.headers){throw Error("The request has no heade...
    method canHandleAuthentication (line 1) | canHandleAuthentication(){return false}
    method handleAuthentication (line 1) | handleAuthentication(){return a(this,void 0,void 0,(function*(){throw ...
  function adopt (line 1) | function adopt(e){return e instanceof a?e:new a((function(p){p(e)}))}
  function fulfilled (line 1) | function fulfilled(e){try{step(d.next(e))}catch(e){t(e)}}
  function rejected (line 1) | function rejected(e){try{step(d["throw"](e))}catch(e){t(e)}}
  function step (line 1) | function step(e){e.done?a(e.value):adopt(e.value).then(fulfilled,rejected)}
  function getProxyUrl (line 1) | function getProxyUrl(e){const p=n.getProxyUrl(new URL(e));return p?p.hre...
  class HttpClientError (line 1) | class HttpClientError extends Error{constructor(e,p){super(e);this.name=...
    method constructor (line 1) | constructor(e,p){super(e);this.name="HttpClientError";this.statusCode=...
  class HttpClientResponse (line 1) | class HttpClientResponse{constructor(e){this.message=e}readBody(){return...
    method constructor (line 1) | constructor(e){this.message=e}
    method readBody (line 1) | readBody(){return s(this,void 0,void 0,(function*(){return new Promise...
  function isHttps (line 1) | function isHttps(e){const p=new URL(e);return p.protocol==="https:"}
  class HttpClient (line 1) | class HttpClient{constructor(e,p,a){this._ignoreSslError=false;this._all...
    method constructor (line 1) | constructor(e,p,a){this._ignoreSslError=false;this._allowRedirects=tru...
    method options (line 1) | options(e,p){return s(this,void 0,void 0,(function*(){return this.requ...
    method get (line 1) | get(e,p){return s(this,void 0,void 0,(function*(){return this.request(...
    method del (line 1) | del(e,p){return s(this,void 0,void 0,(function*(){return this.request(...
    method post (line 1) | post(e,p,a){return s(this,void 0,void 0,(function*(){return this.reque...
    method patch (line 1) | patch(e,p,a){return s(this,void 0,void 0,(function*(){return this.requ...
    method put (line 1) | put(e,p,a){return s(this,void 0,void 0,(function*(){return this.reques...
    method head (line 1) | head(e,p){return s(this,void 0,void 0,(function*(){return this.request...
    method sendStream (line 1) | sendStream(e,p,a,d){return s(this,void 0,void 0,(function*(){return th...
    method getJson (line 1) | getJson(e,p={}){return s(this,void 0,void 0,(function*(){p[u.Accept]=t...
    method postJson (line 1) | postJson(e,p,a={}){return s(this,void 0,void 0,(function*(){const d=JS...
    method putJson (line 1) | putJson(e,p,a={}){return s(this,void 0,void 0,(function*(){const d=JSO...
    method patchJson (line 1) | patchJson(e,p,a={}){return s(this,void 0,void 0,(function*(){const d=J...
    method request (line 1) | request(e,p,a,d){return s(this,void 0,void 0,(function*(){if(this._dis...
    method dispose (line 1) | dispose(){if(this._agent){this._agent.destroy()}this._disposed=true}
    method requestRaw (line 1) | requestRaw(e,p){return s(this,void 0,void 0,(function*(){return new Pr...
    method requestRawWithCallback (line 1) | requestRawWithCallback(e,p,a){if(typeof p==="string"){if(!e.options.he...
    method getAgent (line 1) | getAgent(e){const p=new URL(e);return this._getAgent(p)}
    method _prepareRequest (line 1) | _prepareRequest(e,p,a){const d={};d.parsedUrl=p;const t=d.parsedUrl.pr...
    method _mergeHeaders (line 1) | _mergeHeaders(e){if(this.requestOptions&&this.requestOptions.headers){...
    method _getExistingOrDefaultHeader (line 1) | _getExistingOrDefaultHeader(e,p,a){let d;if(this.requestOptions&&this....
    method _getAgent (line 1) | _getAgent(e){let p;const a=n.getProxyUrl(e);const d=a&&a.hostname;if(t...
    method _performExponentialBackoff (line 1) | _performExponentialBackoff(e){return s(this,void 0,void 0,(function*()...
    method _processResponse (line 1) | _processResponse(e,p){return s(this,void 0,void 0,(function*(){return ...
  function getProxyUrl (line 1) | function getProxyUrl(e){const p=e.protocol==="https:";if(checkBypass(e))...
  function checkBypass (line 1) | function checkBypass(e){if(!e.hostname){return false}const p=e.hostname;...
  function isLoopbackAddress (line 1) | function isLoopbackAddress(e){const p=e.toLowerCase();return p==="localh...
  function auth (line 1) | async function auth(e){const p=e.split(/\./).length===3;const r=a.test(e...
  function withAuthorizationPrefix (line 1) | function withAuthorizationPrefix(e){if(e.split(/\./).length===3){return`...
  function hook (line 1) | async function hook(e,p,a,d){const t=p.endpoint.merge(a,d);t.headers.aut...
  function _objectWithoutPropertiesLoose (line 1) | function _objectWithoutPropertiesLoose(e,p){if(e==null)return{};var a={}...
  function _objectWithoutProperties (line 1) | function _objectWithoutProperties(e,p){if(e==null)return{};var a=_object...
  class Octokit (line 1) | class Octokit{constructor(e={}){const p=new t.Collection;const a={baseUr...
    method constructor (line 1) | constructor(e={}){const p=new t.Collection;const a={baseUrl:r.request....
    method defaults (line 1) | static defaults(e){const p=class extends(this){constructor(...p){const...
    method plugin (line 1) | static plugin(...e){var p;const a=this.plugins;const d=(p=class extend...
  function lowercaseKeys (line 1) | function lowercaseKeys(e){if(!e){return{}}return Object.keys(e).reduce((...
  function mergeDeep (line 1) | function mergeDeep(e,p){const a=Object.assign({},e);Object.keys(p).forEa...
  function removeUndefinedProperties (line 1) | function removeUndefinedProperties(e){for(const p in e){if(e[p]===undefi...
  function merge (line 1) | function merge(e,p,a){if(typeof p==="string"){let[e,d]=p.split(" ");a=Ob...
  function addQueryParameters (line 1) | function addQueryParameters(e,p){const a=/\?/.test(e)?"&":"?";const d=Ob...
  function removeNonChars (line 1) | function removeNonChars(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}
  function extractUrlVariableNames (line 1) | function extractUrlVariableNames(e){const p=e.match(r);if(!p){return[]}r...
  function omit (line 1) | function omit(e,p){return Object.keys(e).filter((e=>!p.includes(e))).red...
  function encodeReserved (line 1) | function encodeReserved(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map((fun...
  function encodeUnreserved (line 1) | function encodeUnreserved(e){return encodeURIComponent(e).replace(/[!'()...
  function encodeValue (line 1) | function encodeValue(e,p,a){p=e==="+"||e==="#"?encodeReserved(p):encodeU...
  function isDefined (line 1) | function isDefined(e){return e!==undefined&&e!==null}
  function isKeyOperator (line 1) | function isKeyOperator(e){return e===";"||e==="&"||e==="?"}
  function getValues (line 1) | function getValues(e,p,a,d){var t=e[a],r=[];if(isDefined(t)&&t!==""){if(...
  function parseUrl (line 1) | function parseUrl(e){return{expand:expand.bind(null,e)}}
  function expand (line 1) | function expand(e,p){var a=["+","#",".","/",";","?","&"];return e.replac...
  function parse (line 1) | function parse(e){let p=e.method.toUpperCase();let a=(e.url||"/").replac...
  function endpointWithDefaults (line 1) | function endpointWithDefaults(e,p,a){return parse(merge(e,p,a))}
  function withDefaults (line 1) | function withDefaults(e,p){const a=merge(e,p);const d=endpointWithDefaul...
  function _buildMessageForResponseErrors (line 1) | function _buildMessageForResponseErrors(e){return`Request failed due to ...
  class GraphqlResponseError (line 1) | class GraphqlResponseError extends Error{constructor(e,p,a){super(_build...
    method constructor (line 1) | constructor(e,p,a){super(_buildMessageForResponseErrors(a));this.reque...
  function graphql (line 1) | function graphql(e,p,a){if(a){if(typeof p==="string"&&"query"in a){retur...
  function withDefaults (line 1) | function withDefaults(e,p){const a=e.defaults(p);const newApi=(e,p)=>gra...
  function withCustomRequest (line 1) | function withCustomRequest(e){return withDefaults(e,{method:"POST",url:"...
  function ownKeys (line 1) | function ownKeys(e,p){var a=Object.keys(e);if(Object.getOwnPropertySymbo...
  function _objectSpread2 (line 1) | function _objectSpread2(e){for(var p=1;p<arguments.length;p++){var a=nul...
  function _defineProperty (line 1) | function _defineProperty(e,p,a){if(p in e){Object.defineProperty(e,p,{va...
  function normalizePaginatedListResponse (line 1) | function normalizePaginatedListResponse(e){if(!e.data){return _objectSpr...
  function iterator (line 1) | function iterator(e,p,a){const d=typeof p==="function"?p.endpoint(a):e.r...
  function paginate (line 1) | function paginate(e,p,a,d){if(typeof a==="function"){d=a;a=undefined}ret...
  function gather (line 1) | function gather(e,p,a,d){return a.next().then((t=>{if(t.done){return p}l...
  function isPaginatingEndpoint (line 1) | function isPaginatingEndpoint(e){if(typeof e==="string"){return t.includ...
  function paginateRest (line 1) | function paginateRest(e){return{paginate:Object.assign(paginate.bind(nul...
  function ownKeys (line 1) | function ownKeys(e,p){var a=Object.keys(e);if(Object.getOwnPropertySymbo...
  function _objectSpread2 (line 1) | function _objectSpread2(e){for(var p=1;p<arguments.length;p++){var a=arg...
  function _defineProperty (line 1) | function _defineProperty(e,p,a){if(p in e){Object.defineProperty(e,p,{va...
  function endpointsToMethods (line 1) | function endpointsToMethods(e,p){const a={};for(const[d,t]of Object.entr...
  function decorate (line 1) | function decorate(e,p,a,d,t){const r=e.request.defaults(d);function with...
  function restEndpointMethods (line 1) | function restEndpointMethods(e){const p=endpointsToMethods(e,a);return{r...
  function legacyRestEndpointMethods (line 1) | function legacyRestEndpointMethods(e){const p=endpointsToMethods(e,a);re...
  function _interopDefault (line 1) | function _interopDefault(e){return e&&typeof e==="object"&&"default"in e...
  class RequestError (line 1) | class RequestError extends Error{constructor(e,p,a){super(e);if(Error.ca...
    method constructor (line 1) | constructor(e,p,a){super(e);if(Error.captureStackTrace){Error.captureS...
  function _interopDefault (line 1) | function _interopDefault(e){return e&&typeof e==="object"&&"default"in e...
  function getBufferResponse (line 1) | function getBufferResponse(e){return e.arrayBuffer()}
  function fetchWrapper (line 1) | function fetchWrapper(e){const p=e.request&&e.request.log?e.request.log:...
  function getResponseData (line 1) | async function getResponseData(e){const p=e.headers.get("content-type");...
  function toErrorMessage (line 1) | function toErrorMessage(e){if(typeof e==="string")return e;if("message"i...
  function withDefaults (line 1) | function withDefaults(e,p){const a=e.defaults(p);const newApi=function(e...
  function bindApi (line 1) | function bindApi(e,p,a){var d=i(r,null).apply(null,a?[p,a]:[p]);e.api={r...
  function HookSingular (line 1) | function HookSingular(){var e="h";var p={registry:{}};var a=d.bind(null,...
  function HookCollection (line 1) | function HookCollection(){var e={registry:{}};var p=d.bind(null,e);bindA...
  function Hook (line 1) | function Hook(){if(!o){console.warn('[before-after-hook]: "Hook()" repur...
  function addHook (line 1) | function addHook(e,p,a,d){var t=d;if(!e.registry[a]){e.registry[a]=[]}if...
  function register (line 1) | function register(e,p,a,d){if(typeof a!=="function"){throw new Error("me...
  function removeHook (line 1) | function removeHook(e,p,a){if(!e.registry[p]){return}var d=e.registry[p]...
  class Deprecation (line 1) | class Deprecation extends Error{constructor(e){super(e);if(Error.capture...
    method constructor (line 1) | constructor(e){super(e);if(Error.captureStackTrace){Error.captureStack...
  function isObject (line 7) | function isObject(e){return Object.prototype.toString.call(e)==="[object...
  function isPlainObject (line 7) | function isPlainObject(e){var p,a;if(isObject(e)===false)return false;p=...
  function _interopDefault (line 7) | function _interopDefault(e){return e&&typeof e==="object"&&"default"in e...
  class Blob (line 7) | class Blob{constructor(){this[m]="";const e=arguments[0];const p=argumen...
    method constructor (line 7) | constructor(){this[m]="";const e=arguments[0];const p=arguments[1];con...
    method size (line 7) | get size(){return this[l].length}
    method type (line 7) | get type(){return this[m]}
    method text (line 7) | text(){return Promise.resolve(this[l].toString())}
    method arrayBuffer (line 7) | arrayBuffer(){const e=this[l];const p=e.buffer.slice(e.byteOffset,e.by...
    method stream (line 7) | stream(){const e=new n;e._read=function(){};e.push(this[l]);e.push(nul...
    method toString (line 7) | toString(){return"[object Blob]"}
    method slice (line 7) | slice(){const e=this.size;const p=arguments[0];const a=arguments[1];le...
  function FetchError (line 7) | function FetchError(e,p,a){Error.call(this,e);this.message=e;this.type=p...
  function Body (line 7) | function Body(e){var p=this;var a=arguments.length>1&&arguments[1]!==und...
  method body (line 7) | get body(){return this[c].body}
  method bodyUsed (line 7) | get bodyUsed(){return this[c].disturbed}
  method arrayBuffer (line 7) | arrayBuffer(){return consumeBody.call(this).then((function(e){return e.b...
  method blob (line 7) | blob(){let e=this.headers&&this.headers.get("content-type")||"";return c...
  method json (line 7) | json(){var e=this;return consumeBody.call(this).then((function(p){try{re...
  method text (line 7) | text(){return consumeBody.call(this).then((function(e){return e.toString...
  method buffer (line 7) | buffer(){return consumeBody.call(this)}
  method textConverted (line 7) | textConverted(){var e=this;return consumeBody.call(this).then((function(...
  function consumeBody (line 7) | function consumeBody(){var e=this;if(this[c].disturbed){return Body.Prom...
  function convertBody (line 7) | function convertBody(e,p){if(typeof u!=="function"){throw new Error("The...
  function isURLSearchParams (line 7) | function isURLSearchParams(e){if(typeof e!=="object"||typeof e.append!==...
  function isBlob (line 7) | function isBlob(e){return typeof e==="object"&&typeof e.arrayBuffer==="f...
  function clone (line 7) | function clone(e){let p,a;let t=e.body;if(e.bodyUsed){throw new Error("c...
  function extractContentType (line 7) | function extractContentType(e){if(e===null){return null}else if(typeof e...
  function getTotalBytes (line 7) | function getTotalBytes(e){const p=e.body;if(p===null){return 0}else if(i...
  function writeToStream (line 7) | function writeToStream(e,p){const a=p.body;if(a===null){e.end()}else if(...
  function validateName (line 7) | function validateName(e){e=`${e}`;if(h.test(e)||e===""){throw new TypeEr...
  function validateValue (line 7) | function validateValue(e){e=`${e}`;if(g.test(e)){throw new TypeError(`${...
  function find (line 7) | function find(e,p){p=p.toLowerCase();for(const a in e){if(a.toLowerCase(...
  class Headers (line 7) | class Headers{constructor(){let e=arguments.length>0&&arguments[0]!==und...
    method constructor (line 7) | constructor(){let e=arguments.length>0&&arguments[0]!==undefined?argum...
    method get (line 7) | get(e){e=`${e}`;validateName(e);const p=find(this[w],e);if(p===undefin...
    method forEach (line 7) | forEach(e){let p=arguments.length>1&&arguments[1]!==undefined?argument...
    method set (line 7) | set(e,p){e=`${e}`;p=`${p}`;validateName(e);validateValue(p);const a=fi...
    method append (line 7) | append(e,p){e=`${e}`;p=`${p}`;validateName(e);validateValue(p);const a...
    method has (line 7) | has(e){e=`${e}`;validateName(e);return find(this[w],e)!==undefined}
    method delete (line 7) | delete(e){e=`${e}`;validateName(e);const p=find(this[w],e);if(p!==unde...
    method raw (line 7) | raw(){return this[w]}
    method keys (line 7) | keys(){return createHeadersIterator(this,"key")}
    method values (line 7) | values(){return createHeadersIterator(this,"value")}
  method [Symbol.iterator] (line 7) | [Symbol.iterator](){return createHeadersIterator(this,"key+value")}
  function getHeaders (line 7) | function getHeaders(e){let p=arguments.length>1&&arguments[1]!==undefine...
  function createHeadersIterator (line 7) | function createHeadersIterator(e,p){const a=Object.create(T);a[_]={targe...
  method next (line 7) | next(){if(!this||Object.getPrototypeOf(this)!==T){throw new TypeError("V...
  function exportNodeCompatibleHeaders (line 7) | function exportNodeCompatibleHeaders(e){const p=Object.assign({__proto__...
  function createHeadersLenient (line 7) | function createHeadersLenient(e){const p=new Headers;for(const a of Obje...
  class Response (line 7) | class Response{constructor(){let e=arguments.length>0&&arguments[0]!==un...
    method constructor (line 7) | constructor(){let e=arguments.length>0&&arguments[0]!==undefined?argum...
    method url (line 7) | get url(){return this[E].url||""}
    method status (line 7) | get status(){return this[E].status}
    method ok (line 7) | get ok(){return this[E].status>=200&&this[E].status<300}
    method redirected (line 7) | get redirected(){return this[E].counter>0}
    method statusText (line 7) | get statusText(){return this[E].statusText}
    method headers (line 7) | get headers(){return this[E].headers}
    method clone (line 7) | clone(){return new Response(clone(this),{url:this.url,status:this.stat...
  function parseURL (line 7) | function parseURL(e){if(/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(e)){e=new S(e)....
  function isRequest (line 7) | function isRequest(e){return typeof e==="object"&&typeof e[y]==="object"}
  function isAbortSignal (line 7) | function isAbortSignal(e){const p=e&&typeof e==="object"&&Object.getProt...
  class Request (line 7) | class Request{constructor(e){let p=arguments.length>1&&arguments[1]!==un...
    method constructor (line 7) | constructor(e){let p=arguments.length>1&&arguments[1]!==undefined?argu...
    method method (line 7) | get method(){return this[y].method}
    method url (line 7) | get url(){return P(this[y].parsedURL)}
    method headers (line 7) | get headers(){return this[y].headers}
    method redirect (line 7) | get redirect(){return this[y].redirect}
    method signal (line 7) | get signal(){return this[y].signal}
    method clone (line 7) | clone(){return new Request(this)}
  function getNodeRequestOptions (line 7) | function getNodeRequestOptions(e){const p=e[y].parsedURL;const a=new Hea...
  function AbortError (line 7) | function AbortError(e){Error.call(this,e);this.type="aborted";this.messa...
  function fetch (line 7) | function fetch(e,p){if(!fetch.Promise){throw new Error("native promise m...
  function fixResponseChunkedTransferBadEnding (line 7) | function fixResponseChunkedTransferBadEnding(e,p){let a;e.on("socket",(f...
  function destroyStream (line 7) | function destroyStream(e,p){if(e.destroy){e.destroy(p)}else{e.emit("erro...
  function once (line 7) | function once(e){var f=function(){if(f.called)return f.value;f.called=tr...
  function onceStrict (line 7) | function onceStrict(e){var f=function(){if(f.called)throw new Error(f.on...
  function normalize (line 7) | function normalize(e){return e.split("\0").map((function(e){return e.nor...
  function findStatus (line 7) | function findStatus(e){var p=0;var a=t.length-1;while(p<=a){var d=Math.f...
  function countSymbols (line 7) | function countSymbols(e){return e.replace(s,"_").length}
  function mapChars (line 7) | function mapChars(e,p,a){var d=false;var t="";var s=countSymbols(e);for(...
  function validateLabel (line 7) | function validateLabel(e,p){if(e.substr(0,4)==="xn--"){e=d.toUnicode(e);...
  function processing (line 7) | function processing(e,p,a){var d=mapChars(e,p,a);d.string=normalize(d.st...
  function httpOverHttp (line 7) | function httpOverHttp(e){var p=new TunnelingAgent(e);p.request=r.request...
  function httpsOverHttp (line 7) | function httpsOverHttp(e){var p=new TunnelingAgent(e);p.request=r.reques...
  function httpOverHttps (line 7) | function httpOverHttps(e){var p=new TunnelingAgent(e);p.request=s.reques...
  function httpsOverHttps (line 7) | function httpsOverHttps(e){var p=new TunnelingAgent(e);p.request=s.reque...
  function TunnelingAgent (line 7) | function TunnelingAgent(e){var p=this;p.options=e||{};p.proxyOptions=p.o...
  function onFree (line 7) | function onFree(){t.emit("free",p,r)}
  function onCloseOrRemove (line 7) | function onCloseOrRemove(e){t.removeSocket(p);p.removeListener("free",on...
  function onResponse (line 7) | function onResponse(e){e.upgrade=true}
  function onUpgrade (line 7) | function onUpgrade(e,p,a){process.nextTick((function(){onConnect(e,p,a)}))}
  function onConnect (line 7) | function onConnect(t,s,i){r.removeAllListeners();s.removeAllListeners();...
  function onError (line 7) | function onError(p){r.removeAllListeners();l("tunneling socket could not...
  function createSecureSocket (line 7) | function createSecureSocket(e,p){var a=this;TunnelingAgent.prototype.cre...
  function toOptions (line 7) | function toOptions(e,p,a){if(typeof e==="string"){return{host:e,port:p,l...
  function mergeOptions (line 7) | function mergeOptions(e){for(var p=1,a=arguments.length;p<a;++p){var d=a...
  function getUserAgent (line 7) | function getUserAgent(){if(typeof navigator==="object"&&"userAgent"in na...
  function _interopRequireDefault (line 7) | function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}
  function _interopRequireDefault (line 7) | function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}
  function md5 (line 7) | function md5(e){if(Array.isArray(e)){e=Buffer.from(e)}else if(typeof e==...
  function _interopRequireDefault (line 7) | function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}
  function parse (line 7) | function parse(e){if(!(0,d.default)(e)){throw TypeError("Invalid UUID")}...
  function _interopRequireDefault (line 7) | function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}
  function rng (line 7) | function rng(){if(r>t.length-16){d.default.randomFillSync(t);r=0}return ...
  function _interopRequireDefault (line 7) | function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}
  function sha1 (line 7) | function sha1(e){if(Array.isArray(e)){e=Buffer.from(e)}else if(typeof e=...
  function _interopRequireDefault (line 7) | function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}
  function stringify (line 7) | function stringify(e,p=0){const a=(t[e[p+0]]+t[e[p+1]]+t[e[p+2]]+t[e[p+3...
  function _interopRequireDefault (line 7) | function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}
  function v1 (line 7) | function v1(e,p,a){let n=p&&a||0;const l=p||new Array(16);e=e||{};let m=...
  function _interopRequireDefault (line 7) | function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}
  function _interopRequireDefault (line 7) | function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}
  function stringToBytes (line 7) | function stringToBytes(e){e=unescape(encodeURIComponent(e));const p=[];f...
  function _default (line 7) | function _default(e,p,a){function generateUUID(e,r,s,i){if(typeof e==="s...
  function _interopRequireDefault (line 7) | function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}
  function v4 (line 7) | function v4(e,p,a){e=e||{};const r=e.random||(e.rng||d.default)();r[6]=r...
  function _interopRequireDefault (line 7) | function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}
  function _interopRequireDefault (line 7) | function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}
  function validate (line 7) | function validate(e){return typeof e==="string"&&d.default.test(e)}
  function _interopRequireDefault (line 7) | function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}
  function version (line 7) | function version(e){if(!(0,d.default)(e)){throw TypeError("Invalid UUID"...
  function sign (line 7) | function sign(e){return e<0?-1:1}
  function evenRound (line 7) | function evenRound(e){if(e%1===.5&&(e&1)===0){return Math.floor(e)}else{...
  function createNumberConversion (line 7) | function createNumberConversion(e,p){if(!p.unsigned){--e}const a=p.unsig...
  method constructor (line 7) | constructor(e){const p=e[0];const a=e[1];let t=null;if(a!==undefined){t=...
  method href (line 7) | get href(){return d.serializeURL(this._url)}
  method href (line 7) | set href(e){const p=d.basicURLParse(e);if(p==="failure"){throw new TypeE...
  method origin (line 7) | get origin(){return d.serializeURLOrigin(this._url)}
  method protocol (line 7) | get protocol(){return this._url.scheme+":"}
  method protocol (line 7) | set protocol(e){d.basicURLParse(e+":",{url:this._url,stateOverride:"sche...
  method username (line 7) | get username(){return this._url.username}
  method username (line 7) | set username(e){if(d.cannotHaveAUsernamePasswordPort(this._url)){return}...
  method password (line 7) | get password(){return this._url.password}
  method password (line 7) | set password(e){if(d.cannotHaveAUsernamePasswordPort(this._url)){return}...
  method host (line 7) | get host(){const e=this._url;if(e.host===null){return""}if(e.port===null...
  method host (line 7) | set host(e){if(this._url.cannotBeABaseURL){return}d.basicURLParse(e,{url...
  method hostname (line 7) | get hostname(){if(this._url.host===null){return""}return d.serializeHost...
  method hostname (line 7) | set hostname(e){if(this._url.cannotBeABaseURL){return}d.basicURLParse(e,...
  method port (line 7) | get port(){if(this._url.port===null){return""}return d.serializeInteger(...
  method port (line 7) | set port(e){if(d.cannotHaveAUsernamePasswordPort(this._url)){return}if(e...
  method pathname (line 7) | get pathname(){if(this._url.cannotBeABaseURL){return this._url.path[0]}i...
  method pathname (line 7) | set pathname(e){if(this._url.cannotBeABaseURL){return}this._url.path=[];...
  method search (line 7) | get search(){if(this._url.query===null||this._url.query===""){return""}r...
  method search (line 7) | set search(e){const p=this._url;if(e===""){p.query=null;return}const a=e...
  method hash (line 7) | get hash(){if(this._url.fragment===null||this._url.fragment===""){return...
  method hash (line 7) | set hash(e){if(e===""){this._url.fragment=null;return}const p=e[0]==="#"...
  method toJSON (line 7) | toJSON(){return this.href}
  function URL (line 7) | function URL(p){if(!this||this[s]||!(this instanceof URL)){throw new Typ...
  method get (line 7) | get(){return this[s].href}
  method set (line 7) | set(e){e=d["USVString"](e);this[s].href=e}
  method get (line 7) | get(){return this[s].origin}
  method get (line 7) | get(){return this[s].protocol}
  method set (line 7) | set(e){e=d["USVString"](e);this[s].protocol=e}
  method get (line 7) | get(){return this[s].username}
  method set (line 7) | set(e){e=d["USVString"](e);this[s].username=e}
  method get (line 7) | get(){return this[s].password}
  method set (line 7) | set(e){e=d["USVString"](e);this[s].password=e}
  method get (line 7) | get(){return this[s].host}
  method set (line 7) | set(e){e=d["USVString"](e);this[s].host=e}
  method get (line 7) | get(){return this[s].hostname}
  method set (line 7) | set(e){e=d["USVString"](e);this[s].hostname=e}
  method get (line 7) | get(){return this[s].port}
  method set (line 7) | set(e){e=d["USVString"](e);this[s].port=e}
  method get (line 7) | get(){return this[s].pathname}
  method set (line 7) | set(e){e=d["USVString"](e);this[s].pathname=e}
  method get (line 7) | get(){return this[s].search}
  method set (line 7) | set(e){e=d["USVString"](e);this[s].search=e}
  method get (line 7) | get(){return this[s].hash}
  method set (line 7) | set(e){e=d["USVString"](e);this[s].hash=e}
  method is (line 7) | is(e){return!!e&&e[s]instanceof r.implementation}
  method create (line 7) | create(e,p){let a=Object.create(URL.prototype);this.setup(a,e,p);return a}
  method setup (line 7) | setup(e,p,a){if(!a)a={};a.wrapper=e;e[s]=new r.implementation(p,a);e[s][...
  function countSymbols (line 7) | function countSymbols(e){return d.ucs2.decode(e).length}
  function at (line 7) | function at(e,p){const a=e[p];return isNaN(a)?undefined:String.fromCodeP...
  function isASCIIDigit (line 7) | function isASCIIDigit(e){return e>=48&&e<=57}
  function isASCIIAlpha (line 7) | function isASCIIAlpha(e){return e>=65&&e<=90||e>=97&&e<=122}
  function isASCIIAlphanumeric (line 7) | function isASCIIAlphanumeric(e){return isASCIIAlpha(e)||isASCIIDigit(e)}
  function isASCIIHex (line 7) | function isASCIIHex(e){return isASCIIDigit(e)||e>=65&&e<=70||e>=97&&e<=102}
  function isSingleDot (line 7) | function isSingleDot(e){return e==="."||e.toLowerCase()==="%2e"}
  function isDoubleDot (line 7) | function isDoubleDot(e){e=e.toLowerCase();return e===".."||e==="%2e."||e...
  function isWindowsDriveLetterCodePoints (line 7) | function isWindowsDriveLetterCodePoints(e,p){return isASCIIAlpha(e)&&(p=...
  function isWindowsDriveLetterString (line 7) | function isWindowsDriveLetterString(e){return e.length===2&&isASCIIAlpha...
  function isNormalizedWindowsDriveLetterString (line 7) | function isNormalizedWindowsDriveLetterString(e){return e.length===2&&is...
  function containsForbiddenHostCodePoint (line 7) | function containsForbiddenHostCodePoint(e){return e.search(/\u0000|\u000...
  function containsForbiddenHostCodePointExcludingPercent (line 7) | function containsForbiddenHostCodePointExcludingPercent(e){return e.sear...
  function isSpecialScheme (line 7) | function isSpecialScheme(e){return r[e]!==undefined}
  function isSpecial (line 7) | function isSpecial(e){return isSpecialScheme(e.scheme)}
  function defaultPort (line 7) | function defaultPort(e){return r[e]}
  function percentEncode (line 7) | function percentEncode(e){let p=e.toString(16).toUpperCase();if(p.length...
  function utf8PercentEncode (line 7) | function utf8PercentEncode(e){const p=new Buffer(e);let a="";for(let e=0...
  function utf8PercentDecode (line 7) | function utf8PercentDecode(e){const p=new Buffer(e);const a=[];for(let e...
  function isC0ControlPercentEncode (line 7) | function isC0ControlPercentEncode(e){return e<=31||e>126}
  function isPathPercentEncode (line 7) | function isPathPercentEncode(e){return isC0ControlPercentEncode(e)||i.ha...
  function isUserinfoPercentEncode (line 7) | function isUserinfoPercentEncode(e){return isPathPercentEncode(e)||o.has...
  function percentEncodeChar (line 7) | function percentEncodeChar(e,p){const a=String.fromCodePoint(e);if(p(e))...
  function parseIPv4Number (line 7) | function parseIPv4Number(e){let p=10;if(e.length>=2&&e.charAt(0)==="0"&&...
  function parseIPv4 (line 7) | function parseIPv4(e){const p=e.split(".");if(p[p.length-1]===""){if(p.l...
  function serializeIPv4 (line 7) | function serializeIPv4(e){let p="";let a=e;for(let e=1;e<=4;++e){p=Strin...
  function parseIPv6 (line 7) | function parseIPv6(e){const p=[0,0,0,0,0,0,0,0];let a=0;let t=null;let r...
  function serializeIPv6 (line 7) | function serializeIPv6(e){let p="";const a=findLongestZeroSequence(e);co...
  function parseHost (line 7) | function parseHost(e,p){if(e[0]==="["){if(e[e.length-1]!=="]"){return s}...
  function parseOpaqueHost (line 7) | function parseOpaqueHost(e){if(containsForbiddenHostCodePointExcludingPe...
  function findLongestZeroSequence (line 7) | function findLongestZeroSequence(e){let p=null;let a=1;let d=null;let t=...
  function serializeHost (line 7) | function serializeHost(e){if(typeof e==="number"){return serializeIPv4(e...
  function trimControlChars (line 7) | function trimControlChars(e){return e.replace(/^[\u0000-\u001F\u0020]+|[...
  function trimTabAndNewline (line 7) | function trimTabAndNewline(e){return e.replace(/\u0009|\u000A|\u000D/g,"")}
  function shortenPath (line 7) | function shortenPath(e){const p=e.path;if(p.length===0){return}if(e.sche...
  function includesCredentials (line 7) | function includesCredentials(e){return e.username!==""||e.password!==""}
  function cannotHaveAUsernamePasswordPort (line 7) | function cannotHaveAUsernamePasswordPort(e){return e.host===null||e.host...
  function isNormalizedWindowsDriveLetter (line 7) | function isNormalizedWindowsDriveLetter(e){return/^[A-Za-z]:$/.test(e)}
  function URLStateMachine (line 7) | function URLStateMachine(e,p,a,t,r){this.pointer=0;this.input=e;this.bas...
  function serializeURL (line 7) | function serializeURL(e,p){let a=e.scheme+":";if(e.host!==null){a+="//";...
  function serializeOrigin (line 7) | function serializeOrigin(e){let p=e.scheme+"://";p+=serializeHost(e.host...
  function wrappy (line 7) | function wrappy(e,p){if(e&&p)return wrappy(e)(p);if(typeof e!=="function...
  function __nccwpck_require__ (line 7) | function __nccwpck_require__(e){var p=__webpack_module_cache__[e];if(p!=...

FILE: .github/actions/needs-triage/src/index.ts
  constant LABELS (line 4) | const LABELS = {
  function assertNotNullable (line 17) | function assertNotNullable<T>(value: T): asserts value is NonNullable<T> {
  function run (line 22) | async function run() {

FILE: .github/actions/next-integration-stat/dist/37.index.js
  class MultipartParser (line 50) | class MultipartParser {
    method constructor (line 54) | constructor(boundary) {
    method write (line 83) | write(data) {
    method end (line 324) | end() {
  function _fileName (line 334) | function _fileName(headerValue) {
  function toFormData (line 350) | async function toFormData(Body, ct) {

FILE: .github/actions/next-integration-stat/dist/index.js
  function issueCommand (line 46) | function issueCommand(command, properties, message) {
  function issue (line 51) | function issue(name, message = '') {
  class Command (line 56) | class Command {
    method constructor (line 57) | constructor(command, properties, message) {
    method toString (line 65) | toString() {
  function escapeData (line 89) | function escapeData(s) {
  function escapeProperty (line 95) | function escapeProperty(s) {
  function adopt (line 136) | function adopt(value) { return value instanceof P ? value : new P(functi...
  function fulfilled (line 138) | function fulfilled(value) { try { step(generator.next(value)); } catch (...
  function rejected (line 139) | function rejected(value) { try { step(generator["throw"](value)); } catc...
  function step (line 140) | function step(result) { result.done ? resolve(result.value) : adopt(resu...
  function exportVariable (line 175) | function exportVariable(name, val) {
  function setSecret (line 189) | function setSecret(secret) {
  function addPath (line 197) | function addPath(inputPath) {
  function getInput (line 217) | function getInput(name, options) {
  function getMultilineInput (line 236) | function getMultilineInput(name, options) {
  function getBooleanInput (line 256) | function getBooleanInput(name, options) {
  function setOutput (line 275) | function setOutput(name, value) {
  function setCommandEcho (line 289) | function setCommandEcho(enabled) {
  function setFailed (line 301) | function setFailed(message) {
  function isDebug (line 312) | function isDebug() {
  function debug (line 320) | function debug(message) {
  function error (line 329) | function error(message, properties = {}) {
  function warning (line 338) | function warning(message, properties = {}) {
  function notice (line 347) | function notice(message, properties = {}) {
  function info (line 355) | function info(message) {
  function startGroup (line 366) | function startGroup(name) {
  function endGroup (line 373) | function endGroup() {
  function group (line 385) | function group(name, fn) {
  function saveState (line 409) | function saveState(name, value) {
  function getState (line 423) | function getState(name) {
  function getIDToken (line 427) | function getIDToken(aud) {
  function issueFileCommand (line 495) | function issueFileCommand(command, message) {
  function prepareKeyValueMessage (line 508) | function prepareKeyValueMessage(key, value) {
  function adopt (line 533) | function adopt(value) { return value instanceof P ? value : new P(functi...
  function fulfilled (line 535) | function fulfilled(value) { try { step(generator.next(value)); } catch (...
  function rejected (line 536) | function rejected(value) { try { step(generator["throw"](value)); } catc...
  function step (line 537) | function step(result) { result.done ? resolve(result.value) : adopt(resu...
  class OidcClient (line 546) | class OidcClient {
    method createHttpClient (line 547) | static createHttpClient(allowRetry = true, maxRetry = 10) {
    method getRequestToken (line 554) | static getRequestToken() {
    method getIDTokenUrl (line 561) | static getIDTokenUrl() {
    method getCall (line 568) | static getCall(id_token_url) {
    method getIDToken (line 586) | static getIDToken(audience) {
  function toPosixPath (line 649) | function toPosixPath(pth) {
  function toWin32Path (line 660) | function toWin32Path(pth) {
  function toPlatformPath (line 672) | function toPlatformPath(pth) {
  function adopt (line 709) | function adopt(value) { return value instanceof P ? value : new P(functi...
  function fulfilled (line 711) | function fulfilled(value) { try { step(generator.next(value)); } catch (...
  function rejected (line 712) | function rejected(value) { try { step(generator["throw"](value)); } catc...
  function step (line 713) | function step(result) { result.done ? resolve(result.value) : adopt(resu...
  function getDetails (line 763) | function getDetails() {
  function adopt (line 787) | function adopt(value) { return value instanceof P ? value : new P(functi...
  function fulfilled (line 789) | function fulfilled(value) { try { step(generator.next(value)); } catch (...
  function rejected (line 790) | function rejected(value) { try { step(generator["throw"](value)); } catc...
  function step (line 791) | function step(result) { result.done ? resolve(result.value) : adopt(resu...
  class Summary (line 802) | class Summary {
    method constructor (line 803) | constructor() {
    method filePath (line 812) | filePath() {
    method wrap (line 840) | wrap(tag, content, attrs = {}) {
    method write (line 856) | write(options) {
    method clear (line 870) | clear() {
    method stringify (line 880) | stringify() {
    method isEmptyBuffer (line 888) | isEmptyBuffer() {
    method emptyBuffer (line 896) | emptyBuffer() {
    method addRaw (line 908) | addRaw(text, addEOL = false) {
    method addEOL (line 917) | addEOL() {
    method addCodeBlock (line 928) | addCodeBlock(code, lang) {
    method addList (line 941) | addList(items, ordered = false) {
    method addTable (line 954) | addTable(rows) {
    method addDetails (line 982) | addDetails(label, content) {
    method addImage (line 995) | addImage(src, alt, options) {
    method addHeading (line 1009) | addHeading(text, level) {
    method addSeparator (line 1022) | addSeparator() {
    method addBreak (line 1031) | addBreak() {
    method addQuote (line 1043) | addQuote(text, cite) {
    method addLink (line 1056) | addLink(text, href) {
  function toCommandValue (line 1084) | function toCommandValue(input) {
  function toCommandProperties (line 1100) | function toCommandProperties(annotationProperties) {
  function adopt (line 1143) | function adopt(value) { return value instanceof P ? value : new P(functi...
  function fulfilled (line 1145) | function fulfilled(value) { try { step(generator.next(value)); } catch (...
  function rejected (line 1146) | function rejected(value) { try { step(generator["throw"](value)); } catc...
  function step (line 1147) | function step(result) { result.done ? resolve(result.value) : adopt(resu...
  function exec (line 1165) | function exec(commandLine, args, options) {
  function getExecOutput (line 1189) | function getExecOutput(commandLine, args, options) {
  function adopt (line 1253) | function adopt(value) { return value instanceof P ? value : new P(functi...
  function fulfilled (line 1255) | function fulfilled(value) { try { step(generator.next(value)); } catch (...
  function rejected (line 1256) | function rejected(value) { try { step(generator["throw"](value)); } catc...
  function step (line 1257) | function step(result) { result.done ? resolve(result.value) : adopt(resu...
  class ToolRunner (line 1275) | class ToolRunner extends events.EventEmitter {
    method constructor (line 1276) | constructor(toolPath, args, options) {
    method _debug (line 1285) | _debug(message) {
    method _getCommandString (line 1290) | _getCommandString(options, noPrefix) {
    method _processLineBuffer (line 1328) | _processLineBuffer(data, strBuffer, onLine) {
    method _getSpawnFileName (line 1347) | _getSpawnFileName() {
    method _getSpawnArgs (line 1355) | _getSpawnArgs(options) {
    method _endsWith (line 1371) | _endsWith(str, end) {
    method _isCmdFile (line 1374) | _isCmdFile() {
    method _windowsQuoteCmdArg (line 1379) | _windowsQuoteCmdArg(arg) {
    method _uvQuoteCmdArg (line 1499) | _uvQuoteCmdArg(arg) {
    method _cloneExecOptions (line 1578) | _cloneExecOptions(options) {
    method _getSpawnOptions (line 1593) | _getSpawnOptions(options, toolPath) {
    method exec (line 1614) | exec() {
  function argStringToArray (line 1734) | function argStringToArray(argString) {
  class ExecState (line 1781) | class ExecState extends events.EventEmitter {
    method constructor (line 1782) | constructor(options, toolPath) {
    method CheckComplete (line 1801) | CheckComplete() {
    method _debug (line 1812) | _debug(message) {
    method _setResult (line 1815) | _setResult() {
    method HandleTimeout (line 1837) | static HandleTimeout(state) {
  class Context (line 1862) | class Context {
    method constructor (line 1866) | constructor() {
    method issue (line 1892) | get issue() {
    method repo (line 1896) | get repo() {
  function getOctokit (line 1954) | function getOctokit(token, options, ...additionalPlugins) {
  function adopt (line 1992) | function adopt(value) { return value instanceof P ? value : new P(functi...
  function fulfilled (line 1994) | function fulfilled(value) { try { step(generator.next(value)); } catch (...
  function rejected (line 1995) | function rejected(value) { try { step(generator["throw"](value)); } catc...
  function step (line 1996) | function step(result) { result.done ? resolve(result.value) : adopt(resu...
  function getAuthString (line 2004) | function getAuthString(token, options) {
  function getProxyAgent (line 2014) | function getProxyAgent(destinationUrl) {
  function getProxyAgentDispatcher (line 2019) | function getProxyAgentDispatcher(destinationUrl) {
  function getProxyFetch (line 2024) | function getProxyFetch(destinationUrl) {
  function getApiBaseUrl (line 2032) | function getApiBaseUrl() {
  function getOctokitOptions (line 2092) | function getOctokitOptions(token, options) {
  function adopt (line 2136) | function adopt(value) { return value instanceof P ? value : new P(functi...
  function fulfilled (line 2138) | function fulfilled(value) { try { step(generator.next(value)); } catch (...
  function rejected (line 2139) | function rejected(value) { try { step(generator["throw"](value)); } catc...
  function step (line 2140) | function step(result) { result.done ? resolve(result.value) : adopt(resu...
  function getProxyUrl (line 2194) | function getProxyUrl(serverUrl) {
  class HttpClientError (line 2214) | class HttpClientError extends Error {
    method constructor (line 2215) | constructor(message, statusCode) {
    method constructor (line 3055) | constructor(message, statusCode) {
  class HttpClientResponse (line 2223) | class HttpClientResponse {
    method constructor (line 2224) | constructor(message) {
    method readBody (line 2227) | readBody() {
    method readBodyBuffer (line 2240) | readBodyBuffer() {
    method constructor (line 3064) | constructor(message) {
    method readBody (line 3067) | readBody() {
    method readBodyBuffer (line 3080) | readBodyBuffer() {
  function isHttps (line 2255) | function isHttps(requestUrl) {
  class HttpClient (line 2260) | class HttpClient {
    method constructor (line 2261) | constructor(userAgent, handlers, requestOptions) {
    method options (line 2298) | options(requestUrl, additionalHeaders) {
    method get (line 2303) | get(requestUrl, additionalHeaders) {
    method del (line 2308) | del(requestUrl, additionalHeaders) {
    method post (line 2313) | post(requestUrl, data, additionalHeaders) {
    method patch (line 2318) | patch(requestUrl, data, additionalHeaders) {
    method put (line 2323) | put(requestUrl, data, additionalHeaders) {
    method head (line 2328) | head(requestUrl, additionalHeaders) {
    method sendStream (line 2333) | sendStream(verb, requestUrl, stream, additionalHeaders) {
    method getJson (line 2342) | getJson(requestUrl, additionalHeaders = {}) {
    method postJson (line 2349) | postJson(requestUrl, obj, additionalHeaders = {}) {
    method putJson (line 2358) | putJson(requestUrl, obj, additionalHeaders = {}) {
    method patchJson (line 2367) | patchJson(requestUrl, obj, additionalHeaders = {}) {
    method request (line 2381) | request(verb, requestUrl, data, headers) {
    method dispose (line 2466) | dispose() {
    method requestRaw (line 2477) | requestRaw(info, data) {
    method requestRawWithCallback (line 2502) | requestRawWithCallback(info, data, onResult) {
    method getAgent (line 2554) | getAgent(serverUrl) {
    method getAgentDispatcher (line 2558) | getAgentDispatcher(serverUrl) {
    method _prepareRequest (line 2567) | _prepareRequest(method, requestUrl, headers) {
    method _mergeHeaders (line 2594) | _mergeHeaders(headers) {
    method _getExistingOrDefaultHeader (line 2600) | _getExistingOrDefaultHeader(additionalHeaders, header, _default) {
    method _getAgent (line 2607) | _getAgent(parsedUrl) {
    method _getProxyAgentDispatcher (line 2666) | _getProxyAgentDispatcher(parsedUrl, proxyUrl) {
    method _performExponentialBackoff (line 2690) | _performExponentialBackoff(retryNumber) {
    method _processResponse (line 2697) | _processResponse(res, options) {
    method constructor (line 3101) | constructor(userAgent, handlers, requestOptions) {
    method options (line 3138) | options(requestUrl, additionalHeaders) {
    method get (line 3143) | get(requestUrl, additionalHeaders) {
    method del (line 3148) | del(requestUrl, additionalHeaders) {
    method post (line 3153) | post(requestUrl, data, additionalHeaders) {
    method patch (line 3158) | patch(requestUrl, data, additionalHeaders) {
    method put (line 3163) | put(requestUrl, data, additionalHeaders) {
    method head (line 3168) | head(requestUrl, additionalHeaders) {
    method sendStream (line 3173) | sendStream(verb, requestUrl, stream, additionalHeaders) {
    method getJson (line 3182) | getJson(requestUrl, additionalHeaders = {}) {
    method postJson (line 3189) | postJson(requestUrl, obj, additionalHeaders = {}) {
    method putJson (line 3198) | putJson(requestUrl, obj, additionalHeaders = {}) {
    method patchJson (line 3207) | patchJson(requestUrl, obj, additionalHeaders = {}) {
    method request (line 3221) | request(verb, requestUrl, data, headers) {
    method dispose (line 3306) | dispose() {
    method requestRaw (line 3317) | requestRaw(info, data) {
    method requestRawWithCallback (line 3342) | requestRawWithCallback(info, data, onResult) {
    method getAgent (line 3394) | getAgent(serverUrl) {
    method getAgentDispatcher (line 3398) | getAgentDispatcher(serverUrl) {
    method _prepareRequest (line 3407) | _prepareRequest(method, requestUrl, headers) {
    method _mergeHeaders (line 3434) | _mergeHeaders(headers) {
    method _getExistingOrDefaultHeader (line 3440) | _getExistingOrDefaultHeader(additionalHeaders, header, _default) {
    method _getAgent (line 3447) | _getAgent(parsedUrl) {
    method _getProxyAgentDispatcher (line 3502) | _getProxyAgentDispatcher(parsedUrl, proxyUrl) {
    method _performExponentialBackoff (line 3526) | _performExponentialBackoff(retryNumber) {
    method _processResponse (line 3533) | _processResponse(res, options) {
  function getProxyUrl (line 2776) | function getProxyUrl(reqUrl) {
  function checkBypass (line 2803) | function checkBypass(reqUrl) {
  function isLoopbackAddress (line 2847) | function isLoopbackAddress(host) {
  function adopt (line 2864) | function adopt(value) { return value instanceof P ? value : new P(functi...
  function fulfilled (line 2866) | function fulfilled(value) { try { step(generator.next(value)); } catch (...
  function rejected (line 2867) | function rejected(value) { try { step(generator["throw"](value)); } catc...
  function step (line 2868) | function step(result) { result.done ? resolve(result.value) : adopt(resu...
  class BasicCredentialHandler (line 2874) | class BasicCredentialHandler {
    method constructor (line 2875) | constructor(username, password) {
    method prepareRequest (line 2879) | prepareRequest(options) {
    method canHandleAuthentication (line 2886) | canHandleAuthentication() {
    method handleAuthentication (line 2889) | handleAuthentication() {
  class BearerCredentialHandler (line 2896) | class BearerCredentialHandler {
    method constructor (line 2897) | constructor(token) {
    method prepareRequest (line 2902) | prepareRequest(options) {
    method canHandleAuthentication (line 2909) | canHandleAuthentication() {
    method handleAuthentication (line 2912) | handleAuthentication() {
  class PersonalAccessTokenCredentialHandler (line 2919) | class PersonalAccessTokenCredentialHandler {
    method constructor (line 2920) | constructor(token) {
    method prepareRequest (line 2925) | prepareRequest(options) {
    method canHandleAuthentication (line 2932) | canHandleAuthentication() {
    method handleAuthentication (line 2935) | handleAuthentication() {
  function adopt (line 2976) | function adopt(value) { return value instanceof P ? value : new P(functi...
  function fulfilled (line 2978) | function fulfilled(value) { try { step(generator.next(value)); } catch (...
  function rejected (line 2979) | function rejected(value) { try { step(generator["throw"](value)); } catc...
  function step (line 2980) | function step(result) { result.done ? resolve(result.value) : adopt(resu...
  function getProxyUrl (line 3034) | function getProxyUrl(serverUrl) {
  class HttpClientError (line 3054) | class HttpClientError extends Error {
    method constructor (line 2215) | constructor(message, statusCode) {
    method constructor (line 3055) | constructor(message, statusCode) {
  class HttpClientResponse (line 3063) | class HttpClientResponse {
    method constructor (line 2224) | constructor(message) {
    method readBody (line 2227) | readBody() {
    method readBodyBuffer (line 2240) | readBodyBuffer() {
    method constructor (line 3064) | constructor(message) {
    method readBody (line 3067) | readBody() {
    method readBodyBuffer (line 3080) | readBodyBuffer() {
  function isHttps (line 3095) | function isHttps(requestUrl) {
  class HttpClient (line 3100) | class HttpClient {
    method constructor (line 2261) | constructor(userAgent, handlers, requestOptions) {
    method options (line 2298) | options(requestUrl, additionalHeaders) {
    method get (line 2303) | get(requestUrl, additionalHeaders) {
    method del (line 2308) | del(requestUrl, additionalHeaders) {
    method post (line 2313) | post(requestUrl, data, additionalHeaders) {
    method patch (line 2318) | patch(requestUrl, data, additionalHeaders) {
    method put (line 2323) | put(requestUrl, data, additionalHeaders) {
    method head (line 2328) | head(requestUrl, additionalHeaders) {
    method sendStream (line 2333) | sendStream(verb, requestUrl, stream, additionalHeaders) {
    method getJson (line 2342) | getJson(requestUrl, additionalHeaders = {}) {
    method postJson (line 2349) | postJson(requestUrl, obj, additionalHeaders = {}) {
    method putJson (line 2358) | putJson(requestUrl, obj, additionalHeaders = {}) {
    method patchJson (line 2367) | patchJson(requestUrl, obj, additionalHeaders = {}) {
    method request (line 2381) | request(verb, requestUrl, data, headers) {
    method dispose (line 2466) | dispose() {
    method requestRaw (line 2477) | requestRaw(info, data) {
    method requestRawWithCallback (line 2502) | requestRawWithCallback(info, data, onResult) {
    method getAgent (line 2554) | getAgent(serverUrl) {
    method getAgentDispatcher (line 2558) | getAgentDispatcher(serverUrl) {
    method _prepareRequest (line 2567) | _prepareRequest(method, requestUrl, headers) {
    method _mergeHeaders (line 2594) | _mergeHeaders(headers) {
    method _getExistingOrDefaultHeader (line 2600) | _getExistingOrDefaultHeader(additionalHeaders, header, _default) {
    method _getAgent (line 2607) | _getAgent(parsedUrl) {
    method _getProxyAgentDispatcher (line 2666) | _getProxyAgentDispatcher(parsedUrl, proxyUrl) {
    method _performExponentialBackoff (line 2690) | _performExponentialBackoff(retryNumber) {
    method _processResponse (line 2697) | _processResponse(res, options) {
    method constructor (line 3101) | constructor(userAgent, handlers, requestOptions) {
    method options (line 3138) | options(requestUrl, additionalHeaders) {
    method get (line 3143) | get(requestUrl, additionalHeaders) {
    method del (line 3148) | del(requestUrl, additionalHeaders) {
    method post (line 3153) | post(requestUrl, data, additionalHeaders) {
    method patch (line 3158) | patch(requestUrl, data, additionalHeaders) {
    method put (line 3163) | put(requestUrl, data, additionalHeaders) {
    method head (line 3168) | head(requestUrl, additionalHeaders) {
    method sendStream (line 3173) | sendStream(verb, requestUrl, stream, additionalHeaders) {
    method getJson (line 3182) | getJson(requestUrl, additionalHeaders = {}) {
    method postJson (line 3189) | postJson(requestUrl, obj, additionalHeaders = {}) {
    method putJson (line 3198) | putJson(requestUrl, obj, additionalHeaders = {}) {
    method patchJson (line 3207) | patchJson(requestUrl, obj, additionalHeaders = {}) {
    method request (line 3221) | request(verb, requestUrl, data, headers) {
    method dispose (line 3306) | dispose() {
    method requestRaw (line 3317) | requestRaw(info, data) {
    method requestRawWithCallback (line 3342) | requestRawWithCallback(info, data, onResult) {
    method getAgent (line 3394) | getAgent(serverUrl) {
    method getAgentDispatcher (line 3398) | getAgentDispatcher(serverUrl) {
    method _prepareRequest (line 3407) | _prepareRequest(method, requestUrl, headers) {
    method _mergeHeaders (line 3434) | _mergeHeaders(headers) {
    method _getExistingOrDefaultHeader (line 3440) | _getExistingOrDefaultHeader(additionalHeaders, header, _default) {
    method _getAgent (line 3447) | _getAgent(parsedUrl) {
    method _getProxyAgentDispatcher (line 3502) | _getProxyAgentDispatcher(parsedUrl, proxyUrl) {
    method _performExponentialBackoff (line 3526) | _performExponentialBackoff(retryNumber) {
    method _processResponse (line 3533) | _processResponse(res, options) {
  function getProxyUrl (line 3612) | function getProxyUrl(reqUrl) {
  function checkBypass (line 3639) | function checkBypass(reqUrl) {
  function isLoopbackAddress (line 3683) | function isLoopbackAddress(host) {
  class DecodedURL (line 3690) | class DecodedURL extends URL {
    method constructor (line 3691) | constructor(url, base) {
    method username (line 3696) | get username() {
    method password (line 3699) | get password() {
  function adopt (line 3732) | function adopt(value) { return value instanceof P ? value : new P(functi...
  function fulfilled (line 3734) | function fulfilled(value) { try { step(generator.next(value)); } catch (...
  function rejected (line 3735) | function rejected(value) { try { step(generator["throw"](value)); } catc...
  function step (line 3736) | function step(result) { result.done ? resolve(result.value) : adopt(resu...
  function exists (line 3753) | function exists(fsPath) {
  function isDirectory (line 3768) | function isDirectory(fsPath, useStat = false) {
  function isRooted (line 3779) | function isRooted(p) {
  function tryGetExecutablePath (line 3797) | function tryGetExecutablePath(filePath, extensions) {
  function normalizeSeparators (line 3868) | function normalizeSeparators(p) {
  function isUnixExecutable (line 3882) | function isUnixExecutable(stats) {
  function getCmdPath (line 3888) | function getCmdPath() {
  function adopt (line 3922) | function adopt(value) { return value instanceof P ? value : new P(functi...
  function fulfilled (line 3924) | function fulfilled(value) { try { step(generator.next(value)); } catch (...
  function rejected (line 3925) | function rejected(value) { try { step(generator["throw"](value)); } catc...
  function step (line 3926) | function step(result) { result.done ? resolve(result.value) : adopt(resu...
  function cp (line 3943) | function cp(source, dest, options = {}) {
  function mv (line 3984) | function mv(source, dest, options = {}) {
  function rmRF (line 4012) | function rmRF(inputPath) {
  function mkdirP (line 4043) | function mkdirP(fsPath) {
  function which (line 4058) | function which(tool, check) {
  function findInPath (line 4089) | function findInPath(tool) {
  function readCopyOptions (line 4141) | function readCopyOptions(options) {
  function cpDirRecursive (line 4149) | function cpDirRecursive(sourceDir, destDir, currentDepth, force) {
  function copyFile (line 4174) | function copyFile(srcFile, destFile, force) {
  function auth (line 4237) | async function auth(token) {
  function withAuthorizationPrefix (line 4250) | function withAuthorizationPrefix(token) {
  function hook (line 4258) | async function hook(token, request, route, parameters) {
  method defaults (line 4336) | static defaults(defaults) {
  method plugin (line 4367) | static plugin(...newPlugins) {
  method constructor (line 4378) | constructor(options = {}) {
  function lowercaseKeys (line 4508) | function lowercaseKeys(object) {
  function isPlainObject (line 4519) | function isPlainObject(value) {
  function mergeDeep (line 4532) | function mergeDeep(defaults, options) {
  function removeUndefinedProperties (line 4548) | function removeUndefinedProperties(obj) {
  function merge (line 4558) | function merge(defaults, route, options) {
  function addQueryParameters (line 4581) | function addQueryParameters(url, parameters) {
  function removeNonChars (line 4597) | function removeNonChars(variableName) {
  function extractUrlVariableNames (line 4600) | function extractUrlVariableNames(url) {
  function omit (line 4609) | function omit(object, keysToOmit) {
  function encodeReserved (line 4620) | function encodeReserved(str) {
  function encodeUnreserved (line 4628) | function encodeUnreserved(str) {
  function encodeValue (line 4633) | function encodeValue(operator, value, key) {
  function isDefined (line 4641) | function isDefined(value) {
  function isKeyOperator (line 4644) | function isKeyOperator(operator) {
  function getValues (line 4647) | function getValues(context, operator, key, modifier) {
  function parseUrl (line 4707) | function parseUrl(template) {
  function expand (line 4712) | function expand(template, context) {
  function parse (line 4752) | function parse(options) {
  function endpointWithDefaults (line 4817) | function endpointWithDefaults(defaults, route, options) {
  function withDefaults (line 4822) | function withDefaults(oldDefaults, newDefaults) {
  function _buildMessageForResponseErrors (line 4885) | function _buildMessageForResponseErrors(data) {
  method constructor (line 4890) | constructor(request2, headers, response) {
  function graphql (line 4916) | function graphql(request2, query, options) {
  function withDefaults (line 4968) | function withDefaults(request2, newDefaults) {
  function withCustomRequest (line 4987) | function withCustomRequest(customRequest) {
  function normalizePaginatedListResponse (line 5036) | function normalizePaginatedListResponse(response) {
  function iterator (line 5066) | function iterator(octokit, route, parameters) {
  function paginate (line 5102) | function paginate(octokit, route, parameters, mapFn) {
  function gather (line 5114) | function gather(octokit, results, iterator2, mapFn) {
  function isPaginatingEndpoint (line 5375) | function isPaginatingEndpoint(arg) {
  function paginateRest (line 5384) | function paginateRest(octokit) {
  method has (line 7389) | has({ scope }, methodName) {
  method getOwnPropertyDescriptor (line 7392) | getOwnPropertyDescriptor(target, methodName) {
  method defineProperty (line 7401) | defineProperty(target, methodName, descriptor) {
  method deleteProperty (line 7405) | deleteProperty(target, methodName) {
  method ownKeys (line 7409) | ownKeys({ scope }) {
  method set (line 7412) | set(target, methodName, value) {
  method get (line 7415) | get({ octokit, scope, cache }, methodName) {
  function endpointsToMethods (line 7438) | function endpointsToMethods(octokit) {
  function decorate (line 7445) | function decorate(octokit, scope, methodName, defaults, decorations) {
  function restEndpointMethods (line 7488) | function restEndpointMethods(octokit) {
  function legacyRestEndpointMethods (line 7495) | function legacyRestEndpointMethods(octokit) {
  method constructor (line 7553) | constructor(message, statusCode, options) {
  function isPlainObject (line 7643) | function isPlainObject(value) {
  function getBufferResponse (line 7659) | function getBufferResponse(response) {
  function fetchWrapper (line 7664) | function fetchWrapper(requestOptions) {
  function getResponseData (line 7771) | async function getResponseData(response) {
  function toErrorMessage (line 7781) | function toErrorMessage(data) {
  function withDefaults (line 7794) | function withDefaults(oldEndpoint, newDefaults) {
  function bindApi (line 7841) | function bindApi(hook, state, name) {
  function HookSingular (line 7854) | function HookSingular() {
  function HookCollection (line 7864) | function HookCollection() {
  function Hook (line 7876) | function Hook() {
  function addHook (line 7903) | function addHook(state, kind, name, hook) {
  function register (line 7956) | function register(state, name, method, options) {
  function removeHook (line 7990) | function removeHook(state, name, method) {
  class Deprecation (line 8019) | class Deprecation extends Error {
    method constructor (line 8020) | constructor(message) {
  function once (line 8062) | function once (fn) {
  function onceStrict (line 8072) | function onceStrict (fn) {
  function httpOverHttp (line 8117) | function httpOverHttp(options) {
  function httpsOverHttp (line 8123) | function httpsOverHttp(options) {
  function httpOverHttps (line 8131) | function httpOverHttps(options) {
  function httpsOverHttps (line 8137) | function httpsOverHttps(options) {
  function TunnelingAgent (line 8146) | function TunnelingAgent(options) {
  function onFree (line 8189) | function onFree() {
  function onCloseOrRemove (line 8193) | function onCloseOrRemove(err) {
  function onResponse (line 8233) | function onResponse(res) {
  function onUpgrade (line 8238) | function onUpgrade(res, socket, head) {
  function onConnect (line 8245) | function onConnect(res, socket, head) {
  function onError (line 8274) | function onError(cause) {
  function createSecureSocket (line 8304) | function createSecureSocket(options, cb) {
  function toOptions (line 8321) | function toOptions(host, port, localAddress) {
  function mergeOptions (line 8332) | function mergeOptions(target) {
  function makeDispatcher (line 8420) | function makeDispatcher (fn) {
  function defaultFactory (line 8567) | function defaultFactory (origin, opts) {
  class Agent (line 8573) | class Agent extends DispatcherBase {
    method constructor (line 8574) | constructor ({ factory = defaultFactory, maxRedirections = 0, connect,...
    method [kRunning] (line 8630) | get [kRunning] () {
    method [kDispatch] (line 8642) | [kDispatch] (opts, handler) {
    method [kClose] (line 8667) | async [kClose] () {
    method [kDestroy] (line 8680) | async [kDestroy] (err) {
    method constructor (line 30516) | constructor ({ factory = defaultFactory, maxRedirections = 0, connect,...
    method [kRunning] (line 30572) | get [kRunning] () {
    method [kDispatch] (line 30584) | [kDispatch] (opts, handler) {
    method [kClose] (line 30609) | async [kClose] () {
    method [kDestroy] (line 30622) | async [kDestroy] (err) {
  function abort (line 8708) | function abort (self) {
  function addSignal (line 8716) | function addSignal (self, signal) {
  function removeSignal (line 8737) | function removeSignal (self) {
  class ConnectHandler (line 8771) | class ConnectHandler extends AsyncResource {
    method constructor (line 8772) | constructor (opts, callback) {
    method onConnect (line 8797) | onConnect (abort, context) {
    method onHeaders (line 8806) | onHeaders () {
    method onUpgrade (line 8810) | onUpgrade (statusCode, rawHeaders, socket) {
    method onError (line 8832) | onError (err) {
    method constructor (line 30714) | constructor (opts, callback) {
    method onConnect (line 30739) | onConnect (abort, context) {
    method onHeaders (line 30748) | onHeaders () {
    method onUpgrade (line 30752) | onUpgrade (statusCode, rawHeaders, socket) {
    method onError (line 30774) | onError (err) {
  function connect (line 8846) | function connect (opts, callback) {
  class PipelineRequest (line 8895) | class PipelineRequest extends Readable {
    method constructor (line 8896) | constructor () {
    method _read (line 8902) | _read () {
    method _destroy (line 8911) | _destroy (err, callback) {
    method constructor (line 30838) | constructor () {
    method _read (line 30844) | _read () {
    method _destroy (line 30853) | _destroy (err, callback) {
  class PipelineResponse (line 8918) | class PipelineResponse extends Readable {
    method constructor (line 8919) | constructor (resume) {
    method _read (line 8924) | _read () {
    method _destroy (line 8928) | _destroy (err, callback) {
    method constructor (line 30861) | constructor (resume) {
    method _read (line 30866) | _read () {
    method _destroy (line 30870) | _destroy (err, callback) {
  class PipelineHandler (line 8937) | class PipelineHandler extends AsyncResource {
    method constructor (line 8938) | constructor (opts, handler) {
    method onConnect (line 9022) | onConnect (abort, context) {
    method onHeaders (line 9035) | onHeaders (statusCode, rawHeaders, resume) {
    method onData (line 9097) | onData (chunk) {
    method onComplete (line 9102) | onComplete (trailers) {
    method onError (line 9107) | onError (err) {
    method constructor (line 30880) | constructor (opts, handler) {
    method onConnect (line 30964) | onConnect (abort, context) {
    method onHeaders (line 30977) | onHeaders (statusCode, rawHeaders, resume) {
    method onData (line 31039) | onData (chunk) {
    method onComplete (line 31044) | onComplete (trailers) {
    method onError (line 31049) | onError (err) {
  function pipeline (line 9114) | function pipeline (opts, handler) {
  class RequestHandler (line 9145) | class RequestHandler extends AsyncResource {
    method constructor (line 9146) | constructor (opts, callback) {
    method onConnect (line 9203) | onConnect (abort, context) {
    method onHeaders (line 9212) | onHeaders (statusCode, rawHeaders, resume, statusMessage) {
    method onData (line 9248) | onData (chunk) {
    method onComplete (line 9253) | onComplete (trailers) {
    method onError (line 9263) | onError (err) {
    method constructor (line 31088) | constructor (opts, callback) {
    method onConnect (line 31145) | onConnect (abort, context) {
    method onHeaders (line 31154) | onHeaders (statusCode, rawHeaders, resume, statusMessage) {
    method onData (line 31190) | onData (chunk) {
    method onComplete (line 31195) | onComplete (trailers) {
    method onError (line 31205) | onError (err) {
  function request (line 9291) | function request (opts, callback) {
  class StreamHandler (line 9334) | class StreamHandler extends AsyncResource {
    method constructor (line 9335) | constructor (opts, factory, callback) {
    method onConnect (line 9392) | onConnect (abort, context) {
    method onHeaders (line 9401) | onHeaders (statusCode, rawHeaders, resume, statusMessage) {
    method onData (line 9476) | onData (chunk) {
    method onComplete (line 9482) | onComplete (trailers) {
    method onError (line 9496) | onError (err) {
    method constructor (line 31277) | constructor (opts, factory, callback) {
    method onConnect (line 31334) | onConnect (abort, context) {
    method onHeaders (line 31343) | onHeaders (statusCode, rawHeaders, resume, statusMessage) {
    method onData (line 31418) | onData (chunk) {
    method onComplete (line 31424) | onComplete (trailers) {
    method onError (line 31438) | onError (err) {
  function stream (line 9520) | function stream (opts, factory, callback) {
  class UpgradeHandler (line 9557) | class UpgradeHandler extends AsyncResource {
    method constructor (line 9558) | constructor (opts, callback) {
    method onConnect (line 9584) | onConnect (abort, context) {
    method onHeaders (line 9593) | onHeaders () {
    method onUpgrade (line 9597) | onUpgrade (statusCode, rawHeaders, socket) {
    method onError (line 9614) | onError (err) {
    method constructor (line 31500) | constructor (opts, callback) {
    method onConnect (line 31526) | onConnect (abort, context) {
    method onHeaders (line 31535) | onHeaders () {
    method onUpgrade (line 31539) | onUpgrade (statusCode, rawHeaders, socket) {
    method onError (line 31556) | onError (err) {
  function upgrade (line 9628) | function upgrade (opts, callback) {
  method constructor (line 9698) | constructor ({
  method destroy (line 9724) | destroy (err) {
  method emit (line 9741) | emit (ev, ...args) {
  method on (line 9752) | on (ev, ...args) {
  method addListener (line 9759) | addListener (ev, ...args) {
  method off (line 9763) | off (ev, ...args) {
  method removeListener (line 9774) | removeListener (ev, ...args) {
  method push (line 9778) | push (chunk) {
  method text (line 9787) | async text () {
  method json (line 9792) | async json () {
  method blob (line 9797) | async blob () {
  method arrayBuffer (line 9802) | async arrayBuffer () {
  method formData (line 9807) | async formData () {
  method bodyUsed (line 9813) | get bodyUsed () {
  method body (line 9818) | get body () {
  method dump (line 9830) | dump (opts) {
  function isLocked (line 9878) | function isLocked (self) {
  function isUnusable (line 9884) | function isUnusable (self) {
  function consume (line 9888) | async function consume (stream, type) {
  function consumeStart (line 9919) | function consumeStart (consume) {
  function consumeEnd (line 9945) | function consumeEnd (consume) {
  function consumePush (line 9976) | function consumePush (consume, chunk) {
  function consumeFinish (line 9981) | function consumeFinish (consume, err) {
  function getResolveErrorBodyCallback (line 10012) | async function getResolveErrorBodyCallback ({ callback, body, contentTyp...
  function getGreatestCommonDivisor (line 10087) | function getGreatestCommonDivisor (a, b) {
  function defaultFactory (line 10092) | function defaultFactory (origin, opts) {
  class BalancedPool (line 10096) | class BalancedPool extends PoolBase {
    method constructor (line 10097) | constructor (upstreams = [], { factory = defaultFactory, ...opts } = {...
    method addUpstream (line 10126) | addUpstream (upstream) {
    method _updateBalancedPoolStats (line 10166) | _updateBalancedPoolStats () {
    method removeUpstream (line 10170) | removeUpstream (upstream) {
    method upstreams (line 10186) | get upstreams () {
    method [kGetDispatcher] (line 10192) | [kGetDispatcher] () {
    method constructor (line 32039) | constructor (upstreams = [], { factory = defaultFactory, ...opts } = {...
    method addUpstream (line 32068) | addUpstream (upstream) {
    method _updateBalancedPoolStats (line 32108) | _updateBalancedPoolStats () {
    method removeUpstream (line 32112) | removeUpstream (upstream) {
    method upstreams (line 32128) | get upstreams () {
    method [kGetDispatcher] (line 32134) | [kGetDispatcher] () {
  class Cache (line 10287) | class Cache {
    method constructor (line 10294) | constructor () {
    method match (line 10302) | async match (request, options = {}) {
    method matchAll (line 10318) | async matchAll (request = undefined, options = {}) {
    method add (line 10386) | async add (request) {
    method addAll (line 10402) | async addAll (requests) {
    method put (line 10563) | async put (request, response) {
    method delete (line 10692) | async delete (request, options = {}) {
    method keys (line 10756) | async keys (request = undefined, options = {}) {
    method #batchCacheOperations (line 10835) | #batchCacheOperations (operations) {
    method #queryCache (line 10973) | #queryCache (requestQuery, options, targetStorage) {
    method #requestMatchesCachedItem (line 10997) | #requestMatchesCachedItem (requestQuery, request, response = null, opt...
    method constructor (line 32236) | constructor () {
    method match (line 32244) | async match (request, options = {}) {
    method matchAll (line 32260) | async matchAll (request = undefined, options = {}) {
    method add (line 32328) | async add (request) {
    method addAll (line 32344) | async addAll (requests) {
    method put (line 32505) | async put (request, response) {
    method delete (line 32634) | async delete (request, options = {}) {
    method keys (line 32698) | async keys (request = undefined, options = {}) {
    method #batchCacheOperations (line 32777) | #batchCacheOperations (operations) {
    method #queryCache (line 32915) | #queryCache (requestQuery, options, targetStorage) {
    method #requestMatchesCachedItem (line 32939) | #requestMatchesCachedItem (requestQuery, request, response = null, opt...
  class CacheStorage (line 11111) | class CacheStorage {
    method constructor (line 11118) | constructor () {
    method match (line 11124) | async match (request, options = {}) {
    method has (line 11161) | async has (cacheName) {
    method open (line 11177) | async open (cacheName) {
    method delete (line 11209) | async delete (cacheName) {
    method keys (line 11222) | async keys () {
    method constructor (line 33060) | constructor () {
    method match (line 33066) | async match (request, options = {}) {
    method has (line 33103) | async has (cacheName) {
    method open (line 33119) | async open (cacheName) {
    method delete (line 33151) | async delete (cacheName) {
    method keys (line 33164) | async keys () {
  function urlEquals (line 11282) | function urlEquals (A, B, excludeFragment = false) {
  function fieldValues (line 11294) | function fieldValues (header) {
  class Client (line 11454) | class Client extends DispatcherBase {
    method constructor (line 11460) | constructor (url, {
    method pipelining (line 11643) | get pipelining () {
    method pipelining (line 11647) | set pipelining (value) {
    method [kPending] (line 11652) | get [kPending] () {
    method [kRunning] (line 11656) | get [kRunning] () {
    method [kSize] (line 11660) | get [kSize] () {
    method [kConnected] (line 11664) | get [kConnected] () {
    method [kBusy] (line 11668) | get [kBusy] () {
    method [kConnect] (line 11678) | [kConnect] (cb) {
    method [kDispatch] (line 11683) | [kDispatch] (opts, handler) {
    method [kClose] (line 11708) | async [kClose] () {
    method [kDestroy] (line 11720) | async [kDestroy] (err) {
    method constructor (line 33402) | constructor (url, {
    method pipelining (line 33585) | get pipelining () {
    method pipelining (line 33589) | set pipelining (value) {
    method [kPending] (line 33594) | get [kPending] () {
    method [kRunning] (line 33598) | get [kRunning] () {
    method [kSize] (line 33602) | get [kSize] () {
    method [kConnected] (line 33606) | get [kConnected] () {
    method [kBusy] (line 33610) | get [kBusy] () {
    method [kConnect] (line 33620) | [kConnect] (cb) {
    method [kDispatch] (line 33625) | [kDispatch] (opts, handler) {
    method [kClose] (line 33650) | async [kClose] () {
    method [kDestroy] (line 33662) | async [kDestroy] (err) {
  function onHttp2SessionError (line 11754) | function onHttp2SessionError (err) {
  function onHttp2FrameError (line 11762) | function onHttp2FrameError (type, code, id) {
  function onHttp2SessionEnd (line 11771) | function onHttp2SessionEnd () {
  function onHTTP2GoAway (line 11776) | function onHTTP2GoAway (code) {
  function lazyllhttp (line 11816) | async function lazyllhttp () {
  class Parser (line 11891) | class Parser {
    method constructor (line 11892) | constructor (client, socket, { exports }) {
    method setTimeout (line 11920) | setTimeout (value, type) {
    method resume (line 11942) | resume () {
    method readMore (line 11965) | readMore () {
    method execute (line 11975) | execute (data) {
    method destroy (line 12037) | destroy () {
    method onStatus (line 12052) | onStatus (buf) {
    method onMessageBegin (line 12056) | onMessageBegin () {
    method onHeaderField (line 12070) | onHeaderField (buf) {
    method onHeaderValue (line 12082) | onHeaderValue (buf) {
    method trackHeader (line 12104) | trackHeader (len) {
    method onUpgrade (line 12111) | onUpgrade (head) {
    method onHeadersComplete (line 12158) | onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {
    method onBody (line 12267) | onBody (buf) {
    method onMessageComplete (line 12299) | onMessageComplete () {
    method constructor (line 33834) | constructor (client, socket, { exports }) {
    method setTimeout (line 33862) | setTimeout (value, type) {
    method resume (line 33884) | resume () {
    method readMore (line 33907) | readMore () {
    method execute (line 33917) | execute (data) {
    method destroy (line 33979) | destroy () {
    method onStatus (line 33994) | onStatus (buf) {
    method onMessageBegin (line 33998) | onMessageBegin () {
    method onHeaderField (line 34012) | onHeaderField (buf) {
    method onHeaderValue (line 34024) | onHeaderValue (buf) {
    method trackHeader (line 34046) | trackHeader (len) {
    method onUpgrade (line 34053) | onUpgrade (head) {
    method onHeadersComplete (line 34100) | onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {
    method onBody (line 34209) | onBody (buf) {
    method onMessageComplete (line 34241) | onMessageComplete () {
  function onParserTimeout (line 12366) | function onParserTimeout (parser) {
  function onSocketReadable (line 12385) | function onSocketReadable () {
  function onSocketError (line 12392) | function onSocketError (err) {
  function onError (line 12412) | function onError (client, err) {
  function onSocketEnd (line 12432) | function onSocketEnd () {
  function onSocketClose (line 12446) | function onSocketClose () {
  function connect (line 12489) | async function connect (client) {
  function emitDrain (line 12654) | function emitDrain (client) {
  function resume (line 12659) | function resume (client, sync) {
  function _resume (line 12676) | function _resume (client, sync) {
  function shouldSendContentLength (line 12801) | function shouldSendContentLength (method) {
  function write (line 12805) | function write (client, request) {
  function writeH2 (line 12970) | function writeH2 (client, session, request) {
  function writeStream (line 13234) | function writeStream ({ h2stream, body, client, request, socket, content...
  function writeBlob (line 13349) | async function writeBlob ({ h2stream, body, client, request, socket, con...
  function writeIterable (line 13384) | async function writeIterable ({ h2stream, body, client, request, socket,...
  class AsyncWriter (line 13464) | class AsyncWriter {
    method constructor (line 13465) | constructor ({ socket, request, contentLength, client, expectsPayload,...
    method write (line 13477) | write (chunk) {
    method end (line 13540) | end () {
    method destroy (line 13587) | destroy (err) {
    method constructor (line 35407) | constructor ({ socket, request, contentLength, client, expectsPayload,...
    method write (line 35419) | write (chunk) {
    method end (line 35482) | end () {
    method destroy (line 35529) | destroy (err) {
  function errorRequest (line 13599) | function errorRequest (client, request, err) {
  class CompatWeakRef (line 13623) | class CompatWeakRef {
    method constructor (line 13624) | constructor (value) {
    method deref (line 13628) | deref () {
    method constructor (line 35566) | constructor (value) {
    method deref (line 35570) | deref () {
  class CompatFinalizer (line 13635) | class CompatFinalizer {
    method constructor (line 13636) | constructor (finalizer) {
    method register (line 13640) | register (dispatcher, key) {
    method constructor (line 35578) | constructor (finalizer) {
    method register (line 35582) | register (dispatcher, key) {
  function getCookies (line 13718) | function getCookies (headers) {
  function deleteCookie (line 13745) | function deleteCookie (headers, name, attributes) {
  function getSetCookies (line 13767) | function getSetCookies (headers) {
  function setCookie (line 13787) | function setCookie (headers, cookie) {
  function parseSetCookie (line 13898) | function parseSetCookie (header) {
  function parseUnparsedAttributes (line 13974) | function parseUnparsedAttributes (unparsedAttributes, cookieAttributeLis...
  function isCTLExcludingHtab (line 14215) | function isCTLExcludingHtab (value) {
  function validateCookieName (line 14242) | function validateCookieName (name) {
  function validateCookieValue (line 14279) | function validateCookieValue (value) {
  function validateCookiePath (line 14300) | function validateCookiePath (path) {
  function validateCookieDomain (line 14315) | function validateCookieDomain (domain) {
  function toIMFDate (line 14366) | function toIMFDate (date) {
  function validateCookieMaxAge (line 14399) | function validateCookieMaxAge (maxAge) {
  function stringify (line 14409) | function stringify (cookie) {
  function getHeadersList (line 14477) | function getHeadersList (headers) {
  method constructor (line 14528) | constructor (maxCachedSessions) {
  method get (line 14543) | get (sessionKey) {
  method set (line 14548) | set (sessionKey, session) {
  method constructor (line 14559) | constructor (maxCachedSessions) {
  method get (line 14564) | get (sessionKey) {
  method set (line 14568) | set (sessionKey, session) {
  function buildConnector (line 14584) | function buildConnector ({ allowH2, maxCachedSessions, socketPath, timeo...
  function setupTimeout (line 14668) | function setupTimeout (onConnectTimeout, timeout) {
  function onConnectTimeout (line 14693) | function onConnectTimeout (socket) {
  class UndiciError (line 14708) | class UndiciError extends Error {
    method constructor (line 14709) | constructor (message) {
    method constructor (line 36777) | constructor (message) {
  class ConnectTimeoutError (line 14716) | class ConnectTimeoutError extends UndiciError {
    method constructor (line 14717) | constructor (message) {
    method constructor (line 36785) | constructor (message) {
  class HeadersTimeoutError (line 14726) | class HeadersTimeoutError extends UndiciError {
    method constructor (line 14727) | constructor (message) {
    method constructor (line 36795) | constructor (message) {
  class HeadersOverflowError (line 14736) | class HeadersOverflowError extends UndiciError {
    method constructor (line 14737) | constructor (message) {
    method constructor (line 36805) | constructor (message) {
  class BodyTimeoutError (line 14746) | class BodyTimeoutError extends UndiciError {
    method constructor (line 14747) | constructor (message) {
    method constructor (line 36815) | constructor (message) {
  class ResponseStatusCodeError (line 14756) | class ResponseStatusCodeError extends UndiciError {
    method constructor (line 14757) | constructor (message, statusCode, headers, body) {
    method constructor (line 36825) | constructor (message, statusCode, headers, body) {
  class InvalidArgumentError (line 14770) | class InvalidArgumentError extends UndiciError {
    method constructor (line 14771) | constructor (message) {
    method constructor (line 36839) | constructor (message) {
  class InvalidReturnValueError (line 14780) | class InvalidReturnValueError extends UndiciError {
    method constructor (line 14781) | constructor (message) {
    method constructor (line 36849) | constructor (message) {
  class RequestAbortedError (line 14790) | class RequestAbortedError extends UndiciError {
    method constructor (line 14791) | constructor (message) {
    method constructor (line 36859) | constructor (message) {
  class InformationalError (line 14800) | class InformationalError extends UndiciError {
    method constructor (line 14801) | constructor (message) {
    method constructor (line 36869) | constructor (message) {
  class RequestContentLengthMismatchError (line 14810) | class RequestContentLengthMismatchError extends UndiciError {
    method constructor (line 14811) | constructor (message) {
    method constructor (line 36879) | constructor (message) {
  class ResponseContentLengthMismatchError (line 14820) | class ResponseContentLengthMismatchError extends UndiciError {
    method constructor (line 14821) | constructor (message) {
    method constructor (line 36889) | constructor (message) {
  class ClientDestroyedError (line 14830) | class ClientDestroyedError extends UndiciError {
    method constructor (line 14831) | constructor (message) {
    method constructor (line 36899) | constructor (message) {
  class ClientClosedError (line 14840) | class ClientClosedError extends UndiciError {
    method constructor (line 14841) | constructor (message) {
    method constructor (line 36909) | constructor (message) {
  class SocketError (line 14850) | class SocketError extends UndiciError {
    method constructor (line 14851) | constructor (message, socket) {
    method constructor (line 36919) | constructor (message, socket) {
  class NotSupportedError (line 14861) | class NotSupportedError extends UndiciError {
    method constructor (line 14862) | constructor (message) {
    method constructor (line 36930) | constructor (message) {
  class BalancedPoolMissingUpstreamError (line 14871) | class BalancedPoolMissingUpstreamError extends UndiciError {
    method constructor (line 14872) | constructor (message) {
    method constructor (line 36940) | constructor (message) {
  class HTTPParserError (line 14881) | class HTTPParserError extends Error {
    method constructor (line 14882) | constructor (message, code, data) {
    method constructor (line 36950) | constructor (message, code, data) {
  class ResponseExceededMaxSizeError (line 14891) | class ResponseExceededMaxSizeError extends UndiciError {
    method constructor (line 14892) | constructor (message) {
    method constructor (line 36960) | constructor (message) {
  class RequestRetryError (line 14901) | class RequestRetryError extends UndiciError {
    method constructor (line 14902) | constructor (message, code, { headers, data }) {
    method constructor (line 36970) | constructor (message, code, { headers, data }) {
  class Request (line 14996) | class Request {
    method constructor (line 14997) | constructor (origin, {
    method onBodySent (line 15173) | onBodySent (chunk) {
    method onRequestSent (line 15183) | onRequestSent () {
    method onConnect (line 15197) | onConnect (abort) {
    method onHeaders (line 15209) | onHeaders (statusCode, headers, resume, statusText) {
    method onData (line 15224) | onData (chunk) {
    method onUpgrade (line 15236) | onUpgrade (statusCode, headers, socket) {
    method onComplete (line 15243) | onComplete (trailers) {
    method onError (line 15261) | onError (error) {
    method onFinally (line 15276) | onFinally () {
    method addHeader (line 15289) | addHeader (key, value) {
    method [kHTTP1BuildRequest] (line 15294) | static [kHTTP1BuildRequest] (origin, opts, handler) {
    method [kHTTP2BuildRequest] (line 15300) | static [kHTTP2BuildRequest] (origin, opts, handler) {
    method [kHTTP2CopyHeaders] (line 15328) | static [kHTTP2CopyHeaders] (raw) {
    method constructor (line 21141) | constructor (input, init = {}) {
    method method (line 21633) | get method () {
    method url (line 21641) | get url () {
    method headers (line 21651) | get headers () {
    method destination (line 21660) | get destination () {
    method referrer (line 21672) | get referrer () {
    method referrerPolicy (line 21694) | get referrerPolicy () {
    method mode (line 21704) | get mode () {
    method credentials (line 21714) | get credentials () {
    method cache (line 21722) | get cache () {
    method redirect (line 21733) | get redirect () {
    method integrity (line 21743) | get integrity () {
    method keepalive (line 21753) | get keepalive () {
    method isReloadNavigation (line 21762) | get isReloadNavigation () {
    method isHistoryNavigation (line 21772) | get isHistoryNavigation () {
    method signal (line 21783) | get signal () {
    method body (line 21790) | get body () {
    method bodyUsed (line 21796) | get bodyUsed () {
    method duplex (line 21802) | get duplex () {
    method clone (line 21809) | clone () {
    method constructor (line 37065) | constructor (origin, {
    method onBodySent (line 37241) | onBodySent (chunk) {
    method onRequestSent (line 37251) | onRequestSent () {
    method onConnect (line 37265) | onConnect (abort) {
    method onHeaders (line 37277) | onHeaders (statusCode, headers, resume, statusText) {
    method onData (line 37292) | onData (chunk) {
    method onUpgrade (line 37304) | onUpgrade (statusCode, headers, socket) {
    method onComplete (line 37311) | onComplete (trailers) {
    method onError (line 37329) | onError (error) {
    method onFinally (line 37344) | onFinally () {
    method addHeader (line 37357) | addHeader (key, value) {
    method [kHTTP1BuildRequest] (line 37362) | static [kHTTP1BuildRequest] (origin, opts, handler) {
    method [kHTTP2BuildRequest] (line 37368) | static [kHTTP2BuildRequest] (origin, opts, handler) {
    method [kHTTP2CopyHeaders] (line 37396) | static [kHTTP2CopyHeaders] (raw) {
    method constructor (line 43223) | constructor (input, init = {}) {
    method method (line 43715) | get method () {
    method url (line 43723) | get url () {
    method headers (line 43733) | get headers () {
    method destination (line 43742) | get destination () {
    method referrer (line 43754) | get referrer () {
    method referrerPolicy (line 43776) | get referrerPolicy () {
    method mode (line 43786) | get mode () {
    method credentials (line 43796) | get credentials () {
    method cache (line 43804) | get cache () {
    method redirect (line 43815) | get redirect () {
    method integrity (line 43825) | get integrity () {
    method keepalive (line 43835) | get keepalive () {
    method isReloadNavigation (line 43844) | get isReloadNavigation () {
    method isHistoryNavigation (line 43854) | get isHistoryNavigation () {
    method signal (line 43865) | get signal () {
    method body (line 43872) | get body () {
    method bodyUsed (line 43878) | get bodyUsed () {
    method duplex (line 43884) | get duplex () {
    method clone (line 43891) | clone () {
  function processHeaderValue (line 15345) | function processHeaderValue (key, val, skipAppend) {
  function processHeader (line 15359) | function processHeader (request, key, val, skipAppend = false) {
  function nop (line 15535) | function nop () {}
  function isStream (line 15537) | function isStream (obj) {
  function isBlobLike (line 15542) | function isBlobLike (object) {
  function buildURL (line 15552) | function buildURL (url, queryParams) {
  function parseURL (line 15566) | function parseURL (url) {
  function parseOrigin (line 15633) | function parseOrigin (url) {
  function getHostname (line 15643) | function getHostname (host) {
  function getServerName (line 15659) | function getServerName (host) {
  function deepClone (line 15674) | function deepClone (obj) {
  function isAsyncIterable (line 15678) | function isAsyncIterable (obj) {
  function isIterable (line 15682) | function isIterable (obj) {
  function bodyLength (line 15686) | function bodyLength (body) {
  function isDestroyed (line 15703) | function isDestroyed (stream) {
  function isReadableAborted (line 15707) | function isReadableAborted (stream) {
  function destroy (line 15712) | function destroy (stream, err) {
  function parseKeepAliveTimeout (line 15736) | function parseKeepAliveTimeout (val) {
  function parseHeaders (line 15741) | function parseHeaders (headers, obj = {}) {
  function parseRawHeaders (line 15772) | function parseRawHeaders (headers) {
  function isBuffer (line 15799) | function isBuffer (buffer) {
  function validateHandler (line 15804) | function validateHandler (handler, method, upgrade) {
  function isDisturbed (line 15842) | function isDisturbed (body) {
  function isErrored (line 15853) | function isErrored (body) {
  function isReadable (line 15861) | function isReadable (body) {
  function getSocketInfo (line 15869) | function getSocketInfo (socket) {
  function ReadableStreamFrom (line 15889) | function ReadableStreamFrom (iterable) {
  function isFormDataLike (line 15926) | function isFormDataLike (object) {
  function throwIfAborted (line 15940) | function throwIfAborted (signal) {
  function addAbortListener (line 15954) | function addAbortListener (signal, listener) {
  function toUSVString (line 15968) | function toUSVString (val) {
  function parseRangeHeader (line 15980) | function parseRangeHeader (range) {
  class DispatcherBase (line 16056) | class DispatcherBase extends Dispatcher {
    method constructor (line 16057) | constructor () {
    method destroyed (line 16066) | get destroyed () {
    method closed (line 16070) | get closed () {
    method interceptors (line 16074) | get interceptors () {
    method interceptors (line 16078) | set interceptors (newInterceptors) {
    method close (line 16091) | close (callback) {
    method destroy (line 16137) | destroy (err, callback) {
    method [kInterceptedDispatch] (line 16186) | [kInterceptedDispatch] (opts, handler) {
    method dispatch (line 16200) | dispatch (opts, handler) {
    method constructor (line 38136) | constructor () {
    method destroyed (line 38145) | get destroyed () {
    method closed (line 38149) | get closed () {
    method interceptors (line 38153) | get interceptors () {
    method interceptors (line 38157) | set interceptors (newInterceptors) {
    method close (line 38170) | close (callback) {
    method destroy (line 38216) | destroy (err, callback) {
    method [kInterceptedDispatch] (line 38265) | [kInterceptedDispatch] (opts, handler) {
    method dispatch (line 38279) | dispatch (opts, handler) {
  class Dispatcher (line 16244) | class Dispatcher extends EventEmitter {
    method dispatch (line 16245) | dispatch () {
    method close (line 16249) | close () {
    method destroy (line 16253) | destroy () {
    method dispatch (line 38324) | dispatch () {
    method close (line 38328) | close () {
    method destroy (line 38332) | destroy () {
  function extractBody (line 16299) | function extractBody (object, keepalive = false) {
  function safelyExtractBody (line 16519) | function safelyExtractBody (object, keepalive = false) {
  function cloneBody (line 16541) | function cloneBody (body) {
  function throwIfAborted (line 16587) | function throwIfAborted (state) {
  function bodyMixinMethods (line 16593) | function bodyMixinMethods (instance) {
  function mixinBody (line 16755) | function mixinBody (prototype) {
  function specConsumeBody (line 16765) | async function specConsumeBody (object, convertBytesToJSValue, instance) {
  function bodyUnusable (line 16810) | function bodyUnusable (body) {
  function utf8DecodeBytes (line 16821) | function utf8DecodeBytes (buffer) {
  function parseJSONFromBytes (line 16847) | function parseJSONFromBytes (bytes) {
  function bodyMimeType (line 16855) | function bodyMimeType (object) {
  function dataURLProcessor (line 17056) | function dataURLProcessor (dataURL) {
  function URLSerializer (line 17158) | function URLSerializer (url, excludeFragment = false) {
  function collectASequenceOfCodePoints (line 17175) | function collectASequenceOfCodePoints (condition, input, position) {
  function collectASequenceOfCodePointsFast (line 17199) | function collectASequenceOfCodePointsFast (char, input, position) {
  function stringPercentDecode (line 17214) | function stringPercentDecode (input) {
  function percentDecode (line 17224) | function percentDecode (input) {
  function parseMIMEType (line 17269) | function parseMIMEType (input) {
  function forgivingBase64 (line 17442) | function forgivingBase64 (data) {
  function collectAnHTTPQuotedString (line 17486) | function collectAnHTTPQuotedString (input, position, extractValue) {
  function serializeAMimeType (line 17561) | function serializeAMimeType (mimeType) {
  function isHTTPWhiteSpace (line 17606) | function isHTTPWhiteSpace (char) {
  function removeHTTPWhitespace (line 17614) | function removeHTTPWhitespace (str, leading = true, trailing = true) {
  function isASCIIWhitespace (line 17633) | function isASCIIWhitespace (char) {
  function removeASCIIWhitespace (line 17640) | function removeASCIIWhitespace (str, leading = true, trailing = true) {
  class File (line 17684) | class File extends Blob {
    method constructor (line 17685) | constructor (fileBits, fileName, options = {}) {
    method name (line 17749) | get name () {
    method lastModified (line 17755) | get lastModified () {
    method type (line 17761) | get type () {
    method constructor (line 39764) | constructor (fileBits, fileName, options = {}) {
    method name (line 39828) | get name () {
    method lastModified (line 39834) | get lastModified () {
    method type (line 39840) | get type () {
  class FileLike (line 17768) | class FileLike {
    method constructor (line 17769) | constructor (blobLike, fileName, options = {}) {
    method stream (line 17816) | stream (...args) {
    method arrayBuffer (line 17822) | arrayBuffer (...args) {
    method slice (line 17828) | slice (...args) {
    method text (line 17834) | text (...args) {
    method size (line 17840) | get size () {
    method type (line 17846) | get type () {
    method name (line 17852) | get name () {
    method lastModified (line 17858) | get lastModified () {
    method constructor (line 39848) | constructor (blobLike, fileName, options = {}) {
    method stream (line 39895) | stream (...args) {
    method arrayBuffer (line 39901) | arrayBuffer (...args) {
    method slice (line 39907) | slice (...args) {
    method text (line 39913) | text (...args) {
    method size (line 39919) | get size () {
    method type (line 39925) | get type () {
    method name (line 39931) | get name () {
    method lastModified (line 39937) | get lastModified () {
  method [Symbol.toStringTag] (line 17864) | get [Symbol.toStringTag] () {
  method defaultValue (line 17906) | get defaultValue () {
  function processBlobParts (line 17936) | function processBlobParts (parts, options) {
  function convertLineEndingsNative (line 17986) | function convertLineEndingsNative (s) {
  function isFileLike (line 18004) | function isFileLike (object) {
  class FormData (line 18037) | class FormData {
    method constructor (line 18038) | constructor (form) {
    method append (line 18050) | append (name, value, filename = undefined) {
    method delete (line 18079) | delete (name) {
    method get (line 18091) | get (name) {
    method getAll (line 18110) | getAll (name) {
    method has (line 18126) | has (name) {
    method set (line 18138) | set (name, value, filename = undefined) {
    method entries (line 18181) | entries () {
    method keys (line 18191) | keys () {
    method values (line 18201) | values () {
    method forEach (line 18215) | forEach (callbackFn, thisArg = globalThis) {
    method constructor (line 40117) | constructor (form) {
    method append (line 40129) | append (name, value, filename = undefined) {
    method delete (line 40158) | delete (name) {
    method get (line 40170) | get (name) {
    method getAll (line 40189) | getAll (name) {
    method has (line 40205) | has (name) {
    method set (line 40217) | set (name, value, filename = undefined) {
    method entries (line 40260) | entries () {
    method keys (line 40270) | keys () {
    method values (line 40280) | values () {
    method forEach (line 40294) | forEach (callbackFn, thisArg = globalThis) {
  function makeEntry (line 18248) | function makeEntry (name, value, filename) {
  function getGlobalOrigin (line 18304) | function getGlobalOrigin () {
  function setGlobalOrigin (line 18308) | function setGlobalOrigin (newOrigin) {
  function isHTTPWhiteSpaceCharCode (line 18367) | function isHTTPWhiteSpaceCharCode (code) {
  function headerValueNormalize (line 18375) | function headerValueNormalize (potentialValue) {
  function fill (line 18387) | function fill (headers, object) {
  function appendHeader (line 18427) | function appendHeader (headers, name, value) {
  class HeadersList (line 18468) | class HeadersList {
    method constructor (line 18472) | constructor (init) {
    method contains (line 18484) | contains (name) {
    method clear (line 18493) | clear () {
    method append (line 18500) | append (name, value) {
    method set (line 18526) | set (name, value) {
    method delete (line 18542) | delete (name) {
    method get (line 18555) | get (name) {
    method entries (line 18572) | get entries () {
    method constructor (line 40551) | constructor (init) {
    method contains (line 40563) | contains (name) {
    method clear (line 40572) | clear () {
    method append (line 40579) | append (name, value) {
    method set (line 40605) | set (name, value) {
    method delete (line 40621) | delete (name) {
    method get (line 40634) | get (name) {
    method entries (line 40651) | get entries () {
  method [Symbol.iterator] (line 18565) | * [Symbol.iterator] () {
  class Headers (line 18586) | class Headers {
    method constructor (line 18587) | constructor (init = undefined) {
    method append (line 18606) | append (name, value) {
    method delete (line 18618) | delete (name) {
    method get (line 18663) | get (name) {
    method has (line 18685) | has (name) {
    method set (line 18707) | set (name, value) {
    method getSetCookie (line 18756) | getSetCookie () {
    method [kHeadersSortedMap] (line 18773) | get [kHeadersSortedMap] () {
    method keys (line 18819) | keys () {
    method values (line 18835) | values () {
    method entries (line 18851) | entries () {
    method forEach (line 18871) | forEach (callbackFn, thisArg = globalThis) {
    method constructor (line 40666) | constructor (init = undefined) {
    method append (line 40685) | append (name, value) {
    method delete (line 40697) | delete (name) {
    method get (line 40742) | get (name) {
    method has (line 40764) | has (name) {
    method set (line 40786) | set (name, value) {
    method getSetCookie (line 40835) | getSetCookie () {
    method [kHeadersSortedMap] (line 40852) | get [kHeadersSortedMap] () {
    method keys (line 40898) | keys () {
    method values (line 40914) | values () {
    method entries (line 40930) | entries () {
    method forEach (line 40950) | forEach (callbackFn, thisArg = globalThis) {
  method [Symbol.for('nodejs.util.inspect.custom')] (line 18887) | [Symbol.for('nodejs.util.inspect.custom')] () {
  class Fetch (line 19013) | class Fetch extends EE {
    method constructor (line 19014) | constructor (dispatcher) {
    method terminate (line 19029) | terminate (reason) {
    method abort (line 19040) | abort (error) {
    method constructor (line 41093) | constructor (dispatcher) {
    method terminate (line 41108) | terminate (reason) {
    method abort (line 41119) | abort (error) {
  function fetch (line 19067) | function fetch (input, init = {}) {
  function finalizeAndReportTiming (line 19200) | function finalizeAndReportTiming (response, initiatorType = 'other') {
  function markResourceTiming (line 19263) | function markResourceTiming (timingInfo, originalURL, initiatorType, glo...
  function abortFetch (line 19270) | function abortFetch (p, request, responseObject, error) {
  function fetching (line 19315) | function fetching ({
  function mainFetch (line 19470) | async function mainFetch (fetchParams, recursive = false) {
  function schemeFetch (line 19722) | function schemeFetch (fetchParams) {
  function finalizeResponse (line 19839) | function finalizeResponse (fetchParams, response) {
  function fetchFinale (line 19852) | function fetchFinale (fetchParams, response) {
  function httpFetch (line 19943) | async function httpFetch (fetchParams) {
  function httpRedirectFetch (line 20046) | function httpRedirectFetch (fetchParams, response) {
  function httpNetworkOrCacheFetch (line 20187) | async function httpNetworkOrCacheFetch (
  function httpNetworkFetch (line 20517) | async function httpNetworkFetch (
  class Request (line 21139) | class Request {
    method constructor (line 14997) | constructor (origin, {
    method onBodySent (line 15173) | onBodySent (chunk) {
    method onRequestSent (line 15183) | onRequestSent () {
    method onConnect (line 15197) | onConnect (abort) {
    method onHeaders (line 15209) | onHeaders (statusCode, headers, resume, statusText) {
    method onData (line 15224) | onData (chunk) {
    method onUpgrade (line 15236) | onUpgrade (statusCode, headers, socket) {
    method onComplete (line 15243) | onComplete (trailers) {
    method onError (line 15261) | onError (error) {
    method onFinally (line 15276) | onFinally () {
    method addHeader (line 15289) | addHeader (key, value) {
    method [kHTTP1BuildRequest] (line 15294) | static [kHTTP1BuildRequest] (origin, opts, handler) {
    method [kHTTP2BuildRequest] (line 15300) | static [kHTTP2BuildRequest] (origin, opts, handler) {
    method [kHTTP2CopyHeaders] (line 15328) | static [kHTTP2CopyHeaders] (raw) {
    method constructor (line 21141) | constructor (input, init = {}) {
    method method (line 21633) | get method () {
    method url (line 21641) | get url () {
    method headers (line 21651) | get headers () {
    method destination (line 21660) | get destination () {
    method referrer (line 21672) | get referrer () {
    method referrerPolicy (line 21694) | get referrerPolicy () {
    method mode (line 21704) | get mode () {
    method credentials (line 21714) | get credentials () {
    method cache (line 21722) | get cache () {
    method redirect (line 21733) | get redirect () {
    method integrity (line 21743) | get integrity () {
    method keepalive (line 21753) | get keepalive () {
    method isReloadNavigation (line 21762) | get isReloadNavigation () {
    method isHistoryNavigation (line 21772) | get isHistoryNavigation () {
    method signal (line 21783) | get signal () {
    method body (line 21790) | get body () {
    method bodyUsed (line 21796) | get bodyUsed () {
    method duplex (line 21802) | get duplex () {
    method clone (line 21809) | clone () {
    method constructor (line 37065) | constructor (origin, {
    method onBodySent (line 37241) | onBodySent (chunk) {
    method onRequestSent (line 37251) | onRequestSent () {
    method onConnect (line 37265) | onConnect (abort) {
    method onHeaders (line 37277) | onHeaders (statusCode, headers, resume, statusText) {
    method onData (line 37292) | onData (chunk) {
    method onUpgrade (line 37304) | onUpgrade (statusCode, headers, socket) {
    method onComplete (line 37311) | onComplete (trailers) {
    method onError (line 37329) | onError (error) {
    method onFinally (line 37344) | onFinally () {
    method addHeader (line 37357) | addHeader (key, value) {
    method [kHTTP1BuildRequest] (line 37362) | static [kHTTP1BuildRequest] (origin, opts, handler) {
    method [kHTTP2BuildRequest] (line 37368) | static [kHTTP2BuildRequest] (origin, opts, handler) {
    method [kHTTP2CopyHeaders] (line 37396) | static [kHTTP2CopyHeaders] (raw) {
    method constructor (line 43223) | constructor (input, init = {}) {
    method method (line 43715) | get method () {
    method url (line 43723) | get url () {
    method headers (line 43733) | get headers () {
    method destination (line 43742) | get destination () {
    method referrer (line 43754) | get referrer () {
    method referrerPolicy (line 43776) | get referrerPolicy () {
    method mode (line 43786) | get mode () {
    method credentials (line 43796) | get credentials () {
    method cache (line 43804) | get cache () {
    method redirect (line 43815) | get redirect () {
    method integrity (line 43825) | get integrity () {
    method keepalive (line 43835) | get keepalive () {
    method isReloadNavigation (line 43844) | get isReloadNavigation () {
    method isHistoryNavigation (line 43854) | get isHistoryNavigation () {
    method signal (line 43865) | get signal () {
    method body (line 43872) | get body () {
    method bodyUsed (line 43878) | get bodyUsed () {
    method duplex (line 43884) | get duplex () {
    method clone (line 43891) | clone () {
  function makeRequest (line 21851) | function makeRequest (init) {
  function cloneRequest (line 21899) | function cloneRequest (request) {
  class Response (line 22083) | class Response {
    method error (line 22085) | static error () {
    method json (line 22102) | static json (data, init = {}) {
    method redirect (line 22133) | static redirect (url, status = 302) {
    method constructor (line 22180) | constructor (body = null, init = {}) {
    method type (line 22215) | get type () {
    method url (line 22223) | get url () {
    method redirected (line 22241) | get redirected () {
    method status (line 22250) | get status () {
    method ok (line 22258) | get ok () {
    method statusText (line 22267) | get statusText () {
    method headers (line 22276) | get headers () {
    method body (line 22283) | get body () {
    method bodyUsed (line 22289) | get bodyUsed () {
    method clone (line 22296) | clone () {
    method error (line 44167) | static error () {
    method json (line 44184) | static json (data, init = {}) {
    method redirect (line 44215) | static redirect (url, status = 302) {
    method constructor (line 44262) | constructor (body = null, init = {}) {
    method type (line 44297) | get type () {
    method url (line 44305) | get url () {
    method redirected (line 44323) | get redirected () {
    method status (line 44332) | get status () {
    method ok (line 44340) | get ok () {
    method statusText (line 44349) | get statusText () {
    method headers (line 44358) | get headers () {
    method body (line 44365) | get body () {
    method bodyUsed (line 44371) | get bodyUsed () {
    method clone (line 44378) | clone () {
  function cloneResponse (line 22349) | function cloneResponse (response) {
  function makeResponse (line 22375) | function makeResponse (init) {
  function makeNetworkError (line 22394) | function makeNetworkError (reason) {
  function makeFilteredResponse (line 22406) | function makeFilteredResponse (response, state) {
  function filterResponse (line 22425) | function filterResponse (response, type) {
  function makeAppropriateNetworkError (line 22479) | function makeAppropriateNetworkError (fetchParams, err = null) {
  function initializeResponse (line 22491) | function initializeResponse (response, init, body) {
  function responseURL (line 22666) | function responseURL (response) {
  function responseLocationURL (line 22676) | function responseLocationURL (response, requestFragment) {
  function requestCurrentURL (line 22703) | function requestCurrentURL (request) {
  function requestBadPort (line 22707) | function requestBadPort (request) {
  function isErrorLike (line 22721) | function isErrorLike (object) {
  function isValidReasonPhrase (line 22734) | function isValidReasonPhrase (statusText) {
  function isTokenCharCode (line 22756) | function isTokenCharCode (c) {
  function isValidHTTPToken (line 22786) | function isValidHTTPToken (characters) {
  function isValidHeaderName (line 22802) | function isValidHeaderName (potentialValue) {
  function isValidHeaderValue (line 22810) | function isValidHeaderValue (potentialValue) {
  function setRequestReferrerPolicyOnRedirect (line 22834) | function setRequestReferrerPolicyOnRedirect (request, actualResponse) {
  function crossOriginResourcePolicyCheck (line 22874) | function crossOriginResourcePolicyCheck () {
  function corsCheck (line 22880) | function corsCheck () {
  function TAOCheck (line 22886) | function TAOCheck () {
  function appendFetchMetadata (line 22891) | function appendFetchMetadata (httpRequest) {
  function appendRequestOriginHeader (line 22917) | function appendRequestOriginHeader (request) {
  function coarsenedSharedCurrentTime (line 22960) | function coarsenedSharedCurrentTime (crossOriginIsolatedCapability) {
  function createOpaqueTimingInfo (line 22966) | function createOpaqueTimingInfo (timingInfo) {
  function makePolicyContainer (line 22983) | function makePolicyContainer () {
  function clonePolicyContainer (line 22991) | function clonePolicyContainer (policyContainer) {
  function determineRequestsReferrer (line 22998) | function determineRequestsReferrer (request) {
  function stripURLForReferrer (line 23097) | function stripURLForReferrer (url, originOnly) {
  function isURLPotentiallyTrustworthy (line 23128) | function isURLPotentiallyTrustworthy (url) {
  function bytesMatch (line 23174) | function bytesMatch (bytes, metadataList) {
  function parseMetadata (line 23256) | function parseMetadata (metadata) {
  function tryUpgradeRequestToAPotentiallyTrustworthyURL (line 23302) | function tryUpgradeRequestToAPotentiallyTrustworthyURL (request) {
  function sameOrigin (line 23311) | function sameOrigin (A, B) {
  function createDeferredPromise (line 23327) | function createDeferredPromise () {
  function isAborted (line 23338) | function isAborted (fetchParams) {
  function isCancelled (line 23342) | function isCancelled (fetchParams) {
  function normalizeMethod (line 23369) | function normalizeMethod (method) {
  function serializeJavascriptValueToJSONString (line 23374) | function serializeJavascriptValueToJSONString (value) {
  function makeIterator (line 23399) | function makeIterator (iterator, name, kind) {
  function iteratorResult (line 23462) | function iteratorResult (pair, kind) {
  function fullyReadBody (line 23506) | async function fullyReadBody (body, processBody, processBodyError) {
  function isReadableStreamLike (line 23542) | function isReadableStreamLike (stream) {
  function isomorphicDecode (line 23559) | function isomorphicDecode (input) {
  function readableStreamClose (line 23574) | function readableStreamClose (controller) {
  function isomorphicEncode (line 23589) | function isomorphicEncode (input) {
  function readAllBytes (line 23606) | async function readAllBytes (reader) {
  function urlIsLocal (line 23636) | function urlIsLocal (url) {
  function urlHasHttpsScheme (line 23647) | function urlHasHttpsScheme (url) {
  function urlIsHttpHttpsScheme (line 23659) | function urlIsHttpHttpsScheme (url) {
  function getEncoding (line 24386) | function getEncoding (label) {
  class FileReader (line 24695) | class FileReader extends EventTarget {
    method constructor (line 24696) | constructor () {
    method readAsArrayBuffer (line 24716) | readAsArrayBuffer (blob) {
    method readAsBinaryString (line 24732) | readAsBinaryString (blob) {
    method readAsText (line 24749) | readAsText (blob, encoding = undefined) {
    method readAsDataURL (line 24769) | readAsDataURL (blob) {
    method abort (line 24784) | abort () {
    method readyState (line 24821) | get readyState () {
    method result (line 24834) | get result () {
    method error (line 24845) | get error () {
    method onloadend (line 24853) | get onloadend () {
    method onloadend (line 24859) | set onloadend (fn) {
    method onerror (line 24874) | get onerror () {
    method onerror (line 24880) | set onerror (fn) {
    method onloadstart (line 24895) | get onloadstart () {
    method onloadstart (line 24901) | set onloadstart (fn) {
    method onprogress (line 24916) | get onprogress () {
    method onprogress (line 24922) | set onprogress (fn) {
    method onload (line 24937) | get onload () {
    method onload (line 24943) | set onload (fn) {
    method onabort (line 24958) | get onabort () {
    method onabort (line 24964) | set onabort (fn) {
    method constructor (line 46851) | constructor () {
    method readAsArrayBuffer (line 46871) | readAsArrayBuffer (blob) {
    method readAsBinaryString (line 46887) | readAsBinaryString (blob) {
    method readAsText (line 46904) | readAsText (blob, encoding = undefined) {
    method readAsDataURL (line 46924) | readAsDataURL (blob) {
    method abort (line 46939) | abort () {
    method readyState (line 46976) | get readyState () {
    method result (line 46989) | get result () {
    method error (line 47000) | get error () {
    method onloadend (line 47008) | get onloadend () {
    method onloadend (line 47014) | set onloadend (fn) {
    method onerror (line 47029) | get onerror () {
    method onerror (line 47035) | set onerror (fn) {
    method onloadstart (line 47050) | get onloadstart () {
    method onloadstart (line 47056) | set onloadstart (fn) {
    method onprogress (line 47071) | get onprogress () {
    method onprogress (line 47077) | set onprogress (fn) {
    method onload (line 47092) | get onload () {
    method onload (line 47098) | set onload (fn) {
    method onabort (line 47113) | get onabort () {
    method onabort (line 47119) | set onabort (fn) {
  class ProgressEvent (line 25039) | class ProgressEvent extends Event {
    method constructor (line 25040) | constructor (type, eventInitDict = {}) {
    method lengthComputable (line 25053) | get lengthComputable () {
    method loaded (line 25059) | get loaded () {
    method total (line 25065) | get total () {
    method constructor (line 47195) | constructor (type, eventInitDict = {}) {
    method lengthComputable (line 47208) | get lengthComputable () {
    method loaded (line 47214) | get loaded () {
    method total (line 47220) | get total () {
  function readOperation (line 25165) | function readOperation (fr, blob, type, encodingName) {
  function fireAProgressEvent (line 25331) | function fireAProgressEvent (e, reader) {
  function packageData (line 25349) | function packageData (bytes, type, mimeType, encodingName) {
  function decode (line 25451) | function decode (ioQueue, encoding) {
  function BOMSniffing (line 25483) | function BOMSniffing (ioQueue) {
  function combineByteSequences (line 25507) | function combineByteSequences (sequences) {
  function setGlobalDispatcher (line 25546) | function setGlobalDispatcher (agent) {
  function getGlobalDispatcher (line 25558) | function getGlobalDispatcher () {
  method constructor (line 25577) | constructor (handler) {
  method onConnect (line 25581) | onConnect (...args) {
  method onError (line 25585) | onError (...args) {
  method onUpgrade (line 25589) | onUpgrade (...args) {
  method onHeaders (line 25593) | onHeaders (...args) {
  method onData (line 25597) | onData (...args) {
  method onComplete (line 25601) | onComplete (...args) {
  method onBodySent (line 25605) | onBodySent (...args) {
  class BodyAsyncIterable (line 25629) | class BodyAsyncIterable {
    method constructor (line 25630) | constructor (body) {
    method constructor (line 47785) | constructor (body) {
  method [Symbol.asyncIterator] (line 25635) | async * [Symbol.asyncIterator] () {
  class RedirectHandler (line 25642) | class RedirectHandler {
    method constructor (line 25643) | constructor (dispatch, maxRedirections, opts, handler) {
    method onConnect (line 25692) | onConnect (abort) {
    method onUpgrade (line 25697) | onUpgrade (statusCode, headers, socket) {
    method onError (line 25701) | onError (error) {
    method onHeaders (line 25705) | onHeaders (statusCode, headers, resume, statusText) {
    method onData (line 25738) | onData (chunk) {
    method onComplete (line 25762) | onComplete (trailers) {
    method onBodySent (line 25782) | onBodySent (chunk) {
    method constructor (line 47798) | constructor (dispatch, maxRedirections, opts, handler) {
    method onConnect (line 47847) | onConnect (abort) {
    method onUpgrade (line 47852) | onUpgrade (statusCode, headers, socket) {
    method onError (line 47856) | onError (error) {
    method onHeaders (line 47860) | onHeaders (statusCode, headers, resume, statusText) {
    method onData (line 47893) | onData (chunk) {
    method onComplete (line 47917) | onComplete (trailers) {
    method onBodySent (line 47937) | onBodySent (chunk) {
  function parseLocation (line 25789) | function parseLocation (statusCode, headers) {
  function shouldRemoveHeader (line 25802) | function shouldRemoveHeader (header, removeContent, unknownOrigin) {
  function cleanRequestHeaders (line 25812) | function cleanRequestHeaders (headers, removeContent, unknownOrigin) {
  function calculateRetryAfterHeader (line 25846) | function calculateRetryAfterHeader (retryAfter) {
  class RetryHandler (line 25853) | class RetryHandler {
    method constructor (line 25854) | constructor (opts, handlers) {
    method onRequestSent (line 25916) | onRequestSent () {
    method onUpgrade (line 25922) | onUpgrade (statusCode, headers, socket) {
    method onConnect (line 25928) | onConnect (abort) {
    method onBodySent (line 25936) | onBodySent (chunk) {
    method [kRetryHandlerDefaultRetry] (line 25940) | static [kRetryHandlerDefaultRetry] (err, { state, opts }, cb) {
    method onHeaders (line 26008) | onHeaders (statusCode, rawHeaders, resume, statusMessage) {
    method onData (line 26126) | onData (chunk) {
    method onComplete (line 26132) | onComplete (rawTrailers) {
    method onError (line 26137) | onError (err) {
    method constructor (line 48014) | constructor (opts, handlers) {
    method onRequestSent (line 48076) | onRequestSent () {
    method onUpgrade (line 48082) | onUpgrade (statusCode, headers, socket) {
    method onConnect (line 48088) | onConnect (abort) {
    method onBodySent (line 48096) | onBodySent (chunk) {
    method [kRetryHandlerDefaultRetry] (line 48100) | static [kRetryHandlerDefaultRetry] (err, { state, opts }, cb) {
    method onHeaders (line 48168) | onHeaders (statusCode, rawHeaders, resume, statusMessage) {
    method onData (line 48286) | onData (chunk) {
    method onComplete (line 48292) | onComplete (rawTrailers) {
    method onError (line 48297) | onError (err) {
  function createRedirectInterceptor (line 26188) | function createRedirectInterceptor ({ maxRedirections: defaultMaxRedirec...
  function enumToMap (line 26517) | function enumToMap(obj) {
  class FakeWeakRef (line 26559) | class FakeWeakRef {
    method constructor (line 26560) | constructor (value) {
    method deref (line 26564) | deref () {
    method constructor (line 48720) | constructor (value) {
    method deref (line 48724) | deref () {
  class MockAgent (line 26569) | class MockAgent extends Dispatcher {
    method constructor (line 26570) | constructor (opts) {
    method get (line 26587) | get (origin) {
    method dispatch (line 26597) | dispatch (opts, handler) {
    method close (line 26603) | async close () {
    method deactivate (line 26608) | deactivate () {
    method activate (line 26612) | activate () {
    method enableNetConnect (line 26616) | enableNetConnect (matcher) {
    method disableNetConnect (line 26630) | disableNetConnect () {
    method isMockActive (line 26636) | get isMockActive () {
    method [kMockAgentSet] (line 26640) | [kMockAgentSet] (origin, dispatcher) {
    method [kFactory] (line 26644) | [kFactory] (origin) {
    method [kMockAgentGet] (line 26651) | [kMockAgentGet] (origin) {
    method [kGetNetConnect] (line 26677) | [kGetNetConnect] () {
    method pendingInterceptors (line 26681) | pendingInterceptors () {
    method assertNoPendingInterceptors (line 26689) | assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new Pend...
    method constructor (line 48730) | constructor (opts) {
    method get (line 48747) | get (origin) {
    method dispatch (line 48757) | dispatch (opts, handler) {
    method close (line 48763) | async close () {
    method deactivate (line 48768) | deactivate () {
    method activate (line 48772) | activate () {
    method enableNetConnect (line 48776) | enableNetConnect (matcher) {
    method disableNetConnect (line 48790) | disableNetConnect () {
    method isMockActive (line 48796) | get isMockActive () {
    method [kMockAgentSet] (line 48800) | [kMockAgentSet] (origin, dispatcher) {
    method [kFactory] (line 48804) | [kFactory] (origin) {
    method [kMockAgentGet] (line 48811) | [kMockAgentGet] (origin) {
    method [kGetNetConnect] (line 48837) | [kGetNetConnect] () {
    method pendingInterceptors (line 48841) | pendingInterceptors () {
    method assertNoPendingInterceptors (line 48849) | assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new Pend...
  class MockClient (line 26736) | class MockClient extends Client {
    method constructor (line 26737) | constructor (origin, opts) {
    method intercept (line 26762) | intercept (opts) {
    method [kClose] (line 26766) | async [kClose] () {
    method constructor (line 48897) | constructor (origin, opts) {
    method intercept (line 48922) | intercept (opts) {
    method [kClose] (line 48926) | async [kClose] () {
  method [Symbols.kConnected] (line 26755) | get [Symbols.kConnected] () {
  class MockNotMatchedError (line 26786) | class MockNotMatchedError extends UndiciError {
    method constructor (line 26787) | constructor (message) {
    method constructor (line 48947) | constructor (message) {
  class MockScope (line 26824) | class MockScope {
    method constructor (line 26825) | constructor (mockDispatch) {
    method delay (line 26832) | delay (waitInMs) {
    method persist (line 26844) | persist () {
    method times (line 26852) | times (repeatTimes) {
    method constructor (line 48985) | constructor (mockDispatch) {
    method delay (line 48992) | delay (waitInMs) {
    method persist (line 49004) | persist () {
    method times (line 49012) | times (repeatTimes) {
  class MockInterceptor (line 26865) | class MockInterceptor {
    method constructor (line 26866) | constructor (opts, mockDispatches) {
    method createMockScopeDispatchData (line 26899) | createMockScopeDispatchData (statusCode, data, responseOptions = {}) {
    method validateReplyParameters (line 26908) | validateReplyParameters (statusCode, data, responseOptions) {
    method reply (line 26923) | reply (replyData) {
    method replyWithError (line 26969) | replyWithError (error) {
    method defaultReplyHeaders (line 26981) | defaultReplyHeaders (headers) {
    method defaultReplyTrailers (line 26993) | defaultReplyTrailers (trailers) {
    method replyContentLength (line 27005) | replyContentLength () {
    method constructor (line 49026) | constructor (opts, mockDispatches) {
    method createMockScopeDispatchData (line 49059) | createMockScopeDispatchData (statusCode, data, responseOptions = {}) {
    method validateReplyParameters (line 49068) | validateReplyParameters (statusCode, data, responseOptions) {
    method reply (line 49083) | reply (replyData) {
    method replyWithError (line 49129) | replyWithError (error) {
    method defaultReplyHeaders (line 49141) | defaultReplyHeaders (headers) {
    method defaultReplyTrailers (line 49153) | defaultReplyTrailers (trailers) {
    method replyContentLength (line 49165) | replyContentLength () {
  class MockPool (line 27042) | class MockPool extends Pool {
    method constructor (line 27043) | constructor (origin, opts) {
    method intercept (line 27068) | intercept (opts) {
    method [kClose] (line 27072) | async [kClose] () {
    method constructor (line 49203) | constructor (origin, opts) {
    method intercept (line 49228) | intercept (opts) {
    method [kClose] (line 49232) | async [kClose] () {
  method [Symbols.kConnected] (line 27061) | get [Symbols.kConnected] () {
  function matchValue (line 27137) | function matchValue (match, value) {
  function lowerCaseEntries (line 27150) | function lowerCaseEntries (headers) {
  function getHeaderByName (line 27162) | function getHeaderByName (headers, key) {
  function buildHeadersFromArray (line 27179) | function buildHeadersFromArray (headers) { // fetch HeadersList
  function matchHeaders (line 27188) | function matchHeaders (mockDispatch, headers) {
  function safeUrl (line 27212) | function safeUrl (path) {
  function matchKey (line 27228) | function matchKey (mockDispatch, { path, method, body, headers }) {
  function getResponseData (line 27236) | function getResponseData (data) {
  function getMockDispatch (line 27246) | function getMockDispatch (mockDispatches, key) {
  function addMockDispatch (line 27277) | function addMockDispatch (mockDispatches, key, data) {
  function deleteMockDispatch (line 27285) | function deleteMockDispatch (mockDispatches, key) {
  function buildKey (line 27297) | function buildKey (opts) {
  function generateKeyValues (line 27308) | function generateKeyValues (data) {
  function getStatusText (line 27320) | function getStatusText (statusCode) {
  function getResponse (line 27324) | async function getResponse (body) {
  function mockDispatch (line 27335) | function mockDispatch (opts, handler) {
  function buildMockDispatch (line 27407) | function buildMockDispatch () {
  function checkNetConnect (line 27437) | function checkNetConnect (netConnect, origin) {
  function buildMockOptions (line 27447) | function buildMockOptions (opts) {
  method constructor (line 27487) | constructor ({ disableColors } = {}) {
  method format (line 27502) | format (pendingInterceptors) {
  method constructor (line 27543) | constructor (singular, plural) {
  method pluralize (line 27548) | pluralize (count) {
  class FixedCircularBuffer (line 27621) | class FixedCircularBuffer {
    method constructor (line 27622) | constructor() {
    method isEmpty (line 27629) | isEmpty() {
    method isFull (line 27633) | isFull() {
    method push (line 27637) | push(data) {
    method shift (line 27642) | shift() {
    method constructor (line 49782) | constructor() {
    method isEmpty (line 49789) | isEmpty() {
    method isFull (line 49793) | isFull() {
    method push (line 49797) | push(data) {
    method shift (line 49802) | shift() {
  method constructor (line 27653) | constructor() {
  method isEmpty (line 27657) | isEmpty() {
  method push (line 27661) | push(data) {
  method shift (line 27670) | shift() {
  class PoolBase (line 27708) | class PoolBase extends DispatcherBase {
    method constructor (line 27709) | constructor () {
    method [kBusy] (line 27761) | get [kBusy] () {
    method [kConnected] (line 27765) | get [kConnected] () {
    method [kFree] (line 27769) | get [kFree] () {
    method [kPending] (line 27773) | get [kPending] () {
    method [kRunning] (line 27781) | get [kRunning] () {
    method [kSize] (line 27789) | get [kSize] () {
    method stats (line 27797) | get stats () {
    method [kClose] (line 27801) | async [kClose] () {
    method [kDestroy] (line 27811) | async [kDestroy] (err) {
    method [kDispatch] (line 27823) | [kDispatch] (opts, handler) {
    method [kAddClient] (line 27838) | [kAddClient] (client) {
    method [kRemoveClient] (line 27858) | [kRemoveClient] (client) {
    method constructor (line 49869) | constructor () {
    method [kBusy] (line 49921) | get [kBusy] () {
    method [kConnected] (line 49925) | get [kConnected] () {
    method [kFree] (line 49929) | get [kFree] () {
    method [kPending] (line 49933) | get [kPending] () {
    method [kRunning] (line 49941) | get [kRunning] () {
    method [kSize] (line 49949) | get [kSize] () {
    method stats (line 49957) | get stats () {
    method [kClose] (line 49961) | async [kClose] () {
    method [kDestroy] (line 49971) | async [kDestroy] (err) {
    method [kDispatch] (line 49983) | [kDispatch] (opts, handler) {
    method [kAddClient] (line 49998) | [kAddClient] (client) {
    method [kRemoveClient] (line 50018) | [kRemoveClient] (client) {
  class PoolStats (line 27892) | class PoolStats {
    method constructor (line 27893) | constructor (pool) {
    method connected (line 27897) | get connected () {
    method free (line 27901) | get free () {
    method pending (line 27905) | get pending () {
    method queued (line 27909) | get queued () {
    method running (line 27913) | get running () {
    method size (line 27917) | get size () {
    method constructor (line 50053) | constructor (pool) {
    method connected (line 50057) | get connected () {
    method free (line 50061) | get free () {
    method pending (line 50065) | get pending () {
    method queued (line 50069) | get queued () {
    method running (line 50073) | get running () {
    method size (line 50077) | get size () {
  function defaultFactory (line 27952) | function defaultFactory (origin, opts) {
  class Pool (line 27956) | class Pool extends PoolBase {
    method constructor (line 27957) | constructor (origin, {
    method [kGetDispatcher] (line 28008) | [kGetDispatcher] () {
    method constructor (line 50117) | constructor (origin, {
    method [kGetDispatcher] (line 50168) | [kGetDispatcher] () {
  function defaultProtocolPort (line 28050) | function defaultProtocolPort (protocol) {
  function buildProxyOptions (line 28054) | function buildProxyOptions (opts) {
  function defaultFactory (line 28069) | function defaultFactory (origin, opts) {
  class ProxyAgent (line 28073) | class ProxyAgent extends DispatcherBase {
    method constructor (line 28074) | constructor (opts) {
    method dispatch (line 28157) | dispatch (opts, handler) {
    method [kClose] (line 28173) | async [kClose] () {
    method [kDestroy] (line 28178) | async [kDestroy] () {
    method constructor (line 50234) | constructor (opts) {
    method dispatch (line 50317) | dispatch (opts, handler) {
    method [kClose] (line 50333) | async [kClose] () {
    method [kDestroy] (line 50338) | async [kDestroy] () {
  function buildHeaders (line 28188) | function buildHeaders (headers) {
  function throwIfProxyAuthIsSent (line 28213) | function throwIfProxyAuthIsSent (headers) {
  function onTimeout (line 28237) | function onTimeout () {
  function refreshTimeout (line 28270) | function refreshTimeout () {
  class Timeout (line 28282) | class Timeout {
    method constructor (line 28283) | constructor (callback, delay, opaque) {
    method refresh (line 28297) | refresh () {
    method clear (line 28308) | clear () {
    method constructor (line 50443) | constructor (callback, delay, opaque) {
    method refresh (line 50457) | refresh () {
    method clear (line 50468) | clear () {
  method setTimeout (line 28314) | setTimeout (callback, delay, opaque) {
  method clearTimeout (line 28319) | clearTimeout (timeout) {
  function establishWebSocketConnection (line 28374) | function establishWebSocketConnection (url, protocols, ws, onEstablish, ...
  function onSocketData (line 28546) | function onSocketData (chunk) {
  function onSocketClose (line 28556) | function onSocketClose () {
  function onSocketError (line 28611) | function onSocketError (error) {
  class MessageEvent (line 28702) | class MessageEvent extends Event {
    method constructor (line 28705) | constructor (type, eventInitDict = {}) {
    method data (line 28716) | get data () {
    method origin (line 28722) | get origin () {
    method lastEventId (line 28728) | get lastEventId () {
    method source (line 28734) | get source () {
    method ports (line 28740) | get ports () {
    method initMessageEvent (line 28750) | initMessageEvent (
    method constructor (line 50865) | constructor (type, eventInitDict = {}) {
    method data (line 50876) | get data () {
    method origin (line 50882) | get origin () {
    method lastEventId (line 50888) | get lastEventId () {
    method source (line 50894) | get source () {
    method ports (line 50900) | get ports () {
    method initMessageEvent (line 50910) | initMessageEvent (
  class CloseEvent (line 28773) | class CloseEvent extends Event {
    method constructor (line 28776) | constructor (type, eventInitDict = {}) {
    method wasClean (line 28787) | get wasClean () {
    method code (line 28793) | get code () {
    method reason (line 28799) | get reason () {
    method constructor (line 50936) | constructor (type, eventInitDict = {}) {
    method wasClean (line 50947) | get wasClean () {
    method code (line 50953) | get code () {
    method reason (line 50959) | get reason () {
  class ErrorEvent (line 28807) | class ErrorEvent extends Event {
    method constructor (line 28810) | constructor (type, eventInitDict) {
    method message (line 28821) | get message () {
    method filename (line 28827) | get filename () {
    method lineno (line 28833) | get lineno () {
    method colno (line 28839) | get colno () {
    method error (line 28845) | get error () {
    method constructor (line 50970) | constructor (type, eventInitDict) {
    method message (line 50981) | get message () {
    method filename (line 50987) | get filename () {
    method lineno (line 50993) | get lineno () {
    method colno (line 50999) | get colno () {
    method error (line 51005) | get error () {
  method defaultValue (line 28938) | get defaultValue () {
  class WebsocketFrameSend (line 29016) | class WebsocketFrameSend {
    method constructor (line 29020) | constructor (data) {
    method createFrame (line 29025) | createFrame (opcode) {
    method constructor (line 51180) | constructor (data) {
    method createFrame (line 51185) | createFrame (opcode) {
  class ByteParser (line 29103) | class ByteParser extends Writable {
    method constructor (line 29112) | constructor (ws) {
    method _write (line 29122) | _write (chunk, _, callback) {
    method run (line 29134) | run (callback) {
    method consume (line 29341) | consume (n) {
    method parseCloseBody (line 29378) | parseCloseBody (onlyCode, data) {
    method closingInfo (line 29421) | get closingInfo () {
    method constructor (line 51272) | constructor (ws) {
    method _write (line 51282) | _write (chunk, _, callback) {
    method run (line 51294) | run (callback) {
    method consume (line 51501) | consume (n) {
    method parseCloseBody (line 51538) | parseCloseBody (onlyCode, data) {
    method closingInfo (line 51581) | get closingInfo () {
  function isEstablished (line 29468) | function isEstablished (ws) {
  function isClosing (line 29478) | function isClosing (ws) {
  function isClosed (line 29488) | function isClosed (ws) {
  function fireEvent (line 29498) | function fireEvent (e, target, eventConstructor = Event, eventInitDict) {
  function websocketMessageReceived (line 29520) | function websocketMessageReceived (ws, type, data) {
  function isValidSubprotocol (line 29567) | function isValidSubprotocol (protocol) {
  function isValidStatusCode (line 29615) | function isValidStatusCode (code) {
  function failWebsocketConnection (line 29631) | function failWebsocketConnection (ws, reason) {
  class WebSocket (line 29692) | class WebSocket extends EventTarget {
    method constructor (line 29708) | constructor (url, protocols = []) {
    method close (line 29814) | close (code = undefined, reason = undefined) {
    method send (line 29917) | send (data) {
    method readyState (line 30032) | get readyState () {
    method bufferedAmount (line 30039) | get bufferedAmount () {
    method url (line 30045) | get url () {
    method extensions (line 30052) | get extensions () {
    method protocol (line 30058) | get protocol () {
    method onopen (line 30064) | get onopen () {
    method onopen (line 30070) | set onopen (fn) {
    method onerror (line 30085) | get onerror () {
    method onerror (line 30091) | set onerror (fn) {
    method onclose (line 30106) | get onclose () {
    method onclose (line 30112) | set onclose (fn) {
    method onmessage (line 30127) | get onmessage () {
    method onmessage (line 30133) | set onmessage (fn) {
    method binaryType (line 30148) | get binaryType () {
    method binaryType (line 30154) | set binaryType (type) {
    method #onConnectionEstablished (line 30167) | #onConnectionEstablished (response) {
    method constructor (line 51868) | constructor (url, protocols = []) {
    method close (line 51974) | close (code = undefined, reason = undefined) {
    method send (line 52077) | send (data) {
    method readyState (line 52192) | get readyState () {
    method bufferedAmount (line 52199) | get bufferedAmount () {
    method url (line 52205) | get url () {
    method extensions (line 52212) | get extensions () {
    method protocol (line 52218) | get protocol () {
    method onopen (line 52224) | get onopen () {
    method onopen (line 52230) | set onopen (fn) {
    method onerror (line 52245) | get onerror () {
    method onerror (line 52251) | set onerror (fn) {
    method onclose (line 52266) | get onclose () {
    method onclose (line 52272) | set onclose (fn) {
    method onmessage (line 52287) | get onmessage () {
    method onmessage (line 52293) | set onmessage (fn) {
    method binaryType (line 52308) | get binaryType () {
    method binaryType (line 52314) | set binaryType (type) {
    method #onConnectionEstablished (line 52327) | #onConnectionEstablished (response) {
  method defaultValue (line 30264) | get defaultValue () {
  method defaultValue (line 30271) | get defaultValue () {
  function makeDispatcher (line 30362) | function makeDispatcher (fn) {
  function defaultFactory (line 30509) | function defaultFactory (origin, opts) {
  class Agent (line 30515) | class Agent extends DispatcherBase {
    method constructor (line 8574) | constructor ({ factory = defaultFactory, maxRedirections = 0, connect,...
    method [kRunning] (line 8630) | get [kRunning] () {
    method [kDispatch] (line 8642) | [kDispatch] (opts, handler) {
    method [kClose] (line 8667) | async [kClose] () {
    method [kDestroy] (line 8680) | async [kDestroy] (err) {
    method constructor (line 30516) | constructor ({ factory = defaultFactory, maxRedirections = 0, connect,...
    method [kRunning] (line 30572) | get [kRunning] () {
    method [kDispatch] (line 30584) | [kDispatch] (opts, handler) {
    method [kClose] (line 30609) | async [kClose] () {
    method [kDestroy] (line 30622) | async [kDestroy] (err) {
  function abort (line 30650) | function abort (self) {
  function addSignal (line 30658) | function addSignal (self, signal) {
  function removeSignal (line 30679) | function removeSignal (self) {
  class ConnectHandler (line 30713) | class ConnectHandler extends AsyncResource {
    method constructor (line 8772) | constructor (opts, callback) {
    method onConnect (line 8797) | onConnect (abort, context) {
    method onHeaders (line 8806) | onHeaders () {
    method onUpgrade (line 8810) | onUpgrade (statusCode, rawHeaders, socket) {
    method onError (line 8832) | onError (err) {
    method constructor (line 30714) | constructor (opts, callback) {
    method onConnect (line 30739) | onConnect (abort, context) {
    method onHeaders (line 30748) | onHeaders () {
    method onUpgrade (line 30752) | onUpgrade (statusCode, rawHeaders, socket) {
    method onError (line 30774) | onError (err) {
  function connect (line 30788) | function connect (opts, callback) {
  class PipelineRequest (line 30837) | class PipelineRequest extends Readable {
    method constructor (line 8896) | constructor () {
    method _read (line 8902) | _read () {
    method _destroy (line 8911) | _destroy (err, callback) {
    method constructor (line 30838) | constructor () {
    method _read (line 30844) | _read () {
    method _destroy (line 30853) | _destroy (err, callback) {
  class PipelineResponse (line 30860) | class PipelineResponse extends Readable {
    method constructor (line 8919) | constructor (resume) {
    method _read (line 8924) | _read () {
    method _destroy (line 8928) | _destroy (err, callback) {
    method constructor (line 30861) | constructor (resume) {
    method _read (line 30866) | _read () {
    method _destroy (line 30870) | _destroy (err, callback) {
  class PipelineHandler (line 30879) | class PipelineHandler extends AsyncResource {
    method constructor (line 8938) | constructor (opts, handler) {
    method onConnect (line 9022) | onConnect (abort, context) {
    method onHeaders (line 9035) | onHeaders (statusCode, rawHeaders, resume) {
    method onData (line 9097) | onData (chunk) {
    method onComplete (line 9102) | onComplete (trailers) {
    method onError (line 9107) | onError (err) {
    method constructor (line 30880) | constructor (opts, handler) {
    method onConnect (line 30964) | onConnect (abort, context) {
    method onHeaders (line 30977) | onHeaders (statusCode, rawHeaders, resume) {
    method onData (line 31039) | onData (chunk) {
    method onComplete (line 31044) | onComplete (trailers) {
    method onError (line 31049) | onError (err) {
  function pipeline (line 31056) | function pipeline (opts, handler) {
  class RequestHandler (line 31087) | class RequestHandler extends AsyncResource {
    method constructor (line 9146) | constructor (opts, callback) {
    method onConnect (line 9203) | onConnect (abort, context) {
    method onHeaders (line 9212) | onHeaders (statusCode, rawHeaders, resume, statusMessage) {
    method onData (line 9248) | onData (chunk) {
    method onComplete (line 9253) | onComplete (trailers) {
    method onError (line 9263) | onError (err) {
    method constructor (line 31088) | constructor (opts, callback) {
    method onConnect (line 31145) | onConnect (abort, context) {
    method onHeaders (line 31154) | onHeaders (statusCode, rawHeaders, resume, statusMessage) {
    method onData (line 31190) | onData (chunk) {
    method onComplete (line 31195) | onComplete (trailers) {
    method onError (line 31205) | onError (err) {
  function request (line 31233) | function request (opts, callback) {
  class StreamHandler (line 31276) | class StreamHandler extends AsyncResource {
    method constructor (line 9335) | constructor (opts, factory, callback) {
    method onConnect (line 9392) | onConnect (abort, context) {
    method onHeaders (line 9401) | onHeaders (statusCode, rawHeaders, resume, statusMessage) {
    method onData (line 9476) | onData (chunk) {
    method onComplete (line 9482) | onComplete (trailers) {
    method onError (line 9496) | onError (err) {
    method constructor (line 31277) | constructor (opts, factory, callback) {
    method onConnect (line 31334) | onConnect (abort, context) {
    method onHeaders (line 31343) | onHeaders (statusCode, rawHeaders, resume, statusMessage) {
    method onData (line 31418) | onData (chunk) {
    method onComplete (line 31424) | onComplete (trailers) {
    method onError (line 31438) | onError (err) {
  function stream (line 31462) | function stream (opts, factory, callback) {
  class UpgradeHandler (line 31499) | class UpgradeHandler extends AsyncResource {
    method constructor (line 9558) | constructor (opts, callback) {
    method onConnect (line 9584) | onConnect (abort, context) {
    method onHeaders (line 9593) | onHeaders () {
    method onUpgrade (line 9597) | onUpgrade (statusCode, rawHeaders, socket) {
    method onError (line 9614) | onError (err) {
    method constructor (line 31500) | constructor (opts, callback) {
    method onConnect (line 31526) | onConnect (abort, context) {
    method onHeaders (line 31535) | onHeaders () {
    method onUpgrade (line 31539) | onUpgrade (statusCode, rawHeaders, socket) {
    method onError (line 31556) | onError (err) {
  function upgrade (line 31570) | function upgrade (opts, callback) {
  method constructor (line 31640) | constructor ({
  method destroy (line 31666) | destroy (err) {
  method emit (line 31683) | emit (ev, ...args) {
  method on (line 31694) | on (ev, ...args) {
  method addListener (line 31701) | addListener (ev, ...args) {
  method off (line 31705) | off (ev, ...args) {
  method removeListener (line 31716) | removeListener (ev, ...args) {
  method push (line 31720) | push (chunk) {
  method text (line 31729) | async text () {
  method json (line 31734) | async json () {
  method blob (line 31739) | async blob () {
  method arrayBuffer (line 31744) | async arrayBuffer () {
  method formData (line 31749) | async formData () {
  method bodyUsed (line 31755) | get bodyUsed () {
  method body (line 31760) | get body () {
  method dump (line 31772) | dump (opts) {
  function isLocked (line 31820) | function isLocked (self) {
  function isUnusable (line 31826) | function isUnusable (self) {
  function consume (line 31830) | async function consume (stream, type) {
  function consumeStart (line 31861) | function consumeStart (consume) {
  function consumeEnd (line 31887) | function consumeEnd (consume) {
  function consumePush (line 31918) | function consumePush (consume, chunk) {
  function consumeFinish (line 31923) | function consumeFinish (consume, err) {
  function getResolveErrorBodyCallback (line 31954) | async function getResolveErrorBodyCallback ({ callback, body, contentTyp...
  function getGreatestCommonDivisor (line 32029) | function getGreatestCommonDivisor (a, b) {
  function defaultFactory (line 32034) | function defaultFactory (origin, opts) {
  class BalancedPool (line 32038) | class BalancedPool extends PoolBase {
    method constructor (line 10097) | constructor (upstreams = [], { factory = defaultFactory, ...opts } = {...
    method addUpstream (line 10126) | addUpstream (upstream) {
    method _updateBalancedPoolStats (line 10166) | _updateBalancedPoolStats () {
    method removeUpstream (line 10170) | removeUpstream (upstream) {
    method upstreams (line 10186) | get upstreams () {
    method [kGetDispatcher] (line 10192) | [kGetDispatcher] () {
    method constructor (line 32039) | constructor (upstreams = [], { factory = defaultFactory, ...opts } = {...
    method addUpstream (line 32068) | addUpstream (upstream) {
    method _updateBalancedPoolStats (line 32108) | _updateBalancedPoolStats () {
    method removeUpstream (line 32112) | removeUpstream (upstream) {
    method upstreams (line 32128) | get upstreams () {
    method [kGetDispatcher] (line 32134) | [kGetDispatcher] () {
  class Cache (line 32229) | class Cache {
    method constructor (line 10294) | constructor () {
    method match (line 10302) | async match (request, options = {}) {
    method matchAll (line 10318) | async matchAll (request = undefined, options = {}) {
    method add (line 10386) | async add (request) {
    method addAll (line 10402) | async addAll (requests) {
    method put (line 10563) | async put (request, response) {
    method delete (line 10692) | async delete (request, options = {}) {
    method keys (line 10756) | async keys (request = undefined, options = {}) {
    method #batchCacheOperations (line 10835) | #batchCacheOperations (operations) {
    method #queryCache (line 10973) | #queryCache (requestQuery, options, targetStorage) {
    method #requestMatchesCachedItem (line 10997) | #requestMatchesCachedItem (requestQuery, request, response = null, opt...
    method constructor (line 32236) | constructor () {
    method match (line 32244) | async match (request, options = {}) {
    method matchAll (line 32260) | async matchAll (request = undefined, options = {}) {
    method add (line 32328) | async add (request) {
    method addAll (line 32344) | async addAll (requests) {
    method put (line 32505) | async put (request, response) {
    method delete (line 32634) | async delete (request, options = {}) {
    method keys (line 32698) | async keys (request = undefined, options = {}) {
    method #batchCacheOperations (line 32777) | #batchCacheOperations (operations) {
    method #queryCache (line 32915) | #queryCache (requestQuery, options, targetStorage) {
    method #requestMatchesCachedItem (line 32939) | #requestMatchesCachedItem (requestQuery, request, response = null, opt...
  class CacheStorage (line 33053) | class CacheStorage {
    method constructor (line 11118) | constructor () {
    method match (line 11124) | async match (request, options = {}) {
    method has (line 11161) | async has (cacheName) {
    method open (line 11177) | async open (cacheName) {
    method delete (line 11209) | async delete (cacheName) {
    method keys (line 11222) | async keys () {
    method constructor (line 33060) | constructor () {
    method match (line 33066) | async match (request, options = {}) {
    method has (line 33103) | async has (cacheName) {
    method open (line 33119) | async open (cacheName) {
    method delete (line 33151) | async delete (cacheName) {
    method keys (line 33164) | async keys () {
  function urlEquals (line 33224) | function urlEquals (A, B, excludeFragment = false) {
  function fieldValues (line 33236) | function fieldValues (header) {
  class Client (line 33396) | class Client extends DispatcherBase {
    method constructor (line 11460) | constructor (url, {
    method pipelining (line 11643) | get pipelining () {
    method pipelining (line 11647) | set pipelining (value) {
    method [kPending] (line 11652) | get [kPending] () {
    method [kRunning] (line 11656) | get [kRunning] () {
    method [kSize] (line 11660) | get [kSize] () {
    method [kConnected] (line 11664) | get [kConnected] () {
    method [kBusy] (line 11668) | get [kBusy] () {
    method [kConnect] (line 11678) | [kConnect] (cb) {
    method [kDispatch] (line 11683) | [kDispatch] (opts, handler) {
    method [kClose] (line 11708) | async [kClose] () {
    method [kDestroy] (line 11720) | async [kDestroy] (err) {
    method constructor (line 33402) | constructor (url, {
    method pipelining (line 33585) | get pipelining () {
    method pipelining (line 33589) | set pipelining (value) {
    method [kPending] (line 33594) | get [kPending] () {
    method [kRunning] (line 33598) | get [kRunning] () {
    method [kSize] (line 33602) | get [kSize] () {
    method [kConnected] (line 33606) | get [kConnected] () {
    method [kBusy] (line 33610) | get [kBusy] () {
    method [kConnect] (line 33620) | [kConnect] (cb) {
    method [kDispatch] (line 33625) | [kDispatch] (opts, handler) {
    method [kClose] (line 33650) | async [kClose] () {
    method [kDestroy] (line 33662) | async [kDestroy] (err) {
  function onHttp2SessionError (line 33696) | function onHttp2SessionError (err) {
  function onHttp2FrameError (line 33704) | function onHttp2FrameError (type, code, id) {
  function onHttp2SessionEnd (line 33713) | function onHttp2SessionEnd () {
  function onHTTP2GoAway (line 33718) | function onHTTP2GoAway (code) {
  function lazyllhttp (line 33758) | async function lazyllhttp () {
  class Parser (line 33833) | class Parser {
    method constructor (line 11892) | constructor (client, socket, { exports }) {
    method setTimeout (line 11920) | setTimeout (value, type) {
    method resume (line 11942) | resume () {
    method readMore (line 11965) | readMore () {
    method execute (line 11975) | execute (data) {
    method destroy (line 12037) | destroy () {
    method onStatus (line 12052) | onStatus (buf) {
    method onMessageBegin (line 12056) | onMessageBegin () {
    method onHeaderField (line 12070) | onHeaderField (buf) {
    method onHeaderValue (line 12082) | onHeaderValue (buf) {
    method trackHeader (line 12104) | trackHeader (len) {
    method onUpgrade (line 12111) | onUpgrade (head) {
    method onHeadersComplete (line 12158) | onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {
    method onBody (line 12267) | onBody (buf) {
    method onMessageComplete (line 12299) | onMessageComplete () {
    method constructor (line 33834) | constructor (client, socket, { exports }) {
    method setTimeout (line 33862) | setTimeout (value, type) {
    method resume (line 33884) | resume () {
    method readMore (line 33907) | readMore () {
    method execute (line 33917) | execute (data) {
    method destroy (line 33979) | destroy () {
    method onStatus (line 33994) | onStatus (buf) {
    method onMessageBegin (line 33998) | onMessageBegin () {
    method onHeaderField (line 34012) | onHeaderField (buf) {
    method onHeaderValue (line 34024) | onHeaderValue (buf) {
    method trackHeader (line 34046) | trackHeader (len) {
    method onUpgrade (line 34053) | onUpgrade (head) {
    method onHeadersComplete (line 34100) | onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {
    method onBody (line 34209) | onBody (buf) {
    method onMessageComplete (line 34241) | onMessageComplete () {
  function onParserTimeout (line 34308) | function onParserTimeout (parser) {
  function onSocketReadable (line 34327) | function onSocketReadable () {
  function onSocketError (line 34334) | function onSocketError (err) {
  function onError (line 34354) | function onError (client, err) {
  function onSocketEnd (line 34374) | function onSocketEnd () {
  function onSocketClose (line 34388) | function onSocketClose () {
  function connect (line 34431) | async function connect (client) {
  function emitDrain (line 34596) | function emitDrain (client) {
  function resume (line 34601) | function resume (client, sync) {
  function _resume (line 34618) | function _resume (client, sync) {
  function shouldSendContentLength (line 34743) | function shouldSendContentLength (method) {
  function write (line 34747) | function write (client, request) {
  function writeH2 (line 34912) | function writeH2 (client, session, request) {
  function writeStream (line 35176) | function writeStream ({ h2stream, body, client, request, socket, content...
  function writeBlob (line 35291) | async function writeBlob ({ h2stream, body, client, request, socket, con...
  function writeIterable (line 35326) | async function writeIterable ({ h2stream, body, client, request, socket,...
  class AsyncWriter (line 35406) | class AsyncWriter {
    method constructor (line 13465) | constructor ({ socket, request, contentLength, client, expectsPayload,...
    method write (line 13477) | write (chunk) {
    method end (line 13540) | end () {
    method destroy (line 13587) | destroy (err) {
    method constructor (line 35407) | constructor ({ socket, request, contentLength, client, expectsPayload,...
    method write (line 35419) | write (chunk) {
    method end (line 35482) | end () {
    method destroy (line 35529) | destroy (err) {
  function errorRequest (line 35541) | function errorRequest (client, request, err) {
  class CompatWeakRef (line 35565) | class CompatWeakRef {
    method constructor (line 13624) | constructor (value) {
    method deref (line 13628) | deref () {
    method constructor (line 35566) | constructor (value) {
    method deref (line 35570) | deref () {
  class CompatFinalizer (line 35577) | class CompatFinalizer {
    method constructor (line 13636) | constructor (finalizer) {
    method register (line 13640) | register (dispatcher, key) {
    method constructor (line 35578) | constructor (finalizer) {
    method register (line 35582) | register (dispatcher, key) {
  function getCookies (line 35660) | function getCookies (headers) {
  function deleteCookie (line 35687) | function deleteCookie (headers, name, attributes) {
  function getSetCookies (line 35709) | function getSetCookies (headers) {
  function setCookie (line 35729) | function setCookie (headers, cookie) {
  function parseSetCookie (line 35840) | function parseSetCookie (header) {
  function parseUnparsedAttributes (line 35916) | function parseUnparsedAttributes (unparsedAttributes, cookieAttributeLis...
  function isCTLExcludingHtab (line 36157) | function isCTLExcludingHtab (value) {
  function validateCookieName (line 36184) | function validateCookieName (name) {
  function validateCookieValue (line 36221) | function validateCookieValue (value) {
  function validateCookiePath (line 36242) | function validateCookiePath (path) {
  function validateCookieDomain (line 36257) | function validateCookieDomain (domain) {
  function toIMFDate (line 36308) | function toIMFDate (date) {
  function validateCookieMaxAge (line 36341) | function validateCookieMaxAge (maxAge) {
  function stringify (line 36351) | function stringify (cookie) {
  function getHeadersList (line 36419) | function getHeadersList (headers) {
  method constructor (line 36470) | constructor (maxCachedSessions) {
  method get (line 36485) | get (sessionKey) {
  method set (line 36490) | set (sessionKey, session) {
  method constructor (line 36501) | constructor (maxCachedSessions) {
  method get (line 36506) | get (sessionKey) {
  method set (line 36510) | set (sessionKey, session) {
  function buildConnector (line 36526) | function buildConnector ({ allowH2, maxCachedSessions, socketPath, timeo...
  function setupTimeout (line 36610) | function setupTimeout (onConnectTimeout, timeout) {
  function onConnectTimeout (line 36635) | function onConnectTimeout (socket) {
  class UndiciError (line 36776) | class UndiciError extends Error {
    method constructor (line 14709) | constructor (message) {
    method constructor (line 36777) | constructor (message) {
  class ConnectTimeoutError (line 36784) | class ConnectTimeoutError extends UndiciError {
    method constructor (line 14717) | constructor (message) {
    method constructor (line 36785) | constructor (message) {
  class HeadersTimeoutError (line 36794) | class HeadersTimeoutError extends UndiciError {
    method constructor (line 14727) | constructor (message) {
    method constructor (line 36795) | constructor (message) {
  class HeadersOverflowError (line 36804) | class HeadersOverflowError extends UndiciError {
    method constructor (line 14737) | constructor (message) {
    method constructor (line 36805) | constructor (message) {
  class BodyTimeoutError (line 36814) | class BodyTimeoutError extends UndiciError {
    method constructor (line 14747) | constructor (message) {
    method constructor (line 36815) | constructor (message) {
  class ResponseStatusCodeError (line 36824) | class ResponseStatusCodeError extends UndiciError {
    method constructor (line 14757) | constructor (message, statusCode, headers, body) {
    method constructor (line 36825) | constructor (message, statusCode, headers, body) {
  class InvalidArgumentError (line 36838) | class InvalidArgumentError extends UndiciError {
    method constructor (line 14771) | constructor (message) {
    method constructor (line 36839) | constructor (message) {
  class InvalidReturnValueError (line 36848) | class InvalidReturnValueError extends UndiciError {
    method constructor (line 14781) | constructor (message) {
    method constructor (line 36849) | constructor (message) {
  class RequestAbortedError (line 36858) | class RequestAbortedError extends UndiciError {
    method constructor (line 14791) | constructor (message) {
    method constructor (line 36859) | constructor (message) {
  class InformationalError (line 36868) | class InformationalError extends UndiciError {
    method constructor (line 14801) | constructor (message) {
    method constructor (line 36869) | constructor (message) {
  class RequestContentLengthMismatchError (line 36878) | class RequestContentLengthMismatchError extends UndiciError {
    method constructor (line 14811) | constructor (message) {
    method constructor (line 36879) | constructor (message) {
  class ResponseContentLengthMismatchError (line 36888) | class ResponseContentLengthMismatchError extends UndiciError {
    method constructor (line 14821) | constructor (message) {
    method constructor (line 36889) | constructor (message) {
  class ClientDestroyedError (line 36898) | class ClientDestroyedError extends UndiciError {
    method constructor (line 14831) | constructor (message) {
    method constructor (line 36899) | constructor (message) {
  class ClientClosedError (line 36908) | class ClientClosedError extends UndiciError {
    method constructor (line 14841) | constructor (message) {
    method constructor (line 36909) | constructor (message) {
  class SocketError (line 36918) | class SocketError extends UndiciError {
    method constructor (line 14851) | constructor (message, socket) {
    method constructor (line 36919) | constructor (message, socket) {
  class NotSupportedError (line 36929) | class NotSupportedError extends UndiciError {
    method constructor (line 14862) | constructor (message) {
    method constructor (line 36930) | constructor (message) {
  class BalancedPoolMissingUpstreamError (line 36939) | class BalancedPoolMissingUpstreamError extends UndiciError {
    method constructor (line 14872) | constructor (message) {
    method constructor (line 36940) | constructor (message) {
  class HTTPParserError (line 36949) | class HTTPParserError extends Error {
    method constructor (line 14882) | constructor (message, code, data) {
    method constructor (line 36950) | constructor (message, code, data) {
  class ResponseExceededMaxSizeError (line 36959) | class ResponseExceededMaxSizeError extends UndiciError {
    method constructor (line 14892) | constructor (message) {
    method constructor (line 36960) | constructor (message) {
  class RequestRetryError (line 36969) | class RequestRetryError extends UndiciError {
    method constructor (line 14902) | constructor (message, code, { headers, data }) {
    method constructor (line 36970) | constructor (message, code, { headers, data }) {
  class Request (line 37064) | class Request {
    method constructor (line 14997) | constructor (origin, {
    method onBodySent (line 15173) | onBodySent (chunk) {
    method onRequestSent (line 15183) | onRequestSent () {
    method onConnect (line 15197) | onConnect (abort) {
    method onHeaders (line 15209) | onHeaders (statusCode, headers, resume, statusText) {
    method onData (line 15224) | onData (chunk) {
    method onUpgrade (line 15236) | onUpgrade (statusCode, headers, socket) {
    method onComplete (line 15243) | onComplete (trailers) {
    method onError (line 15261) | onError (error) {
    method onFinally (line 15276) | onFinally () {
    method addHeader (line 15289) | addHeader (key, value) {
    method [kHTTP1BuildRequest] (line 15294) | static [kHTTP1BuildRequest] (origin, opts, handler) {
    method [kHTTP2BuildRequest] (line 15300) | static [kHTTP2BuildRequest] (origin, opts, handler) {
    method [kHTTP2CopyHeaders] (line 15328) | static [kHTTP2CopyHeaders] (raw) {
    method constructor (line 21141) | constructor (input, init = {}) {
    method method (line 21633) | get method () {
    method url (line 21641) | get url () {
    method headers (line 21651) | get headers () {
    method destination (line 21660) | get destination () {
    method referrer (line 21672) | get referrer () {
    method referrerPolicy (line 21694) | get referrerPolicy () {
    method mode (line 21704) | get mode () {
    method credentials (line 21714) | get credentials () {
    method cache (line 21722) | get cache () {
    method redirect (line 21733) | get redirect () {
    method integrity (line 21743) | get integrity () {
    method keepalive (line 21753) | get keepalive () {
    method isReloadNavigation (line 21762) | get isReloadNavigation () {
    method isHistoryNavigation (line 21772) | get isHistoryNavigation () {
    method signal (line 21783) | get signal () {
    method body (line 21790) | get body () {
    method bodyUsed (line 21796) | get bodyUsed () {
    method duplex (line 21802) | get duplex () {
    method clone (line 21809) | clone () {
    method constructor (line 37065) | constructor (origin, {
    method onBodySent (line 37241) | onBodySent (chunk) {
    method onRequestSent (line 37251) | onRequestSent () {
    method onConnect (line 37265) | onConnect (abort) {
    method onHeaders (line 37277) | onHeaders (statusCode, headers, resume, statusText) {
    method onData (line 37292) | onData (chunk) {
    method onUpgrade (line 37304) | onUpgrade (statusCode, headers, socket) {
    method onComplete (line 37311) | onComplete (trailers) {
    method onError (line 37329) | onError (error) {
    method onFinally (line 37344) | onFinally () {
    method addHeader (line 37357) | addHeader (key, value) {
    method [kHTTP1BuildRequest] (line 37362) | static [kHTTP1BuildRequest] (origin, opts, handler) {
    method [kHTTP2BuildRequest] (line 37368) | static [kHTTP2BuildRequest] (origin, opts, handler) {
    method [kHTTP2CopyHeaders] (line 37396) | static [kHTTP2CopyHeaders] (raw) {
    method constructor (line 43223) | constructor (input, init = {}) {
    method method (line 43715) | get method () {
    method url (line 43723) | get url () {
    method headers (line 43733) | get headers () {
    method destination (line 43742) | get destination () {
    method referrer (line 43754) | get referrer () {
    method referrerPolicy (line 43776) | get referrerPolicy () {
    method mode (line 43786) | get mode () {
    method credentials (line 43796) | get credentials () {
    method cache (line 43804) | get cache () {
    method redirect (line 43815) | get redirect () {
    method integrity (line 43825) | get integrity () {
    method keepalive (line 43835) | get keepalive () {
    method isReloadNavigation (line 43844) | get isReloadNavigation () {
    method isHistoryNavigation (line 43854) | get isHistoryNavigation () {
    method signal (line 43865) | get signal () {
    method body (line 43872) | get body () {
    method bodyUsed (line 43878) | get bodyUsed () {
    method duplex (line 43884) | get duplex () {
    method clone (line 43891) | clone () {
  function processHeaderValue (line 37413) | function processHeaderValue (key, val, skipAppend) {
  function processHeader (line 37427) | function processHeader (request, key, val, skipAppend = false) {
  function nop (line 37604) | function nop () {}
  function isStream (line 37606) | function isStream (obj) {
  function isBlobLike (line 37611) | function isBlobLike (object) {
  function buildURL (line 37621) | function buildURL (url, queryParams) {
  function parseURL (line 37635) | function parseURL (url) {
  function parseOrigin (line 37702) | function parseOrigin (url) {
  function getHostname (line 37712) | function getHostname (host) {
  function getServerName (line 37728) | function getServerName (host) {
  function deepClone (line 37743) | function deepClone (obj) {
  function isAsyncIterable (line 37747) | function isAsyncIterable (obj) {
  function isIterable (line 37751) | function isIterable (obj) {
  function bodyLength (line 37755) | function bodyLength (body) {
  function isDestroyed (line 37772) | function isDestroyed (stream) {
  function isReadableAborted (line 37776) | function isReadableAborted (stream) {
  function destroy (line 37781) | function destroy (stream, err) {
  function parseKeepAliveTimeout (line 37805) | function parseKeepAliveTimeout (val) {
  function headerNameToString (line 37815) | function headerNameToString (value) {
  function parseHeaders (line 37819) | function parseHeaders (headers, obj = {}) {
  function parseRawHeaders (line 37850) | function parseRawHeaders (headers) {
  function isBuffer (line 37877) | function isBuffer (buffer) {
  function validateHandler (line 37882) | function validateHandler (handler, method, upgrade) {
  function isDisturbed (line 37920) | function isDisturbed (body) {
  function isErrored (line 37931) | function isErrored (body) {
  function isReadable (line 37939) | function isReadable (body) {
  function getSocketInfo (line 37947) | function getSocketInfo (socket) {
  function ReadableStreamFrom (line 37967) | function ReadableStreamFrom (iterable) {
  function isFormDataLike (line 38004) | function isFormDataLike (object) {
  function throwIfAborted (line 38018) | function throwIfAborted (signal) {
  function addAbortListener (line 38032) | function addAbortListener (signal, listener) {
  function toUSVString (line 38046) | function toUSVString (val) {
  function parseRangeHeader (line 38058) | function parseRangeHeader (range) {
  class DispatcherBase (line 38135) | class DispatcherBase extends Dispatcher {
    method constructor (line 16057) | constructor () {
    method destroyed (line 16066) | get destroyed () {
    method closed (line 16070) | get closed () {
    method interceptors (line 16074) | get interceptors () {
    method interceptors (line 16078) | set interceptors (newInterceptors) {
    method close (line 16091) | close (callback) {
    method destroy (line 16137) | destroy (err, callback) {
    method [kInterceptedDispatch] (line 16186) | [kInterceptedDispatch] (opts, handler) {
    method dispatch (line 16200) | dispatch (opts, handler) {
    method constructor (line 38136) | constructor () {
    method destroyed (line 38145) | get destroyed () {
    method closed (line 38149) | get closed () {
    method interceptors (line 38153) | get interceptors () {
    method interceptors (line 38157) | set interceptors (newInterceptors) {
    method close (line 38170) | close (callback) {
    method destroy (line 38216) | destroy (err, callback) {
    method [kInterceptedDispatch] (line 38265) | [kInterceptedDispatch] (opts, handler) {
    method dispatch (line 38279) | dispatch (opts, handler) {
  class Dispatcher (line 38323) | class Dispatcher extends EventEmitter {
    method dispatch (line 16245) | dispatch () {
    method close (line 16249) | close () {
    method destroy (line 16253) | destroy () {
    method dispatch (line 38324) | dispatch () {
    method close (line 38328) | close () {
    method destroy (line 38332) | destroy () {
  function extractBody (line 38378) | function extractBody (object, keepalive = false) {
  function safelyExtractBody (line 38598) | function safelyExtractBody (object, keepalive = false) {
  function cloneBody (line 38620) | function cloneBody (body) {
  function throwIfAborted (line 38666) | function throwIfAborted (state) {
  function bodyMixinMethods (line 38672) | function bodyMixinMethods (instance) {
  function mixinBody (line 38834) | function mixinBody (prototype) {
  function specConsumeBody (line 38844) | async function specConsumeBody (object, convertBytesToJSValue, instance) {
  function bodyUnusable (line 38889) | function bodyUnusable (body) {
  function utf8DecodeBytes (line 38900) | function utf8DecodeBytes (buffer) {
  function parseJSONFromBytes (line 38926) | function parseJSONFromBytes (bytes) {
  function bodyMimeType (line 38934) | function bodyMimeType (object) {
  function dataURLProcessor (line 39135) | function dataURLProcessor (dataURL) {
  function URLSerializer (line 39237) | function URLSerializer (url, excludeFragment = false) {
  function collectASequenceOfCodePoints (line 39254) | function collectASequenceOfCodePoints (condition, input, position) {
  function collectASequenceOfCodePointsFast (line 39278) | function collectASequenceOfCodePointsFast (char, input, position) {
  function stringPercentDecode (line 39293) | function stringPercentDecode (input) {
  function percentDecode (line 39303) | function percentDecode (input) {
  function parseMIMEType (line 39348) | function parseMIMEType (input) {
  function forgivingBase64 (line 39521) | function forgivingBase64 (data) {
  function collectAnHTTPQuotedString (line 39565) | function collectAnHTTPQuotedString (input, position, extractValue) {
  function serializeAMimeType (line 39640) | function serializeAMimeType (mimeType) {
  function isHTTPWhiteSpace (line 39685) | function isHTTPWhiteSpace (char) {
  function removeHTTPWhitespace (line 39693) | function removeHTTPWhitespace (str, leading = true, trailing = true) {
  function isASCIIWhitespace (line 39712) | function isASCIIWhitespace (char) {
  function removeASCIIWhitespace (line 39719) | function removeASCIIWhitespace (str, leading = true, trailing = true) {
  class File (line 39763) | class File extends Blob {
    method constructor (line 17685) | constructor (fileBits, fileName, options = {}) {
    method name (line 17749) | get name () {
    method lastModified (line 17755) | get lastModified () {
    method type (line 17761) | get type () {
    method constructor (line 39764) | constructor (fileBits, fileName, options = {}) {
    method name (line 39828) | get name () {
    method lastModified (line 39834) | get lastModified () {
    method type (line 39840) | get type () {
  class FileLike (line 39847) | class FileLike {
    method constructor (line 17769) | constructor (blobLike, fileName, options = {}) {
    method stream (line 17816) | stream (...args) {
    method arrayBuffer (line 17822) | arrayBuffer (...args) {
    method slice (line 17828) | slice (...args) {
    method text (line 17834) | text (...args) {
    method size (line 17840) | get size () {
    method type (line 17846) | get type () {
    method name (line 17852) | get name () {
    method lastModified (line 17858) | get lastModified () {
    method constructor (line 39848) | constructor (blobLike, fileName, options = {}) {
    method stream (line 39895) | stream (...args) {
    method arrayBuffer (line 39901) | arrayBuffer (...args) {
    method slice (line 39907) | slice (...args) {
    method text (line 39913) | text (...args) {
    method size (line 39919) | get size () {
    method type (line 39925) | get type () {
    method name (line 39931) | get name () {
    method lastModified (line 39937) | get lastModified () {
  method [Symbol.toStringTag] (line 39943) | get [Symbol.toStringTag] () {
  method defaultValue (line 39985) | get defaultValue () {
  function processBlobParts (line 40015) | function processBlobParts (parts, options) {
  function convertLineEndingsNative (line 40065) | function convertLineEndingsNative (s) {
  function isFileLike (line 40083) | function isFileLike (object) {
  class FormData (line 40116) | class FormData {
    method constructor (line 18038) | constructor (form) {
    method append (line 18050) | append (name, value, filename = undefined) {
    method delete (line 18079) | delete (name) {
    method get (line 18091) | get (name) {
    method getAll (line 18110) | getAll (name) {
    method has (line 18126) | has (name) {
    method set (line 18138) | set (name, value, filename = undefined) {
    method entries (line 18181) | entries () {
    method keys (line 18191) | keys () {
    method values (line 18201) | values () {
    method forEach (line 18215) | forEach (callbackFn, thisArg = globalThis) {
    method constructor (line 40117) | constructor (form) {
    method append (line 40129) | append (name, value, filename = undefined) {
    method delete (line 40158) | delete (name) {
    method get (line 40170) | get (name) {
    method getAll (line 40189) | getAll (name) {
    method has (line 40205) | has (name) {
    method set (line 40217) | set (name, value, filename = undefined) {
    method entries (line 40260) | entries () {
    method keys (line 40270) | keys () {
    method values (line 40280) | values () {
    method forEach (line 40294) | forEach (callbackFn, thisArg = globalThis) {
  function makeEntry (line 40327) | function makeEntry (name, value, filename) {
  function getGlobalOrigin (line 40383) | function getGlobalOrigin () {
  function setGlobalOrigin (line 40387) | function setGlobalOrigin (newOrigin) {
  function isHTTPWhiteSpaceCharCode (line 40446) | function isHTTPWhiteSpaceCharCode (code) {
  function headerValueNormalize (line 40454) | function headerValueNormalize (potentialValue) {
  function fill (line 40466) | function fill (headers, object) {
  function appendHeader (line 40506) | function appendHeader (headers, name, value) {
  class HeadersList (line 40547) | class HeadersList {
    method constructor (line 18472) | constructor (init) {
    method contains (line 18484) | contains (name) {
    method clear (line 18493) | clear () {
    method append (line 18500) | append (name, value) {
    method set (line 18526) | set (name, value) {
    method delete (line 18542) | delete (name) {
    method get (line 18555) | get (name) {
    method entries (line 18572) | get entries () {
    method constructor (line 40551) | constructor (init) {
    method contains (line 40563) | contains (name) {
    method clear (line 40572) | clear () {
    method append (line 40579) | append (name, value) {
    method set (line 40605) | set (name, value) {
    method delete (line 40621) | delete (name) {
    method get (line 40634) | get (name) {
    method entries (line 40651) | get entries () {
  method [Symbol.iterator] (line 40644) | * [Symbol.iterator] () {
  class Headers (line 40665) | class Headers {
    method constructor (line 18587) | constructor (init = undefined) {
    method append (line 18606) | append (name, value) {
    method delete (line 18618) | delete (name) {
    method get (line 18663) | get (name) {
    method has (line 18685) | has (name) {
    method set (line 18707) | set (name, value) {
    method getSetCookie (line 18756) | getSetCookie () {
    method [kHeadersSortedMap] (line 18773) | get [kHeadersSortedMap] () {
    method keys (line 18819) | keys () {
    method values (line 18835) | values () {
    method entries (line 18851) | entries () {
    method forEach (line 18871) | forEach (callbackFn, thisArg = globalThis) {
    method constructor (line 40666) | constructor (init = undefined) {
    method append (line 40685) | append (name, value) {
    method delete (line 40697) | delete (name) {
    method get (line 40742) | get (name) {
    method has (line 40764) | has (name) {
    method set (line 40786) | set (name, value) {
    method getSetCookie (line 40835) | getSetCookie () {
    method [kHeadersSortedMap] (line 40852) | get [kHeadersSortedMap] () {
    method keys (line 40898) | keys () {
    method values (line 40914) | values () {
    method entries (line 40930) | entries () {
    method forEach (line 40950) | forEach (callbackFn, thisArg = globalThis) {
  method [Symbol.for('nodejs.util.inspect.custom')] (line 40966) | [Symbol.for('nodejs.util.inspect.custom')] () {
  class Fetch (line 41092) | class Fetch extends EE {
    method constructor (line 19014) | constructor (dispatcher) {
    method terminate (line 19029) | terminate (reason) {
    method abort (line 19040) | abort (error) {
    method constructor (line 41093) | constructor (dispatcher) {
    method terminate (line 41108) | terminate (reason) {
    method abort (line 41119) | abort (error) {
  function fetch (line 41146) | function fetch (input, init = {}) {
  function finalizeAndReportTiming (line 41279) | function finalizeAndReportTiming (response, initiatorType = 'other') {
  function markResourceTiming (line 41342) | function markResourceTiming (timingInfo, originalURL, initiatorType, glo...
  function abortFetch (line 41349) | function abortFetch (p, request, responseObject, error) {
  function fetching (line 41394) | function fetching ({
  function mainFetch (line 41549) | async function mainFetch (fetchParams, recursive = false) {
  function schemeFetch (line 41801) | function schemeFetch (fetchParams) {
  function finalizeResponse (line 41918) | function finalizeResponse (fetchParams, response) {
  function fetchFinale (line 41931) | function fetchFinale (fetchParams, response) {
  function httpFetch (line 42022) | async function httpFetch (fetchParams) {
  function httpRedirectFetch (line 42125) | function httpRedirectFetch (fetchParams, response) {
  function httpNetworkOrCacheFetch (line 42269) | async function httpNetworkOrCacheFetch (
  function httpNetworkFetch (line 42599) | async function httpNetworkFetch (
  class Request (line 43221) | class Request {
    method constructor (line 14997) | constructor (origin, {
    method onBodySent (line 15173) | onBodySent (chunk) {
    method onRequestSent (line 15183) | onRequestSent () {
    method onConnect (line 15197) | onConnect (abort) {
    method onHeaders (line 15209) | onHeaders (statusCode, headers, resume, statusText) {
    method onData (line 15224) | onData (chunk) {
    method onUpgrade (line 15236) | onUpgrade (statusCode, headers, socket) {
    method onComplete (line 15243) | onComplete (trailers) {
    method onError (line 15261) | onError (error) {
    method onFinally (line 15276) | onFinally () {
    method addHeader (line 15289) | addHeader (key, value) {
    method [kHTTP1BuildRequest] (line 15294) | static [kHTTP1BuildRequest] (origin, opts, handler) {
    method [kHTTP2BuildRequest] (line 15300) | static [kHTTP2BuildRequest] (origin, opts, handler) {
    method [kHTTP2CopyHeaders] (line 15328) | static [kHTTP2CopyHeaders] (raw) {
    method constructor (line 21141) | constructor (input, init = {}) {
    method method (line 21633) | get method () {
    method url (line 21641) | get url () {
    method headers (line 21651) | get headers () {
    method destination (line 21660) | get destination () {
    method referrer (line 21672) | get referrer () {
    method referrerPolicy (line 21694) | get referrerPolicy () {
    method mode (line 21704) | get mode () {
    method credentials (line 21714) | get credentials () {
    method cache (line 21722) | get cache () {
    method redirect (line 21733) | get redirect () {
    method integrity (line 21743) | get integrity () {
    method keepalive (line 21753) | get keepalive () {
    method isReloadNavigation (line 21762) | get isReloadNavigation () {
    method isHistoryNavigation (line 21772) | get isHistoryNavigation () {
    method signal (line 21783) | get signal () {
    method body (line 21790) | get body () {
    method bodyUsed (line 21796) | get bodyUsed () {
    method duplex (line 21802) | get duplex () {
    method clone (line 21809) | clone () {
    method constructor (line 37065) | constructor (origin, {
    method onBodySent (line 37241) | onBodySent (chunk) {
    method onRequestSent (line 37251) | onRequestSent () {
    method onConnect (line 37265) | onConnect (abort) {
    method onHeaders (line 37277) | onHeaders (statusCode, headers, resume, statusText) {
    method onData (line 37292) | onData (chunk) {
    method onUpgrade (line 37304) | onUpgrade (statusCode, headers, socket) {
    method onComplete (line 37311) | onComplete (trailers) {
    method onError (line 37329) | onError (error) {
    method onFinally (line 37344) | onFinally () {
    method addHeader (line 37357) | addHeader (key, value) {
    method [kHTTP1BuildRequest] (line 37362) | static [kHTTP1BuildRequest] (origin, opts, handler) {
    method [kHTTP2BuildRequest] (line 37368) | static [kHTTP2BuildRequest] (origin, opts, handler) {
    method [kHTTP2CopyHeaders] (line 37396) | static [kHTTP2CopyHeaders] (raw) {
    method constructor (line 43223) | constructor (input, init = {}) {
    method method (line 43715) | get method () {
    method url (line 43723) | get url () {
    method headers (line 43733) | get headers () {
    method destination (line 43742) | get destination () {
    method referrer (line 43754) | get referrer () {
    method referrerPolicy (line 43776) | get referrerPolicy () {
    method mode (line 43786) | get mode () {
    method credentials (line 43796) | get credentials () {
    method cache (line 43804) | get cache () {
    method redirect (line 43815) | get redirect () {
    method integrity (line 43825) | get integrity () {
    method keepalive (line 43835) | get keepalive () {
    method isReloadNavigation (line 43844) | get isReloadNavigation () {
    method isHistoryNavigation (line 43854) | get isHistoryNavigation () {
    method signal (line 43865) | get signal () {
    method body (line 43872) | get body () {
    method bodyUsed (line 43878) | get bodyUsed () {
    method duplex (line 43884) | get duplex () {
    method clone (line 43891) | clone () {
  function makeRequest (line 43933) | function makeRequest (init) {
  function cloneRequest (line 43981) | function cloneRequest (request) {
  class Response (line 44165) | class Response {
    method error (line 22085) | static error () {
    method json (line 22102) | static json (data, init = {}) {
    method redirect (line 22133) | static redirect (url, status = 302) {
    method constructor (line 22180) | constructor (body = null, init = {}) {
    method type (line 22215) | get type () {
    method url (line 22223) | get url () {
    method redirected (line 22241) | get redirected () {
Copy disabled (too large) Download .json
Condensed preview — 26672 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (111,770K chars).
[
  {
    "path": ".agents/skills/README.md",
    "chars": 4421,
    "preview": "# Skills Authoring Guide\n\nSkills are on-demand context files that Claude loads when relevant. They extend `AGENTS.md` wi"
  },
  {
    "path": ".agents/skills/authoring-skills/SKILL.md",
    "chars": 4086,
    "preview": "---\nname: authoring-skills\ndescription: >\n  How to create and maintain agent skills in .agents/skills/. Use when\n  creat"
  },
  {
    "path": ".agents/skills/dce-edge/SKILL.md",
    "chars": 4077,
    "preview": "---\nname: dce-edge\ndescription: >\n  DCE-safe require() patterns and edge runtime constraints. Use when writing\n  conditi"
  },
  {
    "path": ".agents/skills/flags/SKILL.md",
    "chars": 2957,
    "preview": "---\nname: flags\ndescription: >\n  How to add or modify Next.js experimental feature flags end-to-end.\n  Use when editing "
  },
  {
    "path": ".agents/skills/pr-status-triage/SKILL.md",
    "chars": 1836,
    "preview": "---\nname: pr-status-triage\ndescription: >\n  Triage CI failures and PR review comments using scripts/pr-status.js.\n  Use "
  },
  {
    "path": ".agents/skills/pr-status-triage/local-repro.md",
    "chars": 1251,
    "preview": "# Local Reproduction Guide\n\n## Match CI Job Mode\n\n- Dev-mode failures: use `pnpm test-dev-turbo` or `pnpm test-dev-webpa"
  },
  {
    "path": ".agents/skills/pr-status-triage/workflow.md",
    "chars": 1410,
    "preview": "# CI Triage Workflow\n\n## Prioritization Order\n\n1. Build failures\n2. Lint failures\n3. Type failures\n4. Test failures\n5. R"
  },
  {
    "path": ".agents/skills/react-vendoring/SKILL.md",
    "chars": 3921,
    "preview": "---\nname: react-vendoring\ndescription: >\n  React vendoring and react-server layer boundaries. Use when editing\n  entry-b"
  },
  {
    "path": ".agents/skills/router-act/SKILL.md",
    "chars": 10563,
    "preview": "---\nname: router-act\ndescription: >\n  How to write end-to-end tests using createRouterAct and LinkAccordion.\n  Use when "
  },
  {
    "path": ".agents/skills/runtime-debug/SKILL.md",
    "chars": 2442,
    "preview": "---\nname: runtime-debug\ndescription: >\n  Debug and verification workflow for runtime-bundle and module-resolution\n  regr"
  },
  {
    "path": ".agents/skills/update-docs/SKILL.md",
    "chars": 7549,
    "preview": "---\nname: update-docs\ndescription: This skill should be used when the user asks to \"update documentation for my changes\""
  },
  {
    "path": ".agents/skills/update-docs/references/CODE-TO-DOCS-MAPPING.md",
    "chars": 7688,
    "preview": "# Code to Documentation Mapping\n\nMaps Next.js source code directories to their corresponding documentation files.\n\n## Co"
  },
  {
    "path": ".agents/skills/update-docs/references/DOC-CONVENTIONS.md",
    "chars": 5807,
    "preview": "# Next.js Documentation Conventions\n\nComplete reference for frontmatter schema, code block formatting, and MDX component"
  },
  {
    "path": ".agents/skills/v8-jit/SKILL.md",
    "chars": 14453,
    "preview": "---\nname: v8-jit\ndescription: >\n  V8 JIT optimization patterns for writing high-performance JavaScript in\n  Next.js serv"
  },
  {
    "path": ".agents/skills/write-api-reference/SKILL.md",
    "chars": 7520,
    "preview": "---\nname: write-api-reference\ndescription: |\n  Produces API reference documentation for Next.js APIs: functions, compone"
  },
  {
    "path": ".agents/skills/write-guide/SKILL.md",
    "chars": 5088,
    "preview": "---\nname: write-guide\ndescription: |\n  Generates technical guides that teach real-world use cases through progressive ex"
  },
  {
    "path": ".alexignore",
    "chars": 99,
    "preview": "CODE_OF_CONDUCT.md\nexamples/\n**/*/LICENSE.md\n.claude/\nAGENTS.md\nCLAUDE.md\npackages/next/dist/docs/\n"
  },
  {
    "path": ".alexrc",
    "chars": 449,
    "preview": "{\n  \"allow\": [\n    \"attacks\",\n    \"color\",\n    \"dead\",\n    \"deno\",\n    \"digitalocean\",\n    \"dirty\",\n    \"execute\",\n    \""
  },
  {
    "path": ".cargo/.vercel.approvers",
    "chars": 18,
    "preview": "@vercel/turbopack\n"
  },
  {
    "path": ".cargo/config.toml",
    "chars": 3073,
    "preview": "[env]\nCARGO_WORKSPACE_DIR = { value = \"\", relative = true }\nTURBO_PNPM_WORKSPACE_DIR = { value = \"\", relative = true }\n\n"
  },
  {
    "path": ".claude-plugin/marketplace.json",
    "chars": 455,
    "preview": "{\n  \"name\": \"nextjs\",\n  \"owner\": {\n    \"name\": \"Vercel\",\n    \"url\": \"https://vercel.com\"\n  },\n  \"plugins\": [\n    {\n     "
  },
  {
    "path": ".claude-plugin/plugins/README.md",
    "chars": 2618,
    "preview": "# Next.js Claude Code Plugins\n\nThis directory contains Claude Code plugins for Next.js development.\n\n## Using the Next.j"
  },
  {
    "path": ".claude-plugin/plugins/cache-components/.claude-plugin/plugin.json",
    "chars": 707,
    "preview": "{\n  \"name\": \"cache-components\",\n  \"version\": \"1.0.0\",\n  \"description\": \"Expert guidance for Next.js Cache Components and"
  },
  {
    "path": ".claude-plugin/plugins/cache-components/README.md",
    "chars": 3234,
    "preview": "# Cache Components Plugin for Claude Code\n\nExpert guidance for Next.js Cache Components and Partial Prerendering (PPR).\n"
  },
  {
    "path": ".claude-plugin/plugins/cache-components/skills/cache-components/PATTERNS.md",
    "chars": 19841,
    "preview": "# Cache Components Patterns & Recipes\n\nCommon patterns for implementing Cache Components effectively.\n\n## Pattern 1: Sta"
  },
  {
    "path": ".claude-plugin/plugins/cache-components/skills/cache-components/REFERENCE.md",
    "chars": 30629,
    "preview": "# Cache Components API Reference\n\nComplete API reference for Next.js Cache Components.\n\n## Directive: `'use cache'`\n\nMar"
  },
  {
    "path": ".claude-plugin/plugins/cache-components/skills/cache-components/SKILL.md",
    "chars": 14722,
    "preview": "---\nname: cache-components\ndescription: |\n  Expert guidance for Next.js Cache Components and Partial Prerendering (PPR)."
  },
  {
    "path": ".claude-plugin/plugins/cache-components/skills/cache-components/TROUBLESHOOTING.md",
    "chars": 16552,
    "preview": "# Cache Components Troubleshooting\n\nCommon issues, debugging techniques, and solutions for Cache Components.\n\n## Build-T"
  },
  {
    "path": ".conductor/README.md",
    "chars": 3264,
    "preview": "# Conductor Configuration for Next.js\n\nThis directory contains [Conductor](https://www.conductor.build/) configuration f"
  },
  {
    "path": ".conductor/scripts/run.sh",
    "chars": 499,
    "preview": "#!/bin/bash\n#\n# Conductor Run Script for Next.js\n#\n# This script runs when starting work in a Conductor workspace.\n# It "
  },
  {
    "path": ".conductor/scripts/setup.sh",
    "chars": 1050,
    "preview": "#!/bin/bash\n#\n# Conductor Setup Script for Next.js\n#\n# This script runs when creating a new Conductor workspace.\n# It en"
  },
  {
    "path": ".config/.vercel.approvers",
    "chars": 31,
    "preview": "nextest.toml @vercel/turbopack\n"
  },
  {
    "path": ".config/ast-grep/rule-tests/__snapshots__/no-context-format-snapshot.yml",
    "chars": 705,
    "preview": "id: no-context-format\nsnapshots:\n  foo.bar().context(format!(\"{} failed\", name)):\n    fixed: foo.bar().with_context(|| f"
  },
  {
    "path": ".config/ast-grep/rule-tests/__snapshots__/no-context-snapshot.yml",
    "chars": 881,
    "preview": "id: no-context\nsnapshots:\n  'fn foo(context: ChunkingContext) -> u32 { 5 };':\n    labels:\n    - source: context\n      st"
  },
  {
    "path": ".config/ast-grep/rule-tests/__snapshots__/no-context-turbofmt-snapshot.yml",
    "chars": 1268,
    "preview": "id: no-context-turbofmt\nsnapshots:\n  foo.bar().context(turbofmt!(\"{} failed\", name)):\n    fixed: foo.bar().with_context("
  },
  {
    "path": ".config/ast-grep/rule-tests/__snapshots__/no-err-anyhow-snapshot.yml",
    "chars": 629,
    "preview": "id: no-err-anyhow\nsnapshots:\n  Err(anyhow!(\"error message\")):\n    labels:\n    - source: Err(anyhow!(\"error message\"))\n  "
  },
  {
    "path": ".config/ast-grep/rule-tests/__snapshots__/no-map-async-cell-snapshot.yml",
    "chars": 6903,
    "preview": "id: no-map-async-cell\nsnapshots:\n  ? |\n    items.into_iter()\n        .map(async |item| Ok(item.process().await?.cell()))"
  },
  {
    "path": ".config/ast-grep/rule-tests/__snapshots__/resolved-vc-in-return-type-snapshot.yml",
    "chars": 2287,
    "preview": "id: resolved-vc-in-return-type\nsnapshots:\n  ? |\n    #[turbo_tasks::function]\n    pub async fn flag_this(x: ResolvedVc<My"
  },
  {
    "path": ".config/ast-grep/rule-tests/__snapshots__/resolved-vc-in-trait-arguments-snapshot.yml",
    "chars": 914,
    "preview": "id: resolved-vc-in-trait-arguments\nsnapshots:\n  ? |\n    #[turbo_tasks::value_trait]\n    pub trait Example {\n        fn w"
  },
  {
    "path": ".config/ast-grep/rule-tests/no-context-format-test.yml",
    "chars": 562,
    "preview": "id: no-context-format\nvalid:\n  - 'foo.context(\"static string\")'\n  - 'foo.with_context(|| format!(\"error: {}\", msg))'\n  -"
  },
  {
    "path": ".config/ast-grep/rule-tests/no-context-test.yml",
    "chars": 397,
    "preview": "id: no-context\nvalid:\n  - 'let chunking_context = ChunkingContext::new();'\n  - 'struct Foo { chunking_context: Context }"
  },
  {
    "path": ".config/ast-grep/rule-tests/no-err-anyhow-test.yml",
    "chars": 697,
    "preview": "id: no-err-anyhow\nvalid:\n  - 'bail!(\"error message\")'\n  - 'bail!(\"error: {}\", msg)'\n  - 'Err(SomeOtherError::new(\"error\""
  },
  {
    "path": ".config/ast-grep/rule-tests/no-map-async-cell-test.yml",
    "chars": 1573,
    "preview": "id: no-map-async-cell\nvalid:\n  - |\n    items.into_iter()\n        .map(|item| item.process())\n        .collect()\n  - |\n  "
  },
  {
    "path": ".config/ast-grep/rule-tests/resolved-vc-in-return-type-test.yml",
    "chars": 578,
    "preview": "id: resolved-vc-in-return-type\nvalid:\n  - |\n    pub async fn ignore_this(x: ResolvedVc<MyType>) -> Result<ResolvedVc<MyT"
  },
  {
    "path": ".config/ast-grep/rule-tests/resolved-vc-in-trait-arguments-test.yml",
    "chars": 331,
    "preview": "id: resolved-vc-in-trait-arguments\nvalid:\n  - |\n    #[turbo_tasks::value_trait]\n    pub trait Example {\n        fn write"
  },
  {
    "path": ".config/ast-grep/rule-utils/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": ".config/ast-grep/rules/no-context-format.yml",
    "chars": 728,
    "preview": "# yaml-language-server: $schema=https://raw.githubusercontent.com/ast-grep/ast-grep/main/schemas/rule.json\n\nid: no-conte"
  },
  {
    "path": ".config/ast-grep/rules/no-context.yml",
    "chars": 625,
    "preview": "# yaml-language-server: $schema=https://raw.githubusercontent.com/ast-grep/ast-grep/main/schemas/rule.json\n\nid: no-conte"
  },
  {
    "path": ".config/ast-grep/rules/no-err-anyhow.yml",
    "chars": 991,
    "preview": "# yaml-language-server: $schema=https://raw.githubusercontent.com/ast-grep/ast-grep/main/schemas/rule.json\n\nid: no-err-a"
  },
  {
    "path": ".config/ast-grep/rules/no-map-async-cell.yml",
    "chars": 995,
    "preview": "# yaml-language-server: $schema=https://raw.githubusercontent.com/ast-grep/ast-grep/main/schemas/rule.json\n\nid: no-map-a"
  },
  {
    "path": ".config/ast-grep/rules/resolved-vc-in-return-type.yml",
    "chars": 1401,
    "preview": "# yaml-language-server: $schema=https://raw.githubusercontent.com/ast-grep/ast-grep/main/schemas/rule.json\n\nid: resolved"
  },
  {
    "path": ".config/ast-grep/rules/resolved-vc-in-trait.yml",
    "chars": 622,
    "preview": "# yaml-language-server: $schema=https://raw.githubusercontent.com/ast-grep/ast-grep/main/schemas/rule.json\n\nid: resolved"
  },
  {
    "path": ".config/eslintignore.mjs",
    "chars": 2612,
    "preview": "import { globalIgnores } from 'eslint/config'\n\nexport default globalIgnores([\n  '**/.*/**/*', // Default of ESLint legac"
  },
  {
    "path": ".config/nextest.toml",
    "chars": 432,
    "preview": "[profile.tp-test-linux.junit]\npath = \"junit.xml\"\nreport-name = \"Turbopack tests (Linux)\"\nstore-success-output = true\nsto"
  },
  {
    "path": ".cursor/commands/gt-workflow.md",
    "chars": 3764,
    "preview": "# Git Workflow with Graphite\n\n## Overview\n\nUse Graphite (`gt`) instead of git for ALL branch and commit operations in th"
  },
  {
    "path": ".cursor/worktrees.json",
    "chars": 55,
    "preview": "{\n  \"setup-worktree\": [\"pnpm install\", \"pnpm build\"]\n}\n"
  },
  {
    "path": ".cursorindexingignore",
    "chars": 461,
    "preview": "# Add directories or file patterns to ignore during indexing (e.g. foo/ or *.csv)\n/.*\n/bench/\n/crates/**/tests/\n/docs/\n/"
  },
  {
    "path": ".devcontainer/devcontainer-lock.json",
    "chars": 940,
    "preview": "{\n  \"features\": {\n    \"ghcr.io/devcontainers/features/git:1\": {\n      \"version\": \"1.3.4\",\n      \"resolved\": \"ghcr.io/dev"
  },
  {
    "path": ".devcontainer/devcontainer.json",
    "chars": 667,
    "preview": "// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:\n// https://github.co"
  },
  {
    "path": ".devcontainer/headless-browser/devcontainer-feature.json",
    "chars": 98,
    "preview": "{\n  \"id\": \"playwright\",\n  \"name\": \"next.js-playwright\",\n  \"version\": \"0.0.0\",\n  \"dependsOn\": {}\n}\n"
  },
  {
    "path": ".devcontainer/headless-browser/install.sh",
    "chars": 779,
    "preview": "#!/bin/bash\nset -euxo pipefail\nexport DEBIAN_FRONTEND=noninteractive\n\napt-get update\n# These are required to run playwri"
  },
  {
    "path": ".devcontainer/node-extras/devcontainer-feature.json",
    "chars": 100,
    "preview": "{\n  \"id\": \"node-extras\",\n  \"name\": \"next.js-node-extras\",\n  \"version\": \"0.0.0\",\n  \"dependsOn\": {}\n}\n"
  },
  {
    "path": ".devcontainer/node-extras/install.sh",
    "chars": 53,
    "preview": "#!/bin/bash\nset -euxo pipefail\n\ncorepack enable pnpm\n"
  },
  {
    "path": ".devcontainer/rust/devcontainer-feature.json",
    "chars": 313,
    "preview": "{\n  \"id\": \"rust\",\n  \"name\": \"next.js-rust\",\n  \"version\": \"0.0.0\",\n  \"dependsOn\": {\n    \"ghcr.io/devcontainers/features/r"
  },
  {
    "path": ".devcontainer/rust/install.sh",
    "chars": 339,
    "preview": "#!/bin/bash\nset -euxo pipefail\nexport DEBIAN_FRONTEND=noninteractive\n\ncurl -L --proto '=https' --tlsv1.2 -sSf \\\n  https:"
  },
  {
    "path": ".git-blame-ignore-revs",
    "chars": 1667,
    "preview": "# All revisions specified in the `.git-blame-ignore-revs` file, are hidden from the blame\n# when running `git blame --ig"
  },
  {
    "path": ".gitattributes",
    "chars": 440,
    "preview": "# Enforce LF line endings for all text files (fixes Windows CRLF test flakiness)\n* text=auto eol=lf\n\n.github/actions/*/d"
  },
  {
    "path": ".github/CODEOWNERS",
    "chars": 93,
    "preview": "# Learn how to add code owners here:\n# https://help.github.com/en/articles/about-code-owners\n"
  },
  {
    "path": ".github/DISCUSSION_TEMPLATE/help.yml",
    "chars": 569,
    "preview": "body:\n  - type: textarea\n    attributes:\n      label: Summary\n      description: What do you need help with?\n    validat"
  },
  {
    "path": ".github/DISCUSSION_TEMPLATE/ideas.yml",
    "chars": 849,
    "preview": "body:\n  - type: textarea\n    attributes:\n      label: Goals\n      description: Short list of what the feature request ai"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/1.bug_report.yml",
    "chars": 7630,
    "preview": "name: Report an issue\ndescription: Report a Next.js issue.\ntype: Bug\nbody:\n  - type: markdown\n    attributes:\n      valu"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/4.docs_report.yml",
    "chars": 1353,
    "preview": "name: 'Report a documentation issue'\ndescription: Report an issue with the Next.js documentation.\ntitle: 'Docs: '\ntype: "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 585,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: Ask a question or discuss a topic\n    url: https://github.com/verce"
  },
  {
    "path": ".github/actions/needs-triage/action.yaml",
    "chars": 156,
    "preview": "name: 'Issue auto label'\ndescription: 'vercel/next.js specific auto-labeling action'\nauthor: 'Next.js team'\nruns:\n  usin"
  },
  {
    "path": ".github/actions/needs-triage/dist/index.js",
    "chars": 458956,
    "preview": "(()=>{var __webpack_modules__={1591:function(e,p,a){\"use strict\";var d=this&&this.__createBinding||(Object.create?functi"
  },
  {
    "path": ".github/actions/needs-triage/dist/licenses.txt",
    "chars": 35871,
    "preview": "@actions/core\nMIT\nThe MIT License (MIT)\n\nCopyright 2019 GitHub\n\nPermission is hereby granted, free of charge, to any per"
  },
  {
    "path": ".github/actions/needs-triage/package.json",
    "chars": 409,
    "preview": "{\n  \"private\": true,\n  \"exports\": \"./dist/index.js\",\n  \"files\": [\n    \"src\"\n  ],\n  \"scripts\": {\n    \"build\": \"pnpm types"
  },
  {
    "path": ".github/actions/needs-triage/src/index.ts",
    "chars": 1337,
    "preview": "import * as github from '@actions/github'\nimport * as core from '@actions/core'\n\nconst LABELS = {\n  VERIFY_CANARY: 'plea"
  },
  {
    "path": ".github/actions/needs-triage/tsconfig.json",
    "chars": 303,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"esnext\",\n    \"module\": \"commonjs\",\n    \"outDir\": \"./lib\",\n    \"rootDir\": \"./src\""
  },
  {
    "path": ".github/actions/next-integration-stat/action.yml",
    "chars": 772,
    "preview": "name: 'Next.js integration status'\nauthor: Turbopack team\ndescription: 'Display next.js integration test failure status'"
  },
  {
    "path": ".github/actions/next-integration-stat/dist/37.index.js",
    "chars": 10280,
    "preview": "\"use strict\";\nexports.id = 37;\nexports.ids = [37];\nexports.modules = {\n\n/***/ 4037:\n/***/ ((__unused_webpack___webpack_m"
  },
  {
    "path": ".github/actions/next-integration-stat/dist/index.js",
    "chars": 2006125,
    "preview": "/******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 7995:\n/***/ (function(__unused_webpa"
  },
  {
    "path": ".github/actions/next-integration-stat/package.json",
    "chars": 658,
    "preview": "{\n  \"name\": \"next-integration-stat\",\n  \"private\": true,\n  \"main\": \"dist/index.js\",\n  \"scripts\": {\n    \"lint\": \"eslint sr"
  },
  {
    "path": ".github/actions/next-integration-stat/src/index.ts",
    "chars": 20343,
    "preview": "import { context, getOctokit } from '@actions/github'\nimport { info, getInput } from '@actions/core'\nconst { default: st"
  },
  {
    "path": ".github/actions/next-integration-stat/src/manifest.d.ts",
    "chars": 1079,
    "preview": "interface JobResult {\n  job: string\n  data: TestResult\n}\n\ninterface TestResultManifest {\n  ref: string\n  result: Array<J"
  },
  {
    "path": ".github/actions/next-integration-stat/tsconfig.json",
    "chars": 86,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"es2015\",\n    \"moduleResolution\": \"node\"\n  }\n}\n"
  },
  {
    "path": ".github/actions/next-repo-actions/dist/feature-requests/index.mjs",
    "chars": 1346774,
    "preview": "import{createRequire as __WEBPACK_EXTERNAL_createRequire}from\"module\";var __webpack_modules__={7995:function(e,A,t){var "
  },
  {
    "path": ".github/actions/next-repo-actions/dist/feature-requests/licenses.txt",
    "chars": 58070,
    "preview": "@actions/core\nMIT\nThe MIT License (MIT)\n\nCopyright 2019 GitHub\n\nPermission is hereby granted, free of charge, to any per"
  },
  {
    "path": ".github/actions/next-repo-actions/dist/issues/index.mjs",
    "chars": 1346735,
    "preview": "import{createRequire as __WEBPACK_EXTERNAL_createRequire}from\"module\";var __webpack_modules__={7995:function(e,A,t){var "
  },
  {
    "path": ".github/actions/next-repo-actions/dist/issues/licenses.txt",
    "chars": 58070,
    "preview": "@actions/core\nMIT\nThe MIT License (MIT)\n\nCopyright 2019 GitHub\n\nPermission is hereby granted, free of charge, to any per"
  },
  {
    "path": ".github/actions/next-repo-actions/dist/prs/index.js",
    "chars": 1421319,
    "preview": "(()=>{var __webpack_modules__={7995:function(e,A,t){\"use strict\";var s=this&&this.__createBinding||(Object.create?functi"
  },
  {
    "path": ".github/actions/next-repo-actions/dist/prs/licenses.txt",
    "chars": 59161,
    "preview": "@actions/core\nMIT\nThe MIT License (MIT)\n\nCopyright 2019 GitHub\n\nPermission is hereby granted, free of charge, to any per"
  },
  {
    "path": ".github/actions/next-repo-actions/dist/wrong-issue-template/index.js",
    "chars": 1038327,
    "preview": "(()=>{var A={7995:function(A,e,t){\"use strict\";var r=this&&this.__createBinding||(Object.create?function(A,e,t,r){if(r=="
  },
  {
    "path": ".github/actions/next-repo-actions/dist/wrong-issue-template/licenses.txt",
    "chars": 33374,
    "preview": "@actions/core\nMIT\nThe MIT License (MIT)\n\nCopyright 2019 GitHub\n\nPermission is hereby granted, free of charge, to any per"
  },
  {
    "path": ".github/actions/next-repo-actions/lib/util.mjs",
    "chars": 524,
    "preview": "import { getExecOutput } from '@actions/exec'\nimport { setFailed } from '@actions/core'\n\n// format date to <month|short>"
  },
  {
    "path": ".github/actions/next-repo-actions/package.json",
    "chars": 924,
    "preview": "{\n  \"private\": true,\n  \"description\": \"A variety of functions to help with triaging issues, PRs, and feature requests in"
  },
  {
    "path": ".github/actions/next-repo-actions/src/popular-feature-requests.mjs",
    "chars": 2864,
    "preview": "// @ts-check\nimport { context, getOctokit } from '@actions/github'\nimport { info, setFailed } from '@actions/core'\nimpor"
  },
  {
    "path": ".github/actions/next-repo-actions/src/popular-issues.mjs",
    "chars": 2529,
    "preview": "// @ts-check\nimport { context, getOctokit } from '@actions/github'\nimport { info, setFailed } from '@actions/core'\nimpor"
  },
  {
    "path": ".github/actions/next-repo-actions/src/popular-prs.ts",
    "chars": 2135,
    "preview": "// @ts-check\nimport { setFailed, info } from '@actions/core'\nimport { context, getOctokit } from '@actions/github'\nimpor"
  },
  {
    "path": ".github/actions/next-repo-actions/src/wrong-issue-template.ts",
    "chars": 1223,
    "preview": "import { info, setFailed } from '@actions/core'\nimport { context, getOctokit } from '@actions/github'\n\nasync function ma"
  },
  {
    "path": ".github/actions/next-repo-actions/tsconfig.json",
    "chars": 86,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"es2015\",\n    \"moduleResolution\": \"node\"\n  }\n}\n"
  },
  {
    "path": ".github/actions/next-stats-action/Dockerfile",
    "chars": 1015,
    "preview": "# syntax=docker.io/docker/dockerfile:1\n\nFROM ubuntu:22.04\n\nLABEL com.github.actions.name=\"Next.js PR Stats\"\nLABEL com.gi"
  },
  {
    "path": ".github/actions/next-stats-action/README.md",
    "chars": 2930,
    "preview": "# Next.js Stats GitHub Action\n\n> Downloads and runs project with provided configs gathering stats to compare branches\n\nS"
  },
  {
    "path": ".github/actions/next-stats-action/action.yml",
    "chars": 239,
    "preview": "name: 'Next.js PR Stats'\ndescription: 'Compare PR stats with canary'\ninputs:\n  bundler:\n    description: 'Bundler to ben"
  },
  {
    "path": ".github/actions/next-stats-action/entrypoint.sh",
    "chars": 94,
    "preview": "#!/usr/bin/env bash\nset -eu # stop on error\n\nexport HOME=/root\n\nnode /next-stats/src/index.js\n"
  },
  {
    "path": ".github/actions/next-stats-action/native/.gitignore",
    "chars": 70,
    "preview": "# Ignore everything in this directory\n*\n# Except this file\n!.gitignore"
  },
  {
    "path": ".github/actions/next-stats-action/package.json",
    "chars": 517,
    "preview": "{\n  \"private\": true,\n  \"main\": \"src/index.js\",\n  \"dependencies\": {\n    \"@vercel/kv\": \"^1.0.1\",\n    \"async-sema\": \"^3.1.0"
  },
  {
    "path": ".github/actions/next-stats-action/src/add-comment.js",
    "chars": 36558,
    "preview": "const path = require('path')\nconst fs = require('fs').promises\nconst fetch = require('node-fetch')\nconst prettyMs = requ"
  },
  {
    "path": ".github/actions/next-stats-action/src/aggregate-results.js",
    "chars": 3670,
    "preview": "#!/usr/bin/env node\n/**\n * Aggregates results from sharded stats runs and posts combined comment\n *\n * Usage: node aggre"
  },
  {
    "path": ".github/actions/next-stats-action/src/constants.js",
    "chars": 624,
    "preview": "const path = require('path')\nconst os = require('os')\nconst fs = require('fs')\n\nconst benchTitle = 'Page Load Tests'\ncon"
  },
  {
    "path": ".github/actions/next-stats-action/src/index.js",
    "chars": 6502,
    "preview": "const path = require('path')\nconst fs = require('fs/promises')\nconst { existsSync } = require('fs')\nconst exec = require"
  },
  {
    "path": ".github/actions/next-stats-action/src/prepare/action-info.js",
    "chars": 2943,
    "preview": "const path = require('path')\nconst logger = require('../util/logger')\nconst { execSync } = require('child_process')\ncons"
  },
  {
    "path": ".github/actions/next-stats-action/src/prepare/load-stats-config.js",
    "chars": 994,
    "preview": "const path = require('path')\nconst logger = require('../util/logger')\nconst { diffRepoDir, allowedConfigLocations } = re"
  },
  {
    "path": ".github/actions/next-stats-action/src/prepare/repo-setup.js",
    "chars": 10396,
    "preview": "const path = require('path')\nconst fs = require('fs')\nconst { existsSync } = require('fs')\nconst exec = require('../util"
  },
  {
    "path": ".github/actions/next-stats-action/src/run/benchmark-url.js",
    "chars": 813,
    "preview": "const exec = require('../util/exec')\n\nconst parseField = (stdout = '', field = '') => {\n  return stdout.split(field).pop"
  },
  {
    "path": ".github/actions/next-stats-action/src/run/collect-diffs.js",
    "chars": 4954,
    "preview": "const path = require('path')\nconst fs = require('fs/promises')\nconst { existsSync } = require('fs')\nconst exec = require"
  },
  {
    "path": ".github/actions/next-stats-action/src/run/collect-stats.js",
    "chars": 17216,
    "preview": "const path = require('path')\nconst net = require('net')\nconst fs = require('fs/promises')\nconst { existsSync } = require"
  },
  {
    "path": ".github/actions/next-stats-action/src/run/get-dir-size.js",
    "chars": 710,
    "preview": "const path = require('path')\nconst fs = require('fs/promises')\n\n// getDirSize recursively gets size of all files in a di"
  },
  {
    "path": ".github/actions/next-stats-action/src/run/index.js",
    "chars": 9745,
    "preview": "const path = require('path')\nconst fs = require('fs/promises')\nconst glob = require('../util/glob')\nconst exec = require"
  },
  {
    "path": ".github/actions/next-stats-action/src/util/exec.js",
    "chars": 1201,
    "preview": "const logger = require('./logger')\nconst { promisify } = require('util')\nconst { exec: execOrig, spawn: spawnOrig } = re"
  },
  {
    "path": ".github/actions/next-stats-action/src/util/glob.js",
    "chars": 108,
    "preview": "const globOrig = require('glob')\nconst { promisify } = require('util')\nmodule.exports = promisify(globOrig)\n"
  },
  {
    "path": ".github/actions/next-stats-action/src/util/logger.js",
    "chars": 270,
    "preview": "function logger(...args) {\n  console.log(...args)\n}\n\nlogger.json = (obj) => {\n  logger('\\n', JSON.stringify(obj, null, 2"
  },
  {
    "path": ".github/actions/next-stats-action/src/util/stats.js",
    "chars": 1027,
    "preview": "/**\n * Shared statistics utilities for benchmark measurements\n */\n\n/**\n * Calculate statistical summary for an array of "
  },
  {
    "path": ".github/actions/next-stats-action/test-local.js",
    "chars": 3706,
    "preview": "#!/usr/bin/env node\n/**\n * Test the stats action comment formatting locally\n *\n * Usage: node test-local.js [--with-hist"
  },
  {
    "path": ".github/actions/setup-rust/action.yml",
    "chars": 833,
    "preview": "name: 'Rust Setup'\ndescription: 'Sets up the Rust toolchain for CI'\ninputs:\n  targets:\n    description: 'Comma-separated"
  },
  {
    "path": ".github/actions/setup-rust/matchers.json",
    "chars": 863,
    "preview": "{\n  \"problemMatcher\": [\n    {\n      \"owner\": \"cargo-common\",\n      \"pattern\": [\n        {\n          \"regexp\": \"^(warning"
  },
  {
    "path": ".github/actions/upload-turboyet-data/action.yml",
    "chars": 140,
    "preview": "name: 'upload-turboyet-data'\ndescription: 'Uploads data for Are We Turbo Yet? to Vercel KV'\nruns:\n  using: 'node20'\n  ma"
  },
  {
    "path": ".github/actions/upload-turboyet-data/dist/index.js",
    "chars": 155348,
    "preview": "require('./sourcemap-register.js');/******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 7"
  },
  {
    "path": ".github/actions/upload-turboyet-data/dist/index.js.map",
    "chars": 188831,
    "preview": "{\"version\":3,\"file\":\"index.js\",\"mappings\":\";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"
  },
  {
    "path": ".github/actions/upload-turboyet-data/dist/sourcemap-register.js",
    "chars": 41053,
    "preview": "(()=>{var e={296:e=>{var r=Object.prototype.toString;var n=typeof Buffer!==\"undefined\"&&typeof Buffer.alloc===\"function\""
  },
  {
    "path": ".github/actions/upload-turboyet-data/package.json",
    "chars": 349,
    "preview": "{\n  \"name\": \"upload-turboyet-data-action\",\n  \"version\": \"0.0.0\",\n  \"private\": true,\n  \"scripts\": {\n    \"build\": \"ncc bui"
  },
  {
    "path": ".github/actions/upload-turboyet-data/src/main.js",
    "chars": 6591,
    "preview": "const fs = require('fs/promises')\nconst path = require('path')\n\nconst { createClient } = require('@vercel/kv')\n\nasync fu"
  },
  {
    "path": ".github/actions/validate-docs-links/README.MD",
    "chars": 699,
    "preview": "# GitHub Action for Validating Documentation Links\n\nThis action ensures that internal links in `.mdx` files in the `/doc"
  },
  {
    "path": ".github/actions/validate-docs-links/dist/index.js",
    "chars": 870358,
    "preview": "import{createRequire as __WEBPACK_EXTERNAL_createRequire}from\"module\";var __webpack_modules__={4966:function(e,t,r){var "
  },
  {
    "path": ".github/actions/validate-docs-links/dist/licenses.txt",
    "chars": 111367,
    "preview": "@actions/core\nMIT\nThe MIT License (MIT)\n\nCopyright 2019 GitHub\n\nPermission is hereby granted, free of charge, to any per"
  },
  {
    "path": ".github/actions/validate-docs-links/dist/package.json",
    "chars": 23,
    "preview": "{\n  \"type\": \"module\"\n}\n"
  },
  {
    "path": ".github/actions/validate-docs-links/package.json",
    "chars": 643,
    "preview": "{\n  \"private\": true,\n  \"type\": \"module\",\n  \"exports\": \"./dist/index.js\",\n  \"files\": [\n    \"src\"\n  ],\n  \"scripts\": {\n    "
  },
  {
    "path": ".github/actions/validate-docs-links/src/index.ts",
    "chars": 13933,
    "preview": "import fs from 'fs/promises'\nimport path from 'path'\nimport unified from 'unified'\nimport markdown from 'remark-parse'\ni"
  },
  {
    "path": ".github/actions/validate-docs-links/tsconfig.json",
    "chars": 219,
    "preview": "{\n  \"compilerOptions\": {\n    \"noEmit\": true,\n    \"target\": \"esnext\",\n    \"moduleResolution\": \"node\",\n    \"rootDir\": \"./s"
  },
  {
    "path": ".github/actions/validate-docs-links/types.d.ts",
    "chars": 59,
    "preview": "declare module 'remark-rehype'\ndeclare module 'rehype-raw'\n"
  },
  {
    "path": ".github/comments/good-first-issue.md",
    "chars": 1036,
    "preview": "The issue was marked with the `good first issue` label by a maintainer.\n\nThis means that it is a good candidate for some"
  },
  {
    "path": ".github/comments/invalid-link.md",
    "chars": 4058,
    "preview": "We could not detect a valid reproduction link. **Make sure to follow the bug report template carefully.**\n\n### Why was t"
  },
  {
    "path": ".github/comments/invalid-reproduction.md",
    "chars": 4282,
    "preview": "We cannot recreate the issue with the provided information. **Please add a reproduction in order for us to be able to in"
  },
  {
    "path": ".github/comments/resolved.md",
    "chars": 303,
    "preview": "This issue has been resolved on a newer version of the package. Please update to `next@latest` or `next@canary` to test "
  },
  {
    "path": ".github/comments/simplify-reproduction.md",
    "chars": 3207,
    "preview": "We cannot easily recreate the issue with the provided information. Please add a **minimal** reproduction in order for us"
  },
  {
    "path": ".github/comments/verify-canary.md",
    "chars": 3862,
    "preview": "Please verify that your issue can be recreated with `next@canary`.\n\n### Why was this issue marked with the `please verif"
  },
  {
    "path": ".github/labeler.json",
    "chars": 4261,
    "preview": "{\n  \"labels\": {\n    \"create-next-app\": [\"packages/create-next-app/**\"],\n    \"documentation\": [\"docs/**\", \"errors/**\"],\n "
  },
  {
    "path": ".github/pnpm-workspace.yaml",
    "chars": 26,
    "preview": "packages:\n  - 'actions/*'\n"
  },
  {
    "path": ".github/pull_request_template.md",
    "chars": 1842,
    "preview": "<!-- Thanks for opening a PR! Your contribution is much appreciated.\nTo make sure your PR is handled as smoothly as poss"
  },
  {
    "path": ".github/workflows/build_and_deploy.yml",
    "chars": 22469,
    "preview": "# Update all mentions of this name in vercel-packages when changing.\nname: build-and-deploy\n\non:\n  push:\n    # Don't run"
  },
  {
    "path": ".github/workflows/build_and_test.yml",
    "chars": 40745,
    "preview": "name: build-and-test\n\non:\n  push:\n    branches: ['canary']\n  pull_request:\n    types: [opened, synchronize]\n\nconcurrency"
  },
  {
    "path": ".github/workflows/build_reusable.yml",
    "chars": 15009,
    "preview": "name: Build Reusable\n\non:\n  workflow_call:\n    inputs:\n      afterBuild:\n        required: false\n        description: 'a"
  },
  {
    "path": ".github/workflows/code_freeze.yml",
    "chars": 1131,
    "preview": "on:\n  workflow_dispatch:\n    inputs:\n      type:\n        description: Enable/disable code freeze\n        required: true\n"
  },
  {
    "path": ".github/workflows/create_release_branch.yml",
    "chars": 2226,
    "preview": "on:\n  workflow_dispatch:\n    inputs:\n      branchName:\n        description: name of branch to create (next-15-4)\n       "
  },
  {
    "path": ".github/workflows/deploy_docs.yml",
    "chars": 1366,
    "preview": "name: docs-deploy\n\non:\n  pull_request:\n    paths:\n      - 'apps/docs/**'\n    types: [opened, synchronize]\n\npermissions:\n"
  },
  {
    "path": ".github/workflows/graphite_ci_optimizer.yml",
    "chars": 2175,
    "preview": "# Avoid running the full CI on mid-stack PRs: https://graphite.dev/docs/stacking-and-ci\n#\n# We still run some high-signa"
  },
  {
    "path": ".github/workflows/integration_tests_reusable.yml",
    "chars": 5478,
    "preview": "name: Integration Tests Reusable\n\non:\n  workflow_call:\n    inputs:\n      name:\n        description: A unique identifer u"
  },
  {
    "path": ".github/workflows/issue_lock.yml",
    "chars": 870,
    "preview": "name: 'Lock Threads'\n\non:\n  schedule:\n    # This runs twice a day: https://crontab.guru/#0_0,12_*_*_*\n    - cron: '0 0,1"
  },
  {
    "path": ".github/workflows/issue_stale.yml",
    "chars": 4337,
    "preview": "name: 'Stale issue handler'\non:\n  workflow_dispatch:\n  schedule:\n    # This runs every day 20 minutes before midnight: h"
  },
  {
    "path": ".github/workflows/issue_wrong_template.yml",
    "chars": 604,
    "preview": "name: 'Close issues using the wrong issue template'\n\non:\n  issues:\n    types: [labeled]\n\njobs:\n  close:\n    if: github.e"
  },
  {
    "path": ".github/workflows/popular.yml",
    "chars": 1055,
    "preview": "name: Notify about the top 15 issues/PRs/feature requests (most reacted) in the last 90 days\n\non:\n  schedule:\n    - cron"
  },
  {
    "path": ".github/workflows/pull_request_stats.yml",
    "chars": 4314,
    "preview": "on:\n  pull_request:\n    types: [opened, synchronize]\n  push:\n    branches:\n      - canary\n\nname: Generate Stats\n\nconcurr"
  },
  {
    "path": ".github/workflows/release-next-rspack.yml",
    "chars": 4147,
    "preview": "name: Release next-rspack bindings\n\non:\n  workflow_dispatch:\n    inputs:\n      dry-run:\n        description: 'Run in dry"
  },
  {
    "path": ".github/workflows/retry_deploy_test.yml",
    "chars": 2374,
    "preview": "name: retry-deploy-tests\n\non:\n  workflow_run:\n    workflows: ['test-e2e-deploy-release']\n    types:\n      - completed\n\ne"
  },
  {
    "path": ".github/workflows/retry_test.yml",
    "chars": 5795,
    "preview": "name: retry-tests\n\non:\n  workflow_run:\n    # Make sure that required_job_conclusion knows what the name of the required\n"
  },
  {
    "path": ".github/workflows/rspack-nextjs-build-integration-tests.yml",
    "chars": 816,
    "preview": "name: Rspack Next.js production integration tests\n\non:\n  schedule:\n    # Run an hour earlier than the turbopack tests, s"
  },
  {
    "path": ".github/workflows/rspack-nextjs-dev-integration-tests.yml",
    "chars": 817,
    "preview": "name: Rspack Next.js development integration tests\n\non:\n  schedule:\n    # Run an hour earlier than the turbopack tests, "
  },
  {
    "path": ".github/workflows/rspack-update-tests-manifest.yml",
    "chars": 3221,
    "preview": "# A recurring workflow which updates the passing/failing/skipped integration tests for Turbopack.\nname: Update Rspack te"
  },
  {
    "path": ".github/workflows/setup-nextjs-build.yml",
    "chars": 5004,
    "preview": "# Reusable workflow to setup next.js integration test environment.\nname: Setup Next.js\n\non:\n  workflow_call:\n    inputs:"
  },
  {
    "path": ".github/workflows/test-turbopack-rust-bench-test.yml",
    "chars": 1908,
    "preview": "name: Turbopack Rust testing benchmarks\non:\n  workflow_call:\n    inputs:\n      runner:\n        type: string\n        defa"
  },
  {
    "path": ".github/workflows/test_e2e_deploy_release.yml",
    "chars": 16754,
    "preview": "name: test-e2e-deploy-release\n\non:\n  # run on every release/prerelease\n  release:\n    types: [published]\n  # allow trigg"
  },
  {
    "path": ".github/workflows/test_e2e_project_reset_cron.yml",
    "chars": 1151,
    "preview": "name: test-e2e-project-reset-cron\n\non:\n  # Run every Sunday at 5AM UTC\n  schedule:\n    - cron: '0 5 * * 0'\n  # Allow man"
  },
  {
    "path": ".github/workflows/test_examples.yml",
    "chars": 1517,
    "preview": "# This file duplicates bunch of things from build_test_deploy\n\non:\n  workflow_dispatch:\n    inputs:\n      is_dispatched:"
  },
  {
    "path": ".github/workflows/triage.yml",
    "chars": 1853,
    "preview": "name: Triage issues\n\non:\n  issues:\n    types: [opened, labeled]\n  issue_comment:\n    types: [created]\n\nenv:\n  GITHUB_TOK"
  },
  {
    "path": ".github/workflows/trigger_release.yml",
    "chars": 3321,
    "preview": "on:\n  schedule:\n    # run every day at 23:15\n    - cron: '15 23 * * *'\n\n  workflow_dispatch:\n    inputs:\n      releaseTy"
  },
  {
    "path": ".github/workflows/turbopack-benchmark.yml",
    "chars": 4435,
    "preview": "name: Turbopack Benchmark\n\non:\n  workflow_dispatch:\n  push:\n    branches:\n      - canary\n  pull_request:\n    types: ['op"
  },
  {
    "path": ".github/workflows/turbopack-nextjs-build-integration-tests.yml",
    "chars": 758,
    "preview": "name: Turbopack Next.js production integration tests\n\non:\n  schedule:\n    - cron: '0 6 * * *'\n  workflow_dispatch: {}\n\nj"
  },
  {
    "path": ".github/workflows/turbopack-nextjs-dev-integration-tests.yml",
    "chars": 422,
    "preview": "name: Turbopack Next.js development integration tests\n\non:\n  schedule:\n    - cron: '0 6 * * *'\n  workflow_dispatch: {}\n\n"
  },
  {
    "path": ".github/workflows/turbopack-update-tests-manifest.yml",
    "chars": 2964,
    "preview": "# A recurring workflow which updates the passing/failing/skipped integration tests for Turbopack.\nname: Update Turbopack"
  },
  {
    "path": ".github/workflows/update_fonts_data.yml",
    "chars": 1390,
    "preview": "name: Update Font Data\n\non:\n  # Run every every day at midnight https://crontab.guru/#0_0_*_*_*/1\n  schedule:\n    - cron"
  },
  {
    "path": ".github/workflows/update_react.yml",
    "chars": 1844,
    "preview": "name: Update React\n\non:\n  schedule:\n    # At 40 minutes past 16:00 on Mon, Tue, Wed, Thu, and Fri\n    # i.e. 30min past "
  },
  {
    "path": ".github/workflows/upload-tests-manifest.yml",
    "chars": 1268,
    "preview": "# Workflow to upload next.js integration test results to KV for https://areweturboyet.com/\n# This workflow assumes the `"
  },
  {
    "path": ".gitignore",
    "chars": 1053,
    "preview": "# build output\ndist\n!.github/actions/*/dist\n.next\ntarget\npackages/next/wasm/@next\ntarballs/\npackages/**/*.tgz\n.errors/\n\n"
  },
  {
    "path": ".husky/pre-commit",
    "chars": 17,
    "preview": "pnpm lint-staged\n"
  },
  {
    "path": ".husky/pre-push",
    "chars": 1401,
    "preview": "#!/bin/sh\n\nprotected_branch='canary'\n\n# github blocks password-based auth, but still usable via API token\nprotected_remo"
  },
  {
    "path": ".ignore",
    "chars": 293,
    "preview": "# Ignore these files in tools like grep, rg, ast-grep, etc. These files should\n# *not* be ignored by git.\n\npackages/next"
  },
  {
    "path": ".node-version",
    "chars": 4,
    "preview": "v20\n"
  },
  {
    "path": ".npmrc",
    "chars": 163,
    "preview": "auto-install-peers = true\nlockfile = true\nlink-workspace-packages = true\nprovenance = true\nsave-exact = true\nstrict-peer"
  },
  {
    "path": ".prettierignore",
    "chars": 4731,
    "preview": "# Build artifacts\n.next/\n.turbo/\n_next/\n__tmp__/\ndist/\ntarget/\ncompiled/\n\n# ast-grep snapshots (managed by ast-grep, not"
  },
  {
    "path": ".prettierrc.json",
    "chars": 69,
    "preview": "{\n  \"trailingComma\": \"es5\",\n  \"singleQuote\": true,\n  \"semi\": false\n}\n"
  },
  {
    "path": ".rustfmt.toml",
    "chars": 253,
    "preview": "edition = \"2024\"\nstyle_edition = \"2024\"\nmax_width = 100\n\ncomment_width = 100\nwrap_comments = true\n\ntab_spaces = 4\nhard_t"
  },
  {
    "path": ".typos.toml",
    "chars": 752,
    "preview": "# https://github.com/crate-ci/typos\n# cargo install typos-cli\n# typos\n\n[default]\ncheck-filename = false\nextend-ignore-id"
  },
  {
    "path": ".vscode/extensions.json",
    "chars": 577,
    "preview": "{\n  \"recommendations\": [\n    // Linting / Formatting\n    \"rust-lang.rust-analyzer\",\n    \"esbenp.prettier-vscode\",\n    \"d"
  },
  {
    "path": ".vscode/launch.json",
    "chars": 6451,
    "preview": "{\n  // Use IntelliSense to learn about possible attributes.\n  // Hover to view descriptions of existing attributes.\n  //"
  },
  {
    "path": ".vscode/settings.json",
    "chars": 4089,
    "preview": "{\n  // Formatting using Prettier by default for all languages\n  \"editor.defaultFormatter\": \"esbenp.prettier-vscode\",\n  /"
  },
  {
    "path": ".vscode/tasks.json",
    "chars": 658,
    "preview": "{\n  \"version\": \"2.0.0\",\n  \"tasks\": [\n    {\n      \"label\": \"types\",\n      \"command\": \"pnpm\",\n      \"args\": [\"typescript\","
  },
  {
    "path": "AGENTS.md",
    "chars": 21289,
    "preview": "# Next.js Development Guide\n\n> **Note:** `CLAUDE.md` is a symlink to `AGENTS.md`. They are the same file.\n\n## Codebase s"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 3296,
    "preview": "## Code of Conduct\n\n### Our Pledge\n\nWe as members, contributors, and leaders pledge to make participation in our communi"
  },
  {
    "path": "Cargo.toml",
    "chars": 12004,
    "preview": "[workspace]\nresolver = \"2\"\n\nmembers = [\n  \"scripts/send-trace-to-jaeger\",\n  \"crates/next-napi-bindings\",\n  \"crates/wasm\""
  },
  {
    "path": "UPGRADING.md",
    "chars": 218,
    "preview": "This document has been moved to [nextjs.org/docs](https://nextjs.org/docs/app/getting-started/upgrading). It's also avai"
  }
]

// ... and 26472 more files (download for full content)

About this extraction

This page contains the full source code of the vercel/next.js GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 26672 files (107.9 MB), approximately 28.1M tokens, and a symbol index with 86713 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!