diff --git a/README.md b/README.md
index aa86d2dee..5ccdef4fd 100644
--- a/README.md
+++ b/README.md
@@ -60,6 +60,11 @@ loginModal.close()
loginModal.logout();
```
+#### A note on script tag versioning
+
+The `v1` in the above URL is not pinned to the major version of the module API, and will only reflect breaking changes in the
+markup API.
+
### Module API
Netlify Identity Widget also has a module api:
@@ -71,33 +76,31 @@ yarn add netlify-identity-widget
Import or require as usual:
```js
-import NetlifyIdentity from "netlify-identity-widget"
-// or
-const netlifyIdentity = require("netlify-identity-widget");
+const netlifyIdentity = require("netlify-identity-widget")
netlifyIdentity.init({
container: "#netlify-modal" // defaults to document.body
});
-identity.open() // open the modal
+netlifyIdentity.open() // open the modal
-identity.on('init', user => console.log(user))
-identity.on('login', login => console.log(user))
-identity.on('logout', () => console.log("Logged out"))
-identity.on('error', err => console.error("Logged out"))
-identity.on('open', () => console.log("Widget opened"))
-identity.on('close', () => console.log("Widget closed"))
+netlifyIdentity.on('init', user => console.log(user))
+netlifyIdentity.on('login', login => console.log(user))
+netlifyIdentity.on('logout', () => console.log("Logged out"))
+netlifyIdentity.on('error', err => console.error("Logged out"))
+netlifyIdentity.on('open', () => console.log("Widget opened"))
+netlifyIdentity.on('close', () => console.log("Widget closed"))
// Close the modal
identity.close()
// Logout the user
-loginModal.logout();
+netlifyIdentity.logout();
// Access the underlying gotrue instance.
// Note that doing things directly through gotrue brings a risk of getting out of
// sync between your state and the widgets state.
-identity.gotrue
+netlifyIdentity.gotrue
```
## Localhost
diff --git a/package.json b/package.json
index c2086718e..f364dc6e7 100644
--- a/package.json
+++ b/package.json
@@ -1,14 +1,17 @@
{
"name": "netlify-identity-widget",
"version": "1.0.0",
+ "releaseVersion": "v1",
"description": "Netlify Identity widget for easy integration",
"scripts": {
- "dev": "cross-env NODE_ENV=development webpack-dev-server --inline --progress",
+ "dev": "cross-env NODE_ENV=development webpack-dev-server --inline --progress --config webpack.config.babel.js",
"start": "serve build -s -c 1",
- "prestart": "npm run build",
- "version": "npm run release",
- "prepublish": "npm run build",
- "build": "cross-env NODE_ENV=production webpack --progress",
+ "prestart": "run-s build",
+ "version": "run-s release",
+ "prepublish": "run-s build",
+ "build": "run-p build:*",
+ "build:bundle": "cross-env NODE_ENV=production webpack --progress --config webpack.config.babel.js",
+ "build:umd": "cross-env NODE_ENV=production webpack --progress --config webpack.umd.config.babel.js",
"prebuild": "mkdirp build",
"test": "eslint src",
"release": "node ./script/release.js",
@@ -42,27 +45,26 @@
"eslint-plugin-prettier": "^2.2.0",
"eslint-plugin-react": "^7.0.0",
"file-loader": "^0.11.1",
+ "gotrue-js": "^0.9.8",
"html-webpack-plugin": "^2.28.0",
"json-loader": "^0.5.4",
"mkdirp": "^0.5.1",
+ "mobx": "^3.2.2",
+ "mobx-preact": "^0.3.1",
+ "npm-run-all": "^4.1.1",
+ "postcss-cssnext": "^3.0.2",
+ "postcss-import": "^10.0.0",
"postcss-loader": "^2.0.3",
+ "postcss-nested": "^2.1.2",
+ "preact": "^8.1.0",
+ "preact-compat": "^3.15.0",
"prettier": "^1.6.1",
"raw-loader": "^0.5.1",
- "semver": "^5.4.1",
+ "serve": "^6.0.0",
"source-map-loader": "^0.2.1",
"url-loader": "^0.5.8",
"webpack": "^3.0.0",
"webpack-dev-server": "^2.4.4"
},
- "dependencies": {
- "gotrue-js": "^0.9.8",
- "mobx": "^3.2.2",
- "mobx-preact": "^0.3.1",
- "postcss-cssnext": "^3.0.2",
- "postcss-import": "^10.0.0",
- "postcss-nested": "^2.1.2",
- "preact": "^8.1.0",
- "preact-compat": "^3.15.0",
- "serve": "^6.0.0"
- }
+ "dependencies": {}
}
diff --git a/script/release.js b/script/release.js
index 53f2f80a3..c682246c4 100644
--- a/script/release.js
+++ b/script/release.js
@@ -1,7 +1,6 @@
/* eslint no-console: "off" */
const exec = require("child_process").execSync;
-const semver = require("semver");
-const version = "v" + semver(require("../package.json").version).major;
+const version = require("../package.json").releaseVersion;
console.log("Building new release for ", version);
diff --git a/src/index.ejs b/src/index.ejs
index e440df4b9..13e6b2982 100644
--- a/src/index.ejs
+++ b/src/index.ejs
@@ -206,6 +206,16 @@
}
+
+
diff --git a/src/netlify-identity.js b/src/netlify-identity.js
index 355f6c0ef..71344be5b 100644
--- a/src/netlify-identity.js
+++ b/src/netlify-identity.js
@@ -212,7 +212,9 @@ function init(options) {
};
setStyle(iframe, iframeStyle);
iframe.src = "about:blank";
- const container = options.container ? document.querySelector : document.body;
+ const container = options.container
+ ? document.querySelector(options.container)
+ : document.body;
container.appendChild(iframe);
/* There's a certain case where we might have called setStyle before the iframe was ready.
Make sure we take the last style and apply it */
diff --git a/webpack.config.babel.js b/webpack.config.babel.js
index abd28401a..116f83554 100644
--- a/webpack.config.babel.js
+++ b/webpack.config.babel.js
@@ -12,7 +12,6 @@ module.exports = {
context: path.resolve(__dirname, "src"),
entry: {
"netlify-identity-widget": "./index.js",
- "netlify-identity": "./netlify-identity.js"
},
output: {
diff --git a/webpack.umd.config.babel.js b/webpack.umd.config.babel.js
new file mode 100644
index 000000000..001dda42b
--- /dev/null
+++ b/webpack.umd.config.babel.js
@@ -0,0 +1,21 @@
+import baseConfig from "./webpack.config.babel.js";
+import path from "path";
+
+const umdConfig = Object.assign({}, baseConfig, {
+ entry: {
+ "netlify-identity": "./netlify-identity.js"
+ },
+
+ output: {
+ path: path.resolve(__dirname, "build"),
+ publicPath: "/",
+ filename: "[name].js",
+ library: "netlifyIdentity",
+ libraryTarget: "umd",
+ libraryExport: "default"
+ }
+})
+
+umdConfig.plugins.splice(2,1) // Remove html plugin
+
+module.exports = umdConfig
diff --git a/yarn.lock b/yarn.lock
index bbc5cf7c5..7b5824bdc 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -107,7 +107,7 @@ ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
-ansi-styles@^3.1.0:
+ansi-styles@^3.1.0, ansi-styles@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
dependencies:
@@ -157,6 +157,10 @@ arr-flatten@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
+array-filter@~0.0.0:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec"
+
array-find-index@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
@@ -176,6 +180,14 @@ array-includes@^3.0.3:
define-properties "^1.1.2"
es-abstract "^1.7.0"
+array-map@~0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662"
+
+array-reduce@~0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b"
+
array-union@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
@@ -1928,6 +1940,10 @@ duplexer3@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
+duplexer@~0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
+
ecc-jsbn@~0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
@@ -1993,7 +2009,7 @@ error-ex@^1.2.0:
dependencies:
is-arrayish "^0.2.1"
-es-abstract@^1.7.0:
+es-abstract@^1.4.3, es-abstract@^1.7.0:
version "1.8.2"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.2.tgz#25103263dc4decbda60e0c737ca32313518027ee"
dependencies:
@@ -2227,6 +2243,18 @@ event-emitter@~0.3.5:
d "1"
es5-ext "~0.10.14"
+event-stream@~3.3.0:
+ version "3.3.4"
+ resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"
+ dependencies:
+ duplexer "~0.1.1"
+ from "~0"
+ map-stream "~0.1.0"
+ pause-stream "0.0.11"
+ split "0.3"
+ stream-combiner "~0.0.4"
+ through "~2.3.1"
+
eventemitter3@1.x.x:
version "1.2.0"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508"
@@ -2496,6 +2524,10 @@ fresh@0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e"
+from@~0:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe"
+
fs-extra@4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.1.tgz#7fc0c6c8957f983f57f306a24e5b9ddd8d0dd880"
@@ -3465,6 +3497,10 @@ map-obj@^1.0.0, map-obj@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
+map-stream@~0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194"
+
math-expression-evaluator@^1.2.14:
version "1.2.17"
resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac"
@@ -3493,6 +3529,12 @@ memory-fs@^0.4.0, memory-fs@~0.4.1:
errno "^0.1.3"
readable-stream "^2.0.1"
+memory-streams@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/memory-streams/-/memory-streams-0.1.2.tgz#273ff777ab60fec599b116355255282cca2c50c2"
+ dependencies:
+ readable-stream "~1.0.2"
+
meow@^3.3.0:
version "3.7.0"
resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
@@ -3760,6 +3802,20 @@ normalize-url@^1.4.0:
query-string "^4.1.0"
sort-keys "^1.0.0"
+npm-run-all@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.1.tgz#3095cf3f3cacf57fcb662b210ab10c609af6ddbb"
+ dependencies:
+ ansi-styles "^3.2.0"
+ chalk "^2.1.0"
+ cross-spawn "^5.1.0"
+ memory-streams "^0.1.2"
+ minimatch "^3.0.4"
+ ps-tree "^1.1.0"
+ read-pkg "^2.0.0"
+ shell-quote "^1.6.1"
+ string.prototype.padend "^3.0.0"
+
npm-run-path@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
@@ -4036,6 +4092,12 @@ path-type@^2.0.0:
dependencies:
pify "^2.0.0"
+pause-stream@0.0.11:
+ version "0.0.11"
+ resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445"
+ dependencies:
+ through "~2.3"
+
pbkdf2@^3.0.3:
version "3.0.13"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.13.tgz#c37d295531e786b1da3e3eadc840426accb0ae25"
@@ -4725,6 +4787,12 @@ prr@~0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a"
+ps-tree@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014"
+ dependencies:
+ event-stream "~3.3.0"
+
pseudomap@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
@@ -4856,7 +4924,7 @@ read-pkg@^2.0.0:
normalize-package-data "^2.3.2"
path-type "^2.0.0"
-readable-stream@1.0:
+readable-stream@1.0, readable-stream@~1.0.2:
version "1.0.34"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
dependencies:
@@ -5151,7 +5219,7 @@ semver-diff@^2.0.0:
dependencies:
semver "^5.0.3"
-"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1:
+"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0:
version "5.4.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
@@ -5269,6 +5337,15 @@ shebang-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+shell-quote@^1.6.1:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767"
+ dependencies:
+ array-filter "~0.0.0"
+ array-map "~0.0.0"
+ array-reduce "~0.0.0"
+ jsonify "~0.0.0"
+
signal-exit@^3.0.0, signal-exit@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
@@ -5388,6 +5465,12 @@ spdy@^3.4.1:
select-hose "^2.0.0"
spdy-transport "^2.0.18"
+split@0.3:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f"
+ dependencies:
+ through "2"
+
sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
@@ -5421,6 +5504,12 @@ stream-browserify@^2.0.1:
inherits "~2.0.1"
readable-stream "^2.0.2"
+stream-combiner@~0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14"
+ dependencies:
+ duplexer "~0.1.1"
+
stream-http@^2.3.1:
version "2.7.2"
resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad"
@@ -5456,6 +5545,14 @@ string-width@^2.0.0, string-width@^2.1.0:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^4.0.0"
+string.prototype.padend@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0"
+ dependencies:
+ define-properties "^1.1.2"
+ es-abstract "^1.4.3"
+ function-bind "^1.0.2"
+
string_decoder@^0.10.25, string_decoder@~0.10.x:
version "0.10.31"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
@@ -5580,7 +5677,7 @@ text-table@~0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
-through@^2.3.6:
+through@2, through@^2.3.6, through@~2.3, through@~2.3.1:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"