diff --git a/eslint.config.mjs b/eslint.config.mjs
index d1c22b6b77..443178905f 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -29,6 +29,7 @@ import notice from "eslint-plugin-notice"
import eslintConfigPrettier from "eslint-config-prettier"
import vitest from "@vitest/eslint-plugin"
import globals from 'globals'
+import instructurePlugin from './scripts/eslint/no-relative-imports-plugin.mjs'
const COPYRIGHT_NOTICE = "/*\n" +
" * The MIT License (MIT)\n" +
@@ -64,7 +65,6 @@ const NODE_PACKAGES = [
'ui-scripts',
'ui-webpack-config',
'command-utils',
- 'eslint-plugin-instructure-ui',
'instui-cli',
'babel-plugin-transform-imports',
'pkg-utils'
@@ -89,6 +89,7 @@ const finalConfig = tseslint.config(
},
eslint.configs.recommended,
...tseslint.configs.recommended,
+ ...instructurePlugin.configs.recommended,
{
name: "instUI-eslint-config",
linterOptions: {
@@ -100,8 +101,7 @@ const finalConfig = tseslint.config(
plugins: {
...reactPlugin.configs.flat.recommended.plugins,
//'jsx-a11y', // TODO add this back if it supports ESLint v9
- notice,
- //'instructure-ui'
+ notice
},
rules: {
...reactPlugin.configs.flat.recommended.rules,
diff --git a/package-lock.json b/package-lock.json
index ba0a6d001b..fed2b1c51f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -20,7 +20,8 @@
"@emotion/react": "^11.13.0",
"@eslint/eslintrc": "^3.1.0",
"@eslint/js": "^9.9.0",
- "@instructure/browserslist-config-instui": "10.2.0",
+ "@instructure/browserslist-config-instui": "10.2.1",
+ "@instructure/pkg-utils": "10.2.1",
"@testing-library/dom": "^9.3.4",
"@testing-library/jest-dom": "^6.4.6",
"@testing-library/react": "^14.3.1",
@@ -38,8 +39,9 @@
"esbuild": "^0.23.0",
"eslint": "^9.9.0",
"eslint-config-prettier": "^9.1.0",
+ "eslint-import-resolver-node": "^0.3.9",
+ "eslint-module-utils": "^2.8.1",
"eslint-plugin-compat": "^6.0.0",
- "eslint-plugin-instructure-ui": "10.2.0",
"eslint-plugin-notice": "^1.0.0",
"eslint-plugin-react": "^7.35.0",
"globals": "^15.9.0",
@@ -10659,11 +10661,6 @@
"integrity": "sha512-b7bq23s4fgBB76n34m2b3RBf6M369B0Z9uRR8aHTMd8kZISRkmDEpPD8hhpYvDFzr3bJCPES96cm3Q6qRNDbQw==",
"dev": true
},
- "node_modules/@types/json5": {
- "version": "0.0.29",
- "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
- "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
- },
"node_modules/@types/karma": {
"version": "6.3.4",
"license": "MIT",
@@ -12069,6 +12066,7 @@
"version": "3.1.8",
"resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
"integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
@@ -12187,25 +12185,9 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/array.prototype.findlastindex": {
- "version": "1.2.3",
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0",
- "get-intrinsic": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/array.prototype.flat": {
"version": "1.3.2",
+ "dev": true,
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.2",
@@ -12222,6 +12204,7 @@
},
"node_modules/array.prototype.flatmap": {
"version": "1.3.2",
+ "dev": true,
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.2",
@@ -17399,6 +17382,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
"integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
+ "dev": true,
"dependencies": {
"hasown": "^2.0.0"
}
@@ -17648,6 +17632,7 @@
},
"node_modules/eslint-import-resolver-node": {
"version": "0.3.9",
+ "dev": true,
"license": "MIT",
"dependencies": {
"debug": "^3.2.7",
@@ -17657,6 +17642,7 @@
},
"node_modules/eslint-import-resolver-node/node_modules/debug": {
"version": "3.2.7",
+ "dev": true,
"license": "MIT",
"dependencies": {
"ms": "^2.1.1"
@@ -17666,6 +17652,7 @@
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz",
"integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==",
+ "dev": true,
"dependencies": {
"debug": "^3.2.7"
},
@@ -17680,6 +17667,7 @@
},
"node_modules/eslint-module-utils/node_modules/debug": {
"version": "3.2.7",
+ "dev": true,
"license": "MIT",
"dependencies": {
"ms": "^2.1.1"
@@ -17786,87 +17774,6 @@
"node": ">=10"
}
},
- "node_modules/eslint-plugin-import": {
- "version": "2.29.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz",
- "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==",
- "dependencies": {
- "array-includes": "^3.1.7",
- "array.prototype.findlastindex": "^1.2.3",
- "array.prototype.flat": "^1.3.2",
- "array.prototype.flatmap": "^1.3.2",
- "debug": "^3.2.7",
- "doctrine": "^2.1.0",
- "eslint-import-resolver-node": "^0.3.9",
- "eslint-module-utils": "^2.8.0",
- "hasown": "^2.0.0",
- "is-core-module": "^2.13.1",
- "is-glob": "^4.0.3",
- "minimatch": "^3.1.2",
- "object.fromentries": "^2.0.7",
- "object.groupby": "^1.0.1",
- "object.values": "^1.1.7",
- "semver": "^6.3.1",
- "tsconfig-paths": "^3.15.0"
- },
- "engines": {
- "node": ">=4"
- },
- "peerDependencies": {
- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/debug": {
- "version": "3.2.7",
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/doctrine": {
- "version": "2.1.0",
- "license": "Apache-2.0",
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/json5": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
- "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
- "dependencies": {
- "minimist": "^1.2.0"
- },
- "bin": {
- "json5": "lib/cli.js"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/tsconfig-paths": {
- "version": "3.15.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
- "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
- "dependencies": {
- "@types/json5": "^0.0.29",
- "json5": "^1.0.2",
- "minimist": "^1.2.6",
- "strip-bom": "^3.0.0"
- }
- },
- "node_modules/eslint-plugin-instructure-ui": {
- "resolved": "packages/eslint-plugin-instructure-ui",
- "link": true
- },
"node_modules/eslint-plugin-notice": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-notice/-/eslint-plugin-notice-1.0.0.tgz",
@@ -30088,6 +29995,7 @@
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
"integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
@@ -30102,16 +30010,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/object.groupby": {
- "version": "1.0.1",
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "get-intrinsic": "^1.2.1"
- }
- },
"node_modules/object.map": {
"version": "1.0.1",
"license": "MIT",
@@ -30148,6 +30046,7 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
"integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
@@ -40557,6 +40456,7 @@
},
"packages/eslint-plugin-instructure-ui": {
"version": "10.2.1",
+ "extraneous": true,
"license": "MIT",
"dependencies": {
"@instructure/pkg-utils": "10.2.1",
diff --git a/package.json b/package.json
index b9756fa501..cdb2f0eab5 100644
--- a/package.json
+++ b/package.json
@@ -64,17 +64,23 @@
"@commitlint/config-conventional": "^19.2.2",
"@emotion/cache": "^11.13.1",
"@emotion/react": "^11.13.0",
- "@eslint/eslintrc": "^3.1.0",
- "@eslint/js": "^9.9.0",
- "@instructure/browserslist-config-instui": "10.2.0",
"@testing-library/dom": "^9.3.4",
"@testing-library/jest-dom": "^6.4.6",
"@testing-library/react": "^14.3.1",
"@testing-library/user-event": "^14.5.2",
- "@types/eslint__js": "^8.42.3",
"@types/react-dom": "^18.3.0",
- "@vitejs/plugin-react": "^4.3.1",
+ "@instructure/browserslist-config-instui": "10.2.1",
+ "@instructure/pkg-utils": "10.2.1",
+ "typescript-eslint": "^8.1.0",
+ "eslint-config-prettier": "^9.1.0",
+ "eslint-plugin-compat": "^6.0.0",
"@vitest/eslint-plugin": "^1.0.3",
+ "eslint-plugin-notice": "^1.0.0",
+ "eslint-plugin-react": "^7.35.0",
+ "eslint-module-utils": "^2.8.1",
+ "eslint-import-resolver-node": "^0.3.9",
+ "globals": "^15.9.0",
+ "@vitejs/plugin-react": "^4.3.1",
"chai": "^4.4.1",
"chalk": "^4.1.2",
"commitizen": "^4.3.0",
@@ -83,18 +89,14 @@
"cypress-real-events": "^1.13.0",
"esbuild": "^0.23.0",
"eslint": "^9.9.0",
- "eslint-config-prettier": "^9.1.0",
- "eslint-plugin-compat": "^6.0.0",
- "eslint-plugin-instructure-ui": "10.2.0",
- "eslint-plugin-notice": "^1.0.0",
- "eslint-plugin-react": "^7.35.0",
- "globals": "^15.9.0",
+ "@eslint/js": "^9.9.0",
+ "@types/eslint__js": "^8.42.3",
+ "@eslint/eslintrc": "^3.1.0",
"husky": "^9.1.4",
"lerna": "^7.4.2",
"lint-staged": "^15.2.8",
"react": "^18.3.1",
"typescript": "5.5.3",
- "typescript-eslint": "^8.1.0",
"vitest": "^2.0.2",
"webpack": "^5.93.0"
},
diff --git a/packages/__docs__/buildScripts/build-docs.mts b/packages/__docs__/buildScripts/build-docs.mts
index 6f87160d30..5f4c627e4d 100644
--- a/packages/__docs__/buildScripts/build-docs.mts
+++ b/packages/__docs__/buildScripts/build-docs.mts
@@ -45,6 +45,7 @@ const require = createRequire(import.meta.url)
// This needs to be required otherwise TSC will mess up the directory structure
// in the output directory
+// eslint-disable-next-line @instructure/no-relative-imports
const rootPackage = require('../../../package.json') // root package.json
const buildDir = './__build__/'
diff --git a/packages/eslint-plugin-instructure-ui/.npmignore b/packages/eslint-plugin-instructure-ui/.npmignore
deleted file mode 100644
index 9b51f84223..0000000000
--- a/packages/eslint-plugin-instructure-ui/.npmignore
+++ /dev/null
@@ -1,5 +0,0 @@
-**/.*
-**/__tests__
-**/__testfixtures__
-*.config.js
-*.conf.js
diff --git a/packages/eslint-plugin-instructure-ui/CHANGELOG.md b/packages/eslint-plugin-instructure-ui/CHANGELOG.md
deleted file mode 100644
index 75406e2895..0000000000
--- a/packages/eslint-plugin-instructure-ui/CHANGELOG.md
+++ /dev/null
@@ -1,989 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file.
-See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
-
-## [10.2.1](https://github.com/instructure/instructure-ui/compare/v10.2.0...v10.2.1) (2024-08-30)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-
-
-# [10.2.0](https://github.com/instructure/instructure-ui/compare/v10.0.0...v10.2.0) (2024-08-23)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-
-
-# [10.1.0](https://github.com/instructure/instructure-ui/compare/v10.0.0...v10.1.0) (2024-08-23)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-
-
-# [10.0.0](https://github.com/instructure/instructure-ui/compare/v9.5.1...v10.0.0) (2024-07-31)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-
-
-## [9.5.1](https://github.com/instructure/instructure-ui/compare/v9.5.0...v9.5.1) (2024-07-30)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-
-
-# [9.5.0](https://github.com/instructure/instructure-ui/compare/v9.3.0...v9.5.0) (2024-07-26)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-
-
-# [9.4.0](https://github.com/instructure/instructure-ui/compare/v9.3.0...v9.4.0) (2024-07-26)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-
-
-# [9.3.0](https://github.com/instructure/instructure-ui/compare/v9.2.0...v9.3.0) (2024-07-17)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-
-
-# [9.2.0](https://github.com/instructure/instructure-ui/compare/v9.1.0...v9.2.0) (2024-07-09)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-
-
-# [9.1.0](https://github.com/instructure/instructure-ui/compare/v9.0.1...v9.1.0) (2024-06-14)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-
-
-## [9.0.1](https://github.com/instructure/instructure-ui/compare/v9.0.0...v9.0.1) (2024-05-09)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-
-
-# [9.0.0](https://github.com/instructure/instructure-ui/compare/v8.56.0...v9.0.0) (2024-05-09)
-
-
-### Features
-
-* set tooling packages to private ([17ab811](https://github.com/instructure/instructure-ui/commit/17ab81187c0ad7778bf3afd1426ece7ee3ca1136))
-
-
-### BREAKING CHANGES
-
-* following packages have been set to private:
-- cz-lerna-changelog
-- slint-plugin-instructure-ui
-- pkg-utils
-- ui-babel-preset
-- ui-eslint-config
-- ui-karma-config
-- ui-scripts
-- ui-stylelint-config
-- ui-webpack-config
-
-
-
-
-
-# [8.56.0](https://github.com/instructure/instructure-ui/compare/v8.55.1...v8.56.0) (2024-05-06)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-
-
-## [8.55.1](https://github.com/instructure/instructure-ui/compare/v8.55.0...v8.55.1) (2024-04-30)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-
-
-# [8.55.0](https://github.com/instructure/instructure-ui/compare/v8.54.0...v8.55.0) (2024-04-09)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-
-
-# [8.54.0](https://github.com/instructure/instructure-ui/compare/v8.53.2...v8.54.0) (2024-03-21)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-
-
-## [8.53.2](https://github.com/instructure/instructure-ui/compare/v8.53.1...v8.53.2) (2024-02-15)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-
-
-## [8.53.1](https://github.com/instructure/instructure-ui/compare/v8.53.0...v8.53.1) (2024-02-09)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-
-
-# [8.53.0](https://github.com/instructure/instructure-ui/compare/v8.52.0...v8.53.0) (2024-02-08)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.52.0](https://github.com/instructure/instructure-ui/compare/v8.51.0...v8.52.0) (2024-02-02)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.51.0](https://github.com/instructure/instructure-ui/compare/v8.50.0...v8.51.0) (2023-12-14)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.50.0](https://github.com/instructure/instructure-ui/compare/v8.49.0...v8.50.0) (2023-12-05)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.49.0](https://github.com/instructure/instructure-ui/compare/v8.48.3...v8.49.0) (2023-11-24)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.48.3](https://github.com/instructure/instructure-ui/compare/v8.48.2...v8.48.3) (2023-11-23)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.48.2](https://github.com/instructure/instructure-ui/compare/v8.48.1...v8.48.2) (2023-11-21)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.48.1](https://github.com/instructure/instructure-ui/compare/v8.48.0...v8.48.1) (2023-11-17)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.48.0](https://github.com/instructure/instructure-ui/compare/v8.47.1...v8.48.0) (2023-11-10)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.47.1](https://github.com/instructure/instructure-ui/compare/v8.47.0...v8.47.1) (2023-11-06)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.47.0](https://github.com/instructure/instructure-ui/compare/v8.46.1...v8.47.0) (2023-10-27)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.46.1](https://github.com/instructure/instructure-ui/compare/v8.46.0...v8.46.1) (2023-10-13)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.46.0](https://github.com/instructure/instructure-ui/compare/v8.45.0...v8.46.0) (2023-10-11)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.45.0](https://github.com/instructure/instructure-ui/compare/v8.44.0...v8.45.0) (2023-10-03)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.44.0](https://github.com/instructure/instructure-ui/compare/v8.43.1...v8.44.0) (2023-09-21)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.43.1](https://github.com/instructure/instructure-ui/compare/v8.43.0...v8.43.1) (2023-09-11)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.43.0](https://github.com/instructure/instructure-ui/compare/v8.41.1...v8.43.0) (2023-09-07)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.42.0](https://github.com/instructure/instructure-ui/compare/v8.41.1...v8.42.0) (2023-09-07)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.41.1](https://github.com/instructure/instructure-ui/compare/v8.41.0...v8.41.1) (2023-08-24)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.41.0](https://github.com/instructure/instructure-ui/compare/v8.40.1...v8.41.0) (2023-08-21)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.40.1](https://github.com/instructure/instructure-ui/compare/v8.40.0...v8.40.1) (2023-08-18)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.40.0](https://github.com/instructure/instructure-ui/compare/v8.39.0...v8.40.0) (2023-08-17)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.39.0](https://github.com/instructure/instructure-ui/compare/v8.38.1...v8.39.0) (2023-07-21)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.38.1](https://github.com/instructure/instructure-ui/compare/v8.38.0...v8.38.1) (2023-06-13)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.38.0](https://github.com/instructure/instructure-ui/compare/v8.37.0...v8.38.0) (2023-05-15)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.37.0](https://github.com/instructure/instructure-ui/compare/v8.36.0...v8.37.0) (2023-04-25)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.36.0](https://github.com/instructure/instructure-ui/compare/v8.35.1...v8.36.0) (2023-03-23)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.35.1](https://github.com/instructure/instructure-ui/compare/v8.35.0...v8.35.1) (2023-03-10)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.35.0](https://github.com/instructure/instructure-ui/compare/v8.34.0...v8.35.0) (2023-02-17)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.34.0](https://github.com/instructure/instructure-ui/compare/v8.33.2...v8.34.0) (2023-02-10)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.33.2](https://github.com/instructure/instructure-ui/compare/v8.33.1...v8.33.2) (2023-01-25)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.33.1](https://github.com/instructure/instructure-ui/compare/v8.33.0...v8.33.1) (2023-01-06)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.33.0](https://github.com/instructure/instructure-ui/compare/v8.32.1...v8.33.0) (2023-01-04)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.32.1](https://github.com/instructure/instructure-ui/compare/v8.30.0...v8.32.1) (2022-12-01)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.32.0](https://github.com/instructure/instructure-ui/compare/v8.31.0...v8.32.0) (2022-11-23)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.31.0](https://github.com/instructure/instructure-ui/compare/v8.30.0...v8.31.0) (2022-11-21)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.30.0](https://github.com/instructure/instructure-ui/compare/v8.29.0...v8.30.0) (2022-10-26)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.29.0](https://github.com/instructure/instructure-ui/compare/v8.28.0...v8.29.0) (2022-09-29)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.28.2](https://github.com/instructure/instructure-ui/compare/v8.28.0...v8.28.2) (2022-09-16)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.28.1](https://github.com/instructure/instructure-ui/compare/v8.28.0...v8.28.1) (2022-09-12)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.28.0](https://github.com/instructure/instructure-ui/compare/v8.27.0...v8.28.0) (2022-09-02)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.27.0](https://github.com/instructure/instructure-ui/compare/v8.26.3...v8.27.0) (2022-07-25)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.26.3](https://github.com/instructure/instructure-ui/compare/v8.26.2...v8.26.3) (2022-07-14)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.26.2](https://github.com/instructure/instructure-ui/compare/v8.26.1...v8.26.2) (2022-07-11)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.26.1](https://github.com/instructure/instructure-ui/compare/v8.26.0...v8.26.1) (2022-07-06)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.26.0](https://github.com/instructure/instructure-ui/compare/v8.25.0...v8.26.0) (2022-06-30)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.25.0](https://github.com/instructure/instructure-ui/compare/v8.24.5...v8.25.0) (2022-06-03)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.24.5](https://github.com/instructure/instructure-ui/compare/v8.24.3...v8.24.5) (2022-05-31)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.24.4](https://github.com/instructure/instructure-ui/compare/v8.24.3...v8.24.4) (2022-05-27)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.24.3](https://github.com/instructure/instructure-ui/compare/v8.24.2...v8.24.3) (2022-05-25)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.24.2](https://github.com/instructure/instructure-ui/compare/v8.24.1...v8.24.2) (2022-05-02)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.24.1](https://github.com/instructure/instructure-ui/compare/v8.24.0...v8.24.1) (2022-04-29)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.24.0](https://github.com/instructure/instructure-ui/compare/v8.23.0...v8.24.0) (2022-04-26)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.23.0](https://github.com/instructure/instructure-ui/compare/v8.22.0...v8.23.0) (2022-04-07)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.22.0](https://github.com/instructure/instructure-ui/compare/v8.21.0...v8.22.0) (2022-03-31)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.21.0](https://github.com/instructure/instructure-ui/compare/v8.20.0...v8.21.0) (2022-03-30)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.20.0](https://github.com/instructure/instructure-ui/compare/v8.19.0...v8.20.0) (2022-03-22)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.19.0](https://github.com/instructure/instructure-ui/compare/v8.18.0...v8.19.0) (2022-03-16)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.18.0](https://github.com/instructure/instructure-ui/compare/v8.17.0...v8.18.0) (2022-02-23)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.17.0](https://github.com/instructure/instructure-ui/compare/v8.16.0...v8.17.0) (2022-02-07)
-
-### Bug Fixes
-
-- remove type:"commonjs" from package.json files ([0b243be](https://github.com/instructure/instructure-ui/commit/0b243bee389ee14493e6b3dbb30a8b660c295d3d))
-
-# [8.16.0](https://github.com/instructure/instructure-ui/compare/v8.15.0...v8.16.0) (2022-02-03)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.15.0](https://github.com/instructure/instructure-ui/compare/v8.14.0...v8.15.0) (2022-01-26)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.14.0](https://github.com/instructure/instructure-ui/compare/v8.13.0...v8.14.0) (2021-12-16)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.13.0](https://github.com/instructure/instructure-ui/compare/v8.12.0...v8.13.0) (2021-12-01)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.12.0](https://github.com/instructure/instructure-ui/compare/v8.11.1...v8.12.0) (2021-11-17)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.11.1](https://github.com/instructure/instructure-ui/compare/v8.11.0...v8.11.1) (2021-10-19)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.11.0](https://github.com/instructure/instructure-ui/compare/v8.10.2...v8.11.0) (2021-10-15)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.10.2](https://github.com/instructure/instructure-ui/compare/v8.10.1...v8.10.2) (2021-10-01)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.10.1](https://github.com/instructure/instructure-ui/compare/v8.10.0...v8.10.1) (2021-10-01)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.10.0](https://github.com/instructure/instructure-ui/compare/v8.9.1...v8.10.0) (2021-09-28)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.9.1](https://github.com/instructure/instructure-ui/compare/v8.9.0...v8.9.1) (2021-09-16)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.9.0](https://github.com/instructure/instructure-ui/compare/v8.8.0...v8.9.0) (2021-09-15)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.8.0](https://github.com/instructure/instructure-ui/compare/v8.7.0...v8.8.0) (2021-08-27)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.7.0](https://github.com/instructure/instructure-ui/compare/v8.6.0...v8.7.0) (2021-07-16)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.6.0](https://github.com/instructure/instructure-ui/compare/v8.5.0...v8.6.0) (2021-06-18)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.5.0](https://github.com/instructure/instructure-ui/compare/v8.4.0...v8.5.0) (2021-06-09)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.4.0](https://github.com/instructure/instructure-ui/compare/v8.3.0...v8.4.0) (2021-05-11)
-
-### Bug Fixes
-
-- fix all inter-package dependencies using fix version ([75cd898](https://github.com/instructure/instructure-ui/commit/75cd8983b7e206e4e14dc67c490c103cb4a3d915))
-
-# [8.3.0](https://github.com/instructure/instructure-ui/compare/v8.2.1...v8.3.0) (2021-05-04)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [8.2.1](https://github.com/instructure/instructure-ui/compare/v8.2.0...v8.2.1) (2021-04-22)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.2.0](https://github.com/instructure/instructure-ui/compare/v8.1.0...v8.2.0) (2021-04-22)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.1.0](https://github.com/instructure/instructure-ui/compare/v8.0.0...v8.1.0) (2021-04-15)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [8.0.0](https://github.com/instructure/instructure-ui/compare/v7.5.0...v8.0.0) (2021-03-29)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [7.5.0](https://github.com/instructure/instructure-ui/compare/v7.4.4...v7.5.0) (2021-03-22)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [7.4.4](https://github.com/instructure/instructure-ui/compare/v7.4.3...v7.4.4) (2021-03-12)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [7.4.3](https://github.com/instructure/instructure-ui/compare/v7.4.1...v7.4.3) (2021-03-11)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [7.4.2](https://github.com/instructure/instructure-ui/compare/v7.4.1...v7.4.2) (2021-03-11)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [7.4.1](https://github.com/instructure/instructure-ui/compare/v7.4.0...v7.4.1) (2021-03-04)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [7.4.0](https://github.com/instructure/instructure-ui/compare/v7.3.5...v7.4.0) (2021-02-01)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [7.3.5](https://github.com/instructure/instructure-ui/compare/v7.3.2...v7.3.5) (2021-01-21)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [7.3.4](https://github.com/instructure/instructure-ui/compare/v7.3.2...v7.3.4) (2021-01-14)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [7.3.3](https://github.com/instructure/instructure-ui/compare/v7.3.2...v7.3.3) (2021-01-13)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [7.3.2](https://github.com/instructure/instructure-ui/compare/v7.3.1...v7.3.2) (2020-12-10)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [7.3.1](https://github.com/instructure/instructure-ui/compare/v7.3.0...v7.3.1) (2020-11-30)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [7.3.0](https://github.com/instructure/instructure-ui/compare/v7.2.4...v7.3.0) (2020-10-26)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [7.2.4](https://github.com/instructure/instructure-ui/compare/v7.2.0...v7.2.4) (2020-10-09)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [7.2.3](https://github.com/instructure/instructure-ui/compare/v7.2.0...v7.2.3) (2020-10-08)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [7.2.2](https://github.com/instructure/instructure-ui/compare/v7.2.0...v7.2.2) (2020-10-08)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [7.2.1](https://github.com/instructure/instructure-ui/compare/v7.2.0...v7.2.1) (2020-10-07)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [7.2.0](https://github.com/instructure/instructure-ui/compare/v7.1.4...v7.2.0) (2020-09-23)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [7.1.4](https://github.com/instructure/instructure-ui/compare/v7.1.3...v7.1.4) (2020-09-09)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [7.1.3](https://github.com/instructure/instructure-ui/compare/v7.1.2...v7.1.3) (2020-08-10)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [7.1.2](https://github.com/instructure/instructure-ui/compare/v7.1.1...v7.1.2) (2020-07-17)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [7.1.1](https://github.com/instructure/instructure-ui/compare/v7.1.0...v7.1.1) (2020-07-01)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [7.1.0](https://github.com/instructure/instructure-ui/compare/v7.0.0...v7.1.0) (2020-06-25)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [7.0.0](https://github.com/instructure/instructure-ui/compare/v6.26.0...v7.0.0) (2020-05-27)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.26.0](https://github.com/instructure/instructure-ui/compare/v6.25.0...v6.26.0) (2020-04-30)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.25.0](https://github.com/instructure/instructure-ui/compare/v6.24.0...v6.25.0) (2020-04-27)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.24.0](https://github.com/instructure/instructure-ui/compare/v6.23.0...v6.24.0) (2020-04-14)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.23.0](https://github.com/instructure/instructure-ui/compare/v6.22.0...v6.23.0) (2020-04-02)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.22.0](https://github.com/instructure/instructure-ui/compare/v6.21.0...v6.22.0) (2020-03-16)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.21.0](https://github.com/instructure/instructure-ui/compare/v6.20.0...v6.21.0) (2020-02-26)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.20.0](https://github.com/instructure/instructure-ui/compare/v6.19.0...v6.20.0) (2020-02-13)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.19.0](https://github.com/instructure/instructure-ui/compare/v6.18.0...v6.19.0) (2020-02-11)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.18.0](https://github.com/instructure/instructure-ui/compare/v6.17.0...v6.18.0) (2020-02-04)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.17.0](https://github.com/instructure/instructure-ui/compare/v6.16.0...v6.17.0) (2020-01-22)
-
-### Bug Fixes
-
-- Update Package READMEs and align deprecation statements ([8f892e4](https://github.com/instructure/instructure-ui/commit/8f892e4))
-
-# [6.16.0](https://github.com/instructure/instructure-ui/compare/v6.15.0...v6.16.0) (2019-12-13)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.15.0](https://github.com/instructure/instructure-ui/compare/v6.14.0...v6.15.0) (2019-11-18)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.14.0](https://github.com/instructure/instructure-ui/compare/v6.13.0...v6.14.0) (2019-10-14)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.13.0](https://github.com/instructure/instructure-ui/compare/v6.12.0...v6.13.0) (2019-09-24)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.12.0](https://github.com/instructure/instructure-ui/compare/v6.11.0...v6.12.0) (2019-09-17)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.11.0](https://github.com/instructure/instructure-ui/compare/v6.10.0...v6.11.0) (2019-09-16)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.10.0](https://github.com/instructure/instructure-ui/compare/v6.9.0...v6.10.0) (2019-08-27)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.9.0](https://github.com/instructure/instructure-ui/compare/v6.8.1...v6.9.0) (2019-08-07)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [6.8.1](https://github.com/instructure/instructure-ui/compare/v6.8.0...v6.8.1) (2019-08-02)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.8.0](https://github.com/instructure/instructure-ui/compare/v6.7.0...v6.8.0) (2019-07-31)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.7.0](https://github.com/instructure/instructure-ui/compare/v6.6.0...v6.7.0) (2019-07-15)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.6.0](https://github.com/instructure/instructure-ui/compare/v6.5.0...v6.6.0) (2019-07-03)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.5.0](https://github.com/instructure/instructure-ui/compare/v6.4.0...v6.5.0) (2019-07-01)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.4.0](https://github.com/instructure/instructure-ui/compare/v6.3.0...v6.4.0) (2019-06-13)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.3.0](https://github.com/instructure/instructure-ui/compare/v6.2.0...v6.3.0) (2019-05-28)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.2.0](https://github.com/instructure/instructure-ui/compare/v6.1.0...v6.2.0) (2019-05-13)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.1.0](https://github.com/instructure/instructure-ui/compare/v6.0.0...v6.1.0) (2019-05-09)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [6.0.0](https://github.com/instructure/instructure-ui/compare/v5.52.3...v6.0.0) (2019-05-03)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [5.52.3](https://github.com/instructure/instructure-ui/compare/v5.52.2...v5.52.3) (2019-04-25)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [5.52.2](https://github.com/instructure/instructure-ui/compare/v5.52.1...v5.52.2) (2019-04-17)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [5.52.1](https://github.com/instructure/instructure-ui/compare/v5.52.0...v5.52.1) (2019-04-08)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [5.52.0](https://github.com/instructure/instructure-ui/compare/v5.51.1...v5.52.0) (2019-04-03)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [5.51.1](https://github.com/instructure/instructure-ui/compare/v5.51.0...v5.51.1) (2019-03-30)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [5.51.0](https://github.com/instructure/instructure-ui/compare/v5.50.0...v5.51.0) (2019-03-29)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [5.50.0](https://github.com/instructure/instructure-ui/compare/v5.49.0...v5.50.0) (2019-03-28)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [5.49.0](https://github.com/instructure/instructure-ui/compare/v5.48.0...v5.49.0) (2019-03-22)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [5.48.0](https://github.com/instructure/instructure-ui/compare/v5.47.0...v5.48.0) (2019-03-18)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [5.47.0](https://github.com/instructure/instructure-ui/compare/v5.46.1...v5.47.0) (2019-03-15)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [5.46.1](https://github.com/instructure/instructure-ui/compare/v5.46.0...v5.46.1) (2019-03-13)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [5.46.0](https://github.com/instructure/instructure-ui/compare/v5.45.1...v5.46.0) (2019-03-12)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-## [5.45.1](https://github.com/instructure/instructure-ui/compare/v5.45.0...v5.45.1) (2019-03-12)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [5.45.0](https://github.com/instructure/instructure-ui/compare/v5.44.0...v5.45.0) (2019-03-11)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [5.44.0](https://github.com/instructure/instructure-ui/compare/v5.43.0...v5.44.0) (2019-03-01)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-# [5.43.0](https://github.com/instructure/instructure-ui/compare/v5.42.0...v5.43.0) (2019-02-27)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.42.0](https://github.com/instructure/instructure-ui/compare/v5.41.1...v5.42.0) (2019-02-15)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-## [5.41.1](https://github.com/instructure/instructure-ui/compare/v5.41.0...v5.41.1) (2019-01-30)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.41.0](https://github.com/instructure/instructure-ui/compare/v5.40.0...v5.41.0) (2019-01-29)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.40.0](https://github.com/instructure/instructure-ui/compare/v5.39.0...v5.40.0) (2019-01-15)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.39.0](https://github.com/instructure/instructure-ui/compare/v5.38.0...v5.39.0) (2019-01-11)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.38.0](https://github.com/instructure/instructure-ui/compare/v5.37.0...v5.38.0) (2019-01-04)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.37.0](https://github.com/instructure/instructure-ui/compare/v5.36.0...v5.37.0) (2018-12-18)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.36.0](https://github.com/instructure/instructure-ui/compare/v5.35.0...v5.36.0) (2018-12-12)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.35.0](https://github.com/instructure/instructure-ui/compare/v5.34.0...v5.35.0) (2018-12-06)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.34.0](https://github.com/instructure/instructure-ui/compare/v5.33.0...v5.34.0) (2018-11-20)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.33.0](https://github.com/instructure/instructure-ui/compare/v5.32.0...v5.33.0) (2018-11-14)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.32.0](https://github.com/instructure/instructure-ui/compare/v5.31.0...v5.32.0) (2018-10-31)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.31.0](https://github.com/instructure/instructure-ui/compare/v5.30.0...v5.31.0) (2018-10-26)
-
-### Features
-
-- **ui-presets:** upgrade eslint ([a1dcf1f](https://github.com/instructure/instructure-ui/commit/a1dcf1f))
-
-
-
-# [5.30.0](https://github.com/instructure/instructure-ui/compare/v5.29.0...v5.30.0) (2018-09-27)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.29.0](https://github.com/instructure/instructure-ui/compare/v5.28.1...v5.29.0) (2018-09-26)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-## [5.28.1](https://github.com/instructure/instructure-ui/compare/v5.28.0...v5.28.1) (2018-09-18)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.28.0](https://github.com/instructure/instructure-ui/compare/v5.27.0...v5.28.0) (2018-09-13)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.27.0](https://github.com/instructure/instructure-ui/compare/v5.26.0...v5.27.0) (2018-09-10)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.26.0](https://github.com/instructure/instructure-ui/compare/v5.25.0...v5.26.0) (2018-09-06)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.25.0](https://github.com/instructure/instructure-ui/compare/v5.24.0...v5.25.0) (2018-08-24)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.24.0](https://github.com/instructure/instructure-ui/compare/v5.23.0...v5.24.0) (2018-08-08)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.23.0](https://github.com/instructure/instructure-ui/compare/v5.22.0...v5.23.0) (2018-08-03)
-
-### Features
-
-- **ui-presets:** add an install-react script ([d4e87fe](https://github.com/instructure/instructure-ui/commit/d4e87fe))
-
-
-
-# [5.22.0](https://github.com/instructure/instructure-ui/compare/v5.21.0...v5.22.0) (2018-07-27)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.21.0](https://github.com/instructure/instructure-ui/compare/v5.20.1...v5.21.0) (2018-07-25)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-## [5.20.1](https://github.com/instructure/instructure-ui/compare/v5.20.0...v5.20.1) (2018-07-18)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.20.0](https://github.com/instructure/instructure-ui/compare/v5.19.0...v5.20.0) (2018-07-17)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.19.0](https://github.com/instructure/instructure-ui/compare/v5.18.0...v5.19.0) (2018-07-12)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.18.0](https://github.com/instructure/instructure-ui/compare/v5.17.0...v5.18.0) (2018-07-09)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.17.0](https://github.com/instructure/instructure-ui/compare/v5.16.0...v5.17.0) (2018-07-06)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.16.0](https://github.com/instructure/instructure-ui/compare/v5.15.0...v5.16.0) (2018-07-06)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.15.0](https://github.com/instructure/instructure-ui/compare/v5.14.0...v5.15.0) (2018-06-28)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.14.0](https://github.com/instructure/instructure-ui/compare/v5.13.1...v5.14.0) (2018-06-28)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-## [5.13.1](https://github.com/instructure/instructure-ui/compare/v5.13.0...v5.13.1) (2018-06-22)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.13.0](https://github.com/instructure/instructure-ui/compare/v5.12.0...v5.13.0) (2018-06-16)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.12.0](https://github.com/instructure/instructure-ui/compare/v5.11.0...v5.12.0) (2018-06-11)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-
-
-# [5.11.0](https://github.com/instructure/instructure-ui/compare/v5.10.0...v5.11.0) (2018-06-06)
-
-**Note:** Version bump only for package eslint-plugin-instructure-ui
-
-See the instructure-ui mono-repo [change log](#CHANGELOG) for past changes.
diff --git a/packages/eslint-plugin-instructure-ui/README.md b/packages/eslint-plugin-instructure-ui/README.md
deleted file mode 100644
index 745ae05a96..0000000000
--- a/packages/eslint-plugin-instructure-ui/README.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-category: packages
----
-
-## eslint-plugin-instructure-ui
-
-[![npm][npm]][npm-url]
-[![MIT License][license-badge]][license]
-[![Code of Conduct][coc-badge]][coc]
-
-An eslint configuration for Instructure UI.
-
-### Installation
-
-Install eslint
-
-```sh
-npm install eslint --dev
-```
-
-```sh
-npm install eslint-plugin-instructure-ui --dev
-```
-
-### Configuration
-
-Use our preset to get reasonable defaults:
-
-```json
- "extends": [
- "eslint:recommended",
- "plugin:instructure-ui/recommended"
- ]
-```
-
-If you do not use a preset you will need to specify individual rules and add extra configuration.
-
-Add "instructure-ui" to the plugins section.
-
-```json
-{
- "plugins": ["instructure-ui"]
-}
-```
-
-Enable the rules that you would like to use.
-
-```json
- "rules": {
- "inst/no-relative-package-imports": "error"
- }
-```
-
-[npm]: https://img.shields.io/npm/v/eslint-plugin-instructure-ui.svg
-[npm-url]: https://npmjs.com/package/eslint-plugin-instructure-ui
-[license-badge]: https://img.shields.io/npm/l/instructure-ui.svg?style=flat-square
-[license]: https://github.com/instructure/instructure-ui/blob/master/LICENSE
-[coc-badge]: https://img.shields.io/badge/code%20of-conduct-ff69b4.svg?style=flat-square
-[coc]: https://github.com/instructure/instructure-ui/blob/master/CODE_OF_CONDUCT.md
diff --git a/packages/eslint-plugin-instructure-ui/lib/index.js b/packages/eslint-plugin-instructure-ui/lib/index.js
deleted file mode 100644
index 6bb80eecbf..0000000000
--- a/packages/eslint-plugin-instructure-ui/lib/index.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * The MIT License (MIT)
- *
- * Copyright (c) 2015 - present Instructure, Inc.
- *
- * 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:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * 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.
- */
-
-module.exports.rules = {
- 'no-relative-package-imports': require('./rules/no-relative-package-imports')
-}
-
-module.exports.configs = {
- recommended: {
- rules: {
- 'instructure-ui/no-relative-package-imports': 2
- }
- }
-}
diff --git a/packages/eslint-plugin-instructure-ui/lib/rules/no-relative-package-imports.js b/packages/eslint-plugin-instructure-ui/lib/rules/no-relative-package-imports.js
deleted file mode 100644
index f3fed82950..0000000000
--- a/packages/eslint-plugin-instructure-ui/lib/rules/no-relative-package-imports.js
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * The MIT License (MIT)
- *
- * Copyright (c) 2015 - present Instructure, Inc.
- *
- * 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:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * 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.
- */
-
-// note: This cannot be converted to ESM until ESLint v9 is released:
-// https://github.com/eslint/eslint/issues/15453#issuecomment-1002015088
-const path = require('path')
-const { readPackage } = require('@instructure/pkg-utils')
-
-const resolve = require('eslint-module-utils/resolve').default
-const resolveImportType =
- require('eslint-plugin-import/lib/core/importType').default
-
-module.exports = {
- meta: {
- docs: {}
- },
-
- create: function noRelativePackages(context) {
- function findNamedPackage(filePath) {
- const found = readPackage({ cwd: filePath })
- // console.log(found)
- if (found.package && !found.package.name) {
- return findNamedPackage(path.join(found.path, '../..'))
- }
- return found
- }
-
- function checkImportForRelativePackage(importPath, node) {
- const potentialViolationTypes = ['parent', 'index', 'sibling']
- if (
- potentialViolationTypes.indexOf(
- resolveImportType(importPath, context)
- ) === -1
- ) {
- return
- }
-
- const resolvedImport = resolve(importPath, context)
- const resolvedContext = context.getFilename()
-
- if (!resolvedImport || !resolvedContext) {
- return
- }
-
- const importPkg = findNamedPackage(resolvedImport)
- const contextPkg = findNamedPackage(resolvedContext)
-
- if (
- importPkg.package &&
- contextPkg.package &&
- importPkg.package.name !== contextPkg.package.name
- ) {
- const importBaseName = path.basename(importPath)
- const importRoot = path.dirname(importPkg.path)
- const properPath = path.relative(importRoot, resolvedImport)
- const properImport = path.join(
- importPkg.package.name,
- path.dirname(properPath),
- importBaseName === path.basename(importRoot) ? '' : importBaseName
- )
- context.report({
- node,
- message:
- 'Relative import from another package is not allowed. ' +
- `Use "${properImport}" instead of "${importPath}"`
- })
- }
- }
-
- return {
- ImportDeclaration(node) {
- checkImportForRelativePackage(node.source.value, node.source)
- },
- CallExpression(node) {
- if (isStaticRequire(node)) {
- const [firstArgument] = node.arguments
- checkImportForRelativePackage(firstArgument.value, firstArgument)
- }
- }
- }
- }
-}
-
-function isStaticRequire(node) {
- return (
- node &&
- node.callee &&
- node.callee.type === 'Identifier' &&
- node.callee.name === 'require' &&
- node.arguments.length === 1 &&
- node.arguments[0].type === 'Literal' &&
- typeof node.arguments[0].value === 'string'
- )
-}
diff --git a/packages/eslint-plugin-instructure-ui/package.json b/packages/eslint-plugin-instructure-ui/package.json
deleted file mode 100644
index a2ec33e3af..0000000000
--- a/packages/eslint-plugin-instructure-ui/package.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "name": "eslint-plugin-instructure-ui",
- "private": true,
- "version": "10.2.1",
- "description": "An eslint configuration for Instructure UI",
- "author": "Instructure, Inc. Engineering and Product Design",
- "main": "./lib/index.js",
- "repository": {
- "type": "git",
- "url": "https://github.com/instructure/instructure-ui.git"
- },
- "homepage": "https://instructure.github.io/instructure-ui/",
- "bugs": "https://github.com/instructure/instructure-ui/issues",
- "scripts": {
- "lint": "ui-scripts lint",
- "lint:fix": "ui-scripts lint --fix"
- },
- "license": "MIT",
- "dependencies": {
- "@instructure/pkg-utils": "10.2.1",
- "eslint-module-utils": "^2.8.1",
- "eslint-plugin-import": "^2.29.1"
- },
- "peerDependencies": {
- "eslint": "^9"
- },
- "publishConfig": {
- "access": "public"
- }
-}
diff --git a/packages/eslint-plugin-instructure-ui/tsconfig.build.json b/packages/eslint-plugin-instructure-ui/tsconfig.build.json
deleted file mode 100644
index 9c47b6ddaf..0000000000
--- a/packages/eslint-plugin-instructure-ui/tsconfig.build.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "extends": "../../tsconfig.build.json",
- "compilerOptions": {
- "outDir": "./types",
- "module": "CommonJS"
- },
- "include": ["lib/**/*"]
-}
diff --git a/packages/eslint-plugin-instructure-ui/tsconfig.json b/packages/eslint-plugin-instructure-ui/tsconfig.json
deleted file mode 100644
index b29a7b46c4..0000000000
--- a/packages/eslint-plugin-instructure-ui/tsconfig.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "extends": "../../tsconfig.json",
- "compilerOptions": {}
-}
diff --git a/packages/pkg-utils/lib/get-package.js b/packages/pkg-utils/lib/get-package.js
index 9ce88d3407..48a973f181 100644
--- a/packages/pkg-utils/lib/get-package.js
+++ b/packages/pkg-utils/lib/get-package.js
@@ -29,22 +29,23 @@ const Package = require('@lerna/package').Package
exports.getPackage = function getPackage(options) {
const result = readPackage(options)
-
return new Package(result.packageJson, path.dirname(result.path))
}
exports.getPackageJSON = function getPackageJSON(options) {
- const pkg = readPackage(options).packageJson
-
- return pkg
+ return readPackage(options).packageJson
}
exports.getPackagePath = function getPackagePath(options) {
const packageJson = readPackage(options)
-
return packageJson.path
}
+/**
+ * Returns the closest Node project in the path upward
+ * @param options {readPkgUp.NormalizeOptions}
+ * @returns {readPkgUp.NormalizedReadResult}
+ */
function readPackage(options) {
const opts = {
cwd: process.cwd(),
diff --git a/scripts/clean.js b/scripts/clean.js
index 9cdc28484b..900ee0b7e5 100755
--- a/scripts/clean.js
+++ b/scripts/clean.js
@@ -36,7 +36,6 @@ const NODE_PACKAGES = [
'ui-scripts',
'command-utils',
'cz-lerna-changelog',
- 'eslint-plugin-instructure-ui',
'instui-cli',
'babel-plugin-transform-imports',
'pkg-utils'
diff --git a/scripts/eslint/no-relative-imports-plugin.mjs b/scripts/eslint/no-relative-imports-plugin.mjs
new file mode 100644
index 0000000000..099433ba42
--- /dev/null
+++ b/scripts/eslint/no-relative-imports-plugin.mjs
@@ -0,0 +1,152 @@
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2015 - present Instructure, Inc.
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * 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.
+ */
+
+import path from 'path'
+import pkgUtils from '@instructure/pkg-utils'
+import { default as resolve } from 'eslint-module-utils/resolve.js'
+
+/**
+ * An ESLint plugin that checks against local relative imports from another package
+ *
+ * This code will fail:
+ * `import { abc } from '../../packages/ui-i18n'`
+ *
+ * This code is OK:
+ * `import { abc } from '@instructure/ui-i18n'`
+ *
+ * Usage:
+ * Add `instructurePlugin.configs.recommended` to your flat ESLint configuration
+ */
+const plugin = {
+ meta: {
+ name: "instructure-no-relative-imports-plugin",
+ version: "1.0.0"
+ },
+ configs: {},
+ rules: {
+ "no-relative-imports": {
+ create(context) {
+ return {
+ ImportDeclaration(node) {
+ checkImportForRelativePackage(node.source.value, node.source, context)
+ },
+ CallExpression(node) {
+ if (isStaticRequire(node)) {
+ const [firstArgument] = node.arguments
+ checkImportForRelativePackage(firstArgument.value, firstArgument, context)
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+function findNamedPackage(filePath) {
+ const found = pkgUtils.readPackage({ cwd: filePath })
+ if (found.packageJson && !found.packageJson.name) {
+ return findNamedPackage(path.join(found.path, '../..'))
+ }
+ return found
+}
+
+function checkImportForRelativePackage(importPath, node, context) {
+ if (!isImportParentOrIndexOrSibling(importPath, context)) {
+ return
+ }
+ const resolvedImport = resolve.default(importPath, context)
+ const resolvedContext = context.getFilename()
+ if (!resolvedImport || !resolvedContext) {
+ return
+ }
+ const importPkg = findNamedPackage(resolvedImport)
+ const contextPkg = findNamedPackage(resolvedContext)
+ if (
+ importPkg.packageJson &&
+ contextPkg.packageJson &&
+ importPkg.packageJson.name !== contextPkg.packageJson.name
+ ) {
+ const importBaseName = path.basename(importPath)
+ const importRoot = path.dirname(importPkg.path)
+ const properImport = path.join(
+ importPkg.packageJson.name,
+ importBaseName === path.basename(importRoot) ? '' : importBaseName
+ )
+ context.report({
+ node,
+ message:
+ 'Relative import from another package is not allowed. ' +
+ `Use "${properImport}" instead of "${importPath}"`
+ })
+ }
+}
+
+// from https://github.com/import-js/eslint-plugin-import/blob/main/src/core/importType.js#L48
+function isRelativeToParent(name) {
+ return (/^\.\.$|^\.\.[\\/]/).test(name)
+}
+
+function isIndex(name) {
+ const indexFiles = ['.', './', './index', './index.js']
+ return indexFiles.indexOf(name) !== -1
+}
+
+function isRelativeToSibling(name) {
+ return (/^\.[\\/]/).test(name)
+}
+
+function isImportParentOrIndexOrSibling(name, context) {
+ const path = resolve.default(name, context)
+ const { settings } = context
+ if (isRelativeToParent(name, settings, path)) { return true }
+ if (isIndex(name, settings, path)) { return true }
+ if (isRelativeToSibling(name, settings, path)) { return true }
+ return false
+}
+
+function isStaticRequire(node) {
+ return (
+ node &&
+ node.callee &&
+ node.callee.type === 'Identifier' &&
+ node.callee.name === 'require' &&
+ node.arguments.length === 1 &&
+ node.arguments[0].type === 'Literal' &&
+ typeof node.arguments[0].value === 'string'
+ )
+}
+
+// assign configs here so we can reference `plugin`
+Object.assign(plugin.configs, {
+ recommended: [{
+ plugins: {
+ "@instructure": plugin
+ },
+ rules: {
+ "@instructure/no-relative-imports": "error"
+ }
+ }]
+})
+
+export default plugin