├── .dockerignore
├── .gitattributes
├── .gitignore
├── .prettierrc.json
├── LICENSE.md
├── README.md
├── README.zh_CN.md
├── apps
└── eval
│ ├── .gitignore
│ ├── package.json
│ ├── readme.md
│ ├── src
│ ├── base.ts
│ ├── bench-eval-runner.ts
│ ├── custom-eval-runner.ts
│ ├── index.ts
│ ├── model.json
│ └── utils
│ │ ├── api.ts
│ │ ├── cmd.ts
│ │ ├── compress.ts
│ │ ├── env.ts
│ │ ├── project.ts
│ │ └── server.ts
│ ├── tsconfig.json
│ └── tsup.config.ts
├── common
├── autoinstallers
│ └── rush-commands
│ │ ├── package.json
│ │ └── pnpm-lock.yaml
├── config
│ └── rush
│ │ ├── .npmrc
│ │ ├── .pnpmfile.cjs
│ │ ├── artifactory.json
│ │ ├── build-cache.json
│ │ ├── cobuild.json
│ │ ├── command-line.json
│ │ ├── common-versions.json
│ │ ├── custom-tips.json
│ │ ├── experiments.json
│ │ ├── pnpm-config.json
│ │ ├── pnpm-lock.yaml
│ │ ├── repo-state.json
│ │ ├── rush-plugins.json
│ │ ├── subspaces.json
│ │ └── version-policies.json
├── git-hooks
│ └── commit-msg
└── scripts
│ ├── install-run-rush-pnpm.js
│ ├── install-run-rush.js
│ ├── install-run-rushx.js
│ └── install-run.js
├── docs
└── assets
│ ├── pass-1.png
│ └── sotas.png
├── libraries
├── shop-test-util
│ ├── package.json
│ └── src
│ │ ├── index.js
│ │ └── sku.js
├── summary
│ ├── package.json
│ └── src
│ │ ├── index.js
│ │ └── summary.json
└── test-util
│ ├── package.json
│ ├── src
│ ├── css.js
│ └── index.js
│ └── test.sh
├── pnpm-lock.yaml
├── projects
├── .gitignore
├── angular
│ ├── .evalignore
│ ├── .gitignore
│ ├── README.md
│ ├── package.json
│ ├── playwright.config.js
│ ├── scripts
│ │ ├── build.js
│ │ └── dev.js
│ ├── src-init
│ │ ├── angular.json
│ │ ├── app.component.ts
│ │ ├── app.config.ts
│ │ ├── app.routes.ts
│ │ ├── index.html
│ │ ├── main.ts
│ │ ├── readme.md
│ │ ├── styles.css
│ │ ├── tsconfig.app.json
│ │ └── tsconfig.json
│ ├── src
│ │ ├── angular.json
│ │ ├── app.component.ts
│ │ ├── app.config.ts
│ │ ├── app.routes.ts
│ │ ├── components
│ │ │ ├── blog-form
│ │ │ │ └── blog-form.component.ts
│ │ │ ├── blog-list
│ │ │ │ └── blog-list.component.ts
│ │ │ ├── blog
│ │ │ │ └── blog.component.ts
│ │ │ ├── comments
│ │ │ │ └── comments.component.ts
│ │ │ ├── header
│ │ │ │ └── header.component.ts
│ │ │ ├── main
│ │ │ │ └── main.component.ts
│ │ │ └── search
│ │ │ │ └── search.component.ts
│ │ ├── directives
│ │ │ ├── tooltip.directive.ts
│ │ │ └── truncate.directive.ts
│ │ ├── index.html
│ │ ├── main.ts
│ │ ├── pages
│ │ │ ├── blogPage
│ │ │ │ └── blogPage.component.ts
│ │ │ └── game
│ │ │ │ └── game.component.ts
│ │ ├── pipes
│ │ │ └── marked.pipe.ts
│ │ ├── readme.md
│ │ ├── services
│ │ │ ├── blog.service.ts
│ │ │ ├── comment.service.ts
│ │ │ └── toast.service.ts
│ │ ├── styles.css
│ │ ├── tsconfig.app.json
│ │ └── tsconfig.json
│ ├── tasks.jsonl
│ ├── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
│ └── tsconfig.json
├── bom
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── index.css
│ │ ├── index.html
│ │ └── index.js
│ ├── src
│ │ ├── browser
│ │ │ ├── Address.js
│ │ │ ├── Browser.js
│ │ │ ├── BrowserComp.js
│ │ │ ├── Content.js
│ │ │ ├── Setting.js
│ │ │ ├── Toolbar.js
│ │ │ └── util.js
│ │ ├── docs
│ │ │ ├── css.html
│ │ │ ├── doc.css
│ │ │ ├── doc.js
│ │ │ ├── html.html
│ │ │ ├── intro.html
│ │ │ ├── javascript.html
│ │ │ └── nodejs.html
│ │ ├── index.css
│ │ ├── index.html
│ │ └── index.js
│ ├── tasks.jsonl
│ └── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
├── calculator-files
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── index.css
│ │ ├── index.html
│ │ └── index.js
│ ├── src
│ │ ├── index.css
│ │ ├── index.html
│ │ └── index.js
│ ├── tasks.jsonl
│ └── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
├── calculator
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ └── index.html
│ ├── src
│ │ └── index.html
│ ├── tasks.jsonl
│ └── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
├── canvas
│ ├── .evalignore
│ ├── .gitignore
│ ├── assets
│ │ ├── bg.png
│ │ ├── bird.png
│ │ ├── fg.png
│ │ ├── pipeDown.png
│ │ └── pipeUp.png
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ └── index.html
│ ├── src
│ │ ├── constants.js
│ │ ├── event.js
│ │ ├── index.html
│ │ ├── main.js
│ │ ├── render.js
│ │ ├── store.js
│ │ ├── style.css
│ │ └── util.js
│ ├── tasks.jsonl
│ ├── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
│ └── vite.config.js
├── chart
│ ├── .evalignore
│ ├── .gitignore
│ ├── assets
│ │ ├── data.js
│ │ └── res.svg
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── common
│ │ │ ├── Chart.js
│ │ │ ├── Chart.scss
│ │ │ ├── ChartTheme.js
│ │ │ ├── LineChart.js
│ │ │ ├── config.scss
│ │ │ └── util.js
│ │ ├── index.html
│ │ ├── index.js
│ │ └── index.scss
│ ├── src
│ │ ├── assets
│ │ ├── common
│ │ │ ├── AreaChart.js
│ │ │ ├── BarChart.js
│ │ │ ├── Chart.js
│ │ │ ├── Chart.scss
│ │ │ ├── ChartTheme.js
│ │ │ ├── DoughnutChart.js
│ │ │ ├── LineChart.js
│ │ │ ├── PieChart.js
│ │ │ ├── ScatterChart.js
│ │ │ ├── SmoothLineChart.js
│ │ │ ├── StepChart.js
│ │ │ ├── config.scss
│ │ │ ├── util.js
│ │ │ └── util.spec.js
│ │ ├── index.html
│ │ ├── index.js
│ │ └── index.scss
│ ├── tasks.yml
│ ├── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── util
│ │ │ └── util.js
│ └── vite.config.js
├── color
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── index.html
│ │ └── index.js
│ ├── src
│ │ ├── index.html
│ │ ├── index.js
│ │ └── util.js
│ ├── tasks.yml
│ └── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── util
│ │ └── index.js
├── demo
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ └── index.html
│ ├── src
│ │ └── index.html
│ ├── tasks.jsonl
│ └── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-2.spec.js
│ │ └── task-3.spec.js
├── dom
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── index.css
│ │ ├── index.html
│ │ └── index.js
│ ├── src
│ │ ├── common
│ │ │ ├── dir.js
│ │ │ ├── drag.js
│ │ │ ├── editor.js
│ │ │ ├── entry.js
│ │ │ ├── file.js
│ │ │ ├── filter.js
│ │ │ ├── menu.js
│ │ │ ├── resizer.js
│ │ │ └── sel.js
│ │ ├── index.css
│ │ ├── index.html
│ │ └── index.js
│ ├── tasks.jsonl
│ └── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── util
│ │ └── index.js
├── dom1
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ └── index.html
│ ├── src
│ │ ├── f
│ │ │ ├── dir.js
│ │ │ ├── drag.js
│ │ │ ├── editor.js
│ │ │ ├── entry.js
│ │ │ ├── file.js
│ │ │ ├── filter.js
│ │ │ ├── menu.js
│ │ │ ├── resizer.js
│ │ │ └── sel.js
│ │ ├── index.css
│ │ ├── index.html
│ │ └── index.js
│ ├── tasks.jsonl
│ └── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── util
│ │ └── index.js
├── draw
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── index.html
│ │ ├── index.js
│ │ └── index.scss
│ ├── src
│ │ ├── common
│ │ │ ├── Canvas.js
│ │ │ ├── Canvas.scss
│ │ │ ├── Toolkit.js
│ │ │ ├── Toolkit.scss
│ │ │ ├── config.scss
│ │ │ ├── shape
│ │ │ │ ├── Ellipse.js
│ │ │ │ ├── Line.js
│ │ │ │ ├── Rect.js
│ │ │ │ └── Shape.js
│ │ │ ├── util.js
│ │ │ └── util.spec.js
│ │ ├── index.html
│ │ ├── index.js
│ │ └── index.scss
│ ├── tasks.jsonl
│ ├── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── util
│ │ │ └── util.js
│ └── vite.config.js
├── esmodule
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── index.html
│ │ └── index.js
│ ├── src
│ │ ├── index.html
│ │ ├── index.js
│ │ ├── modules
│ │ │ ├── data
│ │ │ │ ├── en.json
│ │ │ │ ├── fr.json
│ │ │ │ └── zh.json
│ │ │ ├── resource
│ │ │ │ ├── config.json
│ │ │ │ └── style.css
│ │ │ ├── shape
│ │ │ │ ├── Circle.js
│ │ │ │ ├── Rectangle.js
│ │ │ │ ├── Shape.js
│ │ │ │ └── index.js
│ │ │ └── util
│ │ │ │ ├── lang.js
│ │ │ │ ├── log.js
│ │ │ │ └── math.js
│ │ └── nodejs
│ │ │ ├── cjs.cjs
│ │ │ ├── data.json
│ │ │ └── index.js
│ ├── tasks.jsonl
│ └── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
├── expression-editor
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── index.html
│ │ └── index.js
│ ├── src
│ │ ├── autocomplete.js
│ │ ├── editor.js
│ │ ├── evaluate.js
│ │ ├── highlight.js
│ │ ├── index.html
│ │ ├── index.js
│ │ ├── lint.js
│ │ └── parser.js
│ ├── tasks.yml
│ └── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
├── expressjs
│ ├── .evalignore
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── scripts
│ │ ├── dev.js
│ │ └── init-db.js
│ ├── src-init
│ │ ├── index.js
│ │ └── readme.md
│ ├── src
│ │ ├── index.js
│ │ ├── libs
│ │ │ ├── auth.js
│ │ │ ├── db-utils.js
│ │ │ ├── db.js
│ │ │ └── setup.sql
│ │ ├── public
│ │ │ ├── components
│ │ │ │ ├── Cart.js
│ │ │ │ └── HeaderUserMenu.js
│ │ │ └── css
│ │ │ │ ├── admin.css
│ │ │ │ ├── comment.css
│ │ │ │ ├── login.css
│ │ │ │ ├── order.css
│ │ │ │ ├── orders.css
│ │ │ │ ├── profile.css
│ │ │ │ ├── register.css
│ │ │ │ ├── style.css
│ │ │ │ └── wishlist.css
│ │ ├── readme.md
│ │ ├── routes
│ │ │ ├── admin
│ │ │ │ └── api.js
│ │ │ ├── auth
│ │ │ │ ├── api.js
│ │ │ │ └── referer.js
│ │ │ ├── cart
│ │ │ │ └── api.js
│ │ │ ├── comment
│ │ │ │ ├── api.js
│ │ │ │ └── utils.js
│ │ │ ├── home
│ │ │ │ └── api.js
│ │ │ ├── order
│ │ │ │ └── api.js
│ │ │ ├── pay
│ │ │ │ └── api.js
│ │ │ ├── products
│ │ │ │ └── api.js
│ │ │ ├── refund
│ │ │ │ └── api.js
│ │ │ └── wishlist
│ │ │ │ └── api.js
│ │ └── views
│ │ │ ├── admin
│ │ │ ├── orders.pug
│ │ │ ├── products.pug
│ │ │ └── users.pug
│ │ │ ├── comment.pug
│ │ │ ├── error.pug
│ │ │ ├── home.pug
│ │ │ ├── layout.pug
│ │ │ ├── login.pug
│ │ │ ├── order.pug
│ │ │ ├── orders.pug
│ │ │ ├── product-detail.pug
│ │ │ ├── products.pug
│ │ │ ├── profile.pug
│ │ │ ├── register.pug
│ │ │ └── wishlist.pug
│ ├── tasks.jsonl
│ ├── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
│ ├── tsconfig.json
│ └── typings.d.ts
├── fastify-react
│ ├── .evalignore
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── scripts
│ │ ├── dev.js
│ │ └── init-db.js
│ ├── src-init
│ │ ├── client
│ │ │ ├── index.html
│ │ │ ├── index.tsx
│ │ │ └── routes.tsx
│ │ ├── index.ts
│ │ ├── plugins
│ │ │ └── .gitkeep
│ │ ├── readme.md
│ │ └── tsconfig.json
│ ├── src
│ │ ├── client
│ │ │ ├── components
│ │ │ │ ├── AddToWishlist.css
│ │ │ │ ├── AddToWishlist.tsx
│ │ │ │ ├── Cart.css
│ │ │ │ ├── Cart.tsx
│ │ │ │ ├── HeaderUserMenu.css
│ │ │ │ ├── HeaderUserMenu.tsx
│ │ │ │ ├── ProductRating.css
│ │ │ │ ├── ProductRating.tsx
│ │ │ │ ├── ReferralCode.css
│ │ │ │ └── ReferralCode.tsx
│ │ │ ├── context
│ │ │ │ └── auth.tsx
│ │ │ ├── index.html
│ │ │ ├── index.tsx
│ │ │ ├── pages
│ │ │ │ ├── admin
│ │ │ │ │ ├── order-management.css
│ │ │ │ │ ├── order-management.tsx
│ │ │ │ │ ├── product-management.css
│ │ │ │ │ ├── product-management.tsx
│ │ │ │ │ ├── user-management.css
│ │ │ │ │ └── user-management.tsx
│ │ │ │ ├── home.css
│ │ │ │ ├── home.tsx
│ │ │ │ ├── login.css
│ │ │ │ ├── login.tsx
│ │ │ │ ├── not-found.css
│ │ │ │ ├── not-found.tsx
│ │ │ │ ├── order-detail.css
│ │ │ │ ├── order-detail.tsx
│ │ │ │ ├── orders.css
│ │ │ │ ├── orders.tsx
│ │ │ │ ├── product-detail.css
│ │ │ │ ├── product-detail.tsx
│ │ │ │ ├── products.css
│ │ │ │ ├── products.tsx
│ │ │ │ ├── profile.css
│ │ │ │ ├── profile.tsx
│ │ │ │ ├── register.css
│ │ │ │ ├── register.tsx
│ │ │ │ ├── wishlist.css
│ │ │ │ └── wishlist.tsx
│ │ │ ├── root.css
│ │ │ ├── root.tsx
│ │ │ └── routes.tsx
│ │ ├── index.ts
│ │ ├── libs
│ │ │ ├── db.ts
│ │ │ └── setup.sql
│ │ ├── plugins
│ │ │ ├── .gitkeep
│ │ │ ├── admin.ts
│ │ │ ├── auth.ts
│ │ │ ├── cart.ts
│ │ │ ├── comments.ts
│ │ │ ├── orders.ts
│ │ │ ├── product.ts
│ │ │ ├── referral.ts
│ │ │ ├── register.ts
│ │ │ ├── user.ts
│ │ │ └── wishlist.ts
│ │ ├── readme.md
│ │ └── tsconfig.json
│ ├── tasks.yml
│ ├── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
│ └── vite.config.ts
├── fastify
│ ├── .evalignore
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── scripts
│ │ ├── dev.js
│ │ └── init-db.js
│ ├── src-init
│ │ ├── index.ts
│ │ ├── readme.md
│ │ └── tsconfig.json
│ ├── src
│ │ ├── index.ts
│ │ ├── libs
│ │ │ ├── db.ts
│ │ │ └── setup.sql
│ │ ├── plugins
│ │ │ ├── admin.ts
│ │ │ ├── auth.ts
│ │ │ ├── cart.ts
│ │ │ ├── comment.ts
│ │ │ ├── home.ts
│ │ │ ├── order.ts
│ │ │ ├── product.ts
│ │ │ ├── profile.ts
│ │ │ ├── register.ts
│ │ │ └── wishlist.ts
│ │ ├── public
│ │ │ ├── components
│ │ │ │ ├── Cart.js
│ │ │ │ └── HeaderUserMenu.js
│ │ │ └── css
│ │ │ │ ├── admin.css
│ │ │ │ ├── comment.css
│ │ │ │ ├── header-menu.css
│ │ │ │ ├── order.css
│ │ │ │ ├── profile.css
│ │ │ │ ├── register.css
│ │ │ │ ├── style.css
│ │ │ │ └── wishlist.css
│ │ ├── readme.md
│ │ ├── tsconfig.json
│ │ └── views
│ │ │ ├── 404.ejs
│ │ │ ├── admin-orders.ejs
│ │ │ ├── admin-products.ejs
│ │ │ ├── admin-users.ejs
│ │ │ ├── home.ejs
│ │ │ ├── layout.ejs
│ │ │ ├── login.ejs
│ │ │ ├── not-found.ejs
│ │ │ ├── order-detail.ejs
│ │ │ ├── orders.ejs
│ │ │ ├── product-detail.ejs
│ │ │ ├── products.ejs
│ │ │ ├── profile-not-found.ejs
│ │ │ ├── profile.ejs
│ │ │ ├── register.ejs
│ │ │ └── wishlist.ejs
│ ├── tasks.yml
│ └── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
├── flex
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ └── index.html
│ ├── src
│ │ └── index.html
│ ├── tasks.jsonl
│ └── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
├── float
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ └── index.html
│ ├── src
│ │ └── index.html
│ ├── tasks.jsonl
│ └── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
├── form
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── index.css
│ │ ├── index.html
│ │ └── index.js
│ ├── src
│ │ ├── common
│ │ │ ├── Contents.js
│ │ │ ├── DataQuestion.js
│ │ │ ├── LikertQuestion.js
│ │ │ ├── MultiSelectionQuestion.js
│ │ │ ├── NpsQuestion.js
│ │ │ ├── OpenQuestion.js
│ │ │ ├── Question.js
│ │ │ ├── RankingQuestion.js
│ │ │ ├── RatingQuestion.js
│ │ │ ├── SingleSelectionQuestion.js
│ │ │ ├── Survey.js
│ │ │ └── util
│ │ │ │ ├── Draggable.js
│ │ │ │ └── util.js
│ │ ├── index.css
│ │ ├── index.html
│ │ └── index.js
│ ├── tasks.jsonl
│ └── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── util
│ │ └── index.js
├── grid
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ └── index.html
│ ├── src
│ │ └── index.html
│ ├── tasks.jsonl
│ └── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
├── jotai
│ ├── .evalignore
│ ├── mocks
│ │ └── blog.ts
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── App.css
│ │ ├── App.tsx
│ │ ├── index.html
│ │ └── index.tsx
│ ├── src
│ │ ├── App.css
│ │ ├── App.tsx
│ │ ├── atoms
│ │ │ ├── blog.ts
│ │ │ ├── chat.ts
│ │ │ ├── comments.ts
│ │ │ ├── game.ts
│ │ │ ├── markdown.ts
│ │ │ ├── room.ts
│ │ │ ├── route.ts
│ │ │ └── user.ts
│ │ ├── components
│ │ │ ├── Blog.tsx
│ │ │ ├── BlogForm.tsx
│ │ │ ├── BlogList.tsx
│ │ │ ├── ChatRoom.tsx
│ │ │ ├── CommentForm.tsx
│ │ │ ├── Comments.tsx
│ │ │ ├── Game.tsx
│ │ │ ├── GameReplayModal.tsx
│ │ │ ├── Header.tsx
│ │ │ ├── Login.tsx
│ │ │ ├── LoginForm.tsx
│ │ │ ├── Main.tsx
│ │ │ ├── RoomForm.tsx
│ │ │ ├── Rooms.tsx
│ │ │ ├── Search.tsx
│ │ │ └── ShareGameModal.tsx
│ │ ├── index.html
│ │ ├── index.tsx
│ │ └── utils
│ │ │ └── markdown.ts
│ ├── tasks.yml
│ ├── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── utils
│ │ │ └── helpers.ts
│ ├── tsconfig.json
│ ├── typings.d.ts
│ └── vite.config.ts
├── less
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── common.less
│ │ ├── design.html
│ │ ├── design.js
│ │ ├── preview.html
│ │ └── preview.js
│ ├── src
│ │ ├── common.less
│ │ ├── common
│ │ │ ├── Contents.js
│ │ │ ├── Contents.less
│ │ │ ├── DataQuestion.js
│ │ │ ├── DataQuestion.less
│ │ │ ├── LikertQuestion.js
│ │ │ ├── LikertQuestion.less
│ │ │ ├── MultiSelectionQuestion.js
│ │ │ ├── MultiSelectionQuestion.less
│ │ │ ├── NpsQuestion.js
│ │ │ ├── NpsQuestion.less
│ │ │ ├── OpenQuestion.js
│ │ │ ├── OpenQuestion.less
│ │ │ ├── Question.js
│ │ │ ├── Question.less
│ │ │ ├── RankingQuestion.js
│ │ │ ├── RankingQuestion.less
│ │ │ ├── RatingQuestion.js
│ │ │ ├── RatingQuestion.less
│ │ │ ├── SingleSelectionQuestion.js
│ │ │ ├── SingleSelectionQuestion.less
│ │ │ ├── SurveyDesign.js
│ │ │ ├── SurveyDesign.less
│ │ │ ├── SurveyForm.js
│ │ │ ├── SurveyForm.less
│ │ │ ├── SurveyPreview.js
│ │ │ ├── SurveyPreview.less
│ │ │ ├── config.less
│ │ │ └── util
│ │ │ │ ├── Draggable.js
│ │ │ │ └── util.js
│ │ ├── design.html
│ │ ├── design.js
│ │ ├── preview.html
│ │ └── preview.js
│ ├── tasks.jsonl
│ ├── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── util
│ │ │ └── index.js
│ └── vite.config.js
├── lowdb
│ ├── .evalignore
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── scripts
│ │ ├── build.js
│ │ └── dev.js
│ ├── src-init
│ │ ├── app
│ │ │ ├── global.css
│ │ │ ├── layout.tsx
│ │ │ └── not-found.tsx
│ │ ├── global.d.ts
│ │ ├── instrumentation.ts
│ │ ├── next.config.ts
│ │ ├── readme.md
│ │ └── tsconfig.json
│ ├── src
│ │ ├── actions
│ │ │ ├── auth.ts
│ │ │ ├── cart.ts
│ │ │ ├── order.ts
│ │ │ ├── recharge.ts
│ │ │ ├── register.ts
│ │ │ └── wishlist.ts
│ │ ├── app
│ │ │ ├── admin
│ │ │ │ ├── admin.css
│ │ │ │ ├── layout.tsx
│ │ │ │ ├── orders
│ │ │ │ │ ├── orders-admin.css
│ │ │ │ │ └── page.tsx
│ │ │ │ ├── products
│ │ │ │ │ └── page.tsx
│ │ │ │ └── users
│ │ │ │ │ └── page.tsx
│ │ │ ├── api
│ │ │ │ ├── admin
│ │ │ │ │ └── orders
│ │ │ │ │ │ ├── [orderId]
│ │ │ │ │ │ └── approve-refund
│ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ │ └── route.ts
│ │ │ │ ├── auth
│ │ │ │ │ ├── logout
│ │ │ │ │ │ └── route.ts
│ │ │ │ │ └── route.ts
│ │ │ │ ├── cart
│ │ │ │ │ ├── [productId]
│ │ │ │ │ │ └── route.ts
│ │ │ │ │ └── route.ts
│ │ │ │ ├── orders
│ │ │ │ │ ├── [orderId]
│ │ │ │ │ │ ├── pay
│ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ │ └── refund
│ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ └── route.ts
│ │ │ │ ├── products
│ │ │ │ │ ├── [id]
│ │ │ │ │ │ ├── comments
│ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ │ └── route.ts
│ │ │ │ │ └── route.ts
│ │ │ │ ├── usernames
│ │ │ │ │ └── route.ts
│ │ │ │ └── users
│ │ │ │ │ └── [username]
│ │ │ │ │ └── route.ts
│ │ │ ├── global.css
│ │ │ ├── home.css
│ │ │ ├── layout.tsx
│ │ │ ├── login
│ │ │ │ ├── login.css
│ │ │ │ └── page.tsx
│ │ │ ├── not-found.tsx
│ │ │ ├── order
│ │ │ │ └── [orderId]
│ │ │ │ │ ├── order-detail.css
│ │ │ │ │ ├── page.tsx
│ │ │ │ │ ├── payment-button.css
│ │ │ │ │ ├── payment-button.tsx
│ │ │ │ │ ├── refund-button.css
│ │ │ │ │ └── refund-button.tsx
│ │ │ ├── orders
│ │ │ │ ├── orders.css
│ │ │ │ └── page.tsx
│ │ │ ├── page.tsx
│ │ │ ├── products
│ │ │ │ ├── [id]
│ │ │ │ │ ├── comment-form.css
│ │ │ │ │ ├── comments.css
│ │ │ │ │ ├── page.tsx
│ │ │ │ │ └── product-detail.css
│ │ │ │ ├── page.tsx
│ │ │ │ └── products.css
│ │ │ ├── profile
│ │ │ │ └── [username]
│ │ │ │ │ ├── page.tsx
│ │ │ │ │ ├── profile.css
│ │ │ │ │ └── recharge-button.tsx
│ │ │ ├── register
│ │ │ │ ├── page.tsx
│ │ │ │ └── register.css
│ │ │ └── wishlist
│ │ │ │ ├── page.tsx
│ │ │ │ └── wishlist.css
│ │ ├── components
│ │ │ ├── Cart.css
│ │ │ ├── Cart.tsx
│ │ │ ├── HeaderUserMenu.css
│ │ │ └── HeaderUserMenu.tsx
│ │ ├── context
│ │ │ └── auth.tsx
│ │ ├── global.d.ts
│ │ ├── instrumentation.ts
│ │ ├── middleware.ts
│ │ ├── next.config.ts
│ │ ├── readme.md
│ │ ├── tsconfig.json
│ │ └── types.ts
│ ├── tasks.yml
│ ├── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── utils
│ │ │ └── helpers.js
│ └── tsconfig.json
├── mobx
│ ├── .evalignore
│ ├── mocks
│ │ └── blog.ts
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── App.css
│ │ ├── App.tsx
│ │ ├── index.html
│ │ └── index.tsx
│ ├── src
│ │ ├── App.css
│ │ ├── App.tsx
│ │ ├── components
│ │ │ ├── Blog.tsx
│ │ │ ├── BlogForm.tsx
│ │ │ ├── BlogList.tsx
│ │ │ ├── Chat.tsx
│ │ │ ├── Comment.tsx
│ │ │ ├── CommentForm.tsx
│ │ │ ├── CommentList.tsx
│ │ │ ├── GomokuGame.tsx
│ │ │ ├── GomokuReplayModal.tsx
│ │ │ ├── Header.tsx
│ │ │ ├── Login.tsx
│ │ │ ├── LoginForm.tsx
│ │ │ ├── Main.tsx
│ │ │ ├── Rooms.tsx
│ │ │ ├── Search.tsx
│ │ │ └── ShareGomokuModal.tsx
│ │ ├── index.html
│ │ ├── index.tsx
│ │ ├── stores
│ │ │ ├── blog.ts
│ │ │ ├── chat.ts
│ │ │ ├── comment.ts
│ │ │ ├── gomoku.ts
│ │ │ ├── room.ts
│ │ │ ├── route.ts
│ │ │ └── user.ts
│ │ └── utils
│ │ │ └── markdown.ts
│ ├── tasks.yml
│ ├── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── utils
│ │ │ └── helpers.ts
│ ├── tsconfig.json
│ ├── typings.d.ts
│ └── vite.config.ts
├── nextjs
│ ├── .evalignore
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── scripts
│ │ ├── dev.js
│ │ └── init-db.js
│ ├── src-init
│ │ ├── next.config.ts
│ │ ├── readme.md
│ │ └── tsconfig.json
│ ├── src
│ │ ├── actions
│ │ │ ├── auth.ts
│ │ │ └── referer.ts
│ │ ├── app
│ │ │ ├── admin
│ │ │ │ ├── admin.css
│ │ │ │ ├── orders
│ │ │ │ │ └── page.tsx
│ │ │ │ ├── products
│ │ │ │ │ └── page.tsx
│ │ │ │ └── users
│ │ │ │ │ └── page.tsx
│ │ │ ├── api
│ │ │ │ ├── admin
│ │ │ │ │ └── orders
│ │ │ │ │ │ ├── [order_id]
│ │ │ │ │ │ └── refund
│ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ │ └── route.ts
│ │ │ │ ├── auth
│ │ │ │ │ └── route.ts
│ │ │ │ ├── cart
│ │ │ │ │ └── route.ts
│ │ │ │ ├── orders
│ │ │ │ │ ├── [order_id]
│ │ │ │ │ │ ├── pay
│ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ │ ├── refund
│ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ │ └── route.ts
│ │ │ │ │ └── route.ts
│ │ │ │ ├── products
│ │ │ │ │ ├── [product_id]
│ │ │ │ │ │ ├── comments
│ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ │ └── route.ts
│ │ │ │ │ └── route.ts
│ │ │ │ ├── users
│ │ │ │ │ ├── [username]
│ │ │ │ │ │ └── route.ts
│ │ │ │ │ └── route.ts
│ │ │ │ └── wishlist
│ │ │ │ │ └── route.ts
│ │ │ ├── globals.css
│ │ │ ├── layout.tsx
│ │ │ ├── login
│ │ │ │ ├── login.css
│ │ │ │ └── page.tsx
│ │ │ ├── not-found.tsx
│ │ │ ├── order
│ │ │ │ ├── [order_id]
│ │ │ │ │ └── page.tsx
│ │ │ │ └── order.css
│ │ │ ├── orders
│ │ │ │ ├── orders.css
│ │ │ │ └── page.tsx
│ │ │ ├── page.tsx
│ │ │ ├── products
│ │ │ │ ├── [product_id]
│ │ │ │ │ └── page.tsx
│ │ │ │ ├── page.tsx
│ │ │ │ └── products.css
│ │ │ ├── profile
│ │ │ │ ├── [username]
│ │ │ │ │ └── page.tsx
│ │ │ │ └── profile.css
│ │ │ ├── register
│ │ │ │ ├── page.tsx
│ │ │ │ └── register.css
│ │ │ └── wishlist
│ │ │ │ ├── page.tsx
│ │ │ │ └── wishlist.css
│ │ ├── components
│ │ │ ├── Cart.css
│ │ │ ├── Cart.tsx
│ │ │ ├── HeaderUserMenu.css
│ │ │ └── HeaderUserMenu.tsx
│ │ ├── context
│ │ │ ├── auth.tsx
│ │ │ └── cart.tsx
│ │ ├── libs
│ │ │ ├── db.ts
│ │ │ ├── setup.sql
│ │ │ └── utils.ts
│ │ ├── middleware.ts
│ │ ├── next.config.ts
│ │ └── tsconfig.json
│ ├── tasks.jsonl
│ ├── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
│ ├── tsconfig.json
│ └── typings.d.ts
├── nosql
│ ├── .evalignore
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── scripts
│ │ └── dev.js
│ ├── src-init
│ │ ├── app
│ │ │ ├── global.css
│ │ │ ├── layout.tsx
│ │ │ └── not-found.tsx
│ │ ├── instrumentation.node.ts
│ │ ├── instrumentation.ts
│ │ ├── model
│ │ │ └── user.ts
│ │ ├── next.config.ts
│ │ ├── readme.md
│ │ └── tsconfig.json
│ ├── src
│ │ ├── actions
│ │ │ └── auth.ts
│ │ ├── app
│ │ │ ├── admin
│ │ │ │ ├── layout.tsx
│ │ │ │ ├── not-found.tsx
│ │ │ │ ├── orders
│ │ │ │ │ ├── PassRefundButton.tsx
│ │ │ │ │ ├── page.tsx
│ │ │ │ │ └── style.css
│ │ │ │ ├── products
│ │ │ │ │ ├── page.tsx
│ │ │ │ │ └── style.css
│ │ │ │ └── users
│ │ │ │ │ ├── page.tsx
│ │ │ │ │ └── style.css
│ │ │ ├── api
│ │ │ │ ├── auth
│ │ │ │ │ ├── register
│ │ │ │ │ │ └── route.ts
│ │ │ │ │ └── route.ts
│ │ │ │ ├── cart
│ │ │ │ │ └── route.ts
│ │ │ │ ├── orders
│ │ │ │ │ ├── [id]
│ │ │ │ │ │ ├── pay
│ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ │ ├── refund
│ │ │ │ │ │ │ ├── pass
│ │ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ │ └── route.ts
│ │ │ │ │ └── route.ts
│ │ │ │ ├── products
│ │ │ │ │ ├── [id]
│ │ │ │ │ │ ├── comments
│ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ │ └── route.ts
│ │ │ │ │ └── route.ts
│ │ │ │ ├── usernames
│ │ │ │ │ └── route.ts
│ │ │ │ ├── users
│ │ │ │ │ └── recharge
│ │ │ │ │ │ └── route.ts
│ │ │ │ └── wishlist
│ │ │ │ │ └── route.ts
│ │ │ ├── global.css
│ │ │ ├── layout.tsx
│ │ │ ├── login
│ │ │ │ ├── page.tsx
│ │ │ │ └── style.css
│ │ │ ├── not-found.tsx
│ │ │ ├── order
│ │ │ │ └── [id]
│ │ │ │ │ ├── PayOrderButton.tsx
│ │ │ │ │ ├── RefundButton.tsx
│ │ │ │ │ ├── page.tsx
│ │ │ │ │ └── style.css
│ │ │ ├── orders
│ │ │ │ ├── page.tsx
│ │ │ │ └── style.css
│ │ │ ├── page.tsx
│ │ │ ├── products
│ │ │ │ ├── [id]
│ │ │ │ │ ├── AddToCartButton.tsx
│ │ │ │ │ ├── AddToWishlistButton.tsx
│ │ │ │ │ ├── CommentForm.tsx
│ │ │ │ │ ├── ProductComments.tsx
│ │ │ │ │ ├── page.tsx
│ │ │ │ │ └── styles.css
│ │ │ │ └── page.tsx
│ │ │ ├── profile
│ │ │ │ └── [username]
│ │ │ │ │ ├── RechargeCoinButton.tsx
│ │ │ │ │ ├── page.tsx
│ │ │ │ │ └── style.css
│ │ │ ├── register
│ │ │ │ ├── page.tsx
│ │ │ │ └── style.css
│ │ │ └── wishlist
│ │ │ │ ├── RemoveFromWishlistButton.tsx
│ │ │ │ ├── page.tsx
│ │ │ │ └── style.css
│ │ ├── components
│ │ │ ├── Cart.tsx
│ │ │ ├── HeaderUserMenu.tsx
│ │ │ ├── cart.css
│ │ │ └── style.css
│ │ ├── instrumentation.node.ts
│ │ ├── instrumentation.ts
│ │ ├── middleware.ts
│ │ ├── model
│ │ │ ├── cart.ts
│ │ │ ├── comment.ts
│ │ │ ├── order.ts
│ │ │ ├── product.ts
│ │ │ ├── user.ts
│ │ │ └── wishlist.ts
│ │ ├── next.config.ts
│ │ ├── readme.md
│ │ └── tsconfig.json
│ ├── tasks.jsonl
│ ├── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── utils
│ │ │ └── helpers.js
│ └── tsconfig.json
├── nuxt
│ ├── .evalignore
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── scripts
│ │ ├── dev.js
│ │ └── init-db.js
│ ├── src-init
│ │ ├── nuxt.config.ts
│ │ ├── readme.md
│ │ └── tsconfig.json
│ ├── src
│ │ ├── assets
│ │ │ └── css
│ │ │ │ └── wishlist.css
│ │ ├── components
│ │ │ ├── Cart.vue
│ │ │ ├── HeaderUserMenu.vue
│ │ │ ├── OrderButton.vue
│ │ │ └── WishlistButton.vue
│ │ ├── composables
│ │ │ ├── useCart.ts
│ │ │ ├── useMounted.ts
│ │ │ └── useUser.ts
│ │ ├── error.vue
│ │ ├── layouts
│ │ │ └── default.vue
│ │ ├── libs
│ │ │ ├── db.ts
│ │ │ └── setup.sql
│ │ ├── nuxt.config.ts
│ │ ├── pages
│ │ │ ├── admin
│ │ │ │ ├── orders.vue
│ │ │ │ ├── products.vue
│ │ │ │ └── users.vue
│ │ │ ├── index.vue
│ │ │ ├── login.vue
│ │ │ ├── order
│ │ │ │ └── [order_id].vue
│ │ │ ├── orders
│ │ │ │ └── index.vue
│ │ │ ├── products
│ │ │ │ ├── [product_id].vue
│ │ │ │ └── index.vue
│ │ │ ├── profile
│ │ │ │ └── [username].vue
│ │ │ ├── register.vue
│ │ │ └── wishlist.vue
│ │ ├── readme.md
│ │ ├── server
│ │ │ └── api
│ │ │ │ ├── admin
│ │ │ │ ├── orders.get.ts
│ │ │ │ ├── orders
│ │ │ │ │ └── [order_id]
│ │ │ │ │ │ └── refund
│ │ │ │ │ │ └── approve.post.ts
│ │ │ │ └── users.get.ts
│ │ │ │ ├── auth.get.ts
│ │ │ │ ├── auth.post.ts
│ │ │ │ ├── auth.ts
│ │ │ │ ├── cart
│ │ │ │ ├── [product_id].delete.ts
│ │ │ │ ├── clear.post.ts
│ │ │ │ ├── index.get.ts
│ │ │ │ └── index.post.ts
│ │ │ │ ├── comments
│ │ │ │ ├── [product_id].get.ts
│ │ │ │ ├── check
│ │ │ │ │ └── [product_id].get.ts
│ │ │ │ └── index.post.ts
│ │ │ │ ├── logout.post.ts
│ │ │ │ ├── orders
│ │ │ │ ├── [order_id].get.ts
│ │ │ │ ├── [order_id]
│ │ │ │ │ ├── pay.post.ts
│ │ │ │ │ └── refund.post.ts
│ │ │ │ ├── index.get.ts
│ │ │ │ └── index.post.ts
│ │ │ │ ├── products.get.ts
│ │ │ │ ├── products.post.ts
│ │ │ │ ├── products
│ │ │ │ └── [product_id].ts
│ │ │ │ ├── profile
│ │ │ │ ├── [username].get.ts
│ │ │ │ └── [username]
│ │ │ │ │ └── recharge.post.ts
│ │ │ │ ├── register.post.ts
│ │ │ │ ├── simple_auth.get.ts
│ │ │ │ └── wishlist
│ │ │ │ ├── [product_id].delete.ts
│ │ │ │ ├── check
│ │ │ │ └── [product_id].get.ts
│ │ │ │ ├── index.get.ts
│ │ │ │ └── index.post.ts
│ │ └── tsconfig.json
│ ├── tasks.yml
│ ├── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
│ ├── tsconfig.json
│ └── typings.d.ts
├── parcel
│ ├── .evalignore
│ ├── .gitignore
│ ├── assets
│ │ ├── TablerAntennaBars5.svg
│ │ └── bird.png
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── .parcelrc
│ │ ├── index.html
│ │ ├── mock.json
│ │ ├── package.json
│ │ └── src
│ │ │ ├── alias.js
│ │ │ ├── component.jsx
│ │ │ ├── component.vue
│ │ │ ├── files
│ │ │ ├── bar.ts
│ │ │ └── foo.ts
│ │ │ ├── hello.md
│ │ │ ├── hello.zh.md
│ │ │ ├── images
│ │ │ ├── TablerAntennaBars5.svg
│ │ │ └── bird.png
│ │ │ ├── index.css
│ │ │ ├── index.js
│ │ │ ├── index.less
│ │ │ ├── index.module.less
│ │ │ ├── index.ts
│ │ │ └── version.js
│ ├── src
│ │ ├── .env
│ │ ├── .parcelrc
│ │ ├── .proxyrc.js
│ │ ├── assets
│ │ │ ├── TablerAntennaBars5.svg
│ │ │ └── bird.png
│ │ ├── index.html
│ │ ├── mock.json
│ │ ├── package.json
│ │ ├── plugins
│ │ │ ├── parcel-optimizer-imagemin.js
│ │ │ ├── parcel-remove-console-log.js
│ │ │ ├── parcel-reporter-licenses.js
│ │ │ ├── parcel-reporter-sourcemap-mover.js
│ │ │ ├── parcel-resolver-markdown-i18n.js
│ │ │ ├── parcel-transformer-markdown.js
│ │ │ └── parcel-virtual-files.js
│ │ └── src
│ │ │ ├── alias.js
│ │ │ ├── component.jsx
│ │ │ ├── component.vue
│ │ │ ├── files
│ │ │ ├── bar.ts
│ │ │ └── foo.ts
│ │ │ ├── hello.md
│ │ │ ├── hello.zh.md
│ │ │ ├── images
│ │ │ ├── TablerAntennaBars5.svg
│ │ │ └── bird.png
│ │ │ ├── index.css
│ │ │ ├── index.js
│ │ │ ├── index.less
│ │ │ ├── index.module.less
│ │ │ ├── index.ts
│ │ │ └── version.js
│ ├── tasks.yml
│ └── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
├── prisma
│ ├── .evalignore
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── scripts
│ │ ├── build.js
│ │ └── dev.js
│ ├── src-init
│ │ ├── app
│ │ │ ├── global.css
│ │ │ ├── layout.tsx
│ │ │ └── not-found.tsx
│ │ ├── libs
│ │ │ └── db.ts
│ │ ├── next.config.ts
│ │ ├── prisma
│ │ │ ├── schema.prisma
│ │ │ └── seed.js
│ │ ├── readme.md
│ │ └── tsconfig.json
│ ├── src
│ │ ├── actions
│ │ │ └── auth.ts
│ │ ├── app
│ │ │ ├── admin
│ │ │ │ ├── AdminNavigation.tsx
│ │ │ │ ├── admin-navigation.css
│ │ │ │ ├── admin.css
│ │ │ │ ├── layout.tsx
│ │ │ │ ├── orders
│ │ │ │ │ ├── RefundReviewButton.tsx
│ │ │ │ │ ├── orders.css
│ │ │ │ │ └── page.tsx
│ │ │ │ ├── products
│ │ │ │ │ └── page.tsx
│ │ │ │ └── users
│ │ │ │ │ └── page.tsx
│ │ │ ├── api
│ │ │ │ ├── auth
│ │ │ │ │ ├── logout
│ │ │ │ │ │ └── route.ts
│ │ │ │ │ └── route.ts
│ │ │ │ ├── cart
│ │ │ │ │ ├── [id]
│ │ │ │ │ │ └── route.ts
│ │ │ │ │ └── route.ts
│ │ │ │ ├── orders
│ │ │ │ │ ├── [id]
│ │ │ │ │ │ ├── pay
│ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ │ ├── refund
│ │ │ │ │ │ │ ├── approve
│ │ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ │ └── route.ts
│ │ │ │ │ └── route.ts
│ │ │ │ ├── products
│ │ │ │ │ ├── [id]
│ │ │ │ │ │ ├── comments
│ │ │ │ │ │ │ ├── eligibility
│ │ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ │ └── route.ts
│ │ │ │ │ └── route.ts
│ │ │ │ ├── usernames
│ │ │ │ │ └── route.ts
│ │ │ │ ├── users
│ │ │ │ │ └── [username]
│ │ │ │ │ │ └── recharge
│ │ │ │ │ │ └── route.ts
│ │ │ │ └── wishlist
│ │ │ │ │ ├── [productId]
│ │ │ │ │ └── route.ts
│ │ │ │ │ ├── check
│ │ │ │ │ └── [productId]
│ │ │ │ │ │ └── route.ts
│ │ │ │ │ └── route.ts
│ │ │ ├── global.css
│ │ │ ├── home.css
│ │ │ ├── layout.tsx
│ │ │ ├── login
│ │ │ │ ├── login.css
│ │ │ │ └── page.tsx
│ │ │ ├── not-found.tsx
│ │ │ ├── order
│ │ │ │ └── [id]
│ │ │ │ │ ├── PayOrderButton.tsx
│ │ │ │ │ ├── RefundButton.tsx
│ │ │ │ │ ├── order-detail.css
│ │ │ │ │ ├── page.tsx
│ │ │ │ │ ├── pay-order-button.css
│ │ │ │ │ └── refund-button.css
│ │ │ ├── orders
│ │ │ │ ├── orders.css
│ │ │ │ └── page.tsx
│ │ │ ├── page.tsx
│ │ │ ├── products
│ │ │ │ ├── [id]
│ │ │ │ │ ├── AddToCartButton.tsx
│ │ │ │ │ ├── CommentForm.tsx
│ │ │ │ │ ├── ProductComments.tsx
│ │ │ │ │ ├── add-to-cart-button.css
│ │ │ │ │ ├── comment-form.css
│ │ │ │ │ ├── page.tsx
│ │ │ │ │ ├── product-comments.css
│ │ │ │ │ └── product-detail.css
│ │ │ │ ├── page.tsx
│ │ │ │ └── products.css
│ │ │ ├── profile
│ │ │ │ └── [username]
│ │ │ │ │ ├── RechargeButton.tsx
│ │ │ │ │ ├── ReferralCode.tsx
│ │ │ │ │ ├── page.tsx
│ │ │ │ │ ├── profile.css
│ │ │ │ │ ├── recharge-button.css
│ │ │ │ │ └── referral-code.css
│ │ │ ├── register
│ │ │ │ ├── page.tsx
│ │ │ │ ├── register-action.ts
│ │ │ │ └── register.css
│ │ │ └── wishlist
│ │ │ │ ├── page.tsx
│ │ │ │ └── wishlist.css
│ │ ├── components
│ │ │ ├── AddToWishlistButton.tsx
│ │ │ ├── Cart.tsx
│ │ │ ├── HeaderUserMenu.tsx
│ │ │ ├── add-to-wishlist-button.css
│ │ │ ├── cart.css
│ │ │ └── header-user-menu.css
│ │ ├── context
│ │ │ └── auth.tsx
│ │ ├── libs
│ │ │ └── db.ts
│ │ ├── middleware.ts
│ │ ├── next.config.ts
│ │ ├── prisma
│ │ │ ├── schema.prisma
│ │ │ └── seed.js
│ │ ├── readme.md
│ │ └── tsconfig.json
│ ├── tasks.yml
│ ├── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── utils
│ │ │ └── helpers.js
│ └── tsconfig.json
├── project-template
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ └── index.html
│ ├── src
│ │ └── index.html
│ ├── tasks.jsonl
│ ├── test
│ │ └── init.spec.js
│ └── vite.config.js
├── react-no-ts
│ ├── .evalignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── App.css
│ │ ├── App.jsx
│ │ ├── index.html
│ │ └── index.jsx
│ ├── src
│ │ ├── App.css
│ │ ├── App.jsx
│ │ ├── Header.jsx
│ │ ├── components
│ │ │ ├── Blog.jsx
│ │ │ ├── BlogForm.jsx
│ │ │ ├── BlogList.jsx
│ │ │ ├── Comments.jsx
│ │ │ ├── Header.jsx
│ │ │ ├── Main.jsx
│ │ │ ├── Search.jsx
│ │ │ ├── Tooltip.jsx
│ │ │ └── TruncatedTitle.jsx
│ │ ├── context
│ │ │ ├── BlogContext.jsx
│ │ │ └── FocusContext.jsx
│ │ ├── hooks
│ │ │ ├── useDelete.jsx
│ │ │ ├── useEdit.jsx
│ │ │ └── useMarkdown.jsx
│ │ ├── index.html
│ │ ├── index.jsx
│ │ ├── pages
│ │ │ └── Game.jsx
│ │ ├── router.jsx
│ │ ├── store
│ │ │ └── Comment.jsx
│ │ └── utils
│ │ │ └── toast.jsx
│ ├── tasks.jsonl
│ ├── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
│ └── vite.config.ts
├── react
│ ├── .evalignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── App.css
│ │ ├── App.tsx
│ │ ├── index.html
│ │ └── index.tsx
│ ├── src
│ │ ├── App.css
│ │ ├── App.tsx
│ │ ├── components
│ │ │ ├── Blog.tsx
│ │ │ ├── BlogForm.tsx
│ │ │ ├── BlogList.tsx
│ │ │ ├── Comments.tsx
│ │ │ ├── Header.tsx
│ │ │ ├── Main.tsx
│ │ │ ├── Search.tsx
│ │ │ ├── Tooltip.tsx
│ │ │ └── TruncatedTitle.tsx
│ │ ├── context
│ │ │ └── BlogContext.tsx
│ │ ├── hooks
│ │ │ ├── useDelete.tsx
│ │ │ └── useEdit.tsx
│ │ ├── index.html
│ │ ├── index.tsx
│ │ ├── pages
│ │ │ └── Game.tsx
│ │ ├── router.tsx
│ │ ├── store
│ │ │ └── Comment.tsx
│ │ └── utils
│ │ │ ├── markdown.tsx
│ │ │ └── toast.tsx
│ ├── tasks.jsonl
│ ├── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
│ ├── tsconfig.json
│ ├── typings.d.ts
│ └── vite.config.ts
├── readme.md
├── redux
│ ├── .evalignore
│ ├── mocks
│ │ └── blog.ts
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── App.css
│ │ ├── App.tsx
│ │ ├── index.html
│ │ ├── index.tsx
│ │ └── store.tsx
│ ├── src
│ │ ├── App.css
│ │ ├── App.tsx
│ │ ├── components
│ │ │ ├── Blog.css
│ │ │ ├── Blog.tsx
│ │ │ ├── BlogForm.css
│ │ │ ├── BlogForm.tsx
│ │ │ ├── BlogList.css
│ │ │ ├── BlogList.tsx
│ │ │ ├── ChatRoom.css
│ │ │ ├── ChatRoom.tsx
│ │ │ ├── Comment.css
│ │ │ ├── Comment.tsx
│ │ │ ├── CommentForm.css
│ │ │ ├── CommentForm.tsx
│ │ │ ├── Comments.tsx
│ │ │ ├── CreateRoomForm.css
│ │ │ ├── CreateRoomForm.tsx
│ │ │ ├── Game.css
│ │ │ ├── Game.tsx
│ │ │ ├── GameReplayModal.css
│ │ │ ├── GameReplayModal.tsx
│ │ │ ├── Header.css
│ │ │ ├── Header.tsx
│ │ │ ├── Login.tsx
│ │ │ ├── LoginForm.css
│ │ │ ├── LoginForm.tsx
│ │ │ ├── Main.css
│ │ │ ├── Main.tsx
│ │ │ ├── RoomCard.css
│ │ │ ├── RoomCard.tsx
│ │ │ ├── Rooms.css
│ │ │ ├── Rooms.tsx
│ │ │ ├── Search.css
│ │ │ ├── Search.tsx
│ │ │ ├── ShareGameModal.css
│ │ │ └── ShareGameModal.tsx
│ │ ├── index.html
│ │ ├── index.tsx
│ │ ├── middleware
│ │ │ ├── route.ts
│ │ │ └── undo.ts
│ │ ├── models
│ │ │ ├── blog.ts
│ │ │ ├── blogForm.ts
│ │ │ ├── chat.ts
│ │ │ ├── comment.ts
│ │ │ ├── game.ts
│ │ │ ├── room.ts
│ │ │ ├── route.ts
│ │ │ ├── search.ts
│ │ │ └── user.ts
│ │ ├── store.tsx
│ │ └── utils
│ │ │ └── markdown.ts
│ ├── tasks.yml
│ ├── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── utils
│ │ │ └── helpers.ts
│ ├── tsconfig.json
│ ├── typings.d.ts
│ └── vite.config.ts
├── sass
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── common.scss
│ │ ├── design.html
│ │ ├── design.js
│ │ ├── preview.html
│ │ └── preview.js
│ ├── src
│ │ ├── common.scss
│ │ ├── common
│ │ │ ├── Contents.js
│ │ │ ├── Contents.scss
│ │ │ ├── DataQuestion.js
│ │ │ ├── DataQuestion.scss
│ │ │ ├── LikertQuestion.js
│ │ │ ├── LikertQuestion.scss
│ │ │ ├── MultiSelectionQuestion.js
│ │ │ ├── MultiSelectionQuestion.scss
│ │ │ ├── NpsQuestion.js
│ │ │ ├── NpsQuestion.scss
│ │ │ ├── OpenQuestion.js
│ │ │ ├── OpenQuestion.scss
│ │ │ ├── Question.js
│ │ │ ├── Question.scss
│ │ │ ├── RankingQuestion.js
│ │ │ ├── RankingQuestion.scss
│ │ │ ├── RatingQuestion.js
│ │ │ ├── RatingQuestion.scss
│ │ │ ├── SingleSelectionQuestion.js
│ │ │ ├── SingleSelectionQuestion.scss
│ │ │ ├── SurveyDesign.js
│ │ │ ├── SurveyDesign.scss
│ │ │ ├── SurveyForm.js
│ │ │ ├── SurveyForm.scss
│ │ │ ├── SurveyPreview.js
│ │ │ ├── SurveyPreview.scss
│ │ │ ├── config.scss
│ │ │ └── util
│ │ │ │ ├── Draggable.js
│ │ │ │ └── util.js
│ │ ├── design.html
│ │ ├── design.js
│ │ ├── preview.html
│ │ └── preview.js
│ ├── tasks.jsonl
│ ├── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── util
│ │ │ └── index.js
│ └── vite.config.js
├── selector
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ └── index.html
│ ├── src
│ │ ├── index.html
│ │ ├── index.js
│ │ └── util.js
│ ├── tasks.yml
│ └── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── util
│ │ └── index.js
├── sequelize
│ ├── .evalignore
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── scripts
│ │ └── dev.js
│ ├── src-init
│ │ ├── app
│ │ │ ├── global.css
│ │ │ ├── layout.tsx
│ │ │ └── not-found.tsx
│ │ ├── instrumentation.node.ts
│ │ ├── instrumentation.ts
│ │ ├── libs
│ │ │ └── db.ts
│ │ ├── model
│ │ │ ├── index.ts
│ │ │ └── user.ts
│ │ ├── next.config.ts
│ │ ├── readme.md
│ │ └── tsconfig.json
│ ├── src
│ │ ├── actions
│ │ │ ├── auth.ts
│ │ │ └── register.ts
│ │ ├── app
│ │ │ ├── admin
│ │ │ │ ├── orders
│ │ │ │ │ ├── orders-admin.css
│ │ │ │ │ └── page.tsx
│ │ │ │ ├── products
│ │ │ │ │ ├── page.tsx
│ │ │ │ │ └── products-admin.css
│ │ │ │ └── users
│ │ │ │ │ ├── page.tsx
│ │ │ │ │ └── users-admin.css
│ │ │ ├── api
│ │ │ │ ├── admin
│ │ │ │ │ └── orders
│ │ │ │ │ │ ├── [id]
│ │ │ │ │ │ └── approve-refund
│ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ │ └── route.ts
│ │ │ │ ├── auth
│ │ │ │ │ ├── logout
│ │ │ │ │ │ └── route.ts
│ │ │ │ │ └── route.ts
│ │ │ │ ├── cart
│ │ │ │ │ └── route.ts
│ │ │ │ ├── orders
│ │ │ │ │ ├── [id]
│ │ │ │ │ │ ├── payment
│ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ │ ├── refund
│ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ │ └── route.ts
│ │ │ │ │ └── route.ts
│ │ │ │ ├── products
│ │ │ │ │ ├── [id]
│ │ │ │ │ │ ├── comments
│ │ │ │ │ │ │ └── route.ts
│ │ │ │ │ │ └── route.ts
│ │ │ │ │ └── route.ts
│ │ │ │ ├── recharge
│ │ │ │ │ └── route.ts
│ │ │ │ ├── usernames
│ │ │ │ │ └── route.ts
│ │ │ │ ├── users
│ │ │ │ │ └── route.ts
│ │ │ │ └── wishlist
│ │ │ │ │ └── route.ts
│ │ │ ├── global.css
│ │ │ ├── layout.tsx
│ │ │ ├── login
│ │ │ │ ├── login.css
│ │ │ │ └── page.tsx
│ │ │ ├── not-found.tsx
│ │ │ ├── order
│ │ │ │ └── [id]
│ │ │ │ │ ├── order-detail.css
│ │ │ │ │ └── page.tsx
│ │ │ ├── orders
│ │ │ │ ├── orders.css
│ │ │ │ └── page.tsx
│ │ │ ├── page.tsx
│ │ │ ├── products
│ │ │ │ ├── [id]
│ │ │ │ │ ├── page.tsx
│ │ │ │ │ ├── product-comments.css
│ │ │ │ │ └── product-detail.css
│ │ │ │ ├── page.tsx
│ │ │ │ └── products.css
│ │ │ ├── profile
│ │ │ │ └── [username]
│ │ │ │ │ ├── page.tsx
│ │ │ │ │ └── profile.css
│ │ │ ├── register
│ │ │ │ ├── page.tsx
│ │ │ │ └── register.css
│ │ │ └── wishlist
│ │ │ │ ├── page.tsx
│ │ │ │ └── wishlist.css
│ │ ├── components
│ │ │ ├── Cart.tsx
│ │ │ ├── HeaderUserMenu.tsx
│ │ │ ├── RechargeButton.tsx
│ │ │ ├── ReferralCode.tsx
│ │ │ ├── cart.css
│ │ │ ├── headerUserMenu.css
│ │ │ ├── rechargeButton.css
│ │ │ └── referralCode.css
│ │ ├── instrumentation.node.ts
│ │ ├── instrumentation.ts
│ │ ├── libs
│ │ │ └── db.ts
│ │ ├── middleware.ts
│ │ ├── model
│ │ │ ├── cart.ts
│ │ │ ├── comment.ts
│ │ │ ├── index.ts
│ │ │ ├── order.ts
│ │ │ ├── orderItem.ts
│ │ │ ├── product.ts
│ │ │ ├── user.ts
│ │ │ └── wishlist.ts
│ │ ├── next.config.ts
│ │ ├── readme.md
│ │ └── tsconfig.json
│ ├── tasks.jsonl
│ ├── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── utils
│ │ │ └── helpers.js
│ └── tsconfig.json
├── styled-components
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── App.tsx
│ │ ├── index.html
│ │ └── index.tsx
│ ├── src
│ │ ├── App.tsx
│ │ ├── components
│ │ │ ├── AddBlog.tsx
│ │ │ ├── BlogForm.tsx
│ │ │ ├── Button.tsx
│ │ │ ├── Footer.tsx
│ │ │ ├── Header.tsx
│ │ │ ├── Main.tsx
│ │ │ ├── Markdown.tsx
│ │ │ ├── Modal.tsx
│ │ │ ├── ReadBlogs.tsx
│ │ │ ├── ThemePage.tsx
│ │ │ └── Tooltip.tsx
│ │ ├── context
│ │ │ ├── BlogContext.tsx
│ │ │ └── ThemeContext.tsx
│ │ ├── global.style.tsx
│ │ ├── index.html
│ │ ├── index.tsx
│ │ └── utils
│ │ │ └── toast.tsx
│ ├── tasks.jsonl
│ ├── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── utils
│ │ │ └── helpers.js
│ ├── tsconfig.json
│ └── vite.config.ts
├── stylus
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── common.styl
│ │ ├── design.html
│ │ ├── design.js
│ │ ├── preview.html
│ │ └── preview.js
│ ├── src
│ │ ├── common.styl
│ │ ├── common
│ │ │ ├── Contents.js
│ │ │ ├── Contents.styl
│ │ │ ├── DataQuestion.js
│ │ │ ├── DataQuestion.styl
│ │ │ ├── LikertQuestion.js
│ │ │ ├── LikertQuestion.styl
│ │ │ ├── MultiSelectionQuestion.js
│ │ │ ├── MultiSelectionQuestion.styl
│ │ │ ├── NpsQuestion.js
│ │ │ ├── NpsQuestion.styl
│ │ │ ├── OpenQuestion.js
│ │ │ ├── OpenQuestion.styl
│ │ │ ├── Question.js
│ │ │ ├── Question.styl
│ │ │ ├── RankingQuestion.js
│ │ │ ├── RankingQuestion.styl
│ │ │ ├── RatingQuestion.js
│ │ │ ├── RatingQuestion.styl
│ │ │ ├── SingleSelectionQuestion.js
│ │ │ ├── SingleSelectionQuestion.styl
│ │ │ ├── SurveyDesign.js
│ │ │ ├── SurveyDesign.styl
│ │ │ ├── SurveyForm.js
│ │ │ ├── SurveyForm.styl
│ │ │ ├── SurveyPreview.js
│ │ │ ├── SurveyPreview.styl
│ │ │ ├── config.styl
│ │ │ └── util
│ │ │ │ ├── Draggable.js
│ │ │ │ └── util.js
│ │ ├── design.html
│ │ ├── design.js
│ │ ├── preview.html
│ │ └── preview.js
│ ├── tasks.jsonl
│ ├── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── util
│ │ │ └── index.js
│ └── vite.config.js
├── survey
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── design.css
│ │ ├── design.html
│ │ ├── design.js
│ │ ├── preview.css
│ │ ├── preview.html
│ │ └── preview.js
│ ├── src
│ │ ├── common.css
│ │ ├── common
│ │ │ ├── Contents.js
│ │ │ ├── DataQuestion.js
│ │ │ ├── LikertQuestion.js
│ │ │ ├── MultiSelectionQuestion.js
│ │ │ ├── NpsQuestion.js
│ │ │ ├── OpenQuestion.js
│ │ │ ├── Question.js
│ │ │ ├── RankingQuestion.js
│ │ │ ├── RatingQuestion.js
│ │ │ ├── SingleSelectionQuestion.js
│ │ │ ├── SurveyDesign.js
│ │ │ ├── SurveyForm.js
│ │ │ ├── SurveyPreview.js
│ │ │ └── util
│ │ │ │ ├── Draggable.js
│ │ │ │ └── util.js
│ │ ├── design.css
│ │ ├── design.html
│ │ ├── design.js
│ │ ├── preview.css
│ │ ├── preview.html
│ │ └── preview.js
│ ├── tasks.jsonl
│ └── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── util
│ │ └── index.js
├── svelte
│ ├── .evalignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── App.svelte
│ │ ├── index.html
│ │ └── index.ts
│ ├── src
│ │ ├── App.svelte
│ │ ├── components
│ │ │ ├── Blog.svelte
│ │ │ ├── BlogForm.svelte
│ │ │ ├── BlogList.svelte
│ │ │ ├── Comments.svelte
│ │ │ ├── Header.svelte
│ │ │ ├── Main.svelte
│ │ │ ├── Portal.svelte
│ │ │ ├── Search.svelte
│ │ │ ├── ToastDisplay.svelte
│ │ │ ├── Tooltip.svelte
│ │ │ └── TruncatedTitle.svelte
│ │ ├── index.html
│ │ ├── index.ts
│ │ ├── pages
│ │ │ └── Game.svelte
│ │ ├── router.ts
│ │ ├── store.ts
│ │ ├── stores
│ │ │ ├── blogStore.ts
│ │ │ └── commentStore.ts
│ │ └── utils
│ │ │ ├── markdown.ts
│ │ │ └── toast.ts
│ ├── svelte.config.js
│ ├── tasks.jsonl
│ ├── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
│ ├── tsconfig.json
│ ├── typings.d.ts
│ └── vite.config.mts
├── svg-chart
│ ├── .evalignore
│ ├── .gitignore
│ ├── assets
│ │ ├── data.js
│ │ └── res.svg
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── common
│ │ │ ├── Chart.js
│ │ │ ├── Chart.scss
│ │ │ ├── LineChart.js
│ │ │ └── config.scss
│ │ ├── index.html
│ │ ├── index.js
│ │ └── index.scss
│ ├── src
│ │ ├── assets
│ │ ├── common
│ │ │ ├── AreaChart.js
│ │ │ ├── BarChart.js
│ │ │ ├── Chart.js
│ │ │ ├── Chart.scss
│ │ │ ├── ChartTheme.js
│ │ │ ├── DoughnutChart.js
│ │ │ ├── LineChart.js
│ │ │ ├── PieChart.js
│ │ │ ├── ScatterChart.js
│ │ │ ├── StepChart.js
│ │ │ ├── config.scss
│ │ │ └── util.js
│ │ ├── index.html
│ │ ├── index.js
│ │ └── index.scss
│ ├── tasks.yml
│ ├── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── util
│ │ │ └── util.js
│ └── vite.config.js
├── svg-solar
│ ├── .gitignore
│ ├── assets
│ │ ├── bg.png
│ │ └── data.json
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── common
│ │ │ ├── System.scss
│ │ │ └── config.scss
│ │ ├── index.html
│ │ ├── index.js
│ │ └── index.scss
│ ├── src
│ │ ├── assets
│ │ ├── common
│ │ │ ├── Body.js
│ │ │ ├── CenterBody.js
│ │ │ ├── SubBody.js
│ │ │ ├── System.js
│ │ │ ├── System.scss
│ │ │ ├── config.scss
│ │ │ ├── util.js
│ │ │ └── util.spec.js
│ │ ├── index.html
│ │ ├── index.js
│ │ └── index.scss
│ ├── tasks.jsonl
│ ├── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── util
│ │ │ └── util.js
│ └── vite.config.js
├── svg
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── common
│ │ │ ├── Canvas.scss
│ │ │ ├── Toolkit.js
│ │ │ ├── Toolkit.scss
│ │ │ ├── config.scss
│ │ │ └── util.js
│ │ ├── index.html
│ │ ├── index.js
│ │ └── index.scss
│ ├── src
│ │ ├── common
│ │ │ ├── Canvas.js
│ │ │ ├── Canvas.scss
│ │ │ ├── Toolkit.js
│ │ │ ├── Toolkit.scss
│ │ │ ├── config.scss
│ │ │ ├── shape
│ │ │ │ ├── Circle.js
│ │ │ │ ├── Curve.js
│ │ │ │ ├── Ellipse.js
│ │ │ │ ├── Hexagon.js
│ │ │ │ ├── Line.js
│ │ │ │ ├── Polyline.js
│ │ │ │ ├── Rect.js
│ │ │ │ ├── Shape.js
│ │ │ │ ├── Text.js
│ │ │ │ ├── Trapezoid.js
│ │ │ │ └── Triangle.js
│ │ │ ├── util.js
│ │ │ └── util.spec.js
│ │ ├── index.html
│ │ ├── index.js
│ │ └── index.scss
│ ├── tasks.jsonl
│ ├── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── util
│ │ │ └── util.js
│ └── vite.config.js
├── table
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── index.css
│ │ ├── index.html
│ │ └── index.js
│ ├── src
│ │ ├── common
│ │ │ ├── drag.js
│ │ │ ├── key.js
│ │ │ ├── layout.js
│ │ │ ├── menu.js
│ │ │ ├── mouse.js
│ │ │ ├── table.js
│ │ │ ├── util.js
│ │ │ └── util.spec.js
│ │ ├── index.css
│ │ ├── index.html
│ │ └── index.js
│ ├── tasks.jsonl
│ └── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
├── tailwind
│ ├── .evalignore
│ ├── .gitignore
│ ├── assets
│ │ └── tailwind-css.js
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ └── index.html
│ ├── src
│ │ └── index.html
│ ├── tasks.jsonl
│ └── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
├── threejs
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── index.html
│ │ └── index.js
│ ├── src
│ │ ├── animation.js
│ │ ├── candy.js
│ │ ├── control.js
│ │ ├── fence.js
│ │ ├── floor.js
│ │ ├── index.html
│ │ ├── index.js
│ │ ├── light.js
│ │ ├── portal.js
│ │ └── snake.js
│ ├── tasks.jsonl
│ ├── test-utils
│ │ └── index.js
│ ├── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
│ ├── tsconfig.json
│ ├── typings.d.ts
│ └── vite.config.ts
├── typescript
│ ├── .evalignore
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ └── types
│ │ │ └── setter.ts
│ ├── src
│ │ └── types
│ │ │ ├── schema.ts
│ │ │ ├── setter-check.ts
│ │ │ └── setter.ts
│ ├── tasks.yml
│ ├── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ ├── task-9.spec.js
│ │ └── utils
│ │ │ └── index.js
│ ├── tsconfig.json
│ └── vite.config.ts
├── unocss
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ └── index.html
│ ├── src
│ │ ├── index.html
│ │ └── index.js
│ ├── tasks.jsonl
│ ├── test
│ │ ├── init.spec.js
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
│ ├── uno.config.js
│ └── vite.config.js
├── vite
│ ├── .evalignore
│ ├── .gitignore
│ ├── assets
│ │ ├── TablerAntennaBars5.svg
│ │ └── bird.png
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── index.html
│ │ ├── mock.json
│ │ ├── package.json
│ │ └── src
│ │ │ ├── alias.js
│ │ │ ├── component.jsx
│ │ │ ├── component.vue
│ │ │ ├── files
│ │ │ ├── bar.ts
│ │ │ └── foo.ts
│ │ │ ├── hello.md
│ │ │ ├── hello.zh.md
│ │ │ ├── images
│ │ │ ├── TablerAntennaBars5.svg
│ │ │ └── bird.png
│ │ │ ├── index.css
│ │ │ ├── index.js
│ │ │ ├── index.less
│ │ │ ├── index.module.less
│ │ │ ├── index.ts
│ │ │ └── version.js
│ ├── src
│ │ ├── assets
│ │ │ ├── TablerAntennaBars5.svg
│ │ │ └── bird.png
│ │ ├── index.html
│ │ ├── mock.json
│ │ ├── package.json
│ │ ├── plugins
│ │ │ ├── imagemin.mjs
│ │ │ ├── license-extractor.mjs
│ │ │ ├── markdown.mjs
│ │ │ ├── mock.mjs
│ │ │ ├── remove-console-log.mjs
│ │ │ ├── sourcemap-mover.mjs
│ │ │ └── virtual-files.mjs
│ │ ├── src
│ │ │ ├── alias.js
│ │ │ ├── component.jsx
│ │ │ ├── component.vue
│ │ │ ├── files
│ │ │ │ ├── bar.ts
│ │ │ │ └── foo.ts
│ │ │ ├── hello.md
│ │ │ ├── hello.zh.md
│ │ │ ├── images
│ │ │ │ ├── TablerAntennaBars5.svg
│ │ │ │ └── bird.png
│ │ │ ├── index.css
│ │ │ ├── index.js
│ │ │ ├── index.less
│ │ │ ├── index.module.less
│ │ │ ├── index.ts
│ │ │ └── version.js
│ │ └── vite.config.mjs
│ ├── tasks.yml
│ └── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
├── vue
│ ├── .evalignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── App.vue
│ │ ├── index.html
│ │ └── main.ts
│ ├── src
│ │ ├── App.vue
│ │ ├── components
│ │ │ ├── Blog.vue
│ │ │ ├── BlogForm.vue
│ │ │ ├── BlogList.vue
│ │ │ ├── Comments.vue
│ │ │ ├── Header.vue
│ │ │ ├── Main.vue
│ │ │ ├── Search.vue
│ │ │ ├── Tooltip.vue
│ │ │ └── TruncatedTitle.vue
│ │ ├── composables
│ │ │ ├── useDelete.ts
│ │ │ ├── useEdit.ts
│ │ │ └── useMarkdown.ts
│ │ ├── context
│ │ │ └── BlogContext.ts
│ │ ├── index.html
│ │ ├── main.ts
│ │ ├── pages
│ │ │ └── Game.vue
│ │ ├── store
│ │ │ └── comment.ts
│ │ └── utils
│ │ │ └── toast.ts
│ ├── tasks.jsonl
│ ├── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
│ ├── tsconfig.json
│ ├── typings.d.ts
│ └── vite.config.ts
├── webpack
│ ├── .evalignore
│ ├── .gitignore
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ │ ├── index.html
│ │ ├── mock.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── alias.js
│ │ │ ├── component.jsx
│ │ │ ├── component.vue
│ │ │ ├── files
│ │ │ │ ├── bar.ts
│ │ │ │ └── foo.ts
│ │ │ ├── hello.md
│ │ │ ├── hello.zh.md
│ │ │ ├── images
│ │ │ │ ├── TablerAntennaBars5.svg
│ │ │ │ └── bird.png
│ │ │ ├── index.css
│ │ │ ├── index.js
│ │ │ ├── index.less
│ │ │ ├── index.module.less
│ │ │ ├── index.ts
│ │ │ └── version.js
│ │ └── webpack.config.js
│ ├── src
│ │ ├── index.html
│ │ ├── mock.json
│ │ ├── package.json
│ │ ├── plugins
│ │ │ ├── image-compression-plugin.js
│ │ │ ├── license-extractor-plugin.js
│ │ │ ├── markdown-loader.js
│ │ │ ├── markdown-resolver-plugin.js
│ │ │ └── source-maps-plugin.js
│ │ ├── src
│ │ │ ├── alias.js
│ │ │ ├── component.jsx
│ │ │ ├── component.vue
│ │ │ ├── files
│ │ │ │ ├── bar.ts
│ │ │ │ └── foo.ts
│ │ │ ├── hello.md
│ │ │ ├── hello.zh.md
│ │ │ ├── images
│ │ │ │ ├── TablerAntennaBars5.svg
│ │ │ │ └── bird.png
│ │ │ ├── index.css
│ │ │ ├── index.js
│ │ │ ├── index.less
│ │ │ ├── index.module.less
│ │ │ ├── index.ts
│ │ │ ├── types
│ │ │ │ └── markdown.d.ts
│ │ │ └── version.js
│ │ ├── tsconfig.json
│ │ ├── virtual-files-loader.js
│ │ └── webpack.config.js
│ ├── tasks.yml
│ └── test
│ │ ├── task-1.spec.js
│ │ ├── task-10.spec.js
│ │ ├── task-11.spec.js
│ │ ├── task-12.spec.js
│ │ ├── task-13.spec.js
│ │ ├── task-14.spec.js
│ │ ├── task-15.spec.js
│ │ ├── task-16.spec.js
│ │ ├── task-17.spec.js
│ │ ├── task-18.spec.js
│ │ ├── task-19.spec.js
│ │ ├── task-2.spec.js
│ │ ├── task-20.spec.js
│ │ ├── task-3.spec.js
│ │ ├── task-4.spec.js
│ │ ├── task-5.spec.js
│ │ ├── task-6.spec.js
│ │ ├── task-7.spec.js
│ │ ├── task-8.spec.js
│ │ └── task-9.spec.js
└── zustand
│ ├── .evalignore
│ ├── mocks
│ └── blog.ts
│ ├── package.json
│ ├── playwright.config.js
│ ├── readme.md
│ ├── src-init
│ ├── App.css
│ ├── App.tsx
│ ├── index.html
│ └── index.tsx
│ ├── src
│ ├── App.css
│ ├── App.tsx
│ ├── components
│ │ ├── Blog.tsx
│ │ ├── BlogForm.tsx
│ │ ├── BlogList.tsx
│ │ ├── ChatRoom.tsx
│ │ ├── CommentForm.tsx
│ │ ├── CommentList.tsx
│ │ ├── Game.tsx
│ │ ├── GameReplayModal.tsx
│ │ ├── Header.tsx
│ │ ├── Login.tsx
│ │ ├── Main.tsx
│ │ ├── Rooms.tsx
│ │ ├── Search.tsx
│ │ └── ShareGameModal.tsx
│ ├── index.html
│ ├── index.tsx
│ ├── stores
│ │ ├── blog.ts
│ │ ├── chat.ts
│ │ ├── comment.ts
│ │ ├── game.ts
│ │ ├── room.ts
│ │ ├── route.ts
│ │ └── user.ts
│ └── utils
│ │ └── markdown.ts
│ ├── tasks.yml
│ ├── test
│ ├── task-1.spec.js
│ ├── task-10.spec.js
│ ├── task-11.spec.js
│ ├── task-12.spec.js
│ ├── task-13.spec.js
│ ├── task-14.spec.js
│ ├── task-15.spec.js
│ ├── task-16.spec.js
│ ├── task-17.spec.js
│ ├── task-18.spec.js
│ ├── task-19.spec.js
│ ├── task-2.spec.js
│ ├── task-20.spec.js
│ ├── task-3.spec.js
│ ├── task-4.spec.js
│ ├── task-5.spec.js
│ ├── task-6.spec.js
│ ├── task-7.spec.js
│ ├── task-8.spec.js
│ ├── task-9.spec.js
│ └── utils
│ │ └── helpers.ts
│ ├── tsconfig.json
│ ├── typings.d.ts
│ └── vite.config.ts
├── rush.json
├── scripts
├── daily.sh
├── publish.sh
├── run.sh
└── test_build.sh
├── start.dockerfile
└── tools
├── bench-agent
├── .gitignore
├── package.json
├── src
│ ├── agent.ts
│ ├── index.ts
│ ├── llm
│ │ ├── aliyun.ts
│ │ ├── anthropic.ts
│ │ ├── base.ts
│ │ ├── deepseek.ts
│ │ ├── doubao.ts
│ │ ├── index.ts
│ │ ├── ollama.ts
│ │ ├── openai.ts
│ │ └── openrouter.ts
│ ├── prompt
│ │ └── index.ts
│ ├── schedule.ts
│ ├── type.ts
│ └── utils
│ │ ├── fetch.ts
│ │ ├── markdown.test.ts
│ │ ├── markdown.ts
│ │ ├── sleep.ts
│ │ ├── stream.ts
│ │ └── token.ts
├── tsconfig.json
└── tsup.config.ts
├── evaluator
├── .gitignore
├── package.json
├── scripts
│ └── gen-hugging-face-datasets.js
├── src
│ ├── global.d.ts
│ ├── ignore
│ │ └── index.ts
│ ├── index.ts
│ ├── logger
│ │ └── index.ts
│ ├── parser
│ │ ├── html.test.ts
│ │ ├── html.ts
│ │ ├── index.ts
│ │ └── type.ts
│ ├── plugins
│ │ ├── common.ts
│ │ ├── index.ts
│ │ ├── plugin
│ │ │ ├── base
│ │ │ │ └── index.ts
│ │ │ ├── bench
│ │ │ │ └── index.ts
│ │ │ ├── custom
│ │ │ │ └── index.ts
│ │ │ ├── index.ts
│ │ │ └── reporter
│ │ │ │ └── index.ts
│ │ ├── schedule.ts
│ │ └── utils
│ │ │ ├── builder.ts
│ │ │ ├── context.ts
│ │ │ ├── environment.ts
│ │ │ ├── index.ts
│ │ │ ├── report
│ │ │ ├── evaluation-reporter.ts
│ │ │ ├── index.ts
│ │ │ └── project-reporter.ts
│ │ │ ├── tester
│ │ │ ├── index.ts
│ │ │ ├── playwright.ts
│ │ │ └── type.ts
│ │ │ └── writer.ts
│ ├── runner
│ │ ├── evaluator-runner.ts
│ │ ├── index.ts
│ │ ├── project-runner.ts
│ │ └── task-runner
│ │ │ ├── default-task-runner.ts
│ │ │ ├── index.ts
│ │ │ └── init-task-runner.ts
│ ├── settings
│ │ ├── bench.ts
│ │ ├── custom.ts
│ │ └── index.ts
│ └── utils
│ │ ├── array.ts
│ │ ├── error.test.ts
│ │ ├── error.ts
│ │ ├── file-content.ts
│ │ ├── file.ts
│ │ ├── format.ts
│ │ ├── port.ts
│ │ ├── process.ts
│ │ ├── report.test.ts
│ │ ├── report.ts
│ │ ├── screenshot.ts
│ │ ├── string.test.ts
│ │ ├── string.ts
│ │ ├── task.test.ts
│ │ ├── task.ts
│ │ ├── word.test.ts
│ │ └── word.ts
├── tsconfig.json
└── tsup.config.ts
├── http-agent
├── package.json
├── src
│ ├── http-agent.ts
│ ├── index.ts
│ └── limit.ts
├── tsconfig.json
└── tsup.config.ts
├── readme.md
└── types
├── package.json
├── src
├── agent.ts
├── chat-message.ts
├── completion.ts
├── config.ts
├── index.ts
├── logger.ts
├── plugin.ts
├── project
│ └── index.ts
├── runner.ts
└── task.ts
├── tsconfig.json
└── tsup.config.ts
/.dockerignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | .git/
3 | dist/
4 | *.log
5 | .env
6 |
7 | # Rush temporary files
8 | common/deploy/
9 | common/temp/
10 | common/autoinstallers/*/.npmrc
11 | **/.rush/temp/
12 | *.lock
13 |
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "trailingComma": "es5",
3 | "tabWidth": 2,
4 | "printWidth": 100,
5 | "semi": false,
6 | "singleQuote": true
7 | }
--------------------------------------------------------------------------------
/apps/eval/.gitignore:
--------------------------------------------------------------------------------
1 | report
2 | src/config.json
3 | src/config.json5
--------------------------------------------------------------------------------
/apps/eval/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "experimentalDecorators": true,
4 | "target": "es2020",
5 | "module": "esnext",
6 | "strictPropertyInitialization": false,
7 | "strict": true,
8 | "esModuleInterop": true,
9 | "moduleResolution": "node",
10 | "skipLibCheck": true,
11 | "noUnusedLocals": true,
12 | "noImplicitAny": true,
13 | "allowJs": true,
14 | "resolveJsonModule": true,
15 | "types": ["node"],
16 | "typeRoots": ["node_modules/@types"],
17 | "jsx": "react",
18 | "lib": ["es6", "dom", "es2020", "es2019.Array"]
19 | },
20 | "include": ["./src"],
21 | "exclude": ["node_modules"]
22 | }
23 |
--------------------------------------------------------------------------------
/common/autoinstallers/rush-commands/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "rush-commands",
3 | "version": "1.0.0",
4 | "private": true,
5 | "dependencies": {
6 | "concurrently": "^8.2.2"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/common/config/rush/repo-state.json:
--------------------------------------------------------------------------------
1 | // DO NOT MODIFY THIS FILE MANUALLY BUT DO COMMIT IT. It is generated and used by Rush.
2 | {
3 | "preferredVersionsHash": "bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f"
4 | }
5 |
--------------------------------------------------------------------------------
/common/config/rush/version-policies.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "policyName": "publishPolicy",
4 | "definitionName": "lockStepVersion",
5 | "version": "1.0.1-alpha.3",
6 | "nextBump": "prerelease"
7 | }
8 | ]
9 |
--------------------------------------------------------------------------------
/docs/assets/pass-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/docs/assets/pass-1.png
--------------------------------------------------------------------------------
/docs/assets/sotas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/docs/assets/sotas.png
--------------------------------------------------------------------------------
/libraries/shop-test-util/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/shop-test-util",
3 | "version": "0.0.1",
4 | "main": "src/index.js",
5 | "scripts": {
6 | "build": "",
7 | "test": ""
8 | },
9 | "dependencies": {
10 | "@web-bench/test-util": "workspace:*",
11 | "@playwright/test": "^1.49.1"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/libraries/summary/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/summary",
3 | "version": "0.0.1",
4 | "private": true,
5 | "scripts": {
6 | "start": "node ./src/index.js"
7 | },
8 | "dependencies": {
9 | "ignore": "^6.0.2"
10 | },
11 | "devDependencies": {}
12 | }
13 |
--------------------------------------------------------------------------------
/libraries/test-util/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/test-util",
3 | "version": "0.0.1",
4 | "main": "src/index.js",
5 | "bin": "./test.sh",
6 | "scripts": {
7 | "build": "",
8 | "test": ""
9 | },
10 | "dependencies": {
11 | "@playwright/test": "^1.49.1"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/projects/.gitignore:
--------------------------------------------------------------------------------
1 | /sample/
2 | /new-project/
3 | screenshot-*.spec.js
--------------------------------------------------------------------------------
/projects/angular/.evalignore:
--------------------------------------------------------------------------------
1 | .angular
2 | angular.json
3 | tsconfig.json
4 | tsconfig.app.json
5 | index.html
6 | main.ts
--------------------------------------------------------------------------------
/projects/angular/src-init/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core'
2 |
3 | @Component({
4 | selector: 'app-root',
5 | imports: [],
6 | template: ` Empty `,
7 | styles: `
8 | body {
9 | margin: 0;
10 | padding: 0;
11 | }
12 | `,
13 | })
14 | export class AppComponent {
15 | title = 'angular'
16 | }
17 |
--------------------------------------------------------------------------------
/projects/angular/src-init/app.config.ts:
--------------------------------------------------------------------------------
1 | import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core'
2 | import { provideRouter } from '@angular/router'
3 |
4 | import { routes } from './app.routes'
5 |
6 | export const appConfig: ApplicationConfig = {
7 | providers: [provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes)],
8 | }
9 |
--------------------------------------------------------------------------------
/projects/angular/src-init/app.routes.ts:
--------------------------------------------------------------------------------
1 | import { Routes } from '@angular/router'
2 |
3 | export const routes: Routes = []
4 |
--------------------------------------------------------------------------------
/projects/angular/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Blog
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/angular/src-init/main.ts:
--------------------------------------------------------------------------------
1 | import { bootstrapApplication } from '@angular/platform-browser'
2 | import { appConfig } from './app.config'
3 | import { AppComponent } from './app.component'
4 |
5 | bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err))
6 |
--------------------------------------------------------------------------------
/projects/angular/src-init/readme.md:
--------------------------------------------------------------------------------
1 |
2 | # Angular Blog System
3 |
4 | This is an **Angular(v19)** Blog System project.
5 |
6 | Here is the libs used in this project:
7 |
8 | - "@angular/animations": "^19.0.0"
9 | - "@angular/common": "^19.0.0"
10 | - "@angular/compiler": "^19.0.0"
11 | - "@angular/core": "^19.0.0"
12 | - "@angular/forms": "^19.0.0"
13 | - "@angular/platform-browser": "^19.0.0"
14 | - "@angular/platform-browser-dynamic": "^19.0.0"
15 | - "@angular/router": "^19.0.0"
16 | - "rxjs": "~7.8.0"
17 | - "tslib": "^2.3.0"
18 | - "zone.js": "~0.15.0"
19 |
--------------------------------------------------------------------------------
/projects/angular/src-init/styles.css:
--------------------------------------------------------------------------------
1 | /* You can add global styles to this file, and also import other style files */
2 |
--------------------------------------------------------------------------------
/projects/angular/src-init/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
2 | /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
3 | {
4 | "extends": "./tsconfig.json",
5 | "compilerOptions": {
6 | "outDir": "./out-tsc/app",
7 | "types": []
8 | },
9 | "files": [
10 | "main.ts"
11 | ],
12 | "include": [
13 | "**/*.d.ts"
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/projects/angular/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Blog
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/angular/src/readme.md:
--------------------------------------------------------------------------------
1 | # Angular Blog System
2 |
3 | This is an **Angular(v19)** Blog System project.
4 |
5 | Here is the libs used in this project:
6 |
7 | - "@angular/animations": "^19.0.0"
8 | - "@angular/common": "^19.0.0"
9 | - "@angular/compiler": "^19.0.0"
10 | - "@angular/core": "^19.0.0"
11 | - "@angular/forms": "^19.0.0"
12 | - "@angular/platform-browser": "^19.0.0"
13 | - "@angular/platform-browser-dynamic": "^19.0.0"
14 | - "@angular/router": "^19.0.0"
15 | - "rxjs": "~7.8.0"
16 | - "tslib": "^2.3.0"
17 | - "zone.js": "~0.15.0"
--------------------------------------------------------------------------------
/projects/angular/src/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
2 | /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
3 | {
4 | "extends": "./tsconfig.json",
5 | "compilerOptions": {
6 | "outDir": "./out-tsc/app",
7 | "types": []
8 | },
9 | "files": [
10 | "main.ts"
11 | ],
12 | "include": [
13 | "**/*.d.ts"
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/projects/bom/.gitignore:
--------------------------------------------------------------------------------
1 | src-*/
2 | !src-init
--------------------------------------------------------------------------------
/projects/bom/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/bom",
3 | "version": "0.0.1",
4 | "eval": {
5 | "stable": true
6 | },
7 | "type": "module",
8 | "scripts": {
9 | "build": "",
10 | "test": "npx @web-bench/test-util"
11 | },
12 | "author": "luics",
13 | "devDependencies": {
14 | "@playwright/test": "^1.49.1",
15 | "@types/node": "^22.7.9",
16 | "serve": "^14.2.4",
17 | "@web-bench/test-util": "workspace:*"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/projects/bom/src-init/index.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/bom/src-init/index.css
--------------------------------------------------------------------------------
/projects/bom/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | SWE101-Bench BOM
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/projects/bom/src-init/index.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('DOMContentLoaded', () => {})
2 |
--------------------------------------------------------------------------------
/projects/calculator-files/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/calculator-files",
3 | "version": "0.0.1",
4 | "scripts": {
5 | "build": "",
6 | "test": "npx @web-bench/test-util"
7 | },
8 | "author": "luics",
9 | "eval": {
10 | "stable": true
11 | },
12 | "devDependencies": {
13 | "@playwright/test": "^1.49.1",
14 | "@types/node": "^22.7.9",
15 | "serve": "^14.2.4",
16 | "@web-bench/test-util": "workspace:*"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/projects/calculator-files/readme.md:
--------------------------------------------------------------------------------
1 | # Calculator with multiple code files
2 |
3 | ## [Evaluate](../readme.md)
--------------------------------------------------------------------------------
/projects/calculator-files/src-init/index.css:
--------------------------------------------------------------------------------
1 | .calculator {
2 | width: 300px;
3 | margin: 50px auto;
4 | padding: 20px;
5 | border: 1px solid #ccc;
6 | border-radius: 5px;
7 | }
8 | .display {
9 | width: 100%;
10 | height: 40px;
11 | margin-bottom: 10px;
12 | text-align: right;
13 | font-size: 24px;
14 | }
15 | .buttons {
16 | display: grid;
17 | grid-template-columns: repeat(4, 1fr);
18 | gap: 5px;
19 | }
20 | button {
21 | padding: 10px;
22 | font-size: 18px;
23 | border: 1px solid #999;
24 | border-radius: 5px;
25 | cursor: pointer;
26 | }
27 | button:hover {
28 | background-color: #eee;
29 | }
30 |
--------------------------------------------------------------------------------
/projects/calculator-files/src-init/index.js:
--------------------------------------------------------------------------------
1 | // @ts-nocheck
2 | let displayValue = ''
3 |
4 | function calculate(value) {
5 | if (value === 'C') {
6 | displayValue = ''
7 | } else if (value === '=') {
8 | try {
9 | displayValue = eval(displayValue).toString()
10 | } catch (error) {
11 | displayValue = 'Error'
12 | }
13 | } else {
14 | displayValue += value
15 | }
16 |
17 | document.getElementById('display').value = displayValue
18 | }
19 |
--------------------------------------------------------------------------------
/projects/calculator/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/calculator",
3 | "version": "0.0.1",
4 | "scripts": {
5 | "build": "",
6 | "test": "npx @web-bench/test-util"
7 | },
8 | "author": "luics",
9 | "eval": {
10 | "stable": true
11 | },
12 | "devDependencies": {
13 | "@playwright/test": "^1.49.1",
14 | "@types/node": "^22.7.9",
15 | "serve": "^14.2.4",
16 | "@web-bench/test-util": "workspace:*"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/projects/calculator/readme.md:
--------------------------------------------------------------------------------
1 | # Calculator
2 |
3 | ## [Evaluate](../readme.md)
--------------------------------------------------------------------------------
/projects/canvas/.evalignore:
--------------------------------------------------------------------------------
1 | assets/
--------------------------------------------------------------------------------
/projects/canvas/.gitignore:
--------------------------------------------------------------------------------
1 | src/assets
2 | src/assets/
3 |
--------------------------------------------------------------------------------
/projects/canvas/assets/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/canvas/assets/bg.png
--------------------------------------------------------------------------------
/projects/canvas/assets/bird.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/canvas/assets/bird.png
--------------------------------------------------------------------------------
/projects/canvas/assets/fg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/canvas/assets/fg.png
--------------------------------------------------------------------------------
/projects/canvas/assets/pipeDown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/canvas/assets/pipeDown.png
--------------------------------------------------------------------------------
/projects/canvas/assets/pipeUp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/canvas/assets/pipeUp.png
--------------------------------------------------------------------------------
/projects/canvas/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Canvas Example
7 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/projects/canvas/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Canvas
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/chart/.evalignore:
--------------------------------------------------------------------------------
1 | assets/
--------------------------------------------------------------------------------
/projects/chart/.gitignore:
--------------------------------------------------------------------------------
1 | src-all
2 | src-init/assets
--------------------------------------------------------------------------------
/projects/chart/assets/data.js:
--------------------------------------------------------------------------------
1 | export const data = {
2 | labels: ['2025.1.1', '2025.1.2', '2025.1.3', '2025.1.4', '2025.1.5'],
3 | datasets: [
4 | { label: 'Pass@2', data: [20.0, 30.0, 35.0, 30.0, 40.0] },
5 | { label: 'Pass@1', data: [10.0, 15.0, 25.0, 20.0, 30.0] },
6 | { label: 'Error@1', data: [5.0, 6.0, 4.0, 8.0, 7.0] },
7 | ],
8 | }
9 |
--------------------------------------------------------------------------------
/projects/chart/assets/res.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/projects/chart/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/chart",
3 | "version": "0.0.1",
4 | "eval": {
5 | "stable": true
6 | },
7 | "type": "module",
8 | "scripts": {
9 | "start": "vite src --config vite.config.js",
10 | "build": "VITE_CJS_IGNORE_WARNING=true vite build",
11 | "test": "npx @web-bench/test-util"
12 | },
13 | "author": "luics",
14 | "devDependencies": {
15 | "@playwright/test": "^1.49.1",
16 | "@types/node": "^22.7.9",
17 | "@web-bench/test-util": "workspace:*",
18 | "vite": "^6.2.2",
19 | "sass-embedded": "~1.83.1"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/projects/chart/readme.md:
--------------------------------------------------------------------------------
1 | # web-bench-chart
2 |
3 | ## [Evaluate](../readme.md)
4 |
5 | ## Project Design
6 |
7 | We will create a minimal Chart Builder project to generate a chart with user's config. Basic LineChart is from project [svg-chart](../svg-chart/readme.md).
8 |
9 | ### Tasks
10 |
11 | 1. Config Axes
12 | 2. Config Grids
13 | 3. Config Legends
14 | 4. Config DataLabels
15 | 5. Config PointStyle
16 | 6. Config Datasets
17 | 7. Tooltips
18 | 8. Smooth Line Chart
19 | 9. Click Legend
20 | 10. Scatter Chart
21 | 11. Step Chart
22 | 12. Area Chart
23 | 13. Bar Chart
24 | 14. Bar Chart DataLabel
25 | 15. Bar Chart Tooltip
26 | 16. Pie Chart
27 | 17. Doughnut Chart
28 | 18. Pie Chart DataLabel
29 | 19. Pie Chart Animation
30 | 20. Pie Chart Tooltip
31 |
--------------------------------------------------------------------------------
/projects/chart/src-init/common/ChartTheme.js:
--------------------------------------------------------------------------------
1 | const theme = 'default'
2 |
3 | export const themes = {
4 | default: {
5 | colors: ['#6083E7', '#DB746B', '#68D5BE', '#445DA3', '#9B524B', '#BDC0C2'],
6 | },
7 | dark: {
8 | colors: ['#BDCCF4', '#BBE3F5', '#B8EAE1', '#C0E7B4', '#DFEB9E', '#F2E4AF'],
9 | },
10 | }
11 |
12 | export function getColor(index) {
13 | const colors = themes[theme].colors
14 | return colors[index % colors.length]
15 | }
16 |
17 | export const col = getColor
18 |
--------------------------------------------------------------------------------
/projects/chart/src-init/index.js:
--------------------------------------------------------------------------------
1 | import { data } from './assets/data.js'
2 | import { LineChart } from './common/LineChart.js'
3 |
4 | document.addEventListener('DOMContentLoaded', async () => {
5 | document.querySelector('#axes').addEventListener('change', createChart)
6 | })
7 |
8 | async function createChart() {
9 | // code here
10 | }
11 |
--------------------------------------------------------------------------------
/projects/chart/src-init/index.scss:
--------------------------------------------------------------------------------
1 | @use './common/config';
2 | @use './common/Chart';
3 |
4 |
--------------------------------------------------------------------------------
/projects/chart/src/assets:
--------------------------------------------------------------------------------
1 | ../assets
--------------------------------------------------------------------------------
/projects/chart/src/index.scss:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @use './common/config';
16 | @use './common/Chart';
17 |
18 |
--------------------------------------------------------------------------------
/projects/color/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/color",
3 | "version": "0.0.1",
4 | "scripts": {
5 | "build": "",
6 | "test": "npx @web-bench/test-util"
7 | },
8 | "author": "luics",
9 | "eval": {
10 | "stable": true
11 | },
12 | "devDependencies": {
13 | "@playwright/test": "^1.49.1",
14 | "@types/node": "^22.7.9",
15 | "serve": "^14.2.4",
16 | "@web-bench/test-util": "workspace:*"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/projects/color/src-init/index.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('DOMContentLoaded', () => {})
2 |
--------------------------------------------------------------------------------
/projects/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/demo",
3 | "version": "0.0.1",
4 | "scripts": {
5 | "build": "",
6 | "test": "npx @web-bench/test-util"
7 | },
8 | "author": "luics",
9 | "eval": {
10 | "stable": false
11 | },
12 | "devDependencies": {
13 | "@playwright/test": "^1.49.1",
14 | "@types/node": "^22.7.9",
15 | "serve": "^14.2.4",
16 | "@web-bench/test-util": "workspace:*"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/projects/demo/readme.md:
--------------------------------------------------------------------------------
1 | # Demo
2 |
3 | ## [Evaluate](../readme.md)
4 |
5 | ## Project Design
6 |
7 | See [Project Tutorial - Project Design](https://github.com/bytedance/web-bench/wiki/Project-Tutorial-CN#2-%E8%AE%BE%E8%AE%A1%E9%A1%B9%E7%9B%AE).
8 |
9 |
--------------------------------------------------------------------------------
/projects/demo/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench Project Demo
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/projects/demo/tasks.jsonl:
--------------------------------------------------------------------------------
1 | {"id":"task-1","date":"2025-5-21","level":"easy","description":"Add a user text input (id 'user') and a password input (id 'password') in page body. Add a login button (id 'login') and a reset button (id 'reset') in page body."}
2 | {"id":"task-2","date":"2025-5-21","level":"easy","description":"Click button reset to clear the content of user and password input."}
3 | {"id":"task-3","date":"2025-5-21","level":"easy","description":"Click button login to validate the content of user and password input. When user content is empty, show message 'Invalid user' in alert dialog. When password content is empty, show message 'Invalid password' in alert dialog. Otherwise, show message 'Login successfully' in alert dialog."}
--------------------------------------------------------------------------------
/projects/demo/test/init.spec.js:
--------------------------------------------------------------------------------
1 | const { test, expect } = require('@playwright/test')
2 | const exp = require('constants')
3 |
4 | test.beforeEach(async ({ page }) => {
5 | await page.goto('/index.html')
6 | })
7 |
8 | test('body', async ({ page }) => {
9 | await expect(page.locator('body')).toBeAttached()
10 | })
11 |
12 | test('root', async ({ page }) => {
13 | await expect(page.locator('.root')).toBeAttached()
14 | })
15 |
--------------------------------------------------------------------------------
/projects/demo/test/task-1.spec.js:
--------------------------------------------------------------------------------
1 | const { test, expect } = require('@playwright/test')
2 |
3 | test.beforeEach(async ({ page }) => {
4 | await page.goto('/index.html')
5 | })
6 |
7 | test('#user', async ({ page }) => {
8 | await expect(page.locator('#user')).toBeVisible()
9 | })
10 |
11 | test('#password', async ({ page }) => {
12 | await expect(page.locator('#password')).toBeVisible()
13 | })
14 |
15 | test('#login', async ({ page }) => {
16 | await expect(page.locator('#login')).toBeVisible()
17 | })
18 |
19 | test('#reset', async ({ page }) => {
20 | await expect(page.locator('#reset')).toBeVisible()
21 | })
22 |
--------------------------------------------------------------------------------
/projects/demo/test/task-2.spec.js:
--------------------------------------------------------------------------------
1 | const { test, expect } = require('@playwright/test')
2 |
3 | test.beforeEach(async ({ page }) => {
4 | await page.goto('/index.html')
5 | })
6 |
7 | test('click #reset', async ({ page }) => {
8 | await page.locator('#user').fill('abc')
9 | await page.locator('#password').fill('123')
10 |
11 | await page.locator('#reset').click()
12 |
13 | await expect(page.locator('#user')).toHaveValue('')
14 | await expect(page.locator('#password')).toHaveValue('')
15 | })
16 |
--------------------------------------------------------------------------------
/projects/dom/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/dom",
3 | "version": "0.0.1",
4 | "scripts": {
5 | "build": "",
6 | "test": "npx @web-bench/test-util",
7 | "test1": "npx playwright test"
8 | },
9 | "author": "luics",
10 | "eval": {
11 | "stable": true
12 | },
13 | "devDependencies": {
14 | "@playwright/test": "^1.49.1",
15 | "@types/node": "^22.7.9",
16 | "serve": "^14.2.4",
17 | "@web-bench/test-util": "workspace:*"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/projects/dom/src-init/index.css:
--------------------------------------------------------------------------------
1 | * {
2 | margin: 0;
3 | padding: 0;
4 | box-sizing: border-box;
5 | }
6 |
7 | body {
8 | width: 100%;
9 | height: 100vh;
10 | background-color: #1f1f1f;
11 | color: #eee;
12 | font-family: 'Courier New', Courier, monospace;
13 | }
14 |
15 | .explorer {
16 | width: 100%;
17 | height: 100%;
18 | display: flex;
19 | }
20 |
21 | .leftbar {
22 | width: 300px;
23 | flex-shrink: 0;
24 | height: 100%;
25 | border-right: 1px solid #ccc;
26 | display: flex;
27 | flex-direction: column;
28 | }
29 |
30 | .editor {
31 | flex: 1;
32 | height: 100%;
33 | background-color: #1f1f1f;
34 | color: #eee;
35 | border: 0;
36 | }
37 |
--------------------------------------------------------------------------------
/projects/dom/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench DOM
7 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/projects/dom/src-init/index.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('DOMContentLoaded', () => {})
2 |
--------------------------------------------------------------------------------
/projects/dom1/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/dom1",
3 | "version": "0.0.1",
4 | "eval": {
5 | "stable": true
6 | },
7 | "scripts": {
8 | "build": "",
9 | "test": "npx @web-bench/test-util",
10 | "test1": "npx playwright test"
11 | },
12 | "author": "luics",
13 | "devDependencies": {
14 | "@playwright/test": "^1.49.1",
15 | "@types/node": "^22.7.9",
16 | "serve": "^14.2.4",
17 | "@web-bench/test-util": "workspace:*"
18 | }
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/projects/dom1/readme.md:
--------------------------------------------------------------------------------
1 | # web-bench-dom1
2 |
3 | Single file version of [web-bench-dom](../dom/readme.md).
4 |
--------------------------------------------------------------------------------
/projects/draw/.gitignore:
--------------------------------------------------------------------------------
1 | src/assets
2 | src-init/assets
3 | src-*/
4 | !src-init
--------------------------------------------------------------------------------
/projects/draw/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/draw",
3 | "version": "0.0.1",
4 | "eval": {
5 | "stable": true
6 | },
7 | "scripts": {
8 | "start": "vite src --config vite.config.js",
9 | "build": "VITE_CJS_IGNORE_WARNING=true vite build",
10 | "test": "npx @web-bench/test-util"
11 | },
12 | "author": "luics",
13 | "devDependencies": {
14 | "@playwright/test": "^1.49.1",
15 | "@types/node": "^22.7.9",
16 | "@web-bench/test-util": "workspace:*",
17 | "vite": "^6.2.2",
18 | "sass-embedded": "~1.83.1"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/projects/draw/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | SWE101-Bench Draw
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/projects/draw/src-init/index.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/draw/src-init/index.js
--------------------------------------------------------------------------------
/projects/draw/src-init/index.scss:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | }
4 |
--------------------------------------------------------------------------------
/projects/esmodule/.gitignore:
--------------------------------------------------------------------------------
1 | src/nodejs/test-*
2 | src-*/
3 | !src-init
--------------------------------------------------------------------------------
/projects/esmodule/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/esmodule",
3 | "version": "0.0.1",
4 | "eval": {
5 | "stable": true
6 | },
7 | "type": "module",
8 | "scripts": {
9 | "build": "",
10 | "test": "npx @web-bench/test-util"
11 | },
12 | "author": "luics",
13 | "devDependencies": {
14 | "@playwright/test": "^1.49.1",
15 | "@types/node": "^22.7.9",
16 | "serve": "^14.2.4",
17 | "@web-bench/test-util": "workspace:*"
18 | }
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/projects/esmodule/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | SWE101-Bench ES-Module
7 |
8 |
9 | Logs
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/projects/esmodule/src-init/index.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('DOMContentLoaded', () => {})
2 |
--------------------------------------------------------------------------------
/projects/esmodule/src/modules/data/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "en": 1
3 | }
4 |
--------------------------------------------------------------------------------
/projects/esmodule/src/modules/data/fr.json:
--------------------------------------------------------------------------------
1 | {
2 | "fr": 1
3 | }
4 |
--------------------------------------------------------------------------------
/projects/esmodule/src/modules/data/zh.json:
--------------------------------------------------------------------------------
1 | {
2 | "zh": 1
3 | }
4 |
--------------------------------------------------------------------------------
/projects/esmodule/src/modules/resource/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 1
3 | }
4 |
--------------------------------------------------------------------------------
/projects/esmodule/src/modules/util/lang.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export const langs = ['en', 'zh', 'fr']
16 |
--------------------------------------------------------------------------------
/projects/esmodule/src/nodejs/cjs.cjs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | module.exports = {
16 | cjs: true,
17 | }
18 |
--------------------------------------------------------------------------------
/projects/esmodule/src/nodejs/data.json:
--------------------------------------------------------------------------------
1 | { "version": 1 }
2 |
--------------------------------------------------------------------------------
/projects/expression-editor/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/expression-editor",
3 | "version": "0.0.1",
4 | "scripts": {
5 | "build": "",
6 | "test": "npx @web-bench/test-util",
7 | "src:test": "EVAL_PROJECT_ROOT=$(pwd)/src npx playwright test"
8 | },
9 | "author": "fengzilong",
10 | "eval": {
11 | "stable": true
12 | },
13 | "devDependencies": {
14 | "@playwright/test": "^1.49.1",
15 | "@types/node": "^22.7.9",
16 | "serve": "^14.2.4",
17 | "@web-bench/test-util": "workspace:*",
18 | "tinycolor2": "^1.6.0"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/projects/expression-editor/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Web-Bench Expression Editor
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/projects/expression-editor/src-init/index.js:
--------------------------------------------------------------------------------
1 | // DO NOT use any library or framework.
--------------------------------------------------------------------------------
/projects/expressjs/.evalignore:
--------------------------------------------------------------------------------
1 | tsconfig.json
--------------------------------------------------------------------------------
/projects/expressjs/.gitignore:
--------------------------------------------------------------------------------
1 | test.sqlite
2 | .env
--------------------------------------------------------------------------------
/projects/expressjs/src-init/index.js:
--------------------------------------------------------------------------------
1 | const express = require('express')
2 | const path = require('path')
3 | const cookieParser = require('cookie-parser')
4 |
5 | const app = express()
6 |
7 | app.use(cookieParser())
8 | app.use(express.static(path.join(__dirname, 'public')))
9 | app.set('views', path.join(__dirname, 'views'))
10 | app.set('view engine', 'pug')
11 |
12 | app.listen(process.env.PORT, () => {
13 | console.log(`App listening: http://localhost:${process.env.PORT}`)
14 | })
15 |
--------------------------------------------------------------------------------
/projects/expressjs/src-init/readme.md:
--------------------------------------------------------------------------------
1 | # Express.js Shopping Mall
2 |
3 | This is a Express.js shopping mall project.
4 |
5 | Here is the libs used in this project:
6 |
7 | - "sqlite3": "^5.1.7"
8 | - "express": "^5.0.1"
9 | - "pug": "^3.0.2"
10 | - "cookie-parser": "^1.4.7"
11 | - "jose": "^5.9.6"
12 |
--------------------------------------------------------------------------------
/projects/expressjs/src/readme.md:
--------------------------------------------------------------------------------
1 | # Express.js Shopping Mall
2 |
3 | This is a Express.js shopping mall project.
4 |
5 | Here is the libs used in this project:
6 |
7 | - "sqlite3": "^5.1.7"
8 | - "express": "^5.0.1"
9 | - "pug": "^3.0.2"
10 | - "cookie-parser": "^1.4.7"
11 | - "jose": "^5.9.6"
12 |
--------------------------------------------------------------------------------
/projects/expressjs/typings.d.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | ///
16 |
--------------------------------------------------------------------------------
/projects/fastify-react/.evalignore:
--------------------------------------------------------------------------------
1 | tsconfig.json
2 | client/index.html
3 | .gitkeep
--------------------------------------------------------------------------------
/projects/fastify-react/.gitignore:
--------------------------------------------------------------------------------
1 | test.sqlite
2 | .env
3 | public/
--------------------------------------------------------------------------------
/projects/fastify-react/src-init/client/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blog
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/fastify-react/src-init/client/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom/client'
3 | import { RouterProvider } from 'react-router'
4 | import { router } from './routes'
5 |
6 | const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement)
7 |
8 | root.render( )
9 |
--------------------------------------------------------------------------------
/projects/fastify-react/src-init/client/routes.tsx:
--------------------------------------------------------------------------------
1 | import { createBrowserRouter, Outlet } from 'react-router'
2 |
3 | /**
4 | * React Router v7.5.0
5 | */
6 |
7 | export const router = createBrowserRouter([
8 | {
9 | path: '/',
10 | element: ,
11 | hasErrorBoundary: true,
12 | children: [
13 | {
14 | index: true,
15 | element: Home
,
16 | },
17 | {
18 | path: '/login',
19 | element: Login
,
20 | },
21 | {
22 | path: '*',
23 | element: 404 Error
,
24 | },
25 | ],
26 | },
27 | ])
28 |
--------------------------------------------------------------------------------
/projects/fastify-react/src-init/plugins/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/fastify-react/src-init/plugins/.gitkeep
--------------------------------------------------------------------------------
/projects/fastify-react/src/client/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blog
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/fastify-react/src/plugins/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/fastify-react/src/plugins/.gitkeep
--------------------------------------------------------------------------------
/projects/fastify/.evalignore:
--------------------------------------------------------------------------------
1 | tsconfig.json
--------------------------------------------------------------------------------
/projects/fastify/.gitignore:
--------------------------------------------------------------------------------
1 | test.sqlite
2 | .env
--------------------------------------------------------------------------------
/projects/fastify/src-init/readme.md:
--------------------------------------------------------------------------------
1 | # Fastify Shopping Mall
2 |
3 | This is a Fastify shopping mall project.
4 |
5 | Here is the libs used in this project:
6 |
7 | - "@fastify/autoload": "~6.3.0"
8 | - "@fastify/cookie": "~11.0.2"
9 | - "@fastify/view": "~11.0.0"
10 | - "fastify": "~5.3.0"
11 | - "fastify-plugin": "~5.0.1"
12 | - "@fastify/static": "~8.1.1"
13 | - "sqlite3": "^5.1.7"
14 | - "ejs": "~3.1.10"
15 | - "jose": "^5.9.6"
16 |
--------------------------------------------------------------------------------
/projects/fastify/src/readme.md:
--------------------------------------------------------------------------------
1 | # Fastify Shopping Mall
2 |
3 | This is a Fastify shopping mall project.
4 |
5 | Here is the libs used in this project:
6 |
7 | - "@fastify/autoload": "~6.3.0"
8 | - "@fastify/cookie": "~11.0.2"
9 | - "@fastify/view": "~11.0.0"
10 | - "fastify": "~5.3.0"
11 | - "fastify-plugin": "~5.0.1"
12 | - "@fastify/static": "~8.1.1"
13 | - "sqlite3": "^5.1.7"
14 | - "ejs": "~3.1.10"
15 | - "jose": "^5.9.6"
--------------------------------------------------------------------------------
/projects/fastify/src/views/404.ejs:
--------------------------------------------------------------------------------
1 | Oops! Looks like you have wandered off the beaten path.
2 | Go to Home
--------------------------------------------------------------------------------
/projects/fastify/src/views/not-found.ejs:
--------------------------------------------------------------------------------
1 |
2 |
Oops! Looks like you have wandered off the beaten path.
3 | Go Back to Home
4 |
--------------------------------------------------------------------------------
/projects/fastify/src/views/profile-not-found.ejs:
--------------------------------------------------------------------------------
1 |
2 |
User Not Found
3 |
The user profile you are looking for does not exist.
4 |
Back to Home
5 |
--------------------------------------------------------------------------------
/projects/flex/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/flex",
3 | "version": "0.0.1",
4 | "scripts": {
5 | "build": "",
6 | "test": "npx @web-bench/test-util"
7 | },
8 | "author": "luics",
9 | "eval": {
10 | "stable": true
11 | },
12 | "devDependencies": {
13 | "@playwright/test": "^1.49.1",
14 | "@types/node": "^22.7.9",
15 | "serve": "^14.2.4",
16 | "@web-bench/test-util": "workspace:*"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/projects/flex/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench Flex
7 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/projects/float/.gitignore:
--------------------------------------------------------------------------------
1 | src-*/
2 | !src-init
--------------------------------------------------------------------------------
/projects/float/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/float",
3 | "version": "0.0.1",
4 | "scripts": {
5 | "build": "",
6 | "test": "npx @web-bench/test-util"
7 | },
8 | "author": "luics",
9 | "eval": {
10 | "stable": true
11 | },
12 | "devDependencies": {
13 | "@playwright/test": "^1.49.1",
14 | "@types/node": "^22.7.9",
15 | "serve": "^14.2.4",
16 | "@web-bench/test-util": "workspace:*"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/projects/float/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | SWE101-Bench Float
7 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/projects/form/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/form",
3 | "version": "0.0.1",
4 | "eval": {
5 | "stable": true
6 | },
7 | "scripts": {
8 | "build": "",
9 | "test": "npx @web-bench/test-util",
10 | "test1": "npx playwright test"
11 | },
12 | "author": "luics",
13 | "devDependencies": {
14 | "@playwright/test": "^1.49.1",
15 | "@types/node": "^22.7.9",
16 | "serve": "^14.2.4",
17 | "@web-bench/test-util": "workspace:*"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/projects/form/src-init/index.css:
--------------------------------------------------------------------------------
1 | html {
2 | font-size: 10px;
3 | }
4 |
5 | body {
6 | font-size: 1.4rem;
7 | }
8 |
--------------------------------------------------------------------------------
/projects/form/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench Form
7 |
8 |
9 |
10 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/projects/form/src-init/index.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('DOMContentLoaded', () => {})
2 |
--------------------------------------------------------------------------------
/projects/form/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench Form
7 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/projects/grid/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/grid",
3 | "version": "0.0.1",
4 | "scripts": {
5 | "build": "",
6 | "test": "npx @web-bench/test-util"
7 | },
8 | "author": "luics",
9 | "eval": {
10 | "stable": true
11 | },
12 | "devDependencies": {
13 | "@playwright/test": "^1.49.1",
14 | "@types/node": "^22.7.9",
15 | "serve": "^14.2.4",
16 | "@web-bench/test-util": "workspace:*"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/projects/grid/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench Grid
7 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/projects/jotai/.evalignore:
--------------------------------------------------------------------------------
1 | index.html
--------------------------------------------------------------------------------
/projects/jotai/src-init/App.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | padding: 0;
4 | }
5 |
--------------------------------------------------------------------------------
/projects/jotai/src-init/App.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import './App.css'
3 |
4 | function App() {
5 | return Empty
6 | }
7 |
8 | export default App
9 |
--------------------------------------------------------------------------------
/projects/jotai/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blog
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/jotai/src-init/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom/client'
3 | import App from './App'
4 |
5 | const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement)
6 |
7 | root.render( )
8 |
--------------------------------------------------------------------------------
/projects/jotai/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blog
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/jotai/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": [
5 | "dom",
6 | "dom.iterable",
7 | "esnext"
8 | ],
9 | "allowJs": true,
10 | "skipLibCheck": true,
11 | "esModuleInterop": true,
12 | "allowSyntheticDefaultImports": true,
13 | "strict": true,
14 | "forceConsistentCasingInFileNames": true,
15 | "noFallthroughCasesInSwitch": true,
16 | "module": "esnext",
17 | "moduleResolution": "node",
18 | "resolveJsonModule": true,
19 | "isolatedModules": true,
20 | "noEmit": true,
21 | "jsx": "react-jsx"
22 | },
23 | "include": [
24 | "src"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/projects/jotai/typings.d.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | ///
16 |
--------------------------------------------------------------------------------
/projects/less/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/less",
3 | "version": "0.0.1",
4 | "eval": {
5 | "stable": true,
6 | "entry": "design.html"
7 | },
8 | "scripts": {
9 | "start": "vite src --config vite.config.js",
10 | "build": "VITE_CJS_IGNORE_WARNING=true vite build",
11 | "test": "npx @web-bench/test-util"
12 | },
13 | "author": "luics",
14 | "devDependencies": {
15 | "@playwright/test": "^1.49.1",
16 | "@types/node": "^22.7.9",
17 | "@web-bench/test-util": "workspace:*",
18 | "vite": "^6.2.2",
19 | "less": "~4.2.1"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/projects/less/src-init/common.less:
--------------------------------------------------------------------------------
1 | html {
2 | font-size: 10px;
3 | }
4 |
5 | body {
6 | font-size: 1.4rem;
7 | }
8 |
--------------------------------------------------------------------------------
/projects/less/src-init/design.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench Form
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/projects/less/src-init/design.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('DOMContentLoaded', () => {})
2 |
--------------------------------------------------------------------------------
/projects/less/src-init/preview.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench Survey Preview
7 |
8 |
9 |
10 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/projects/less/src-init/preview.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('DOMContentLoaded', () => {
2 | alert(location.href)
3 | })
4 |
--------------------------------------------------------------------------------
/projects/less/src/common/DataQuestion.less:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @import './config.less';
16 |
17 |
--------------------------------------------------------------------------------
/projects/less/src/common/MultiSelectionQuestion.less:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @import './config.less';
16 |
17 |
--------------------------------------------------------------------------------
/projects/less/src/common/OpenQuestion.less:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @import './config.less';
16 |
17 |
--------------------------------------------------------------------------------
/projects/less/src/common/SingleSelectionQuestion.less:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @import './config.less';
16 |
17 |
--------------------------------------------------------------------------------
/projects/less/src/common/SurveyDesign.less:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @import './SurveyForm.less';
16 |
--------------------------------------------------------------------------------
/projects/less/src/common/SurveyPreview.less:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @import './SurveyForm.less';
16 |
--------------------------------------------------------------------------------
/projects/less/src/design.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Survey Design | Web-Bench
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/projects/less/src/preview.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Survey Preview | Web-Bench
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/projects/lowdb/.evalignore:
--------------------------------------------------------------------------------
1 | next.config.ts
2 | tsconfig.json
--------------------------------------------------------------------------------
/projects/lowdb/.gitignore:
--------------------------------------------------------------------------------
1 | .next/
2 | next-env.d.ts
3 | .env
4 | test.sqlite
5 | test.sqlite-*
6 | generated/
7 | db.json
--------------------------------------------------------------------------------
/projects/lowdb/src-init/app/global.css:
--------------------------------------------------------------------------------
1 | * {
2 | margin: 0;
3 | padding: 0;
4 | }
5 |
6 | body {
7 | min-height: 100vh;
8 | display: flex;
9 | flex-direction: column;
10 | }
11 |
12 | .site-header {
13 | background-color: #f8f9fa;
14 | padding: 1rem;
15 | z-index: 1000;
16 | display: flex;
17 | justify-content: space-between;
18 | }
19 |
20 | main {
21 | flex: 1;
22 | padding: 1rem;
23 | margin: 1rem;
24 | }
25 |
26 | .site-footer {
27 | background-color: #f8f9fa;
28 | padding: 1rem;
29 | }
--------------------------------------------------------------------------------
/projects/lowdb/src-init/app/layout.tsx:
--------------------------------------------------------------------------------
1 | import Link from 'next/link'
2 | import './global.css'
3 |
4 | export const metadata = {
5 | title: 'Next.js',
6 | description: 'Generated by Next.js',
7 | }
8 |
9 | export default function RootLayout({ children }: { children: React.ReactNode }) {
10 | return (
11 |
12 |
13 |
14 |
15 | 🛍️ WebBench Shopping Mart
16 |
17 |
18 | {children}
19 |
20 | Copyright: Web Bench
21 |
22 |
23 |
24 | )
25 | }
26 |
--------------------------------------------------------------------------------
/projects/lowdb/src-init/app/not-found.tsx:
--------------------------------------------------------------------------------
1 | import Link from 'next/link'
2 |
3 | export default function NotFound() {
4 | return (
5 |
6 |
Oops! Looks like you have wandered off the beaten path.
7 |
8 | Go to Home
9 |
10 |
11 | )
12 | }
13 |
--------------------------------------------------------------------------------
/projects/lowdb/src-init/global.d.ts:
--------------------------------------------------------------------------------
1 | import { Low } from 'lowdb'
2 |
3 | declare global {
4 | interface User {
5 | username: string
6 | password: string
7 | role: 'admin' | 'user'
8 | coin: number
9 | }
10 |
11 | interface DatabaseData {
12 | users: User[]
13 | }
14 |
15 | var db: Low
16 | }
17 |
--------------------------------------------------------------------------------
/projects/lowdb/src-init/instrumentation.ts:
--------------------------------------------------------------------------------
1 | const defaultData: DatabaseData = {
2 | users: [
3 | {
4 | username: 'admin',
5 | password: '123456',
6 | role: 'admin',
7 | coin: 0,
8 | },
9 | {
10 | username: 'user',
11 | password: '123456',
12 | role: 'user',
13 | coin: 1000,
14 | },
15 | ],
16 | }
17 |
18 | export async function register() {
19 | if (process.env.NEXT_RUNTIME === 'nodejs') {
20 | const { JSONFilePreset } = await import('lowdb/node')
21 | global.db = await JSONFilePreset(
22 | process.env.DB_PATH!,
23 | defaultData
24 | )
25 | }
26 | }
--------------------------------------------------------------------------------
/projects/lowdb/src-init/next.config.ts:
--------------------------------------------------------------------------------
1 | import type { NextConfig } from 'next'
2 |
3 | const nextConfig: NextConfig = {
4 | experimental: {
5 | serverComponentsHmrCache: !process.env.EVAL,
6 | },
7 | images: {
8 | disableStaticImages: true,
9 | },
10 | typescript: {
11 | ignoreBuildErrors: true,
12 | },
13 | eslint: {
14 | ignoreDuringBuilds: true,
15 | },
16 | }
17 |
18 | export default nextConfig
19 |
--------------------------------------------------------------------------------
/projects/lowdb/src-init/readme.md:
--------------------------------------------------------------------------------
1 | # Next.js Shopping Mall
2 |
3 | This is a Next.js shopping mall project.
4 |
5 | Here is the libs used in this project:
6 |
7 | - react: ^18.3.1
8 | - react-dom: ^18.3.1
9 | - next: 15.2.4
10 | - jose: ^5.9.6
11 | - lowdb: ~7.0.1
12 | - uuid: ~11.1.0
13 |
--------------------------------------------------------------------------------
/projects/lowdb/src/readme.md:
--------------------------------------------------------------------------------
1 | # Next.js Shopping Mall
2 |
3 | This is a Next.js shopping mall project.
4 |
5 | Here is the libs used in this project:
6 |
7 | - react: ^18.3.1
8 | - react-dom: ^18.3.1
9 | - next: 15.2.4
10 | - jose: ^5.9.6
11 | - lowdb: ~7.0.1
12 | - uuid: ~11.1.0
13 |
--------------------------------------------------------------------------------
/projects/mobx/.evalignore:
--------------------------------------------------------------------------------
1 | index.html
--------------------------------------------------------------------------------
/projects/mobx/src-init/App.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | padding: 0;
4 | }
5 |
--------------------------------------------------------------------------------
/projects/mobx/src-init/App.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import './App.css'
3 |
4 | function App() {
5 | return Empty
6 | }
7 |
8 | export default App
9 |
--------------------------------------------------------------------------------
/projects/mobx/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blog
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/mobx/src-init/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom/client'
3 | import App from './App'
4 |
5 | const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement)
6 |
7 | root.render( )
8 |
--------------------------------------------------------------------------------
/projects/mobx/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blog
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/mobx/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": [
5 | "dom",
6 | "dom.iterable",
7 | "esnext"
8 | ],
9 | "allowJs": true,
10 | "skipLibCheck": true,
11 | "esModuleInterop": true,
12 | "allowSyntheticDefaultImports": true,
13 | "strict": true,
14 | "forceConsistentCasingInFileNames": true,
15 | "noFallthroughCasesInSwitch": true,
16 | "module": "esnext",
17 | "moduleResolution": "node",
18 | "resolveJsonModule": true,
19 | "isolatedModules": true,
20 | "noEmit": true,
21 | "jsx": "react-jsx"
22 | },
23 | "include": [
24 | "src"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/projects/mobx/typings.d.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | ///
16 |
--------------------------------------------------------------------------------
/projects/nextjs/.evalignore:
--------------------------------------------------------------------------------
1 | next.config.ts
2 | tsconfig.json
--------------------------------------------------------------------------------
/projects/nextjs/.gitignore:
--------------------------------------------------------------------------------
1 | .next/
2 | next-env.d.ts
3 | test.sqlite
4 | .env
--------------------------------------------------------------------------------
/projects/nextjs/src-init/next.config.ts:
--------------------------------------------------------------------------------
1 | import type { NextConfig } from 'next'
2 |
3 | const nextConfig: NextConfig = {
4 | experimental: {
5 | serverComponentsHmrCache: !process.env.EVAL,
6 | },
7 | images: {
8 | disableStaticImages: true,
9 | },
10 | typescript: {
11 | ignoreBuildErrors: true,
12 | },
13 | eslint: {
14 | ignoreDuringBuilds: true,
15 | },
16 | }
17 |
18 | export default nextConfig
19 |
--------------------------------------------------------------------------------
/projects/nextjs/src-init/readme.md:
--------------------------------------------------------------------------------
1 | # Next.js Shopping Mall
2 | This is a Next.js shopping mall project.
3 |
4 | Here is the libs used in this project:
5 | - react: ^18.3.1
6 | - react-dom: ^18.3.1
7 | - next: 15.2.4
8 | - sqlite3: ^5.1.7
9 | - jose: ^5.9.6
--------------------------------------------------------------------------------
/projects/nextjs/typings.d.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | ///
16 |
--------------------------------------------------------------------------------
/projects/nosql/.evalignore:
--------------------------------------------------------------------------------
1 | next.config.ts
2 | tsconfig.json
3 | instrumentation.ts
--------------------------------------------------------------------------------
/projects/nosql/.gitignore:
--------------------------------------------------------------------------------
1 | .next/
2 | next-env.d.ts
3 | .env
4 | .mongo
--------------------------------------------------------------------------------
/projects/nosql/src-init/app/global.css:
--------------------------------------------------------------------------------
1 | * {
2 | margin: 0;
3 | padding: 0;
4 | }
5 |
6 | body {
7 | min-height: 100vh;
8 | display: flex;
9 | flex-direction: column;
10 | }
11 |
12 | .site-header {
13 | background-color: #f8f9fa;
14 | padding: 1rem;
15 | z-index: 1000;
16 | display: flex;
17 | justify-content: space-between;
18 | }
19 |
20 | main {
21 | flex: 1;
22 | padding: 1rem;
23 | margin: 1rem;
24 | }
25 |
26 | .site-footer {
27 | background-color: #f8f9fa;
28 | padding: 1rem;
29 | }
--------------------------------------------------------------------------------
/projects/nosql/src-init/app/layout.tsx:
--------------------------------------------------------------------------------
1 | import Link from 'next/link'
2 | import './global.css'
3 |
4 | export const metadata = {
5 | title: 'Next.js',
6 | description: 'Generated by Next.js',
7 | }
8 |
9 | export default function RootLayout({ children }: { children: React.ReactNode }) {
10 | return (
11 |
12 |
13 |
14 |
15 | 🛍️ WebBench Shopping Mart
16 |
17 |
18 | {children}
19 |
20 | Copyright: Web Bench
21 |
22 |
23 |
24 | )
25 | }
26 |
--------------------------------------------------------------------------------
/projects/nosql/src-init/app/not-found.tsx:
--------------------------------------------------------------------------------
1 | import Link from 'next/link'
2 |
3 | export default function NotFound() {
4 | return (
5 |
6 |
Oops! Looks like you have wandered off the beaten path.
7 |
8 | Go to Home
9 |
10 |
11 | )
12 | }
13 |
--------------------------------------------------------------------------------
/projects/nosql/src-init/instrumentation.node.ts:
--------------------------------------------------------------------------------
1 | import mongoose from 'mongoose'
2 | import { initUsers } from './model/user'
3 |
4 | export async function register() {
5 | // 1. Connect to MongoDB
6 | await mongoose.connect(process.env.MONGO_URI!)
7 |
8 | // 2. init two users
9 | await initUsers()
10 | }
11 |
--------------------------------------------------------------------------------
/projects/nosql/src-init/instrumentation.ts:
--------------------------------------------------------------------------------
1 | export async function register() {
2 | if (process.env.NEXT_RUNTIME === 'nodejs') {
3 | const { register } = await import('./instrumentation.node')
4 | await register()
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/projects/nosql/src-init/next.config.ts:
--------------------------------------------------------------------------------
1 | import type { NextConfig } from 'next'
2 |
3 | const nextConfig: NextConfig = {
4 | experimental: {
5 | serverComponentsHmrCache: !process.env.EVAL,
6 | },
7 | images: {
8 | disableStaticImages: true,
9 | },
10 | }
11 |
12 | export default nextConfig
13 |
--------------------------------------------------------------------------------
/projects/nosql/src-init/readme.md:
--------------------------------------------------------------------------------
1 | # Next.js Shopping Mall
2 |
3 | This is a Next.js shopping mall project.
4 |
5 | Here is the libs used in this project:
6 |
7 | - react: ^18.3.1
8 | - react-dom: ^18.3.1
9 | - next: 15.2.4
10 | - mongoose: ^8.10.1
11 | - jose: ^5.9.6
12 |
--------------------------------------------------------------------------------
/projects/nosql/src/readme.md:
--------------------------------------------------------------------------------
1 | # Next.js Shopping Mall
2 |
3 | This is a Next.js shopping mall project.
4 |
5 | Here is the libs used in this project:
6 |
7 | - react: ^18.3.1
8 | - react-dom: ^18.3.1
9 | - next: 15.2.4
10 | - mongoose: ^8.10.1
11 | - jose: ^5.9.6
12 |
--------------------------------------------------------------------------------
/projects/nuxt/.evalignore:
--------------------------------------------------------------------------------
1 | nuxt.config.ts
2 | tsconfig.json
3 | .nuxt
4 | node_modules
--------------------------------------------------------------------------------
/projects/nuxt/.gitignore:
--------------------------------------------------------------------------------
1 | # Nuxt dev/build outputs
2 | .output
3 | .data
4 | .nuxt
5 | .nitro
6 | .cache
7 | dist
8 |
9 | # Node dependencies
10 | node_modules
11 |
12 | # Logs
13 | logs
14 | *.log
15 |
16 | # Misc
17 | .DS_Store
18 |
19 | # Local env files
20 | .env
21 | .env.*
22 | !.env.example
23 |
24 | test.sqlite
25 |
26 |
--------------------------------------------------------------------------------
/projects/nuxt/src-init/nuxt.config.ts:
--------------------------------------------------------------------------------
1 | // https://nuxt.com/docs/api/configuration/nuxt-config
2 | import { defineNuxtConfig } from 'nuxt/config'
3 |
4 | export default defineNuxtConfig({
5 | runtimeConfig: {
6 | DB_HOST: process.env.DB_HOST,
7 | },
8 | })
--------------------------------------------------------------------------------
/projects/nuxt/src-init/readme.md:
--------------------------------------------------------------------------------
1 |
2 | # Nuxt Shopping Mall
3 |
4 | This is a Nuxt shopping mall project.
5 |
6 | Here is the libs used in this project:
7 |
8 | - vue: ^3.4.15
9 | - nuxt: ^3.10.1
10 | - sqlite3: ^5.1.7
11 | - jose: ^5.9.6
12 |
--------------------------------------------------------------------------------
/projects/nuxt/src-init/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "baseUrl": ".",
4 | "paths": {
5 | "@/*": ["*"],
6 | "~/*": ["./*"]
7 | },
8 | "target": "ES2017",
9 | "lib": ["dom", "dom.iterable", "esnext"],
10 | "allowJs": true,
11 | "skipLibCheck": true,
12 | "strict": false,
13 | "noEmit": true,
14 | "incremental": true,
15 | "module": "esnext",
16 | "esModuleInterop": true,
17 | "moduleResolution": "node",
18 | "resolveJsonModule": true,
19 | "isolatedModules": true,
20 | "strictNullChecks": true,
21 | "types": ["nuxt", "node"]
22 | },
23 | "include": ["**/*.ts", "**/*.vue", ".nuxt/**/*.ts", "nuxt.config.ts"],
24 | "exclude": ["node_modules"]
25 | }
26 |
--------------------------------------------------------------------------------
/projects/nuxt/src/readme.md:
--------------------------------------------------------------------------------
1 | # Nuxt Shopping Mall
2 |
3 | This is a Nuxt shopping mall project.
4 |
5 | Here is the libs used in this project:
6 |
7 | - vue: ^3.4.15
8 | - nuxt: ^3.10.1
9 | - sqlite3: ^5.1.7
10 | - jose: ^5.9.6
11 |
--------------------------------------------------------------------------------
/projects/nuxt/src/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "baseUrl": ".",
4 | "paths": {
5 | "@/*": ["*"],
6 | "~/*": ["./*"]
7 | },
8 | "target": "ES2017",
9 | "lib": ["dom", "dom.iterable", "esnext"],
10 | "allowJs": true,
11 | "skipLibCheck": true,
12 | "strict": false,
13 | "noEmit": true,
14 | "incremental": true,
15 | "module": "esnext",
16 | "esModuleInterop": true,
17 | "moduleResolution": "node",
18 | "resolveJsonModule": true,
19 | "isolatedModules": true,
20 | "strictNullChecks": true,
21 | "types": ["nuxt", "node"]
22 | },
23 | "include": ["**/*.ts", "**/*.vue", ".nuxt/**/*.ts", "nuxt.config.ts"],
24 | "exclude": ["node_modules"]
25 | }
26 |
--------------------------------------------------------------------------------
/projects/nuxt/typings.d.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | ///
16 |
--------------------------------------------------------------------------------
/projects/parcel/.evalignore:
--------------------------------------------------------------------------------
1 | assets/
2 | node_modules/
3 | sourcemaps/
4 | .parcel-cache/
5 | dist/
6 | dist-serve/
--------------------------------------------------------------------------------
/projects/parcel/.gitignore:
--------------------------------------------------------------------------------
1 | package-lock.json
2 | sourcemaps
3 | .parcel-cache
4 | dist*
5 | ignore-src
--------------------------------------------------------------------------------
/projects/parcel/assets/TablerAntennaBars5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/projects/parcel/assets/bird.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/parcel/assets/bird.png
--------------------------------------------------------------------------------
/projects/parcel/src-init/.parcelrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "@parcel/config-default"
3 | }
--------------------------------------------------------------------------------
/projects/parcel/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Project
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/projects/parcel/src-init/mock.json:
--------------------------------------------------------------------------------
1 | {
2 | "get /mock-api/ping": {
3 | "code": 0,
4 | "data": "mock"
5 | },
6 | "post /mock-api/add-project": {
7 | "success": true
8 | }
9 | }
--------------------------------------------------------------------------------
/projects/parcel/src-init/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "project",
3 | "description": "project",
4 | "scripts": {
5 | "dev": "",
6 | "build": ""
7 | },
8 | "dependencies": {
9 | "vue": "^3.3.4",
10 | "react": "^18.2.0",
11 | "react-dom": "^18.2.0"
12 | },
13 | "devDependencies": {
14 | "parcel": "^2.9.3",
15 | "@parcel/config-default": "^2.13.3"
16 | }
17 | }
--------------------------------------------------------------------------------
/projects/parcel/src-init/src/alias.js:
--------------------------------------------------------------------------------
1 | const alias = 'hello alias'
2 | export default alias
--------------------------------------------------------------------------------
/projects/parcel/src-init/src/component.jsx:
--------------------------------------------------------------------------------
1 | function ReactComponent() {
2 | return <>hello react>
3 | }
4 |
5 | export default ReactComponent
--------------------------------------------------------------------------------
/projects/parcel/src-init/src/component.vue:
--------------------------------------------------------------------------------
1 |
2 | hello vue
3 |
4 |
5 |
--------------------------------------------------------------------------------
/projects/parcel/src-init/src/files/bar.ts:
--------------------------------------------------------------------------------
1 | export default 'files/bar'
--------------------------------------------------------------------------------
/projects/parcel/src-init/src/files/foo.ts:
--------------------------------------------------------------------------------
1 | export default 'files/foo'
--------------------------------------------------------------------------------
/projects/parcel/src-init/src/hello.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: hello frontmatter
3 | tags:
4 | - foo
5 | - bar
6 | ---
7 |
8 | # hello markdown
9 |
10 | 
--------------------------------------------------------------------------------
/projects/parcel/src-init/src/hello.zh.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: hello frontmatter
3 | tags:
4 | - foo
5 | - bar
6 | ---
7 |
8 | # 你好 markdown
9 |
10 | 
--------------------------------------------------------------------------------
/projects/parcel/src-init/src/images/TablerAntennaBars5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/projects/parcel/src-init/src/images/bird.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/parcel/src-init/src/images/bird.png
--------------------------------------------------------------------------------
/projects/parcel/src-init/src/index.css:
--------------------------------------------------------------------------------
1 | .css {
2 | color: rgb(0,0,255);
3 | }
--------------------------------------------------------------------------------
/projects/parcel/src-init/src/index.less:
--------------------------------------------------------------------------------
1 | .less {
2 | color: rgb(0, 255, 0);
3 | }
--------------------------------------------------------------------------------
/projects/parcel/src-init/src/index.module.less:
--------------------------------------------------------------------------------
1 | .lessModules {
2 | color: rgb(255, 0, 0);
3 | }
--------------------------------------------------------------------------------
/projects/parcel/src-init/src/index.ts:
--------------------------------------------------------------------------------
1 | export default function (): string {
2 | return 'hello ts'
3 | }
--------------------------------------------------------------------------------
/projects/parcel/src-init/src/version.js:
--------------------------------------------------------------------------------
1 | const versionElement = document.createElement('div')
2 | versionElement.textContent = `hello ${process.env.__VERSION__}`
3 | document.body.appendChild(versionElement)
--------------------------------------------------------------------------------
/projects/parcel/src/.env:
--------------------------------------------------------------------------------
1 | __VERSION__="v1.0.0"
--------------------------------------------------------------------------------
/projects/parcel/src/assets/TablerAntennaBars5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/projects/parcel/src/assets/bird.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/parcel/src/assets/bird.png
--------------------------------------------------------------------------------
/projects/parcel/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Project
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/projects/parcel/src/mock.json:
--------------------------------------------------------------------------------
1 | {
2 | "get /mock-api/ping": {
3 | "code": 0,
4 | "data": "mock"
5 | },
6 | "post /mock-api/add-project": {
7 | "success": true
8 | }
9 | }
--------------------------------------------------------------------------------
/projects/parcel/src/src/alias.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | const alias = 'hello alias'
16 | export default alias
--------------------------------------------------------------------------------
/projects/parcel/src/src/files/bar.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export default 'files/bar'
--------------------------------------------------------------------------------
/projects/parcel/src/src/files/foo.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export default 'files/foo'
--------------------------------------------------------------------------------
/projects/parcel/src/src/hello.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: hello frontmatter
3 | tags:
4 | - foo
5 | - bar
6 | ---
7 |
8 | # hello markdown
9 |
10 | 
--------------------------------------------------------------------------------
/projects/parcel/src/src/hello.zh.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: hello frontmatter
3 | tags:
4 | - foo
5 | - bar
6 | ---
7 |
8 | # 你好 markdown
9 |
10 | 
--------------------------------------------------------------------------------
/projects/parcel/src/src/images/TablerAntennaBars5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/projects/parcel/src/src/images/bird.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/parcel/src/src/images/bird.png
--------------------------------------------------------------------------------
/projects/parcel/src/src/index.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | **/
16 |
17 | .css {
18 | color: rgb(0,0,255);
19 | }
--------------------------------------------------------------------------------
/projects/parcel/src/src/index.less:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | .less {
16 | color: rgb(0, 255, 0);
17 | }
--------------------------------------------------------------------------------
/projects/parcel/src/src/index.module.less:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | .lessModules {
16 | color: rgb(255, 0, 0);
17 | }
--------------------------------------------------------------------------------
/projects/parcel/src/src/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export default function (): string {
16 | return 'hello ts'
17 | }
--------------------------------------------------------------------------------
/projects/prisma/.evalignore:
--------------------------------------------------------------------------------
1 | next.config.ts
2 | tsconfig.json
3 | instrumentation.ts
--------------------------------------------------------------------------------
/projects/prisma/.gitignore:
--------------------------------------------------------------------------------
1 | .next/
2 | next-env.d.ts
3 | .env
4 | test.sqlite
5 | test.sqlite-*
6 | generated/
--------------------------------------------------------------------------------
/projects/prisma/src-init/app/global.css:
--------------------------------------------------------------------------------
1 | * {
2 | margin: 0;
3 | padding: 0;
4 | }
5 |
6 | body {
7 | min-height: 100vh;
8 | display: flex;
9 | flex-direction: column;
10 | }
11 |
12 | .site-header {
13 | background-color: #f8f9fa;
14 | padding: 1rem;
15 | z-index: 1000;
16 | display: flex;
17 | justify-content: space-between;
18 | }
19 |
20 | main {
21 | flex: 1;
22 | padding: 1rem;
23 | margin: 1rem;
24 | }
25 |
26 | .site-footer {
27 | background-color: #f8f9fa;
28 | padding: 1rem;
29 | }
--------------------------------------------------------------------------------
/projects/prisma/src-init/app/layout.tsx:
--------------------------------------------------------------------------------
1 | import Link from 'next/link'
2 | import './global.css'
3 |
4 | export const metadata = {
5 | title: 'Next.js',
6 | description: 'Generated by Next.js',
7 | }
8 |
9 | export default function RootLayout({ children }: { children: React.ReactNode }) {
10 | return (
11 |
12 |
13 |
14 |
15 | 🛍️ WebBench Shopping Mart
16 |
17 |
18 | {children}
19 |
20 | Copyright: Web Bench
21 |
22 |
23 |
24 | )
25 | }
26 |
--------------------------------------------------------------------------------
/projects/prisma/src-init/app/not-found.tsx:
--------------------------------------------------------------------------------
1 | import Link from 'next/link'
2 |
3 | export default function NotFound() {
4 | return (
5 |
6 |
Oops! Looks like you have wandered off the beaten path.
7 |
8 | Go to Home
9 |
10 |
11 | )
12 | }
13 |
--------------------------------------------------------------------------------
/projects/prisma/src-init/libs/db.ts:
--------------------------------------------------------------------------------
1 | import { PrismaClient } from "@/generated";
2 |
3 | export const prisma = new PrismaClient()
4 |
--------------------------------------------------------------------------------
/projects/prisma/src-init/next.config.ts:
--------------------------------------------------------------------------------
1 | import type { NextConfig } from 'next'
2 |
3 | const nextConfig: NextConfig = {
4 | experimental: {
5 | serverComponentsHmrCache: !process.env.EVAL,
6 | },
7 | images: {
8 | disableStaticImages: true,
9 | },
10 | typescript: {
11 | ignoreBuildErrors: true,
12 | },
13 | eslint: {
14 | ignoreDuringBuilds: true,
15 | },
16 | }
17 |
18 | export default nextConfig
19 |
--------------------------------------------------------------------------------
/projects/prisma/src-init/prisma/schema.prisma:
--------------------------------------------------------------------------------
1 | datasource db {
2 | provider = "sqlite"
3 | url = "file:../test.sqlite"
4 | }
5 |
6 | generator client {
7 | provider = "prisma-client-js"
8 | output = "../generated"
9 | }
10 |
11 | model User {
12 | id Int @id @default(autoincrement())
13 | username String @unique
14 | password String
15 | role String
16 | coin Int
17 | }
18 |
--------------------------------------------------------------------------------
/projects/prisma/src-init/readme.md:
--------------------------------------------------------------------------------
1 | # Next.js Shopping Mall
2 |
3 | This is a Next.js shopping mall project.
4 |
5 | Here is the libs used in this project:
6 |
7 | - react: ^18.3.1
8 | - react-dom: ^18.3.1
9 | - next: 15.2.4
10 | - jose: ^5.9.6
11 |
--------------------------------------------------------------------------------
/projects/prisma/src/readme.md:
--------------------------------------------------------------------------------
1 | # Next.js Shopping Mall
2 |
3 | This is a Next.js shopping mall project.
4 |
5 | Here is the libs used in this project:
6 |
7 | - react: ^18.3.1
8 | - react-dom: ^18.3.1
9 | - next: 15.2.4
10 | - jose: ^5.9.6
--------------------------------------------------------------------------------
/projects/project-template/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/project-template",
3 | "version": "0.0.1",
4 | "scripts": {
5 | "start": "vite --config vite.config.js",
6 | "build": "VITE_CJS_IGNORE_WARNING=true vite build",
7 | "test": "npx @web-bench/test-util"
8 | },
9 | "author": "luics",
10 | "devDependencies": {
11 | "@playwright/test": "^1.49.1",
12 | "@types/node": "^22.7.9",
13 | "@web-bench/test-util": "workspace:*",
14 | "vite": "^6.2.2"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/projects/project-template/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench Project
7 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/projects/project-template/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench Project
7 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/projects/project-template/tasks.jsonl:
--------------------------------------------------------------------------------
1 | {"id":"init","date":"2025-05-12","level":"easy","description":"generate html with a body(margin 0) tag in which there is a div(class 'root'). NO JS."}
--------------------------------------------------------------------------------
/projects/react-no-ts/.evalignore:
--------------------------------------------------------------------------------
1 | index.html
--------------------------------------------------------------------------------
/projects/react-no-ts/src-init/App.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/react-no-ts/src-init/App.css
--------------------------------------------------------------------------------
/projects/react-no-ts/src-init/App.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import './App.css'
3 |
4 | function App() {
5 | return Empty
6 | }
7 |
8 | export default App
9 |
--------------------------------------------------------------------------------
/projects/react-no-ts/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blog
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/react-no-ts/src-init/index.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom/client'
3 | import App from './App'
4 |
5 | const root = ReactDOM.createRoot(document.getElementById('root'))
6 |
7 | root.render( )
8 |
--------------------------------------------------------------------------------
/projects/react-no-ts/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blog
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/react/.evalignore:
--------------------------------------------------------------------------------
1 | index.html
--------------------------------------------------------------------------------
/projects/react/src-init/App.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/react/src-init/App.css
--------------------------------------------------------------------------------
/projects/react/src-init/App.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import './App.css'
3 |
4 | function App() {
5 | return Empty
6 | }
7 |
8 | export default App
9 |
--------------------------------------------------------------------------------
/projects/react/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blog
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/react/src-init/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom/client'
3 | import App from './App'
4 |
5 | const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement)
6 |
7 | root.render( )
8 |
--------------------------------------------------------------------------------
/projects/react/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blog
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/react/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": [
5 | "dom",
6 | "dom.iterable",
7 | "esnext"
8 | ],
9 | "allowJs": true,
10 | "skipLibCheck": true,
11 | "esModuleInterop": true,
12 | "allowSyntheticDefaultImports": true,
13 | "strict": true,
14 | "forceConsistentCasingInFileNames": true,
15 | "noFallthroughCasesInSwitch": true,
16 | "module": "esnext",
17 | "moduleResolution": "node",
18 | "resolveJsonModule": true,
19 | "isolatedModules": true,
20 | "noEmit": true,
21 | "jsx": "react-jsx"
22 | },
23 | "include": [
24 | "src"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/projects/react/typings.d.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | ///
16 |
--------------------------------------------------------------------------------
/projects/redux/.evalignore:
--------------------------------------------------------------------------------
1 | index.html
--------------------------------------------------------------------------------
/projects/redux/src-init/App.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | padding: 0;
4 | }
5 |
--------------------------------------------------------------------------------
/projects/redux/src-init/App.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import './App.css'
3 |
4 | function App() {
5 | return Empty
6 | }
7 |
8 | export default App
9 |
--------------------------------------------------------------------------------
/projects/redux/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blog
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/redux/src-init/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom/client'
3 | import { Provider } from 'react-redux'
4 | import App from './App'
5 | import { store } from './store'
6 |
7 | const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement)
8 |
9 | root.render(
10 |
11 |
12 |
13 | )
14 |
--------------------------------------------------------------------------------
/projects/redux/src-init/store.tsx:
--------------------------------------------------------------------------------
1 | import { configureStore } from '@reduxjs/toolkit'
2 |
3 | export type RootState = ReturnType
4 |
5 | export const store = configureStore({
6 | reducer: {},
7 | })
8 |
--------------------------------------------------------------------------------
/projects/redux/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blog
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/redux/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": [
5 | "dom",
6 | "dom.iterable",
7 | "esnext"
8 | ],
9 | "allowJs": true,
10 | "skipLibCheck": true,
11 | "esModuleInterop": true,
12 | "allowSyntheticDefaultImports": true,
13 | "strict": true,
14 | "forceConsistentCasingInFileNames": true,
15 | "noFallthroughCasesInSwitch": true,
16 | "module": "esnext",
17 | "moduleResolution": "node",
18 | "resolveJsonModule": true,
19 | "isolatedModules": true,
20 | "noEmit": true,
21 | "jsx": "react-jsx"
22 | },
23 | "include": [
24 | "src"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/projects/redux/typings.d.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | ///
16 |
--------------------------------------------------------------------------------
/projects/sass/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/sass",
3 | "version": "0.0.1",
4 | "eval": {
5 | "stable": true,
6 | "entry": "design.html"
7 | },
8 | "scripts": {
9 | "start": "vite src --config vite.config.js",
10 | "build": "VITE_CJS_IGNORE_WARNING=true vite build",
11 | "test": "npx @web-bench/test-util"
12 | },
13 | "author": "luics",
14 | "devDependencies": {
15 | "@playwright/test": "^1.49.1",
16 | "@types/node": "^22.7.9",
17 | "@web-bench/test-util": "workspace:*",
18 | "vite": "^6.2.2",
19 | "sass-embedded": "~1.83.1"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/projects/sass/readme.md:
--------------------------------------------------------------------------------
1 | # web-bench-sass
2 |
3 | ## [Evaluate](../readme.md)
4 |
5 | ## Sass
6 |
7 | https://sass-lang.com
8 |
9 | > Sass is the most mature, stable, and powerful professional grade **CSS** extension language in the world.
10 |
11 | ## Project Design
12 |
13 | Basic Project Design see [survey](../survey/readme.md). This project use SASS syntax to rewrite all the styles.
14 |
15 | ## Feature Coverage
16 |
17 | | SASS Syntax | Used |
18 | | ------------ | ---- |
19 | | Variables | ✅ |
20 | | --Map | ✅ |
21 | | --List | - |
22 | | Mixins | ✅ |
23 | | Nesting | ✅ |
24 | | Operations | ✅ |
25 | | Functions | ✅ |
26 | | Inheritance | - |
27 | | Comments | ✅ |
28 | | Modules | ✅ |
29 |
--------------------------------------------------------------------------------
/projects/sass/src-init/common.scss:
--------------------------------------------------------------------------------
1 | html {
2 | font-size: 10px;
3 | }
4 |
5 | body {
6 | font-size: 1.4rem;
7 | }
8 |
--------------------------------------------------------------------------------
/projects/sass/src-init/design.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench Form
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/projects/sass/src-init/design.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('DOMContentLoaded', () => {})
2 |
--------------------------------------------------------------------------------
/projects/sass/src-init/preview.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench Survey Preview
7 |
8 |
9 |
10 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/projects/sass/src-init/preview.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('DOMContentLoaded', () => {
2 | alert(location.href)
3 | })
4 |
--------------------------------------------------------------------------------
/projects/sass/src/common/DataQuestion.scss:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @use 'config';
16 | @use 'sass:map';
17 |
18 |
--------------------------------------------------------------------------------
/projects/sass/src/common/MultiSelectionQuestion.scss:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @use 'config';
16 | @use 'sass:map';
17 |
18 |
--------------------------------------------------------------------------------
/projects/sass/src/common/OpenQuestion.scss:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @use 'config';
16 | @use 'sass:map';
17 |
18 |
--------------------------------------------------------------------------------
/projects/sass/src/common/SingleSelectionQuestion.scss:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @use 'config';
16 | @use 'sass:map';
17 |
18 |
--------------------------------------------------------------------------------
/projects/sass/src/common/SurveyDesign.scss:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @use 'SurveyForm';
16 |
--------------------------------------------------------------------------------
/projects/sass/src/common/SurveyPreview.scss:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @use 'SurveyForm';
16 |
--------------------------------------------------------------------------------
/projects/sass/src/design.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Survey Design | Web-Bench
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/projects/sass/src/preview.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Survey Preview | Web-Bench
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/projects/selector/.gitignore:
--------------------------------------------------------------------------------
1 | src-[0-9]*/
2 | src-all
--------------------------------------------------------------------------------
/projects/selector/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/selector",
3 | "version": "0.0.1",
4 | "scripts": {
5 | "build": "",
6 | "test": "npx @web-bench/test-util"
7 | },
8 | "author": "luics",
9 | "eval": {
10 | "stable": true
11 | },
12 | "devDependencies": {
13 | "@playwright/test": "^1.49.1",
14 | "@types/node": "^22.7.9",
15 | "serve": "^14.2.4",
16 | "@web-bench/test-util": "workspace:*"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/projects/sequelize/.evalignore:
--------------------------------------------------------------------------------
1 | next.config.ts
2 | tsconfig.json
3 | instrumentation.ts
--------------------------------------------------------------------------------
/projects/sequelize/.gitignore:
--------------------------------------------------------------------------------
1 | .next/
2 | next-env.d.ts
3 | .env
4 | test.sqlite
5 | test.sqlite-*
--------------------------------------------------------------------------------
/projects/sequelize/src-init/app/global.css:
--------------------------------------------------------------------------------
1 | * {
2 | margin: 0;
3 | padding: 0;
4 | }
5 |
6 | body {
7 | min-height: 100vh;
8 | display: flex;
9 | flex-direction: column;
10 | }
11 |
12 | .site-header {
13 | background-color: #f8f9fa;
14 | padding: 1rem;
15 | z-index: 1000;
16 | display: flex;
17 | justify-content: space-between;
18 | }
19 |
20 | main {
21 | flex: 1;
22 | padding: 1rem;
23 | margin: 1rem;
24 | }
25 |
26 | .site-footer {
27 | background-color: #f8f9fa;
28 | padding: 1rem;
29 | }
--------------------------------------------------------------------------------
/projects/sequelize/src-init/app/layout.tsx:
--------------------------------------------------------------------------------
1 | import Link from 'next/link'
2 | import './global.css'
3 |
4 | export const metadata = {
5 | title: 'Next.js',
6 | description: 'Generated by Next.js',
7 | }
8 |
9 | export default function RootLayout({ children }: { children: React.ReactNode }) {
10 | return (
11 |
12 |
13 |
14 |
15 | 🛍️ WebBench Shopping Mart
16 |
17 |
18 | {children}
19 |
20 | Copyright: Web Bench
21 |
22 |
23 |
24 | )
25 | }
26 |
--------------------------------------------------------------------------------
/projects/sequelize/src-init/app/not-found.tsx:
--------------------------------------------------------------------------------
1 | import Link from 'next/link'
2 |
3 | export default function NotFound() {
4 | return (
5 |
6 |
Oops! Looks like you have wandered off the beaten path.
7 |
8 | Go to Home
9 |
10 |
11 | )
12 | }
13 |
--------------------------------------------------------------------------------
/projects/sequelize/src-init/instrumentation.node.ts:
--------------------------------------------------------------------------------
1 | import '@/model'
2 | import { sequelize } from '@/libs/db'
3 | import { initUsers } from '@/model/user'
4 |
5 | export async function register() {
6 | await sequelize.sync()
7 | await initUsers()
8 | }
9 |
--------------------------------------------------------------------------------
/projects/sequelize/src-init/instrumentation.ts:
--------------------------------------------------------------------------------
1 | export async function register() {
2 | if (process.env.NEXT_RUNTIME === 'nodejs') {
3 | const { register } = await import('./instrumentation.node')
4 | await register()
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/projects/sequelize/src-init/libs/db.ts:
--------------------------------------------------------------------------------
1 | import { Sequelize, Transaction } from 'sequelize'
2 |
3 | export const sequelize = new Sequelize({
4 | dialect: 'sqlite',
5 | storage: process.env.DB_HOST,
6 | transactionType: Transaction.TYPES.IMMEDIATE,
7 | })
8 |
--------------------------------------------------------------------------------
/projects/sequelize/src-init/model/index.ts:
--------------------------------------------------------------------------------
1 | export { User } from './user'
2 |
--------------------------------------------------------------------------------
/projects/sequelize/src-init/next.config.ts:
--------------------------------------------------------------------------------
1 | import type { NextConfig } from 'next'
2 |
3 | const nextConfig: NextConfig = {
4 | experimental: {
5 | serverComponentsHmrCache: !process.env.EVAL,
6 | },
7 | serverExternalPackages: ['sequelize'],
8 | images: {
9 | disableStaticImages: true,
10 | },
11 | typescript: {
12 | ignoreBuildErrors: true,
13 | },
14 | eslint: {
15 | ignoreDuringBuilds: true,
16 | },
17 | }
18 |
19 | export default nextConfig
20 |
--------------------------------------------------------------------------------
/projects/sequelize/src-init/readme.md:
--------------------------------------------------------------------------------
1 | # Next.js Shopping Mall
2 |
3 | This is a Next.js shopping mall project.
4 |
5 | Here is the libs used in this project:
6 |
7 | - react: ^18.3.1
8 | - react-dom: ^18.3.1
9 | - next: 15.2.4
10 | - sqlite3: ^5.1.7
11 | - sequelize: ^6.37.5
12 | - jose: ^5.9.6
13 |
--------------------------------------------------------------------------------
/projects/sequelize/src/readme.md:
--------------------------------------------------------------------------------
1 | # Next.js Shopping Mall
2 |
3 | This is a Next.js shopping mall project.
4 |
5 | Here is the libs used in this project:
6 |
7 | - react: ^18.3.1
8 | - react-dom: ^18.3.1
9 | - next: 15.2.4
10 | - sqlite3: ^5.1.7
11 | - sequelize: ^6.37.5
12 | - jose: ^5.9.6
13 |
--------------------------------------------------------------------------------
/projects/styled-components/.gitignore:
--------------------------------------------------------------------------------
1 | eval/
2 | dist/
3 | .rush
--------------------------------------------------------------------------------
/projects/styled-components/readme.md:
--------------------------------------------------------------------------------
1 | # styled-components
2 |
3 | ## Feature Coverage
4 |
5 | | API | Status |
6 | | :---------------- | :----: |
7 | | styled | ✅ |
8 | | css | ✅ |
9 | | createGlobalStyle | ✅ |
10 | | keyframes | ✅ |
11 | | ThemeProvider | ✅ |
12 | | isStyledComponent | ❌ |
13 | | ServerStyleSheet | ❌ |
14 | | StyleSheetManager | ❌ |
15 | | useTheme | ✅ |
16 | | shouldForwardProp | ❌ |
17 | | attrs | ✅ |
18 | | ThemeConsumer | ✅ |
19 | | ThemeContext | ✅ |
--------------------------------------------------------------------------------
/projects/styled-components/src-init/App.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | function App() {
4 | return Empty
5 | }
6 |
7 | export default App
8 |
--------------------------------------------------------------------------------
/projects/styled-components/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blog
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/styled-components/src-init/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom/client'
3 | import App from './App'
4 |
5 | const root = ReactDOM.createRoot(document.getElementById('root')!)
6 |
7 | root.render(
8 |
9 |
10 |
11 | )
12 |
--------------------------------------------------------------------------------
/projects/styled-components/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blog
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/projects/styled-components/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": [
5 | "dom",
6 | "dom.iterable",
7 | "esnext"
8 | ],
9 | "allowJs": true,
10 | "skipLibCheck": true,
11 | "esModuleInterop": true,
12 | "allowSyntheticDefaultImports": true,
13 | "strict": true,
14 | "forceConsistentCasingInFileNames": true,
15 | "noFallthroughCasesInSwitch": true,
16 | "module": "esnext",
17 | "moduleResolution": "node",
18 | "resolveJsonModule": true,
19 | "isolatedModules": true,
20 | "noEmit": true,
21 | "jsx": "react-jsx"
22 | },
23 | "include": [
24 | "src"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/projects/stylus/.gitignore:
--------------------------------------------------------------------------------
1 | src-[0-9]*/
2 | src-all
--------------------------------------------------------------------------------
/projects/stylus/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/stylus",
3 | "version": "0.0.1",
4 | "eval": {
5 | "stable": true,
6 | "entry": "design.html"
7 | },
8 | "scripts": {
9 | "start": "vite src --config vite.config.js",
10 | "build": "VITE_CJS_IGNORE_WARNING=true vite build",
11 | "test": "npx @web-bench/test-util"
12 | },
13 | "author": "luics",
14 | "devDependencies": {
15 | "@playwright/test": "^1.49.1",
16 | "@types/node": "^22.7.9",
17 | "@web-bench/test-util": "workspace:*",
18 | "vite": "^6.2.2",
19 | "stylus": "~0.64.0"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/projects/stylus/src-init/common.styl:
--------------------------------------------------------------------------------
1 | html
2 | font-size 10px
3 |
4 | body
5 | font-size 1.4rem
--------------------------------------------------------------------------------
/projects/stylus/src-init/design.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench Form | Stylus
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/projects/stylus/src-init/design.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('DOMContentLoaded', () => {})
2 |
--------------------------------------------------------------------------------
/projects/stylus/src-init/preview.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench Survey Preview | Stylus
7 |
8 |
9 |
10 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/projects/stylus/src-init/preview.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('DOMContentLoaded', () => {
2 | alert(location.href)
3 | })
4 |
--------------------------------------------------------------------------------
/projects/stylus/src/common/DataQuestion.styl:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @import './config'
16 |
17 |
--------------------------------------------------------------------------------
/projects/stylus/src/common/MultiSelectionQuestion.styl:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @import './config'
16 |
17 |
--------------------------------------------------------------------------------
/projects/stylus/src/common/OpenQuestion.styl:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @import './config'
16 |
17 |
--------------------------------------------------------------------------------
/projects/stylus/src/common/SingleSelectionQuestion.styl:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @import './config'
16 |
17 |
--------------------------------------------------------------------------------
/projects/stylus/src/common/SurveyDesign.styl:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @import './SurveyForm'
16 |
--------------------------------------------------------------------------------
/projects/stylus/src/common/SurveyPreview.styl:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @import './SurveyForm'
16 |
--------------------------------------------------------------------------------
/projects/stylus/src/design.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench Form | Stylus
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/projects/stylus/src/preview.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench Survey Preview | Stylus
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/projects/survey/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/survey",
3 | "version": "0.0.1",
4 | "eval": {
5 | "stable": true
6 | },
7 | "scripts": {
8 | "build": "",
9 | "test": "npx @web-bench/test-util",
10 | "test1": "npx playwright test"
11 | },
12 | "author": "luics",
13 | "devDependencies": {
14 | "@playwright/test": "^1.49.1",
15 | "@types/node": "^22.7.9",
16 | "serve": "^14.2.4",
17 | "@web-bench/test-util": "workspace:*"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/projects/survey/src-init/design.css:
--------------------------------------------------------------------------------
1 | html {
2 | font-size: 10px;
3 | }
4 |
5 | body {
6 | font-size: 1.4rem;
7 | }
8 |
--------------------------------------------------------------------------------
/projects/survey/src-init/design.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench Form
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/projects/survey/src-init/design.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('DOMContentLoaded', () => {})
2 |
--------------------------------------------------------------------------------
/projects/survey/src-init/preview.css:
--------------------------------------------------------------------------------
1 | html {
2 | font-size: 10px;
3 | }
4 |
5 | body {
6 | font-size: 1.4rem;
7 | }
8 |
--------------------------------------------------------------------------------
/projects/survey/src-init/preview.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench Survey Preview
7 |
8 |
9 |
10 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/projects/survey/src-init/preview.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('DOMContentLoaded', () => {
2 | alert(location.href)
3 | })
4 |
--------------------------------------------------------------------------------
/projects/survey/src/design.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | **/
16 |
17 |
--------------------------------------------------------------------------------
/projects/survey/src/design.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Survey Design | Web-Bench
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/projects/survey/src/preview.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | **/
16 |
17 |
--------------------------------------------------------------------------------
/projects/survey/src/preview.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Survey Preview | Web-Bench
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/projects/svelte/.evalignore:
--------------------------------------------------------------------------------
1 | index.html
--------------------------------------------------------------------------------
/projects/svelte/src-init/App.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 | Empty
6 |
7 |
10 |
--------------------------------------------------------------------------------
/projects/svelte/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blog
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/svelte/src-init/index.ts:
--------------------------------------------------------------------------------
1 | import { mount } from 'svelte'
2 | import App from './App.svelte'
3 |
4 | const app = mount(App, {
5 | target: document.getElementById('root')!,
6 | })
7 |
8 | export default app
9 |
--------------------------------------------------------------------------------
/projects/svelte/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blog
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/svelte/src/store.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | // Remove this file since functionality moved to stores/blogStore.ts
--------------------------------------------------------------------------------
/projects/svelte/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "@tsconfig/svelte/tsconfig.json",
3 | "compilerOptions": {
4 | "target": "ESNext",
5 | "useDefineForClassFields": true,
6 | "module": "ESNext",
7 | "resolveJsonModule": true,
8 | "allowJs": true,
9 | "checkJs": true,
10 | "isolatedModules": true,
11 | "moduleDetection": "force"
12 | },
13 | "include": ["src/**/*.ts", "src/**/*.js", "src/**/*.svelte"]
14 | }
15 |
--------------------------------------------------------------------------------
/projects/svelte/vite.config.mts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import { svelte } from '@sveltejs/vite-plugin-svelte'
3 |
4 | const PROJECT_DIR = process.env.EVAL_PROJECT_ROOT || 'src'
5 | const PORT = process.env.EVAL_PROJECT_PORT || 3211
6 |
7 | // https://vite.dev/config/
8 | export default defineConfig({
9 | root: PROJECT_DIR,
10 | server: {
11 | port: +PORT,
12 | host: 'localhost',
13 | watch: process.env.EVAL ? null : undefined,
14 | },
15 | build: {
16 | rollupOptions: {
17 | input: PROJECT_DIR + '/index.html',
18 | },
19 | },
20 | plugins: [svelte()],
21 | })
22 |
--------------------------------------------------------------------------------
/projects/svg-chart/.evalignore:
--------------------------------------------------------------------------------
1 | assets/
--------------------------------------------------------------------------------
/projects/svg-chart/.gitignore:
--------------------------------------------------------------------------------
1 | src-all
2 | src-init/assets
--------------------------------------------------------------------------------
/projects/svg-chart/assets/res.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/projects/svg-chart/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/svg-chart",
3 | "version": "0.0.1",
4 | "eval": {
5 | "stable": true
6 | },
7 | "type": "module",
8 | "scripts": {
9 | "start": "vite src --config vite.config.js",
10 | "build": "VITE_CJS_IGNORE_WARNING=true vite build",
11 | "test": "npx @web-bench/test-util"
12 | },
13 | "author": "luics",
14 | "devDependencies": {
15 | "@playwright/test": "^1.49.1",
16 | "@types/node": "^22.7.9",
17 | "@web-bench/test-util": "workspace:*",
18 | "vite": "^6.2.2",
19 | "sass-embedded": "~1.83.1"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/projects/svg-chart/src-init/common/Chart.js:
--------------------------------------------------------------------------------
1 | export class Chart {
2 | /** @type {SVGElement} */
3 | svg
4 | /** @type {any} */
5 | config
6 |
7 | /**
8 | * @param {any} config
9 | */
10 | constructor(config) {
11 | this.config = config
12 |
13 | const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg')
14 | this.svg = svg
15 | }
16 |
17 | draw() {}
18 | }
19 |
--------------------------------------------------------------------------------
/projects/svg-chart/src-init/common/Chart.scss:
--------------------------------------------------------------------------------
1 | @use './config';
2 |
3 | .chart {
4 | display: block;
5 | width: 50vw;
6 | height: 35vw;
7 |
8 | &:nth-child(4n + 2),
9 | &:nth-child(4n + 3) {
10 | background-color: #f6f6f6;
11 | }
12 |
13 | .hidden {
14 | display: none;
15 | }
16 |
17 | polyline,
18 | line {
19 | stroke: black;
20 | stroke-width: 0.2;
21 | fill: none;
22 | stroke-linecap: round;
23 | stroke-linejoin: round;
24 | }
25 |
26 | text {
27 | font-size: 2px;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/projects/svg-chart/src-init/common/LineChart.js:
--------------------------------------------------------------------------------
1 | import { Chart } from './Chart'
2 |
3 | export class LineChart extends Chart {
4 | }
5 |
--------------------------------------------------------------------------------
/projects/svg-chart/src-init/common/config.scss:
--------------------------------------------------------------------------------
1 | $color: black;
2 | $bgColor: white;
3 |
4 | body {
5 | margin: 0;
6 | color: $color;
7 | background-color: $bgColor;
8 | }
9 |
10 | .root {
11 | display: grid;
12 | grid-template-columns: 1fr 1fr;
13 | }
14 |
--------------------------------------------------------------------------------
/projects/svg-chart/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench SVG-Chart
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/projects/svg-chart/src-init/index.scss:
--------------------------------------------------------------------------------
1 | @use './common/config';
2 | @use './common/Chart';
3 |
--------------------------------------------------------------------------------
/projects/svg-chart/src/assets:
--------------------------------------------------------------------------------
1 | ../assets
--------------------------------------------------------------------------------
/projects/svg-chart/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench SVG-Chart
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/projects/svg-chart/src/index.scss:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @use './common/config';
16 | @use './common/Chart';
17 |
--------------------------------------------------------------------------------
/projects/svg-solar/.gitignore:
--------------------------------------------------------------------------------
1 | # src-*/
--------------------------------------------------------------------------------
/projects/svg-solar/assets/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/svg-solar/assets/bg.png
--------------------------------------------------------------------------------
/projects/svg-solar/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/svg-solar",
3 | "version": "0.0.1",
4 | "eval": {
5 | "stable": true
6 | },
7 | "scripts": {
8 | "start": "vite src --config vite.config.js",
9 | "build": "VITE_CJS_IGNORE_WARNING=true vite build",
10 | "test": "npx @web-bench/test-util"
11 | },
12 | "author": "luics",
13 | "devDependencies": {
14 | "@playwright/test": "^1.49.1",
15 | "@types/node": "^22.7.9",
16 | "@web-bench/test-util": "workspace:*",
17 | "vite": "^6.2.2",
18 | "sass-embedded": "~1.83.1"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/projects/svg-solar/src-init/common/System.scss:
--------------------------------------------------------------------------------
1 | @use './config';
2 |
3 | .system {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/projects/svg-solar/src-init/common/config.scss:
--------------------------------------------------------------------------------
1 | $color: white;
2 | $bgColor: black;
3 |
4 | body {
5 | margin: 0;
6 | color: $color;
7 | background-color: $bgColor;
8 | }
9 |
10 | .root {
11 | display: flex;
12 | flex-direction: column;
13 | width: 100vw;
14 | height: 100vw;
15 | overflow: hidden;
16 | }
17 |
18 |
19 |
--------------------------------------------------------------------------------
/projects/svg-solar/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench SVG-Solar
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/projects/svg-solar/src-init/index.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('DOMContentLoaded', () => {
2 | })
3 |
--------------------------------------------------------------------------------
/projects/svg-solar/src-init/index.scss:
--------------------------------------------------------------------------------
1 | @use './common/config';
2 | @use './common/System';
3 |
--------------------------------------------------------------------------------
/projects/svg-solar/src/assets:
--------------------------------------------------------------------------------
1 | ../assets
--------------------------------------------------------------------------------
/projects/svg-solar/src/index.scss:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @use './common/config';
16 | @use './common/System';
17 |
--------------------------------------------------------------------------------
/projects/svg/.gitignore:
--------------------------------------------------------------------------------
1 | # src-*/
--------------------------------------------------------------------------------
/projects/svg/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/svg",
3 | "version": "0.0.1",
4 | "eval": {
5 | "stable": true
6 | },
7 | "scripts": {
8 | "start": "vite src --config vite.config.js",
9 | "build": "VITE_CJS_IGNORE_WARNING=true vite build",
10 | "test": "npx @web-bench/test-util"
11 | },
12 | "author": "luics",
13 | "devDependencies": {
14 | "@playwright/test": "^1.49.1",
15 | "@types/node": "^22.7.9",
16 | "@web-bench/test-util": "workspace:*",
17 | "vite": "^6.2.2",
18 | "sass-embedded": "~1.83.1"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/projects/svg/src-init/common/Canvas.scss:
--------------------------------------------------------------------------------
1 | .canvas {
2 | flex: 1;
3 | background-color: #eee;
4 |
5 | // & > * {
6 | // transform-origin: center;
7 | // }
8 | }
9 |
--------------------------------------------------------------------------------
/projects/svg/src-init/common/config.scss:
--------------------------------------------------------------------------------
1 | $color: black;
2 | $bgColor: white;
3 |
4 | body {
5 | margin: 0;
6 | color: $color;
7 | background-color: $bgColor;
8 | }
9 |
10 | .root {
11 | display: flex;
12 | flex-direction: column;
13 | width: 100vw;
14 | height: 100vh;
15 | overflow: hidden;
16 | }
17 |
--------------------------------------------------------------------------------
/projects/svg/src-init/index.js:
--------------------------------------------------------------------------------
1 | import { Toolkit } from './common/Toolkit'
2 |
3 | document.addEventListener('DOMContentLoaded', () => {
4 | const toolkit = new Toolkit('.toolkit')
5 | })
6 |
--------------------------------------------------------------------------------
/projects/svg/src-init/index.scss:
--------------------------------------------------------------------------------
1 | @use './common/config';
2 | @use './common/Toolkit';
3 | @use './common/Canvas';
4 |
--------------------------------------------------------------------------------
/projects/table/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/table",
3 | "version": "0.0.1",
4 | "eval": {
5 | "stable": true
6 | },
7 | "scripts": {
8 | "build": "",
9 | "test": "npx @web-bench/test-util",
10 | "test1": "npx playwright test"
11 | },
12 | "author": "luics",
13 | "devDependencies": {
14 | "@playwright/test": "^1.49.1",
15 | "@types/node": "^22.7.9",
16 | "serve": "^14.2.4",
17 | "@web-bench/test-util": "workspace:*"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/projects/table/src-init/index.css:
--------------------------------------------------------------------------------
1 | html {
2 | font-size: 10px;
3 | }
4 |
5 | body {
6 | font-size: 1.6rem;
7 | }
8 |
9 | .table {
10 | border-collapse: collapse;
11 | border-spacing: 0;
12 | margin: 0 auto;
13 | user-select: none;
14 | }
15 |
16 | th,
17 | td {
18 | border: 0.1rem solid #ddd;
19 | padding: 0.5rem;
20 | width: 8rem;
21 | height: 4rem;
22 | vertical-align: middle;
23 | overflow: visible;
24 | box-sizing: border-box;
25 | }
26 |
27 | thead tr {
28 | background-color: #ddd;
29 | }
--------------------------------------------------------------------------------
/projects/table/src-init/index.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('DOMContentLoaded', () => {})
2 |
--------------------------------------------------------------------------------
/projects/tailwind/.evalignore:
--------------------------------------------------------------------------------
1 | assets/
--------------------------------------------------------------------------------
/projects/tailwind/.gitignore:
--------------------------------------------------------------------------------
1 | src/assets
2 | src-init/assets
--------------------------------------------------------------------------------
/projects/tailwind/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/tailwind",
3 | "version": "0.0.1",
4 | "scripts": {
5 | "build": "",
6 | "test": "npx @web-bench/test-util"
7 | },
8 | "author": "luics",
9 | "eval": {
10 | "stable": true
11 | },
12 | "devDependencies": {
13 | "@playwright/test": "^1.49.1",
14 | "@types/node": "^22.7.9",
15 | "serve": "^14.2.4",
16 | "@web-bench/test-util": "workspace:*"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/projects/tailwind/readme.md:
--------------------------------------------------------------------------------
1 | # @web-bench/tailwind
2 |
3 | ## [Evaluate](../readme.md)
4 |
5 | ## Introduction
6 |
7 | https://tailwindcss.com/
8 |
9 | > Rapidly build modern websites without ever leaving your HTML.
10 | >
11 | > A utility-first CSS framework packed with classes like flex, pt-4, text-center and rotate-90 that can be composed to build any design, directly in your markup.
12 |
13 | ## Feature Coverage
14 |
15 | | Tailwind | Used |
16 | | -------- | ---- |
17 | | ?? | ✅ |
18 | | | |
19 | | | |
20 |
21 | * [ ] use LLM to collect coverage data
22 |
--------------------------------------------------------------------------------
/projects/tailwind/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench Grid
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/threejs/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Document
8 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/projects/threejs/src-init/index.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/threejs/src-init/index.js
--------------------------------------------------------------------------------
/projects/threejs/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Document
8 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/projects/threejs/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": [
5 | "dom",
6 | "dom.iterable",
7 | "esnext"
8 | ],
9 | "allowJs": true,
10 | "skipLibCheck": true,
11 | "esModuleInterop": true,
12 | "allowSyntheticDefaultImports": true,
13 | "strict": true,
14 | "forceConsistentCasingInFileNames": true,
15 | "noFallthroughCasesInSwitch": true,
16 | "module": "esnext",
17 | "moduleResolution": "node",
18 | "resolveJsonModule": true,
19 | "isolatedModules": true,
20 | "noEmit": true,
21 | "jsx": "react-jsx"
22 | },
23 | "include": [
24 | "src"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/projects/threejs/typings.d.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | ///
16 |
--------------------------------------------------------------------------------
/projects/typescript/.evalignore:
--------------------------------------------------------------------------------
1 | *.js
2 | tasks/*
--------------------------------------------------------------------------------
/projects/typescript/.gitignore:
--------------------------------------------------------------------------------
1 | src/tasks/*
2 | src/types/*.js
--------------------------------------------------------------------------------
/projects/typescript/src-init/types/setter.ts:
--------------------------------------------------------------------------------
1 | export interface InputSetter {
2 | type: 'input'
3 | value: string
4 | }
5 |
6 | export interface NumberSetter {
7 | type: 'number'
8 | value: number
9 | }
10 |
11 | export interface CheckboxSetter {
12 | type: 'checkbox'
13 | value: boolean
14 | }
15 |
16 | export type Setter = InputSetter | NumberSetter | CheckboxSetter
17 |
--------------------------------------------------------------------------------
/projects/unocss/.gitignore:
--------------------------------------------------------------------------------
1 | src-[0-9]*/
2 | src-all
--------------------------------------------------------------------------------
/projects/unocss/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@web-bench/unocss",
3 | "version": "0.0.1",
4 | "eval": {
5 | "stable": true
6 | },
7 | "scripts": {
8 | "start": "vite src --config vite.config.js",
9 | "build": "VITE_CJS_IGNORE_WARNING=true vite build",
10 | "test": "npx @web-bench/test-util"
11 | },
12 | "author": "luics",
13 | "devDependencies": {
14 | "@playwright/test": "^1.49.1",
15 | "@types/node": "^22.7.9",
16 | "@web-bench/test-util": "workspace:*",
17 | "vite": "^6.2.2",
18 | "unocss": "~66.1.0-beta.6"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/projects/unocss/readme.md:
--------------------------------------------------------------------------------
1 |
2 | # @web-bench-unocss
3 |
4 | ## [Evaluate](../readme.md)
5 |
6 | ## Introduction
7 |
8 | https://unocss.dev/
9 |
10 | > Instant On-demand Atomic CSS Engine
11 | >
12 | > UnoCSS is the instant atomic CSS engine, that is designed to be flexible and extensible. The core is un-opinionated and all the CSS utilities are provided via presets.
13 |
14 | ## Feature Coverage
15 |
16 | | Tailwind | Used |
17 | | -------- | ---- |
18 | | ?? | ✅ |
19 | | | |
20 | | | |
21 |
22 | * [ ] use LLM to collect coverage data
23 |
--------------------------------------------------------------------------------
/projects/unocss/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Web-Bench Unocss
7 |
8 |
9 |
10 |
11 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/projects/vite/.evalignore:
--------------------------------------------------------------------------------
1 | assets/
2 | node_modules/
3 | sourcemaps/
--------------------------------------------------------------------------------
/projects/vite/.gitignore:
--------------------------------------------------------------------------------
1 | package-lock.json
2 | sourcemaps
--------------------------------------------------------------------------------
/projects/vite/assets/TablerAntennaBars5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/projects/vite/assets/bird.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/vite/assets/bird.png
--------------------------------------------------------------------------------
/projects/vite/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Project
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/projects/vite/src-init/mock.json:
--------------------------------------------------------------------------------
1 | {
2 | "get /mock-api/ping": {
3 | "code": 0,
4 | "data": "mock"
5 | },
6 | "post /mock-api/add-project": {
7 | "success": true
8 | }
9 | }
--------------------------------------------------------------------------------
/projects/vite/src-init/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "project",
3 | "description": "project",
4 | "scripts": {
5 | "dev": "",
6 | "build": ""
7 | },
8 | "dependencies": {
9 | "vue": "^3.3.4",
10 | "react": "^18.2.0",
11 | "react-dom": "^18.2.0"
12 | },
13 | "devDependencies": {}
14 | }
--------------------------------------------------------------------------------
/projects/vite/src-init/src/alias.js:
--------------------------------------------------------------------------------
1 | const alias = 'hello alias'
2 | export default alias
--------------------------------------------------------------------------------
/projects/vite/src-init/src/component.jsx:
--------------------------------------------------------------------------------
1 | function ReactComponent() {
2 | return <>hello react>
3 | }
4 |
5 | export default ReactComponent
--------------------------------------------------------------------------------
/projects/vite/src-init/src/component.vue:
--------------------------------------------------------------------------------
1 |
2 | hello vue
3 |
4 |
5 |
--------------------------------------------------------------------------------
/projects/vite/src-init/src/files/bar.ts:
--------------------------------------------------------------------------------
1 | export default 'files/bar'
--------------------------------------------------------------------------------
/projects/vite/src-init/src/files/foo.ts:
--------------------------------------------------------------------------------
1 | export default 'files/foo'
--------------------------------------------------------------------------------
/projects/vite/src-init/src/hello.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: hello frontmatter
3 | tags:
4 | - foo
5 | - bar
6 | ---
7 |
8 | # hello markdown
9 |
10 | 
--------------------------------------------------------------------------------
/projects/vite/src-init/src/hello.zh.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: hello frontmatter
3 | tags:
4 | - foo
5 | - bar
6 | ---
7 |
8 | # 你好 markdown
9 |
10 | 
--------------------------------------------------------------------------------
/projects/vite/src-init/src/images/TablerAntennaBars5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/projects/vite/src-init/src/images/bird.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/vite/src-init/src/images/bird.png
--------------------------------------------------------------------------------
/projects/vite/src-init/src/index.css:
--------------------------------------------------------------------------------
1 | .css {
2 | color: rgb(0,0,255);
3 | }
--------------------------------------------------------------------------------
/projects/vite/src-init/src/index.less:
--------------------------------------------------------------------------------
1 | .less {
2 | color: rgb(0, 255, 0);
3 | }
--------------------------------------------------------------------------------
/projects/vite/src-init/src/index.module.less:
--------------------------------------------------------------------------------
1 | .lessModules {
2 | color: rgb(255, 0, 0);
3 | }
--------------------------------------------------------------------------------
/projects/vite/src-init/src/index.ts:
--------------------------------------------------------------------------------
1 | export default function (): string {
2 | return 'hello ts'
3 | }
--------------------------------------------------------------------------------
/projects/vite/src-init/src/version.js:
--------------------------------------------------------------------------------
1 | const versionElement = document.createElement('div')
2 | versionElement.textContent = `hello ${__VERSION__}`
3 | document.body.appendChild(versionElement)
--------------------------------------------------------------------------------
/projects/vite/src/assets/TablerAntennaBars5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/projects/vite/src/assets/bird.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/vite/src/assets/bird.png
--------------------------------------------------------------------------------
/projects/vite/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Project
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/projects/vite/src/mock.json:
--------------------------------------------------------------------------------
1 | {
2 | "get /mock-api/ping": {
3 | "code": 0,
4 | "data": "mock"
5 | },
6 | "post /mock-api/add-project": {
7 | "success": true
8 | }
9 | }
--------------------------------------------------------------------------------
/projects/vite/src/src/alias.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | const alias = 'hello alias'
16 | export default alias
--------------------------------------------------------------------------------
/projects/vite/src/src/files/bar.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export default 'files/bar'
--------------------------------------------------------------------------------
/projects/vite/src/src/files/foo.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export default 'files/foo'
--------------------------------------------------------------------------------
/projects/vite/src/src/hello.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: hello frontmatter
3 | tags:
4 | - foo
5 | - bar
6 | ---
7 |
8 | # hello markdown
9 |
10 | 
--------------------------------------------------------------------------------
/projects/vite/src/src/hello.zh.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: hello frontmatter
3 | tags:
4 | - foo
5 | - bar
6 | ---
7 |
8 | # 你好 markdown
9 |
10 | 
--------------------------------------------------------------------------------
/projects/vite/src/src/images/TablerAntennaBars5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/projects/vite/src/src/images/bird.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/vite/src/src/images/bird.png
--------------------------------------------------------------------------------
/projects/vite/src/src/index.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | **/
16 |
17 | .css {
18 | color: rgb(0,0,255);
19 | }
--------------------------------------------------------------------------------
/projects/vite/src/src/index.less:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | .less {
16 | color: rgb(0, 255, 0);
17 | }
--------------------------------------------------------------------------------
/projects/vite/src/src/index.module.less:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | .lessModules {
16 | color: rgb(255, 0, 0);
17 | }
--------------------------------------------------------------------------------
/projects/vite/src/src/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export default function (): string {
16 | return 'hello ts'
17 | }
--------------------------------------------------------------------------------
/projects/vue/.evalignore:
--------------------------------------------------------------------------------
1 | index.html
--------------------------------------------------------------------------------
/projects/vue/src-init/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | Empty
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/vue/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blog
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/vue/src-init/main.ts:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue'
2 | import App from './App.vue'
3 |
4 | const app = createApp(App)
5 | app.mount('#app')
6 |
--------------------------------------------------------------------------------
/projects/vue/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blog
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/projects/vue/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": [
5 | "dom",
6 | "dom.iterable",
7 | "esnext"
8 | ],
9 | "allowJs": true,
10 | "skipLibCheck": true,
11 | "esModuleInterop": true,
12 | "allowSyntheticDefaultImports": true,
13 | "strict": true,
14 | "forceConsistentCasingInFileNames": true,
15 | "noFallthroughCasesInSwitch": true,
16 | "module": "esnext",
17 | "moduleResolution": "node",
18 | "resolveJsonModule": true,
19 | "isolatedModules": true,
20 | "noEmit": true,
21 | "jsx": "react-jsx"
22 | },
23 | "include": [
24 | "src"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/projects/vue/typings.d.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | ///
16 |
--------------------------------------------------------------------------------
/projects/webpack/.evalignore:
--------------------------------------------------------------------------------
1 | assets/
2 | node_modules/
3 | sourcemaps/
4 | dist/
5 | dist-serve/
--------------------------------------------------------------------------------
/projects/webpack/.gitignore:
--------------------------------------------------------------------------------
1 | package-lock.json
2 | sourcemaps
3 | .parcel-cache
4 | dist*
5 | ignore-src
--------------------------------------------------------------------------------
/projects/webpack/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Project
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/projects/webpack/src-init/mock.json:
--------------------------------------------------------------------------------
1 | {
2 | "get /mock-api/ping": {
3 | "code": 0,
4 | "data": "mock"
5 | },
6 | "post /mock-api/add-project": {
7 | "success": true
8 | }
9 | }
--------------------------------------------------------------------------------
/projects/webpack/src-init/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "project",
3 | "description": "project",
4 | "scripts": {
5 | "dev": "",
6 | "build": ""
7 | },
8 | "dependencies": {
9 | "vue": "^3.3.4",
10 | "react": "^18.2.0",
11 | "react-dom": "^18.2.0"
12 | },
13 | "devDependencies": {
14 | "webpack": "^5",
15 | "webpack-cli": "^5"
16 | }
17 | }
--------------------------------------------------------------------------------
/projects/webpack/src-init/src/alias.js:
--------------------------------------------------------------------------------
1 | const alias = 'hello alias'
2 | export default alias
--------------------------------------------------------------------------------
/projects/webpack/src-init/src/component.jsx:
--------------------------------------------------------------------------------
1 | function ReactComponent() {
2 | return <>hello react>
3 | }
4 |
5 | export default ReactComponent
--------------------------------------------------------------------------------
/projects/webpack/src-init/src/component.vue:
--------------------------------------------------------------------------------
1 |
2 | hello vue
3 |
4 |
5 |
--------------------------------------------------------------------------------
/projects/webpack/src-init/src/files/bar.ts:
--------------------------------------------------------------------------------
1 | export default 'files/bar'
--------------------------------------------------------------------------------
/projects/webpack/src-init/src/files/foo.ts:
--------------------------------------------------------------------------------
1 | export default 'files/foo'
--------------------------------------------------------------------------------
/projects/webpack/src-init/src/hello.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: hello frontmatter
3 | tags:
4 | - foo
5 | - bar
6 | ---
7 |
8 | # hello markdown
9 |
10 | 
--------------------------------------------------------------------------------
/projects/webpack/src-init/src/hello.zh.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: hello frontmatter
3 | tags:
4 | - foo
5 | - bar
6 | ---
7 |
8 | # 你好 markdown
9 |
10 | 
--------------------------------------------------------------------------------
/projects/webpack/src-init/src/images/TablerAntennaBars5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/projects/webpack/src-init/src/images/bird.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/webpack/src-init/src/images/bird.png
--------------------------------------------------------------------------------
/projects/webpack/src-init/src/index.css:
--------------------------------------------------------------------------------
1 | .css {
2 | color: rgb(0,0,255);
3 | }
--------------------------------------------------------------------------------
/projects/webpack/src-init/src/index.less:
--------------------------------------------------------------------------------
1 | .less {
2 | color: rgb(0, 255, 0);
3 | }
--------------------------------------------------------------------------------
/projects/webpack/src-init/src/index.module.less:
--------------------------------------------------------------------------------
1 | .lessModules {
2 | color: rgb(255, 0, 0);
3 | }
--------------------------------------------------------------------------------
/projects/webpack/src-init/src/index.ts:
--------------------------------------------------------------------------------
1 | export default function (): string {
2 | return 'hello ts'
3 | }
--------------------------------------------------------------------------------
/projects/webpack/src-init/src/version.js:
--------------------------------------------------------------------------------
1 | const versionElement = document.createElement('div')
2 | versionElement.textContent = `hello ${process.env.__VERSION__}`
3 | document.body.appendChild(versionElement)
--------------------------------------------------------------------------------
/projects/webpack/src-init/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {}
--------------------------------------------------------------------------------
/projects/webpack/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Project
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/projects/webpack/src/mock.json:
--------------------------------------------------------------------------------
1 | {
2 | "get /mock-api/ping": {
3 | "code": 0,
4 | "data": "mock"
5 | },
6 | "post /mock-api/add-project": {
7 | "success": true
8 | }
9 | }
--------------------------------------------------------------------------------
/projects/webpack/src/src/alias.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | const alias = 'hello alias'
16 | export default alias
--------------------------------------------------------------------------------
/projects/webpack/src/src/files/bar.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export default 'files/bar'
--------------------------------------------------------------------------------
/projects/webpack/src/src/files/foo.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export default 'files/foo'
--------------------------------------------------------------------------------
/projects/webpack/src/src/hello.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: hello frontmatter
3 | tags:
4 | - foo
5 | - bar
6 | ---
7 |
8 | # hello markdown
9 |
10 | 
--------------------------------------------------------------------------------
/projects/webpack/src/src/hello.zh.md:
--------------------------------------------------------------------------------
1 | ---
2 | author: hello frontmatter
3 | tags:
4 | - foo
5 | - bar
6 | ---
7 |
8 | # 你好 markdown
9 |
10 | 
--------------------------------------------------------------------------------
/projects/webpack/src/src/images/TablerAntennaBars5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/projects/webpack/src/src/images/bird.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/projects/webpack/src/src/images/bird.png
--------------------------------------------------------------------------------
/projects/webpack/src/src/index.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | **/
16 |
17 | .css {
18 | color: rgb(0,0,255);
19 | }
--------------------------------------------------------------------------------
/projects/webpack/src/src/index.less:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | .less {
16 | color: rgb(0, 255, 0);
17 | }
--------------------------------------------------------------------------------
/projects/webpack/src/src/index.module.less:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | .lessModules {
16 | color: rgb(255, 0, 0);
17 | }
--------------------------------------------------------------------------------
/projects/webpack/src/src/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export default function (): string {
16 | return 'hello ts'
17 | }
--------------------------------------------------------------------------------
/projects/webpack/src/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "outDir": "./dist/",
4 | "sourceMap": true,
5 | "noImplicitAny": true,
6 | "module": "es6",
7 | "target": "es2022",
8 | "jsx": "react",
9 | "allowJs": true,
10 | "moduleResolution": "node",
11 | "esModuleInterop": true,
12 | "lib": ["es2020", "dom"]
13 | }
14 | }
--------------------------------------------------------------------------------
/projects/zustand/.evalignore:
--------------------------------------------------------------------------------
1 | index.html
--------------------------------------------------------------------------------
/projects/zustand/src-init/App.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | padding: 0;
4 | }
5 |
--------------------------------------------------------------------------------
/projects/zustand/src-init/App.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import './App.css'
3 |
4 | function App() {
5 | return Empty
6 | }
7 |
8 | export default App
9 |
--------------------------------------------------------------------------------
/projects/zustand/src-init/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blog
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/zustand/src-init/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom/client'
3 | import App from './App'
4 |
5 | const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement)
6 |
7 | root.render( )
8 |
--------------------------------------------------------------------------------
/projects/zustand/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Blog
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/projects/zustand/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": [
5 | "dom",
6 | "dom.iterable",
7 | "esnext"
8 | ],
9 | "allowJs": true,
10 | "skipLibCheck": true,
11 | "esModuleInterop": true,
12 | "allowSyntheticDefaultImports": true,
13 | "strict": true,
14 | "forceConsistentCasingInFileNames": true,
15 | "noFallthroughCasesInSwitch": true,
16 | "module": "esnext",
17 | "moduleResolution": "node",
18 | "resolveJsonModule": true,
19 | "isolatedModules": true,
20 | "noEmit": true,
21 | "jsx": "react-jsx"
22 | },
23 | "include": [
24 | "src"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/projects/zustand/typings.d.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | ///
16 |
--------------------------------------------------------------------------------
/tools/bench-agent/.gitignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bytedance/web-bench/f9b59bc5aba29c84abdc6e89ba3003600f3cfb90/tools/bench-agent/.gitignore
--------------------------------------------------------------------------------
/tools/bench-agent/src/llm/openrouter.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2023-2024 Continue Dev, Inc.
2 | // Copyright (c) 2025 Bytedance Ltd.
3 | // SPDX-License-Identifier: Apache-2.0
4 | //
5 | // This file has been modified by OpenAILLM Ltd on OpenRouter
6 | //
7 | // Original file was released under Apache-2.0, with the full license text
8 | // available at https://github.com/continuedev/continue?tab=Apache-2.0-1-ov-file.
9 | //
10 | // This modified file is released under the same license.
11 |
12 | import { OpenAILLM } from './openai'
13 |
14 | export class OpenRouter extends OpenAILLM {
15 | provider = 'openrouter'
16 |
17 | useLegacyCompletionsEndpoint = false
18 | }
19 |
--------------------------------------------------------------------------------
/tools/bench-agent/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "experimentalDecorators": true,
4 | "target": "es2020",
5 | "module": "esnext",
6 | "strictPropertyInitialization": false,
7 | "strict": true,
8 | "outDir": "dist/",
9 | "esModuleInterop": true,
10 | "moduleResolution": "node",
11 | "skipLibCheck": true,
12 | "noUnusedLocals": true,
13 | "noImplicitAny": true,
14 | "allowJs": true,
15 | "resolveJsonModule": true,
16 | "types": ["node"],
17 | "typeRoots": ["node_modules/@types"],
18 | "jsx": "react",
19 | "lib": ["es6", "dom", "es2020", "es2019.Array"]
20 | },
21 | "include": ["./src"],
22 | "exclude": ["node_modules"]
23 | }
24 |
--------------------------------------------------------------------------------
/tools/evaluator/.gitignore:
--------------------------------------------------------------------------------
1 | csv
2 |
3 | scripts/arena-fetches.js
--------------------------------------------------------------------------------
/tools/evaluator/src/global.d.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 |
--------------------------------------------------------------------------------
/tools/evaluator/src/plugins/common.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export const EvalPluginPrefix = 'eval_default_plugin_'
16 |
--------------------------------------------------------------------------------
/tools/evaluator/src/plugins/index.ts:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export * from './schedule'
16 | export * from './plugin'
17 |
--------------------------------------------------------------------------------
/tools/evaluator/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "experimentalDecorators": true,
4 | "target": "es2020",
5 | "module": "esnext",
6 | "strictPropertyInitialization": false,
7 | "strict": true,
8 | "esModuleInterop": true,
9 | "moduleResolution": "node",
10 | "skipLibCheck": true,
11 | "noUnusedLocals": true,
12 | "outDir": "dist/",
13 | "noImplicitAny": true,
14 | "allowJs": true,
15 | "resolveJsonModule": true,
16 | "types": ["node"],
17 | "typeRoots": ["node_modules/@types"],
18 | "jsx": "react",
19 | "lib": ["es6", "dom", "es2020", "es2019.Array"]
20 | },
21 | "include": ["./src", "./scripts"]
22 | }
23 |
--------------------------------------------------------------------------------
/tools/http-agent/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "experimentalDecorators": true,
4 | "target": "es2020",
5 | "module": "esnext",
6 | "strictPropertyInitialization": false,
7 | "strict": true,
8 | "esModuleInterop": true,
9 | "moduleResolution": "node",
10 | "skipLibCheck": true,
11 | "noUnusedLocals": true,
12 | "noImplicitAny": true,
13 | "allowJs": true,
14 | "resolveJsonModule": true,
15 | "types": ["node"],
16 | "typeRoots": ["node_modules/@types"],
17 | "jsx": "react",
18 | "lib": ["es6", "dom", "es2020", "es2019.Array"]
19 | },
20 | "include": ["./src"],
21 | "exclude": ["node_modules"]
22 | }
23 |
--------------------------------------------------------------------------------
/tools/readme.md:
--------------------------------------------------------------------------------
1 | # Web-Bench Tools
2 |
3 |
4 |
5 | ## Development
6 |
7 | 1. Install dependencies
8 |
9 | ```
10 | rush update
11 | ```
12 |
13 | 2. 启动服务
14 |
15 | ```
16 | rush dev:eval
17 | ```
18 |
19 | 3. 执行
20 |
21 | ```
22 | rush eval
23 | ```
24 |
--------------------------------------------------------------------------------
/tools/types/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "experimentalDecorators": true,
4 | "target": "es2020",
5 | "module": "esnext",
6 | "strictPropertyInitialization": false,
7 | "strict": true,
8 | "esModuleInterop": true,
9 | "moduleResolution": "node",
10 | "skipLibCheck": true,
11 | "noUnusedLocals": true,
12 | "noImplicitAny": true,
13 | "allowJs": true,
14 | "resolveJsonModule": true,
15 | "types": ["node"],
16 | "typeRoots": ["node_modules/@types"],
17 | "jsx": "react",
18 | "lib": ["es6", "dom", "es2020", "es2019.Array"]
19 | },
20 | "include": ["./src"],
21 | "exclude": ["node_modules"]
22 | }
23 |
--------------------------------------------------------------------------------