New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@clerk/clerk-react

Package Overview
Dependencies
Maintainers
3
Versions
2811
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@clerk/clerk-react - npm Package Compare versions

Comparing version 0.1.2-beta.5 to 1.0.0-alpha.0

dist/scriptLoader.d.ts

252

dist/clerk-react.cjs.development.js

@@ -65,2 +65,48 @@ 'use strict';

var version = "1.0.0-alpha.0";
var FAILED_TO_LOAD_ERROR = 'Clerk: Failed to load Clerk';
var MISSING_PROVIDER_ERROR = 'Clerk: Missing privider';
var MISSING_BODY_ERROR = 'Clerk: Missing <body> element.';
function getScriptSrc(localScriptSrc) {
if (localScriptSrc) {
return localScriptSrc;
}
var majorVersion = parseInt(version.split('.')[0], 10);
return "https://cdn.jsdelivr.net/npm/@clerk/clerk-js@" + majorVersion + "/dist/clerk.umd.js";
}
function injectScript(provider, localScriptSrc) {
return new Promise(function (resolve, reject) {
if (window.Clerk) {
resolve(null);
}
if (!provider) {
reject(MISSING_PROVIDER_ERROR);
}
var script = document.createElement('script');
var src = getScriptSrc(localScriptSrc);
script.setAttribute('data-clerk-provider', provider);
script.setAttribute('crossorigin', 'anonymous');
script.async = true;
if (!document.body) {
reject(MISSING_BODY_ERROR);
}
script.addEventListener('load', function () {
return resolve(script);
});
script.addEventListener('error', function () {
return reject(FAILED_TO_LOAD_ERROR);
});
script.src = src;
document.body.appendChild(script);
});
}
var noLoadClerkError = "Clerk: ClerkProvider is being used in a browser context but loadClerk hasn't been called.";

@@ -95,5 +141,13 @@ var noProviderError = 'Clerk: You must wrap your application in a <ClerkProvider> component.';

