@agilebot/eslint-plugin 0.3.8 → 0.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +9 -9
- package/LICENSE.tpl +8 -8
- package/README.md +9 -9
- package/dist/index.js +55 -18
- package/package.json +4 -3
    
        package/LICENSE
    CHANGED
    
    | @@ -1,9 +1,9 @@ | |
| 1 | 
            -
            The MIT License (MIT)
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            Copyright (c) 2024 Agilebot, Inc.
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
         | 
| 6 | 
            -
             | 
| 7 | 
            -
            The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
         | 
| 8 | 
            -
             | 
| 9 | 
            -
            THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         | 
| 1 | 
            +
            The MIT License (MIT)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            Copyright (c) 2024 Agilebot, Inc.
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         | 
    
        package/LICENSE.tpl
    CHANGED
    
    | @@ -1,8 +1,8 @@ | |
| 1 | 
            -
            /**
         | 
| 2 | 
            -
             * @license %(name)s v%(version)s
         | 
| 3 | 
            -
             *
         | 
| 4 | 
            -
             * Copyright (c) Agilebot, Inc. and its affiliates.
         | 
| 5 | 
            -
             *
         | 
| 6 | 
            -
             * This source code is licensed under the MIT license found in the
         | 
| 7 | 
            -
             * LICENSE file in the root directory of this source tree.
         | 
| 8 | 
            -
             */
         | 
| 1 | 
            +
            /**
         | 
| 2 | 
            +
             * @license %(name)s v%(version)s
         | 
| 3 | 
            +
             *
         | 
| 4 | 
            +
             * Copyright (c) Agilebot, Inc. and its affiliates.
         | 
| 5 | 
            +
             *
         | 
| 6 | 
            +
             * This source code is licensed under the MIT license found in the
         | 
| 7 | 
            +
             * LICENSE file in the root directory of this source tree.
         | 
| 8 | 
            +
             */
         | 
    
        package/README.md
    CHANGED
    
    | @@ -1,9 +1,9 @@ | |
| 1 | 
            -
            # @agilebot/eslint-plugin
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            Agilebot extended ESLint rules. For @agilebot/eslint-config.
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            ### Usage
         | 
| 6 | 
            -
             | 
| 7 | 
            -
            ```bash
         | 
| 8 | 
            -
            npm install --save-dev eslint @agilebot/eslint-plugin
         | 
| 9 | 
            -
            ```
         | 
| 1 | 
            +
            # @agilebot/eslint-plugin
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            Agilebot extended ESLint rules. For @agilebot/eslint-config.
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            ### Usage
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            ```bash
         | 
| 8 | 
            +
            npm install --save-dev eslint @agilebot/eslint-plugin
         | 
| 9 | 
            +
            ```
         | 
    
        package/dist/index.js
    CHANGED
    
    | @@ -1,11 +1,11 @@ | |
| 1 | 
            -
            /**
         | 
| 2 | 
            -
             * @license @agilebot/eslint-plugin v0.3. | 
| 3 | 
            -
             *
         | 
| 4 | 
            -
             * Copyright (c) Agilebot, Inc. and its affiliates.
         | 
| 5 | 
            -
             *
         | 
| 6 | 
            -
             * This source code is licensed under the MIT license found in the
         | 
| 7 | 
            -
             * LICENSE file in the root directory of this source tree.
         | 
| 8 | 
            -
             */
         | 
| 1 | 
            +
            /**
         | 
| 2 | 
            +
             * @license @agilebot/eslint-plugin v0.3.9
         | 
| 3 | 
            +
             *
         | 
| 4 | 
            +
             * Copyright (c) Agilebot, Inc. and its affiliates.
         | 
| 5 | 
            +
             *
         | 
| 6 | 
            +
             * This source code is licensed under the MIT license found in the
         | 
| 7 | 
            +
             * LICENSE file in the root directory of this source tree.
         | 
| 8 | 
            +
             */
         | 
| 9 9 | 
             
            'use strict';
         | 
| 10 10 |  | 
| 11 11 | 
             
            var eslintUtils = require('@agilebot/eslint-utils');
         | 
| @@ -162,7 +162,7 @@ var funcNaming = { | |
| 162 162 | 
             
                    }
         | 
| 163 163 | 
             
                  },
         | 
