@nocobase/plugin-auth 1.7.0-beta.9 → 1.8.0-alpha.1

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.
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ (self.webpackChunk_nocobase_plugin_auth=self.webpackChunk_nocobase_plugin_auth||[]).push([["645"],{625:function(e,t,n){"use strict";n.r(t),n.d(t,{TokenPolicySettings:function(){return I}});var r,o=n(156),i=n.n(o),a=n(772),s=n(721),u=n(875),c=n(584),l=n(748),f=n(505),m=n(563),p=n(83),d=n.n(p),h="token-policy-config",y="tokenControlConfig";function b(e,t,n,r,o,i,a){try{var s=e[i](a),u=s.value}catch(e){n(e);return}s.done?t(u):Promise.resolve(u).then(r,o)}function v(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function a(e){b(i,r,o,a,s,"next",e)}function s(e){b(i,r,o,a,s,"throw",e)}a(void 0)})}}function g(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function w(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){var u=[i,s];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var k="useSubmitActionProps",x="useEditForm",O=(g(r={},x,function(){var e=(0,a.useAPIClient)(),t=(0,o.useMemo)(function(){return(0,m.createForm)()},[]);return(0,o.useEffect)(function(){var n;(n=v(function(){var n,r;return w(this,function(o){switch(o.label){case 0:return o.trys.push([0,2,,3]),[4,e.resource(y).get({filterByTk:h})];case 1:return(null==(r=o.sent().data)||null==(n=r.data)?void 0:n.config)&&t.setValues(r.data.config),[3,3];case 2:return console.error(o.sent()),[3,3];case 3:return[2]}})}),function(){return n.apply(this,arguments)})()},[t,e]),{form:t}}),g(r,k,function(){var e=s.App.useApp().message,t=(0,a.useAPIClient)(),n=(0,f.useForm)(),r=(0,l.o$)().t;return{type:"primary",onClick:function(){return v(function(){var o,i,a,s;return w(this,function(u){switch(u.label){case 0:if(n.clearErrors("*"),i=(o=n.values).tokenExpirationTime,a=o.sessionExpirationTime,o.expiredTokenRenewLimit,d()(i)>=d()(a))return n.setFieldState("tokenExpirationTime",function(e){e.feedbacks=[{type:"error",code:"ValidateError",messages:[r("Token validity period must be less than session validity period!")]}]}),[2];return[4,n.submit()];case 1:return u.sent(),[4,t.resource(y).update({values:{config:n.values},filterByTk:h})];case 2:return(s=u.sent())&&200===s.status&&e.success(r("Saved successfully!")),[2]}})})()}}}),r);function E(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var T=s.Select.Option,j=(0,f.connect)(function(e){var t,n=(0,l.o$)().t,r=e.value,a=e.onChange,u=e.minNum,c=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["value","onChange","minNum"]),f=r?r.match(/^(\d*)([a-zA-Z]*)$/):null;(0,o.useEffect)(function(){f||a("10m")},[f,a]);var m=(t=f?[parseInt(f[1]),f[2]]:[10,"m"],function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,s=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(i.push(n.value),i.length!==t);a=!0);}catch(e){s=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(s)throw r}}return i}}(t,2)||function(e,t){if(e){if("string"==typeof e)return E(e,2);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return E(e,t)}}(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),p=m[0],d=m[1],h=i().createElement(s.Select,{value:d,onChange:function(e){return a("".concat(p).concat(e))},style:{width:120}},i().createElement(T,{value:"m"},n("Minutes")),i().createElement(T,{value:"h"},n("Hours")),i().createElement(T,{value:"d"},n("Days")));return i().createElement(s.InputNumber,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){S(e,t,n[t])})}return e}({value:p,addonAfter:h,min:void 0===u?1:u,onChange:function(e){return a("".concat(null!=e?e:1).concat(d))}},c))},(0,f.mapProps)({onInput:"onChange"})),A="InputTime",P=S({},A,j),C={name:(0,u.uid)(),"x-component":"FormV2","x-use-component-props":x,type:"object",properties:{sessionExpirationTime:{type:"string",title:"{{t('Session validity period')}}","x-decorator":"FormItem","x-component":A,required:!0,description:(0,c.tval)("The maximum valid time for each user login. During the session validity, the Token will be automatically updated. After the timeout, the user is required to log in again.")},tokenExpirationTime:{type:"string",title:"{{t('Token validity period')}}","x-decorator":"FormItem","x-component":A,required:!0,description:(0,c.tval)("The validity period of each issued API Token. After the Token expires, if it is within the session validity period and has not exceeded the refresh limit, the server will automatically issue a new Token to maintain the user session, otherwise the user is required to log in again. (Each Token can only be refreshed once)")},expiredTokenRenewLimit:{type:"string",title:"{{t('Expired token refresh limit')}}","x-decorator":"FormItem","x-component":A,"x-component-props":{minNum:0},required:!0,description:(0,c.tval)("The maximum time limit allowed for refreshing a Token after it expires. After this time limit, the token cannot be automatically renewed, and the user needs to log in again.")},footer:{type:"void","x-component":"ActionBar","x-component-props":{layout:"one-column"},properties:{submit:{title:'{{t("Submit")}}',"x-component":"Action","x-use-component-props":k}}}}},I=function(){var e=(0,l.o$)().t;return i().createElement(s.Card,{bordered:!1},i().createElement(a.SchemaComponent,{schema:C,scope:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({t:e},O),components:P}))}},83:function(e){function t(e,t,n,r){return Math.round(e/n)+" "+r+(t>=1.5*n?"s":"")}e.exports=function(e,n){n=n||{};var r,o,i,a,s=typeof e;if("string"===s&&e.length>0){var u=e;if(!((u=String(u)).length>100)){var c=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(u);if(c){var l=parseFloat(c[1]);switch((c[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*l;case"weeks":case"week":case"w":return 6048e5*l;case"days":case"day":case"d":return 864e5*l;case"hours":case"hour":case"hrs":case"hr":case"h":return 36e5*l;case"minutes":case"minute":case"mins":case"min":case"m":return 6e4*l;case"seconds":case"second":case"secs":case"sec":case"s":return 1e3*l;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return l;default:break}}}return}if("number"===s&&isFinite(e)){return n.long?(o=Math.abs(r=e))>=864e5?t(r,o,864e5,"day"):o>=36e5?t(r,o,36e5,"hour"):o>=6e4?t(r,o,6e4,"minute"):o>=1e3?t(r,o,1e3,"second"):r+" ms":(a=Math.abs(i=e))>=864e5?Math.round(i/864e5)+"d":a>=36e5?Math.round(i/36e5)+"h":a>=6e4?Math.round(i/6e4)+"m":a>=1e3?Math.round(i/1e3)+"s":i+"ms"}throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}}}]);
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ "use strict";(self.webpackChunk_nocobase_plugin_auth=self.webpackChunk_nocobase_plugin_auth||[]).push([["847"],{958:function(e,t,n){n.r(t),n.d(t,{Options:function(){return E},useRedirect:function(){return m},useSignUp:function(){return P},useSignIn:function(){return d},SignInForm:function(){return b},SignUpForm:function(){return O}});var r=n(772),o=n(156),i=n.n(o),a=n(748),s=n(128),l=n(505),u=n(581);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function p(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){n(e);return}s.done?t(l):Promise.resolve(l).then(r,o)}function m(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];var e,t=(0,s.useNavigate)(),n=(e=(0,s.useSearchParams)(),function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,s=!1;try{for(o=o.call(e);!(a=(n=o.next()).done)&&(i.push(n.value),i.length!==t);a=!0);}catch(e){s=!0,r=e}finally{try{a||null==o.return||o.return()}finally{if(s)throw r}}return i}}(e,1)||function(e,t){if(e){if("string"==typeof e)return c(e,1);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c(e,t)}}(e,1)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];return(0,o.useCallback)(function(){t(n.get("redirect")||"/admin",{replace:!0})},[t,n])}var d=function(e){var t=(0,l.useForm)(),n=(0,r.useAPIClient)(),o=m(),i=(0,r.useCurrentUserContext)().refreshAsync;return{run:function(){var r;return(r=function(){return function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){var l=[i,s];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return a.label++,{value:l[1],done:!1};case 5:a.label++,r=l[1],l=[0];continue;case 7:l=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){a=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){a.label=l[1];break}if(6===l[0]&&a.label<o[1]){a.label=o[1],o=l;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(l);break}o[2]&&a.ops.pop(),a.trys.pop();continue}l=t.call(e,a)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(r){switch(r.label){case 0:return[4,t.submit()];case 1:return r.sent(),[4,n.auth.signIn(t.values,e)];case 2:return r.sent(),[4,i()];case 3:return r.sent(),o(),[2]}})},function(){var e=this,t=arguments;return new Promise(function(n,o){var i=r.apply(e,t);function a(e){p(i,n,o,a,s,"next",e)}function s(e){p(i,n,o,a,s,"throw",e)}a(void 0)})})()}}},f=function(e){var t=e.showForgotPassword;return{type:"object",name:"passwordForm","x-component":"FormV2",properties:{account:{type:"string","x-component":"Input","x-validator":'{{(value) => {\n if (!value) {\n return t("Please enter your username or email");\n }\n if (value.includes(\'@\')) {\n if (!/^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$/.test(value)) {\n return t("Please enter a valid email");\n }\n } else {\n return /^[^@.<>"\'/]{1,50}$/.test(value) || t("Please enter a valid username");\n }\n }}}',"x-decorator":"FormItem","x-component-props":{placeholder:'{{t("Username/Email")}}',style:{}}},password:{type:"string","x-component":"Password",required:!0,"x-decorator":"FormItem","x-component-props":{placeholder:'{{t("Password")}}',style:{},showForgotPassword:t}},actions:{type:"void","x-component":"div",properties:{submit:{title:'{{t("Sign in")}}',type:"void","x-component":"Action","x-component-props":{htmlType:"submit",block:!0,type:"primary",useAction:"{{ useBasicSignIn }}",style:{width:"100%"}}}}},links:{type:"void","x-component":"div","x-component-props":{style:{display:"flex",justifyContent:"space-between"}},properties:{signUp:{type:"void","x-component":"Link","x-component-props":{to:"{{ signUpLink }}"},"x-content":'{{t("Create an account")}}',"x-visible":"{{ allowSignUp }}"},forgotPassword:{type:"void","x-component":"Link","x-component-props":{to:'{{"/forgot-password?name=" + authenticator.name}}'},"x-content":'{{t("Forgot password")}}',"x-visible":t}}}}}},b=function(e){var t=(0,a.o$)().t,o=e.authenticator,s=o.authType,l=o.name,c=o.options,p=!!(0,r.useLazy)(function(){return u("imported_-1ja1ffa_component",n.e("257").then(n.bind(n,852)))},"useSignUpForms")()[s]&&null!=c&&!!c.allowSignUp,m="/signup?name=".concat(l);return i().createElement(r.SchemaComponent,{schema:f({showForgotPassword:!!(null==c?void 0:c.enableResetPassword)}),scope:{useBasicSignIn:function(){return d(l)},allowSignUp:p,signUpLink:m,t:t,authenticator:o}})},y=n(875),v=n(721),h=n(238),x=n(446);function g(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){n(e);return}s.done?t(l):Promise.resolve(l).then(r,o)}function w(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function S(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}var P=function(e){var t=(0,s.useNavigate)(),n=(0,l.useForm)(),o=(0,r.useAPIClient)(),i=(0,h.useTranslation)().t;return{run:function(){var r;return(r=function(){var r;return function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){var l=[i,s];if(n)throw TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return a.label++,{value:l[1],done:!1};case 5:a.label++,r=l[1],l=[0];continue;case 7:l=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){a=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){a.label=l[1];break}if(6===l[0]&&a.label<o[1]){a.label=o[1],o=l;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(l);break}o[2]&&a.ops.pop(),a.trys.pop();continue}l=t.call(e,a)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}(this,function(a){switch(a.label){case 0:return[4,n.submit()];case 1:return a.sent(),[4,o.auth.signUp(n.values,null==e?void 0:e.authenticator)];case 2:return a.sent(),v.message.success((null==e||null==(r=e.message)?void 0:r.success)||i("Sign up successfully, and automatically jump to the sign in page")),setTimeout(function(){t("/signin")},2e3),[2]}})},function(){var e=this,t=arguments;return new Promise(function(n,o){var i=r.apply(e,t);function a(e){g(i,n,o,a,s,"next",e)}function s(e){g(i,n,o,a,s,"throw",e)}a(void 0)})})()}}},O=function(e){var t=e.authenticatorName,n=(0,a.o$)().t,u=(0,h.useTranslation)("lm-collections").t,c=(0,x.u)(t).options,p=c.signupForm,m=(0,o.useMemo)(function(){return p.filter(function(e){return e.show}).reduce(function(e,t){var r=S(w({},t.uiSchema),{title:t.uiSchema.title?u(l.Schema.compile(t.uiSchema.title,{t:n})):""});return e[t.field]=S(w({},r),{required:t.required,"x-decorator":"FormItem"}),e},{})},[p]);if(!(null==c?void 0:c.allowSignUp))return i().createElement(s.Navigate,{to:"/not-found",replace:!0});var d={type:"object",name:(0,y.uid)(),"x-component":"FormV2",properties:S(w({},m),{password:{type:"string",required:!0,title:'{{t("Password")}}',"x-component":"Password","x-decorator":"FormItem","x-validator":{password:!0},"x-component-props":{checkStrength:!0,style:{}},"x-reactions":[{dependencies:[".confirm_password"],fulfill:{state:{selfErrors:'{{$deps[0] && $self.value && $self.value !== $deps[0] ? t("Password mismatch") : ""}}'}}}]},confirm_password:{type:"string",required:!0,"x-component":"Password","x-decorator":"FormItem",title:'{{t("Confirm password")}}',"x-validator":{password:!0},"x-component-props":{style:{}},"x-reactions":[{dependencies:[".password"],fulfill:{state:{selfErrors:'{{$deps[0] && $self.value && $self.value !== $deps[0] ? t("Password mismatch") : ""}}'}}}]},actions:{type:"void","x-component":"div",properties:{submit:{title:'{{t("Sign up")}}',type:"void","x-component":"Action","x-component-props":{block:!0,type:"primary",htmlType:"submit",useAction:"{{ useBasicSignUp }}",style:{width:"100%"}}}}},link:{type:"void","x-component":"div",properties:{link:{type:"void","x-component":"Link","x-component-props":{to:"/signin"},"x-content":'{{t("Log in with an existing account")}}'}}}})};return i().createElement(r.SchemaComponent,{schema:d,scope:{useBasicSignUp:function(){return P({authenticator:t})},t:n}})},j=n(632);function F(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function C(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function T(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){C(e,t,n[t])})}return e}function k(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function A(e){return function(e){if(Array.isArray(e))return F(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return F(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return F(e,t)}}(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var I=function(){var e=(0,r.useRecord)(),t=(0,r.useCollectionManager)().getCollection("users").fields.filter(function(e){var t;return!e.hidden&&!e.target&&e.interface&&!(null==(t=e.uiSchema)?void 0:t["x-read-pretty"])}),n=t.map(function(e){var t;return{value:e.name,label:null==(t=e.uiSchema)?void 0:t.title}}),s=(0,o.useMemo)(function(){var n=((null==(s=e.options)||null==(a=s.public)?void 0:a.signupForm)||[]).filter(function(e){return t.find(function(t){return t.name===e.field})}),r=!0,o=!1,i=void 0;try{for(var a,s,l,u=t[Symbol.iterator]();!(r=(l=u.next()).done);r=!0)!function(){var e=l.value;n.find(function(t){return t.field===e.name})||n.push({field:e.name,show:"username"===e.name,required:"username"===e.name})}()}catch(e){o=!0,i=e}finally{try{r||null==u.return||u.return()}finally{if(o)throw i}}return n},[t,e]);return(0,o.useEffect)(function(){var t;e.options=k(T({},e.options),{public:k(T({},null==(t=e.options)?void 0:t.public),{signupForm:s})})},[e,s]),i().createElement(r.SchemaComponent,{components:{ArrayTable:j.ArrayTable},schema:{type:"void",properties:{"public.signupForm":{title:'{{t("Sign up form")}}',type:"array","x-decorator":"FormItem","x-component":"ArrayTable","x-component-props":{bordered:!1},"x-validator":"{{ (value) => {\n const check = value?.some((item) => ['username', 'email'].includes(item.field) && item.show && item.required);\n if (!check) {\n return t('At least one of the username or email fields is required');\n }\n} }}",default:s,items:{type:"object","x-decorator":"ArrayItems.Item",properties:{column0:{type:"void","x-component":"ArrayTable.Column","x-component-props":{width:20,align:"center"},properties:{sort:{type:"void","x-component":"ArrayTable.SortHandle"}}},column1:{type:"void","x-component":"ArrayTable.Column","x-component-props":{width:100,title:(0,a.KQ)("Field")},properties:{field:{type:"string","x-decorator":"FormItem","x-component":"Select",enum:n,"x-read-pretty":!0}}},column2:{type:"void","x-component":"ArrayTable.Column","x-component-props":{width:80,title:(0,a.KQ)("Show")},properties:{show:{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox","x-reactions":{dependencies:[".required"],fulfill:{state:{value:"{{ $deps[0] || $self.value }}"}}}}}},column3:{type:"void","x-component":"ArrayTable.Column","x-component-props":{width:80,title:(0,a.KQ)("Required")},properties:{required:{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox","x-reactions":{dependencies:[".show"],fulfill:{state:{value:"{{ !$deps[0] ? false : $self.value }}"}}}}}}}}}}}})},$=function(){var e=(0,a.o$)().t;return[(0,r.useGlobalVariable)("$env"),(0,r.useCurrentUserVariable)({maxDepth:1}).currentUserSettings,(0,r.useSystemSettingsVariable)().systemSettings,{value:"$resetLink",label:e("Reset password link")},{value:"$resetLinkExpiration",label:e("Reset link expiration (minutes)")}].filter(Boolean)},E=function(){var e=(0,a.o$)().t,t=$(),n=i().createElement("span",null,e("No notification channels found. Please "),i().createElement(s.Link,{to:"/admin/settings/notification-manager/channels"},e("add one first")),".");return i().createElement(r.SchemaComponent,{scope:{t:e},components:{Alert:v.Alert,SignupFormSettings:I,FormTab:j.FormTab},schema:{type:"object",properties:{notice:{type:"void","x-decorator":"FormItem","x-component":"Alert","x-component-props":{showIcon:!0,message:'{{t("The authentication allows users to sign in via username or email.")}}'}},collapse:{type:"void","x-component":"FormTab",properties:{basic:{type:"void","x-component":"FormTab.TabPane","x-component-props":{tab:(0,a.KQ)("Sign up settings")},properties:C({"public.allowSignUp":{"x-decorator":"FormItem",type:"boolean",title:'{{t("Allow to sign up")}}',"x-component":"Checkbox",default:!0}},(0,y.uid)(),{type:"void","x-component":"SignupFormSettings"})},forgetPassword:{type:"void","x-component":"FormTab.TabPane","x-component-props":{tab:(0,a.KQ)("Forgot password")},properties:{"public.enableResetPassword":{"x-decorator":"FormItem",type:"boolean",title:'{{t("Enable forget password")}}',"x-component":"Checkbox",default:!1},divider1:{type:"void","x-component":function(){return i().createElement(v.Divider,{orientation:"left",orientationMargin:"0"},e("1. Select notification channel"))},"x-reactions":[{dependencies:[".public.enableResetPassword"],fulfill:{state:{visible:"{{$deps[0]}}"}}}]},notificationChannel:{type:"string",title:'{{t("Notification channel (Email)")}}',required:!0,"x-decorator":"FormItem","x-component":"RemoteSelect","x-component-props":{multiple:!1,manual:!1,fieldNames:{label:"title",value:"name"},service:{resource:"notificationChannels",action:"list",params:{filter:{notificationType:"email"}}},notFoundContent:n},"x-reactions":[{dependencies:[".public.enableResetPassword"],fulfill:{state:{visible:"{{$deps[0]}}"}}}],description:'{{t("The notification channel used to send the reset password email, only support email channel")}}'},divider2:{type:"void","x-component":function(){return i().createElement(v.Divider,{orientation:"left",orientationMargin:"0"},e("2. Configure reset email"))},"x-reactions":[{dependencies:[".public.enableResetPassword"],fulfill:{state:{visible:"{{$deps[0]}}"}}}]},emailSubject:{type:"string",required:!0,title:'{{t("Subject")}}',"x-decorator":"FormItem","x-component":"Variable.TextArea","x-component-props":{scope:A(t)},"x-reactions":[{dependencies:[".public.enableResetPassword"],fulfill:{state:{visible:"{{$deps[0]}}",initialValue:'{{t("defaultResetPasswordEmailSubject")}}'}}}],default:'{{t("defaultResetPasswordEmailSubject")}}'},emailContentType:{type:"string",title:'{{t("Content type")}}',required:!0,"x-decorator":"FormItem","x-component":"Radio.Group",enum:[{label:"HTML",value:"html"},{label:'{{t("Plain text")}}',value:"text"}],default:"html","x-reactions":[{dependencies:[".public.enableResetPassword"],fulfill:{state:{visible:"{{$deps[0]}}",initialValue:"html"}}}]},emailContentHTML:{type:"string",required:!0,title:'{{t("Content")}}',"x-decorator":"FormItem","x-component":"Variable.RawTextArea","x-component-props":{scope:A(t),placeholder:"Hi,",autoSize:{minRows:10}},"x-reactions":[{dependencies:[".public.enableResetPassword",".emailContentType"],fulfill:{state:{visible:'{{$deps[0] && $deps[1] === "html"}}',initialValue:'{{t("defaultResetPasswordEmailContentHTML")}}'}}}],default:'{{t("defaultResetPasswordEmailContentHTML")}}'},emailContentText:{type:"string",required:!0,title:'{{t("Content")}}',"x-decorator":"FormItem","x-component":"Variable.RawTextArea","x-component-props":{scope:A(t),autoSize:{minRows:10}},"x-reactions":[{dependencies:[".public.enableResetPassword",".emailContentType"],fulfill:{state:{visible:'{{$deps[0] && $deps[1] === "text"}}',initialValue:'{{t("defaultResetPasswordEmailContentText")}}'}}}],default:'{{t("defaultResetPasswordEmailContentText")}}'},resetTokenExpiresIn:{type:"number",title:'{{t("Reset link expiration")}}',"x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{suffix:e("Minutes"),style:{width:"100%"}},default:120,required:!0,"x-reactions":[{dependencies:[".public.enableResetPassword"],fulfill:{state:{visible:"{{$deps[0]}}",initialValue:120}}}]}}}}}}}})}}}]);
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ "use strict";(self.webpackChunk_nocobase_plugin_auth=self.webpackChunk_nocobase_plugin_auth||[]).push([["286"],{215:function(e,t,n){n.r(t),n.d(t,{Authenticator:function(){return V},useUpdateAction:function(){return _},useCreateAction:function(){return R}});var o=n(772),r=n(721),i=n(156),c=n.n(i),a=n(875),u=n(238),l=(0,i.createContext)({type:""});l.displayName="AuthTypeContext";var s=(0,i.createContext)({types:[]});function p(e,t,n,o,r,i,c){try{var a=e[i](c),u=a.value}catch(e){n(e);return}a.done?t(u):Promise.resolve(u).then(o,r)}s.displayName="AuthTypesContext";var m={name:"authenticators",sortable:!0,fields:[{name:"id",type:"string",interface:"id"},{interface:"input",type:"string",name:"name",uiSchema:{type:"string",title:'{{t("Auth UID")}}',"x-component":"Input","x-validator":function(e){return/^[a-zA-Z0-9_-]+$/.test(e)?"":o.i18n.t("a-z, A-Z, 0-9, _, -")},required:!0}},{interface:"input",type:"string",name:"authType",uiSchema:{type:"string",title:'{{t("Auth Type")}}',"x-component":"Select",dataSource:"{{ types }}",required:!0}},{interface:"input",type:"string",name:"title",uiSchema:{type:"string",title:'{{t("Title")}}',"x-component":"Input"}},{interface:"textarea",type:"string",name:"description",uiSchema:{type:"string",title:'{{t("Description")}}',"x-component":"Input"}},{type:"boolean",name:"enabled",uiSchema:{type:"boolean",title:'{{t("Enabled")}}',"x-component":"Checkbox"}}]},y={type:"object",properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:function(e){var t,n,r=(0,o.useActionContext)(),c=(0,i.useContext)(l).type;return(0,o.useRequest)(function(){return Promise.resolve({data:{name:"s_".concat((0,a.uid)()),authType:c}})},(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),o.forEach(function(t){var o;o=n[t],t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o})}return e}({},e),n=n={refreshDeps:[r.visible]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n.push.apply(n,o)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}},title:'{{t("Add new")}}',properties:{name:{"x-component":"CollectionField","x-decorator":"FormItem"},authType:{"x-component":"CollectionField","x-decorator":"FormItem","x-component-props":{options:"{{ types }}"}},title:{"x-component":"CollectionField","x-decorator":"FormItem"},description:{"x-component":"CollectionField","x-decorator":"FormItem"},enabled:{"x-component":"CollectionField","x-decorator":"FormItem"},options:{type:"object","x-component":"Options"},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useCreateAction }}"}}}}}}}},d={type:"void",name:"authenticators","x-decorator":"ResourceActionProvider","x-decorator-props":{collection:m,resourceName:"authenticators",dragSort:!0,request:{resource:"authenticators",action:"list",params:{pageSize:50,sort:"sort",appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection:m},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{delete:{type:"void",title:'{{t("Delete")}}',"x-component":"Action","x-component-props":{icon:"DeleteOutlined",useAction:"{{ cm.useBulkDestroyAction }}",confirm:{title:"{{t('Delete')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},create:{type:"void",title:'{{t("Add new")}}',"x-component":"AddNew","x-component-props":{type:"primary"}}}},table:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"id",rowSelection:{type:"checkbox"},useDataSource:"{{ cm.useDataSourceFromRAC }}",useAction:function(){var e=(0,o.useAPIClient)(),t=(0,u.useTranslation)().t;return{move:function(n,o){var i;return(i=function(){return function(e,t){var n,o,r,i,c={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){var u=[i,a];if(n)throw TypeError("Generator is already executing.");for(;c;)try{if(n=1,o&&(r=2&u[0]?o.return:u[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,u[1])).done)return r;switch(o=0,r&&(u=[2&u[0],r.value]),u[0]){case 0:case 1:r=u;break;case 4:return c.label++,{value:u[1],done:!1};case 5:c.label++,o=u[1],u=[0];continue;case 7:u=c.ops.pop(),c.trys.pop();continue;default:if(!(r=(r=c.trys).length>0&&r[r.length-1])&&(6===u[0]||2===u[0])){c=0;continue}if(3===u[0]&&(!r||u[1]>r[0]&&u[1]<r[3])){c.label=u[1];break}if(6===u[0]&&c.label<r[1]){c.label=r[1],r=u;break}if(r&&c.label<r[2]){c.label=r[2],c.ops.push(u);break}r[2]&&c.ops.pop(),c.trys.pop();continue}u=t.call(e,c)}catch(e){u=[6,e],o=0}finally{n=r=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(i){switch(i.label){case 0:return[4,e.resource("authenticators").move({sourceId:n.id,targetId:o.id})];case 1:return i.sent(),r.message.success(t("Saved successfully"),.2),[2]}})},function(){var e=this,t=arguments;return new Promise(function(n,o){var r=i.apply(e,t);function c(e){p(r,n,o,c,a,"next",e)}function a(e){p(r,n,o,c,a,"throw",e)}c(void 0)})})()}}}},properties:{id:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{id:{type:"number","x-component":"CollectionField","x-read-pretty":!0}}},name:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},authType:{title:'{{t("Auth Type")}}',type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{authType:{type:"string","x-component":"Select","x-read-pretty":!0,enum:"{{ types }}"}}},title:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{title:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},description:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{description:{type:"boolean","x-component":"CollectionField","x-read-pretty":!0}}},enabled:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{enabled:{type:"boolean","x-component":"CollectionField","x-read-pretty":!0}}},actions:{type:"void",title:'{{t("Actions")}}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{update:{type:"void",title:'{{t("Configure")}}',"x-component":"Action.Link","x-component-props":{type:"primary"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:"{{ cm.useValuesFromRecord }}"},title:'{{t("Configure")}}',properties:{name:{"x-component":"CollectionField","x-decorator":"FormItem","x-disabled":!0},authType:{"x-component":"CollectionField","x-decorator":"FormItem","x-component-props":{options:"{{ types }}"}},title:{"x-component":"CollectionField","x-decorator":"FormItem"},description:{"x-component":"CollectionField","x-decorator":"FormItem"},enabled:{"x-component":"CollectionField","x-decorator":"FormItem"},options:{type:"object","x-component":"Options"},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useUpdateAction }}"}}}}}}}},delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action.Link","x-component-props":{confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"},useAction:"{{cm.useDestroyAction}}"},"x-disabled":"{{ useCanNotDelete() }}"}}}}}}}}},f=n(482),b=n(505),x=n(872);function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),o.forEach(function(t){var o;o=n[t],t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o})}return e}var h=function(e){var t,n,r=(0,o.useRecord)(),c=(0,o.useRequest)(function(){return Promise.resolve({data:v({},r.options)})},(t=v({},e),n=n={manual:!0},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n.push.apply(n,o)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),a=c.run,u=(0,o.useActionContext)();return(0,i.useEffect)(function(){u.visible&&a()},[u.visible,a]),c},O=function(e){var t,n=(0,o.usePlugin)(x.default).authTypes.get(e);return null==n||null==(t=n.components)?void 0:t.AdminSettingsForm},g=(0,b.observer)(function(){var e=(0,b.useForm)(),t=(0,o.useRecord)(),n=O(e.values.authType||t.authType);return n?c().createElement(n,null):null},{displayName:"Options"}),A=n(748);function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function w(e,t,n,o,r,i,c){try{var a=e[i](c),u=a.value}catch(e){n(e);return}a.done?t(u):Promise.resolve(u).then(o,r)}function j(e){return function(){var t=this,n=arguments;return new Promise(function(o,r){var i=e.apply(t,n);function c(e){w(i,o,r,c,a,"next",e)}function a(e){w(i,o,r,c,a,"throw",e)}c(void 0)})}}function P(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),o.forEach(function(t){var o;o=n[t],t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o})}return e}function S(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n.push.apply(n,o)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function D(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,o,r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var i=[],c=!0,a=!1;try{for(r=r.call(e);!(c=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);c=!0);}catch(e){a=!0,o=e}finally{try{c||null==r.return||r.return()}finally{if(a)throw o}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return C(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return C(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function F(e,t){var n,o,r,i,c={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){var u=[i,a];if(n)throw TypeError("Generator is already executing.");for(;c;)try{if(n=1,o&&(r=2&u[0]?o.return:u[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,u[1])).done)return r;switch(o=0,r&&(u=[2&u[0],r.value]),u[0]){case 0:case 1:r=u;break;case 4:return c.label++,{value:u[1],done:!1};case 5:c.label++,o=u[1],u=[0];continue;case 7:u=c.ops.pop(),c.trys.pop();continue;default:if(!(r=(r=c.trys).length>0&&r[r.length-1])&&(6===u[0]||2===u[0])){c=0;continue}if(3===u[0]&&(!r||u[1]>r[0]&&u[1]<r[3])){c.label=u[1];break}if(6===u[0]&&c.label<r[1]){c.label=r[1],r=u;break}if(r&&c.label<r[2]){c.label=r[2],c.ops.push(u);break}r[2]&&c.ops.pop(),c.trys.pop();continue}u=t.call(e,c)}catch(e){u=[6,e],o=0}finally{n=r=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}function T(e){return"string"==typeof e?e.trim():Array.isArray(e)?e.map(function(e){return T(e)}):(void 0===e?"undefined":e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e)=="object"&&null!==e?Object.fromEntries(Object.entries(e).map(function(e){var t=D(e,2);return[t[0],T(t[1])]})):e}var k=function(){var e=(0,o.useActionContext)().setVisible;return{run:function(){return j(function(){return F(this,function(t){return e(!1),[2]})})()}}},E=function(){var e=(0,u.useTranslation)().t,t=D((0,i.useState)(!1),2),n=t[0],a=t[1],p=D((0,i.useState)(""),2),m=p[0],d=p[1],b=(0,i.useContext)(s).types,x=b.map(function(e){return S(P({},e),{onClick:function(){a(!0),d(e.value)}})});return c().createElement(o.ActionContextProvider,{value:{visible:n,setVisible:a}},c().createElement(l.Provider,{value:{type:m}},c().createElement(r.Dropdown,{menu:{items:x}},c().createElement(r.Button,{icon:c().createElement(f.PlusOutlined,null),type:"primary"},e("Add new")," ",c().createElement(f.DownOutlined,null))),c().createElement(o.SchemaComponent,{scope:{useCloseAction:k,types:b,setType:d,useCreateAction:R},schema:y})))},I=function(){return(0,o.useAsyncData)().data,!1},R=function(){var e=(0,b.useForm)(),t=(0,b.useField)(),n=(0,o.useActionContext)(),r=(0,o.useResourceActionContext)().refresh,i=(0,o.useResourceContext)().resource;return{run:function(){return j(function(){var o;return F(this,function(c){switch(c.label){case 0:return c.trys.push([0,3,,4]),[4,e.submit()];case 1:return c.sent(),t.data=t.data||{},t.data.loading=!0,o=e.values.options||{},[4,i.create({values:S(P({},e.values),{options:T(o)})})];case 2:return c.sent(),n.setVisible(!1),t.data.loading=!1,r(),[3,4];case 3:return c.sent(),t.data&&(t.data.loading=!1),[3,4];case 4:return[2]}})})()}}},_=function(){var e=(0,b.useField)(),t=(0,b.useForm)(),n=(0,o.useActionContext)(),r=(0,o.useResourceActionContext)().refresh,i=(0,o.useResourceContext)(),c=i.resource,a=i.targetKey,u=(0,o.useRecord)()[a];return{run:function(){return j(function(){var o;return F(this,function(i){switch(i.label){case 0:return[4,t.submit()];case 1:i.sent(),e.data=e.data||{},e.data.loading=!0,i.label=2;case 2:return i.trys.push([2,4,5,6]),o=t.values.options||{},[4,c.update({filterByTk:u,values:S(P({},t.values),{options:T(o)})})];case 3:return i.sent(),n.setVisible(!1),r(),[3,6];case 4:return console.log(i.sent()),[3,6];case 5:return e.data.loading=!1,[7];case 6:return[2]}})})()}}},V=function(){var e=(0,A.o$)().t,t=D((0,i.useState)([]),2),n=t[0],a=t[1],u=(0,o.useAPIClient)();return(0,o.useRequest)(function(){return u.resource("authenticators").listTypes().then(function(t){var n;return((null==t||null==(n=t.data)?void 0:n.data)||[]).map(function(t){return{key:t.name,label:b.Schema.compile(t.title||t.name,{t:e}),value:t.name}})})},{onSuccess:function(e){a(e)}}),c().createElement(r.Card,{bordered:!1},c().createElement(s.Provider,{value:{types:n}},c().createElement(o.SchemaComponent,{schema:d,components:{AddNew:E,Options:g},scope:{types:n,useValuesFromOptions:h,useCanNotDelete:I,t:e,useUpdateAction:_}})))}}}]);
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ "use strict";(self.webpackChunk_nocobase_plugin_auth=self.webpackChunk_nocobase_plugin_auth||[]).push([["257"],{852:function(e,t,n){n.r(t),n.d(t,{AuthLayout:function(){return m},SignInPage:function(){return w},SignUpPage:function(){return I},SignupPageContext:function(){return O},useSignInButtons:function(){return P},useSignUpForms:function(){return A},AuthenticatorsContextProvider:function(){return s},useSignInForms:function(){return E},SignupPageProvider:function(){return j}});var r=n(964),a=n(772),u=n(721),o=n(156),i=n.n(o),l=n(128),c=n(446);function f(){var e,t,n=(e=["\n position: absolute;\n bottom: 24px;\n width: 100%;\n left: 0;\n text-align: center;\n "],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return f=function(){return n},n}var s=function(e){var t=e.children,n=(0,a.useAPIClient)(),r=(0,a.useRequest)(function(){return n.resource("authenticators").publicList().then(function(e){var t;return(null==e||null==(t=e.data)?void 0:t.data)||[]})}),o=r.data,l=r.error;if(r.loading)return i().createElement("div",{style:{textAlign:"center",marginTop:20}},i().createElement(u.Spin,null));if(l)throw l;return i().createElement(c.H.Provider,{value:void 0===o?[]:o},t)};function m(){var e,t=((0,a.useSystemSettings)()||{}).data;return i().createElement("div",{style:{maxWidth:320,margin:"0 auto",paddingTop:"20vh"}},i().createElement("div",{style:{position:"fixed",top:"2em",right:"2em"}},i().createElement(a.SwitchLanguage,null)),i().createElement("h1",{style:{textAlign:"center"}},i().createElement(a.ReadPretty.TextArea,{value:null==t||null==(e=t.data)?void 0:e.title})),i().createElement(s,null,i().createElement(l.Outlet,null)),i().createElement("div",{className:(0,r.css)(f())},i().createElement(a.PoweredBy,null)))}var y=n(872),p=n(748),v=n(505);function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var u=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(u.push(n.value),!t||u.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return u}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return d(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function b(){var e=g(["\n display: flex;\n "]);return b=function(){return e},e}function S(){var e=g(["\n display: flex;\n "]);return S=function(){return e},e}var E=function(){var e=(0,a.usePlugin)(y.default).authTypes.getEntities(),t={},n=!0,r=!1,u=void 0;try{for(var o,i=e[Symbol.iterator]();!(n=(o=i.next()).done);n=!0){var l,c=h(o.value,2),f=c[0],s=c[1];(null==(l=s.components)?void 0:l.SignInForm)&&(t[f]=s.components.SignInForm)}}catch(e){r=!0,u=e}finally{try{n||null==i.return||i.return()}finally{if(r)throw u}}return t},P=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=(0,a.usePlugin)(y.default).authTypes.getEntities(),n={},r=!0,u=!1,o=void 0;try{for(var l,c=t[Symbol.iterator]();!(r=(l=c.next()).done);r=!0){var f,s=h(l.value,2),m=s[0],p=s[1];(null==(f=p.components)?void 0:f.SignInButton)&&(n[m]=p.components.SignInButton)}}catch(e){u=!0,o=e}finally{try{r||null==c.return||c.return()}finally{if(u)throw o}}var v=Object.keys(n);return e.filter(function(e){return v.includes(e.authType)}).map(function(e,t){return i().createElement(n[e.authType],{key:t,authenticator:e})})},w=function(){var e=(0,p.o$)().t;(0,a.useCurrentDocumentTitle)("Signin"),(0,a.useViewport)();var t=E(),n=(0,o.useContext)(c.H),l=P(n);if(!n.length)return i().createElement("div",{style:{color:"#ccc"}},e("No authentication methods available."));var f=n.map(function(n){var r=t[n.authType];if(r){var a="".concat(e("Sign-in")," (").concat(v.Schema.compile(n.authTypeTitle||n.authType,{t:e}),")");return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({component:(0,o.createElement)(r,{authenticator:n}),tabTitle:n.title||a},n)}}).filter(function(e){return e});return i().createElement(u.Space,{direction:"vertical",className:(0,r.css)(b())},f.length>1?i().createElement(u.Tabs,{items:f.map(function(e){return{label:e.tabTitle,key:e.name,children:e.component}})}):f.length?i().createElement("div",null,f[0].component):i().createElement(i().Fragment,null),i().createElement(u.Space,{direction:"vertical",className:(0,r.css)(S())},l))};function T(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function x(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var u=[],o=!0,i=!1;try{for(a=a.call(e);!(o=(n=a.next()).done)&&(u.push(n.value),!t||u.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==a.return||a.return()}finally{if(i)throw r}}return u}}(e,t)||function(e,t){if(e){if("string"==typeof e)return T(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return T(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var O=(0,o.createContext)({});O.displayName="SignupPageContext";var j=function(e){var t=(0,o.useContext)(O);return t[e.authType]={component:e.component},i().createElement(O.Provider,{value:t},e.children)},A=function(){var e=(0,a.usePlugin)(y.default).authTypes.getEntities(),t={},n=!0,r=!1,u=void 0;try{for(var o,i=e[Symbol.iterator]();!(n=(o=i.next()).done);n=!0){var l,c=x(o.value,2),f=c[0],s=c[1];(null==(l=s.components)?void 0:l.SignUpForm)&&(t[f]=s.components.SignUpForm)}}catch(e){r=!0,u=e}finally{try{n||null==i.return||i.return()}finally{if(r)throw u}}return t},I=function(){(0,a.useViewport)(),(0,a.useCurrentDocumentTitle)("Signup");var e=A(),t=x((0,l.useSearchParams)(),1)[0].get("name"),n=((0,c.u)(t)||{}).authType;return e[n]?(0,o.createElement)(e[n],{authenticatorName:t}):i().createElement(l.Navigate,{to:"/not-found",replace:!0})}}}]);
@@ -7,4 +7,4 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- "use strict";(self.webpackChunk_nocobase_plugin_auth=self.webpackChunk_nocobase_plugin_auth||[]).push([["890"],{387:function(e,t,n){n.r(t),n.d(t,{AuthProvider:function(){return c}});var a=n(772),u=n(156),r=n.n(u),c=function(e){var t=(0,a.useLocationSearch)(),n=(0,a.useApp)();return(0,u.useEffect)(function(){var e=new URLSearchParams(t),a=e.get("authenticator"),u=e.get("token");u&&(n.apiClient.auth.setToken(u),n.apiClient.auth.setAuthenticator(a))}),r().createElement(r().Fragment,null,e.children)}}}]);
10
+ "use strict";(self.webpackChunk_nocobase_plugin_auth=self.webpackChunk_nocobase_plugin_auth||[]).push([["642"],{401:function(e,t,n){n.r(t),n.d(t,{AuthProvider:function(){return c}});var a=n(772),u=n(156),r=n.n(u),c=function(e){var t=(0,a.useLocationSearch)(),n=(0,a.useApp)(),u=new URLSearchParams(t),c=u.get("authenticator"),i=u.get("token");return i&&(n.apiClient.auth.setToken(i),n.apiClient.auth.setAuthenticator(c)),r().createElement(r().Fragment,null,e.children)}}}]);
@@ -7,4 +7,4 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- !function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("@nocobase/client"),require("@ant-design/icons"),require("@formily/react"),require("@formily/antd-v5"),require("react-i18next"),require("react"),require("@emotion/css"),require("@formily/shared"),require("@nocobase/utils/client"),require("@formily/core"),require("antd"),require("react-router-dom")):"function"==typeof define&&define.amd?define("@nocobase/plugin-auth",["@nocobase/client","@ant-design/icons","@formily/react","@formily/antd-v5","react-i18next","react","@emotion/css","@formily/shared","@nocobase/utils/client","@formily/core","antd","react-router-dom"],n):"object"==typeof exports?exports["@nocobase/plugin-auth"]=n(require("@nocobase/client"),require("@ant-design/icons"),require("@formily/react"),require("@formily/antd-v5"),require("react-i18next"),require("react"),require("@emotion/css"),require("@formily/shared"),require("@nocobase/utils/client"),require("@formily/core"),require("antd"),require("react-router-dom")):t["@nocobase/plugin-auth"]=n(t["@nocobase/client"],t["@ant-design/icons"],t["@formily/react"],t["@formily/antd-v5"],t["react-i18next"],t.react,t["@emotion/css"],t["@formily/shared"],t["@nocobase/utils/client"],t["@formily/core"],t.antd,t["react-router-dom"])}(self,function(t,n,e,r,o,i,u,c,a,l,f,s){return function(){var p,d,y,h,v,b,g={851:function(t,n,e){"use strict";e.r(n),e.d(n,{PluginAuthClient:function(){return I},AuthenticatorsContextProvider:function(){return R},default:function(){return K},useSignIn:function(){return q},AuthLayout:function(){return C},useRedirect:function(){return L},AuthenticatorsContext:function(){return f.H},useAuthenticator:function(){return f.u}});var r=e("772"),o=e("584"),i=e("741"),u=e.n(i),c={EMPTY_TOKEN:"EMPTY_TOKEN",EXPIRED_TOKEN:"EXPIRED_TOKEN",INVALID_TOKEN:"INVALID_TOKEN",TOKEN_RENEW_FAILED:"TOKEN_RENEW_FAILED",BLOCKED_TOKEN:"BLOCKED_TOKEN",EXPIRED_SESSION:"EXPIRED_SESSION",NOT_EXIST_USER:"NOT_EXIST_USER",SKIP_TOKEN_RENEW:"SKIP_TOKEN_RENEW",USER_HAS_NO_ROLES_ERR:"USER_HAS_NO_ROLES_ERR"},a=u()(function(t){t()},3e3,{leading:!0,trailing:!1}),l=e("573"),f=e("308"),s=e(581);function p(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,r=Array(n);e<n;e++)r[e]=t[e];return r}function d(t,n,e,r,o,i,u){try{var c=t[i](u),a=c.value}catch(t){e(t);return}c.done?n(a):Promise.resolve(a).then(r,o)}function y(t,n,e){return(y=m()?Reflect.construct:function(t,n,e){var r=[null];r.push.apply(r,n);var o=new(Function.bind.apply(t,r));return e&&b(o,e.prototype),o}).apply(null,arguments)}function h(t,n){for(var e=0;e<n.length;e++){var r=n[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function v(t){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function b(t,n){return(b=Object.setPrototypeOf||function(t,n){return t.__proto__=n,t})(t,n)}function g(t){var n="function"==typeof Map?new Map:void 0;return(g=function(t){var e;if(null===t||(e=t,-1===Function.toString.call(e).indexOf("[native code]")))return t;if("function"!=typeof t)throw TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(t))return n.get(t);n.set(t,r)}function r(){return y(t,arguments,v(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),b(r,t)})(t)}function m(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(m=function(){return!!t})()}var _=(0,r.lazy)(function(){return s("imported_gs6osn_component",e.e("890").then(e.bind(e,387)))},"AuthProvider").AuthProvider,E=(0,r.lazy)(function(){return s("imported_kl5khg_component",e.e("938").then(e.bind(e,510)))},"Options","SignInForm","SignUpForm"),S=E.Options,x=E.SignInForm,O=E.SignUpForm,T=(0,r.lazy)(function(){return s("imported_-1ja1ffa_component",e.e("280").then(e.bind(e,492)))},"AuthLayout","SignInPage","SignUpPage"),A=T.AuthLayout,k=T.SignInPage,P=T.SignUpPage,w=(0,r.lazy)(function(){return s("imported_10vpsc8_component",e.e("851").then(e.bind(e,264)))},"Authenticator").Authenticator,j=(0,r.lazy)(function(){return s("imported_-1q5gcq5_component",e.e("104").then(e.bind(e,349)))},"TokenPolicySettings").TokenPolicySettings,N=(0,r.lazy)(function(){return s("imported_-1ja1ffa_component",e.e("280").then(e.bind(e,492)))},"AuthenticatorsContextProvider","AuthLayout"),R=N.AuthenticatorsContextProvider,C=N.AuthLayout,I=function(t){var n,e,r;function i(){var t,n,e,r,u,c,a;return!function(t,n){if(!(t instanceof n))throw TypeError("Cannot call a class as a function")}(this,i),n=this,e=i,r=arguments,e=v(e),u=t=function(t,n){return n&&("object"===function(t){return t&&"undefined"!=typeof Symbol&&t.constructor===Symbol?"symbol":typeof t}(n)||"function"==typeof n)?n:function(t){if(void 0===t)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(n,m()?Reflect.construct(e,r||[],v(n).constructor):e.apply(n,r)),c="authTypes",a=new o.Registry,c in u?Object.defineProperty(u,c,{value:a,enumerable:!0,configurable:!0,writable:!0}):u[c]=a,t}return!function(t,n){if("function"!=typeof n&&null!==n)throw TypeError("Super expression must either be null or a function");t.prototype=Object.create(n&&n.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),n&&b(t,n)}(i,t),n=i,e=[{key:"registerType",value:function(t,n){this.authTypes.register(t,n)}},{key:"load",value:function(){var t,n=this;return(t=function(){var t,e,r;return function(t,n){var e,r,o,i,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){return function(i){if(e)throw TypeError("Generator is already executing.");for(;u;)try{if(e=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return u.label++,{value:i[1],done:!1};case 5:u.label++,r=i[1],i=[0];continue;case 7:i=u.ops.pop(),u.trys.pop();continue;default:if(!(o=(o=u.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){u=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){u.label=i[1];break}if(6===i[0]&&u.label<o[1]){u.label=o[1],o=i;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(i);break}o[2]&&u.ops.pop(),u.trys.pop();continue}i=n.call(t,u)}catch(t){i=[6,t],r=0}finally{e=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}}(this,function(o){var i,u,f;return n.app.pluginSettingsManager.add(l.A7,{icon:"LoginOutlined",title:'{{t("Authentication", { ns: "'.concat(l.A7,'" })}}'),aclSnippet:"pm.auth"}),n.app.pluginSettingsManager.add("auth.authenticators",{icon:"LoginOutlined",title:'{{t("Authenticators", { ns: "'.concat(l.A7,'" })}}'),Component:w,aclSnippet:"pm.auth.authenticators",sort:1}),n.router.add("auth",{Component:"AuthLayout"}),n.router.add("auth.signin",{path:"/signin",Component:"SignInPage"}),n.router.add("auth.signup",{path:"/signup",Component:"SignUpPage"}),n.app.addComponents({AuthLayout:A,SignInPage:k,SignUpPage:P}),n.app.providers.unshift([_,{}]),n.registerType("Email/Password",{components:{SignInForm:x,SignUpForm:O,AdminSettingsForm:S}}),n.app.pluginSettingsManager.add("security.token-policy",{title:'{{t("Token policy", { ns: "'.concat(l.A7,'" })}}'),Component:j,aclSnippet:"pm.security.token-policy",icon:"ApiOutlined",sort:0}),u=((i=({app:n.app}).app).apiClient.axios,[function(t){var n,e=null==t?void 0:null===(n=t.headers)||void 0===n?void 0:n["x-new-token"];return e&&i.apiClient.auth.setToken(e),t},function(t){var n,e,r,o,u,l=null==t?void 0:null===(e=t.response)||void 0===e?void 0:null===(n=e.headers)||void 0===n?void 0:n["x-new-token"],f=null==t?void 0:null===(o=t.response)||void 0===o?void 0:null===(r=o.data)||void 0===r?void 0:r.errors,s=Array.isArray(f)?f[0]:null,p=i.router.state.location,d=p.pathname,y=p.search,h=i.router.basename;if(l&&i.apiClient.auth.setToken(l),401===t.status&&(null==s?void 0:s.code)&&c[s.code]&&(i.apiClient.auth.setToken(""),d===i.getHref("signin")&&(null==s?void 0:s.code)!==c.EMPTY_TOKEN&&t.config&&(t.config.skipNotify=!1),(null==s?void 0:s.code)==="USER_HAS_NO_ROLES_ERR"&&(t.config.skipNotify=!0,i.error=s)),401===t.status&&!(null===(u=t.config)||void 0===u?void 0:u.skipAuth)&&(null==s?void 0:s.code)&&c[s.code]){if(!s||(null==s?void 0:s.code)===c.SKIP_TOKEN_RENEW)throw t;var v=i.router.isSkippedAuthCheckRoute(d);if(v&&(t.config.skipNotify=!0),d!==i.getHref("signin")&&!v){var b,g,m,_=(b=d,g=h.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),m=new RegExp("^".concat(g.replace(/\/?$/,""),"(\\/|$)")),b.replace(m,"/")||b);a(function(){i.apiClient.auth.setToken(null),i.router.navigate("/signin?redirect=".concat(_).concat(y),{replace:!0})})}}throw t}]),f=2,e=(t=function(t){if(Array.isArray(t))return t}(u)||function(t,n){var e,r,o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=o){var i=[],u=!0,c=!1;try{for(o=o.call(t);!(u=(e=o.next()).done)&&(i.push(e.value),!n||i.length!==n);u=!0);}catch(t){c=!0,r=t}finally{try{!u&&null!=o.return&&o.return()}finally{if(c)throw r}}return i}}(u,2)||function(t,n){if(t){if("string"==typeof t)return p(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);if("Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e)return Array.from(e);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return p(t,n)}}(u,f)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0],r=t[1],n.app.apiClient.axios.interceptors.response.handlers.unshift({fulfilled:e,rejected:r,synchronous:!1,runWhen:null}),[2]})},function(){var n=this,e=arguments;return new Promise(function(r,o){var i=t.apply(n,e);function u(t){d(i,r,o,u,c,"next",t)}function c(t){d(i,r,o,u,c,"throw",t)}u(void 0)})})()}}],h(n.prototype,e),i}(g(r.Plugin)),q=function(t){return(0,r.useLazy)(function(){return s("imported_kl5khg_component",e.e("938").then(e.bind(e,510)))},"useSignIn")(t)},L=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/admin";return(0,r.useLazy)(function(){return s("imported_kl5khg_component",e.e("938").then(e.bind(e,510)))},"useRedirect")(t)},K=I},308:function(t,n,e){"use strict";e.d(n,{H:function(){return o},u:function(){return i}});var r=e(156),o=(0,r.createContext)([]);o.displayName="AuthenticatorsContext";var i=function(t){return(0,r.useContext)(o).find(function(n){return n.name===t})}},573:function(t,n,e){"use strict";e.d(n,{A7:function(){return i},KQ:function(){return c},o$:function(){return u}});var r=e(238),o=e(772),i="auth";function u(){return(0,r.useTranslation)([i,"client"],{nsMode:"fallback"})}function c(t){return o.i18n.t(t,{ns:[i,"client"],nsMode:"fallback"})}},869:function(t,n,e){var r=e(31).Symbol;t.exports=r},365:function(t,n,e){var r=e(869),o=e(43),i=e(283),u=r?r.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":u&&u in Object(t)?o(t):i(t)}},527:function(t,n,e){var r=e(670),o=/^\s+/;t.exports=function(t){return t?t.slice(0,r(t)+1).replace(o,""):t}},274:function(t,n,e){var r="object"==typeof e.g&&e.g&&e.g.Object===Object&&e.g;t.exports=r},43:function(t,n,e){var r=e(869),o=Object.prototype,i=o.hasOwnProperty,u=o.toString,c=r?r.toStringTag:void 0;t.exports=function(t){var n=i.call(t,c),e=t[c];try{t[c]=void 0;var r=!0}catch(t){}var o=u.call(t);return r&&(n?t[c]=e:delete t[c]),o}},283:function(t){var n=Object.prototype.toString;t.exports=function(t){return n.call(t)}},31:function(t,n,e){var r=e(274),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();t.exports=i},670:function(t){var n=/\s/;t.exports=function(t){for(var e=t.length;e--&&n.test(t.charAt(e)););return e}},741:function(t,n,e){var r=e(917),o=e(860),i=e(640),u=Math.max,c=Math.min;t.exports=function(t,n,e){var a,l,f,s,p,d,y=0,h=!1,v=!1,b=!0;if("function"!=typeof t)throw TypeError("Expected a function");function g(n){var e=a,r=l;return a=l=void 0,y=n,s=t.apply(r,e)}n=i(n)||0,r(e)&&(h=!!e.leading,f=(v="maxWait"in e)?u(i(e.maxWait)||0,n):f,b="trailing"in e?!!e.trailing:b);function m(t){var e=t-d,r=t-y;return void 0===d||e>=n||e<0||v&&r>=f}function _(){var t,e,r,i,u=o();if(m(u))return E(u);p=setTimeout(_,(e=(t=u)-d,r=t-y,i=n-e,v?c(i,f-r):i))}function E(t){return(p=void 0,b&&a)?g(t):(a=l=void 0,s)}function S(){var t,e=o(),r=m(e);if(a=arguments,l=this,d=e,r){if(void 0===p){;return y=t=d,p=setTimeout(_,n),h?g(t):s}if(v)return clearTimeout(p),p=setTimeout(_,n),g(d)}return void 0===p&&(p=setTimeout(_,n)),s}return S.cancel=function(){void 0!==p&&clearTimeout(p),y=0,a=d=l=p=void 0},S.flush=function(){return void 0===p?s:E(o())},S}},917:function(t){t.exports=function(t){var n=typeof t;return null!=t&&("object"==n||"function"==n)}},620:function(t){t.exports=function(t){return null!=t&&"object"==typeof t}},528:function(t,n,e){var r=e(365),o=e(620);t.exports=function(t){return"symbol"==typeof t||o(t)&&"[object Symbol]"==r(t)}},860:function(t,n,e){var r=e(31);t.exports=function(){return r.Date.now()}},640:function(t,n,e){var r=e(527),o=e(917),i=e(528),u=0/0,c=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,l=/^0o[0-7]+$/i,f=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(i(t))return u;if(o(t)){var n="function"==typeof t.valueOf?t.valueOf():t;t=o(n)?n+"":n}if("string"!=typeof t)return 0===t?t:+t;t=r(t);var e=a.test(t);return e||l.test(t)?f(t.slice(2),e?2:8):c.test(t)?u:+t}},581:function(t){t.exports=function(t,n){return"undefined"!=typeof __deoptimization_sideEffect__&&__deoptimization_sideEffect__(t,n),n}},482:function(t){"use strict";t.exports=n},964:function(t){"use strict";t.exports=u},632:function(t){"use strict";t.exports=r},563:function(t){"use strict";t.exports=l},505:function(t){"use strict";t.exports=e},875:function(t){"use strict";t.exports=c},772:function(n){"use strict";n.exports=t},584:function(t){"use strict";t.exports=a},721:function(t){"use strict";t.exports=f},156:function(t){"use strict";t.exports=i},238:function(t){"use strict";t.exports=o},128:function(t){"use strict";t.exports=s}},m={};function _(t){var n=m[t];if(void 0!==n)return n.exports;var e=m[t]={exports:{}};return g[t](e,e.exports,_),e.exports}return _.m=g,_.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return _.d(n,{a:n}),n},_.d=function(t,n){for(var e in n)_.o(n,e)&&!_.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:n[e]})},_.f={},_.e=function(t){return Promise.all(Object.keys(_.f).reduce(function(n,e){return _.f[e](t,n),n},[]))},_.u=function(t){return""+({104:"f2122264b5758d8b",280:"9e603524b127e7b4",851:"2fde58876f8f8762",890:"43e9587ca4936ffe",938:"0091d4359312cb07"})[t]+".js"},_.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(t){if("object"==typeof window)return window}}(),_.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},p={},d="@nocobase/plugin-auth:",_.l=function(t,n,e,r){if(p[t]){p[t].push(n);return}if(void 0!==e){for(var o,i,u=document.getElementsByTagName("script"),c=0;c<u.length;c++){var a=u[c];if(a.getAttribute("src")==t||a.getAttribute("data-webpack")==d+e){o=a;break}}}!o&&(i=!0,(o=document.createElement("script")).charset="utf-8",o.timeout=120,_.nc&&o.setAttribute("nonce",_.nc),o.setAttribute("data-webpack",d+e),o.src=t),p[t]=[n];var l=function(n,e){o.onerror=o.onload=null,clearTimeout(f);var r=p[t];if(delete p[t],o.parentNode&&o.parentNode.removeChild(o),r&&r.forEach(function(t){return t(e)}),n)return n(e)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),i&&document.head.appendChild(o)},_.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},_.p=(!(y=window.__nocobase_public_path__||"/").endsWith("/")&&(y+="/"),y+"static/plugins/@nocobase/plugin-auth/dist/client/"),h={909:0},_.f.j=function(t,n){var e=_.o(h,t)?h[t]:void 0;if(0!==e){if(e)n.push(e[2]);else{var r=new Promise(function(n,r){e=h[t]=[n,r]});n.push(e[2]=r);var o=_.p+_.u(t),i=Error();_.l(o,function(n){if(_.o(h,t)&&(0!==(e=h[t])&&(h[t]=void 0),e)){var r=n&&("load"===n.type?"missing":n.type),o=n&&n.target&&n.target.src;i.message="Loading chunk "+t+" failed.\n("+r+": "+o+")",i.name="ChunkLoadError",i.type=r,i.request=o,e[1](i)}},"chunk-"+t,t)}}},v=function(t,n){var e=n[0],r=n[1],o=n[2],i,u,c=0;if(e.some(function(t){return 0!==h[t]})){for(i in r)_.o(r,i)&&(_.m[i]=r[i]);o&&o(_)}for(t&&t(n);c<e.length;c++)u=e[c],_.o(h,u)&&h[u]&&h[u][0](),h[u]=0},(b=self.webpackChunk_nocobase_plugin_auth=self.webpackChunk_nocobase_plugin_auth||[]).forEach(v.bind(null,0)),b.push=v.bind(null,b.push.bind(b)),_("851")}()});
10
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react-i18next"),require("@formily/core"),require("@formily/antd-v5"),require("react"),require("@emotion/css"),require("@nocobase/client"),require("react-router-dom"),require("@formily/shared"),require("@formily/react"),require("@nocobase/utils/client"),require("@ant-design/icons"),require("antd")):"function"==typeof define&&define.amd?define("@nocobase/plugin-auth",["react-i18next","@formily/core","@formily/antd-v5","react","@emotion/css","@nocobase/client","react-router-dom","@formily/shared","@formily/react","@nocobase/utils/client","@ant-design/icons","antd"],e):"object"==typeof exports?exports["@nocobase/plugin-auth"]=e(require("react-i18next"),require("@formily/core"),require("@formily/antd-v5"),require("react"),require("@emotion/css"),require("@nocobase/client"),require("react-router-dom"),require("@formily/shared"),require("@formily/react"),require("@nocobase/utils/client"),require("@ant-design/icons"),require("antd")):t["@nocobase/plugin-auth"]=e(t["react-i18next"],t["@formily/core"],t["@formily/antd-v5"],t.react,t["@emotion/css"],t["@nocobase/client"],t["react-router-dom"],t["@formily/shared"],t["@formily/react"],t["@nocobase/utils/client"],t["@ant-design/icons"],t.antd)}(self,function(t,e,n,r,o,i,u,a,c,s,l,f){return function(){var p,d,y,h,m,b,v={872:function(t,e,n){"use strict";n.r(e),n.d(e,{PluginAuthClient:function(){return H},AuthLayout:function(){return B},useAuthenticator:function(){return h.u},useSignIn:function(){return X},AuthenticatorsContext:function(){return h.H},AuthenticatorsContextProvider:function(){return W},useRedirect:function(){return G},default:function(){return V}});var r=n(772),o=n(584),i=n(741),u=n.n(i),a={EMPTY_TOKEN:"EMPTY_TOKEN",EXPIRED_TOKEN:"EXPIRED_TOKEN",INVALID_TOKEN:"INVALID_TOKEN",TOKEN_RENEW_FAILED:"TOKEN_RENEW_FAILED",BLOCKED_TOKEN:"BLOCKED_TOKEN",EXPIRED_SESSION:"EXPIRED_SESSION",NOT_EXIST_USER:"NOT_EXIST_USER",SKIP_TOKEN_RENEW:"SKIP_TOKEN_RENEW",USER_HAS_NO_ROLES_ERR:"USER_HAS_NO_ROLES_ERR"},c=u()(function(t){t()},3e3,{leading:!0,trailing:!1}),s=n(748),l=n(505),f=n(156),p=n.n(f),d=n(721),y=n(128),h=n(446);function m(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function b(t,e,n,r,o,i,u){try{var a=t[i](u),c=a.value}catch(t){n(t);return}a.done?e(c):Promise.resolve(c).then(r,o)}function v(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n,r,o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=o){var i=[],u=!0,a=!1;try{for(o=o.call(t);!(u=(n=o.next()).done)&&(i.push(n.value),!e||i.length!==e);u=!0);}catch(t){a=!0,r=t}finally{try{u||null==o.return||o.return()}finally{if(a)throw r}}return i}}(t,e)||function(t,e){if(t){if("string"==typeof t)return m(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if("Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return m(t,e)}}(t,e)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var g=function(){var t,e=(0,s.o$)().t,n=v((0,y.useSearchParams)(),1)[0].get("name"),o=(0,h.u)(n);return(null==o||null==(t=o.options)?void 0:t.enableResetPassword)?p().createElement(r.SchemaComponent,{schema:{type:"object",name:"forgotPasswordForm","x-component":"FormV2",properties:{email:{type:"string","x-component":"Input",title:'{{t("Reset password")}}',required:!0,"x-validator":"{{(value) => {\n if (!value) {\n return '';\n }\n if (!/^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$/.test(value)) {\n return t(\"Please enter a valid email\");\n }\n }}}","x-decorator":"FormItem","x-component-props":{placeholder:'{{t("Please enter your email")}}',style:{}}},actions:{type:"void","x-component":"div",properties:{submit:{title:'{{t("Send reset email")}}',type:"void","x-component":"Action","x-component-props":{htmlType:"submit",block:!0,type:"primary",useAction:function(){var t=(0,l.useForm)(),e=(0,r.useAPIClient)(),n=(0,s.o$)().t,o=v(p().useState(!1),2),i=o[0],u=o[1];return{run:function(){var r;return(r=function(){return function(t,e){var n,r,o,i,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){var c=[i,a];if(n)throw TypeError("Generator is already executing.");for(;u;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return u.label++,{value:c[1],done:!1};case 5:u.label++,r=c[1],c=[0];continue;case 7:c=u.ops.pop(),u.trys.pop();continue;default:if(!(o=(o=u.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){u=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){u.label=c[1];break}if(6===c[0]&&u.label<o[1]){u.label=o[1],o=c;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(c);break}o[2]&&u.ops.pop(),u.trys.pop();continue}c=e.call(t,u)}catch(t){c=[6,t],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(r){switch(r.label){case 0:return[4,t.submit()];case 1:r.sent(),u(!0),r.label=2;case 2:return r.trys.push([2,,4,5]),[4,e.auth.lostPassword(t.values)];case 3:return r.sent(),[3,5];case 4:return u(!1),[7];case 5:return d.message.success(n("Reset email sent successfully")),t.reset(),[2]}})},function(){var t=this,e=arguments;return new Promise(function(n,o){var i=r.apply(t,e);function u(t){b(i,n,o,u,a,"next",t)}function a(t){b(i,n,o,u,a,"throw",t)}u(void 0)})})()},loading:i}}}}}},signUp:{type:"void","x-component":"Link","x-component-props":{to:"/signin"},"x-content":'{{t("Back to login")}}'}}},scope:{t:e}}):p().createElement(y.Navigate,{to:"/not-found",replace:!0})};function w(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function x(t,e,n,r,o,i,u){try{var a=t[i](u),c=a.value}catch(t){n(t);return}a.done?e(c):Promise.resolve(c).then(r,o)}function S(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n,r,o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=o){var i=[],u=!0,a=!1;try{for(o=o.call(t);!(u=(n=o.next()).done)&&(i.push(n.value),!e||i.length!==e);u=!0);}catch(t){a=!0,r=t}finally{try{u||null==o.return||o.return()}finally{if(a)throw r}}return i}}(t,e)||function(t,e){if(t){if("string"==typeof t)return w(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if("Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return w(t,e)}}(t,e)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var O=function(){var t,e=(0,s.o$)().t,n=(0,r.useAPIClient)(),o=S((0,y.useSearchParams)(),1)[0],i=o.get("resetToken"),u=(0,r.useNavigateNoUpdate)(),a=S(p().useState(!1),2),c=a[0],m=a[1],b=o.get("name"),v=(0,h.u)(b);return((0,f.useEffect)(function(){n.auth.checkResetToken({resetToken:i}).then(function(){m(!1)}).catch(function(t){m(!0)})},[]),null==v||null==(t=v.options)?void 0:t.enableResetPassword)?!i||c?p().createElement(d.Result,{status:"403",title:e("Reset link has expired"),extra:p().createElement(d.Button,{type:"primary",onClick:function(){return u("/signin")}},e("Go to login"))}):p().createElement(r.SchemaComponent,{schema:{type:"object",name:"resetPasswordForm","x-component":"FormV2",properties:{password:{type:"string","x-component":"Password",title:'{{t("New password")}}',required:!0,"x-decorator":"FormItem","x-component-props":{placeholder:'{{t("Please enter new password")}}'}},confirmPassword:{type:"string","x-component":"Password",title:'{{t("Confirm password")}}',required:!0,"x-decorator":"FormItem","x-component-props":{placeholder:'{{t("Please enter the same password again")}}'},"x-validator":"{{(value, rules, {form}) => {\n if (!value) {\n return '';\n }\n if (value !== form.values.password) {\n return t(\"The passwords entered twice are inconsistent\");\n }\n }}}"},actions:{type:"void","x-component":"div",properties:{submit:{title:'{{t("Confirm")}}',type:"void","x-component":"Action","x-component-props":{htmlType:"submit",block:!0,type:"primary",useAction:function(){var t=(0,l.useForm)(),e=(0,r.useAPIClient)(),n=(0,s.o$)().t,o=new URLSearchParams(window.location.search).get("resetToken"),i=S(p().useState(!1),2),u=i[0],a=i[1];return{run:function(){var r;return(r=function(){return function(t,e){var n,r,o,i,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){var c=[i,a];if(n)throw TypeError("Generator is already executing.");for(;u;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return u.label++,{value:c[1],done:!1};case 5:u.label++,r=c[1],c=[0];continue;case 7:c=u.ops.pop(),u.trys.pop();continue;default:if(!(o=(o=u.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){u=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){u.label=c[1];break}if(6===c[0]&&u.label<o[1]){u.label=o[1],o=c;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(c);break}o[2]&&u.ops.pop(),u.trys.pop();continue}c=e.call(t,u)}catch(t){c=[6,t],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(r){switch(r.label){case 0:return[4,t.submit()];case 1:r.sent(),a(!0),r.label=2;case 2:var i,u;return r.trys.push([2,,4,5]),[4,e.auth.resetPassword((i=function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),r.forEach(function(e){var r;r=n[e],e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r})}return t}({},t.values),u=u={resetToken:o},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):(function(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n.push.apply(n,r)}return n})(Object(u)).forEach(function(t){Object.defineProperty(i,t,Object.getOwnPropertyDescriptor(u,t))}),i))];case 3:return r.sent(),[3,5];case 4:return a(!1),[7];case 5:return d.message.success(n("Password reset successful")),setTimeout(function(){window.location.href="/signin"},1e3),[2]}})},function(){var t=this,e=arguments;return new Promise(function(n,o){var i=r.apply(t,e);function u(t){x(i,n,o,u,a,"next",t)}function a(t){x(i,n,o,u,a,"throw",t)}u(void 0)})})()},loading:u}}}}}},signUp:{type:"void","x-component":"Link","x-component-props":{to:"/signin"},"x-content":'{{t("Go to login")}}'}}},scope:{t:e}}):p().createElement(y.Navigate,{to:"/not-found",replace:!0})},P=n(581);function _(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function E(t,e,n,r,o,i,u){try{var a=t[i](u),c=a.value}catch(t){n(t);return}a.done?e(c):Promise.resolve(c).then(r,o)}function A(t,e,n){return(A=I()?Reflect.construct:function(t,e,n){var r=[null];r.push.apply(r,e);var o=new(Function.bind.apply(t,r));return n&&k(o,n.prototype),o}).apply(null,arguments)}function T(t){return(T=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function k(t,e){return(k=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function j(t){var e="function"==typeof Map?new Map:void 0;return(j=function(t){if(null===t||-1===Function.toString.call(t).indexOf("[native code]"))return t;if("function"!=typeof t)throw TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return A(t,arguments,T(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),k(n,t)})(t)}function I(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(I=function(){return!!t})()}var C=(0,r.lazy)(function(){return P("imported_gs6osn_component",n.e("642").then(n.bind(n,401)))},"AuthProvider").AuthProvider,R=(0,r.lazy)(function(){return P("imported_kl5khg_component",n.e("847").then(n.bind(n,958)))},"Options","SignInForm","SignUpForm"),N=R.Options,q=R.SignInForm,L=R.SignUpForm,F=(0,r.lazy)(function(){return P("imported_-1ja1ffa_component",n.e("257").then(n.bind(n,852)))},"AuthLayout","SignInPage","SignUpPage"),K=F.AuthLayout,U=F.SignInPage,M=F.SignUpPage,$=(0,r.lazy)(function(){return P("imported_10vpsc8_component",n.e("286").then(n.bind(n,215)))},"Authenticator").Authenticator,D=(0,r.lazy)(function(){return P("imported_-1q5gcq5_component",n.e("645").then(n.bind(n,625)))},"TokenPolicySettings").TokenPolicySettings,z=(0,r.lazy)(function(){return P("imported_-1ja1ffa_component",n.e("257").then(n.bind(n,852)))},"AuthenticatorsContextProvider","AuthLayout"),W=z.AuthenticatorsContextProvider,B=z.AuthLayout,H=function(t){var e;if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");function n(){var t,e,r,i,u,a;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return e=n,r=arguments,e=T(e),i=t=function(t,e){var n;if(e&&("object"==((n=e)&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof e))return e;if(void 0===t)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(this,I()?Reflect.construct(e,r||[],T(this).constructor):e.apply(this,r)),u="authTypes",a=new o.Registry,u in i?Object.defineProperty(i,u,{value:a,enumerable:!0,configurable:!0,writable:!0}):i[u]=a,t}return n.prototype=Object.create(t&&t.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),t&&k(n,t),e=[{key:"registerType",value:function(t,e){this.authTypes.register(t,e)}},{key:"load",value:function(){var t,e=this;return(t=function(){var t,n,r;return function(t,e){var n,r,o,i,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){var c=[i,a];if(n)throw TypeError("Generator is already executing.");for(;u;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return u.label++,{value:c[1],done:!1};case 5:u.label++,r=c[1],c=[0];continue;case 7:c=u.ops.pop(),u.trys.pop();continue;default:if(!(o=(o=u.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){u=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){u.label=c[1];break}if(6===c[0]&&u.label<o[1]){u.label=o[1],o=c;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(c);break}o[2]&&u.ops.pop(),u.trys.pop();continue}c=e.call(t,u)}catch(t){c=[6,t],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(o){var i,u;return e.app.pluginSettingsManager.add(s.A7,{icon:"LoginOutlined",title:'{{t("Authentication", { ns: "'.concat(s.A7,'" })}}'),aclSnippet:"pm.auth"}),e.app.pluginSettingsManager.add("auth.authenticators",{icon:"LoginOutlined",title:'{{t("Authenticators", { ns: "'.concat(s.A7,'" })}}'),Component:$,aclSnippet:"pm.auth.authenticators",sort:1}),e.router.add("auth",{Component:"AuthLayout"}),e.router.add("auth.signin",{path:"/signin",Component:"SignInPage"}),e.router.add("auth.signup",{path:"/signup",Component:"SignUpPage"}),e.router.add("auth.forgotPassword",{path:"/forgot-password",Component:"ForgotPasswordPage"}),e.router.add("auth.resetPassword",{path:"/reset-password",Component:"ResetPasswordPage"}),e.app.addComponents({AuthLayout:K,SignInPage:U,SignUpPage:M,ForgotPasswordPage:g,ResetPasswordPage:O}),e.app.providers.unshift([C,{}]),e.registerType("Email/Password",{components:{SignInForm:q,SignUpForm:L,AdminSettingsForm:N}}),e.app.pluginSettingsManager.add("security.token-policy",{title:'{{t("Token policy", { ns: "'.concat(s.A7,'" })}}'),Component:D,aclSnippet:"pm.security.token-policy",icon:"ApiOutlined",sort:0}),(i=({app:e.app}).app).apiClient.axios,n=(t=function(t){if(Array.isArray(t))return t}(u=[function(t){var e,n=null==t||null==(e=t.headers)?void 0:e["x-new-token"];return n&&i.apiClient.auth.setToken(n),t},function(t){var e,n,r,o,u,s=null==t||null==(n=t.response)||null==(e=n.headers)?void 0:e["x-new-token"],l=null==t||null==(o=t.response)||null==(r=o.data)?void 0:r.errors,f=Array.isArray(l)?l[0]:null,p=i.router.state.location,d=p.pathname,y=p.search,h=i.router.basename;if(s&&i.apiClient.auth.setToken(s),401===t.status&&(null==f?void 0:f.code)&&a[f.code]&&(i.apiClient.auth.setToken(""),d===i.getHref("signin")&&(null==f?void 0:f.code)!==a.EMPTY_TOKEN&&t.config&&(t.config.skipNotify=!1),(null==f?void 0:f.code)==="USER_HAS_NO_ROLES_ERR"&&(t.config.skipNotify=!0,i.error=f)),401===t.status&&!(null==(u=t.config)?void 0:u.skipAuth)&&(null==f?void 0:f.code)&&a[f.code]){if(!f||(null==f?void 0:f.code)===a.SKIP_TOKEN_RENEW)throw t;var m=i.router.isSkippedAuthCheckRoute(d);if(m&&(t.config.skipNotify=!0),d!==i.getHref("signin")&&!m){var b,v,g=(b=h.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),v=new RegExp("^".concat(b.replace(/\/?$/,""),"(\\/|$)")),d.replace(v,"/")||d);c(function(){i.apiClient.auth.setToken(null),i.router.navigate("/signin?redirect=".concat(g).concat(y),{replace:!0})})}}throw t}])||function(t,e){var n,r,o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=o){var i=[],u=!0,a=!1;try{for(o=o.call(t);!(u=(n=o.next()).done)&&(i.push(n.value),i.length!==e);u=!0);}catch(t){a=!0,r=t}finally{try{u||null==o.return||o.return()}finally{if(a)throw r}}return i}}(u,2)||function(t,e){if(t){if("string"==typeof t)return _(t,2);var n=Object.prototype.toString.call(t).slice(8,-1);if("Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _(t,e)}}(u,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0],r=t[1],e.app.apiClient.axios.interceptors.response.handlers.unshift({fulfilled:n,rejected:r,synchronous:!1,runWhen:null}),[2]})},function(){var e=this,n=arguments;return new Promise(function(r,o){var i=t.apply(e,n);function u(t){E(i,r,o,u,a,"next",t)}function a(t){E(i,r,o,u,a,"throw",t)}u(void 0)})})()}}],function(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}(n.prototype,e),n}(j(r.Plugin)),X=function(t){return(0,r.useLazy)(function(){return P("imported_kl5khg_component",n.e("847").then(n.bind(n,958)))},"useSignIn")(t)},G=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/admin";return(0,r.useLazy)(function(){return P("imported_kl5khg_component",n.e("847").then(n.bind(n,958)))},"useRedirect")(t)},V=H},446:function(t,e,n){"use strict";n.d(e,{H:function(){return o},u:function(){return i}});var r=n(156),o=(0,r.createContext)([]);o.displayName="AuthenticatorsContext";var i=function(t){return(0,r.useContext)(o).find(function(e){return e.name===t})}},748:function(t,e,n){"use strict";n.d(e,{A7:function(){return i},KQ:function(){return a},o$:function(){return u}});var r=n(238),o=n(772),i="auth";function u(){return(0,r.useTranslation)([i,"client"],{nsMode:"fallback"})}function a(t){return o.i18n.t(t,{ns:[i,"client"],nsMode:"fallback"})}},869:function(t,e,n){t.exports=n(31).Symbol},365:function(t,e,n){var r=n(869),o=n(43),i=n(283),u=r?r.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":u&&u in Object(t)?o(t):i(t)}},527:function(t,e,n){var r=n(670),o=/^\s+/;t.exports=function(t){return t?t.slice(0,r(t)+1).replace(o,""):t}},274:function(t,e,n){t.exports="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g},43:function(t,e,n){var r=n(869),o=Object.prototype,i=o.hasOwnProperty,u=o.toString,a=r?r.toStringTag:void 0;t.exports=function(t){var e=i.call(t,a),n=t[a];try{t[a]=void 0;var r=!0}catch(t){}var o=u.call(t);return r&&(e?t[a]=n:delete t[a]),o}},283:function(t){var e=Object.prototype.toString;t.exports=function(t){return e.call(t)}},31:function(t,e,n){var r=n(274),o="object"==typeof self&&self&&self.Object===Object&&self;t.exports=r||o||Function("return this")()},670:function(t){var e=/\s/;t.exports=function(t){for(var n=t.length;n--&&e.test(t.charAt(n)););return n}},741:function(t,e,n){var r=n(917),o=n(860),i=n(640),u=Math.max,a=Math.min;t.exports=function(t,e,n){var c,s,l,f,p,d,y=0,h=!1,m=!1,b=!0;if("function"!=typeof t)throw TypeError("Expected a function");function v(e){var n=c,r=s;return c=s=void 0,y=e,f=t.apply(r,n)}function g(t){var n=t-d,r=t-y;return void 0===d||n>=e||n<0||m&&r>=l}function w(){var t,n,r,i=o();if(g(i))return x(i);p=setTimeout(w,(t=i-d,n=i-y,r=e-t,m?a(r,l-n):r))}function x(t){return(p=void 0,b&&c)?v(t):(c=s=void 0,f)}function S(){var t,n=o(),r=g(n);if(c=arguments,s=this,d=n,r){if(void 0===p)return y=t=d,p=setTimeout(w,e),h?v(t):f;if(m)return clearTimeout(p),p=setTimeout(w,e),v(d)}return void 0===p&&(p=setTimeout(w,e)),f}return e=i(e)||0,r(n)&&(h=!!n.leading,l=(m="maxWait"in n)?u(i(n.maxWait)||0,e):l,b="trailing"in n?!!n.trailing:b),S.cancel=function(){void 0!==p&&clearTimeout(p),y=0,c=d=s=p=void 0},S.flush=function(){return void 0===p?f:x(o())},S}},917:function(t){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},620:function(t){t.exports=function(t){return null!=t&&"object"==typeof t}},528:function(t,e,n){var r=n(365),o=n(620);t.exports=function(t){return"symbol"==typeof t||o(t)&&"[object Symbol]"==r(t)}},860:function(t,e,n){var r=n(31);t.exports=function(){return r.Date.now()}},640:function(t,e,n){var r=n(527),o=n(917),i=n(528),u=0/0,a=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,s=/^0o[0-7]+$/i,l=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(i(t))return u;if(o(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=o(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=r(t);var n=c.test(t);return n||s.test(t)?l(t.slice(2),n?2:8):a.test(t)?u:+t}},581:function(t){t.exports=function(t,e){return"undefined"!=typeof __deoptimization_sideEffect__&&__deoptimization_sideEffect__(t,e),e}},482:function(t){"use strict";t.exports=l},964:function(t){"use strict";t.exports=o},632:function(t){"use strict";t.exports=n},563:function(t){"use strict";t.exports=e},505:function(t){"use strict";t.exports=c},875:function(t){"use strict";t.exports=a},772:function(t){"use strict";t.exports=i},584:function(t){"use strict";t.exports=s},721:function(t){"use strict";t.exports=f},156:function(t){"use strict";t.exports=r},238:function(e){"use strict";e.exports=t},128:function(t){"use strict";t.exports=u}},g={};function w(t){var e=g[t];if(void 0!==e)return e.exports;var n=g[t]={exports:{}};return v[t](n,n.exports,w),n.exports}return w.m=v,w.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return w.d(e,{a:e}),e},w.d=function(t,e){for(var n in e)w.o(e,n)&&!w.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},w.f={},w.e=function(t){return Promise.all(Object.keys(w.f).reduce(function(e,n){return w.f[n](t,e),e},[]))},w.u=function(t){return""+({257:"ef57ca1a043c2bc8",286:"8a134e884eae4f4b",642:"f57512ca2e74813f",645:"367cf457dd5bebe5",847:"662f930270b54313"})[t]+".js"},w.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(t){if("object"==typeof window)return window}}(),w.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},p={},d="@nocobase/plugin-auth:",w.l=function(t,e,n,r){if(p[t])return void p[t].push(e);if(void 0!==n)for(var o,i,u=document.getElementsByTagName("script"),a=0;a<u.length;a++){var c=u[a];if(c.getAttribute("src")==t||c.getAttribute("data-webpack")==d+n){o=c;break}}o||(i=!0,(o=document.createElement("script")).charset="utf-8",o.timeout=120,w.nc&&o.setAttribute("nonce",w.nc),o.setAttribute("data-webpack",d+n),o.src=t),p[t]=[e];var s=function(e,n){o.onerror=o.onload=null,clearTimeout(l);var r=p[t];if(delete p[t],o.parentNode&&o.parentNode.removeChild(o),r&&r.forEach(function(t){return t(n)}),e)return e(n)},l=setTimeout(s.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=s.bind(null,o.onerror),o.onload=s.bind(null,o.onload),i&&document.head.appendChild(o)},w.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},(y=window.__nocobase_public_path__||"/").endsWith("/")||(y+="/"),w.p=y+"static/plugins/@nocobase/plugin-auth/dist/client/",h={909:0},w.f.j=function(t,e){var n=w.o(h,t)?h[t]:void 0;if(0!==n)if(n)e.push(n[2]);else{var r=new Promise(function(e,r){n=h[t]=[e,r]});e.push(n[2]=r);var o=w.p+w.u(t),i=Error();w.l(o,function(e){if(w.o(h,t)&&(0!==(n=h[t])&&(h[t]=void 0),n)){var r=e&&("load"===e.type?"missing":e.type),o=e&&e.target&&e.target.src;i.message="Loading chunk "+t+" failed.\n("+r+": "+o+")",i.name="ChunkLoadError",i.type=r,i.request=o,n[1](i)}},"chunk-"+t,t)}},m=function(t,e){var n,r,o=e[0],i=e[1],u=e[2],a=0;if(o.some(function(t){return 0!==h[t]})){for(n in i)w.o(i,n)&&(w.m[n]=i[n]);u&&u(w)}for(t&&t(e);a<o.length;a++)r=o[a],w.o(h,r)&&h[r]&&h[r][0](),h[r]=0},(b=self.webpackChunk_nocobase_plugin_auth=self.webpackChunk_nocobase_plugin_auth||[]).forEach(m.bind(null,0)),b.push=m.bind(null,b.push.bind(b)),w(872)}()});
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const ForgotPasswordPage: () => React.JSX.Element;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const ResetPasswordPage: () => React.JSX.Element;
@@ -8,25 +8,25 @@
8
8
  */
9
9
 
10
10
  module.exports = {
11
- "@nocobase/client": "1.7.0-beta.9",
11
+ "@nocobase/client": "1.8.0-alpha.1",
12
12
  "react": "18.2.0",
13
- "@nocobase/utils": "1.7.0-beta.9",
13
+ "@nocobase/utils": "1.8.0-alpha.1",
14
14
  "axios": "1.7.7",
15
15
  "lodash": "4.17.21",
16
- "@nocobase/auth": "1.7.0-beta.9",
17
- "@nocobase/database": "1.7.0-beta.9",
18
- "@nocobase/cache": "1.7.0-beta.9",
19
- "@nocobase/server": "1.7.0-beta.9",
20
- "@nocobase/logger": "1.7.0-beta.9",
21
- "@nocobase/test": "1.7.0-beta.9",
16
+ "@nocobase/auth": "1.8.0-alpha.1",
17
+ "@nocobase/database": "1.8.0-alpha.1",
18
+ "@nocobase/cache": "1.8.0-alpha.1",
19
+ "@nocobase/server": "1.8.0-alpha.1",
20
+ "@nocobase/logger": "1.8.0-alpha.1",
21
+ "@nocobase/test": "1.8.0-alpha.1",
22
22
  "@formily/antd-v5": "1.2.3",
23
23
  "antd": "5.24.2",
24
24
  "@formily/shared": "2.3.2",
25
- "@formily/react": "2.3.0",
26
25
  "react-router-dom": "6.28.1",
26
+ "@formily/react": "2.3.0",
27
27
  "react-i18next": "11.18.6",
28
28
  "@emotion/css": "11.13.0",
29
29
  "@ant-design/icons": "5.6.1",
30
- "@nocobase/actions": "1.7.0-beta.9",
30
+ "@nocobase/actions": "1.8.0-alpha.1",
31
31
  "@formily/core": "2.3.0"
32
32
  };
@@ -46,5 +46,39 @@
46
46
  "In configuration mode, the entire column becomes transparent. In non-configuration mode, the entire column will be hidden. Even if the entire column is hidden, its configured default values and other settings will still take effect.": "Im Konfigurationsmodus wird die gesamte Spalte transparent. Im Nicht-Konfigurationsmodus wird die gesamte Spalte ausgeblendet. Auch wenn die gesamte Spalte ausgeblendet ist, bleiben ihre konfigurierten Standardwerte und andere Einstellungen weiterhin wirksam.",
47
47
  "Your session has expired. Please sign in again.": "Ihre Sitzung ist abgelaufen. Bitte melden Sie sich erneut an.",
48
48
  "Unauthenticated. Please sign in to continue.": "Nicht authentifiziert. Bitte melden Sie sich an, um fortzufahren.",
49
- "User not found. Please sign in again to continue.": "Benutzer nicht gefunden. Bitte melden Sie sich erneut an, um fortzufahren."
49
+ "User not found. Please sign in again to continue.": "Benutzer nicht gefunden. Bitte melden Sie sich erneut an, um fortzufahren.",
50
+ "Email channel not found": "E-Mail-Kanal nicht gefunden",
51
+ "Notification manager plugin not found": "Benachrichtigungsmanager-Plugin nicht gefunden",
52
+ "Not allowed to reset password": "Zurücksetzen des Passworts nicht erlaubt",
53
+ "Token expired": "Token abgelaufen",
54
+ "User not found": "Benutzer nicht gefunden",
55
+ "Forgot password": "Passwort vergessen",
56
+ "Please enter your email": "Bitte geben Sie Ihre E-Mail-Adresse ein",
57
+ "Reset password": "Passwort zurücksetzen",
58
+ "Back to login": "Zurück zur Anmeldung",
59
+ "Send reset email": "Zurücksetzen der E-Mail senden",
60
+ "Reset link has expired": "Der Zurücksetzen-Link ist abgelaufen",
61
+ "Go to login": "Zur Anmeldung gehen",
62
+ "Please enter new password": "Bitte geben Sie ein neues Passwort ein",
63
+ "Please enter the same password again": "Bitte geben Sie dasselbe Passwort erneut ein",
64
+ "The passwords entered twice are inconsistent": "Die zweimal eingegebenen Passwörter stimmen nicht überein",
65
+ "Password reset successful": "Passwort zurücksetzen erfolgreich",
66
+ "Enable forget password": "Funktion zum Zurücksetzen des Passworts aktivieren",
67
+ "Notification channel (Email)": "Benachrichtigungskanal (E-Mail)",
68
+ "Subject": "Betreff",
69
+ "Content type": "Inhaltstyp",
70
+ "Plain text": "Reiner Text",
71
+ "defaultResetPasswordEmailSubject": "Setzen Sie Ihr Passwort für {{$systemSettings.title}} zurück",
72
+ "defaultResetPasswordEmailContentHTML": "<p>Hallo {{$user.username}},</p>\n\n<p>Wir haben eine Anfrage zum Zurücksetzen des Passworts für Ihr {{$systemSettings.title}}-Konto erhalten.</p>\n\n<p>Bitte klicken Sie auf den unten stehenden Link, um Ihr neues Passwort festzulegen:</p>\n\n<p>\n <a href=\"{{$resetLink}}\">Passwort zurücksetzen</a>\n</p>\n\n<p>\n Wenn Sie keine Passwortzurücksetzung angefordert haben, ignorieren Sie bitte diese E-Mail. Ihr Passwort bleibt unverändert.\n</p>\n\n<p>\n Bitte beachten Sie: Zu Ihrer Sicherheit läuft dieser Link zum Zurücksetzen des Passworts in <strong>{{$resetLinkExpiration}} Minuten</strong> ab.\n</p>\n\n<p>Wenn Sie Probleme beim Zurücksetzen Ihres Passworts haben, wenden Sie sich bitte an unser Support-Team.</p>\n\n<p>\n Danke,<br>\n Das {{$systemSettings.title}}-Team\n</p>",
73
+ "defaultResetPasswordEmailContentText": "Hallo {{$user.username}},\n\nWir haben eine Anfrage zum Zurücksetzen des Passworts für Ihr {{$systemSettings.title}}-Konto erhalten.\n\nBitte klicken Sie auf den unten stehenden Link, um Ihr neues Passwort festzulegen:\n\n{{$resetLink}}\n\nWenn Sie keine Passwortzurücksetzung angefordert haben, ignorieren Sie bitte diese E-Mail. Ihr Passwort bleibt unverändert.\n\nBitte beachten Sie: Zu Ihrer Sicherheit läuft dieser Link zum Zurücksetzen des Passworts in {{$resetLinkExpiration}} Minuten ab.\n\nWenn Sie Probleme beim Zurücksetzen Ihres Passworts haben, wenden Sie sich bitte an unser Support-Team.\n\nDanke, Das {{$systemSettings.title}}-Team",
74
+ "No notification channels found. Please ": "Keine Benachrichtigungskanäle gefunden. Bitte ",
75
+ "add one first": "fügen Sie zuerst einen hinzu",
76
+ "Reset password email": "E-Mail zum Zurücksetzen des Passworts",
77
+ "1. Select notification channel": "1. Benachrichtigungskanal auswählen",
78
+ "2. Configure reset email": "2. Konfigurieren Sie die Rücksetz-E-Mail",
79
+ "The notification channel used to send the reset password email, only support email channel": "Der Benachrichtigungskanal, der verwendet wird, um die E-Mail zum Zurücksetzen des Passworts zu senden, unterstützt nur den E-Mail-Kanal",
80
+ "Reset link expiration (minutes)": "Ablauf des Rücksetzlinks (Minuten)",
81
+ "Reset password link": "Zurücksetzen des Passwortlinks",
82
+ "Missing X-Authenticator in request header": "Fehlendes X-Authenticator im Anfrage-Header",
83
+ "Reset email sent successfully": "E-Mail zum Zurücksetzen erfolgreich gesendet"
50
84
  }
@@ -46,5 +46,38 @@
46
46
  "In configuration mode, the entire column becomes transparent. In non-configuration mode, the entire column will be hidden. Even if the entire column is hidden, its configured default values and other settings will still take effect.": "In configuration mode, the entire column becomes transparent. In non-configuration mode, the entire column will be hidden. Even if the entire column is hidden, its configured default values and other settings will still take effect.",
47
47
  "Your session has expired. Please sign in again.": "Your session has expired. Please sign in again.",
48
48
  "Unauthenticated. Please sign in to continue.": "Unauthenticated. Please sign in to continue.",
49
- "User not found. Please sign in again to continue.": "User not found. Please sign in again to continue."
49
+ "User not found. Please sign in again to continue.": "User not found. Please sign in again to continue.",
50
+ "Email channel not found": "Email channel not found",
51
+ "Notification manager plugin not found": "Notification manager plugin not found",
52
+ "Not allowed to reset password": "Not allowed to reset password",
53
+ "Token expired": "Token expired",
54
+ "User not found": "User not found",
55
+ "Forgot password": "Forgot password",
56
+ "Please enter your email": "Please enter your email",
57
+ "Reset password": "Reset password",
58
+ "Back to login": "Back to login",
59
+ "Send reset email": "Send reset email",
60
+ "Reset link has expired": "Reset link has expired",
61
+ "Go to login": "Go to login",
62
+ "Please enter new password": "Please enter new password",
63
+ "Please enter the same password again": "Please enter the same password again",
64
+ "The passwords entered twice are inconsistent": "The passwords entered twice are inconsistent",
65
+ "Enable forget password": "Enable forget password",
66
+ "Notification channel (Email)": "Notification channel (Email)",
67
+ "Subject": "Subject",
68
+ "Content type": "Content type",
69
+ "Plain text": "Plain text",
70
+ "defaultResetPasswordEmailSubject": "Reset your password for {{$systemSettings.title}}",
71
+ "defaultResetPasswordEmailContentHTML": "<p>Hello {{$user.username}},</p>\n\n<p>We received a request to reset the password for your {{$systemSettings.title}} account.</p>\n\n<p>Please click the link below to set your new password:</p>\n\n<p>\n <a href=\"{{$resetLink}}\">Reset Your Password</a>\n</p>\n\n<p>\n If you did not request a password reset, please ignore this email. Your password will remain unchanged.\n</p>\n\n<p>\n Please note: For your security, this password reset link will expire in <strong>{{$resetLinkExpiration}} minutes</strong>.\n</p>\n\n<p>If you encounter any issues resetting your password, please contact our support team.</p>\n\n<p>\n Thanks,<br>\n The {{$systemSettings.title}} Team\n</p>",
72
+ "defaultResetPasswordEmailContentText": "Hello {{$user.username}},\n\nWe received a request to reset the password for your {{$systemSettings.title}} account.\n\nPlease click the link below to set your new password:\n\n{{$resetLink}}\n\nIf you did not request a password reset, please ignore this email. Your password will remain unchanged.\n\nPlease note: For your security, this password reset link will expire in {{$resetLinkExpiration}} minutes.\n\nIf you encounter any issues resetting your password, please contact our support team.\n\nThanks, The {{$systemSettings.title}} Team",
73
+ "No notification channels found. Please ": "No notification channels found. Please ",
74
+ "add one first": "add one first",
75
+ "Reset password email": "Reset password email",
76
+ "1. Select notification channel": "1. Select notification channel",
77
+ "2. Configure reset email": "2. Configure reset email",
78
+ "The notification channel used to send the reset password email, only support email channel": "The notification channel used to send the reset password email, only support email channel",
79
+ "Reset link expiration (minutes)": "Reset link expiration (minutes)",
80
+ "Reset password link": "Reset password link",
81
+ "Missing X-Authenticator in request header": "Missing X-Authenticator in request header",
82
+ "Reset email sent successfully": "Reset email sent successfully"
50
83
  }
@@ -51,5 +51,39 @@
51
51
  "Select User Collections": "Seleziona raccolte utente",
52
52
  "Basic Data": "Dati di base",
53
53
  "Optional Data": "Dati opzionali",
54
- "User Data": "Dati utente"
54
+ "User Data": "Dati utente",
55
+ "Email channel not found": "Canale email non trovato",
56
+ "Notification manager plugin not found": "Plugin di gestione delle notifiche non trovato",
57
+ "Not allowed to reset password": "Reimpostazione della password non consentita",
58
+ "Token expired": "Token scaduto",
59
+ "User not found": "Utente non trovato",
60
+ "Forgot password": "Password dimenticata",
61
+ "Please enter your email": "Si prega di inserire un'email",
62
+ "Reset password": "Reimposta password",
63
+ "Back to login": "Torna al login",
64
+ "Send reset email": "Invia email di reset",
65
+ "Reset link has expired": "Il link di reset è scaduto",
66
+ "Go to login": "Vai al login",
67
+ "Please enter new password": "Si prega di inserire una nuova password",
68
+ "Please enter the same password again": "Si prega di reinserire la stessa password",
69
+ "The passwords entered twice are inconsistent": "Le password inserite due volte non corrispondono",
70
+ "Password reset successful": "Reimpostazione password riuscita",
71
+ "Enable forget password": "Abilita la funzione di password dimenticata",
72
+ "Notification channel (Email)": "Canale di notifica (Email)",
73
+ "Subject": "Oggetto",
74
+ "Content type": "Tipo di contenuto",
75
+ "Plain text": "Testo semplice",
76
+ "defaultResetPasswordEmailSubject": "Reimposta la tua password per {{$systemSettings.title}}",
77
+ "defaultResetPasswordEmailContentHTML": "<p>Ciao {{$user.username}},</p>\n\n<p>Abbiamo ricevuto una richiesta di reimpostazione della password per il tuo account {{$systemSettings.title}}.</p>\n\n<p>Fai clic sul link sottostante per impostare la tua nuova password:</p>\n\n<p>\n <a href=\"{{$resetLink}}\">Reimposta la tua password</a>\n</p>\n\n<p>\n Se non hai richiesto la reimpostazione della password, ignora questa email. La tua password rimarrà invariata.\n</p>\n\n<p>\n Nota: per la tua sicurezza, questo link per la reimpostazione della password scadrà tra <strong>{{$resetLinkExpiration}} minuti</strong>.\n</p>\n\n<p>Se riscontri problemi durante la reimpostazione della password, contatta il nostro team di supporto.</p>\n\n<p>\n Grazie,<br>\n Il team di {{$systemSettings.title}}\n</p>",
78
+ "defaultResetPasswordEmailContentText": "Ciao {{$user.username}},\n\nAbbiamo ricevuto una richiesta di reimpostazione della password per il tuo account {{$systemSettings.title}}.\n\nFai clic sul link sottostante per impostare la tua nuova password:\n\n{{$resetLink}}\n\nSe non hai richiesto la reimpostazione della password, ignora questa email. La tua password rimarrà invariata.\n\nNota: per la tua sicurezza, questo link per la reimpostazione della password scadrà tra {{$resetLinkExpiration}} minuti.\n\nSe riscontri problemi durante la reimpostazione della password, contatta il nostro team di supporto.\n\nGrazie, Il team di {{$systemSettings.title}}",
79
+ "No notification channels found. Please ": "Nessun canale di notifica trovato. Per favore ",
80
+ "add one first": "aggiungine uno prima",
81
+ "Reset password email": "Email di reimpostazione della password",
82
+ "1. Select notification channel": "1. Seleziona il canale di notifica",
83
+ "2. Configure reset email": "2. Configura l'email di reset",
84
+ "The notification channel used to send the reset password email, only support email channel": "Il canale di notifica utilizzato per inviare l'email di reimpostazione della password supporta solo il canale email",
85
+ "Reset link expiration (minutes)": "Scadenza del link di reset (minuti)",
86
+ "Reset password link": "Link per reimpostare la password",
87
+ "Missing X-Authenticator in request header": "Manca X-Authenticator nell'intestazione della richiesta",
88
+ "Reset email sent successfully": "Email di reset inviata con successo"
55
89
  }
@@ -23,5 +23,39 @@
23
23
  "No authentication methods available.": "利用可能な認証方法はありません。",
24
24
  "The password is inconsistent, please re-enter": "パスワードが一致しません。再入力してください。",
25
25
  "Sign-in": "サインイン",
26
- "Password": "パスワード"
27
- }
26
+ "Password": "パスワード",
27
+ "Email channel not found": "メールチャネルが見つかりません",
28
+ "Notification manager plugin not found": "通知管理プラグインが見つかりません",
29
+ "Not allowed to reset password": "パスワードのリセットは許可されていません",
30
+ "Token expired": "トークンの有効期限が切れました",
31
+ "User not found": "ユーザーが見つかりません",
32
+ "Forgot password": "パスワードを忘れました",
33
+ "Please enter your email": "メールアドレスを入力してください。",
34
+ "Reset password": "パスワードをリセット",
35
+ "Back to login": "ログインに戻る",
36
+ "Send reset email": "リセットメールを送信",
37
+ "Reset link has expired": "リセットリンクの有効期限が切れています",
38
+ "Go to login": "ログインに移動",
39
+ "Please enter new password": "新しいパスワードを入力してください。",
40
+ "Please enter the same password again": "同じパスワードを再度入力してください。",
41
+ "The passwords entered twice are inconsistent": "2回入力されたパスワードが一致しません",
42
+ "Password reset successful": "パスワードリセット成功",
43
+ "Enable forget password": "パスワードを忘れた機能を有効にする",
44
+ "Notification channel (Email)": "通知チャネル(メール)",
45
+ "Subject": "件名",
46
+ "Content type": "コンテンツタイプ",
47
+ "Plain text": "プレーンテキスト",
48
+ "defaultResetPasswordEmailSubject": "{{$systemSettings.title}} のパスワードをリセット",
49
+ "defaultResetPasswordEmailContentHTML": "<p>{{$user.username}} 様,</p>\n\n<p>{{$systemSettings.title}} アカウントのパスワードリセットリクエストを受け付けました。</p>\n\n<p>以下のリンクをクリックして新しいパスワードを設定してください:</p>\n\n<p>\n <a href=\"{{$resetLink}}\">パスワードをリセット</a>\n</p>\n\n<p>\n パスワードリセットをリクエストしていない場合は、このメールを無視してください。パスワードは変更されません。\n</p>\n\n<p>\n 注意: セキュリティのため、このパスワードリセットリンクは <strong>{{$resetLinkExpiration}} 分</strong> で有効期限が切れます。\n</p>\n\n<p>パスワードのリセットで問題が発生した場合は、サポートチームにお問い合わせください。</p>\n\n<p>\n よろしくお願いいたします,<br>\n {{$systemSettings.title}} チーム\n</p>",
50
+ "defaultResetPasswordEmailContentText": "{{$user.username}} 様,\n\n{{$systemSettings.title}} アカウントのパスワードリセットリクエストを受け付けました。\n\n以下のリンクをクリックして新しいパスワードを設定してください:\n\n{{$resetLink}}\n\nパスワードリセットをリクエストしていない場合は、このメールを無視してください。パスワードは変更されません。\n\n注意: セキュリティのため、このパスワードリセットリンクは {{$resetLinkExpiration}} 分 で有効期限が切れます。\n\nパスワードのリセットで問題が発生した場合は、サポートチームにお問い合わせください。\n\nよろしくお願いいたします, {{$systemSettings.title}} チーム",
51
+ "No notification channels found. Please ": "通知チャネルが見つかりません。",
52
+ "add one first": "最初に追加してください",
53
+ "Reset password email": "パスワードリセットメール",
54
+ "1. Select notification channel": "1. 通知チャネルを選択",
55
+ "2. Configure reset email": "2. リセットメールを設定",
56
+ "The notification channel used to send the reset password email, only support email channel": "パスワードリセットメールを送信するために使用される通知チャネル、メールチャネルのみサポート",
57
+ "Reset link expiration (minutes)": "リセットリンクの有効期限(分)",
58
+ "Reset password link": "パスワードリセットリンク",
59
+ "Missing X-Authenticator in request header": "リクエストヘッダーにX-Authenticatorがありません",
60
+ "Reset email sent successfully": "リセットメールが正常に送信されました"
61
+ }
@@ -22,5 +22,40 @@
22
22
  "The authentication allows users to sign in via username or email.": "이 인증 방식을 사용하면 사용자가 사용자 이름 또는 이메일로 로그인할 수 있습니다.",
23
23
  "No authentication methods available.": "사용 가능한 인증 방법이 없습니다.",
24
24
  "The password is inconsistent, please re-enter": "비밀번호가 일치하지 않습니다. 다시 입력하세요.",
25
- "Sign-in": "로그인"
25
+ "Sign-in": "로그인",
26
+ "Email channel not found": "이메일 채널을 찾을 수 없습니다",
27
+ "Notification manager plugin not found": "알림 관리자 플러그인을 찾을 수 없습니다",
28
+ "Not allowed to reset password": "비밀번호 재설정이 허용되지 않습니다",
29
+ "Token expired": "토큰이 만료되었습니다",
30
+ "User not found": "사용자를 찾을 수 없습니다",
31
+ "Please enter a password": "비밀번호를 입력하세요",
32
+ "Forgot password": "비밀번호를 잊으셨나요",
33
+ "Please enter your email": "이메일을 입력하세요",
34
+ "Reset password": "비밀번호 재설정",
35
+ "Back to login": "로그인으로 돌아가기",
36
+ "Send reset email": "리셋 이메일 보내기",
37
+ "Reset link has expired": "리셋 링크의 유효 기간이 만료되었습니다",
38
+ "Go to login": "로그인으로 가기",
39
+ "Please enter new password": "새 비밀번호를 입력하세요",
40
+ "Please enter the same password again": "같은 비밀번호를 다시 입력하세요",
41
+ "The passwords entered twice are inconsistent": "입력한 두 개의 비밀번호가 일치하지 않습니다",
42
+ "Password reset successful": "비밀번호 재설정 성공",
43
+ "Enable forget password": "비밀번호 분실 기능 활성화",
44
+ "Notification channel (Email)": "알림 채널 (이메일)",
45
+ "Subject": "제목",
46
+ "Content type": "콘텐츠 유형",
47
+ "Plain text": "일반 텍스트",
48
+ "defaultResetPasswordEmailSubject": "{{$systemSettings.title}}의 비밀번호를 재설정하세요",
49
+ "defaultResetPasswordEmailContentHTML": "<p>안녕하세요 {{$user.username}}님,</p>\n\n<p>{{$systemSettings.title}} 계정의 비밀번호 재설정 요청을 받았습니다.</p>\n\n<p>아래 링크를 클릭하여 새 비밀번호를 설정하세요:</p>\n\n<p>\n <a href=\"{{$resetLink}}\">비밀번호 재설정</a>\n</p>\n\n<p>\n 비밀번호 재설정을 요청하지 않으셨다면 이 이메일을 무시하세요. 비밀번호는 변경되지 않습니다.\n</p>\n\n<p>\n 참고: 보안을 위해 이 비밀번호 재설정 링크는 <strong>{{$resetLinkExpiration}}분</strong> 후에 만료됩니다.\n</p>\n\n<p>비밀번호 재설정에 문제가 발생하면 지원팀에 문의하세요.</p>\n\n<p>\n 감사합니다,<br>\n {{$systemSettings.title}} 팀\n</p>",
50
+ "defaultResetPasswordEmailContentText": "안녕하세요 {{$user.username}}님,\n\n{{$systemSettings.title}} 계정의 비밀번호 재설정 요청을 받았습니다.\n\n아래 링크를 클릭하여 새 비밀번호를 설정하세요:\n\n{{$resetLink}}\n\n비밀번호 재설정을 요청하지 않으셨다면 이 이메일을 무시하세요. 비밀번호는 변경되지 않습니다.\n\n참고: 보안을 위해 이 비밀번호 재설정 링크는 {{$resetLinkExpiration}}분 후에 만료됩니다.\n\n비밀번호 재설정에 문제가 발생하면 지원팀에 문의하세요.\n\n감사합니다, {{$systemSettings.title}} 팀",
51
+ "No notification channels found. Please ": "알림 채널을 찾을 수 없습니다. ",
52
+ "add one first": "먼저 하나 추가하세요",
53
+ "Reset password email": "비밀번호 재설정 이메일",
54
+ "1. Select notification channel": "1. 알림 채널 선택",
55
+ "2. Configure reset email": "2. 리셋 이메일 설정",
56
+ "The notification channel used to send the reset password email, only support email channel": "비밀번호 재설정 이메일을 보내는 데 사용되는 알림 채널, 이메일 채널만 지원합니다",
57
+ "Reset link expiration (minutes)": "리셋 링크 만료 (분)",
58
+ "Reset password link": "비밀번호 재설정 링크",
59
+ "Missing X-Authenticator in request header": "요청 헤더에 X-Authenticator가 없습니다",
60
+ "Reset email sent successfully": "리셋 이메일이 성공적으로 전송되었습니다"
26
61
  }