diff --git a/its/plugin/plugins/eslint-custom-rules-plugin/pom.xml b/its/plugin/plugins/eslint-custom-rules-plugin/pom.xml
index a4e21004a38..51fa4e6fcb5 100644
--- a/its/plugin/plugins/eslint-custom-rules-plugin/pom.xml
+++ b/its/plugin/plugins/eslint-custom-rules-plugin/pom.xml
@@ -22,8 +22,7 @@
org.sonarsource.javascript
- sonar-javascript-plugin
- sonar-plugin
+ api
diff --git a/pom.xml b/pom.xml
index e7e689b0768..1f5180c416f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -120,6 +120,11 @@
+
+ ${project.groupId}
+ api
+ ${project.version}
+
${project.groupId}
bridge
diff --git a/sonar-plugin/api/pom.xml b/sonar-plugin/api/pom.xml
new file mode 100644
index 00000000000..f7b257132d8
--- /dev/null
+++ b/sonar-plugin/api/pom.xml
@@ -0,0 +1,36 @@
+
+
+ 4.0.0
+
+
+ org.sonarsource.javascript
+ sonar-plugin
+ 10.15.0-SNAPSHOT
+
+
+ api
+
+ SonarQube JavaScript :: API
+
+
+
+ org.sonarsource.api.plugin
+ sonar-plugin-api
+
+
+ com.google.code.findbugs
+ jsr305
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ test
+
+
+ org.assertj
+ assertj-core
+
+
+
diff --git a/sonar-plugin/javascript-checks/src/main/java/org/sonar/plugins/javascript/api/CustomRuleRepository.java b/sonar-plugin/api/src/main/java/org/sonar/plugins/javascript/api/CustomRuleRepository.java
similarity index 98%
rename from sonar-plugin/javascript-checks/src/main/java/org/sonar/plugins/javascript/api/CustomRuleRepository.java
rename to sonar-plugin/api/src/main/java/org/sonar/plugins/javascript/api/CustomRuleRepository.java
index c3a16637cce..eef3c38e036 100644
--- a/sonar-plugin/javascript-checks/src/main/java/org/sonar/plugins/javascript/api/CustomRuleRepository.java
+++ b/sonar-plugin/api/src/main/java/org/sonar/plugins/javascript/api/CustomRuleRepository.java
@@ -32,7 +32,7 @@
*/
@ScannerSide
@SonarLintSide
-@Deprecated
+@Deprecated(since = "6.0")
public interface CustomRuleRepository {
enum Language {
JAVASCRIPT,
diff --git a/sonar-plugin/javascript-checks/src/main/java/org/sonar/plugins/javascript/api/EslintBasedCheck.java b/sonar-plugin/api/src/main/java/org/sonar/plugins/javascript/api/EslintBasedCheck.java
similarity index 100%
rename from sonar-plugin/javascript-checks/src/main/java/org/sonar/plugins/javascript/api/EslintBasedCheck.java
rename to sonar-plugin/api/src/main/java/org/sonar/plugins/javascript/api/EslintBasedCheck.java
diff --git a/sonar-plugin/javascript-checks/src/main/java/org/sonar/plugins/javascript/api/JavaScriptCheck.java b/sonar-plugin/api/src/main/java/org/sonar/plugins/javascript/api/JavaScriptCheck.java
similarity index 100%
rename from sonar-plugin/javascript-checks/src/main/java/org/sonar/plugins/javascript/api/JavaScriptCheck.java
rename to sonar-plugin/api/src/main/java/org/sonar/plugins/javascript/api/JavaScriptCheck.java
diff --git a/sonar-plugin/javascript-checks/src/main/java/org/sonar/plugins/javascript/api/JavaScriptRule.java b/sonar-plugin/api/src/main/java/org/sonar/plugins/javascript/api/JavaScriptRule.java
similarity index 100%
rename from sonar-plugin/javascript-checks/src/main/java/org/sonar/plugins/javascript/api/JavaScriptRule.java
rename to sonar-plugin/api/src/main/java/org/sonar/plugins/javascript/api/JavaScriptRule.java
diff --git a/sonar-plugin/javascript-checks/src/main/java/org/sonar/plugins/javascript/api/RulesBundle.java b/sonar-plugin/api/src/main/java/org/sonar/plugins/javascript/api/RulesBundle.java
similarity index 100%
rename from sonar-plugin/javascript-checks/src/main/java/org/sonar/plugins/javascript/api/RulesBundle.java
rename to sonar-plugin/api/src/main/java/org/sonar/plugins/javascript/api/RulesBundle.java
diff --git a/sonar-plugin/javascript-checks/src/main/java/org/sonar/plugins/javascript/api/TestFileCheck.java b/sonar-plugin/api/src/main/java/org/sonar/plugins/javascript/api/TestFileCheck.java
similarity index 100%
rename from sonar-plugin/javascript-checks/src/main/java/org/sonar/plugins/javascript/api/TestFileCheck.java
rename to sonar-plugin/api/src/main/java/org/sonar/plugins/javascript/api/TestFileCheck.java
diff --git a/sonar-plugin/javascript-checks/src/main/java/org/sonar/plugins/javascript/api/TypeScriptRule.java b/sonar-plugin/api/src/main/java/org/sonar/plugins/javascript/api/TypeScriptRule.java
similarity index 100%
rename from sonar-plugin/javascript-checks/src/main/java/org/sonar/plugins/javascript/api/TypeScriptRule.java
rename to sonar-plugin/api/src/main/java/org/sonar/plugins/javascript/api/TypeScriptRule.java
diff --git a/sonar-plugin/javascript-checks/src/main/java/org/sonar/plugins/javascript/api/package-info.java b/sonar-plugin/api/src/main/java/org/sonar/plugins/javascript/api/package-info.java
similarity index 100%
rename from sonar-plugin/javascript-checks/src/main/java/org/sonar/plugins/javascript/api/package-info.java
rename to sonar-plugin/api/src/main/java/org/sonar/plugins/javascript/api/package-info.java
diff --git a/sonar-plugin/javascript-checks/src/test/java/org/sonar/plugins/javascript/api/CustomRuleRepositoryTest.java b/sonar-plugin/api/src/test/java/org/sonar/plugins/javascript/api/CustomRuleRepositoryTest.java
similarity index 100%
rename from sonar-plugin/javascript-checks/src/test/java/org/sonar/plugins/javascript/api/CustomRuleRepositoryTest.java
rename to sonar-plugin/api/src/test/java/org/sonar/plugins/javascript/api/CustomRuleRepositoryTest.java
diff --git a/sonar-plugin/javascript-checks/src/test/java/org/sonar/plugins/javascript/api/EslintBasedCheckTest.java b/sonar-plugin/api/src/test/java/org/sonar/plugins/javascript/api/EslintBasedCheckTest.java
similarity index 100%
rename from sonar-plugin/javascript-checks/src/test/java/org/sonar/plugins/javascript/api/EslintBasedCheckTest.java
rename to sonar-plugin/api/src/test/java/org/sonar/plugins/javascript/api/EslintBasedCheckTest.java
diff --git a/sonar-plugin/bridge/pom.xml b/sonar-plugin/bridge/pom.xml
index 08f0e99e5c0..edc289707d7 100644
--- a/sonar-plugin/bridge/pom.xml
+++ b/sonar-plugin/bridge/pom.xml
@@ -14,9 +14,8 @@
-
${project.groupId}
- javascript-checks
+ api
org.sonarsource.api.plugin
diff --git a/sonar-plugin/javascript-checks/pom.xml b/sonar-plugin/javascript-checks/pom.xml
index b87269f4f02..7d53dad16e7 100644
--- a/sonar-plugin/javascript-checks/pom.xml
+++ b/sonar-plugin/javascript-checks/pom.xml
@@ -13,6 +13,10 @@
SonarQube JavaScript :: Checks
+
+ ${project.groupId}
+ api
+
org.sonarsource.api.plugin
sonar-plugin-api
diff --git a/sonar-plugin/pom.xml b/sonar-plugin/pom.xml
index 4094c5a996f..21b1f3da624 100644
--- a/sonar-plugin/pom.xml
+++ b/sonar-plugin/pom.xml
@@ -23,6 +23,7 @@
+ api
bridge
css
javascript-checks
diff --git a/sonar-plugin/sonar-javascript-plugin/pom.xml b/sonar-plugin/sonar-javascript-plugin/pom.xml
index c5c3d1f80b2..d4ba69e4466 100644
--- a/sonar-plugin/sonar-javascript-plugin/pom.xml
+++ b/sonar-plugin/sonar-javascript-plugin/pom.xml
@@ -26,16 +26,20 @@
${project.groupId}
- bridge
+ api
${project.groupId}
- javascript-checks
+ bridge
${project.groupId}
css
+
+ ${project.groupId}
+ javascript-checks
+
commons-io