Browse Source

Add the ability to make different kinds of builds

JC Brand 7 years ago
parent
commit
659f70b28b
7 changed files with 4502 additions and 1951 deletions
  1. 2 0
      .gitignore
  2. 22 6
      Makefile
  3. 3869 1941
      dist/converse-no-dependencies.js
  4. 0 0
      dist/converse.js
  5. 533 4
      package-lock.json
  6. 2 0
      package.json
  7. 74 0
      webpack.config.js

+ 2 - 0
.gitignore

@@ -12,6 +12,8 @@
 .idea
 .idea
 .su?
 .su?
 builds/*
 builds/*
+*.map
+dist/converse-no-dependencies-es2015.js
 
 
 analytics.js
 analytics.js
 inverse-analytics.js
 inverse-analytics.js

+ 22 - 6
Makefile

@@ -74,7 +74,7 @@ serve_bg: dev
 GETTEXT = xgettext --language="JavaScript" --keyword=__ --keyword=___ --from-code=UTF-8 --output=locale/converse.pot dist/converse-no-dependencies.js --package-name=Converse.js --copyright-holder="Jan-Carel Brand" --package-version=3.3.4 -c
 GETTEXT = xgettext --language="JavaScript" --keyword=__ --keyword=___ --from-code=UTF-8 --output=locale/converse.pot dist/converse-no-dependencies.js --package-name=Converse.js --copyright-holder="Jan-Carel Brand" --package-version=3.3.4 -c
 
 
 .PHONY: pot
 .PHONY: pot
-pot: dist/converse-no-dependencies.js
+pot: dist/converse-no-dependencies-es2015.js
 	$(GETTEXT) 2>&1 > /dev/null; exit $$?;
 	$(GETTEXT) 2>&1 > /dev/null; exit $$?;
 
 
 .PHONY: po
 .PHONY: po
@@ -184,12 +184,28 @@ logo/conversejs-filled%.png:: logo/conversejs-filled.svg
 	$(OXIPNG) $@
 	$(OXIPNG) $@
 
 
 BUILDS = dist/converse.js \
 BUILDS = dist/converse.js \
-		 dist/converse.min.js
-
-dist/converse.js: transpile src stamp-npm
-	./node_modules/.bin/npx  webpack --mode=production
-dist/converse.min.js: transpile src stamp-npm
+		 dist/converse.min.js \
+         dist/converse-headless.js \
+		 dist/converse-headless.min.js \
+		 dist/converse-no-dependencies.min.js \
+		 dist/converse-no-dependencies.js \
+		 dist/converse-no-dependencies-es5.js
+
+dist/converse.js: src webpack.config.js stamp-npm
+	./node_modules/.bin/npx  webpack --mode=development
+dist/converse.min.js: src webpack.config.js stamp-npm
 	./node_modules/.bin/npx  webpack --mode=production
 	./node_modules/.bin/npx  webpack --mode=production
+dist/converse-headless.js: src webpack.config.js stamp-npm
+	./node_modules/.bin/npx  webpack --mode=development --type=headless
+dist/converse-headless.min.js: src webpack.config.js stamp-npm
+	./node_modules/.bin/npx  webpack --mode=production --type=headless
+dist/converse-no-dependencies.js: src webpack.config.js stamp-npm
+	./node_modules/.bin/npx  webpack --mode=development --type=nodeps
+dist/converse-no-dependencies.min.js: src webpack.config.js stamp-npm
+	./node_modules/.bin/npx  webpack --mode=production --type=nodeps 
+dist/converse-no-dependencies-es2015.js: src webpack.config.js stamp-npm
+	./node_modules/.bin/npx  webpack --mode=development --type=nodeps --lang=es2015
+
 
 
 .PHONY: dist
 .PHONY: dist
 dist:: build
 dist:: build

File diff suppressed because it is too large
+ 3869 - 1941
dist/converse-no-dependencies.js


File diff suppressed because it is too large
+ 0 - 0
dist/converse.js


+ 533 - 4
package-lock.json

@@ -551,6 +551,23 @@
         "@babel/helper-plugin-utils": "7.0.0-beta.48"
         "@babel/helper-plugin-utils": "7.0.0-beta.48"
       }
       }
     },
     },
+    "@babel/plugin-transform-instanceof": {
+      "version": "7.0.0-beta.49",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-instanceof/-/plugin-transform-instanceof-7.0.0-beta.49.tgz",
+      "integrity": "sha1-4yX5x3Gx+fsm35U9d4AhC7WHq/g=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "7.0.0-beta.49"
+      },
+      "dependencies": {
+        "@babel/helper-plugin-utils": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-beta.49.tgz",
+          "integrity": "sha1-Dp/LuDT4eLs2XSqOqQ7uIbo8zSM=",
+          "dev": true
+        }
+      }
+    },
     "@babel/plugin-transform-literals": {
     "@babel/plugin-transform-literals": {
       "version": "7.0.0-beta.48",
       "version": "7.0.0-beta.48",
       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0-beta.48.tgz",
       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0-beta.48.tgz",
@@ -745,6 +762,504 @@
         "semver": "5.5.0"
         "semver": "5.5.0"
       }
       }
     },
     },
+    "@babel/preset-es2015": {
+      "version": "7.0.0-beta.49",
+      "resolved": "https://registry.npmjs.org/@babel/preset-es2015/-/preset-es2015-7.0.0-beta.49.tgz",
+      "integrity": "sha1-F6HYENQuhOcGnIapEs18fFhTd3E=",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "7.0.0-beta.49",
+        "@babel/plugin-transform-arrow-functions": "7.0.0-beta.49",
+        "@babel/plugin-transform-block-scoped-functions": "7.0.0-beta.49",
+        "@babel/plugin-transform-block-scoping": "7.0.0-beta.49",
+        "@babel/plugin-transform-classes": "7.0.0-beta.49",
+        "@babel/plugin-transform-computed-properties": "7.0.0-beta.49",
+        "@babel/plugin-transform-destructuring": "7.0.0-beta.49",
+        "@babel/plugin-transform-duplicate-keys": "7.0.0-beta.49",
+        "@babel/plugin-transform-for-of": "7.0.0-beta.49",
+        "@babel/plugin-transform-function-name": "7.0.0-beta.49",
+        "@babel/plugin-transform-instanceof": "7.0.0-beta.49",
+        "@babel/plugin-transform-literals": "7.0.0-beta.49",
+        "@babel/plugin-transform-modules-amd": "7.0.0-beta.49",
+        "@babel/plugin-transform-modules-commonjs": "7.0.0-beta.49",
+        "@babel/plugin-transform-modules-systemjs": "7.0.0-beta.49",
+        "@babel/plugin-transform-modules-umd": "7.0.0-beta.49",
+        "@babel/plugin-transform-object-super": "7.0.0-beta.49",
+        "@babel/plugin-transform-parameters": "7.0.0-beta.49",
+        "@babel/plugin-transform-regenerator": "7.0.0-beta.49",
+        "@babel/plugin-transform-shorthand-properties": "7.0.0-beta.49",
+        "@babel/plugin-transform-spread": "7.0.0-beta.49",
+        "@babel/plugin-transform-sticky-regex": "7.0.0-beta.49",
+        "@babel/plugin-transform-template-literals": "7.0.0-beta.49",
+        "@babel/plugin-transform-typeof-symbol": "7.0.0-beta.49",
+        "@babel/plugin-transform-unicode-regex": "7.0.0-beta.49"
+      },
+      "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.49.tgz",
+          "integrity": "sha1-vs2AVIJzREDJ0TfkbXc0DmTX9Rs=",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "7.0.0-beta.49"
+          }
+        },
+        "@babel/generator": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.49.tgz",
+          "integrity": "sha1-6c/9qROZaszseTu8JauRvBnQv3o=",
+          "dev": true,
+          "requires": {
+            "@babel/types": "7.0.0-beta.49",
+            "jsesc": "2.5.1",
+            "lodash": "4.17.10",
+            "source-map": "0.5.7",
+            "trim-right": "1.0.1"
+          }
+        },
+        "@babel/helper-annotate-as-pure": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.49.tgz",
+          "integrity": "sha1-fZAF1U/nrWy4dnkCUedVdUGRhuk=",
+          "dev": true,
+          "requires": {
+            "@babel/types": "7.0.0-beta.49"
+          }
+        },
+        "@babel/helper-call-delegate": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0-beta.49.tgz",
+          "integrity": "sha1-S11BeCpoPV3GSXg0oyMQqNAqOvk=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-hoist-variables": "7.0.0-beta.49",
+            "@babel/traverse": "7.0.0-beta.49",
+            "@babel/types": "7.0.0-beta.49"
+          }
+        },
+        "@babel/helper-define-map": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.0.0-beta.49.tgz",
+          "integrity": "sha1-TqBnqnIJNyQN85XNBzwk/K2cKzs=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-function-name": "7.0.0-beta.49",
+            "@babel/types": "7.0.0-beta.49",
+            "lodash": "4.17.10"
+          }
+        },
+        "@babel/helper-function-name": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.49.tgz",
+          "integrity": "sha1-olwRGbnwNSeGcBJuAiXAMEHI3jI=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-get-function-arity": "7.0.0-beta.49",
+            "@babel/template": "7.0.0-beta.49",
+            "@babel/types": "7.0.0-beta.49"
+          }
+        },
+        "@babel/helper-get-function-arity": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.49.tgz",
+          "integrity": "sha1-z1Aj8y0q2S0Ic3STnOwJUby1FEE=",
+          "dev": true,
+          "requires": {
+            "@babel/types": "7.0.0-beta.49"
+          }
+        },
+        "@babel/helper-hoist-variables": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0-beta.49.tgz",
+          "integrity": "sha1-2XQGUck7tPp5wba6xjQFH8TQP/U=",
+          "dev": true,
+          "requires": {
+            "@babel/types": "7.0.0-beta.49"
+          }
+        },
+        "@babel/helper-member-expression-to-functions": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0-beta.49.tgz",
+          "integrity": "sha1-L2QrAD1FFV4KnnpK0OaI2Ru8FYM=",
+          "dev": true,
+          "requires": {
+            "@babel/types": "7.0.0-beta.49"
+          }
+        },
+        "@babel/helper-module-imports": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.49.tgz",
+          "integrity": "sha1-QdfVmJEBbEk0MqRvdGREZVKJDHU=",
+          "dev": true,
+          "requires": {
+            "@babel/types": "7.0.0-beta.49",
+            "lodash": "4.17.10"
+          }
+        },
+        "@babel/helper-module-transforms": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0-beta.49.tgz",
+          "integrity": "sha1-/GYL2p1kl0EuGHdqca7ZqeLl960=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-module-imports": "7.0.0-beta.49",
+            "@babel/helper-simple-access": "7.0.0-beta.49",
+            "@babel/helper-split-export-declaration": "7.0.0-beta.49",
+            "@babel/template": "7.0.0-beta.49",
+            "@babel/types": "7.0.0-beta.49",
+            "lodash": "4.17.10"
+          }
+        },
+        "@babel/helper-optimise-call-expression": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0-beta.49.tgz",
+          "integrity": "sha1-qYtDw6bFS+9I+HsQ3EVo3sC0G/c=",
+          "dev": true,
+          "requires": {
+            "@babel/types": "7.0.0-beta.49"
+          }
+        },
+        "@babel/helper-plugin-utils": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-beta.49.tgz",
+          "integrity": "sha1-Dp/LuDT4eLs2XSqOqQ7uIbo8zSM=",
+          "dev": true
+        },
+        "@babel/helper-regex": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0-beta.49.tgz",
+          "integrity": "sha1-/yRPGcKi8Wf/SzFlpjawj9ZBgWs=",
+          "dev": true,
+          "requires": {
+            "lodash": "4.17.10"
+          }
+        },
+        "@babel/helper-replace-supers": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0-beta.49.tgz",
+          "integrity": "sha1-50RMcYBX9qCjZFyvjnj7VG/7DZ8=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-member-expression-to-functions": "7.0.0-beta.49",
+            "@babel/helper-optimise-call-expression": "7.0.0-beta.49",
+            "@babel/traverse": "7.0.0-beta.49",
+            "@babel/types": "7.0.0-beta.49"
+          }
+        },
+        "@babel/helper-simple-access": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.0.0-beta.49.tgz",
+          "integrity": "sha1-l6QeJ4mpv4psMFNqJYt550RMXYI=",
+          "dev": true,
+          "requires": {
+            "@babel/template": "7.0.0-beta.49",
+            "@babel/types": "7.0.0-beta.49",
+            "lodash": "4.17.10"
+          }
+        },
+        "@babel/helper-split-export-declaration": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.49.tgz",
+          "integrity": "sha1-QNeO2glo0BGxxShm5XRs+yPldUg=",
+          "dev": true,
+          "requires": {
+            "@babel/types": "7.0.0-beta.49"
+          }
+        },
+        "@babel/highlight": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.49.tgz",
+          "integrity": "sha1-lr3GtD4TSCASumaRsQGEktOWIsw=",
+          "dev": true,
+          "requires": {
+            "chalk": "2.3.2",
+            "esutils": "2.0.2",
+            "js-tokens": "3.0.2"
+          }
+        },
+        "@babel/parser": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.49.tgz",
+          "integrity": "sha1-lE0MW6KBK7FZ7b0iZ0Ov0mUXm9w=",
+          "dev": true
+        },
+        "@babel/plugin-transform-arrow-functions": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0-beta.49.tgz",
+          "integrity": "sha1-3ThFtjxoPRh9UYbuDogsQEbE8OM=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-plugin-utils": "7.0.0-beta.49"
+          }
+        },
+        "@babel/plugin-transform-block-scoped-functions": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0-beta.49.tgz",
+          "integrity": "sha1-eqn0b9+HO3IRqqLrDTfEw3Ghq9I=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-plugin-utils": "7.0.0-beta.49"
+          }
+        },
+        "@babel/plugin-transform-block-scoping": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0-beta.49.tgz",
+          "integrity": "sha1-3Vqd3ZhndciyDPW2EGWvs92eqsk=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-plugin-utils": "7.0.0-beta.49",
+            "lodash": "4.17.10"
+          }
+        },
+        "@babel/plugin-transform-classes": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0-beta.49.tgz",
+          "integrity": "sha1-U0JHHS5qMzczLqJGtGwL3fX8VE0=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-annotate-as-pure": "7.0.0-beta.49",
+            "@babel/helper-define-map": "7.0.0-beta.49",
+            "@babel/helper-function-name": "7.0.0-beta.49",
+            "@babel/helper-optimise-call-expression": "7.0.0-beta.49",
+            "@babel/helper-plugin-utils": "7.0.0-beta.49",
+            "@babel/helper-replace-supers": "7.0.0-beta.49",
+            "@babel/helper-split-export-declaration": "7.0.0-beta.49",
+            "globals": "11.3.0"
+          }
+        },
+        "@babel/plugin-transform-computed-properties": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0-beta.49.tgz",
+          "integrity": "sha1-uCWdF0vwerS1ZWZWK0buZSDD39I=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-plugin-utils": "7.0.0-beta.49"
+          }
+        },
+        "@babel/plugin-transform-destructuring": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0-beta.49.tgz",
+          "integrity": "sha1-Q2Y5LJyC0SMQVsHQApQ4pg02K4I=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-plugin-utils": "7.0.0-beta.49"
+          }
+        },
+        "@babel/plugin-transform-duplicate-keys": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0-beta.49.tgz",
+          "integrity": "sha1-+sJEgJ3ey/CV43VVjMtxbaEEIxY=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-plugin-utils": "7.0.0-beta.49"
+          }
+        },
+        "@babel/plugin-transform-for-of": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0-beta.49.tgz",
+          "integrity": "sha1-PscnJr8diaDU1RG+epVJBm9Xqt4=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-plugin-utils": "7.0.0-beta.49"
+          }
+        },
+        "@babel/plugin-transform-function-name": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0-beta.49.tgz",
+          "integrity": "sha1-rzn2Dnrvzpsl60rc7dBNUIZs4hg=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-function-name": "7.0.0-beta.49",
+            "@babel/helper-plugin-utils": "7.0.0-beta.49"
+          }
+        },
+        "@babel/plugin-transform-literals": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0-beta.49.tgz",
+          "integrity": "sha1-B8g4JU1l5oZ+hlE+sPItXyawpWo=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-plugin-utils": "7.0.0-beta.49"
+          }
+        },
+        "@babel/plugin-transform-modules-amd": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.0.0-beta.49.tgz",
+          "integrity": "sha1-FtB0gJVLBBXqcPHsPtvQWXvT3f4=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-module-transforms": "7.0.0-beta.49",
+            "@babel/helper-plugin-utils": "7.0.0-beta.49"
+          }
+        },
+        "@babel/plugin-transform-modules-commonjs": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0-beta.49.tgz",
+          "integrity": "sha1-Cfs0XVknwro72J582xOlUGftOaA=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-module-transforms": "7.0.0-beta.49",
+            "@babel/helper-plugin-utils": "7.0.0-beta.49",
+            "@babel/helper-simple-access": "7.0.0-beta.49"
+          }
+        },
+        "@babel/plugin-transform-modules-systemjs": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0-beta.49.tgz",
+          "integrity": "sha1-aCJaOuExJ3G8Wjb3H/ENAsEkPZ8=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-hoist-variables": "7.0.0-beta.49",
+            "@babel/helper-plugin-utils": "7.0.0-beta.49"
+          }
+        },
+        "@babel/plugin-transform-modules-umd": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.0.0-beta.49.tgz",
+          "integrity": "sha1-cEjKWncYlwb0s+luS5luswWQ3WM=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-module-transforms": "7.0.0-beta.49",
+            "@babel/helper-plugin-utils": "7.0.0-beta.49"
+          }
+        },
+        "@babel/plugin-transform-object-super": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.0.0-beta.49.tgz",
+          "integrity": "sha1-swL1VwKEc0PBD/T7hDXMNXR1X+M=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-plugin-utils": "7.0.0-beta.49",
+            "@babel/helper-replace-supers": "7.0.0-beta.49"
+          }
+        },
+        "@babel/plugin-transform-parameters": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0-beta.49.tgz",
+          "integrity": "sha1-HK1xoqMygeXvuxpGI6lkwHPOmi0=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-call-delegate": "7.0.0-beta.49",
+            "@babel/helper-get-function-arity": "7.0.0-beta.49",
+            "@babel/helper-plugin-utils": "7.0.0-beta.49"
+          }
+        },
+        "@babel/plugin-transform-regenerator": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0-beta.49.tgz",
+          "integrity": "sha1-1O15ZwM/T1tJNjwgNQOJm4NXyuI=",
+          "dev": true,
+          "requires": {
+            "regenerator-transform": "0.12.3"
+          }
+        },
+        "@babel/plugin-transform-shorthand-properties": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0-beta.49.tgz",
+          "integrity": "sha1-SfE0295PZVg0whUk6eYaWNTheQA=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-plugin-utils": "7.0.0-beta.49"
+          }
+        },
+        "@babel/plugin-transform-spread": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0-beta.49.tgz",
+          "integrity": "sha1-arqwX8DMqCmq+eKoUES3l2Pmgco=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-plugin-utils": "7.0.0-beta.49"
+          }
+        },
+        "@babel/plugin-transform-sticky-regex": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0-beta.49.tgz",
+          "integrity": "sha1-CMxbZM9qWUKoe92bSkgY1MuhLfM=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-plugin-utils": "7.0.0-beta.49",
+            "@babel/helper-regex": "7.0.0-beta.49"
+          }
+        },
+        "@babel/plugin-transform-template-literals": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0-beta.49.tgz",
+          "integrity": "sha1-5gmu1rj8x+HrzKzyITimRyApQKI=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-annotate-as-pure": "7.0.0-beta.49",
+            "@babel/helper-plugin-utils": "7.0.0-beta.49"
+          }
+        },
+        "@babel/plugin-transform-typeof-symbol": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0-beta.49.tgz",
+          "integrity": "sha1-NlFBujVb9znu/Wwrud8cO3FG5FA=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-plugin-utils": "7.0.0-beta.49"
+          }
+        },
+        "@babel/plugin-transform-unicode-regex": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0-beta.49.tgz",
+          "integrity": "sha1-w3XbVwl1diFSPUGstiqavw1DdLg=",
+          "dev": true,
+          "requires": {
+            "@babel/helper-plugin-utils": "7.0.0-beta.49",
+            "@babel/helper-regex": "7.0.0-beta.49",
+            "regexpu-core": "4.1.5"
+          }
+        },
+        "@babel/template": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.49.tgz",
+          "integrity": "sha1-44q+ghfLl5P0YaUwbXrXRdg+HSc=",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "7.0.0-beta.49",
+            "@babel/parser": "7.0.0-beta.49",
+            "@babel/types": "7.0.0-beta.49",
+            "lodash": "4.17.10"
+          }
+        },
+        "@babel/traverse": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.49.tgz",
+          "integrity": "sha1-TypzaCoYM07WYl0QCo0nMZ98LWg=",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "7.0.0-beta.49",
+            "@babel/generator": "7.0.0-beta.49",
+            "@babel/helper-function-name": "7.0.0-beta.49",
+            "@babel/helper-split-export-declaration": "7.0.0-beta.49",
+            "@babel/parser": "7.0.0-beta.49",
+            "@babel/types": "7.0.0-beta.49",
+            "debug": "3.1.0",
+            "globals": "11.3.0",
+            "invariant": "2.2.3",
+            "lodash": "4.17.10"
+          }
+        },
+        "@babel/types": {
+          "version": "7.0.0-beta.49",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.49.tgz",
+          "integrity": "sha1-t+Oxw/TUz+Eb34yJ8e/V4WF7h6Y=",
+          "dev": true,
+          "requires": {
+            "esutils": "2.0.2",
+            "lodash": "4.17.10",
+            "to-fast-properties": "2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.10",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
+          "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==",
+          "dev": true
+        }
+      }
+    },
     "@babel/template": {
     "@babel/template": {
       "version": "7.0.0-beta.48",
       "version": "7.0.0-beta.48",
       "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.48.tgz",
       "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.48.tgz",
@@ -7246,9 +7761,9 @@
       }
       }
     },
     },
     "minimist": {
     "minimist": {
-      "version": "0.0.8",
-      "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
-      "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+      "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
       "dev": true
       "dev": true
     },
     },
     "mississippi": {
     "mississippi": {
@@ -7297,6 +7812,14 @@
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "minimist": "0.0.8"
         "minimist": "0.0.8"
+      },
+      "dependencies": {
+        "minimist": {
+          "version": "0.0.8",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+          "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+          "dev": true
+        }
       }
       }
     },
     },
     "moment": {
     "moment": {
@@ -12134,10 +12657,16 @@
       "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
       "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
-        "minimist": "0.0.8",
+        "minimist": "0.0.10",
         "wordwrap": "0.0.3"
         "wordwrap": "0.0.3"
       },
       },
       "dependencies": {
       "dependencies": {
+        "minimist": {
+          "version": "0.0.10",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
+          "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
+          "dev": true
+        },
         "wordwrap": {
         "wordwrap": {
           "version": "0.0.3",
           "version": "0.0.3",
           "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
           "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",

+ 2 - 0
package.json

@@ -32,6 +32,7 @@
     "@babel/cli": "^7.0.0-beta.48",
     "@babel/cli": "^7.0.0-beta.48",
     "@babel/core": "^7.0.0-beta.48",
     "@babel/core": "^7.0.0-beta.48",
     "@babel/preset-env": "^7.0.0-beta.48",
     "@babel/preset-env": "^7.0.0-beta.48",
+    "@babel/preset-es2015": "^7.0.0-beta.49",
     "awesomplete-avoid-xss": "^1.1.2",
     "awesomplete-avoid-xss": "^1.1.2",
     "babel-loader": "^8.0.0-beta.3",
     "babel-loader": "^8.0.0-beta.3",
     "backbone": "1.3.3",
     "backbone": "1.3.3",
@@ -61,6 +62,7 @@
     "lodash": "4.17.4",
     "lodash": "4.17.4",
     "lodash-template-loader": "^2.0.0",
     "lodash-template-loader": "^2.0.0",
     "lodash-template-webpack-loader": "jcbrand/lodash-template-webpack-loader",
     "lodash-template-webpack-loader": "jcbrand/lodash-template-webpack-loader",
+    "minimist": "^1.2.0",
     "moment": "~> 2.19.3 ",
     "moment": "~> 2.19.3 ",
     "npm": "^5.7.1",
     "npm": "^5.7.1",
     "otr": "0.2.16",
     "otr": "0.2.16",

+ 74 - 0
webpack.config.js

@@ -1,5 +1,6 @@
 /*global path, __dirname, module */
 /*global path, __dirname, module */
 'use strict'
 'use strict'