| 164 164 | 
             
                  VariableDeclarator(node) {
         | 
| 165 | 
            -
                    if (node.init && ['FunctionExpression', 'ArrowFunctionExpression'].includes(node.init.type)) {
         | 
| 165 | 
            +
                    if (node.id && node.init && ['FunctionExpression', 'ArrowFunctionExpression'].includes(node.init.type)) {
         | 
| 166 166 | 
             
                      const fnName = node.id.name;
         | 
| 167 167 | 
             
                      let isReactComponent = checkJSXElement(node.init.body);
         | 
| 168 168 | 
             
                      if (node.id.typeAnnotation && node.id.typeAnnotation.typeAnnotation) {
         | 
| @@ -324,7 +324,12 @@ var intlIdMissing = { | |
| 324 324 | 
             
                  category: 'Intl'
         | 
| 325 325 | 
             
                },
         | 
| 326 326 | 
             
                fixable: undefined,
         | 
| 327 | 
            -
                schema: []
         | 
| 327 | 
            +
                schema: [],
         | 
| 328 | 
            +
                messages: {
         | 
| 329 | 
            +
                  missingId: 'Missing id: {{value}}',
         | 
| 330 | 
            +
                  missingIdPattern: 'Missing id pattern: {{value}}',
         | 
| 331 | 
            +
                  disallowInvoke: 'Do not invoke intl by {{value}}'
         | 
| 332 | 
            +
                }
         | 
| 328 333 | 
             
              },
         | 
| 329 334 | 
             
              create: function (context) {
         | 
| 330 335 | 
             
                const translatedIds = getIntlIds(context);
         | 
| @@ -339,7 +344,10 @@ var intlIdMissing = { | |
| 339 344 | 
             
                  if (!isLiteralTranslated(node.value)) {
         | 
| 340 345 | 
             
                    context.report({
         | 
| 341 346 | 
             
                      node: node,
         | 
| 342 | 
            -
                       | 
| 347 | 
            +
                      messageId: 'missingId',
         | 
| 348 | 
            +
                      data: {
         | 
| 349 | 
            +
                        value: node.value
         | 
| 350 | 
            +
                      }
         | 
| 343 351 | 
             
                    });
         | 
| 344 352 | 
             
                  }
         | 
| 345 353 | 
             
                }
         | 
| @@ -349,7 +357,10 @@ var intlIdMissing = { | |
| 349 357 | 
             
                  if (!isTemplateTranslated(re)) {
         | 
| 350 358 | 
             
                    context.report({
         | 
| 351 359 | 
             
                      node: node,
         | 
| 352 | 
            -
                       | 
| 360 | 
            +
                      messageId: 'missingIdPattern',
         | 
| 361 | 
            +
                      data: {
         | 
| 362 | 
            +
                        value: templateLiteralDisplayStr(node)
         | 
| 363 | 
            +
                      }
         | 
| 353 364 | 
             
                    });
         | 
| 354 365 | 
             
                  }
         | 
| 355 366 | 
             
                }
         | 
| @@ -365,7 +376,10 @@ var intlIdMissing = { | |
| 365 376 | 
             
                  }
         | 
| 366 377 | 
             
                  context.report({
         | 
| 367 378 | 
             
                    node: node,
         | 
| 368 | 
            -
                     | 
| 379 | 
            +
                    messageId: 'disallowInvoke',
         | 
| 380 | 
            +
                    data: {
         | 
| 381 | 
            +
                      value: node.value.type
         | 
| 382 | 
            +
                    }
         | 
| 369 383 | 
             
                  });
         | 
| 370 384 | 
             
                }
         | 
| 371 385 | 
             
                return {
         | 
| @@ -495,7 +509,10 @@ var intlIdPrefix = { | |
| 495 509 | 
             
                  items: {
         | 
| 496 510 | 
             
                    type: 'string'
         | 
| 497 511 | 
             
                  }
         | 
| 498 | 
            -
                }]
         | 
| 512 | 
            +
                }],
         | 
| 513 | 
            +
                messages: {
         | 
| 514 | 
            +
                  invalidIdPrefix: 'Invalid id prefix: {{value}}'
         | 
| 515 | 
            +
                }
         | 
| 499 516 | 
             
              },
         | 
