// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`convert-tslint-to-eslint should not override .eslint config if migration in progress 1`] = `
Object {
  "ignorePatterns": Array [
    "**/*",
  ],
  "overrides": Array [
    Object {
      "files": Array [
        "*.ts",
        "*.tsx",
        "*.js",
        "*.jsx",
      ],
      "rules": Object {
        "@nrwl/nx/enforce-module-boundaries": Array [
          "error",
          Object {
            "allow": Array [
              "@nx-example/shared/product/data/testing",
            ],
            "depConstraints": Array [
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:feature",
                  "type:ui",
                ],
                "sourceTag": "type:app",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:ui",
                  "type:data",
                  "type:types",
                  "type:state",
                ],
                "sourceTag": "type:feature",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:types",
                ],
                "sourceTag": "type:types",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:state",
                  "type:types",
                  "type:data",
                ],
                "sourceTag": "type:state",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:types",
                ],
                "sourceTag": "type:data",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:e2e-utils",
                ],
                "sourceTag": "type:e2e",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:types",
                  "type:ui",
                ],
                "sourceTag": "type:ui",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "scope:products",
                  "scope:shared",
                ],
                "sourceTag": "scope:products",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "scope:cart",
                  "scope:shared",
                ],
                "sourceTag": "scope:cart",
              },
            ],
            "enforceBuildableLibDependency": true,
          },
        ],
      },
    },
    Object {
      "extends": Array [
        "plugin:@nrwl/nx/typescript",
      ],
      "files": Array [
        "*.ts",
        "*.tsx",
      ],
      "rules": Object {},
    },
    Object {
      "extends": Array [
        "plugin:@nrwl/nx/javascript",
      ],
      "files": Array [
        "*.js",
        "*.jsx",
      ],
      "rules": Object {},
    },
    Object {
      "files": Array [
        "*.ts",
      ],
      "plugins": Array [
        "eslint-plugin-import",
        "@angular-eslint/eslint-plugin",
        "@typescript-eslint",
      ],
      "rules": Object {
        "@angular-eslint/component-selector": Array [
          "error",
          Object {
            "prefix": "app",
            "style": "kebab-case",
            "type": "element",
          },
        ],
        "@angular-eslint/directive-selector": Array [
          "error",
          Object {
            "prefix": "app",
            "style": "camelCase",
            "type": "attribute",
          },
        ],
        "@angular-eslint/no-conflicting-lifecycle": "error",
        "@angular-eslint/no-host-metadata-property": "error",
        "@angular-eslint/no-input-rename": "error",
        "@angular-eslint/no-inputs-metadata-property": "error",
        "@angular-eslint/no-output-native": "error",
        "@angular-eslint/no-output-on-prefix": "error",
        "@angular-eslint/no-output-rename": "error",
        "@angular-eslint/no-outputs-metadata-property": "error",
        "@angular-eslint/use-lifecycle-interface": "error",
        "@angular-eslint/use-pipe-transform-interface": "error",
        "@typescript-eslint/consistent-type-definitions": "error",
        "@typescript-eslint/dot-notation": "off",
        "@typescript-eslint/explicit-member-accessibility": Array [
          "off",
          Object {
            "accessibility": "explicit",
          },
        ],
        "@typescript-eslint/member-ordering": "error",
        "@typescript-eslint/naming-convention": Array [
          "error",
          Object {
            "format": Array [
              "camelCase",
              "UPPER_CASE",
            ],
            "leadingUnderscore": "forbid",
            "selector": "variable",
            "trailingUnderscore": "forbid",
          },
        ],
        "@typescript-eslint/no-empty-function": "off",
        "@typescript-eslint/no-empty-interface": "error",
        "@typescript-eslint/no-inferrable-types": Array [
          "error",
          Object {
            "ignoreParameters": true,
          },
        ],
        "@typescript-eslint/no-misused-new": "error",
        "@typescript-eslint/no-non-null-assertion": "error",
        "@typescript-eslint/no-shadow": Array [
          "error",
          Object {
            "hoist": "all",
          },
        ],
        "@typescript-eslint/no-unused-expressions": "error",
        "@typescript-eslint/prefer-function-type": "error",
        "@typescript-eslint/unified-signatures": "error",
        "arrow-body-style": "error",
        "constructor-super": "error",
        "dot-notation": "off",
        "eqeqeq": Array [
          "error",
          "smart",
        ],
        "guard-for-in": "error",
        "id-denylist": "off",
        "id-match": "off",
        "import/no-deprecated": "warn",
        "no-bitwise": "error",
        "no-caller": "error",
        "no-console": Array [
          "error",
          Object {},
        ],
        "no-debugger": "error",
        "no-empty": "off",
        "no-empty-function": "off",
        "no-eval": "error",
        "no-fallthrough": "error",
        "no-new-wrappers": "error",
        "no-restricted-imports": Array [
          "error",
          "rxjs/Rx",
        ],
        "no-shadow": "off",
        "no-throw-literal": "error",
        "no-undef-init": "error",
        "no-underscore-dangle": "off",
        "no-unused-expressions": "off",
        "no-var": "error",
        "prefer-const": "error",
        "radix": "error",
      },
    },
    Object {
      "files": Array [
        "*.html",
      ],
      "plugins": Array [
        "@angular-eslint/eslint-plugin-template",
      ],
      "rules": Object {
        "@angular-eslint/template/banana-in-box": "error",
        "@angular-eslint/template/eqeqeq": "error",
        "@angular-eslint/template/no-negated-async": "error",
      },
    },
  ],
  "plugins": Array [
    "@nrwl/nx",
  ],
  "root": true,
}
`;

exports[`convert-tslint-to-eslint should not override .eslint config if migration in progress 2`] = `
Object {
  "extends": Array [
    "../../.eslintrc.json",
  ],
  "ignorePatterns": Array [
    "!**/*",
  ],
  "overrides": Array [
    Object {
      "extends": Array [
        "plugin:@nrwl/nx/angular",
        "plugin:@angular-eslint/template/process-inline-templates",
      ],
      "files": Array [
        "*.ts",
      ],
      "plugins": Array [
        "@angular-eslint/eslint-plugin",
        "@typescript-eslint",
      ],
      "rules": Object {
        "@angular-eslint/component-selector": Array [
          "error",
          Object {
            "prefix": "angular-app",
            "style": "kebab-case",
            "type": "element",
          },
        ],
        "@angular-eslint/directive-selector": Array [
          "error",
          Object {
            "prefix": "angular-app",
            "style": "camelCase",
            "type": "attribute",
          },
        ],
        "@typescript-eslint/no-empty-interface": "error",
      },
    },
    Object {
      "extends": Array [
        "plugin:@nrwl/nx/angular-template",
      ],
      "files": Array [
        "*.html",
      ],
      "plugins": Array [
        "@angular-eslint/eslint-plugin-template",
      ],
      "rules": Object {
        "@angular-eslint/template/banana-in-box": "error",
      },
    },
  ],
}
`;

exports[`convert-tslint-to-eslint should not override .eslint config if migration in progress 3`] = `
Object {
  "ignorePatterns": Array [
    "**/*",
  ],
  "overrides": Array [
    Object {
      "files": Array [
        "*.ts",
        "*.tsx",
        "*.js",
        "*.jsx",
      ],
      "rules": Object {
        "@nrwl/nx/enforce-module-boundaries": Array [
          "error",
          Object {
            "allow": Array [
              "@nx-example/shared/product/data/testing",
            ],
            "depConstraints": Array [
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:feature",
                  "type:ui",
                ],
                "sourceTag": "type:app",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:ui",
                  "type:data",
                  "type:types",
                  "type:state",
                ],
                "sourceTag": "type:feature",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:types",
                ],
                "sourceTag": "type:types",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:state",
                  "type:types",
                  "type:data",
                ],
                "sourceTag": "type:state",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:types",
                ],
                "sourceTag": "type:data",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:e2e-utils",
                ],
                "sourceTag": "type:e2e",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:types",
                  "type:ui",
                ],
                "sourceTag": "type:ui",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "scope:products",
                  "scope:shared",
                ],
                "sourceTag": "scope:products",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "scope:cart",
                  "scope:shared",
                ],
                "sourceTag": "scope:cart",
              },
            ],
            "enforceBuildableLibDependency": false,
          },
        ],
      },
    },
    Object {
      "extends": Array [
        "plugin:@nrwl/nx/typescript",
      ],
      "files": Array [
        "*.ts",
        "*.tsx",
      ],
      "rules": Object {},
    },
    Object {
      "extends": Array [
        "plugin:@nrwl/nx/javascript",
      ],
      "files": Array [
        "*.js",
        "*.jsx",
      ],
      "rules": Object {},
    },
    Object {
      "files": Array [
        "*.ts",
      ],
      "plugins": Array [
        "eslint-plugin-import",
        "@angular-eslint/eslint-plugin",
        "@typescript-eslint",
      ],
      "rules": Object {
        "@angular-eslint/component-selector": Array [
          "error",
          Object {
            "prefix": "app",
            "style": "kebab-case",
            "type": "element",
          },
        ],
        "@angular-eslint/directive-selector": Array [
          "error",
          Object {
            "prefix": "app",
            "style": "camelCase",
            "type": "attribute",
          },
        ],
        "@angular-eslint/no-conflicting-lifecycle": "error",
        "@angular-eslint/no-host-metadata-property": "error",
        "@angular-eslint/no-input-rename": "error",
        "@angular-eslint/no-inputs-metadata-property": "error",
        "@angular-eslint/no-output-native": "error",
        "@angular-eslint/no-output-on-prefix": "error",
        "@angular-eslint/no-output-rename": "error",
        "@angular-eslint/no-outputs-metadata-property": "error",
        "@angular-eslint/use-lifecycle-interface": "error",
        "@angular-eslint/use-pipe-transform-interface": "error",
        "@typescript-eslint/consistent-type-definitions": "error",
        "@typescript-eslint/dot-notation": "off",
        "@typescript-eslint/explicit-member-accessibility": Array [
          "off",
          Object {
            "accessibility": "explicit",
          },
        ],
        "@typescript-eslint/member-ordering": "error",
        "@typescript-eslint/naming-convention": Array [
          "error",
          Object {
            "format": Array [
              "camelCase",
              "UPPER_CASE",
            ],
            "leadingUnderscore": "forbid",
            "selector": "variable",
            "trailingUnderscore": "forbid",
          },
        ],
        "@typescript-eslint/no-empty-function": "off",
        "@typescript-eslint/no-empty-interface": "error",
        "@typescript-eslint/no-inferrable-types": Array [
          "error",
          Object {
            "ignoreParameters": true,
          },
        ],
        "@typescript-eslint/no-misused-new": "error",
        "@typescript-eslint/no-non-null-assertion": "error",
        "@typescript-eslint/no-shadow": Array [
          "error",
          Object {
            "hoist": "all",
          },
        ],
        "@typescript-eslint/no-unused-expressions": "error",
        "@typescript-eslint/prefer-function-type": "error",
        "@typescript-eslint/unified-signatures": "error",
        "arrow-body-style": "error",
        "constructor-super": "error",
        "dot-notation": "off",
        "eqeqeq": Array [
          "error",
          "smart",
        ],
        "guard-for-in": "error",
        "id-denylist": "off",
        "id-match": "off",
        "import/no-deprecated": "warn",
        "no-bitwise": "error",
        "no-caller": "error",
        "no-console": Array [
          "error",
          Object {},
        ],
        "no-debugger": "error",
        "no-empty": "off",
        "no-empty-function": "off",
        "no-eval": "error",
        "no-fallthrough": "error",
        "no-new-wrappers": "error",
        "no-restricted-imports": Array [
          "error",
          "rxjs/Rx",
        ],
        "no-shadow": "off",
        "no-throw-literal": "error",
        "no-undef-init": "error",
        "no-underscore-dangle": "off",
        "no-unused-expressions": "off",
        "no-var": "error",
        "prefer-const": "error",
        "radix": "error",
      },
    },
    Object {
      "files": Array [
        "*.html",
      ],
      "plugins": Array [
        "@angular-eslint/eslint-plugin-template",
      ],
      "rules": Object {
        "@angular-eslint/template/banana-in-box": "error",
        "@angular-eslint/template/eqeqeq": "error",
        "@angular-eslint/template/no-negated-async": "error",
      },
    },
  ],
  "plugins": Array [
    "@nrwl/nx",
  ],
  "root": true,
}
`;

exports[`convert-tslint-to-eslint should work for Angular applications 1`] = `
Object {
  "dependencies": Object {},
  "devDependencies": Object {
    "@angular-eslint/eslint-plugin": "~15.0.0",
    "@angular-eslint/eslint-plugin-template": "~15.0.0",
    "@angular-eslint/template-parser": "~15.0.0",
    "@nrwl/eslint-plugin-nx": "0.0.1",
    "@nrwl/linter": "0.0.1",
    "@typescript-eslint/eslint-plugin": "^5.36.1",
    "@typescript-eslint/parser": "^5.36.1",
    "eslint": "~8.15.0",
    "eslint-config-prettier": "8.1.0",
    "eslint-plugin-import": "latest",
  },
  "name": "test-name",
}
`;

exports[`convert-tslint-to-eslint should work for Angular applications 2`] = `
Object {
  "$schema": "../../node_modules/nx/schemas/project-schema.json",
  "name": "angular-app-1",
  "prefix": "angular-app",
  "projectType": "application",
  "root": "apps/angular-app-1",
  "targets": Object {
    "lint": Object {
      "executor": "@nrwl/linter:eslint",
      "options": Object {
        "lintFilePatterns": Array [
          "apps/angular-app-1/**/*.ts",
          "apps/angular-app-1/**/*.html",
        ],
      },
      "outputs": Array [
        "{options.outputFile}",
      ],
    },
  },
}
`;

exports[`convert-tslint-to-eslint should work for Angular applications 3`] = `
Object {
  "ignorePatterns": Array [
    "**/*",
  ],
  "overrides": Array [
    Object {
      "files": Array [
        "*.ts",
        "*.tsx",
        "*.js",
        "*.jsx",
      ],
      "rules": Object {
        "@nrwl/nx/enforce-module-boundaries": Array [
          "error",
          Object {
            "allow": Array [
              "@nx-example/shared/product/data/testing",
            ],
            "depConstraints": Array [
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:feature",
                  "type:ui",
                ],
                "sourceTag": "type:app",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:ui",
                  "type:data",
                  "type:types",
                  "type:state",
                ],
                "sourceTag": "type:feature",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:types",
                ],
                "sourceTag": "type:types",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:state",
                  "type:types",
                  "type:data",
                ],
                "sourceTag": "type:state",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:types",
                ],
                "sourceTag": "type:data",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:e2e-utils",
                ],
                "sourceTag": "type:e2e",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:types",
                  "type:ui",
                ],
                "sourceTag": "type:ui",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "scope:products",
                  "scope:shared",
                ],
                "sourceTag": "scope:products",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "scope:cart",
                  "scope:shared",
                ],
                "sourceTag": "scope:cart",
              },
            ],
            "enforceBuildableLibDependency": true,
          },
        ],
      },
    },
    Object {
      "extends": Array [
        "plugin:@nrwl/nx/typescript",
      ],
      "files": Array [
        "*.ts",
        "*.tsx",
      ],
      "rules": Object {},
    },
    Object {
      "extends": Array [
        "plugin:@nrwl/nx/javascript",
      ],
      "files": Array [
        "*.js",
        "*.jsx",
      ],
      "rules": Object {},
    },
    Object {
      "files": Array [
        "*.ts",
      ],
      "plugins": Array [
        "eslint-plugin-import",
        "@angular-eslint/eslint-plugin",
        "@typescript-eslint",
      ],
      "rules": Object {
        "@angular-eslint/component-selector": Array [
          "error",
          Object {
            "prefix": "app",
            "style": "kebab-case",
            "type": "element",
          },
        ],
        "@angular-eslint/directive-selector": Array [
          "error",
          Object {
            "prefix": "app",
            "style": "camelCase",
            "type": "attribute",
          },
        ],
        "@angular-eslint/no-conflicting-lifecycle": "error",
        "@angular-eslint/no-host-metadata-property": "error",
        "@angular-eslint/no-input-rename": "error",
        "@angular-eslint/no-inputs-metadata-property": "error",
        "@angular-eslint/no-output-native": "error",
        "@angular-eslint/no-output-on-prefix": "error",
        "@angular-eslint/no-output-rename": "error",
        "@angular-eslint/no-outputs-metadata-property": "error",
        "@angular-eslint/use-lifecycle-interface": "error",
        "@angular-eslint/use-pipe-transform-interface": "error",
        "@typescript-eslint/consistent-type-definitions": "error",
        "@typescript-eslint/dot-notation": "off",
        "@typescript-eslint/explicit-member-accessibility": Array [
          "off",
          Object {
            "accessibility": "explicit",
          },
        ],
        "@typescript-eslint/member-ordering": "error",
        "@typescript-eslint/naming-convention": Array [
          "error",
          Object {
            "format": Array [
              "camelCase",
              "UPPER_CASE",
            ],
            "leadingUnderscore": "forbid",
            "selector": "variable",
            "trailingUnderscore": "forbid",
          },
        ],
        "@typescript-eslint/no-empty-function": "off",
        "@typescript-eslint/no-empty-interface": "error",
        "@typescript-eslint/no-inferrable-types": Array [
          "error",
          Object {
            "ignoreParameters": true,
          },
        ],
        "@typescript-eslint/no-misused-new": "error",
        "@typescript-eslint/no-non-null-assertion": "error",
        "@typescript-eslint/no-shadow": Array [
          "error",
          Object {
            "hoist": "all",
          },
        ],
        "@typescript-eslint/no-unused-expressions": "error",
        "@typescript-eslint/prefer-function-type": "error",
        "@typescript-eslint/unified-signatures": "error",
        "arrow-body-style": "error",
        "constructor-super": "error",
        "dot-notation": "off",
        "eqeqeq": Array [
          "error",
          "smart",
        ],
        "guard-for-in": "error",
        "id-denylist": "off",
        "id-match": "off",
        "import/no-deprecated": "warn",
        "no-bitwise": "error",
        "no-caller": "error",
        "no-console": Array [
          "error",
          Object {},
        ],
        "no-debugger": "error",
        "no-empty": "off",
        "no-empty-function": "off",
        "no-eval": "error",
        "no-fallthrough": "error",
        "no-new-wrappers": "error",
        "no-restricted-imports": Array [
          "error",
          "rxjs/Rx",
        ],
        "no-shadow": "off",
        "no-throw-literal": "error",
        "no-undef-init": "error",
        "no-underscore-dangle": "off",
        "no-unused-expressions": "off",
        "no-var": "error",
        "prefer-const": "error",
        "radix": "error",
      },
    },
    Object {
      "files": Array [
        "*.html",
      ],
      "plugins": Array [
        "@angular-eslint/eslint-plugin-template",
      ],
      "rules": Object {
        "@angular-eslint/template/banana-in-box": "error",
        "@angular-eslint/template/eqeqeq": "error",
        "@angular-eslint/template/no-negated-async": "error",
      },
    },
  ],
  "plugins": Array [
    "@nrwl/nx",
  ],
  "root": true,
}
`;

exports[`convert-tslint-to-eslint should work for Angular applications 4`] = `
Object {
  "extends": Array [
    "../../.eslintrc.json",
  ],
  "ignorePatterns": Array [
    "!**/*",
  ],
  "overrides": Array [
    Object {
      "extends": Array [
        "plugin:@nrwl/nx/angular",
        "plugin:@angular-eslint/template/process-inline-templates",
      ],
      "files": Array [
        "*.ts",
      ],
      "parserOptions": Object {
        "project": Array [
          "apps/angular-app-1/tsconfig.*?.json",
        ],
      },
      "plugins": Array [
        "@angular-eslint/eslint-plugin",
        "@typescript-eslint",
      ],
      "rules": Object {
        "@angular-eslint/component-selector": Array [
          "error",
          Object {
            "prefix": "angular-app",
            "style": "kebab-case",
            "type": "element",
          },
        ],
        "@angular-eslint/directive-selector": Array [
          "error",
          Object {
            "prefix": "angular-app",
            "style": "camelCase",
            "type": "attribute",
          },
        ],
        "@typescript-eslint/await-thenable": "error",
        "@typescript-eslint/no-empty-interface": "error",
      },
    },
    Object {
      "extends": Array [
        "plugin:@nrwl/nx/angular-template",
      ],
      "files": Array [
        "*.html",
      ],
      "plugins": Array [
        "@angular-eslint/eslint-plugin-template",
      ],
      "rules": Object {
        "@angular-eslint/template/banana-in-box": "error",
      },
    },
  ],
}
`;

exports[`convert-tslint-to-eslint should work for Angular libraries 1`] = `
Object {
  "dependencies": Object {},
  "devDependencies": Object {
    "@angular-eslint/eslint-plugin": "~15.0.0",
    "@angular-eslint/eslint-plugin-template": "~15.0.0",
    "@angular-eslint/template-parser": "~15.0.0",
    "@nrwl/eslint-plugin-nx": "0.0.1",
    "@nrwl/linter": "0.0.1",
    "@typescript-eslint/eslint-plugin": "^5.36.1",
    "@typescript-eslint/parser": "^5.36.1",
    "eslint": "~8.15.0",
    "eslint-config-prettier": "8.1.0",
    "eslint-plugin-import": "latest",
  },
  "name": "test-name",
}
`;

exports[`convert-tslint-to-eslint should work for Angular libraries 2`] = `
Object {
  "$schema": "../../node_modules/nx/schemas/project-schema.json",
  "name": "angular-lib-1",
  "prefix": "angular-app",
  "projectType": "library",
  "root": "libs/angular-lib-1",
  "targets": Object {
    "lint": Object {
      "executor": "@nrwl/linter:eslint",
      "options": Object {
        "lintFilePatterns": Array [
          "libs/angular-lib-1/**/*.ts",
          "libs/angular-lib-1/**/*.html",
        ],
      },
      "outputs": Array [
        "{options.outputFile}",
      ],
    },
  },
}
`;

exports[`convert-tslint-to-eslint should work for Angular libraries 3`] = `
Object {
  "ignorePatterns": Array [
    "**/*",
  ],
  "overrides": Array [
    Object {
      "files": Array [
        "*.ts",
        "*.tsx",
        "*.js",
        "*.jsx",
      ],
      "rules": Object {
        "@nrwl/nx/enforce-module-boundaries": Array [
          "error",
          Object {
            "allow": Array [
              "@nx-example/shared/product/data/testing",
            ],
            "depConstraints": Array [
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:feature",
                  "type:ui",
                ],
                "sourceTag": "type:app",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:ui",
                  "type:data",
                  "type:types",
                  "type:state",
                ],
                "sourceTag": "type:feature",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:types",
                ],
                "sourceTag": "type:types",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:state",
                  "type:types",
                  "type:data",
                ],
                "sourceTag": "type:state",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:types",
                ],
                "sourceTag": "type:data",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:e2e-utils",
                ],
                "sourceTag": "type:e2e",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "type:types",
                  "type:ui",
                ],
                "sourceTag": "type:ui",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "scope:products",
                  "scope:shared",
                ],
                "sourceTag": "scope:products",
              },
              Object {
                "onlyDependOnLibsWithTags": Array [
                  "scope:cart",
                  "scope:shared",
                ],
                "sourceTag": "scope:cart",
              },
            ],
            "enforceBuildableLibDependency": true,
          },
        ],
      },
    },
    Object {
      "extends": Array [
        "plugin:@nrwl/nx/typescript",
      ],
      "files": Array [
        "*.ts",
        "*.tsx",
      ],
      "rules": Object {},
    },
    Object {
      "extends": Array [
        "plugin:@nrwl/nx/javascript",
      ],
      "files": Array [
        "*.js",
        "*.jsx",
      ],
      "rules": Object {},
    },
    Object {
      "files": Array [
        "*.ts",
      ],
      "plugins": Array [
        "eslint-plugin-import",
        "@angular-eslint/eslint-plugin",
        "@typescript-eslint",
      ],
      "rules": Object {
        "@angular-eslint/component-selector": Array [
          "error",
          Object {
            "prefix": "app",
            "style": "kebab-case",
            "type": "element",
          },
        ],
        "@angular-eslint/directive-selector": Array [
          "error",
          Object {
            "prefix": "app",
            "style": "camelCase",
            "type": "attribute",
          },
        ],
        "@angular-eslint/no-conflicting-lifecycle": "error",
        "@angular-eslint/no-host-metadata-property": "error",
        "@angular-eslint/no-input-rename": "error",
        "@angular-eslint/no-inputs-metadata-property": "error",
        "@angular-eslint/no-output-native": "error",
        "@angular-eslint/no-output-on-prefix": "error",
        "@angular-eslint/no-output-rename": "error",
        "@angular-eslint/no-outputs-metadata-property": "error",
        "@angular-eslint/use-lifecycle-interface": "error",
        "@angular-eslint/use-pipe-transform-interface": "error",
        "@typescript-eslint/consistent-type-definitions": "error",
        "@typescript-eslint/dot-notation": "off",
        "@typescript-eslint/explicit-member-accessibility": Array [
          "off",
          Object {
            "accessibility": "explicit",
          },
        ],
        "@typescript-eslint/member-ordering": "error",
        "@typescript-eslint/naming-convention": Array [
          "error",
          Object {
            "format": Array [
              "camelCase",
              "UPPER_CASE",
            ],
            "leadingUnderscore": "forbid",
            "selector": "variable",
            "trailingUnderscore": "forbid",
          },
        ],
        "@typescript-eslint/no-empty-function": "off",
        "@typescript-eslint/no-empty-interface": "error",
        "@typescript-eslint/no-inferrable-types": Array [
          "error",
          Object {
            "ignoreParameters": true,
          },
        ],
        "@typescript-eslint/no-misused-new": "error",
        "@typescript-eslint/no-non-null-assertion": "error",
        "@typescript-eslint/no-shadow": Array [
          "error",
          Object {
            "hoist": "all",
          },
        ],
        "@typescript-eslint/no-unused-expressions": "error",
        "@typescript-eslint/prefer-function-type": "error",
        "@typescript-eslint/unified-signatures": "error",
        "arrow-body-style": "error",
        "constructor-super": "error",
        "dot-notation": "off",
        "eqeqeq": Array [
          "error",
          "smart",
        ],
        "guard-for-in": "error",
        "id-denylist": "off",
        "id-match": "off",
        "import/no-deprecated": "warn",
        "no-bitwise": "error",
        "no-caller": "error",
        "no-console": Array [
          "error",
          Object {},
        ],
        "no-debugger": "error",
        "no-empty": "off",
        "no-empty-function": "off",
        "no-eval": "error",
        "no-fallthrough": "error",
        "no-new-wrappers": "error",
        "no-restricted-imports": Array [
          "error",
          "rxjs/Rx",
        ],
        "no-shadow": "off",
        "no-throw-literal": "error",
        "no-undef-init": "error",
        "no-underscore-dangle": "off",
        "no-unused-expressions": "off",
        "no-var": "error",
        "prefer-const": "error",
        "radix": "error",
      },
    },
    Object {
      "files": Array [
        "*.html",
      ],
      "plugins": Array [
        "@angular-eslint/eslint-plugin-template",
      ],
      "rules": Object {
        "@angular-eslint/template/banana-in-box": "error",
        "@angular-eslint/template/eqeqeq": "error",
        "@angular-eslint/template/no-negated-async": "error",
      },
    },
  ],
  "plugins": Array [
    "@nrwl/nx",
  ],
  "root": true,
}
`;

exports[`convert-tslint-to-eslint should work for Angular libraries 4`] = `
Object {
  "extends": Array [
    "../../.eslintrc.json",
  ],
  "ignorePatterns": Array [
    "!**/*",
  ],
  "overrides": Array [
    Object {
      "extends": Array [
        "plugin:@nrwl/nx/angular",
        "plugin:@angular-eslint/template/process-inline-templates",
      ],
      "files": Array [
        "*.ts",
      ],
      "plugins": Array [
        "@angular-eslint/eslint-plugin",
        "@typescript-eslint",
      ],
      "rules": Object {
        "@angular-eslint/component-selector": Array [
          "error",
          Object {
            "prefix": "angular-app",
            "style": "kebab-case",
            "type": "element",
          },
        ],
        "@angular-eslint/directive-selector": Array [
          "error",
          Object {
            "prefix": "angular-app",
            "style": "camelCase",
            "type": "attribute",
          },
        ],
        "@typescript-eslint/no-empty-interface": "error",
      },
    },
    Object {
      "extends": Array [
        "plugin:@nrwl/nx/angular-template",
      ],
      "files": Array [
        "*.html",
      ],
      "plugins": Array [
        "@angular-eslint/eslint-plugin-template",
      ],
      "rules": Object {
        "@angular-eslint/template/banana-in-box": "error",
      },
    },
  ],
}
`;
