Repository: vuejs/vuex Branch: main Commit: bd907467b839 Files: 222 Total size: 512.2 KB Directory structure: gitextract_cty0x9ut/ ├── .babelrc ├── .eslintrc.json ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ └── bug_report.yml │ ├── ISSUE_TEMPLATE.md │ ├── commit-convention.md │ ├── contributing.md │ └── workflows/ │ └── ci.yml ├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── docs/ │ ├── .vitepress/ │ │ ├── config.js │ │ ├── styles/ │ │ │ └── styles.css │ │ └── theme/ │ │ └── index.js │ ├── api/ │ │ └── index.md │ ├── guide/ │ │ ├── actions.md │ │ ├── composition-api.md │ │ ├── forms.md │ │ ├── getters.md │ │ ├── hot-reload.md │ │ ├── index.md │ │ ├── migrating-to-4-0-from-3-x.md │ │ ├── modules.md │ │ ├── mutations.md │ │ ├── plugins.md │ │ ├── state.md │ │ ├── strict.md │ │ ├── structure.md │ │ ├── testing.md │ │ └── typescript-support.md │ ├── index.md │ ├── installation.md │ ├── ja/ │ │ ├── api/ │ │ │ └── index.md │ │ ├── guide/ │ │ │ ├── actions.md │ │ │ ├── composition-api.md │ │ │ ├── forms.md │ │ │ ├── getters.md │ │ │ ├── hot-reload.md │ │ │ ├── index.md │ │ │ ├── migrating-to-4-0-from-3-x.md │ │ │ ├── modules.md │ │ │ ├── mutations.md │ │ │ ├── plugins.md │ │ │ ├── state.md │ │ │ ├── strict.md │ │ │ ├── structure.md │ │ │ ├── testing.md │ │ │ └── typescript-support.md │ │ ├── index.md │ │ └── installation.md │ ├── ptbr/ │ │ ├── api/ │ │ │ └── index.md │ │ ├── guide/ │ │ │ ├── actions.md │ │ │ ├── composition-api.md │ │ │ ├── forms.md │ │ │ ├── getters.md │ │ │ ├── hot-reload.md │ │ │ ├── index.md │ │ │ ├── migrating-to-4-0-from-3-x.md │ │ │ ├── modules.md │ │ │ ├── mutations.md │ │ │ ├── plugins.md │ │ │ ├── state.md │ │ │ ├── strict.md │ │ │ ├── structure.md │ │ │ ├── testing.md │ │ │ └── typescript-support.md │ │ ├── index.md │ │ └── installation.md │ ├── public/ │ │ └── _redirects │ └── zh/ │ ├── api/ │ │ └── index.md │ ├── guide/ │ │ ├── actions.md │ │ ├── composition-api.md │ │ ├── forms.md │ │ ├── getters.md │ │ ├── hot-reload.md │ │ ├── index.md │ │ ├── migrating-to-4-0-from-3-x.md │ │ ├── modules.md │ │ ├── mutations.md │ │ ├── plugins.md │ │ ├── state.md │ │ ├── strict.md │ │ ├── structure.md │ │ ├── testing.md │ │ └── typescript-support.md │ ├── index.md │ └── installation.md ├── examples/ │ ├── classic/ │ │ ├── chat/ │ │ │ ├── api/ │ │ │ │ ├── index.js │ │ │ │ └── mock-data.js │ │ │ ├── app.js │ │ │ ├── components/ │ │ │ │ ├── App.vue │ │ │ │ ├── Message.vue │ │ │ │ ├── MessageSection.vue │ │ │ │ ├── Thread.vue │ │ │ │ └── ThreadSection.vue │ │ │ ├── css/ │ │ │ │ └── chat.css │ │ │ ├── index.html │ │ │ └── store/ │ │ │ ├── actions.js │ │ │ ├── getters.js │ │ │ ├── index.js │ │ │ └── mutations.js │ │ ├── counter/ │ │ │ ├── Counter.vue │ │ │ ├── app.js │ │ │ ├── index.html │ │ │ └── store.js │ │ ├── counter-hot/ │ │ │ ├── CounterControls.vue │ │ │ ├── app.js │ │ │ ├── index.html │ │ │ └── store/ │ │ │ ├── actions.js │ │ │ ├── getters.js │ │ │ ├── index.js │ │ │ └── mutations.js │ │ ├── shopping-cart/ │ │ │ ├── api/ │ │ │ │ └── shop.js │ │ │ ├── app.js │ │ │ ├── components/ │ │ │ │ ├── App.vue │ │ │ │ ├── ProductList.vue │ │ │ │ └── ShoppingCart.vue │ │ │ ├── currency.js │ │ │ ├── index.html │ │ │ └── store/ │ │ │ ├── index.js │ │ │ └── modules/ │ │ │ ├── cart.js │ │ │ ├── nested.js │ │ │ └── products.js │ │ └── todomvc/ │ │ ├── app.js │ │ ├── components/ │ │ │ ├── App.vue │ │ │ └── TodoItem.vue │ │ ├── index.html │ │ └── store/ │ │ ├── actions.js │ │ ├── index.js │ │ ├── mutations.js │ │ └── plugins.js │ ├── composition/ │ │ ├── chat/ │ │ │ ├── api/ │ │ │ │ ├── index.js │ │ │ │ └── mock-data.js │ │ │ ├── app.js │ │ │ ├── components/ │ │ │ │ ├── App.vue │ │ │ │ ├── Message.vue │ │ │ │ ├── MessageSection.vue │ │ │ │ ├── Thread.vue │ │ │ │ └── ThreadSection.vue │ │ │ ├── css/ │ │ │ │ └── chat.css │ │ │ ├── index.html │ │ │ └── store/ │ │ │ ├── actions.js │ │ │ ├── getters.js │ │ │ ├── index.js │ │ │ └── mutations.js │ │ ├── counter/ │ │ │ ├── Counter.vue │ │ │ ├── app.js │ │ │ ├── index.html │ │ │ └── store.js │ │ ├── counter-hot/ │ │ │ ├── CounterControls.vue │ │ │ ├── app.js │ │ │ ├── index.html │ │ │ └── store/ │ │ │ ├── actions.js │ │ │ ├── getters.js │ │ │ ├── index.js │ │ │ └── mutations.js │ │ ├── shopping-cart/ │ │ │ ├── api/ │ │ │ │ └── shop.js │ │ │ ├── app.js │ │ │ ├── components/ │ │ │ │ ├── App.vue │ │ │ │ ├── ProductList.vue │ │ │ │ └── ShoppingCart.vue │ │ │ ├── currency.js │ │ │ ├── index.html │ │ │ └── store/ │ │ │ ├── index.js │ │ │ └── modules/ │ │ │ ├── cart.js │ │ │ └── products.js │ │ └── todomvc/ │ │ ├── app.js │ │ ├── components/ │ │ │ ├── App.vue │ │ │ └── TodoItem.vue │ │ ├── index.html │ │ └── store/ │ │ ├── actions.js │ │ ├── index.js │ │ ├── mutations.js │ │ └── plugins.js │ ├── global.css │ ├── index.html │ ├── server.js │ └── webpack.config.js ├── jest.config.js ├── package.json ├── rollup.config.js ├── scripts/ │ ├── build.js │ └── release.js ├── src/ │ ├── helpers.js │ ├── index.cjs.js │ ├── index.js │ ├── index.mjs │ ├── injectKey.js │ ├── module/ │ │ ├── module-collection.js │ │ └── module.js │ ├── plugins/ │ │ ├── devtool.js │ │ └── logger.js │ ├── store-util.js │ ├── store.js │ └── util.js ├── test/ │ ├── .eslintrc.json │ ├── e2e/ │ │ ├── cart.spec.js │ │ ├── chat.spec.js │ │ ├── counter.spec.js │ │ └── todomvc.spec.js │ ├── esm/ │ │ ├── esm-import.mjs │ │ └── esm-test.js │ ├── helpers.js │ ├── setup.js │ └── unit/ │ ├── helpers.spec.js │ ├── hot-reload.spec.js │ ├── module/ │ │ ├── module-collection.spec.js │ │ └── module.spec.js │ ├── modules.spec.js │ ├── store.spec.js │ └── util.spec.js └── types/ ├── README.md ├── helpers.d.ts ├── index.d.ts ├── logger.d.ts ├── test/ │ ├── helpers.ts │ ├── index.ts │ ├── tsconfig.json │ └── vue.ts ├── tsconfig.json └── vue.d.ts ================================================ FILE CONTENTS ================================================ ================================================ FILE: .babelrc ================================================ { "presets": [ ["@babel/preset-env", { "exclude": [ "transform-regenerator" ] }] ] } ================================================ FILE: .eslintrc.json ================================================ { "root": true, "extends": [ "plugin:vue-libs/recommended" ], "globals": { "__DEV__": true, "__VUE_PROD_DEVTOOLS__": true } } ================================================ FILE: .github/FUNDING.yml ================================================ github: [yyx990803, kiaking, ktsn] open_collective: vuejs patreon: evanyou ================================================ FILE: .github/ISSUE_TEMPLATE/bug_report.yml ================================================ name: "\U0001F41E Bug report" description: Create a report to help us improve labels: ['bug: pending triage'] body: - type: markdown attributes: value: | Thanks for taking the time to fill out this bug report! Please note that Vuex is now in maintenance mode and we will only prioritize critical issues. Consider checking out [Pinia](https://pinia.vuejs.org/) for a more type-friendly and actively maintained alternative. - type: input id: version attributes: label: Version description: What version of Vuex is used in your project? validations: required: true - type: textarea id: bug-description attributes: label: Describe the bug description: A clear and concise description of what the bug is. If you intend to submit a PR for this issue, tell us in the description. Thanks! placeholder: Bug description validations: required: true - type: textarea id: reproduction attributes: label: Reproduction description: Steps to reproduce the behavior. placeholder: Reproduction validations: required: true - type: textarea id: expected attributes: label: Expected behavior description: A clear and concise description of what you expected to happen. placeholder: Expected behavior validations: required: true - type: textarea id: additional-context attributes: label: Additional context description: Add any other context or screenshots about the bug report here. - type: checkboxes id: checkboxes attributes: label: Validations description: Before submitting the issue, please make sure you do the following options: - label: Follow our [Code of Conduct](https://vuejs.org/about/coc.html) required: true - label: Read the [docs](https://vuex.vuejs.org/). required: true - label: Check that there isn't already an issue that reports the same bug to avoid creating a duplicate. required: true ================================================ FILE: .github/ISSUE_TEMPLATE.md ================================================ ================================================ FILE: .github/commit-convention.md ================================================ ## Git Commit Message Convention > This is adapted from [Angular's commit convention](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular). #### TL;DR: Messages must be matched by the following regex: ``` js /^(revert: )?(feat|fix|docs|dx|style|refactor|perf|test|workflow|build|ci|chore|types|wip)(\(.+\))?: .{1,50}/ ``` #### Examples Appears under "Features" header, `store` subheader: ``` feat(store): add 'watch' option ``` Appears under "Bug Fixes" header, `module` subheader, with a link to issue #28: ``` fix(module): handle state overwrite close #28 ``` Appears under "Performance Improvements" header, and under "Breaking Changes" with the breaking change explanation: ``` perf: improve store getters performance by removing 'foo' option BREAKING CHANGE: The 'foo' option has been removed. ``` The following commit and commit `667ecc1` do not appear in the changelog if they are under the same release. If not, the revert commit appears under the "Reverts" header. ``` revert: feat(store): add 'watch' option This reverts commit 667ecc1654a317a13331b17617d973392f415f02. ``` ### Full Message Format A commit message consists of a **header**, **body** and **footer**. The header has a **type**, **scope** and **subject**: ``` ():