+const minimist = require('minimist');
 const path = require('path');
 const path = require('path');
 
 
 const config = {
 const config = {
@@ -152,4 +153,77 @@ const config = {
     }
     }
 }
 }
 
 
+function getCLIArgument (name) {
+    return value;
+}
+
+function extend (o1, o2) {
+	for (let i in o2) {
+		if (o2.hasOwnProperty(i)) {
+			o1[i] = o2[i];
+		}
+	}
+};
+
+function parameterize () {
+    const type = minimist(process.argv.slice(2)).type;
+    const mode = minimist(process.argv.slice(2)).mode;
+    const lang = minimist(process.argv.slice(2)).lang;
+
+	if (type === 'headless') {
+		console.log("Making a headless build");
+		extend(config, {
+			entry: path.resolve(__dirname, 'src/headless.js'),
+			output: {
+				path: path.resolve(__dirname, 'dist'),
+				filename: 'converse-headless.js'
+			},
+		});
+	}
+
+	if (type === 'nodeps') {
+		console.log("Making a build without 3rd party dependencies");
+		extend(config, {
+			entry: path.resolve(__dirname, 'src/converse.js'),
+			externals: [{
+				"awesomplete": "awesomplete",
+				"backbone.browserStorage": "backbone.browserStorage",
+				"backbone.overview": "backbone.overview",
+				"es6-promise": "es6-promise",
+				"lodash": "lodash",
+				"lodash.converter": "lodash.converter",
+				"lodash.noconflict": "lodash.noconflict",
+				"moment": "moment",
+				"strophe": "strophe",
+				"strophe.ping": "strophe.ping",
+				"strophe.rsm": "strophe.rsm",
+				"window": "window"
+			}],
+			output: {
+				path: path.resolve(__dirname, 'dist'),
+				filename: 'converse-no-dependencies.js'
+			},
+		});
+	}
+
+	if (mode === 'production') {
+		console.log("Making a production build");
+        let fn = config.output.filename;
+        config.output.filename = `${fn.replace(/\.js$/, '')}.min.js`;
+	}
+
+	if (lang === 'es2015') {
+		console.log("Making an es2015 build");
+        config.module.rules.forEach((rule) => {
+            if (rule.use.loader === 'babel-loader') {
+                rule.use.options.presets = [
+                    ["@babel/preset-es2015"]
+                ]
+            }
+        });
+	}
+}
+
+parameterize();
+
 module.exports = config;
 module.exports = config;

Some files were not shown because too many files changed in this diff