diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..8a240b1
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,11 @@
+{
+ "requires": true,
+ "lockfileVersion": 1,
+ "dependencies": {
+ "is-valid-domain": {
+ "version": "0.0.14",
+ "resolved": "https://registry.npmjs.org/is-valid-domain/-/is-valid-domain-0.0.14.tgz",
+ "integrity": "sha512-MTUz/3y25zTtutAfwrLyFK+1l2IL4bcq2iHVdYHIPQbvBJLunlYu9dsQdtLwD9HKPDyxCDlKnSbGcRwvjVeCxA=="
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..49e966e
--- /dev/null
+++ b/package.json
@@ -0,0 +1,8 @@
+{
+ "dependencies": {
+ "is-valid-domain": "0.0.14"
+ },
+ "devDependencies": {
+ "webpack-plugin": "^1.0.5"
+ }
+}
diff --git a/prefs/prefs.htm b/prefs/prefs.htm
new file mode 100644
index 0000000..c24d481
--- /dev/null
+++ b/prefs/prefs.htm
@@ -0,0 +1,13 @@
+
+
+ Copy JIRA ID Settings.
+
+
+ By default this extension supports jira.com and atlassian.net domains.
+ You can add your custom domains below for self-hosted JIRA.
+ If you have multiple domains, you can add them separated by a comma.
+
+
+
+
+
\ No newline at end of file
diff --git a/prefs/prefs.js b/prefs/prefs.js
new file mode 100644
index 0000000..3037eda
--- /dev/null
+++ b/prefs/prefs.js
@@ -0,0 +1,23 @@
+const isValidDomain = require('is-valid-domain')
+
+
+savePrefs = () => {
+ const customDomains = document.getElementById("field-custom-domains").value;
+ const invalidDomains = [];
+ const validDomains = [];
+ customDomains.split(',').forEach(domain => {
+ if(domain.trim() && isValidDomain(domain, {subdomain : true, wildcard: false})){
+ validDomains.push(domain);
+ }else{
+ if(domain.trim()){
+ invalidDomains.push(domain);
+ }
+ }
+ });
+ if(invalidDomains.length){
+
+ }else{
+ saveDomains(validDomains);
+ }
+}
+
diff --git a/webpack.js b/webpack.js
new file mode 100644
index 0000000..e69de29