if (props.clerk) {
_this.clerk = props.clerk;
} else if (isomorphicClerk) {
var host = props.host,
clerk = props.clerk,
rest = _objectWithoutPropertiesLoose(props, ["host", "clerk"]);
if (clerk) {
_this.clerk = clerk;
} else if (host) {
if (!isomorphicClerk) {
isomorphicClerk = new IsomorphicClerk(host, rest);
}
_this.clerk = isomorphicClerk;

@@ -127,12 +181,2 @@ } else {

_proto.debug = function debug() {
var _console;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
(_console = console).log.apply(_console, [this.props.byClerkJS ? ' CLERK: ' : 'CLIENT:'].concat(args));
};
_proto.componentDidMount = function componentDidMount() {

@@ -168,3 +212,3 @@ if (this.clerk) {

type: "application/json",
"data-clerk": this.clerk.ssrKey,
"data-clerk": "SSR",
dangerouslySetInnerHTML: {

@@ -363,73 +407,29 @@ __html: this.clerk.ssrData

var Modal = /*#__PURE__*/function (_React$PureComponent3) {
_inheritsLoose(Modal, _React$PureComponent3);
function Modal() {
return _React$PureComponent3.apply(this, arguments) || this;
}
var _proto3 = Modal.prototype;
_proto3.componentDidMount = function componentDidMount() {
this.props.open(_extends({
onClose: function onClose() {}
}, this.props.props));
};
_proto3.componentWillUnmount = function componentWillUnmount() {
this.props.close();
};
_proto3.render = function render() {
return null;
};
return Modal;
}(React__default.PureComponent);
var SignIn = /*#__PURE__*/withClerk(function (_ref4) {
var props = _objectWithoutPropertiesLoose(_ref4, ["clerk"]);
var clerk = _ref4.clerk,
props = _objectWithoutPropertiesLoose(_ref4, ["clerk"]);
var c = useClerk();
if (props.mode && props.mode === 'mounted') {
return React__default.createElement(Portal, {
mount: c.mountSignIn,
unmount: c.unmountSignIn,
props: props
});
} else {
return React__default.createElement(Modal, {
open: c.openSignIn,
close: c.closeSignIn,
props: props
});
}
return React__default.createElement(Portal, {
mount: clerk.mountSignIn,
unmount: clerk.unmountSignIn,
props: props
});
}, 'SignIn');
var SignUp = /*#__PURE__*/withClerk(function (_ref5) {
var props = _objectWithoutPropertiesLoose(_ref5, ["clerk"]);
var clerk = _ref5.clerk,
props = _objectWithoutPropertiesLoose(_ref5, ["clerk"]);
var c = useClerk();
if (props.mode && props.mode === 'mounted') {
return React__default.createElement(Portal, {
mount: c.mountSignUp,
unmount: c.unmountSignUp,
props: props
});
} else {
return React__default.createElement(Modal, {
open: c.openSignUp,
close: c.closeSignUp,
props: props
});
}
return React__default.createElement(Portal, {
mount: clerk.mountSignUp,
unmount: clerk.unmountSignUp,
props: props
});
}, 'SignUp');
var UserProfile = /*#__PURE__*/withClerk(function (_ref6) {
var props = _objectWithoutPropertiesLoose(_ref6, ["clerk"]);
var clerk = _ref6.clerk,
props = _objectWithoutPropertiesLoose(_ref6, ["clerk"]);
var c = useClerk();
return React__default.createElement(Portal, {
mount: c.mountUserProfile,
unmount: c.unmountUserProfile,
mount: clerk.mountUserProfile,
unmount: clerk.unmountUserProfile,
props: props

@@ -439,8 +439,8 @@ });

var UserButton = /*#__PURE__*/withClerk(function (_ref7) {
var props = _objectWithoutPropertiesLoose(_ref7, ["clerk"]);
var clerk = _ref7.clerk,
props = _objectWithoutPropertiesLoose(_ref7, ["clerk"]);
var c = useClerk();
return React__default.createElement(Portal, {
mount: c.mountUserButton,
unmount: c.unmountUserButton,
mount: clerk.mountUserButton,
unmount: clerk.unmountUserButton,
props: props

@@ -464,3 +464,3 @@ });

var IsomorphicClerk = /*#__PURE__*/function () {
function IsomorphicClerk(provider, options) {
function IsomorphicClerk(host, options) {
var _this4 = this;

@@ -470,6 +470,9 @@

if (options === void 0) {
options = {};
}
this.listeners = [];
this.clerkjs = null;
this.componentsReady = false;
this.ssrKey = null;
this.ssrData = null;

@@ -601,6 +604,2 @@

if (_this3.ssrKey === null) {
throw new Error('loadFromServer cannot be called because `ssrKey` is null. Please pass `ssrKey` in the `options` argument of IsomorphicClerk.');
}
_this3.ssrData = JSON.stringify({

@@ -649,34 +648,5 @@ client: _this3.client,

this.getScriptUrl = function () {
return _this3.options.baseUrl + "/v1/clerk.js";
};
this.host = host;
this.options = options;
this.injectScript = function () {
var script = document.createElement('script');
script.src = _this3.getScriptUrl();
script.setAttribute('data-provider', _this3.provider);
script.setAttribute('crossorigin', 'anonymous');
script.async = true;
if (!document.body) {
throw new Error('Clerk requires a <body> element.');
}
document.body.appendChild(script);
return script;
};
this.provider = provider;
var _ref11 = options || {},
baseUrl = _ref11.baseUrl,
ssrKey = _ref11.ssrKey,
initOpts = _objectWithoutPropertiesLoose(_ref11, ["baseUrl", "ssrKey"]);
this.options = {
baseUrl: baseUrl || 'https://js.clerk.dev',
ssrKey: ssrKey || null
};
this.ssrKey = this.options.ssrKey;
if (typeof window === 'undefined') {

@@ -686,33 +656,20 @@ this.mode = 'server';

this.mode = 'browser';
var ssrDataNode = document.querySelector("script[data-clerk=\"SSR\"]");
if (this.ssrKey) {
var ssrDataNode = document.querySelector("script[data-clerk=\"" + this.ssrKey + "\"]");
if (ssrDataNode) {
this.ssrData = ssrDataNode.innerHTML;
var parsedData = JSON.parse(this.ssrData);
this.ssrClient = parsedData.client;
this.ssrSession = parsedData.session;
}
if (ssrDataNode) {
this.ssrData = ssrDataNode.innerHTML;
var parsedData = JSON.parse(this.ssrData);
this.ssrClient = parsedData.client;
this.ssrSession = parsedData.session;
}
if (window.Clerk) {
window.Clerk.init(initOpts);
this.setClerkJS(window.Clerk);
} else {
var script = document.querySelector("script[src=\"" + this.getScriptUrl() + "\"]") || this.injectScript();
script.addEventListener('load', function () {
if (window.Clerk) {
window.Clerk.init(initOpts);
injectScript(this.host, this.options.scriptUrl).then(function () {
if (window.Clerk) {
window.Clerk.init(_this3.options);
_this3.setClerkJS(window.Clerk);
} else {
throw new Error('Clerk: IsomorphicClerk failed to find window.Clerk');
}
});
script.addEventListener('error', function (e) {
console.error(e);
throw new Error('Clerk: Failed to load Clerk');
});
}
_this3.setClerkJS(window.Clerk);
}
})["catch"](function (err) {
throw new Error(err);
});
}

@@ -753,8 +710,2 @@ }

var loadClerk = function loadClerk(provider, options) {
isomorphicClerk = new IsomorphicClerk(provider, _extends({}, options, {
ssrKey: 'CLERK_IDENTITY_DATA'
}));
};
var loadSessionFromToken = function loadSessionFromToken(token) {

@@ -782,3 +733,2 @@ if (isomorphicClerk === null) {

exports.isClerkAPIError = isClerkAPIError;
exports.loadClerk = loadClerk;
exports.loadSessionFromToken = loadSessionFromToken;

@@ -785,0 +735,0 @@ exports.useClerk = useClerk;

@@ -1,2 +0,2 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,n=require("react"),r=(e=n)&&"object"==typeof e&&"default"in e?e.default:e;function t(){return(t=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e}).apply(this,arguments)}function o(e,n){e.prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n}function s(e,n){if(null==e)return{};var r,t,o={},s=Object.keys(e);for(t=0;t<s.length;t++)n.indexOf(r=s[t])>=0||(o[r]=e[r]);return o}var i="Clerk: You must wrap your application in a <ClerkProvider> component.",l="undefined"!=typeof window,u=null,c=r.createContext(void 0);c.displayName="ClerkContext";var a=function(e){function n(n){var r;if((r=e.call(this,n)||this).listener=function(e){r.setState({client:e.client,session:e.session,user:e.user})},n.clerk)r.clerk=n.clerk;else if(u)r.clerk=u;else{if(l)throw new Error("Clerk: ClerkProvider is being used in a browser context but loadClerk hasn't been called.");r.clerk=null}return r.state=r.clerk?{client:r.clerk.client,session:r.clerk.session,user:r.clerk.user}:{client:void 0,session:void 0,user:void 0},r}o(n,e);var t=n.prototype;return t.debug=function(){for(var e,n=arguments.length,r=new Array(n),t=0;t<n;t++)r[t]=arguments[t];(e=console).log.apply(e,[this.props.byClerkJS?" CLERK: ":"CLIENT:"].concat(r))},t.componentDidMount=function(){this.clerk&&this.clerk.addListener(this.listener)},t.defaultInitialUser=function(e){var n=e.sessions.find((function(e){return"active"===e.status}));return n?n.user:null},t.render=function(){var e=this.state.session;return this.clerk?r.createElement(c.Provider,{value:{guaranteedLoaded:!1,guaranteedUser:!1,clerk:this.clerk}},this.clerk instanceof C&&this.clerk.ssrData&&r.createElement("script",{type:"application/json","data-clerk":this.clerk.ssrKey,dangerouslySetInnerHTML:{__html:this.clerk.ssrData}}),r.createElement(r.Fragment,{key:e?e.id:"no-usrses"},this.props.children)):r.createElement(r.Fragment,{key:"loading"},this.props.children)},n}(r.PureComponent),p=function(){var e=n.useContext(c);if(e){if(e.guaranteedLoaded)return e.clerk;throw new Error("Clerk: You're calling useClerk() before there's a guarantee the client has been loaded. Call useClerk() from a child of <SignedIn>, <SignedOut>, or <ClerkLoaded>, or use the withClerk() HOC.")}throw new Error(i)},d=function(e,o){e.displayName=o=o||e.displayName||e.name||"Component";var s=function(o){var s=n.useContext(c);if(s)return s.clerk&&void 0===s.clerk.session?null:s.guaranteedLoaded?r.createElement(e,Object.assign({},o,{clerk:s.clerk})):s.clerk.client?r.createElement(c.Provider,{value:t({},s,{guaranteedLoaded:!0})},r.createElement(e,Object.assign({},o,{clerk:s.clerk}))):null;if(l)throw new Error(i);return null};return s.displayName="withClerk("+o+")",s},f=function(e,o){e.displayName=o=o||e.displayName||e.name||"Component";var s=function(o){var s=n.useContext(c);if(s)return s.guaranteedUser&&s.clerk.session?r.createElement(e,Object.assign({},o,{user:s.clerk.session.user})):s.clerk.client&&s.clerk.session?r.createElement(c.Provider,{value:t({},s,{guaranteedLoaded:!0,guaranteedUser:!0})},r.createElement(e,Object.assign({},o,{user:s.clerk.session.user}))):null;if(l)throw new Error(i);return null};return s.displayName="withUser("+o+")",s},m=function(e){function n(){var n;return(n=e.apply(this,arguments)||this).portalRef=r.createRef(),n}o(n,e);var t=n.prototype;return t.componentDidMount=function(){this.portalRef.current&&this.props.mount(this.portalRef.current,this.props.props)},t.componentWillUnmount=function(){this.portalRef.current&&this.props.unmount(this.portalRef.current)},t.render=function(){return r.createElement("div",{ref:this.portalRef})},n}(r.PureComponent),h=function(e){function n(){return e.apply(this,arguments)||this}o(n,e);var r=n.prototype;return r.componentDidMount=function(){this.props.open(t({onClose:function(){}},this.props.props))},r.componentWillUnmount=function(){this.props.close()},r.render=function(){return null},n}(r.PureComponent),k=d((function(e){var n=s(e,["clerk"]),t=p();return n.mode&&"mounted"===n.mode?r.createElement(m,{mount:t.mountSignIn,unmount:t.unmountSignIn,props:n}):r.createElement(h,{open:t.openSignIn,close:t.closeSignIn,props:n})}),"SignIn"),g=d((function(e){var n=s(e,["clerk"]),t=p();return n.mode&&"mounted"===n.mode?r.createElement(m,{mount:t.mountSignUp,unmount:t.unmountSignUp,props:n}):r.createElement(h,{open:t.openSignUp,close:t.closeSignUp,props:n})}),"SignUp"),S=d((function(e){var n=s(e,["clerk"]),t=p();return r.createElement(m,{mount:t.mountUserProfile,unmount:t.unmountUserProfile,props:n})}),"UserProfile"),v=d((function(e){var n=s(e,["clerk"]),t=p();return r.createElement(m,{mount:t.mountUserButton,unmount:t.unmountUserButton,props:n})}),"UserButton"),y=f((function(e){return r.createElement(r.Fragment,null,e.children)}),"SignedIn"),U=d((function(e){return null===e.clerk.session?r.createElement(r.Fragment,null,e.children):null}),"SignedOut"),w=d((function(e){return r.createElement(r.Fragment,null,e.children)}),"ClerkLoaded"),C=function(){function e(e,n){var r=this,t=this;this.listeners=[],this.clerkjs=null,this.componentsReady=!1,this.ssrKey=null,this.ssrData=null,this.setSession=function(e,n){return t.clerkjs?t.clerkjs.setSession(e,n):Promise.reject()},this.preopenSignIn=null,this.preopenSignUp=null,this.premountSignInNodes=new Map,this.premountSignUpNodes=new Map,this.premountUserProfileNodes=new Map,this.premountUserButtonNodes=new Map,this.openSignIn=function(e){t.clerkjs&&t.componentsReady?t.clerkjs.openSignIn(e):t.preopenSignIn=e},this.closeSignIn=function(){t.clerkjs&&t.componentsReady?t.clerkjs.closeSignIn():t.preopenSignIn=null},this.openSignUp=function(e){t.clerkjs&&t.componentsReady?t.clerkjs.openSignUp(e):t.preopenSignUp=e},this.closeSignUp=function(){t.clerkjs&&t.componentsReady?t.clerkjs.closeSignUp():t.preopenSignUp=null},this.mountSignIn=function(e,n){t.clerkjs&&t.componentsReady?t.clerkjs.mountSignIn(e,n):t.premountSignInNodes.set(e,n)},this.unmountSignIn=function(e){t.clerkjs&&t.componentsReady?t.clerkjs.unmountSignIn(e):t.premountSignInNodes.delete(e)},this.mountSignUp=function(e,n){t.clerkjs&&t.componentsReady?t.clerkjs.mountSignUp(e,n):t.premountSignUpNodes.set(e,n)},this.unmountSignUp=function(e){t.clerkjs&&t.componentsReady?t.clerkjs.unmountSignUp(e):t.premountSignUpNodes.delete(e)},this.mountUserProfile=function(e,n){t.clerkjs&&t.componentsReady?t.clerkjs.mountUserProfile(e,n):t.premountUserProfileNodes.set(e,n)},this.unmountUserProfile=function(e){t.clerkjs&&t.componentsReady?t.clerkjs.unmountUserProfile(e):t.premountUserProfileNodes.delete(e)},this.mountUserButton=function(e,n){t.clerkjs&&t.componentsReady?t.clerkjs.mountUserButton(e,n):t.premountUserButtonNodes.set(e,n)},this.unmountUserButton=function(e){t.clerkjs&&t.componentsReady?t.clerkjs.unmountUserButton(e):t.premountUserButtonNodes.delete(e)},this.addListener=function(e){t.clerkjs?t.clerkjs.addListener(e):t.listeners.push(e)},this.loadFromServer=function(e){if("browser"===t.mode)throw new Error("loadFromServer cannot be called in a browser context.");if(null===t.ssrKey)throw new Error("loadFromServer cannot be called because `ssrKey` is null. Please pass `ssrKey` in the `options` argument of IsomorphicClerk.");t.ssrData=JSON.stringify({client:t.client,session:t.session,token:e})},this.setClerkJS=function(e){try{return r.clerkjs=e,r.listeners.forEach((function(n){e.addListener(n)})),Promise.resolve(e.onComponentsReady).then((function(){null!==r.preopenSignIn&&e.openSignIn(r.preopenSignIn),null!==r.preopenSignUp&&e.openSignUp(r.preopenSignUp),r.premountSignInNodes.forEach((function(n,r){e.mountSignIn(r,n)})),r.premountSignUpNodes.forEach((function(n,r){e.mountSignUp(r,n)})),r.premountUserProfileNodes.forEach((function(n,r){e.mountUserProfile(r,n)})),r.componentsReady=!0}))}catch(e){return Promise.reject(e)}},this.getScriptUrl=function(){return t.options.baseUrl+"/v1/clerk.js"},this.injectScript=function(){var e=document.createElement("script");if(e.src=t.getScriptUrl(),e.setAttribute("data-provider",t.provider),e.setAttribute("crossorigin","anonymous"),e.async=!0,!document.body)throw new Error("Clerk requires a <body> element.");return document.body.appendChild(e),e},this.provider=e;var o=n||{},i=o.baseUrl,l=o.ssrKey,u=s(o,["baseUrl","ssrKey"]);if(this.options={baseUrl:i||"https://js.clerk.dev",ssrKey:l||null},this.ssrKey=this.options.ssrKey,"undefined"==typeof window)this.mode="server";else{if(this.mode="browser",this.ssrKey){var c=document.querySelector('script[data-clerk="'+this.ssrKey+'"]');if(c){this.ssrData=c.innerHTML;var a=JSON.parse(this.ssrData);this.ssrClient=a.client,this.ssrSession=a.session}}if(window.Clerk)window.Clerk.init(u),this.setClerkJS(window.Clerk);else{var p=document.querySelector('script[src="'+this.getScriptUrl()+'"]')||this.injectScript();p.addEventListener("load",(function(){if(!window.Clerk)throw new Error("Clerk: IsomorphicClerk failed to find window.Clerk");window.Clerk.init(u),t.setClerkJS(window.Clerk)})),p.addEventListener("error",(function(e){throw console.error(e),new Error("Clerk: Failed to load Clerk")}))}}}var n;return(n=[{key:"client",get:function(){return this.clerkjs?this.clerkjs.client:void 0}},{key:"session",get:function(){return this.clerkjs?this.clerkjs.session:void 0}},{key:"user",get:function(){return this.clerkjs?this.clerkjs.user:void 0}}])&&function(e,n){for(var r=0;r<n.length;r++){var t=n[r];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}(e.prototype,n),e}();exports.ClerkContext=c,exports.ClerkLoaded=w,exports.ClerkProvider=a,exports.SignIn=k,exports.SignUp=g,exports.SignedIn=y,exports.SignedOut=U,exports.UserButton=v,exports.UserProfile=S,exports.WithClerk=function(e){var n=e.children;return r.createElement(c.Consumer,null,(function(e){if("function"==typeof n){if(e)return e.clerk&&void 0===e.clerk.session?null:e.guaranteedLoaded?n(e.clerk):e.clerk.client?r.createElement(c.Provider,{value:t({},e,{guaranteedLoaded:!0})},n(e.clerk)):null;throw new Error(i)}throw new Error("Clerk: Child of WithClerk must be a function.")}))},exports.WithUser=function(e){var n=e.children;return r.createElement(c.Consumer,null,(function(e){if("function"==typeof n){if(e)return e.guaranteedUser&&e.clerk.session?n(e.clerk.session.user):e.clerk.client&&e.clerk.session?r.createElement(c.Provider,{value:t({},e,{guaranteedLoaded:!0,guaranteedUser:!0})},n(e.clerk.session.user)):null;throw new Error(i)}throw new Error("Clerk: Child of WithClerk must be a function.")}))},exports.isClerkAPIError=function(e){return"clerkError"in e},exports.loadClerk=function(e,n){u=new C(e,t({},n,{ssrKey:"CLERK_IDENTITY_DATA"}))},exports.loadSessionFromToken=function(e){if(null===u)throw new Error("You must call loadClerk before loadSessionFromToken.");u.loadFromServer&&u.loadFromServer(e)},exports.useClerk=p,exports.useUser=function(){var e=n.useContext(c);if(e){if(e.guaranteedUser&&e.clerk.session)return e.clerk.session.user;throw new Error("Clerk: You're calling useUser() before there's a guarantee there's an active user. Call useUser() from a child of <SignedIn> or use the withUser() HOC.")}throw new Error(i)},exports.withClerk=d,exports.withUser=f;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,n=require("react"),r=(e=n)&&"object"==typeof e&&"default"in e?e.default:e;function t(){return(t=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e}).apply(this,arguments)}function o(e,n){e.prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n}function s(e,n){if(null==e)return{};var r,t,o={},s=Object.keys(e);for(t=0;t<s.length;t++)n.indexOf(r=s[t])>=0||(o[r]=e[r]);return o}var i="Clerk: You must wrap your application in a <ClerkProvider> component.",l="undefined"!=typeof window,u=null,c=r.createContext(void 0);c.displayName="ClerkContext";var a=function(e){function n(n){var r;(r=e.call(this,n)||this).listener=function(e){r.setState({client:e.client,session:e.session,user:e.user})};var t=n.host,o=n.clerk,i=s(n,["host","clerk"]);if(o)r.clerk=o;else if(t)u||(u=new w(t,i)),r.clerk=u;else{if(l)throw new Error("Clerk: ClerkProvider is being used in a browser context but loadClerk hasn't been called.");r.clerk=null}return r.state=r.clerk?{client:r.clerk.client,session:r.clerk.session,user:r.clerk.user}:{client:void 0,session:void 0,user:void 0},r}o(n,e);var t=n.prototype;return t.componentDidMount=function(){this.clerk&&this.clerk.addListener(this.listener)},t.defaultInitialUser=function(e){var n=e.sessions.find((function(e){return"active"===e.status}));return n?n.user:null},t.render=function(){var e=this.state.session;return this.clerk?r.createElement(c.Provider,{value:{guaranteedLoaded:!1,guaranteedUser:!1,clerk:this.clerk}},this.clerk instanceof w&&this.clerk.ssrData&&r.createElement("script",{type:"application/json","data-clerk":"SSR",dangerouslySetInnerHTML:{__html:this.clerk.ssrData}}),r.createElement(r.Fragment,{key:e?e.id:"no-usrses"},this.props.children)):r.createElement(r.Fragment,{key:"loading"},this.props.children)},n}(r.PureComponent),p=function(e,o){e.displayName=o=o||e.displayName||e.name||"Component";var s=function(o){var s=n.useContext(c);if(s)return s.clerk&&void 0===s.clerk.session?null:s.guaranteedLoaded?r.createElement(e,Object.assign({},o,{clerk:s.clerk})):s.clerk.client?r.createElement(c.Provider,{value:t({},s,{guaranteedLoaded:!0})},r.createElement(e,Object.assign({},o,{clerk:s.clerk}))):null;if(l)throw new Error(i);return null};return s.displayName="withClerk("+o+")",s},d=function(e,o){e.displayName=o=o||e.displayName||e.name||"Component";var s=function(o){var s=n.useContext(c);if(s)return s.guaranteedUser&&s.clerk.session?r.createElement(e,Object.assign({},o,{user:s.clerk.session.user})):s.clerk.client&&s.clerk.session?r.createElement(c.Provider,{value:t({},s,{guaranteedLoaded:!0,guaranteedUser:!0})},r.createElement(e,Object.assign({},o,{user:s.clerk.session.user}))):null;if(l)throw new Error(i);return null};return s.displayName="withUser("+o+")",s},f=function(e){function n(){var n;return(n=e.apply(this,arguments)||this).portalRef=r.createRef(),n}o(n,e);var t=n.prototype;return t.componentDidMount=function(){this.portalRef.current&&this.props.mount(this.portalRef.current,this.props.props)},t.componentWillUnmount=function(){this.portalRef.current&&this.props.unmount(this.portalRef.current)},t.render=function(){return r.createElement("div",{ref:this.portalRef})},n}(r.PureComponent),m=p((function(e){var n=e.clerk,t=s(e,["clerk"]);return r.createElement(f,{mount:n.mountSignIn,unmount:n.unmountSignIn,props:t})}),"SignIn"),k=p((function(e){var n=e.clerk,t=s(e,["clerk"]);return r.createElement(f,{mount:n.mountSignUp,unmount:n.unmountSignUp,props:t})}),"SignUp"),h=p((function(e){var n=e.clerk,t=s(e,["clerk"]);return r.createElement(f,{mount:n.mountUserProfile,unmount:n.unmountUserProfile,props:t})}),"UserProfile"),g=p((function(e){var n=e.clerk,t=s(e,["clerk"]);return r.createElement(f,{mount:n.mountUserButton,unmount:n.unmountUserButton,props:t})}),"UserButton"),S=d((function(e){return r.createElement(r.Fragment,null,e.children)}),"SignedIn"),v=p((function(e){return null===e.clerk.session?r.createElement(r.Fragment,null,e.children):null}),"SignedOut"),U=p((function(e){return r.createElement(r.Fragment,null,e.children)}),"ClerkLoaded"),w=function(){function e(e,n){var r,t,o=this,s=this;if(void 0===n&&(n={}),this.listeners=[],this.clerkjs=null,this.componentsReady=!1,this.ssrData=null,this.setSession=function(e,n){return s.clerkjs?s.clerkjs.setSession(e,n):Promise.reject()},this.preopenSignIn=null,this.preopenSignUp=null,this.premountSignInNodes=new Map,this.premountSignUpNodes=new Map,this.premountUserProfileNodes=new Map,this.premountUserButtonNodes=new Map,this.openSignIn=function(e){s.clerkjs&&s.componentsReady?s.clerkjs.openSignIn(e):s.preopenSignIn=e},this.closeSignIn=function(){s.clerkjs&&s.componentsReady?s.clerkjs.closeSignIn():s.preopenSignIn=null},this.openSignUp=function(e){s.clerkjs&&s.componentsReady?s.clerkjs.openSignUp(e):s.preopenSignUp=e},this.closeSignUp=function(){s.clerkjs&&s.componentsReady?s.clerkjs.closeSignUp():s.preopenSignUp=null},this.mountSignIn=function(e,n){s.clerkjs&&s.componentsReady?s.clerkjs.mountSignIn(e,n):s.premountSignInNodes.set(e,n)},this.unmountSignIn=function(e){s.clerkjs&&s.componentsReady?s.clerkjs.unmountSignIn(e):s.premountSignInNodes.delete(e)},this.mountSignUp=function(e,n){s.clerkjs&&s.componentsReady?s.clerkjs.mountSignUp(e,n):s.premountSignUpNodes.set(e,n)},this.unmountSignUp=function(e){s.clerkjs&&s.componentsReady?s.clerkjs.unmountSignUp(e):s.premountSignUpNodes.delete(e)},this.mountUserProfile=function(e,n){s.clerkjs&&s.componentsReady?s.clerkjs.mountUserProfile(e,n):s.premountUserProfileNodes.set(e,n)},this.unmountUserProfile=function(e){s.clerkjs&&s.componentsReady?s.clerkjs.unmountUserProfile(e):s.premountUserProfileNodes.delete(e)},this.mountUserButton=function(e,n){s.clerkjs&&s.componentsReady?s.clerkjs.mountUserButton(e,n):s.premountUserButtonNodes.set(e,n)},this.unmountUserButton=function(e){s.clerkjs&&s.componentsReady?s.clerkjs.unmountUserButton(e):s.premountUserButtonNodes.delete(e)},this.addListener=function(e){s.clerkjs?s.clerkjs.addListener(e):s.listeners.push(e)},this.loadFromServer=function(e){if("browser"===s.mode)throw new Error("loadFromServer cannot be called in a browser context.");s.ssrData=JSON.stringify({client:s.client,session:s.session,token:e})},this.setClerkJS=function(e){try{return o.clerkjs=e,o.listeners.forEach((function(n){e.addListener(n)})),Promise.resolve(e.onComponentsReady).then((function(){null!==o.preopenSignIn&&e.openSignIn(o.preopenSignIn),null!==o.preopenSignUp&&e.openSignUp(o.preopenSignUp),o.premountSignInNodes.forEach((function(n,r){e.mountSignIn(r,n)})),o.premountSignUpNodes.forEach((function(n,r){e.mountSignUp(r,n)})),o.premountUserProfileNodes.forEach((function(n,r){e.mountUserProfile(r,n)})),o.componentsReady=!0}))}catch(e){return Promise.reject(e)}},this.host=e,this.options=n,"undefined"==typeof window)this.mode="server";else{this.mode="browser";var i=document.querySelector('script[data-clerk="SSR"]');if(i){this.ssrData=i.innerHTML;var l=JSON.parse(this.ssrData);this.ssrClient=l.client,this.ssrSession=l.session}(r=this.host,t=this.options.scriptUrl,new Promise((function(e,n){window.Clerk&&e(null),r||n("Clerk: Missing privider");var o=document.createElement("script"),s=function(e){return e||"https://cdn.jsdelivr.net/npm/@clerk/clerk-js@"+parseInt("1.0.0-alpha.0".split(".")[0],10)+"/dist/clerk.umd.js"}(t);o.setAttribute("data-clerk-provider",r),o.setAttribute("crossorigin","anonymous"),o.async=!0,document.body||n("Clerk: Missing <body> element."),o.addEventListener("load",(function(){return e(o)})),o.addEventListener("error",(function(){return n("Clerk: Failed to load Clerk")})),o.src=s,document.body.appendChild(o)}))).then((function(){window.Clerk&&(window.Clerk.init(s.options),s.setClerkJS(window.Clerk))})).catch((function(e){throw new Error(e)}))}}var n;return(n=[{key:"client",get:function(){return this.clerkjs?this.clerkjs.client:void 0}},{key:"session",get:function(){return this.clerkjs?this.clerkjs.session:void 0}},{key:"user",get:function(){return this.clerkjs?this.clerkjs.user:void 0}}])&&function(e,n){for(var r=0;r<n.length;r++){var t=n[r];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}(e.prototype,n),e}();exports.ClerkContext=c,exports.ClerkLoaded=U,exports.ClerkProvider=a,exports.SignIn=m,exports.SignUp=k,exports.SignedIn=S,exports.SignedOut=v,exports.UserButton=g,exports.UserProfile=h,exports.WithClerk=function(e){var n=e.children;return r.createElement(c.Consumer,null,(function(e){if("function"==typeof n){if(e)return e.clerk&&void 0===e.clerk.session?null:e.guaranteedLoaded?n(e.clerk):e.clerk.client?r.createElement(c.Provider,{value:t({},e,{guaranteedLoaded:!0})},n(e.clerk)):null;throw new Error(i)}throw new Error("Clerk: Child of WithClerk must be a function.")}))},exports.WithUser=function(e){var n=e.children;return r.createElement(c.Consumer,null,(function(e){if("function"==typeof n){if(e)return e.guaranteedUser&&e.clerk.session?n(e.clerk.session.user):e.clerk.client&&e.clerk.session?r.createElement(c.Provider,{value:t({},e,{guaranteedLoaded:!0,guaranteedUser:!0})},n(e.clerk.session.user)):null;throw new Error(i)}throw new Error("Clerk: Child of WithClerk must be a function.")}))},exports.isClerkAPIError=function(e){return"clerkError"in e},exports.loadSessionFromToken=function(e){if(null===u)throw new Error("You must call loadClerk before loadSessionFromToken.");u.loadFromServer&&u.loadFromServer(e)},exports.useClerk=function(){var e=n.useContext(c);if(e){if(e.guaranteedLoaded)return e.clerk;throw new Error("Clerk: You're calling useClerk() before there's a guarantee the client has been loaded. Call useClerk() from a child of <SignedIn>, <SignedOut>, or <ClerkLoaded>, or use the withClerk() HOC.")}throw new Error(i)},exports.useUser=function(){var e=n.useContext(c);if(e){if(e.guaranteedUser&&e.clerk.session)return e.clerk.session.user;throw new Error("Clerk: You're calling useUser() before there's a guarantee there's an active user. Call useUser() from a child of <SignedIn> or use the withUser() HOC.")}throw new Error(i)},exports.withClerk=p,exports.withUser=d;
//# sourceMappingURL=clerk-react.cjs.production.min.js.map

@@ -58,2 +58,48 @@ import React, { useContext } from 'react';

var version = "1.0.0-alpha.0";
var FAILED_TO_LOAD_ERROR = 'Clerk: Failed to load Clerk';
var MISSING_PROVIDER_ERROR = 'Clerk: Missing privider';
var MISSING_BODY_ERROR = 'Clerk: Missing <body> element.';
function getScriptSrc(localScriptSrc) {
if (localScriptSrc) {
return localScriptSrc;
}
var majorVersion = parseInt(version.split('.')[0], 10);
return "https://cdn.jsdelivr.net/npm/@clerk/clerk-js@" + majorVersion + "/dist/clerk.umd.js";
}
function injectScript(provider, localScriptSrc) {
return new Promise(function (resolve, reject) {
if (window.Clerk) {
resolve(null);
}
if (!provider) {
reject(MISSING_PROVIDER_ERROR);
}
var script = document.createElement('script');
var src = getScriptSrc(localScriptSrc);
script.setAttribute('data-clerk-provider', provider);
script.setAttribute('crossorigin', 'anonymous');
script.async = true;
if (!document.body) {
reject(MISSING_BODY_ERROR);
}
script.addEventListener('load', function () {
return resolve(script);
});
script.addEventListener('error', function () {
return reject(FAILED_TO_LOAD_ERROR);
});
script.src = src;
document.body.appendChild(script);
});
}
var noLoadClerkError = "Clerk: ClerkProvider is being used in a browser context but loadClerk hasn't been called.";

@@ -88,5 +134,13 @@ var noProviderError = 'Clerk: You must wrap your application in a <ClerkProvider> component.';

if (props.clerk) {
_this.clerk = props.clerk;
} else if (isomorphicClerk) {
var host = props.host,
clerk = props.clerk,
rest = _objectWithoutPropertiesLoose(props, ["host", "clerk"]);
if (clerk) {
_this.clerk = clerk;
} else if (host) {
if (!isomorphicClerk) {
isomorphicClerk = new IsomorphicClerk(host, rest);
}
_this.clerk = isomorphicClerk;

@@ -120,12 +174,2 @@ } else {

_proto.debug = function debug() {
var _console;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
(_console = console).log.apply(_console, [this.props.byClerkJS ? ' CLERK: ' : 'CLIENT:'].concat(args));
};
_proto.componentDidMount = function componentDidMount() {

@@ -161,3 +205,3 @@ if (this.clerk) {

type: "application/json",
"data-clerk": this.clerk.ssrKey,
"data-clerk": "SSR",
dangerouslySetInnerHTML: {

@@ -356,73 +400,29 @@ __html: this.clerk.ssrData

var Modal = /*#__PURE__*/function (_React$PureComponent3) {
_inheritsLoose(Modal, _React$PureComponent3);
function Modal() {
return _React$PureComponent3.apply(this, arguments) || this;
}
var _proto3 = Modal.prototype;
_proto3.componentDidMount = function componentDidMount() {
this.props.open(_extends({
onClose: function onClose() {}
}, this.props.props));
};
_proto3.componentWillUnmount = function componentWillUnmount() {
this.props.close();
};
_proto3.render = function render() {
return null;
};
return Modal;
}(React.PureComponent);
var SignIn = /*#__PURE__*/withClerk(function (_ref4) {
var props = _objectWithoutPropertiesLoose(_ref4, ["clerk"]);
var clerk = _ref4.clerk,
props = _objectWithoutPropertiesLoose(_ref4, ["clerk"]);
var c = useClerk();
if (props.mode && props.mode === 'mounted') {
return React.createElement(Portal, {
mount: c.mountSignIn,
unmount: c.unmountSignIn,
props: props
});
} else {
return React.createElement(Modal, {
open: c.openSignIn,
close: c.closeSignIn,
props: props
});
}
return React.createElement(Portal, {
mount: clerk.mountSignIn,
unmount: clerk.unmountSignIn,
props: props
});
}, 'SignIn');
var SignUp = /*#__PURE__*/withClerk(function (_ref5) {
var props = _objectWithoutPropertiesLoose(_ref5, ["clerk"]);
var clerk = _ref5.clerk,
props = _objectWithoutPropertiesLoose(_ref5, ["clerk"]);
var c = useClerk();
if (props.mode && props.mode === 'mounted') {
return React.createElement(Portal, {
mount: c.mountSignUp,
unmount: c.unmountSignUp,
props: props
});
} else {
return React.createElement(Modal, {
open: c.openSignUp,
close: c.closeSignUp,
props: props
});
}
return React.createElement(Portal, {
mount: clerk.mountSignUp,
unmount: clerk.unmountSignUp,
props: props
});
}, 'SignUp');
var UserProfile = /*#__PURE__*/withClerk(function (_ref6) {
var props = _objectWithoutPropertiesLoose(_ref6, ["clerk"]);
var clerk = _ref6.clerk,
props = _objectWithoutPropertiesLoose(_ref6, ["clerk"]);
var c = useClerk();
return React.createElement(Portal, {
mount: c.mountUserProfile,
unmount: c.unmountUserProfile,
mount: clerk.mountUserProfile,
unmount: clerk.unmountUserProfile,
props: props

@@ -432,8 +432,8 @@ });

var UserButton = /*#__PURE__*/withClerk(function (_ref7) {
var props = _objectWithoutPropertiesLoose(_ref7, ["clerk"]);
var clerk = _ref7.clerk,
props = _objectWithoutPropertiesLoose(_ref7, ["clerk"]);
var c = useClerk();
return React.createElement(Portal, {
mount: c.mountUserButton,
unmount: c.unmountUserButton,
mount: clerk.mountUserButton,
unmount: clerk.unmountUserButton,
props: props

@@ -457,3 +457,3 @@ });

var IsomorphicClerk = /*#__PURE__*/function () {
function IsomorphicClerk(provider, options) {
function IsomorphicClerk(host, options) {
var _this4 = this;

@@ -463,6 +463,9 @@

if (options === void 0) {
options = {};
}
this.listeners = [];
this.clerkjs = null;
this.componentsReady = false;
this.ssrKey = null;
this.ssrData = null;

@@ -594,6 +597,2 @@

if (_this3.ssrKey === null) {
throw new Error('loadFromServer cannot be called because `ssrKey` is null. Please pass `ssrKey` in the `options` argument of IsomorphicClerk.');
}
_this3.ssrData = JSON.stringify({

@@ -642,34 +641,5 @@ client: _this3.client,

this.getScriptUrl = function () {
return _this3.options.baseUrl + "/v1/clerk.js";
};
this.host = host;
this.options = options;
this.injectScript = function () {
var script = document.createElement('script');
script.src = _this3.getScriptUrl();
script.setAttribute('data-provider', _this3.provider);
script.setAttribute('crossorigin', 'anonymous');
script.async = true;
if (!document.body) {
throw new Error('Clerk requires a <body> element.');
}
document.body.appendChild(script);
return script;
};
this.provider = provider;
var _ref11 = options || {},
baseUrl = _ref11.baseUrl,
ssrKey = _ref11.ssrKey,
initOpts = _objectWithoutPropertiesLoose(_ref11, ["baseUrl", "ssrKey"]);
this.options = {
baseUrl: baseUrl || 'https://js.clerk.dev',
ssrKey: ssrKey || null
};
this.ssrKey = this.options.ssrKey;
if (typeof window === 'undefined') {

@@ -679,33 +649,20 @@ this.mode = 'server';

this.mode = 'browser';
var ssrDataNode = document.querySelector("script[data-clerk=\"SSR\"]");
if (this.ssrKey) {
var ssrDataNode = document.querySelector("script[data-clerk=\"" + this.ssrKey + "\"]");
if (ssrDataNode) {
this.ssrData = ssrDataNode.innerHTML;
var parsedData = JSON.parse(this.ssrData);
this.ssrClient = parsedData.client;
this.ssrSession = parsedData.session;
}
if (ssrDataNode) {
this.ssrData = ssrDataNode.innerHTML;
var parsedData = JSON.parse(this.ssrData);
this.ssrClient = parsedData.client;
this.ssrSession = parsedData.session;
}
if (window.Clerk) {
window.Clerk.init(initOpts);
this.setClerkJS(window.Clerk);
} else {
var script = document.querySelector("script[src=\"" + this.getScriptUrl() + "\"]") || this.injectScript();
script.addEventListener('load', function () {
if (window.Clerk) {
window.Clerk.init(initOpts);
injectScript(this.host, this.options.scriptUrl).then(function () {
if (window.Clerk) {
window.Clerk.init(_this3.options);
_this3.setClerkJS(window.Clerk);
} else {
throw new Error('Clerk: IsomorphicClerk failed to find window.Clerk');
}
});
script.addEventListener('error', function (e) {
console.error(e);
throw new Error('Clerk: Failed to load Clerk');
});
}
_this3.setClerkJS(window.Clerk);
}
})["catch"](function (err) {
throw new Error(err);
});
}

@@ -746,8 +703,2 @@ }

var loadClerk = function loadClerk(provider, options) {
isomorphicClerk = new IsomorphicClerk(provider, _extends({}, options, {
ssrKey: 'CLERK_IDENTITY_DATA'
}));
};
var loadSessionFromToken = function loadSessionFromToken(token) {

@@ -763,3 +714,3 @@ if (isomorphicClerk === null) {

export { ClerkContext, ClerkLoaded, ClerkProvider, SignIn, SignUp, SignedIn, SignedOut, UserButton, UserProfile, WithClerk, WithUser, isClerkAPIError, loadClerk, loadSessionFromToken, useClerk, useUser, withClerk, withUser };
export { ClerkContext, ClerkLoaded, ClerkProvider, SignIn, SignUp, SignedIn, SignedOut, UserButton, UserProfile, WithClerk, WithUser, isClerkAPIError, loadSessionFromToken, useClerk, useUser, withClerk, withUser };
//# sourceMappingURL=clerk-react.esm.js.map
import React from 'react';
import { ClerkAPIError, ClerkContextType, ContextProps, ContextState, IsomorphicClerkOptions, ListenerEmission, LoadedClerkType, SignInProps, SignUpProps, UserButtonProps, UserProfileProps, UserResource } from './types';
import { ClerkAPIError, ClerkContextType, ClerkProviderProps, ClerkProviderState, ListenerEmission, LoadedClerkType, SignInProps, SignUpProps, UserButtonProps, UserProfileProps, UserResource } from './types';
export * from './types';
export { loadClerk, loadSessionFromToken, ClerkContext, ClerkProvider, SignIn, SignUp, UserProfile, UserButton, useClerk, withClerk, WithClerk, useUser, withUser, WithUser, SignedIn, SignedOut, ClerkLoaded, isClerkAPIError, };
export { loadSessionFromToken, ClerkContext, ClerkProvider, SignIn, SignUp, UserProfile, UserButton, useClerk, withClerk, WithClerk, useUser, withUser, WithUser, SignedIn, SignedOut, ClerkLoaded, isClerkAPIError, };
declare const ClerkContext: React.Context<ClerkContextType | undefined>;
declare class ClerkProvider extends React.PureComponent<ContextProps, ContextState> {
declare class ClerkProvider extends React.PureComponent<ClerkProviderProps, ClerkProviderState> {
private clerk;
debug(...args: any): void;
constructor(props: ContextProps);
constructor(props: ClerkProviderProps);
listener: ({ client, session, user }: ListenerEmission) => void;

@@ -37,3 +36,2 @@ componentDidMount(): void;

declare const ClerkLoaded: React.FC;
declare const loadClerk: (provider: string, options?: Partial<IsomorphicClerkOptions> | undefined) => void;
declare const loadSessionFromToken: (token: string) => void;

@@ -11,17 +11,16 @@ declare global {

declare type historyChange = (to: string) => any;
export interface InitOpts {
export interface ClerkOptionsI {
navigate?: historyChange;
selectInitialSession?: (client: ClientResource) => SessionResource | null;
navigate?: historyChange;
signInURL?: string;
signInNavigate?: historyChange;
signUpURL?: string;
signUpNavigate?: historyChange;
userProfileURL?: string | ((user: UserResource) => string);
userProfileNavigate?: historyChange;
afterSignIn?: (session: SessionResource) => void;
afterSignUp?: (session: SessionResource) => void;
afterSignOutOne?: () => void;
afterSignOutAll?: () => void;
afterSwitchSession?: (session: SessionResource) => void;
scriptUrl?: string;
}
export interface ClerkProviderProps extends ClerkOptionsI {
host?: string | null;
clerk?: IsomorphicClerkType | BrowserClerkType;
}
export interface ClerkProviderState {
client?: ClientResource;
session?: SessionResource | null;
user?: UserResource | null;
}
export interface ClerkAPIFieldErrorJSON {

@@ -64,11 +63,2 @@ type: string;

}
export interface ContextProps {
clerk?: IsomorphicClerkType | BrowserClerkType;
byClerkJS?: boolean;
}
export interface ContextState {
client?: ClientResource;
session?: SessionResource | null;
user?: UserResource | null;
}
export interface MountProps {

@@ -79,13 +69,4 @@ mount: (node: HTMLDivElement, props: any) => void;

}
export interface ModalProps {
open: (props: any) => void;
close: () => void;
props?: any;
}
export interface IsomorphicClerkOptions extends InitOpts {
baseUrl: string;
ssrKey: string | null;
}
export interface BrowserClerkType extends ClerkType {
init: (opts?: InitOpts) => Promise<void>;
init: (opts?: ClerkOptionsI) => Promise<void>;
updateClient: (client: ClientResource) => void;

@@ -96,3 +77,2 @@ onComponentsReady: Promise<void>;

export interface IsomorphicClerkType extends ClerkType {
ssrKey: string | null;
ssrData: string | null;

@@ -121,18 +101,29 @@ loadFromServer: (token: string) => void;

addListener: (listener: (emission: ListenerEmission) => void) => void;
setSession: (session: SessionResource | string | null, beforeEmit?: (session: SessionResource | null) => Promise<any> | void) => Promise<void>;
setSession: (session: SessionResource | string | null, beforeEmit?: (session: SessionResource | null) => any) => Promise<void>;
}
export interface SignInProps extends Omit<InitOpts, 'selectInitialSession'> {
mode?: 'modal' | 'mounted';
export interface SignInProps {
routing?: 'path' | 'hash' | 'virtual';
path?: string;
onClose?: () => void;
afterSignIn?: string;
signUpURL?: string;
}
export interface SignUpProps extends Omit<InitOpts, 'selectInitialSession'> {
mode?: 'modal' | 'mounted';
export interface SignUpProps {
routing?: 'path' | 'hash' | 'virtual';
path?: string;
onClose?: () => void;
afterSignUp?: string;
signInURL?: string;
}
export interface UserProfileProps extends Omit<InitOpts, 'selectInitialSession'> {
path: string;
export interface UserProfileProps {
routing?: 'path' | 'hash' | 'virtual';
path?: string;
afterSignOutAll?: string;
afterSignOutOne?: string;
}
export declare type UserButtonProps = Omit<InitOpts, 'selectInitialSession'>;
export interface UserButtonProps {
afterSignOutAll?: string;
afterSignOutOne?: string;
afterSwitchSession?: string;
userProfileURL?: string;
signInURL?: string;
}
export interface ClerkResource {

@@ -139,0 +130,0 @@ provider: string;

{
"version": "0.1.2-beta.5",
"name": "@clerk/clerk-react",
"version": "1.0.0-alpha.0",
"license": "MIT",
"author": "colinclerk",
"main": "dist/index.js",
"module": "dist/clerk-react.esm.js",
"typings": "dist/index.d.ts",

@@ -10,15 +13,10 @@ "files": [

],
"engines": {
"node": ">=10"
},
"scripts": {
"start": "tsdx watch",
"build": "tsdx build",
"test": "tsdx test --passWithNoTests",
"dev": "tsdx watch",
"lint": "tsdx lint",
"prepare": "tsdx build"
"prepare": "yarn build",
"start": "echo \"Noop\"",
"test": "tsdx test --passWithNoTests"
},
"peerDependencies": {
"react": ">=16"
},
"husky": {

@@ -35,8 +33,2 @@ "hooks": {

},
"name": "@clerk/clerk-react",
"publishConfig": {
"access": "public"
},
"author": "colinclerk",
"module": "dist/clerk-react.esm.js",
"devDependencies": {

@@ -46,8 +38,17 @@ "@types/react": "^16.9.41",

"husky": "^4.2.5",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react": "16.13.1",
"react-dom": "16.13.1",
"tsdx": "^0.13.2",
"tslib": "^2.0.0",
"typescript": "^3.9.5"
"typescript": "^4.0.5"
},
"peerDependencies": {
"react": ">=16"
},
"engines": {
"node": ">=10"
},
"publishConfig": {
"access": "public"
}
}
}

@@ -14,18 +14,19 @@ declare global {

export interface InitOpts {
export interface ClerkOptionsI {
navigate?: historyChange;
selectInitialSession?: (client: ClientResource) => SessionResource | null;
navigate?: historyChange;
signInURL?: string;
signInNavigate?: historyChange;
signUpURL?: string;
signUpNavigate?: historyChange;
userProfileURL?: string | ((user: UserResource) => string);
userProfileNavigate?: historyChange;
afterSignIn?: (session: SessionResource) => void;
afterSignUp?: (session: SessionResource) => void;
afterSignOutOne?: () => void;
afterSignOutAll?: () => void;
afterSwitchSession?: (session: SessionResource) => void;
scriptUrl?: string;
}
export interface ClerkProviderProps extends ClerkOptionsI {
host?: string | null;
clerk?: IsomorphicClerkType | BrowserClerkType;
}
export interface ClerkProviderState {
client?: ClientResource;
session?: SessionResource | null;
user?: UserResource | null;
}
export interface ClerkAPIFieldErrorJSON {

@@ -72,13 +73,2 @@ type: string;

export interface ContextProps {
clerk?: IsomorphicClerkType | BrowserClerkType;
byClerkJS?: boolean;
}
export interface ContextState {
client?: ClientResource;
session?: SessionResource | null;
user?: UserResource | null;
}
export interface MountProps {

@@ -90,15 +80,4 @@ mount: (node: HTMLDivElement, props: any) => void;

export interface ModalProps {
open: (props: any) => void;
close: () => void;
props?: any;
}
export interface IsomorphicClerkOptions extends InitOpts {
baseUrl: string;
ssrKey: string | null;
}
export interface BrowserClerkType extends ClerkType {
init: (opts?: InitOpts) => Promise<void>;
init: (opts?: ClerkOptionsI) => Promise<void>;
updateClient: (client: ClientResource) => void;

@@ -111,3 +90,2 @@ onComponentsReady: Promise<void>;

export interface IsomorphicClerkType extends ClerkType {
ssrKey: string | null;
ssrData: string | null;

@@ -140,3 +118,3 @@ loadFromServer: (token: string) => void;

session: SessionResource | string | null,
beforeEmit?: (session: SessionResource | null) => Promise<any> | void
beforeEmit?: (session: SessionResource | null) => any
) => Promise<void>;

@@ -147,20 +125,30 @@ }

export interface SignInProps extends Omit<InitOpts, 'selectInitialSession'> {
mode?: 'modal' | 'mounted';
export interface SignInProps {
routing?: 'path' | 'hash' | 'virtual';
path?: string;
onClose?: () => void;
afterSignIn?: string;
signUpURL?: string;
}
export interface SignUpProps extends Omit<InitOpts, 'selectInitialSession'> {
mode?: 'modal' | 'mounted';
export interface SignUpProps {
routing?: 'path' | 'hash' | 'virtual';
path?: string;
onClose?: () => void;
afterSignUp?: string;
signInURL?: string;
}
export interface UserProfileProps
extends Omit<InitOpts, 'selectInitialSession'> {
path: string;
export interface UserProfileProps {
routing?: 'path' | 'hash' | 'virtual';
path?: string;
afterSignOutAll?: string;
afterSignOutOne?: string;
}
export type UserButtonProps = Omit<InitOpts, 'selectInitialSession'>;
export interface UserButtonProps {
afterSignOutAll?: string;
afterSignOutOne?: string;
afterSwitchSession?: string;
userProfileURL?: string;
signInURL?: string;
}

@@ -167,0 +155,0 @@ /////////////////////////////

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc