@proteinjs/user-ui 1.0.40 → 1.0.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/generated/index.d.ts +1 -0
  2. package/dist/generated/index.d.ts.map +1 -1
  3. package/dist/generated/index.js +4 -1
  4. package/dist/generated/index.js.map +1 -1
  5. package/dist/src/AuthenticatedPageContainer.d.ts.map +1 -1
  6. package/dist/src/AuthenticatedPageContainer.js +2 -3
  7. package/dist/src/AuthenticatedPageContainer.js.map +1 -1
  8. package/dist/src/pages/ForgotPassword.d.ts +0 -1
  9. package/dist/src/pages/ForgotPassword.d.ts.map +1 -1
  10. package/dist/src/pages/ForgotPassword.js +2 -5
  11. package/dist/src/pages/ForgotPassword.js.map +1 -1
  12. package/dist/src/pages/Login.d.ts +0 -1
  13. package/dist/src/pages/Login.d.ts.map +1 -1
  14. package/dist/src/pages/Login.js +3 -4
  15. package/dist/src/pages/Login.js.map +1 -1
  16. package/dist/src/pages/PasswordReset.d.ts +0 -1
  17. package/dist/src/pages/PasswordReset.d.ts.map +1 -1
  18. package/dist/src/pages/PasswordReset.js +2 -3
  19. package/dist/src/pages/PasswordReset.js.map +1 -1
  20. package/dist/src/pages/SendInvite.d.ts +3 -0
  21. package/dist/src/pages/SendInvite.d.ts.map +1 -0
  22. package/dist/src/pages/SendInvite.js +169 -0
  23. package/dist/src/pages/SendInvite.js.map +1 -0
  24. package/dist/src/pages/Signup.d.ts.map +1 -1
  25. package/dist/src/pages/Signup.js +142 -49
  26. package/dist/src/pages/Signup.js.map +1 -1
  27. package/generated/index.ts +4 -1
  28. package/package.json +7 -6
  29. package/src/AuthenticatedPageContainer.tsx +3 -4
  30. package/src/pages/ForgotPassword.tsx +2 -5
  31. package/src/pages/Login.tsx +3 -4
  32. package/src/pages/PasswordReset.tsx +2 -3
  33. package/src/pages/SendInvite.tsx +111 -0
  34. package/src/pages/Signup.tsx +132 -49
@@ -5,6 +5,7 @@ import '@proteinjs/reflection';
5
5
  import '@proteinjs/server-api';
6
6
  import '@proteinjs/ui';
7
7
  import '@proteinjs/user';
8
+ import '@proteinjs/util';
8
9
  import 'moment';
9
10
  import 'react';
10
11
  import 'react-dom';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../generated/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AAEpC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,eAAe,CAAC;AACvB,OAAO,uBAAuB,CAAC;AAC/B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,eAAe,CAAC;AACvB,OAAO,iBAAiB,CAAC;AACzB,OAAO,QAAQ,CAAC;AAChB,OAAO,OAAO,CAAC;AACf,OAAO,WAAW,CAAC;AA6BnB,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../generated/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AAEpC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,eAAe,CAAC;AACvB,OAAO,uBAAuB,CAAC;AAC/B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,eAAe,CAAC;AACvB,OAAO,iBAAiB,CAAC;AACzB,OAAO,iBAAiB,CAAC;AACzB,OAAO,QAAQ,CAAC;AAChB,OAAO,OAAO,CAAC;AACf,OAAO,WAAW,CAAC;AA+BnB,cAAc,UAAU,CAAC"}
@@ -21,20 +21,23 @@ require("@proteinjs/reflection");
21
21
  require("@proteinjs/server-api");
22
22
  require("@proteinjs/ui");
23
23
  require("@proteinjs/user");
24
+ require("@proteinjs/util");
24
25
  require("moment");
25
26
  require("react");
26
27
  require("react-dom");
27
28
  /** Generate Source Graph */
28
- var sourceGraph = "{\"options\":{\"directed\":true,\"multigraph\":false,\"compound\":false},\"nodes\":[{\"v\":\"/Omit\"},{\"v\":\"@proteinjs/user-ui/forgotPasswordPage\",\"value\":{\"packageName\":\"@proteinjs/user-ui\",\"name\":\"forgotPasswordPage\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/user/packages/ui/src/pages/ForgotPassword.tsx\",\"qualifiedName\":\"@proteinjs/user-ui/forgotPasswordPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/ui/Page\"},{\"v\":\"@proteinjs/user-ui/loginPage\",\"value\":{\"packageName\":\"@proteinjs/user-ui\",\"name\":\"loginPage\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/user/packages/ui/src/pages/Login.tsx\",\"qualifiedName\":\"@proteinjs/user-ui/loginPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/user-ui/passwordResetPage\",\"value\":{\"packageName\":\"@proteinjs/user-ui\",\"name\":\"passwordResetPage\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/user/packages/ui/src/pages/PasswordReset.tsx\",\"qualifiedName\":\"@proteinjs/user-ui/passwordResetPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/user-ui/signupPage\",\"value\":{\"packageName\":\"@proteinjs/user-ui\",\"name\":\"signupPage\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/user/packages/ui/src/pages/Signup.tsx\",\"qualifiedName\":\"@proteinjs/user-ui/signupPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}}],\"edges\":[{\"v\":\"@proteinjs/user-ui/forgotPasswordPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/user-ui/loginPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/user-ui/passwordResetPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/user-ui/signupPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"}]}";
29
+ var sourceGraph = "{\"options\":{\"directed\":true,\"multigraph\":false,\"compound\":false},\"nodes\":[{\"v\":\"/Omit\"},{\"v\":\"@proteinjs/user-ui/forgotPasswordPage\",\"value\":{\"packageName\":\"@proteinjs/user-ui\",\"name\":\"forgotPasswordPage\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/user/packages/ui/src/pages/ForgotPassword.tsx\",\"qualifiedName\":\"@proteinjs/user-ui/forgotPasswordPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/ui/Page\"},{\"v\":\"@proteinjs/user-ui/loginPage\",\"value\":{\"packageName\":\"@proteinjs/user-ui\",\"name\":\"loginPage\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/user/packages/ui/src/pages/Login.tsx\",\"qualifiedName\":\"@proteinjs/user-ui/loginPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/user-ui/passwordResetPage\",\"value\":{\"packageName\":\"@proteinjs/user-ui\",\"name\":\"passwordResetPage\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/user/packages/ui/src/pages/PasswordReset.tsx\",\"qualifiedName\":\"@proteinjs/user-ui/passwordResetPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/user-ui/invitePage\",\"value\":{\"packageName\":\"@proteinjs/user-ui\",\"name\":\"invitePage\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/user/packages/ui/src/pages/SendInvite.tsx\",\"qualifiedName\":\"@proteinjs/user-ui/invitePage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/user-ui/signupPage\",\"value\":{\"packageName\":\"@proteinjs/user-ui\",\"name\":\"signupPage\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/user/packages/ui/src/pages/Signup.tsx\",\"qualifiedName\":\"@proteinjs/user-ui/signupPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}}],\"edges\":[{\"v\":\"@proteinjs/user-ui/forgotPasswordPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/user-ui/loginPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/user-ui/passwordResetPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/user-ui/invitePage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/user-ui/signupPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"}]}";
29
30
  /** Generate Source Links */
30
31
  var ForgotPassword_1 = require("../src/pages/ForgotPassword");
31
32
  var Login_1 = require("../src/pages/Login");
32
33
  var PasswordReset_1 = require("../src/pages/PasswordReset");
34
+ var SendInvite_1 = require("../src/pages/SendInvite");
33
35
  var Signup_1 = require("../src/pages/Signup");
34
36
  var sourceLinks = {
35
37
  '@proteinjs/user-ui/forgotPasswordPage': ForgotPassword_1.forgotPasswordPage,
36
38
  '@proteinjs/user-ui/loginPage': Login_1.loginPage,
37
39
  '@proteinjs/user-ui/passwordResetPage': PasswordReset_1.passwordResetPage,
40
+ '@proteinjs/user-ui/invitePage': SendInvite_1.invitePage,
38
41
  '@proteinjs/user-ui/signupPage': Signup_1.signupPage,
39
42
  };
40
43
  /** Load Source Graph and Links */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../generated/index.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;;;;;;;;;;;;;;AAEpC,+BAA6B;AAC7B,yBAAuB;AACvB,iCAA+B;AAC/B,iCAA+B;AAC/B,yBAAuB;AACvB,2BAAyB;AACzB,kBAAgB;AAChB,iBAAe;AACf,qBAAmB;AAGnB,4BAA4B;AAE5B,IAAM,WAAW,GAAG,ktGAAktG,CAAC;AAGvuG,4BAA4B;AAE5B,8DAAiE;AACjE,4CAA+C;AAC/C,4DAA+D;AAC/D,8CAAiD;AAEjD,IAAM,WAAW,GAAG;IACnB,uCAAuC,EAAE,mCAAkB;IAC3D,8BAA8B,EAAE,iBAAS;IACzC,sCAAsC,EAAE,iCAAiB;IACzD,+BAA+B,EAAE,mBAAU;CAC3C,CAAC;AAGF,kCAAkC;AAElC,oDAAyD;AACzD,6BAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAGjD,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../generated/index.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;;;;;;;;;;;;;;AAEpC,+BAA6B;AAC7B,yBAAuB;AACvB,iCAA+B;AAC/B,iCAA+B;AAC/B,yBAAuB;AACvB,2BAAyB;AACzB,2BAAyB;AACzB,kBAAgB;AAChB,iBAAe;AACf,qBAAmB;AAGnB,4BAA4B;AAE5B,IAAM,WAAW,GAAG,o9HAAo9H,CAAC;AAGz+H,4BAA4B;AAE5B,8DAAiE;AACjE,4CAA+C;AAC/C,4DAA+D;AAC/D,sDAAqD;AACrD,8CAAiD;AAEjD,IAAM,WAAW,GAAG;IACnB,uCAAuC,EAAE,mCAAkB;IAC3D,8BAA8B,EAAE,iBAAS;IACzC,sCAAsC,EAAE,iCAAiB;IACzD,+BAA+B,EAAE,uBAAU;IAC3C,+BAA+B,EAAE,mBAAU;CAC3C,CAAC;AAGF,kCAAkC;AAElC,oDAAyD;AACzD,6BAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAGjD,2CAAyB"}