| 500 517 | 
             
              create: function (context) {
         | 
| 501 518 | 
             
                if (context.options[0].length === 0) {
         | 
| @@ -506,7 +523,10 @@ var intlIdPrefix = { | |
| 506 523 | 
             
                  if (!hasPrefix(value)) {
         | 
| 507 524 | 
             
                    context.report({
         | 
| 508 525 | 
             
                      node: node,
         | 
| 509 | 
            -
                       | 
| 526 | 
            +
                      messageId: 'invalidIdPrefix',
         | 
| 527 | 
            +
                      data: {
         | 
| 528 | 
            +
                        value
         | 
| 529 | 
            +
                      }
         | 
| 510 530 | 
             
                    });
         | 
| 511 531 | 
             
                  }
         | 
| 512 532 | 
             
                }
         | 
| @@ -634,13 +654,16 @@ var intlNoDefault = { | |
| 634 654 | 
             
                  category: 'Intl'
         | 
| 635 655 | 
             
                },
         | 
| 636 656 | 
             
                fixable: undefined,
         | 
| 637 | 
            -
                schema: []
         | 
| 657 | 
            +
                schema: [],
         | 
| 658 | 
            +
                messages: {
         | 
| 659 | 
            +
                  noDefaultMessage: 'Do not use defaultMessage'
         | 
| 660 | 
            +
                }
         | 
| 638 661 | 
             
              },
         | 
| 639 662 | 
             
              create: function (context) {
         | 
| 640 663 | 
             
                function processAttrNode(node) {
         | 
| 641 664 | 
             
                  context.report({
         | 
| 642 665 | 
             
                    node: node,
         | 
| 643 | 
            -
                     | 
| 666 | 
            +
                    messageId: 'noDefaultMessage'
         | 
| 644 667 | 
             
                  });
         | 
| 645 668 | 
             
                }
         | 
| 646 669 | 
             
                return {
         | 
| @@ -2076,7 +2099,8 @@ var reactPreferNamedPropertyAccess = utils.ESLintUtils.RuleCreator.withoutDocs({ | |
| 2076 2099 | 
             
                  recommended: 'recommended'
         | 
| 2077 2100 | 
             
                },
         | 
| 2078 2101 | 
             
                messages: {
         | 
| 2079 | 
            -
                  illegalReactPropertyAccess: 'Illegal React property access: {{name}}. Use named import instead.'
         | 
| 2102 | 
            +
                  illegalReactPropertyAccess: 'Illegal React property access: {{name}}. Use named import instead.',
         | 
| 2103 | 
            +
                  disallowImportReactEvent: 'Disallow importing React event types to avoid conflicts with global event types.'
         | 
| 2080 2104 | 
             
                },
         | 
| 2081 2105 | 
             
                schema: []
         | 
| 2082 2106 | 
             
              },
         | 
| @@ -2113,6 +2137,19 @@ var reactPreferNamedPropertyAccess = utils.ESLintUtils.RuleCreator.withoutDocs({ | |
| 2113 2137 | 
             
                        yield* updateImportStatement(context, fixer, node.property.name);
         | 
| 2114 2138 | 
             
                      }
         | 
| 2115 2139 | 
             
                    });
         | 
| 2140 | 
            +
                  },
         | 
| 2141 | 
            +
                  ImportDeclaration(node) {
         | 
| 2142 | 
            +
                    if (node.source.value !== 'react' && node.source.value !== 'preact') {
         | 
| 2143 | 
            +
                      return;
         | 
| 2144 | 
            +
                    }
         | 
| 2145 | 
            +
                    node.specifiers.forEach(specifier => {
         | 
| 2146 | 
            +
                      if (specifier.type === 'ImportSpecifier' && specifier.imported.name && specifier.imported.name.endsWith('Event')) {
         | 
| 2147 | 
            +
                        context.report({
         | 
| 2148 | 
            +
                          node: specifier,
         | 
| 2149 | 
            +
                          messageId: 'disallowImportReactEvent'
         | 
| 2150 | 
            +
                        });
         | 
| 2151 | 
            +
                      }
         | 
| 2152 | 
            +
                    });
         | 
| 2116 2153 | 
             
                  }
         | 
| 2117 2154 | 
             
                };
         | 
| 2118 2155 | 
             
              }
         | 
    
        package/package.json
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            {
         | 
| 2 2 | 
             
              "name": "@agilebot/eslint-plugin",
         | 
| 3 | 
            -
              "version": "0.3. | 
| 3 | 
            +
              "version": "0.3.9",
         | 
| 4 4 | 
             
              "description": "Agilebot's ESLint plugin",
         | 
| 5 5 | 
             
              "main": "dist/index.js",
         | 
| 6 6 | 
             
              "types": "dist/index.d.ts",
         | 
| @@ -20,7 +20,7 @@ | |
| 20 20 | 
             
              "dependencies": {
         | 
| 21 21 | 
             
                "@typescript-eslint/utils": "~7.9.0",
         | 
| 22 22 | 
             
                "eslint-plugin-react": "^7.34.1",
         | 
| 23 | 
            -
                "@agilebot/eslint-utils": "0.3. | 
| 23 | 
            +
                "@agilebot/eslint-utils": "0.3.9"
         | 
| 24 24 | 
             
              },
         | 
| 25 25 | 
             
              "peerDependencies": {
         | 
| 26 26 | 
             
                "eslint": "^7.0.0 || ^8.0.0"
         | 
| @@ -32,7 +32,8 @@ | |
| 32 32 | 
             
                "@types/color-name": "^1.1.4",
         | 
| 33 33 | 
             
                "@types/estree": "^1.0.5",
         | 
| 34 34 | 
             
                "color-name": "^2.0.0",
         | 
| 35 | 
            -
                "eslint-vitest-rule-tester": "^0.3.2"
         | 
| 35 | 
            +
                "eslint-vitest-rule-tester": "^0.3.2",
         | 
| 36 | 
            +
                "typescript-eslint": "^7.11.0"
         | 
| 36 37 | 
             
              },
         | 
| 37 38 | 
             
              "scripts": {
         | 
| 38 39 | 
             
                "build": "rollup -c rollup.config.mjs",
         |