diff --git a/.cspell.json b/.cspell.json new file mode 100644 index 00000000..ca5a2cb5 --- /dev/null +++ b/.cspell.json @@ -0,0 +1,55 @@ +{ + "version": "0.2", + "language": "en,en-gb", + "words": [ + "pures", + "icss", + "styl", + "nosources", + "unknwon", + "mycss", + "memfs", + "Koppers", + "sokra", + "plusplus", + "localident", + "fullhash", + "requestify", + "XSSI", + "Requestable", + "requestable", + "requestify", + "nourl", + "stylesheet", + "classname", + "EACE", + "UAAU", + "AACZ", + "MCEP", + "stringifier", + "Zvby", + "uncnoun", + "bazzy", + "svars", + "concat", + "camelcase", + "Brotli", + "Contex", + "vspace", + "commitlint", + "eslintcache", + "akait" + ], + "ignorePaths": [ + "CHANGELOG.md", + "package.json", + "dist/**", + "**/__snapshots__/**", + "package-lock.json", + "**/*.css", + "**/fonts/**", + "node_modules", + "coverage", + "*.log" + ] +} diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..5f795282 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +# editorconfig.org + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..c52afd16 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,4 @@ +/coverage +/dist +/node_modules +/test/fixtures \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..7a66ba28 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,19 @@ +module.exports = { + root: true, + extends: ["@webpack-contrib/eslint-config-webpack", "prettier"], + overrides: [ + { + files: "src/runtime/**/*", + env: { + browser: true, + }, + rules: { + "prefer-destructuring": "off", + "no-param-reassign": "off", + "no-continue": "off", + "no-underscore-dangle": "off", + "no-undefined": "off", + }, + }, + ], +}; diff --git a/.eslintrc.yml b/.eslintrc.yml deleted file mode 100644 index ff314c41..00000000 --- a/.eslintrc.yml +++ /dev/null @@ -1,247 +0,0 @@ -env: - es6: true - node: true -extends: 'eslint:recommended' -parserOptions: - sourceType: module -rules: - accessor-pairs: error - array-bracket-spacing: 'off' - array-callback-return: error - arrow-body-style: error - arrow-parens: error - arrow-spacing: error - block-scoped-var: 'off' - block-spacing: - - error - - always - brace-style: - - error - - 1tbs - - allowSingleLine: true - callback-return: 'off' - camelcase: - - error - - properties: never - capitalized-comments: 'off' - class-methods-use-this: error - comma-dangle: 'off' - comma-spacing: - - error - - after: true - before: false - comma-style: - - error - - last - complexity: error - computed-property-spacing: - - error - - never - consistent-return: 'off' - consistent-this: error - curly: 'off' - default-case: 'off' - dot-location: error - dot-notation: - - error - - allowKeywords: true - eol-last: error - eqeqeq: 'off' - func-call-spacing: error - func-name-matching: 'off' - func-names: 'off' - func-style: - - error - - declaration - generator-star-spacing: error - global-require: 'off' - guard-for-in: error - handle-callback-err: error - id-blacklist: error - id-length: 'off' - id-match: error - indent: 'off' - init-declarations: 'off' - jsx-quotes: error - key-spacing: error - keyword-spacing: 'off' - line-comment-position: 'off' - linebreak-style: - - error - - unix - lines-around-comment: error - lines-around-directive: error - max-depth: error - max-len: 'off' - max-lines: error - max-nested-callbacks: error - max-params: 'off' - max-statements: 'off' - max-statements-per-line: error - multiline-ternary: 'off' - new-cap: error - new-parens: error - newline-after-var: 'off' - newline-before-return: 'off' - newline-per-chained-call: 'off' - no-alert: error - no-array-constructor: error - no-await-in-loop: error - no-bitwise: error - no-caller: error - no-catch-shadow: error - no-confusing-arrow: error - no-continue: error - no-div-regex: error - no-duplicate-imports: error - no-else-return: 'off' - no-empty-function: error - no-eq-null: 'off' - no-eval: error - no-extend-native: error - no-extra-bind: error - no-extra-label: error - no-extra-parens: 'off' - no-floating-decimal: error - no-implicit-globals: error - no-implied-eval: error - no-inline-comments: 'off' - no-inner-declarations: - - error - - functions - no-invalid-this: 'off' - no-iterator: error - no-label-var: error - no-labels: error - no-lone-blocks: error - no-lonely-if: error - no-loop-func: error - no-magic-numbers: 'off' - no-mixed-operators: error - no-mixed-requires: error - no-multi-assign: error - no-multi-spaces: 'off' - no-multi-str: error - no-multiple-empty-lines: error - no-native-reassign: error - no-negated-condition: 'off' - no-negated-in-lhs: error - no-nested-ternary: error - no-new: error - no-new-func: error - no-new-object: error - no-new-require: error - no-new-wrappers: error - no-octal-escape: error - no-param-reassign: 'off' - no-path-concat: error - no-plusplus: - - error - - allowForLoopAfterthoughts: true - no-process-env: error - no-process-exit: error - no-proto: error - no-prototype-builtins: error - no-restricted-globals: error - no-restricted-imports: error - no-restricted-modules: error - no-restricted-properties: error - no-restricted-syntax: error - no-return-assign: error - no-return-await: error - no-script-url: error - no-self-compare: error - no-sequences: error - no-shadow: error - no-shadow-restricted-names: error - no-spaced-func: error - no-sync: 'off' - no-tabs: 'off' - no-template-curly-in-string: error - no-ternary: 'off' - no-throw-literal: error - no-trailing-spaces: - - error - - skipBlankLines: true - no-undef-init: error - no-undefined: 'off' - no-underscore-dangle: error - no-unmodified-loop-condition: error - no-unneeded-ternary: error - no-unused-expressions: error - no-use-before-define: 'off' - no-useless-call: error - no-useless-computed-key: error - no-useless-concat: error - no-useless-constructor: error - no-useless-escape: error - no-useless-rename: error - no-useless-return: error - no-var: 'off' - no-void: error - no-warning-comments: error - no-whitespace-before-property: error - no-with: error - object-curly-newline: 'off' - object-curly-spacing: 'off' - object-property-newline: - - error - - allowMultiplePropertiesPerLine: true - object-shorthand: 'off' - one-var: 'off' - one-var-declaration-per-line: error - operator-assignment: error - operator-linebreak: 'off' - padded-blocks: 'off' - prefer-arrow-callback: 'off' - prefer-const: error - prefer-destructuring: - - error - - array: false - object: false - prefer-numeric-literals: error - prefer-promise-reject-errors: error - prefer-reflect: 'off' - prefer-rest-params: error - prefer-spread: error - prefer-template: 'off' - quote-props: 'off' - quotes: 'off' - radix: - - error - - always - require-await: error - require-jsdoc: 'off' - rest-spread-spacing: error - semi: 'off' - semi-spacing: - - error - - after: true - before: false - sort-imports: error - sort-keys: 'off' - sort-vars: error - space-before-blocks: 'off' - space-before-function-paren: 'off' - space-in-parens: - - error - - never - space-infix-ops: error - space-unary-ops: error - spaced-comment: 'off' - strict: error - symbol-description: error - template-curly-spacing: error - unicode-bom: - - error - - never - valid-jsdoc: error - vars-on-top: 'off' - wrap-iife: - - error - - any - wrap-regex: 'off' - yield-star-spacing: error - yoda: - - error - - never diff --git a/.gitattributes b/.gitattributes index b1c30adb..6fcfa732 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,4 @@ -yarn.lock -diff * text=auto bin/* eol=lf +yarn.lock -diff +package-lock.json -diff diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..f3206485 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,6 @@ +# These are the default owners for everything in +# webpack-contrib +@webpack-contrib/org-maintainers + +# Add repository specific users / groups +# below here for libs that are not maintained by the org. diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 00000000..3dd6cd25 --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,156 @@ +# Contributing in @webpack-contrib + +We'd always love contributions to further improve the webpack / webpack-contrib ecosystem! +Here are the guidelines we'd like you to follow: + +- [Questions and Problems](#question) +- [Issues and Bugs](#issue) +- [Feature Requests](#feature) +- [Pull Request Submission Guidelines](#submit-pr) +- [Commit Message Conventions](#commit) + +## Got a Question or Problem? + +Please submit support requests and questions to StackOverflow using the tag [[webpack]](http://stackoverflow.com/tags/webpack). +StackOverflow is better suited for this kind of support though you may also inquire in [Webpack Gitter](https://gitter.im/webpack/webpack). +The issue tracker is for bug reports and feature discussions. + +## Found an Issue or Bug? + +Before you submit an issue, please search the issue tracker, an issue for your problem may already exist, and the discussion might inform you of workarounds readily available. + +We want to fix all the issues as soon as possible, but before fixing a bug, we need to reproduce and confirm it. In order to reproduce bugs, we ask that you provide a minimal reproduction scenario (GitHub repo or failing test case). Having a live, reproducible scenario gives us a wealth of important information without going back & forth to you with additional questions like: + +- version of Webpack used +- version of the loader / plugin you are creating a bug report for +- the use-case that fails + +A minimal reproduce scenario allows us to quickly confirm a bug (or point out config problems) as well as confirm that we are fixing the right problem. + +We will be insisting on a minimal reproduction scenario in order to save the maintainers' time and ultimately be able to fix more bugs. We understand that sometimes it might be hard to extract essential bits of code from a larger codebase, but we really need to isolate the problem before we can fix it. + +Unfortunately, we are unable to investigate or fix bugs without a minimal reproduction, so if we don't hear back from you, we may have to close an issue that doesn't have enough info to be reproduced. + +## Feature Requests? + +You can _request_ a new feature by creating an issue on GitHub. + +If you would like to _implement_ a new feature yourself, please **first submit an issue** with a proposal to ensure the idea aligns with the goals of the project. + +## Pull Request Submission Guidelines + +Before you submit your Pull Request (PR) consider the following guidelines: + +- Search GitHub for an open or closed PR related to your submission to avoid duplicating effort. +- Commit your changes using a descriptive commit message that follows our [commit message conventions](#commit). This is important because release notes are automatically generated from these messages. +- Complete the `Pull Request Template`. Pull requests that ignore the template will not be reviewed. +- Please sign the `Contributor License Agreement (CLA)` when you open your pull request. We cannot accept your contribution without it. Be sure to sign using the primary email address associated with your local and GitHub account. + +## Webpack Contrib Commit Conventions + +Each commit message consists of a **header**, a **body** and a **footer**. The header has a special +format that includes a **type**, a **scope** and a **subject**: + +``` +(): + + + +