@@ -1 +1 @@
1
- {"version":3,"file":"AuthenticatedPageContainer.d.ts","sourceRoot":"","sources":["../../src/AuthenticatedPageContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAuB,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIxE,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;AAE/E,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,+BAA+B,qBA6ChF"}
1
+ {"version":3,"file":"AuthenticatedPageContainer.d.ts","sourceRoot":"","sources":["../../src/AuthenticatedPageContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAuB,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGxE,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;AAE/E,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,+BAA+B,qBA6ChF"}
@@ -65,7 +65,6 @@ exports.AuthenticatedPageContainer = void 0;
65
65
  var react_1 = __importDefault(require("react"));
66
66
  var ui_1 = require("@proteinjs/ui");
67
67
  var user_1 = require("@proteinjs/user");
68
- var Login_1 = require("./pages/Login");
69
68
  function AuthenticatedPageContainer(props) {
70
69
  var _this = this;
71
70
  var other = __rest(props, []);
@@ -85,7 +84,7 @@ function AuthenticatedPageContainer(props) {
85
84
  }
86
85
  return user_1.UserAuth.hasRoles((_d = page.auth) === null || _d === void 0 ? void 0 : _d.roles);
87
86
  },
88
- login: Login_1.loginPath,
87
+ login: user_1.uiRoutes.auth.login,
89
88
  logout: function () { return __awaiter(_this, void 0, void 0, function () {
90
89
  var response;
91
90
  return __generator(this, function (_a) {
@@ -105,7 +104,7 @@ function AuthenticatedPageContainer(props) {
105
104
  }
106
105
  new user_1.UserRepo().setUser(user_1.guestUser);
107
106
  setIsLoggedIn(false);
108
- return [2 /*return*/, Login_1.loginPath];
107
+ return [2 /*return*/, user_1.uiRoutes.auth.login];
109
108
  }
110
109
  });
111
110
  }); },
@@ -1 +1 @@
1
- {"version":3,"file":"AuthenticatedPageContainer.js","sourceRoot":"","sources":["../../src/AuthenticatedPageContainer.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,oCAAwE;AACxE,wCAAwE;AACxE,uCAA0C;AAI1C,SAAgB,0BAA0B,CAAC,KAAsC;IAAjF,iBA6CC;IA5CC,IAAW,KAAK,UAAK,KAAK,EAApB,EAAY,CAAQ,CAAC;IACrB,IAAA,KAA8B,eAAK,CAAC,QAAQ,CAAC,eAAQ,CAAC,UAAU,EAAE,CAAC,EAAlE,UAAU,QAAA,EAAE,aAAa,QAAyC,CAAC;IAE1E,OAAO,CACL,8BAAC,kBAAa,aACZ,IAAI,EAAE;YACJ,UAAU,YAAA;YACV,WAAW,EAAE,UAAC,IAAU;;gBACtB,IAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,EAAE;oBACrB,OAAO,IAAI,CAAC;iBACb;gBAED,IAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,QAAQ,EAAE;oBACvB,OAAO,eAAQ,CAAC,UAAU,EAAE,CAAC;iBAC9B;gBAED,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,CAAA,EAAE;oBACrB,OAAO,eAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;iBAClC;gBAED,OAAO,eAAQ,CAAC,QAAQ,CAAC,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,CAAC,CAAC;YAC7C,CAAC;YACD,KAAK,EAAE,iBAAS;YAChB,MAAM,EAAE;;;;gCACW,qBAAM,KAAK,CAAC,aAAM,CAAC,MAAM,CAAC,IAAI,EAAE;gCAC/C,MAAM,EAAE,aAAM,CAAC,MAAM,CAAC,MAAM;gCAC5B,QAAQ,EAAE,QAAQ;gCAClB,WAAW,EAAE,aAAa;gCAC1B,OAAO,EAAE;oCACP,cAAc,EAAE,kBAAkB;iCACnC;6BACF,CAAC,EAAA;;4BAPI,QAAQ,GAAG,SAOf;4BACF,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE;gCAC1B,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;6BACtC;4BAED,IAAI,eAAQ,EAAE,CAAC,OAAO,CAAC,gBAAS,CAAC,CAAC;4BAClC,aAAa,CAAC,KAAK,CAAC,CAAC;4BACrB,sBAAO,iBAAS,EAAC;;;iBAClB;SACF,IACG,KAAK,EACT,CACH,CAAC;AACJ,CAAC;AA7CD,gEA6CC"}
1
+ {"version":3,"file":"AuthenticatedPageContainer.js","sourceRoot":"","sources":["../../src/AuthenticatedPageContainer.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,oCAAwE;AACxE,wCAAkF;AAIlF,SAAgB,0BAA0B,CAAC,KAAsC;IAAjF,iBA6CC;IA5CC,IAAW,KAAK,UAAK,KAAK,EAApB,EAAY,CAAQ,CAAC;IACrB,IAAA,KAA8B,eAAK,CAAC,QAAQ,CAAC,eAAQ,CAAC,UAAU,EAAE,CAAC,EAAlE,UAAU,QAAA,EAAE,aAAa,QAAyC,CAAC;IAE1E,OAAO,CACL,8BAAC,kBAAa,aACZ,IAAI,EAAE;YACJ,UAAU,YAAA;YACV,WAAW,EAAE,UAAC,IAAU;;gBACtB,IAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,EAAE;oBACrB,OAAO,IAAI,CAAC;iBACb;gBAED,IAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,QAAQ,EAAE;oBACvB,OAAO,eAAQ,CAAC,UAAU,EAAE,CAAC;iBAC9B;gBAED,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,CAAA,EAAE;oBACrB,OAAO,eAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;iBAClC;gBAED,OAAO,eAAQ,CAAC,QAAQ,CAAC,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,CAAC,CAAC;YAC7C,CAAC;YACD,KAAK,EAAE,eAAQ,CAAC,IAAI,CAAC,KAAK;YAC1B,MAAM,EAAE;;;;gCACW,qBAAM,KAAK,CAAC,aAAM,CAAC,MAAM,CAAC,IAAI,EAAE;gCAC/C,MAAM,EAAE,aAAM,CAAC,MAAM,CAAC,MAAM;gCAC5B,QAAQ,EAAE,QAAQ;gCAClB,WAAW,EAAE,aAAa;gCAC1B,OAAO,EAAE;oCACP,cAAc,EAAE,kBAAkB;iCACnC;6BACF,CAAC,EAAA;;4BAPI,QAAQ,GAAG,SAOf;4BACF,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE;gCAC1B,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;6BACtC;4BAED,IAAI,eAAQ,EAAE,CAAC,OAAO,CAAC,gBAAS,CAAC,CAAC;4BAClC,aAAa,CAAC,KAAK,CAAC,CAAC;4BACrB,sBAAO,eAAQ,CAAC,IAAI,CAAC,KAAK,EAAC;;;iBAC5B;SACF,IACG,KAAK,EACT,CACH,CAAC;AACJ,CAAC;AA7CD,gEA6CC"}
@@ -1,4 +1,3 @@
1
1
  import { Page } from '@proteinjs/ui';
2
- export declare const forgotPasswordPath = "login/forgot-password";
3
2
  export declare const forgotPasswordPage: Page;
4
3
  //# sourceMappingURL=ForgotPassword.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ForgotPassword.d.ts","sourceRoot":"","sources":["../../../src/pages/ForgotPassword.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAkD,MAAM,eAAe,CAAC;AAIrF,eAAO,MAAM,kBAAkB,0BAA0B,CAAC;AAC1D,eAAO,MAAM,kBAAkB,EAAE,IAgBhC,CAAC"}
1
+ {"version":3,"file":"ForgotPassword.d.ts","sourceRoot":"","sources":["../../../src/pages/ForgotPassword.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAkD,MAAM,eAAe,CAAC;AAGrF,eAAO,MAAM,kBAAkB,EAAE,IAgBhC,CAAC"}
@@ -54,15 +54,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
54
54
  return (mod && mod.__esModule) ? mod : { "default": mod };
55
55
  };
56
56
  Object.defineProperty(exports, "__esModule", { value: true });
57
- exports.forgotPasswordPage = exports.forgotPasswordPath = void 0;
57
+ exports.forgotPasswordPage = void 0;
58
58
  var react_1 = __importDefault(require("react"));
59
59
  var ui_1 = require("@proteinjs/ui");
60
60
  var user_1 = require("@proteinjs/user");
61
- var PasswordReset_1 = require("./PasswordReset");
62
- exports.forgotPasswordPath = 'login/forgot-password';
63
61
  exports.forgotPasswordPage = {
64
62
  name: 'Forgot Password',
65
- path: exports.forgotPasswordPath,
63
+ path: user_1.uiRoutes.auth.forgotPassword,
66
64
  auth: {
67
65
  public: true,
68
66
  },
@@ -98,7 +96,6 @@ var buttons = {
98
96
  method: user_1.routes.initiatePasswordReset.method,
99
97
  body: JSON.stringify({
100
98
  email: fields.email.field.value,
101
- resetPath: PasswordReset_1.passwordResetPath,
102
99
  }),
103
100
  redirect: 'follow',
104
101
  credentials: 'same-origin',
@@ -1 +1 @@
1
- {"version":3,"file":"ForgotPassword.js","sourceRoot":"","sources":["../../../src/pages/ForgotPassword.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,oCAAqF;AACrF,wCAAyC;AACzC,iDAAoD;AAEvC,QAAA,kBAAkB,GAAG,uBAAuB,CAAC;AAC7C,QAAA,kBAAkB,GAAS;IACtC,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,0BAAkB;IACxB,IAAI,EAAE;QACJ,MAAM,EAAE,IAAI;KACb;IACD,SAAS,EAAE,cAAM,OAAA,CACf,8BAAC,aAAQ;QACP,8BAAC,SAAI,IACH,IAAI,EAAC,iBAAiB,EACtB,YAAY,EAAE,cAAM,OAAA,IAAI,oBAAoB,EAAE,EAA1B,CAA0B,EAC9C,WAAW,EAAE,CAAC,OAAO,CAAC,EACtB,OAAO,EAAE,OAAO,GAChB,CACO,CACZ,EATgB,CAShB;CACF,CAAC;AAEF;IAAmC,wCAAM;IAAzC;QAAA,qEAQC;QAHC,WAAK,GAAG,IAAA,cAAS,EAAuB;YACtC,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;;IACL,CAAC;IAPQ,2BAAM,GAAb;QACE,OAAO,IAAI,oBAAoB,EAAE,CAAC;IACpC,CAAC;IAKH,2BAAC;AAAD,CAAC,AARD,CAAmC,WAAM,GAQxC;AAED,IAAM,OAAO,GAAsC;IACjD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE;YACL,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,WAAW;SACrB;QACD,OAAO,EAAE,UAAO,MAA4B,EAAE,OAA0C;;;;4BACrE,qBAAM,KAAK,CAAC,aAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE;4BAC9D,MAAM,EAAE,aAAM,CAAC,qBAAqB,CAAC,MAAM;4BAC3C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;gCAC/B,SAAS,EAAE,iCAAiB;6BAC7B,CAAC;4BACF,QAAQ,EAAE,QAAQ;4BAClB,WAAW,EAAE,aAAa;4BAC1B,OAAO,EAAE;gCACP,cAAc,EAAE,kBAAkB;6BACnC;yBACF,CAAC,EAAA;;wBAXI,QAAQ,GAAG,SAWf;wBACF,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE;4BAC1B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;yBACxD;wBAEY,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;;wBAA5B,IAAI,GAAG,SAAqB;wBAClC,IAAI,IAAI,CAAC,KAAK,EAAE;4BACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;yBACxD;wBAED,sBAAO,gEAAgE,EAAC;;;aACzE;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"ForgotPassword.js","sourceRoot":"","sources":["../../../src/pages/ForgotPassword.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,oCAAqF;AACrF,wCAAmD;AAEtC,QAAA,kBAAkB,GAAS;IACtC,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,eAAQ,CAAC,IAAI,CAAC,cAAc;IAClC,IAAI,EAAE;QACJ,MAAM,EAAE,IAAI;KACb;IACD,SAAS,EAAE,cAAM,OAAA,CACf,8BAAC,aAAQ;QACP,8BAAC,SAAI,IACH,IAAI,EAAC,iBAAiB,EACtB,YAAY,EAAE,cAAM,OAAA,IAAI,oBAAoB,EAAE,EAA1B,CAA0B,EAC9C,WAAW,EAAE,CAAC,OAAO,CAAC,EACtB,OAAO,EAAE,OAAO,GAChB,CACO,CACZ,EATgB,CAShB;CACF,CAAC;AAEF;IAAmC,wCAAM;IAAzC;QAAA,qEAQC;QAHC,WAAK,GAAG,IAAA,cAAS,EAAuB;YACtC,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;;IACL,CAAC;IAPQ,2BAAM,GAAb;QACE,OAAO,IAAI,oBAAoB,EAAE,CAAC;IACpC,CAAC;IAKH,2BAAC;AAAD,CAAC,AARD,CAAmC,WAAM,GAQxC;AAED,IAAM,OAAO,GAAsC;IACjD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE;YACL,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,WAAW;SACrB;QACD,OAAO,EAAE,UAAO,MAA4B,EAAE,OAA0C;;;;4BACrE,qBAAM,KAAK,CAAC,aAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE;4BAC9D,MAAM,EAAE,aAAM,CAAC,qBAAqB,CAAC,MAAM;4BAC3C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;6BAChC,CAAC;4BACF,QAAQ,EAAE,QAAQ;4BAClB,WAAW,EAAE,aAAa;4BAC1B,OAAO,EAAE;gCACP,cAAc,EAAE,kBAAkB;6BACnC;yBACF,CAAC,EAAA;;wBAVI,QAAQ,GAAG,SAUf;wBACF,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE;4BAC1B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;yBACxD;wBAEY,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;;wBAA5B,IAAI,GAAG,SAAqB;wBAClC,IAAI,IAAI,CAAC,KAAK,EAAE;4BACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;yBACxD;wBAED,sBAAO,gEAAgE,EAAC;;;aACzE;KACF;CACF,CAAC"}
@@ -1,4 +1,3 @@
1
1
  import { Page } from '@proteinjs/ui';
2
- export declare const loginPath = "login";
3
2
  export declare const loginPage: Page;
4
3
  //# sourceMappingURL=Login.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Login.d.ts","sourceRoot":"","sources":["../../../src/pages/Login.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAA+D,MAAM,eAAe,CAAC;AAGlG,eAAO,MAAM,SAAS,UAAU,CAAC;AACjC,eAAO,MAAM,SAAS,EAAE,IAiBvB,CAAC"}
1
+ {"version":3,"file":"Login.d.ts","sourceRoot":"","sources":["../../../src/pages/Login.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAA+D,MAAM,eAAe,CAAC;AAGlG,eAAO,MAAM,SAAS,EAAE,IAiBvB,CAAC"}
@@ -54,14 +54,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
54
54
  return (mod && mod.__esModule) ? mod : { "default": mod };
55
55
  };
56
56
  Object.defineProperty(exports, "__esModule", { value: true });
57
- exports.loginPage = exports.loginPath = void 0;
57
+ exports.loginPage = void 0;
58
58
  var react_1 = __importDefault(require("react"));
59
59
  var ui_1 = require("@proteinjs/ui");
60
60
  var user_1 = require("@proteinjs/user");
61
- exports.loginPath = 'login';
62
61
  exports.loginPage = {
63
62
  name: 'Login',
64
- path: exports.loginPath,
63
+ path: user_1.uiRoutes.auth.login,
65
64
  auth: {
66
65
  public: true,
67
66
  },
@@ -95,7 +94,7 @@ var buttons = {
95
94
  },
96
95
  redirect: function () { return __awaiter(void 0, void 0, void 0, function () {
97
96
  return __generator(this, function (_a) {
98
- return [2 /*return*/, { path: '/login/forgot-password' }];
97
+ return [2 /*return*/, { path: "/".concat(user_1.uiRoutes.auth.forgotPassword) }];
99
98
  });
100
99
  }); },
101
100
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Login.js","sourceRoot":"","sources":["../../../src/pages/Login.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,oCAAkG;AAClG,wCAAyC;AAE5B,QAAA,SAAS,GAAG,OAAO,CAAC;AACpB,QAAA,SAAS,GAAS;IAC7B,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,iBAAS;IACf,IAAI,EAAE;QACJ,MAAM,EAAE,IAAI;KACb;IACD,SAAS,EAAE,cAAM,OAAA,CACf,8BAAC,aAAQ;QACP,8BAAC,SAAI,IACH,IAAI,EAAC,OAAO,EACZ,YAAY,EAAE,cAAM,OAAA,IAAI,WAAW,EAAE,EAAjB,CAAiB,EACrC,WAAW,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAClC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,IAAI,GACd,CACO,CACZ,EAVgB,CAUhB;CACF,CAAC;AAEF;IAA0B,+BAAM;IAAhC;QAAA,qEAaC;QARC,WAAK,GAAG,IAAA,cAAS,EAAc;YAC7B,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QAEH,cAAQ,GAAG,IAAA,cAAS,EAAc;YAChC,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;;IACL,CAAC;IAZQ,kBAAM,GAAb;QACE,OAAO,IAAI,WAAW,EAAE,CAAC;IAC3B,CAAC;IAUH,kBAAC;AAAD,CAAC,AAbD,CAA0B,WAAM,GAa/B;AAED,IAAM,OAAO,GAA6B;IACxC,cAAc,EAAE;QACd,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,MAAM;SACd;QACD,QAAQ,EAAE;;gBACR,sBAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,EAAC;;aAC3C;KACF;IACD,KAAK,EAAE,gBAAW;IAClB,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE;YACL,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,WAAW;SACrB;QACD,OAAO,EAAE,UAAO,MAAmB,EAAE,OAAiC;;;;4BACnD,qBAAM,KAAK,CAAC,aAAM,CAAC,KAAK,CAAC,IAAI,EAAE;4BAC9C,MAAM,EAAE,aAAM,CAAC,KAAK,CAAC,MAAM;4BAC3B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;gCAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK;6BACtC,CAAC;4BACF,QAAQ,EAAE,QAAQ;4BAClB,WAAW,EAAE,aAAa;4BAC1B,OAAO,EAAE;gCACP,cAAc,EAAE,kBAAkB;6BACnC;yBACF,CAAC,EAAA;;wBAXI,QAAQ,GAAG,SAWf;wBACF,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE;4BAC1B,MAAM,IAAI,KAAK,CAAC,kCAA2B,QAAQ,CAAC,UAAU,CAAE,CAAC,CAAC;yBACnE;wBAEY,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;;wBAA5B,IAAI,GAAG,SAAqB;wBAClC,IAAI,IAAI,CAAC,KAAK,EAAE;4BACd,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yBAC7B;wBAED,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;;;;aAC5B;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"Login.js","sourceRoot":"","sources":["../../../src/pages/Login.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,oCAAkG;AAClG,wCAAmD;AAEtC,QAAA,SAAS,GAAS;IAC7B,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,eAAQ,CAAC,IAAI,CAAC,KAAK;IACzB,IAAI,EAAE;QACJ,MAAM,EAAE,IAAI;KACb;IACD,SAAS,EAAE,cAAM,OAAA,CACf,8BAAC,aAAQ;QACP,8BAAC,SAAI,IACH,IAAI,EAAC,OAAO,EACZ,YAAY,EAAE,cAAM,OAAA,IAAI,WAAW,EAAE,EAAjB,CAAiB,EACrC,WAAW,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAClC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,IAAI,GACd,CACO,CACZ,EAVgB,CAUhB;CACF,CAAC;AAEF;IAA0B,+BAAM;IAAhC;QAAA,qEAaC;QARC,WAAK,GAAG,IAAA,cAAS,EAAc;YAC7B,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QAEH,cAAQ,GAAG,IAAA,cAAS,EAAc;YAChC,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;;IACL,CAAC;IAZQ,kBAAM,GAAb;QACE,OAAO,IAAI,WAAW,EAAE,CAAC;IAC3B,CAAC;IAUH,kBAAC;AAAD,CAAC,AAbD,CAA0B,WAAM,GAa/B;AAED,IAAM,OAAO,GAA6B;IACxC,cAAc,EAAE;QACd,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,MAAM;SACd;QACD,QAAQ,EAAE;;gBACR,sBAAO,EAAE,IAAI,EAAE,WAAI,eAAQ,CAAC,IAAI,CAAC,cAAc,CAAE,EAAE,EAAC;;aACrD;KACF;IACD,KAAK,EAAE,gBAAW;IAClB,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE;YACL,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,WAAW;SACrB;QACD,OAAO,EAAE,UAAO,MAAmB,EAAE,OAAiC;;;;4BACnD,qBAAM,KAAK,CAAC,aAAM,CAAC,KAAK,CAAC,IAAI,EAAE;4BAC9C,MAAM,EAAE,aAAM,CAAC,KAAK,CAAC,MAAM;4BAC3B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;gCAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK;6BACtC,CAAC;4BACF,QAAQ,EAAE,QAAQ;4BAClB,WAAW,EAAE,aAAa;4BAC1B,OAAO,EAAE;gCACP,cAAc,EAAE,kBAAkB;6BACnC;yBACF,CAAC,EAAA;;wBAXI,QAAQ,GAAG,SAWf;wBACF,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE;4BAC1B,MAAM,IAAI,KAAK,CAAC,kCAA2B,QAAQ,CAAC,UAAU,CAAE,CAAC,CAAC;yBACnE;wBAEY,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;;wBAA5B,IAAI,GAAG,SAAqB;wBAClC,IAAI,IAAI,CAAC,KAAK,EAAE;4BACd,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yBAC7B;wBAED,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;;;;aAC5B;KACF;CACF,CAAC"}
@@ -1,4 +1,3 @@
1
1
  import { Page } from '@proteinjs/ui';
2
- export declare const passwordResetPath = "login/password-reset";
3
2
  export declare const passwordResetPage: Page;
4
3
  //# sourceMappingURL=PasswordReset.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PasswordReset.d.ts","sourceRoot":"","sources":["../../../src/pages/PasswordReset.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAkD,MAAM,eAAe,CAAC;AAIrF,eAAO,MAAM,iBAAiB,yBAAyB,CAAC;AA6HxD,eAAO,MAAM,iBAAiB,EAAE,IAO/B,CAAC"}
1
+ {"version":3,"file":"PasswordReset.d.ts","sourceRoot":"","sources":["../../../src/pages/PasswordReset.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAkD,MAAM,eAAe,CAAC;AAgIrF,eAAO,MAAM,iBAAiB,EAAE,IAO/B,CAAC"}
@@ -74,12 +74,11 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
74
74
  }
75
75
  };
76
76
  Object.defineProperty(exports, "__esModule", { value: true });
77
- exports.passwordResetPage = exports.passwordResetPath = void 0;
77
+ exports.passwordResetPage = void 0;
78
78
  var react_1 = __importStar(require("react"));
79
79
  var ui_1 = require("@proteinjs/ui");
80
80
  var user_1 = require("@proteinjs/user");
81
81
  var material_1 = require("@mui/material");
82
- exports.passwordResetPath = 'login/password-reset';
83
82
  var PasswordResetComponent = function () {
84
83
  var _a = (0, react_1.useState)(''), token = _a[0], setToken = _a[1];
85
84
  var _b = (0, react_1.useState)(false), isValidating = _b[0], setIsValidating = _b[1];
@@ -194,7 +193,7 @@ var PasswordResetComponent = function () {
194
193
  };
195
194
  exports.passwordResetPage = {
196
195
  name: 'Reset Password',
197
- path: exports.passwordResetPath,
196
+ path: user_1.uiRoutes.auth.passwordReset,
198
197
  auth: {
199
198
  public: true,
200
199
  },
@@ -1 +1 @@
1
- {"version":3,"file":"PasswordReset.js","sourceRoot":"","sources":["../../../src/pages/PasswordReset.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PasswordReset.js","sourceRoot":"","sources":["../../../src/pages/PasswordReset.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Page } from '@proteinjs/ui';
2
+ export declare const invitePage: Page;
3
+ //# sourceMappingURL=SendInvite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SendInvite.d.ts","sourceRoot":"","sources":["../../../src/pages/SendInvite.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAkD,MAAM,eAAe,CAAC;AAKrF,eAAO,MAAM,UAAU,EAAE,IA2BxB,CAAC"}
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ var __importDefault = (this && this.__importDefault) || function (mod) {
54
+ return (mod && mod.__esModule) ? mod : { "default": mod };
55
+ };
56
+ Object.defineProperty(exports, "__esModule", { value: true });
57
+ exports.invitePage = void 0;
58
+ var react_1 = __importDefault(require("react"));
59
+ var ui_1 = require("@proteinjs/ui");
60
+ var user_1 = require("@proteinjs/user");
61
+ var util_1 = require("@proteinjs/util");
62
+ var material_1 = require("@mui/material");
63
+ exports.invitePage = {
64
+ name: 'Send an Invite',
65
+ path: user_1.uiRoutes.admin.invite,
66
+ auth: {
67
+ roles: ['admin'],
68
+ },
69
+ component: function () { return (react_1.default.createElement(material_1.Stack, { direction: 'column', spacing: 4, mt: 2 },
70
+ react_1.default.createElement(ui_1.FormPage, { gridItemProps: { width: '400px' } },
71
+ react_1.default.createElement(ui_1.Form, { name: 'Send an Invite', createFields: function () { return new InviteFields(); }, fieldLayout: ['email'], buttons: buttons })),
72
+ react_1.default.createElement(ui_1.FormPage, { gridItemProps: { width: '400px' } },
73
+ react_1.default.createElement(ui_1.Form, { name: 'Revoke an Invite', createFields: function () { return new RevokeInviteFields(); }, fieldLayout: ['email'], buttons: revokeInviteButtons })))); },
74
+ };
75
+ var InviteFields = /** @class */ (function (_super) {
76
+ __extends(InviteFields, _super);
77
+ function InviteFields() {
78
+ var _this = _super !== null && _super.apply(this, arguments) || this;
79
+ _this.email = (0, ui_1.textField)({
80
+ name: 'email',
81
+ });
82
+ return _this;
83
+ }
84
+ InviteFields.create = function () {
85
+ return new InviteFields();
86
+ };
87
+ return InviteFields;
88
+ }(ui_1.Fields));
89
+ var buttons = {
90
+ signup: {
91
+ name: 'Send',
92
+ style: {
93
+ color: 'primary',
94
+ variant: 'contained',
95
+ },
96
+ onClick: function (fields, buttons) { return __awaiter(void 0, void 0, void 0, function () {
97
+ var email, response;
98
+ return __generator(this, function (_a) {
99
+ switch (_a.label) {
100
+ case 0:
101
+ email = fields.email.field.value && fields.email.field.value.trim();
102
+ if (!email) {
103
+ return [2 /*return*/, 'Please enter an email address.'];
104
+ }
105
+ if (!util_1.emailRegex.test(email)) {
106
+ return [2 /*return*/, 'Please enter a valid email address.'];
107
+ }
108
+ return [4 /*yield*/, (0, user_1.getSignupService)().sendInvite(email)];
109
+ case 1:
110
+ response = _a.sent();
111
+ if (response.sent === false) {
112
+ return [2 /*return*/, response.error || 'Failed to send invite.'];
113
+ }
114
+ return [2 /*return*/, "Successfully sent invite to ".concat(email, "!")];
115
+ }
116
+ });
117
+ }); },
118
+ },
119
+ };
120
+ var RevokeInviteFields = /** @class */ (function (_super) {
121
+ __extends(RevokeInviteFields, _super);
122
+ function RevokeInviteFields() {
123
+ var _this = _super !== null && _super.apply(this, arguments) || this;
124
+ _this.email = (0, ui_1.textField)({
125
+ name: 'email',
126
+ });
127
+ return _this;
128
+ }
129
+ RevokeInviteFields.create = function () {
130
+ return new InviteFields();
131
+ };
132
+ return RevokeInviteFields;
133
+ }(ui_1.Fields));
134
+ var revokeInviteButtons = {
135
+ signup: {
136
+ name: 'Revoke',
137
+ style: {
138
+ color: 'primary',
139
+ variant: 'contained',
140
+ },
141
+ onClick: function (fields, buttons) { return __awaiter(void 0, void 0, void 0, function () {
142
+ var email, _a;
143
+ return __generator(this, function (_b) {
144
+ switch (_b.label) {
145
+ case 0:
146
+ email = fields.email.field.value && fields.email.field.value.trim();
147
+ if (!email) {
148
+ return [2 /*return*/, 'Please enter an email address.'];
149
+ }
150
+ if (!util_1.emailRegex.test(email)) {
151
+ return [2 /*return*/, 'Please enter a valid email address.'];
152
+ }
153
+ _b.label = 1;
154
+ case 1:
155
+ _b.trys.push([1, 3, , 4]);
156
+ return [4 /*yield*/, (0, user_1.getSignupService)().revokeInvite(email)];
157
+ case 2:
158
+ _b.sent();
159
+ return [3 /*break*/, 4];
160
+ case 3:
161
+ _a = _b.sent();
162
+ return [2 /*return*/, "Revoke invite failed."];
163
+ case 4: return [2 /*return*/, "Successfully revoked invite to ".concat(email, ".")];
164
+ }
165
+ });
166
+ }); },
167
+ },
168
+ };
169
+ //# sourceMappingURL=SendInvite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SendInvite.js","sourceRoot":"","sources":["../../../src/pages/SendInvite.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Signup.d.ts","sourceRoot":"","sources":["../../../src/pages/Signup.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAA+D,MAAM,eAAe,CAAC;AAGlG,eAAO,MAAM,UAAU,EAAE,IAgBxB,CAAC"}
1
+ {"version":3,"file":"Signup.d.ts","sourceRoot":"","sources":["../../../src/pages/Signup.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAA+D,MAAM,eAAe,CAAC;AA8HlG,eAAO,MAAM,UAAU,EAAE,IAOxB,CAAC"}
@@ -14,6 +14,29 @@ var __extends = (this && this.__extends) || (function () {
14
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
15
  };
16
16
  })();
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }) : function(o, v) {
31
+ o["default"] = v;
32
+ });
33
+ var __importStar = (this && this.__importStar) || function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
17
40
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
41
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
42
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -50,27 +73,139 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
50
73
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
74
  }
52
75
  };
53
- var __importDefault = (this && this.__importDefault) || function (mod) {
54
- return (mod && mod.__esModule) ? mod : { "default": mod };
55
- };
56
76
  Object.defineProperty(exports, "__esModule", { value: true });
57
77
  exports.signupPage = void 0;
58
- var react_1 = __importDefault(require("react"));
78
+ var react_1 = __importStar(require("react"));
59
79
  var ui_1 = require("@proteinjs/ui");
60
80
  var user_1 = require("@proteinjs/user");
81
+ var material_1 = require("@mui/material");
82
+ var util_1 = require("@proteinjs/util");
83
+ var SignupComponent = function () {
84
+ var _a = (0, react_1.useState)(''), token = _a[0], setToken = _a[1];
85
+ var _b = (0, react_1.useState)(false), isInviteOnly = _b[0], setIsInviteOnly = _b[1];
86
+ var _c = (0, react_1.useState)(false), isInitializing = _c[0], setIsInitializing = _c[1];
87
+ var _d = (0, react_1.useState)(null), initializationError = _d[0], setInitializationError = _d[1];
88
+ var buttons = {
89
+ clear: ui_1.clearButton,
90
+ signup: {
91
+ name: 'Sign up',
92
+ style: {
93
+ color: 'primary',
94
+ variant: 'contained',
95
+ },
96
+ onClick: function (fields, buttons) { return __awaiter(void 0, void 0, void 0, function () {
97
+ var email, _a;
98
+ return __generator(this, function (_b) {
99
+ switch (_b.label) {
100
+ case 0:
101
+ if (!fields.name.field.value) {
102
+ return [2 /*return*/, 'Please enter your name.'];
103
+ }
104
+ email = fields.email.field.value && fields.email.field.value.trim();
105
+ // invited users don't enter an email
106
+ if (!token && (!email || !util_1.emailRegex.test(email))) {
107
+ return [2 /*return*/, 'Please enter a valid email address.'];
108
+ }
109
+ if (!fields.password.field.value) {
110
+ return [2 /*return*/, 'Please enter a password.'];
111
+ }
112
+ _b.label = 1;
113
+ case 1:
114
+ _b.trys.push([1, 3, , 4]);
115
+ return [4 /*yield*/, (0, user_1.getSignupService)().createUser({
116
+ name: fields.name.field.value,
117
+ email: email,
118
+ password: fields.password.field.value,
119
+ }, token)];
120
+ case 2:
121
+ _b.sent();
122
+ return [3 /*break*/, 4];
123
+ case 3:
124
+ _a = _b.sent();
125
+ return [2 /*return*/, 'Sign up failed.'];
126
+ case 4: return [2 /*return*/, "Successfully created your account! Please check your email for an email confirmation."];
127
+ }
128
+ });
129
+ }); },
130
+ },
131
+ };
132
+ (0, react_1.useEffect)(function () {
133
+ var searchParams = new URLSearchParams(window.location.search);
134
+ var inviteToken = searchParams.get('token');
135
+ if (inviteToken) {
136
+ setToken(inviteToken);
137
+ initializeSignup(inviteToken);
138
+ }
139
+ else {
140
+ initializeSignup();
141
+ }
142
+ }, []);
143
+ var initializeSignup = function (token) { return __awaiter(void 0, void 0, void 0, function () {
144
+ var response, error_1;
145
+ return __generator(this, function (_a) {
146
+ switch (_a.label) {
147
+ case 0:
148
+ setIsInitializing(true);
149
+ _a.label = 1;
150
+ case 1:
151
+ _a.trys.push([1, 3, 4, 5]);
152
+ return [4 /*yield*/, (0, user_1.getSignupService)().initializeSignup(token)];
153
+ case 2:
154
+ response = _a.sent();
155
+ if (response.isInviteOnly !== undefined) {
156
+ setIsInviteOnly(response.isInviteOnly);
157
+ }
158
+ if (!response.isReady && response.error) {
159
+ setInitializationError(response.error);
160
+ }
161
+ return [3 /*break*/, 5];
162
+ case 3:
163
+ error_1 = _a.sent();
164
+ setInitializationError('An error occurred while initializing sign up.');
165
+ return [3 /*break*/, 5];
166
+ case 4:
167
+ setIsInitializing(false);
168
+ return [7 /*endfinally*/];
169
+ case 5: return [2 /*return*/];
170
+ }
171
+ });
172
+ }); };
173
+ return (react_1.default.createElement(ui_1.FormPage, null, isInitializing ? (react_1.default.createElement(material_1.Stack, { direction: 'column', spacing: 2, sx: { px: 2, py: 1 } },
174
+ react_1.default.createElement(material_1.Skeleton, { variant: 'text', width: '500px', height: '60px' }),
175
+ react_1.default.createElement(material_1.Skeleton, { variant: 'text', width: '500px', height: '60px' }),
176
+ react_1.default.createElement(material_1.Skeleton, { variant: 'text', width: '500px', height: '60px' }),
177
+ react_1.default.createElement(material_1.Skeleton, { variant: 'text', width: '500px', height: '60px' }),
178
+ react_1.default.createElement(material_1.Stack, { direction: 'row', spacing: 2, justifyContent: 'flex-end' },
179
+ react_1.default.createElement(material_1.Skeleton, { variant: 'text', width: '100px', height: '60px' }),
180
+ react_1.default.createElement(material_1.Skeleton, { variant: 'text', width: '100px', height: '60px' })))) : initializationError ? (react_1.default.createElement(material_1.Stack, { alignItems: 'center', spacing: 3, sx: { p: 4 } },
181
+ react_1.default.createElement(material_1.Typography, { variant: 'h1', gutterBottom: true }, "Sign up is not available"),
182
+ react_1.default.createElement(material_1.Typography, { variant: 'body1', gutterBottom: true }, initializationError),
183
+ react_1.default.createElement(material_1.Button, { variant: 'contained', color: 'primary', href: '/login' }, "Go to login page"))) : (react_1.default.createElement(ui_1.Form, { name: 'Sign Up', createFields: function () { return new SignupFields(); }, fieldLayout: ['name', 'email', 'password', 'confirmPassword'], buttons: buttons, onLoad: function (fields) { return __awaiter(void 0, void 0, void 0, function () {
184
+ return __generator(this, function (_a) {
185
+ fields.token.field.value = token;
186
+ if (token) {
187
+ fields.email.field.accessibility = { hidden: true };
188
+ }
189
+ return [2 /*return*/];
190
+ });
191
+ }); } }))));
192
+ };
61
193
  exports.signupPage = {
62
194
  name: 'Sign Up',
63
- path: 'signup',
195
+ path: user_1.uiRoutes.auth.signup,
64
196
  auth: {
65
197
  public: true,
66
198
  },
67
- component: function () { return (react_1.default.createElement(ui_1.FormPage, null,
68
- react_1.default.createElement(ui_1.Form, { name: 'Sign Up', createFields: function () { return new SignupFields(); }, fieldLayout: ['name', 'email', 'password', 'confirmPassword'], buttons: buttons }))); },
199
+ component: SignupComponent,
69
200
  };
70
201
  var SignupFields = /** @class */ (function (_super) {
71
202
  __extends(SignupFields, _super);
72
203
  function SignupFields() {
73
204
  var _this = _super !== null && _super.apply(this, arguments) || this;
205
+ _this.token = (0, ui_1.textField)({
206
+ name: 'token',
207
+ accessibility: { hidden: true },
208
+ });
74
209
  _this.name = (0, ui_1.textField)({
75
210
  name: 'name',
76
211
  });
@@ -92,46 +227,4 @@ var SignupFields = /** @class */ (function (_super) {
92
227
  };
93
228
  return SignupFields;
94
229
  }(ui_1.Fields));
95
- var buttons = {
96
- clear: ui_1.clearButton,
97
- signup: {
98
- name: 'Sign up',
99
- style: {
100
- color: 'primary',
101
- variant: 'contained',
102
- },
103
- onClick: function (fields, buttons) { return __awaiter(void 0, void 0, void 0, function () {
104
- var response, body;
105
- return __generator(this, function (_a) {
106
- switch (_a.label) {
107
- case 0: return [4 /*yield*/, fetch(user_1.routes.createUser.path, {
108
- method: user_1.routes.createUser.method,
109
- body: JSON.stringify({
110
- name: fields.name.field.value,
111
- email: fields.email.field.value,
112
- password: fields.password.field.value,
113
- }),
114
- redirect: 'follow',
115
- credentials: 'same-origin',
116
- headers: {
117
- 'Content-Type': 'application/json',
118
- },
119
- })];
120
- case 1:
121
- response = _a.sent();
122
- if (response.status != 200) {
123
- throw new Error("Failed to signup, error: ".concat(response.statusText));
124
- }
125
- return [4 /*yield*/, response.json()];
126
- case 2:
127
- body = _a.sent();
128
- if (body.error) {
129
- throw new Error(body.error);
130
- }
131
- return [2 /*return*/, "Successfully created your account! Please check your email for an email confirmation."];
132
- }
133
- });
134
- }); },
135
- },
136
- };
137
230
  //# sourceMappingURL=Signup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Signup.js","sourceRoot":"","sources":["../../../src/pages/Signup.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,oCAAkG;AAClG,wCAAyC;AAE5B,QAAA,UAAU,GAAS;IAC9B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE;QACJ,MAAM,EAAE,IAAI;KACb;IACD,SAAS,EAAE,cAAM,OAAA,CACf,8BAAC,aAAQ;QACP,8BAAC,SAAI,IACH,IAAI,EAAC,SAAS,EACd,YAAY,EAAE,cAAM,OAAA,IAAI,YAAY,EAAE,EAAlB,CAAkB,EACtC,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,EAC7D,OAAO,EAAE,OAAO,GAChB,CACO,CACZ,EATgB,CAShB;CACF,CAAC;AAEF;IAA2B,gCAAM;IAAjC;QAAA,qEAsBC;QAjBC,UAAI,GAAG,IAAA,cAAS,EAAe;YAC7B,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QAEH,WAAK,GAAG,IAAA,cAAS,EAAe;YAC9B,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QAEH,cAAQ,GAAG,IAAA,cAAS,EAAe;YACjC,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,qBAAe,GAAG,IAAA,cAAS,EAAe;YACxC,IAAI,EAAE,iBAAiB;YACvB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;;IACL,CAAC;IArBQ,mBAAM,GAAb;QACE,OAAO,IAAI,YAAY,EAAE,CAAC;IAC5B,CAAC;IAmBH,mBAAC;AAAD,CAAC,AAtBD,CAA2B,WAAM,GAsBhC;AAED,IAAM,OAAO,GAA8B;IACzC,KAAK,EAAE,gBAAW;IAClB,MAAM,EAAE;QACN,IAAI,EAAE,SAAS;QACf,KAAK,EAAE;YACL,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,WAAW;SACrB;QACD,OAAO,EAAE,UAAO,MAAoB,EAAE,OAAkC;;;;4BACrD,qBAAM,KAAK,CAAC,aAAM,CAAC,UAAU,CAAC,IAAI,EAAE;4BACnD,MAAM,EAAE,aAAM,CAAC,UAAU,CAAC,MAAM;4BAChC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;gCAC7B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;gCAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK;6BACtC,CAAC;4BACF,QAAQ,EAAE,QAAQ;4BAClB,WAAW,EAAE,aAAa;4BAC1B,OAAO,EAAE;gCACP,cAAc,EAAE,kBAAkB;6BACnC;yBACF,CAAC,EAAA;;wBAZI,QAAQ,GAAG,SAYf;wBACF,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE;4BAC1B,MAAM,IAAI,KAAK,CAAC,mCAA4B,QAAQ,CAAC,UAAU,CAAE,CAAC,CAAC;yBACpE;wBAEY,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;;wBAA5B,IAAI,GAAG,SAAqB;wBAClC,IAAI,IAAI,CAAC,KAAK,EAAE;4BACd,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yBAC7B;wBAED,sBAAO,uFAAuF,EAAC;;;aAChG;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"Signup.js","sourceRoot":"","sources":["../../../src/pages/Signup.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAmD;AACnD,oCAAkG;AAClG,wCAA6D;AAC7D,0CAAoE;AACpE,wCAA6C;AAE7C,IAAM,eAAe,GAAa;IAC1B,IAAA,KAAoB,IAAA,gBAAQ,EAAC,EAAE,CAAC,EAA/B,KAAK,QAAA,EAAE,QAAQ,QAAgB,CAAC;IACjC,IAAA,KAAkC,IAAA,gBAAQ,EAAU,KAAK,CAAC,EAAzD,YAAY,QAAA,EAAE,eAAe,QAA4B,CAAC;IAC3D,IAAA,KAAsC,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAApD,cAAc,QAAA,EAAE,iBAAiB,QAAmB,CAAC;IACtD,IAAA,KAAgD,IAAA,gBAAQ,EAAgB,IAAI,CAAC,EAA5E,mBAAmB,QAAA,EAAE,sBAAsB,QAAiC,CAAC;IAEpF,IAAM,OAAO,GAA8B;QACzC,KAAK,EAAE,gBAAW;QAClB,MAAM,EAAE;YACN,IAAI,EAAE,SAAS;YACf,KAAK,EAAE;gBACL,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,WAAW;aACrB;YACD,OAAO,EAAE,UAAO,MAAoB,EAAE,OAAkC;;;;;4BACtE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gCAC5B,sBAAO,yBAAyB,EAAC;6BAClC;4BAEK,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;4BAE1E,qCAAqC;4BACrC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,iBAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;gCACjD,sBAAO,qCAAqC,EAAC;6BAC9C;4BAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE;gCAChC,sBAAO,0BAA0B,EAAC;6BACnC;;;;4BAGC,qBAAM,IAAA,uBAAgB,GAAE,CAAC,UAAU,CACjC;oCACE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;oCAC7B,KAAK,OAAA;oCACL,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK;iCACtC,EACD,KAAK,CACN,EAAA;;4BAPD,SAOC,CAAC;;;;4BAEF,sBAAO,iBAAiB,EAAC;gCAG3B,sBAAO,uFAAuF,EAAC;;;iBAChG;SACF;KACF,CAAC;IAEF,IAAA,iBAAS,EAAC;QACR,IAAM,YAAY,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjE,IAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,WAAW,EAAE;YACf,QAAQ,CAAC,WAAW,CAAC,CAAC;YACtB,gBAAgB,CAAC,WAAW,CAAC,CAAC;SAC/B;aAAM;YACL,gBAAgB,EAAE,CAAC;SACpB;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,gBAAgB,GAAG,UAAO,KAAc;;;;;oBAC5C,iBAAiB,CAAC,IAAI,CAAC,CAAC;;;;oBAEL,qBAAM,IAAA,uBAAgB,GAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAA;;oBAA3D,QAAQ,GAAG,SAAgD;oBAEjE,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,EAAE;wBACvC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;qBACxC;oBAED,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,EAAE;wBACvC,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;qBACxC;;;;oBAED,sBAAsB,CAAC,+CAA+C,CAAC,CAAC;;;oBAExE,iBAAiB,CAAC,KAAK,CAAC,CAAC;;;;;SAE5B,CAAC;IAEF,OAAO,CACL,8BAAC,aAAQ,QACN,cAAc,CAAC,CAAC,CAAC,CAChB,8BAAC,gBAAK,IAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;QACxD,8BAAC,mBAAQ,IAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,MAAM,EAAC,MAAM,GAAG;QACvD,8BAAC,mBAAQ,IAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,MAAM,EAAC,MAAM,GAAG;QACvD,8BAAC,mBAAQ,IAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,MAAM,EAAC,MAAM,GAAG;QACvD,8BAAC,mBAAQ,IAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,MAAM,EAAC,MAAM,GAAG;QACvD,8BAAC,gBAAK,IAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAE,CAAC,EAAE,cAAc,EAAC,UAAU;YAC1D,8BAAC,mBAAQ,IAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,MAAM,EAAC,MAAM,GAAG;YACvD,8BAAC,mBAAQ,IAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,MAAM,EAAC,MAAM,GAAG,CACjD,CACF,CACT,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CACxB,8BAAC,gBAAK,IAAC,UAAU,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;QACjD,8BAAC,qBAAU,IAAC,OAAO,EAAC,IAAI,EAAC,YAAY,qCAExB;QACb,8BAAC,qBAAU,IAAC,OAAO,EAAC,OAAO,EAAC,YAAY,UACrC,mBAAmB,CACT;QACb,8BAAC,iBAAM,IAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,QAAQ,uBAEhD,CACH,CACT,CAAC,CAAC,CAAC,CACF,8BAAC,SAAI,IACH,IAAI,EAAC,SAAS,EACd,YAAY,EAAE,cAAM,OAAA,IAAI,YAAY,EAAE,EAAlB,CAAkB,EACtC,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,EAC7D,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,UAAO,MAAM;;gBACnB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;gBACjC,IAAI,KAAK,EAAE;oBACT,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;iBACrD;;;aACF,GACD,CACH,CACQ,CACZ,CAAC;AACJ,CAAC,CAAC;AAEW,QAAA,UAAU,GAAS;IAC9B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,eAAQ,CAAC,IAAI,CAAC,MAAM;IAC1B,IAAI,EAAE;QACJ,MAAM,EAAE,IAAI;KACb;IACD,SAAS,EAAE,eAAe;CAC3B,CAAC;AAEF;IAA2B,gCAAM;IAAjC;QAAA,qEA2BC;QAtBC,WAAK,GAAG,IAAA,cAAS,EAAe;YAC9B,IAAI,EAAE,OAAO;YACb,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SAChC,CAAC,CAAC;QAEH,UAAI,GAAG,IAAA,cAAS,EAAe;YAC7B,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QAEH,WAAK,GAAG,IAAA,cAAS,EAAe;YAC9B,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QAEH,cAAQ,GAAG,IAAA,cAAS,EAAe;YACjC,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,qBAAe,GAAG,IAAA,cAAS,EAAe;YACxC,IAAI,EAAE,iBAAiB;YACvB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;;IACL,CAAC;IA1BQ,mBAAM,GAAb;QACE,OAAO,IAAI,YAAY,EAAE,CAAC;IAC5B,CAAC;IAwBH,mBAAC;AAAD,CAAC,AA3BD,CAA2B,WAAM,GA2BhC"}
@@ -6,6 +6,7 @@ import '@proteinjs/reflection';
6
6
  import '@proteinjs/server-api';
7
7
  import '@proteinjs/ui';
8
8
  import '@proteinjs/user';
9
+ import '@proteinjs/util';
9
10
  import 'moment';
10
11
  import 'react';
11
12
  import 'react-dom';
@@ -13,7 +14,7 @@ import 'react-dom';
13
14
 
14
15
  /** Generate Source Graph */
15
16
 
16
- const sourceGraph = "{\"options\":{\"directed\":true,\"multigraph\":false,\"compound\":false},\"nodes\":[{\"v\":\"/Omit\"},{\"v\":\"@proteinjs/user-ui/forgotPasswordPage\",\"value\":{\"packageName\":\"@proteinjs/user-ui\",\"name\":\"forgotPasswordPage\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/user/packages/ui/src/pages/ForgotPassword.tsx\",\"qualifiedName\":\"@proteinjs/user-ui/forgotPasswordPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/ui/Page\"},{\"v\":\"@proteinjs/user-ui/loginPage\",\"value\":{\"packageName\":\"@proteinjs/user-ui\",\"name\":\"loginPage\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/user/packages/ui/src/pages/Login.tsx\",\"qualifiedName\":\"@proteinjs/user-ui/loginPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/user-ui/passwordResetPage\",\"value\":{\"packageName\":\"@proteinjs/user-ui\",\"name\":\"passwordResetPage\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/user/packages/ui/src/pages/PasswordReset.tsx\",\"qualifiedName\":\"@proteinjs/user-ui/passwordResetPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/user-ui/signupPage\",\"value\":{\"packageName\":\"@proteinjs/user-ui\",\"name\":\"signupPage\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/user/packages/ui/src/pages/Signup.tsx\",\"qualifiedName\":\"@proteinjs/user-ui/signupPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}}],\"edges\":[{\"v\":\"@proteinjs/user-ui/forgotPasswordPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/user-ui/loginPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/user-ui/passwordResetPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/user-ui/signupPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"}]}";
17
+ const sourceGraph = "{\"options\":{\"directed\":true,\"multigraph\":false,\"compound\":false},\"nodes\":[{\"v\":\"/Omit\"},{\"v\":\"@proteinjs/user-ui/forgotPasswordPage\",\"value\":{\"packageName\":\"@proteinjs/user-ui\",\"name\":\"forgotPasswordPage\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/user/packages/ui/src/pages/ForgotPassword.tsx\",\"qualifiedName\":\"@proteinjs/user-ui/forgotPasswordPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/ui/Page\"},{\"v\":\"@proteinjs/user-ui/loginPage\",\"value\":{\"packageName\":\"@proteinjs/user-ui\",\"name\":\"loginPage\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/user/packages/ui/src/pages/Login.tsx\",\"qualifiedName\":\"@proteinjs/user-ui/loginPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/user-ui/passwordResetPage\",\"value\":{\"packageName\":\"@proteinjs/user-ui\",\"name\":\"passwordResetPage\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/user/packages/ui/src/pages/PasswordReset.tsx\",\"qualifiedName\":\"@proteinjs/user-ui/passwordResetPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/user-ui/invitePage\",\"value\":{\"packageName\":\"@proteinjs/user-ui\",\"name\":\"invitePage\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/user/packages/ui/src/pages/SendInvite.tsx\",\"qualifiedName\":\"@proteinjs/user-ui/invitePage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}},{\"v\":\"@proteinjs/user-ui/signupPage\",\"value\":{\"packageName\":\"@proteinjs/user-ui\",\"name\":\"signupPage\",\"filePath\":\"/Users/veronica/Repositories/n3xa-meta-repo/packages/proteinjs/packages/user/packages/ui/src/pages/Signup.tsx\",\"qualifiedName\":\"@proteinjs/user-ui/signupPage\",\"type\":{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":[{\"packageName\":\"@proteinjs/ui\",\"name\":\"Page\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/ui/Page\",\"typeParameters\":[],\"directParents\":null}]},\"isExported\":true,\"isConst\":true,\"sourceType\":0}}],\"edges\":[{\"v\":\"@proteinjs/user-ui/forgotPasswordPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/user-ui/loginPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/user-ui/passwordResetPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/user-ui/invitePage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"},{\"v\":\"@proteinjs/user-ui/signupPage\",\"w\":\"@proteinjs/ui/Page\",\"value\":\"has type\"}]}";
17
18
 
18
19
 
19
20
  /** Generate Source Links */
@@ -21,12 +22,14 @@ const sourceGraph = "{\"options\":{\"directed\":true,\"multigraph\":false,\"comp
21
22
  import { forgotPasswordPage } from '../src/pages/ForgotPassword';
22
23
  import { loginPage } from '../src/pages/Login';
23
24
  import { passwordResetPage } from '../src/pages/PasswordReset';
25
+ import { invitePage } from '../src/pages/SendInvite';
24
26
  import { signupPage } from '../src/pages/Signup';
25
27
 
26
28
  const sourceLinks = {
27
29
  '@proteinjs/user-ui/forgotPasswordPage': forgotPasswordPage,
28
30
  '@proteinjs/user-ui/loginPage': loginPage,
29
31
  '@proteinjs/user-ui/passwordResetPage': passwordResetPage,
32
+ '@proteinjs/user-ui/invitePage': invitePage,
30
33
  '@proteinjs/user-ui/signupPage': signupPage,
31
34
  };
32
35
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proteinjs/user-ui",
3
- "version": "1.0.40",
3
+ "version": "1.0.42",
4
4
  "description": "User ui components",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -23,16 +23,17 @@
23
23
  "dependencies": {
24
24
  "@mui/icons-material": "5.14.11",
25
25
  "@mui/material": "5.14.11",
26
- "@proteinjs/reflection": "1.1.7",
27
- "@proteinjs/server-api": "1.3.5",
28
- "@proteinjs/ui": "2.2.1",
29
- "@proteinjs/user": "^1.0.38",
26
+ "@proteinjs/reflection": "1.1.8",
27
+ "@proteinjs/server-api": "1.4.1",
28
+ "@proteinjs/ui": "2.4.1",
29
+ "@proteinjs/user": "^1.0.40",
30
+ "@proteinjs/util": "1.4.0",
30
31
  "moment": "2.29.4",
31
32
  "react": "18.2.0",
32
33
  "react-dom": "18.2.0"
33
34
  },
34
35
  "devDependencies": {
35
- "@proteinjs/reflection-build": "1.0.22",
36
+ "@proteinjs/reflection-build": "1.0.23",
36
37
  "@types/node": "14.0.13",
37
38
  "@types/react": "18.2.23",
38
39
  "@types/react-dom": "18.2.8",
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Page, PageContainer, PageContainerProps } from '@proteinjs/ui';
3
- import { routes, guestUser, UserAuth, UserRepo } from '@proteinjs/user';
4
- import { loginPath } from './pages/Login';
3
+ import { routes, guestUser, UserAuth, UserRepo, uiRoutes } from '@proteinjs/user';
5
4
 
6
5
  export type AuthenticatedPageContainerProps = Omit<PageContainerProps, 'auth'>;
7
6
 
@@ -28,7 +27,7 @@ export function AuthenticatedPageContainer(props: AuthenticatedPageContainerProp
28
27
 
29
28
  return UserAuth.hasRoles(page.auth?.roles);
30
29
  },
31
- login: loginPath,
30
+ login: uiRoutes.auth.login,
32
31
  logout: async () => {
33
32
  const response = await fetch(routes.logout.path, {
34
33
  method: routes.logout.method,
@@ -44,7 +43,7 @@ export function AuthenticatedPageContainer(props: AuthenticatedPageContainerProp
44
43
 
45
44
  new UserRepo().setUser(guestUser);
46
45
  setIsLoggedIn(false);
47
- return loginPath;
46
+ return uiRoutes.auth.login;
48
47
  },
49
48
  }}
50
49
  {...other}
@@ -1,12 +1,10 @@
1
1
  import React from 'react';
2
2
  import { Page, Form, Fields, textField, FormButtons, FormPage } from '@proteinjs/ui';
3
- import { routes } from '@proteinjs/user';
4
- import { passwordResetPath } from './PasswordReset';
3
+ import { routes, uiRoutes } from '@proteinjs/user';
5
4
 
6
- export const forgotPasswordPath = 'login/forgot-password';
7
5
  export const forgotPasswordPage: Page = {
8
6
  name: 'Forgot Password',
9
- path: forgotPasswordPath,
7
+ path: uiRoutes.auth.forgotPassword,
10
8
  auth: {
11
9
  public: true,
12
10
  },
@@ -44,7 +42,6 @@ const buttons: FormButtons<ForgotPasswordFields> = {
44
42
  method: routes.initiatePasswordReset.method,
45
43
  body: JSON.stringify({
46
44
  email: fields.email.field.value,
47
- resetPath: passwordResetPath,
48
45
  }),
49
46
  redirect: 'follow',
50
47
  credentials: 'same-origin',
@@ -1,11 +1,10 @@
1
1
  import React from 'react';
2
2
  import { Page, Form, Fields, textField, FormButtons, clearButton, FormPage } from '@proteinjs/ui';
3
- import { routes } from '@proteinjs/user';
3
+ import { routes, uiRoutes } from '@proteinjs/user';
4
4
 
5
- export const loginPath = 'login';
6
5
  export const loginPage: Page = {
7
6
  name: 'Login',
8
- path: loginPath,
7
+ path: uiRoutes.auth.login,
9
8
  auth: {
10
9
  public: true,
11
10
  },
@@ -45,7 +44,7 @@ const buttons: FormButtons<LoginFields> = {
45
44
  align: 'left',
46
45
  },
47
46
  redirect: async () => {
48
- return { path: '/login/forgot-password' };
47
+ return { path: `/${uiRoutes.auth.forgotPassword}` };
49
48
  },
50
49
  },
51
50
  clear: clearButton,
@@ -1,9 +1,8 @@
1
1
  import React, { useEffect, useState } from 'react';
2
2
  import { Page, Form, Fields, textField, FormButtons, FormPage } from '@proteinjs/ui';
3
- import { routes } from '@proteinjs/user';
3
+ import { routes, uiRoutes } from '@proteinjs/user';
4
4
  import { Button, Stack, Typography } from '@mui/material';
5
5
 
6
- export const passwordResetPath = 'login/password-reset';
7
6
  const PasswordResetComponent: React.FC = () => {
8
7
  const [token, setToken] = useState('');
9
8
  const [isValidating, setIsValidating] = useState(false);
@@ -130,7 +129,7 @@ const PasswordResetComponent: React.FC = () => {
130
129
 
131
130
  export const passwordResetPage: Page = {
132
131
  name: 'Reset Password',
133
- path: passwordResetPath,
132
+ path: uiRoutes.auth.passwordReset,
134
133
  auth: {
135
134
  public: true,
136
135
  },
@@ -0,0 +1,111 @@
1
+ import React from 'react';
2
+ import { Page, Form, Fields, textField, FormButtons, FormPage } from '@proteinjs/ui';
3
+ import { getSignupService, uiRoutes } from '@proteinjs/user';
4
+ import { emailRegex } from '@proteinjs/util';
5
+ import { Stack } from '@mui/material';
6
+
7
+ export const invitePage: Page = {
8
+ name: 'Send an Invite',
9
+ path: uiRoutes.admin.invite,
10
+ auth: {
11
+ roles: ['admin'],
12
+ },
13
+ component: () => (
14
+ <Stack direction='column' spacing={4} mt={2}>
15
+ <FormPage gridItemProps={{ width: '400px' }}>
16
+ <Form<InviteFields, typeof buttons>
17
+ name='Send an Invite'
18
+ createFields={() => new InviteFields()}
19
+ fieldLayout={['email']}
20
+ buttons={buttons}
21
+ />
22
+ </FormPage>
23
+
24
+ <FormPage gridItemProps={{ width: '400px' }}>
25
+ <Form<RevokeInviteFields, typeof revokeInviteButtons>
26
+ name='Revoke an Invite'
27
+ createFields={() => new RevokeInviteFields()}
28
+ fieldLayout={['email']}
29
+ buttons={revokeInviteButtons}
30
+ />
31
+ </FormPage>
32
+ </Stack>
33
+ ),
34
+ };
35
+
36
+ class InviteFields extends Fields {
37
+ static create() {
38
+ return new InviteFields();
39
+ }
40
+
41
+ email = textField<InviteFields>({
42
+ name: 'email',
43
+ });
44
+ }
45
+
46
+ const buttons: FormButtons<InviteFields> = {
47
+ signup: {
48
+ name: 'Send',
49
+ style: {
50
+ color: 'primary',
51
+ variant: 'contained',
52
+ },
53
+ onClick: async (fields: InviteFields, buttons: FormButtons<InviteFields>) => {
54
+ const email = fields.email.field.value && fields.email.field.value.trim();
55
+
56
+ if (!email) {
57
+ return 'Please enter an email address.';
58
+ }
59
+
60
+ if (!emailRegex.test(email)) {
61
+ return 'Please enter a valid email address.';
62
+ }
63
+
64
+ const response = await getSignupService().sendInvite(email);
65
+ if (response.sent === false) {
66
+ return response.error || 'Failed to send invite.';
67
+ }
68
+
69
+ return `Successfully sent invite to ${email}!`;
70
+ },
71
+ },
72
+ };
73
+
74
+ class RevokeInviteFields extends Fields {
75
+ static create() {
76
+ return new InviteFields();
77
+ }
78
+
79
+ email = textField<InviteFields>({
80
+ name: 'email',
81
+ });
82
+ }
83
+
84
+ const revokeInviteButtons: FormButtons<RevokeInviteFields> = {
85
+ signup: {
86
+ name: 'Revoke',
87
+ style: {
88
+ color: 'primary',
89
+ variant: 'contained',
90
+ },
91
+ onClick: async (fields: RevokeInviteFields, buttons: FormButtons<RevokeInviteFields>) => {
92
+ const email = fields.email.field.value && fields.email.field.value.trim();
93
+
94
+ if (!email) {
95
+ return 'Please enter an email address.';
96
+ }
97
+
98
+ if (!emailRegex.test(email)) {
99
+ return 'Please enter a valid email address.';
100
+ }
101
+
102
+ try {
103
+ await getSignupService().revokeInvite(email);
104
+ } catch {
105
+ return `Revoke invite failed.`;
106
+ }
107
+
108
+ return `Successfully revoked invite to ${email}.`;
109
+ },
110
+ },
111
+ };
@@ -1,23 +1,137 @@
1
- import React from 'react';
1
+ import React, { useEffect, useState } from 'react';
2
2
  import { Page, Form, Fields, textField, FormButtons, clearButton, FormPage } from '@proteinjs/ui';
3
- import { routes } from '@proteinjs/user';
3
+ import { getSignupService, uiRoutes } from '@proteinjs/user';
4
+ import { Button, Skeleton, Stack, Typography } from '@mui/material';
5
+ import { emailRegex } from '@proteinjs/util';
6
+
7
+ const SignupComponent: React.FC = () => {
8
+ const [token, setToken] = useState('');
9
+ const [isInviteOnly, setIsInviteOnly] = useState<boolean>(false);
10
+ const [isInitializing, setIsInitializing] = useState(false);
11
+ const [initializationError, setInitializationError] = useState<string | null>(null);
12
+
13
+ const buttons: FormButtons<SignupFields> = {
14
+ clear: clearButton,
15
+ signup: {
16
+ name: 'Sign up',
17
+ style: {
18
+ color: 'primary',
19
+ variant: 'contained',
20
+ },
21
+ onClick: async (fields: SignupFields, buttons: FormButtons<SignupFields>) => {
22
+ if (!fields.name.field.value) {
23
+ return 'Please enter your name.';
24
+ }
25
+
26
+ const email = fields.email.field.value && fields.email.field.value.trim();
27
+
28
+ // invited users don't enter an email
29
+ if (!token && (!email || !emailRegex.test(email))) {
30
+ return 'Please enter a valid email address.';
31
+ }
32
+
33
+ if (!fields.password.field.value) {
34
+ return 'Please enter a password.';
35
+ }
36
+
37
+ try {
38
+ await getSignupService().createUser(
39
+ {
40
+ name: fields.name.field.value,
41
+ email,
42
+ password: fields.password.field.value,
43
+ },
44
+ token
45
+ );
46
+ } catch {
47
+ return 'Sign up failed.';
48
+ }
49
+
50
+ return `Successfully created your account! Please check your email for an email confirmation.`;
51
+ },
52
+ },
53
+ };
54
+
55
+ useEffect(() => {
56
+ const searchParams = new URLSearchParams(window.location.search);
57
+ const inviteToken = searchParams.get('token');
58
+ if (inviteToken) {
59
+ setToken(inviteToken);
60
+ initializeSignup(inviteToken);
61
+ } else {
62
+ initializeSignup();
63
+ }
64
+ }, []);
65
+
66
+ const initializeSignup = async (token?: string) => {
67
+ setIsInitializing(true);
68
+ try {
69
+ const response = await getSignupService().initializeSignup(token);
70
+
71
+ if (response.isInviteOnly !== undefined) {
72
+ setIsInviteOnly(response.isInviteOnly);
73
+ }
74
+
75
+ if (!response.isReady && response.error) {
76
+ setInitializationError(response.error);
77
+ }
78
+ } catch (error) {
79
+ setInitializationError('An error occurred while initializing sign up.');
80
+ } finally {
81
+ setIsInitializing(false);
82
+ }
83
+ };
84
+
85
+ return (
86
+ <FormPage>
87
+ {isInitializing ? (
88
+ <Stack direction='column' spacing={2} sx={{ px: 2, py: 1 }}>
89
+ <Skeleton variant='text' width='500px' height='60px' />
90
+ <Skeleton variant='text' width='500px' height='60px' />
91
+ <Skeleton variant='text' width='500px' height='60px' />
92
+ <Skeleton variant='text' width='500px' height='60px' />
93
+ <Stack direction='row' spacing={2} justifyContent='flex-end'>
94
+ <Skeleton variant='text' width='100px' height='60px' />
95
+ <Skeleton variant='text' width='100px' height='60px' />
96
+ </Stack>
97
+ </Stack>
98
+ ) : initializationError ? (
99
+ <Stack alignItems='center' spacing={3} sx={{ p: 4 }}>
100
+ <Typography variant='h1' gutterBottom>
101
+ Sign up is not available
102
+ </Typography>
103
+ <Typography variant='body1' gutterBottom>
104
+ {initializationError}
105
+ </Typography>
106
+ <Button variant='contained' color='primary' href='/login'>
107
+ Go to login page
108
+ </Button>
109
+ </Stack>
110
+ ) : (
111
+ <Form<SignupFields, typeof buttons>
112
+ name='Sign Up'
113
+ createFields={() => new SignupFields()}
114
+ fieldLayout={['name', 'email', 'password', 'confirmPassword']}
115
+ buttons={buttons}
116
+ onLoad={async (fields) => {
117
+ fields.token.field.value = token;
118
+ if (token) {
119
+ fields.email.field.accessibility = { hidden: true };
120
+ }
121
+ }}
122
+ />
123
+ )}
124
+ </FormPage>
125
+ );
126
+ };
4
127
 
5
128
  export const signupPage: Page = {
6
129
  name: 'Sign Up',
7
- path: 'signup',
130
+ path: uiRoutes.auth.signup,
8
131
  auth: {
9
132
  public: true,
10
133
  },
11
- component: () => (
12
- <FormPage>
13
- <Form<SignupFields, typeof buttons>
14
- name='Sign Up'
15
- createFields={() => new SignupFields()}
16
- fieldLayout={['name', 'email', 'password', 'confirmPassword']}
17
- buttons={buttons}
18
- />
19
- </FormPage>
20
- ),
134
+ component: SignupComponent,
21
135
  };
22
136
 
23
137
  class SignupFields extends Fields {
@@ -25,6 +139,11 @@ class SignupFields extends Fields {
25
139
  return new SignupFields();
26
140
  }
27
141
 
142
+ token = textField<SignupFields>({
143
+ name: 'token',
144
+ accessibility: { hidden: true },
145
+ });
146
+
28
147
  name = textField<SignupFields>({
29
148
  name: 'name',
30
149
  });
@@ -43,39 +162,3 @@ class SignupFields extends Fields {
43
162
  isPassword: true,
44
163
  });
45
164
  }
46
-
47
- const buttons: FormButtons<SignupFields> = {
48
- clear: clearButton,
49
- signup: {
50
- name: 'Sign up',
51
- style: {
52
- color: 'primary',
53
- variant: 'contained',
54
- },
55
- onClick: async (fields: SignupFields, buttons: FormButtons<SignupFields>) => {
56
- const response = await fetch(routes.createUser.path, {
57
- method: routes.createUser.method,
58
- body: JSON.stringify({
59
- name: fields.name.field.value,
60
- email: fields.email.field.value,
61
- password: fields.password.field.value,
62
- }),
63
- redirect: 'follow',
64
- credentials: 'same-origin',
65
- headers: {
66
- 'Content-Type': 'application/json',
67
- },
68
- });
69
- if (response.status != 200) {
70
- throw new Error(`Failed to signup, error: ${response.statusText}`);
71
- }
72
-
73
- const body = await response.json();
74
- if (body.error) {
75
- throw new Error(body.error);
76
- }
77
-
78
- return `Successfully created your account! Please check your email for an email confirmation.`;
79
- },
80
- },
81
- };