@nocobase/plugin-verification 1.7.0-beta.9 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/client/83b24f85ae99a175.js +10 -0
  2. package/dist/client/937c9eccebc38607.js +10 -0
  3. package/dist/client/VerificationMenu.d.ts +1 -1
  4. package/dist/client/index.d.ts +1 -1
  5. package/dist/client/index.js +1 -1
  6. package/dist/client/otp-verification/VerificationCode.d.ts +1 -1
  7. package/dist/client/schemas/{verificators.d.ts → verifiers.d.ts} +2 -2
  8. package/dist/client/verification-manager/index.d.ts +2 -2
  9. package/dist/client/{verificators/VerificatorSelect.d.ts → verifiers/VerifierSelect.d.ts} +1 -1
  10. package/dist/client/{verificators/Verificators.d.ts → verifiers/Verifiers.d.ts} +1 -1
  11. package/dist/collections/verifiers.d.ts +50 -0
  12. package/dist/collections/verifiers.js +70 -0
  13. package/dist/externalVersion.js +6 -5
  14. package/dist/locale/en-US.json +6 -5
  15. package/dist/locale/zh-CN.json +6 -5
  16. package/dist/node_modules/@alicloud/dysmsapi20170525/dist/client.js +2 -2
  17. package/dist/node_modules/@alicloud/dysmsapi20170525/package.json +1 -1
  18. package/dist/node_modules/@alicloud/openapi-client/dist/client.js +2 -2
  19. package/dist/node_modules/@alicloud/openapi-client/package.json +1 -1
  20. package/dist/node_modules/@alicloud/tea-util/dist/client.js +1 -1
  21. package/dist/node_modules/@alicloud/tea-util/package.json +1 -1
  22. package/dist/node_modules/tencentcloud-sdk-nodejs/package.json +1 -1
  23. package/dist/node_modules/tencentcloud-sdk-nodejs/tencentcloud/index.js +2 -2
  24. package/dist/server/Plugin.d.ts +3 -0
  25. package/dist/server/Plugin.js +25 -13
  26. package/dist/server/actions/{verificators.js → verifiers.js} +38 -38
  27. package/dist/server/collections/otp-records.js +2 -2
  28. package/dist/server/collections/users-verificators.d.ts +0 -4
  29. package/dist/server/collections/users-verificators.js +1 -1
  30. package/dist/server/collections/users-verifiers.d.ts +14 -0
  31. package/dist/server/collections/users-verifiers.js +58 -0
  32. package/dist/server/collections/verificators.js +1 -1
  33. package/dist/server/collections/verifiers.d.ts +10 -0
  34. package/dist/server/collections/verifiers.js +47 -0
  35. package/dist/server/migrations/20250111192640-providers2verificators.js +16 -2
  36. package/dist/server/migrations/20250507220644-fix-verifier-typo.d.ts +14 -0
  37. package/dist/server/migrations/20250507220644-fix-verifier-typo.js +86 -0
  38. package/dist/server/otp-verification/index.d.ts +1 -0
  39. package/dist/server/otp-verification/index.js +62 -4
  40. package/dist/server/otp-verification/sms/resource/sms-otp.js +11 -11
  41. package/dist/server/verification-manager.d.ts +5 -5
  42. package/dist/server/verification-manager.js +29 -29
  43. package/dist/server/verification.d.ts +5 -5
  44. package/dist/server/verification.js +5 -5
  45. package/package.json +2 -2
  46. package/dist/client/cfedbdcfbe65d5f6.js +0 -10
  47. package/dist/client/d0b398212e5aa575.js +0 -10
  48. /package/dist/client/{verificators → verifiers}/verification-types.d.ts +0 -0
  49. /package/dist/server/actions/{verificators.d.ts → verifiers.d.ts} +0 -0
@@ -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_verification=self.webpackChunk_nocobase_plugin_verification||[]).push([["490"],{416:function(e,t,n){n.r(t),n.d(t,{useAdminSettingsForm:function(){return O},Settings:function(){return k},Verifiers:function(){return E}});var o=n(156),r=n.n(o),i=n(772),c={type:"void",properties:{drawer:{type:"void",title:'{{ t("Add new") }}',"x-component":"Action.Drawer","x-decorator":"FormV2","x-use-decorator-props":"useCreateFormProps",properties:{name:{type:"string","x-decorator":"FormItem",title:'{{ t("UID") }}',"x-component":"Input","x-validator":function(e){return/^[a-zA-Z0-9_-]+$/.test(e)?"":"a-z, A-Z, 0-9, _, -"}},title:{type:"string","x-decorator":"FormItem",title:'{{ t("Title") }}',"x-component":"Input"},description:{"x-decorator":"FormItem",type:"string",title:'{{ t("Description") }}',"x-component":"Input.TextArea"},options:{type:"object","x-component":"Settings"},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{ t("Cancel") }}',"x-component":"Action","x-use-component-props":"useCancelActionProps"},submit:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary"},"x-use-component-props":"useCreateActionProps"}}}}}}},s={type:"void",name:"verifiers",properties:{card:{type:"void","x-component":"CardItem","x-component-props":{heightMode:"fullHeight"},"x-decorator":"TableBlockProvider","x-decorator-props":{collection:"verifiers",action:"list"},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:20}},properties:{refresh:{title:"{{t('Refresh')}}","x-component":"Action","x-use-component-props":"useRefreshActionProps","x-component-props":{icon:"ReloadOutlined"}},bulkDelete:{title:"{{t('Delete')}}","x-action":"destroy","x-component":"Action","x-use-component-props":"useBulkDestroyActionProps","x-component-props":{icon:"DeleteOutlined",confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},add:{type:"void","x-component":"AddNew",title:"{{t('Add new')}}","x-align":"right"}}},table:{type:"array","x-component":"TableV2","x-use-component-props":"useTableBlockProps","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"}},properties:{column1:{type:"void",title:'{{ t("UID") }}',"x-component":"TableV2.Column",properties:{name:{type:"string","x-component":"Input","x-read-pretty":!0}}},column2:{type:"void",title:'{{ t("Title") }}',"x-component":"TableV2.Column",properties:{title:{type:"string","x-component":"Input","x-read-pretty":!0}}},column3:{type:"void",title:'{{ t("Verification type") }}',"x-component":"TableV2.Column",properties:{verificationType:{type:"string","x-component":"Select","x-read-pretty":!0,enum:"{{ types }}"}}},column4:{type:"void",title:'{{ t("Description") }}',"x-component":"TableV2.Column",properties:{description:{type:"string","x-component":"Input.TextArea","x-component-props":{ellipsis:!0},"x-pattern":"readPretty"}}},column5:{type:"void",title:'{{ t("Actions") }}',"x-decorator":"TableV2.Column.ActionBar","x-component":"TableV2.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{edit:{type:"void",title:'{{ t("Edit") }}',"x-action":"update","x-component":"Action.Link","x-component-props":{openMode:"drawer"},properties:{drawer:{type:"void",title:'{{ t("Edit record") }}',"x-component":"Action.Drawer","x-decorator":"FormV2","x-use-decorator-props":"useEditFormProps",properties:{title:{type:"string","x-decorator":"FormItem",title:'{{ t("Title") }}',"x-component":"Input"},description:{"x-decorator":"FormItem",type:"string",title:'{{ t("Description") }}',"x-component":"Input.TextArea"},options:{type:"object","x-component":"Settings"},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{ t("Cancel") }}',"x-component":"Action","x-use-component-props":"useCancelActionProps"},submit:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary"},"x-use-component-props":"useEditActionProps"}}}}}}},destroy:{type:"void",title:'{{ t("Delete") }}',"x-action":"destroy","x-component":"Action.Link","x-use-component-props":"useDestroyActionProps","x-component-props":{confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}}}}}}}}}}}}},p={name:"verifiers",autoGenId:!1,fields:[{type:"uid",name:"name",primaryKey:!0},{type:"string",name:"title"},{type:"string",name:"verificationType"},{type:"string",name:"description"},{type:"jsonb",name:"options"},{interface:"m2m",type:"belongsToMany",name:"users",target:"users",foreignKey:"verifier",otherKey:"userId",onDelete:"CASCADE",sourceKey:"name",targetKey:"id",through:"usersVerifiers"}]},a=n(573),u=n(721),l=n(482),m=(0,o.createContext)({type:""});m.displayName="VerificationTypeContext";var y=(0,o.createContext)({types:[]});y.displayName="VerificationTypesContext";var f=n(505),d=n(563),v=n(875);function x(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 b(e,t,n,o,r,i,c){try{var s=e[i](c),p=s.value}catch(e){n(e);return}s.done?t(p):Promise.resolve(p).then(o,r)}function g(e){return function(){var t=this,n=arguments;return new Promise(function(o,r){var i=e.apply(t,n);function c(e){b(i,o,r,c,s,"next",e)}function s(e){b(i,o,r,c,s,"throw",e)}c(void 0)})}}function A(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,s=!1;try{for(r=r.call(e);!(c=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);c=!0);}catch(e){s=!0,o=e}finally{try{c||null==r.return||r.return()}finally{if(s)throw o}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return x(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 x(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 h(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: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 p=[i,s];if(n)throw TypeError("Generator is already executing.");for(;c;)try{if(n=1,o&&(r=2&p[0]?o.return:p[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,p[1])).done)return r;switch(o=0,r&&(p=[2&p[0],r.value]),p[0]){case 0:case 1:r=p;break;case 4:return c.label++,{value:p[1],done:!1};case 5:c.label++,o=p[1],p=[0];continue;case 7:p=c.ops.pop(),c.trys.pop();continue;default:if(!(r=(r=c.trys).length>0&&r[r.length-1])&&(6===p[0]||2===p[0])){c=0;continue}if(3===p[0]&&(!r||p[1]>r[0]&&p[1]<r[3])){c.label=p[1];break}if(6===p[0]&&c.label<r[1]){c.label=r[1],r=p;break}if(r&&c.label<r[2]){c.label=r[2],c.ops.push(p);break}r[2]&&c.ops.pop(),c.trys.pop();continue}p=t.call(e,c)}catch(e){p=[6,e],o=0}finally{n=r=0}if(5&p[0])throw p[1];return{value:p[0]?p[1]:void 0,done:!0}}}}var C=function(){var e=(0,o.useContext)(m).type;return{form:(0,o.useMemo)(function(){return(0,d.createForm)({initialValues:{name:"v_".concat((0,v.uid)()),verificationType:e}})},[e])}},w=function(){var e=(0,i.useCollectionRecordData)();return{form:(0,o.useMemo)(function(){return(0,d.createForm)({initialValues:e})},[e])}},P=function(){var e=(0,i.useActionContext)().setVisible,t=(0,f.useForm)();return{type:"default",onClick:function(){e(!1),t.reset()}}},S=function(){var e=(0,i.useActionContext)().setVisible,t=u.App.useApp().message,n=(0,f.useForm)(),o=(0,i.useDataBlockResource)(),r=(0,i.useDataBlockRequest)().refresh,c=(0,a.SD)().t;return{type:"primary",onClick:function(){return g(function(){var i;return h(this,function(s){switch(s.label){case 0:return[4,n.submit()];case 1:return s.sent(),i=n.values,[4,o.create({values:i})];case 2:return s.sent(),r(),t.success(c("Saved successfully")),e(!1),n.reset(),[2]}})})()}}},D=function(){var e=(0,i.useActionContext)().setVisible,t=u.App.useApp().message,n=(0,f.useForm)(),o=(0,i.useDataBlockResource)(),r=(0,i.useDataBlockRequest)().refresh,c=(0,i.useCollection)().getFilterTargetKey(),s=(0,a.SD)().t;return{type:"primary",onClick:function(){return g(function(){var i;return h(this,function(p){switch(p.label){case 0:return[4,n.submit()];case 1:return p.sent(),i=n.values,[4,o.update({values:i,filterByTk:i[c]})];case 2:return p.sent(),r(),t.success(s("Saved successfully")),e(!1),n.reset(),[2]}})})()}}},T=function(){var e=(0,a.SD)().t,t=A((0,o.useState)(!1),2),n=t[0],s=t[1],p=A((0,o.useState)(""),2),f=p[0],d=p[1],v=(0,o.useContext)(y).types.map(function(e){var t,n;return 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={onClick:function(){s(!0),d(e.value)}},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});return r().createElement(i.ActionContextProvider,{value:{visible:n,setVisible:s}},r().createElement(m.Provider,{value:{type:f}},r().createElement(u.Dropdown,{menu:{items:v}},r().createElement(u.Button,{icon:r().createElement(l.PlusOutlined,null),type:"primary"},e("Add new")," ",r().createElement(l.DownOutlined,null))),r().createElement(i.SchemaComponent,{scope:{setType:d,useCreateFormProps:C},schema:c})))},O=function(e){var t,n=(0,i.usePlugin)("verification").verificationManager.getVerification(e);return null==n||null==(t=n.components)?void 0:t.AdminSettingsForm},k=(0,f.observer)(function(){var e=(0,f.useForm)(),t=(0,i.useCollectionRecordData)(),n=O(e.values.verificationType||t.verificationType);return n?r().createElement(n,null):null},{displayName:"VerificationSettings"}),E=function(){var e=(0,a.SD)().t,t=A((0,o.useState)([]),2),n=t[0],c=t[1],u=(0,i.useAPIClient)();return(0,i.useRequest)(function(){return u.resource("verifiers").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:f.Schema.compile(t.title||t.name,{t:e}),value:t.name}})})},{onSuccess:function(e){c(e)}}),r().createElement(y.Provider,{value:{types:n}},r().createElement(i.ExtendCollectionsProvider,{collections:[p]},r().createElement(i.SchemaComponent,{schema:s,components:{AddNew:T,Settings:k},scope:{types:n,useEditFormProps:w,useCancelActionProps:P,useCreateActionProps:S,useEditActionProps:D}})))}}}]);
@@ -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_verification=self.webpackChunk_nocobase_plugin_verification||[]).push([["88"],{827:function(e,t,n){n.r(t),n.d(t,{VerifierSelect:function(){return v}});var i=n(156),l=n.n(i),a=n(505),r=n(721),u=n(772),o=n(573),c=n(128),s=n(632),v=(0,a.connect)(function(e){var t=(0,o.SD)().t,n=e.scene,v=e.value,f=e.title,m=e.onChange,p=e.multiple;p=p?"multiple":void 0;var d=(0,u.useAPIClient)(),h=(0,u.useRequest)(function(){return d.resource("verifiers").listByScene({scene:n}).then(function(e){var t;return null==e||null==(t=e.data)?void 0:t.data})}).data||{},g=h.verifiers,b=void 0===g?[]:g,E=h.availableTypes,k=(0,i.useMemo)(function(){return null==b?void 0:b.map(function(e){return{label:e.title,value:e.name}})},[b]);return l().createElement(s.FormItem,{label:f||t("Verifiers"),extra:l().createElement(l().Fragment,null,t("The following types of verifiers are available:"),(void 0===E?[]:E).map(function(e){return a.Schema.compile(e.title,{t:t})}).join(", "),". ",t("Go to")," ",l().createElement(c.Link,{to:"/admin/settings/verification"},t("create verifiers")))},l().createElement(r.Select,{allowClear:!0,options:k,value:v,mode:p,onChange:m}))},(0,a.mapReadPretty)(function(){var e,t=(0,a.useField)();return(null==(e=t.value)?void 0:e.length)?l().createElement(u.EllipsisWithTooltip,{ellipsis:!0},t.value.map(function(e){return l().createElement(r.Tag,{key:e.name},e.title)})):null}))}}]);
@@ -7,7 +7,7 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
  import React from 'react';
10
- export declare const UserVerificatorsContext: React.Context<{
10
+ export declare const UserVerifiersContext: React.Context<{
11
11
  refresh: () => void;
12
12
  }>;
13
13
  export declare const Verification: () => React.JSX.Element;
@@ -16,5 +16,5 @@ export declare class PluginVerificationClient extends Plugin {
16
16
  load(): Promise<void>;
17
17
  }
18
18
  export { SMS_OTP_VERIFICATION_TYPE };
19
- export { UserVerificatorsContext } from './VerificationMenu';
19
+ export { UserVerifiersContext } from './VerificationMenu';
20
20
  export default PluginVerificationClient;
@@ -7,4 +7,4 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
 
10
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react-i18next"),require("@formily/antd-v5"),require("@formily/shared"),require("@nocobase/utils/client"),require("@formily/core"),require("@nocobase/client"),require("antd"),require("@formily/react"),require("react-router-dom"),require("@ant-design/icons"),require("react")):"function"==typeof define&&define.amd?define("@nocobase/plugin-verification",["react-i18next","@formily/antd-v5","@formily/shared","@nocobase/utils/client","@formily/core","@nocobase/client","antd","@formily/react","react-router-dom","@ant-design/icons","react"],t):"object"==typeof exports?exports["@nocobase/plugin-verification"]=t(require("react-i18next"),require("@formily/antd-v5"),require("@formily/shared"),require("@nocobase/utils/client"),require("@formily/core"),require("@nocobase/client"),require("antd"),require("@formily/react"),require("react-router-dom"),require("@ant-design/icons"),require("react")):e["@nocobase/plugin-verification"]=t(e["react-i18next"],e["@formily/antd-v5"],e["@formily/shared"],e["@nocobase/utils/client"],e["@formily/core"],e["@nocobase/client"],e.antd,e["@formily/react"],e["react-router-dom"],e["@ant-design/icons"],e.react)}(self,function(e,t,n,r,o,i,c,a,u,s,l){return function(){var f,p,d,m,v,y,b={573:function(e,t,n){"use strict";n.d(t,{A7:function(){return o},SD:function(){return i}}),n(772);var r=n(238),o="verification";function i(){return(0,r.useTranslation)([o,"client"],{nsMode:"fallback"})}},581:function(e){e.exports=function(e,t){return"undefined"!=typeof __deoptimization_sideEffect__&&__deoptimization_sideEffect__(e,t),t}},482:function(e){"use strict";e.exports=s},632:function(e){"use strict";e.exports=t},563:function(e){"use strict";e.exports=o},505:function(e){"use strict";e.exports=a},875:function(e){"use strict";e.exports=n},772:function(e){"use strict";e.exports=i},584:function(e){"use strict";e.exports=r},721:function(e){"use strict";e.exports=c},156:function(e){"use strict";e.exports=l},238:function(t){"use strict";t.exports=e},128:function(e){"use strict";e.exports=u}},h={};function g(e){var t=h[e];if(void 0!==t)return t.exports;var n=h[e]={exports:{}};return b[e](n,n.exports,g),n.exports}g.m=b,g.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return g.d(t,{a:t}),t},g.d=function(e,t){for(var n in t)g.o(t,n)&&!g.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},g.f={},g.e=function(e){return Promise.all(Object.keys(g.f).reduce(function(t,n){return g.f[n](e,t),t},[]))},g.u=function(e){return""+({835:"cfedbdcfbe65d5f6",995:"d0b398212e5aa575"})[e]+".js"},g.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),g.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},f={},p="@nocobase/plugin-verification:",g.l=function(e,t,n,r){if(f[e]){f[e].push(t);return}if(void 0!==n){for(var o,i,c=document.getElementsByTagName("script"),a=0;a<c.length;a++){var u=c[a];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==p+n){o=u;break}}}!o&&(i=!0,(o=document.createElement("script")).charset="utf-8",o.timeout=120,g.nc&&o.setAttribute("nonce",g.nc),o.setAttribute("data-webpack",p+n),o.src=e),f[e]=[t];var s=function(t,n){o.onerror=o.onload=null,clearTimeout(l);var r=f[e];if(delete f[e],o.parentNode&&o.parentNode.removeChild(o),r&&r.forEach(function(e){return e(n)}),t)return t(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)},g.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},g.p=(!(d=window.__nocobase_public_path__||"/").endsWith("/")&&(d+="/"),d+"static/plugins/@nocobase/plugin-verification/dist/client/"),m={909:0},g.f.j=function(e,t){var n=g.o(m,e)?m[e]:void 0;if(0!==n){if(n)t.push(n[2]);else{var r=new Promise(function(t,r){n=m[e]=[t,r]});t.push(n[2]=r);var o=g.p+g.u(e),i=Error();g.l(o,function(t){if(g.o(m,e)&&(0!==(n=m[e])&&(m[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;i.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",i.name="ChunkLoadError",i.type=r,i.request=o,n[1](i)}},"chunk-"+e,e)}}},v=function(e,t){var n=t[0],r=t[1],o=t[2],i,c,a=0;if(n.some(function(e){return 0!==m[e]})){for(i in r)g.o(r,i)&&(g.m[i]=r[i]);o&&o(g)}for(e&&e(t);a<n.length;a++)c=n[a],g.o(m,c)&&m[c]&&m[c][0](),m[c]=0},(y=self.webpackChunk_nocobase_plugin_verification=self.webpackChunk_nocobase_plugin_verification||[]).forEach(v.bind(null,0)),y.push=v.bind(null,y.push.bind(y));var x={};return!function(){"use strict";g.r(x),g.d(x,{PluginVerificationClient:function(){return er},default:function(){return eo},UserVerificatorsContext:function(){return D},SMS_OTP_VERIFICATION_TYPE:function(){return n}});var e=g("772"),t=g("573"),n="sms-otp",r=g("584");function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var i=function(){var e,t,n;function i(){var e,t,n;!function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}(this,i),e=this,t="verifications",n=new r.Registry,t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}return e=i,t=[{key:"registerVerificationType",value:function(e,t){this.verifications.register(e,t)}},{key:"getVerification",value:function(e){return this.verifications.get(e)}}],o(e.prototype,t),i}(),c=g("156"),a=g.n(c),u={type:"object",properties:{accessKeyId:{title:'{{t("Access Key ID", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope",required:!0},accessKeySecret:{title:'{{t("Access Key Secret", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope","x-component-props":{password:!0},required:!0},endpoint:{title:'{{t("Endpoint", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope",required:!0},sign:{title:'{{t("Sign", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope",required:!0},template:{title:'{{t("Template code", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope",required:!0}}},s={type:"object",properties:{secretId:{title:'{{t("Secret Id", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope",required:!0},secretKey:{title:'{{t("Secret Key", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope","x-component-props":{password:!0},required:!0},region:{title:'{{t("Region", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope",required:!0},endpoint:{title:'{{t("Endpoint", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope",default:"sms.tencentcloudapi.com"},SignName:{title:'{{t("Sign name", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope"},SmsSdkAppId:{title:'{{t("Sms sdk app id", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope",required:!0},TemplateId:{title:'{{t("Template Id", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope",required:!0}}},l=g("505"),f=g("721"),p=g("238");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 m(e,t,n,r,o,i,c){try{var a=e[i](c),u=a.value}catch(e){n(e);return}a.done?t(u):Promise.resolve(u).then(r,o)}function v(){var e,t,n=(e=["\n display: flex;\n gap: 0.5em;\n "],!t&&(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return v=function(){return n},n}var y=(0,e.withDynamicSchemaProps)(function(t){var n,r,o=t.actionType,i=t.verificator,u=t.value,s=t.onChange,y=t.isLogged,b=(0,p.useTranslation)().t,h=(0,e.useAPIClient)(),g=(0,l.useForm)();var x=(n=(0,c.useState)(0),r=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],c=!0,a=!1;try{for(o=o.call(e);!(c=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);c=!0);}catch(e){a=!0,r=e}finally{try{!c&&null!=o.return&&o.return()}finally{if(a)throw r}}return i}}(n,2)||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)}}(n,r)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),S=x[0],P=x[1],A=(0,c.useRef)(null);function w(){var e;return e=function(){var e,t;return function(e,t){var n,r,o,i,c={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){return function(i){if(n)throw TypeError("Generator is already executing.");for(;c;)try{if(n=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 c.label++,{value:i[1],done:!1};case 5:c.label++,r=i[1],i=[0];continue;case 7:i=c.ops.pop(),c.trys.pop();continue;default:if(!(o=(o=c.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){c=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){c.label=i[1];break}if(6===i[0]&&c.label<o[1]){c.label=o[1],o=i;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(i);break}o[2]&&c.ops.pop(),c.trys.pop();continue}i=t.call(e,c)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}(this,function(n){switch(n.label){case 0:if(S>0)return[2];e=y?"create":"publicCreate",n.label=1;case 1:return n.trys.push([1,3,,4]),[4,h.resource("smsOTP")[e]({values: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,o,i;r=e,o=t,i=n[t],o in r?Object.defineProperty(r,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[o]=i})}return e}({action:o,verificator:i},g.values)})];case 2:return t=n.sent().data.data,f.message.success(b("Operation succeeded")),u&&s(""),P(t.expiresAt?Math.ceil((Date.parse(t.expiresAt)-Date.now())/1e3):60),A.current=setInterval(function(){P(function(e){return e-1})},1e3),[3,4];case 3:return console.error(n.sent()),[3,4];case 4:return[2]}})},(w=function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function c(e){m(i,r,o,c,a,"next",e)}function a(e){m(i,r,o,c,a,"throw",e)}c(void 0)})}).apply(this,arguments)}return(0,c.useEffect)(function(){S<=0&&A.current&&clearInterval(A.current)},[S]),a().createElement("fieldset",{className:(0,e.css)(v())},a().createElement(f.Input,{value:u,onChange:s}),a().createElement(f.Button,{onClick:function(){return w.apply(this,arguments)},disabled:S>0},S>0?b("Retry after {{count}} seconds",{count:S}):b("Send code")))},{displayName:"VerificationCode"}),b={type:"void",name:"sms-otp",properties:{uuid:{type:"string",required:!0,"x-component":"Input","x-decorator":"FormItem",title:'{{t("Phone")}}',"x-component-props":{style:{}},"x-read-pretty":"{{ phone ? true : false }}",default:"{{ phone }}"},code:{type:"string",required:!0,title:'{{t("Verification code")}}',"x-component":"VerificationCode","x-use-component-props":"useVerificationCodeProps","x-decorator":"FormItem"}}},h=function(t){var n,r=(0,e.usePlugin)("verification").smsOTPProviderManager.getProvider(t);return null==r?void 0:null===(n=r.components)||void 0===n?void 0:n.AdminSettingsForm},S=(0,l.observer)(function(){var e,t=h(null===(e=(0,l.useForm)().values.options)||void 0===e?void 0:e.provider);return t?a().createElement(t,null):null},{displayName:"SMSOTPVerificationSettings"}),P={type:"void",name:"sms-otp",properties:{uuid:{type:"string",required:!0,"x-component":"Input","x-decorator":"FormItem",title:'{{t("Phone")}}',"x-component-props":{style:{}}},code:{type:"string",required:!0,title:'{{t("Verification code")}}',"x-component":"VerificationCode","x-component-props":{targetFieldName:"phone",actionType:"{{ actionType }}",verificator:"{{ verificator }}"},"x-decorator":"FormItem"}}},A={components:{VerificationForm:function(t){var n=t.verificator,r=t.actionType,o=t.boundInfo,i=t.isLogged;return a().createElement(e.SchemaComponent,{schema:b,scope:{phone:null==o?void 0:o.publicInfo,useVerificationCodeProps:function(){return{actionType:r,verificator:n,isLogged:i}}},components:{VerificationCode:y}})},AdminSettingsForm:function(){return a().createElement(e.SchemaComponent,{components:{Settings:S},schema:{type:"void",properties:{provider:{title:(0,r.tval)("Provider",{ns:t.A7}),type:"string",required:!0,"x-decorator":"FormItem","x-component":"RemoteSelect","x-component-props":{manual:!1,fieldNames:{label:"title",value:"name"},service:{resource:"smsOTPProviders"}}},settings:{type:"object","x-component":"Settings"}}}})},BindForm:function(t){var n=t.verificator,r=t.actionType;return a().createElement(e.SchemaComponent,{scope:{verificator:n,actionType:r},schema:P,components:{VerificationCode:y}})}}},w={components:{AdminSettingsForm:function(){return a().createElement(e.SchemaComponent,{schema:u})}}},C={components:{AdminSettingsForm:function(){return a().createElement(e.SchemaComponent,{schema:s})}}};function T(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var E=function(){var e,t,n;function o(){var e,t,n;!function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}(this,o),e=this,t="providers",n=new r.Registry,t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}return e=o,t=[{key:"registerProvider",value:function(e,t){this.providers.register(e,t)}},{key:"getProvider",value:function(e){return this.providers.get(e)}}],T(e.prototype,t),o}(),I=g("875"),O=g("563");function j(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 k(e,t,n,r,o,i,c){try{var a=e[i](c),u=a.value}catch(e){n(e);return}a.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 c(e){k(i,r,o,c,a,"next",e)}function a(e){k(i,r,o,c,a,"throw",e)}c(void 0)})}}function F(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}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){F(e,t,n[t])})}return e}function q(e,t){return 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=[],c=!0,a=!1;try{for(o=o.call(e);!(c=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);c=!0);}catch(e){a=!0,r=e}finally{try{!c&&null!=o.return&&o.return()}finally{if(a)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return j(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 j(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 M(e,t){var n,r,o,i,c={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){return function(i){if(n)throw TypeError("Generator is already executing.");for(;c;)try{if(n=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 c.label++,{value:i[1],done:!1};case 5:c.label++,r=i[1],i=[0];continue;case 7:i=c.ops.pop(),c.trys.pop();continue;default:if(!(o=(o=c.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){c=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){c.label=i[1];break}if(6===i[0]&&c.label<o[1]){c.label=o[1],o=i;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(i);break}o[2]&&c.ops.pop(),c.trys.pop();continue}i=t.call(e,c)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}var D=(0,c.createContext)(null),G=function(n){var r=(0,l.useForm)(),o=(0,e.useAPIClient)(),i=(0,t.SD)().t,a=(0,c.useContext)(D).refresh,u=(0,e.useActionContext)().setVisible;return{type:"primary",htmlType:"submit",onClick:V(function(){return M(this,function(e){switch(e.label){case 0:return[4,r.submit()];case 1:return e.sent(),[4,o.resource("verificators").bind({values:_({verificator:n},r.values)})];case 2:return e.sent(),f.message.success(i("Bound successfully")),u(!1),a(),[2]}})})}},B=function(){var n=(0,l.useForm)(),r=(0,e.useAPIClient)(),o=(0,t.SD)().t,i=(0,c.useContext)(D).refresh,a=(0,e.useActionContext)().setVisible;return{type:"primary",htmlType:"submit",onClick:V(function(){return M(this,function(e){switch(e.label){case 0:return[4,n.submit()];case 1:return e.sent(),[4,r.resource("verificators").unbind({values:_({},n.values)})];case 2:return e.sent(),f.message.success(o("Unbound successfully")),a(!1),i(),[2]}})})}},L=function(){var t=(0,e.useActionContext)().setVisible;return{onClick:function(){t(!1)}}},R=function(n){var r,o=n.verificator,i=(0,t.SD)().t,c=(0,e.usePlugin)("verification");if(!o)return null;var u=c.verificationManager.getVerification(o.verificationType),s=null==u?void 0:null===(r=u.components)||void 0===r?void 0:r.BindForm;return a().createElement(e.SchemaComponent,{components:{C:s},scope:{useBindActionProps:function(){return G(o.name)},useCancelActionProps:L},schema:{type:"void",properties:F({},(0,I.uid)(),{type:"object","x-component":"Action.Modal","x-component-props":{width:520},title:i(o.title),"x-decorator":"FormV2",properties:{form:{type:"void","x-component":"C","x-component-props":{verificator:o.name,actionType:"verificators:bind",isLogged:!0}},footer:{type:"void","x-component":"Action.Modal.Footer",properties:{close:{title:i("Cancel"),"x-component":"Action","x-component-props":{type:"default"},"x-use-component-props":"useCancelActionProps"},submit:{title:i("Bind"),"x-component":"Action","x-use-component-props":"useBindActionProps"}}}}})}})},U=function(n){var r=n.verificators,o=n.unbindVerificator,i=(0,t.SD)().t,u=(0,e.usePlugin)("verification"),s=r.map(function(t){var n,r=u.verificationManager.getVerification(t.verificationType),s=null==r?void 0:null===(n=r.components)||void 0===n?void 0:n.VerificationForm;if(!!s){var f=l.Schema.compile(t.verificationTypeTitle||t.verificationType,{t:i});return _({component:a().createElement(e.SchemaComponent,{components:{C:s},scope:{useCancelActionProps:L,useUnbindActionProps:B,useFormProps:function(){var e,n;return e=t.name,n=o,{form:(0,c.useMemo)(function(){return(0,O.createForm)({initialValues:{verificator:e,unbindVerificator:n}})},[e,n])}}},schema:{type:"void",properties:{form:{type:"object","x-component":"FormV2","x-use-component-props":"useFormProps",properties:{bind:{type:"void","x-component":"C","x-component-props":{actionType:"verificators:unbind",verificator:t.name,boundInfo:t.boundInfo,isLogged:!0}},footer:{type:"void","x-component":"Action.Modal.FootBar",properties:{close:{title:i("Cancel"),"x-component":"Action","x-component-props":{type:"default"},"x-use-component-props":"useCancelActionProps"},submit:{title:i("Unbind"),"x-component":"Action","x-use-component-props":"useUnbindActionProps"}}}}}}}}),tabTitle:t.title||f},t)}}).filter(function(e){return e});return a().createElement(a().Fragment,null,s.length?a().createElement(f.Tabs,{destroyInactiveTabPane:!0,items:s.map(function(e){return{label:e.tabTitle,key:e.name,children:e.component}})}):null)},W=function(n){var r=n.verificator,o=(0,t.SD)().t,i=(0,e.useAPIClient)(),c=(0,e.useRequest)(function(){return i.resource("verificators").listForVerify({scene:"unbind-verificator"}).then(function(e){var t;return null==e?void 0:null===(t=e.data)||void 0===t?void 0:t.data})},{refreshDeps:[r]}),u=c.data,s=c.loading;return!r||s?null:a().createElement(e.SchemaComponent,{components:{UnbindForm:U},schema:{type:"void",properties:F({},(0,I.uid)(),{type:"object","x-component":"Action.Modal","x-component-props":{width:520},title:o("Unbind verificator"),properties:F({},(0,I.uid)(),{type:"void","x-component":"UnbindForm","x-component-props":{verificators:u,unbindVerificator:r.name}})})}})},N=function(){var n=(0,t.SD)().t,r=(0,e.useAPIClient)(),o=(0,e.useRequest)(function(){return r.resource("verificators").listByUser().then(function(e){var t;return null==e?void 0:null===(t=e.data)||void 0===t?void 0:t.data})}),i=o.data,u=o.refresh,s=q((0,c.useState)(!1),2),p=s[0],d=s[1],m=q((0,c.useState)(!1),2),v=m[0],y=m[1],b=q((0,c.useState)(null),2),h=b[0],g=b[1],x=function(e){d(!0),g(e)},S=function(e){y(!0),g(e)};return a().createElement(D.Provider,{value:{refresh:u}},a().createElement(f.List,{bordered:!0,dataSource:i,renderItem:function(e){var t,r,o;return a().createElement(f.List.Item,{actions:(null===(t=e.boundInfo)||void 0===t?void 0:t.bound)?[a().createElement("a",{key:"unbind",onClick:function(){return S(e)}},n("Unbind"))]:[a().createElement("a",{key:"bind",onClick:function(){return x(e)}},n("Bind"))]},a().createElement(f.List.Item.Meta,{title:a().createElement(a().Fragment,null,l.Schema.compile(e.title,{t:n}),(null===(r=e.boundInfo)||void 0===r?void 0:r.bound)?a().createElement(f.Tag,{color:"success",style:{marginLeft:"10px"}},n("Configured")):a().createElement(f.Tag,{color:"warning",style:{marginLeft:"10px"}},n("Not configured"))),description:l.Schema.compile(e.description,{t:n})}),a().createElement("div",{style:{marginLeft:"10px"}},null===(o=e.boundInfo)||void 0===o?void 0:o.publicInfo))}}),a().createElement(e.ActionContextProvider,{value:{visible:p,setVisible:d}},p?a().createElement(R,{verificator:h}):null),a().createElement(e.ActionContextProvider,{value:{visible:v,setVisible:y}},v?a().createElement(W,{verificator:h}):null))},z=function(){var n=(0,c.useContext)(e.DropdownVisibleContext),r=q((0,c.useState)(!1),2),o=r[0],i=r[1],u=(0,t.SD)().t,s=(0,e.useZIndexContext)()+10,l=(0,c.useCallback)(function(e){var t;e.stopPropagation(),null==n||null===(t=n.setVisible)||void 0===t||t.call(n,!1),i(function(e){return!e||e})},[n]),f=(0,c.useMemo)(function(){return a().createElement(e.SchemaComponent,{components:{Verificators:N},schema:{type:"object",properties:F({},(0,I.uid)(),{"x-component":"Action.Drawer","x-component-props":{zIndex:s},type:"void",title:'{{t("Verification")}}',properties:{form:{type:"void","x-component":"Verificators"}}})}})},[s]);return a().createElement(e.zIndexContext.Provider,{value:s},a().createElement(e.SchemaSettingsItem,{eventKey:"Verification",title:"Verification"},a().createElement("div",{onClick:l},u("Verification"))),a().createElement(e.ActionContextProvider,{value:{visible:o,setVisible:i}},o&&a().createElement("div",{onClick:function(e){return e.stopPropagation()}},f)))},K=g(581);function $(e,t,n,r,o,i,c){try{var a=e[i](c),u=a.value}catch(e){n(e);return}a.done?t(u):Promise.resolve(u).then(r,o)}function Y(e,t,n){return(Y=ee()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&Q(o,n.prototype),o}).apply(null,arguments)}function Z(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function H(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function J(e){return(J=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Q(e,t){return(Q=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function X(e){var t="function"==typeof Map?new Map:void 0;return(X=function(e){var n;if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return Y(e,arguments,J(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),Q(r,e)})(e)}function ee(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(ee=function(){return!!e})()}var et=(0,e.lazy)(function(){return K("imported_4g78mb_component",g.e("995").then(g.bind(g,252)))},"Verificators").Verificators,en=(0,e.lazy)(function(){return K("imported_e2nirj_component",g.e("835").then(g.bind(g,564)))},"VerificatorSelect").VerificatorSelect,er=function(e){var r,o,c;function a(){var e,t,n,r;return!function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}(this,a),t=this,n=a,r=arguments,n=J(n),H(e=function(e,t){return t&&("object"===function(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}(t)||"function"==typeof t)?t:function(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(t,ee()?Reflect.construct(n,r||[],J(t).constructor):n.apply(t,r)),"verificationManager",new i),H(e,"smsOTPProviderManager",new E),e}return!function(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Q(e,t)}(a,e),r=a,o=[{key:"load",value:function(){var e,r=this;return(e=function(){return function(e,t){var n,r,o,i,c={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){return function(i){if(n)throw TypeError("Generator is already executing.");for(;c;)try{if(n=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 c.label++,{value:i[1],done:!1};case 5:c.label++,r=i[1],i=[0];continue;case 7:i=c.ops.pop(),c.trys.pop();continue;default:if(!(o=(o=c.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){c=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){c.label=i[1];break}if(6===i[0]&&c.label<o[1]){c.label=o[1],o=i;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(i);break}o[2]&&c.ops.pop(),c.trys.pop();continue}i=t.call(e,c)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}(this,function(e){return r.app.pluginSettingsManager.add(t.A7,{icon:"CheckCircleOutlined",title:'{{t("Verification", { ns: "'.concat(t.A7,'" })}}'),Component:et,aclSnippet:"pm.verification.verificators"}),r.app.addComponents({VerificatorSelect:en}),r.app.addUserCenterSettingsItem({name:"verification",Component:z,sort:150}),r.verificationManager.registerVerificationType(n,A),r.smsOTPProviderManager.registerProvider("sms-aliyun",w),r.smsOTPProviderManager.registerProvider("sms-tencent",C),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function c(e){$(i,r,o,c,a,"next",e)}function a(e){$(i,r,o,c,a,"throw",e)}c(void 0)})})()}}],Z(r.prototype,o),a}(X(e.Plugin)),eo=er}(),x}()});
10
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@formily/core"),require("@nocobase/client"),require("@formily/shared"),require("react-router-dom"),require("@formily/antd-v5"),require("react"),require("@formily/react"),require("@nocobase/utils/client"),require("@ant-design/icons"),require("antd"),require("react-i18next")):"function"==typeof define&&define.amd?define("@nocobase/plugin-verification",["@formily/core","@nocobase/client","@formily/shared","react-router-dom","@formily/antd-v5","react","@formily/react","@nocobase/utils/client","@ant-design/icons","antd","react-i18next"],t):"object"==typeof exports?exports["@nocobase/plugin-verification"]=t(require("@formily/core"),require("@nocobase/client"),require("@formily/shared"),require("react-router-dom"),require("@formily/antd-v5"),require("react"),require("@formily/react"),require("@nocobase/utils/client"),require("@ant-design/icons"),require("antd"),require("react-i18next")):e["@nocobase/plugin-verification"]=t(e["@formily/core"],e["@nocobase/client"],e["@formily/shared"],e["react-router-dom"],e["@formily/antd-v5"],e.react,e["@formily/react"],e["@nocobase/utils/client"],e["@ant-design/icons"],e.antd,e["react-i18next"])}(self,function(e,t,n,r,o,i,c,a,u,s,l){return function(){var p,f,m,d,v,y,b={573:function(e,t,n){"use strict";n.d(t,{A7:function(){return o},SD:function(){return i}}),n(772);var r=n(238),o="verification";function i(){return(0,r.useTranslation)([o,"client"],{nsMode:"fallback"})}},581:function(e){e.exports=function(e,t){return"undefined"!=typeof __deoptimization_sideEffect__&&__deoptimization_sideEffect__(e,t),t}},482:function(e){"use strict";e.exports=u},632:function(e){"use strict";e.exports=o},563:function(t){"use strict";t.exports=e},505:function(e){"use strict";e.exports=c},875:function(e){"use strict";e.exports=n},772:function(e){"use strict";e.exports=t},584:function(e){"use strict";e.exports=a},721:function(e){"use strict";e.exports=s},156:function(e){"use strict";e.exports=i},238:function(e){"use strict";e.exports=l},128:function(e){"use strict";e.exports=r}},h={};function g(e){var t=h[e];if(void 0!==t)return t.exports;var n=h[e]={exports:{}};return b[e](n,n.exports,g),n.exports}g.m=b,g.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return g.d(t,{a:t}),t},g.d=function(e,t){for(var n in t)g.o(t,n)&&!g.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},g.f={},g.e=function(e){return Promise.all(Object.keys(g.f).reduce(function(t,n){return g.f[n](e,t),t},[]))},g.u=function(e){return""+({490:"83b24f85ae99a175",88:"937c9eccebc38607"})[e]+".js"},g.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),g.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},p={},f="@nocobase/plugin-verification:",g.l=function(e,t,n,r){if(p[e])return void p[e].push(t);if(void 0!==n)for(var o,i,c=document.getElementsByTagName("script"),a=0;a<c.length;a++){var u=c[a];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==f+n){o=u;break}}o||(i=!0,(o=document.createElement("script")).charset="utf-8",o.timeout=120,g.nc&&o.setAttribute("nonce",g.nc),o.setAttribute("data-webpack",f+n),o.src=e),p[e]=[t];var s=function(t,n){o.onerror=o.onload=null,clearTimeout(l);var r=p[e];if(delete p[e],o.parentNode&&o.parentNode.removeChild(o),r&&r.forEach(function(e){return e(n)}),t)return t(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)},g.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(m=window.__nocobase_public_path__||"/").endsWith("/")||(m+="/"),g.p=m+"static/plugins/@nocobase/plugin-verification/dist/client/",d={909:0},g.f.j=function(e,t){var n=g.o(d,e)?d[e]:void 0;if(0!==n)if(n)t.push(n[2]);else{var r=new Promise(function(t,r){n=d[e]=[t,r]});t.push(n[2]=r);var o=g.p+g.u(e),i=Error();g.l(o,function(t){if(g.o(d,e)&&(0!==(n=d[e])&&(d[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;i.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",i.name="ChunkLoadError",i.type=r,i.request=o,n[1](i)}},"chunk-"+e,e)}},v=function(e,t){var n,r,o=t[0],i=t[1],c=t[2],a=0;if(o.some(function(e){return 0!==d[e]})){for(n in i)g.o(i,n)&&(g.m[n]=i[n]);c&&c(g)}for(e&&e(t);a<o.length;a++)r=o[a],g.o(d,r)&&d[r]&&d[r][0](),d[r]=0},(y=self.webpackChunk_nocobase_plugin_verification=self.webpackChunk_nocobase_plugin_verification||[]).forEach(v.bind(null,0)),y.push=v.bind(null,y.push.bind(y));var x={};return!function(){"use strict";g.r(x),g.d(x,{default:function(){return et},UserVerifiersContext:function(){return q},PluginVerificationClient:function(){return ee},SMS_OTP_VERIFICATION_TYPE:function(){return n}});var e=g(772),t=g(573),n="sms-otp",r=g(584),o=function(){var e;function t(){var e,n;if(!(this instanceof t))throw TypeError("Cannot call a class as a function");e="verifications",n=new r.Registry,e in this?Object.defineProperty(this,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):this[e]=n}return e=[{key:"registerVerificationType",value:function(e,t){this.verifications.register(e,t)}},{key:"getVerification",value:function(e){return this.verifications.get(e)}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(t.prototype,e),t}(),i=g(156),c=g.n(i),a={type:"object",properties:{accessKeyId:{title:'{{t("Access Key ID", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope",required:!0},accessKeySecret:{title:'{{t("Access Key Secret", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope","x-component-props":{password:!0},required:!0},endpoint:{title:'{{t("Endpoint", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope",required:!0},sign:{title:'{{t("Sign", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope",required:!0},template:{title:'{{t("Template code", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope",required:!0}}},u={type:"object",properties:{secretId:{title:'{{t("Secret Id", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope",required:!0},secretKey:{title:'{{t("Secret Key", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope","x-component-props":{password:!0},required:!0},region:{title:'{{t("Region", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope",required:!0},endpoint:{title:'{{t("Endpoint", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope",default:"sms.tencentcloudapi.com"},SignName:{title:'{{t("Sign name", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope"},SmsSdkAppId:{title:'{{t("Sms sdk app id", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope",required:!0},TemplateId:{title:'{{t("Template Id", { ns: "'.concat(t.A7,'" })}}'),type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope",required:!0}}},s=g(505),l=g(721),p=g(238);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 m(e,t,n,r,o,i,c){try{var a=e[i](c),u=a.value}catch(e){n(e);return}a.done?t(u):Promise.resolve(u).then(r,o)}function d(){var e,t,n=(e=["\n display: flex;\n gap: 0.5em;\n "],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return d=function(){return n},n}var v=(0,e.withDynamicSchemaProps)(function(t){var n,r=t.actionType,o=t.verifier,a=t.value,u=t.onChange,v=t.isLogged,y=(0,p.useTranslation)().t,b=(0,e.useAPIClient)(),h=(0,s.useForm)(),g=(n=(0,i.useState)(0),function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],c=!0,a=!1;try{for(o=o.call(e);!(c=(n=o.next()).done)&&(i.push(n.value),i.length!==t);c=!0);}catch(e){a=!0,r=e}finally{try{c||null==o.return||o.return()}finally{if(a)throw r}}return i}}(n,2)||function(e,t){if(e){if("string"==typeof e)return f(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 f(e,t)}}(n,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.")}()),x=g[0],S=g[1],P=(0,i.useRef)(null);function A(){var e;return e=function(){var e,t;return function(e,t){var n,r,o,i,c={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 u=[i,a];if(n)throw TypeError("Generator is already executing.");for(;c;)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 c.label++,{value:u[1],done:!1};case 5:c.label++,r=u[1],u=[0];continue;case 7:u=c.ops.pop(),c.trys.pop();continue;default:if(!(o=(o=c.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){c=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){c.label=u[1];break}if(6===u[0]&&c.label<o[1]){c.label=o[1],o=u;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(u);break}o[2]&&c.ops.pop(),c.trys.pop();continue}u=t.call(e,c)}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}}}}(this,function(n){switch(n.label){case 0:if(x>0)return[2];e=v?"create":"publicCreate",n.label=1;case 1:return n.trys.push([1,3,,4]),[4,b.resource("smsOTP")[e]({values: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}({action:r,verifier:o},h.values)})];case 2:return t=n.sent().data.data,l.message.success(y("Operation succeeded")),a&&u(""),S(t.expiresAt?Math.ceil((Date.parse(t.expiresAt)-Date.now())/1e3):60),P.current=setInterval(function(){S(function(e){return e-1})},1e3),[3,4];case 3:return console.error(n.sent()),[3,4];case 4:return[2]}})},(A=function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function c(e){m(i,r,o,c,a,"next",e)}function a(e){m(i,r,o,c,a,"throw",e)}c(void 0)})}).apply(this,arguments)}return(0,i.useEffect)(function(){x<=0&&P.current&&clearInterval(P.current)},[x]),c().createElement("fieldset",{className:(0,e.css)(d())},c().createElement(l.Input,{value:a,onChange:u}),c().createElement(l.Button,{onClick:function(){return A.apply(this,arguments)},disabled:x>0},x>0?y("Retry after {{count}} seconds",{count:x}):y("Send code")))},{displayName:"VerificationCode"}),y={type:"void",name:"sms-otp",properties:{uuid:{type:"string",required:!0,"x-component":"Input","x-decorator":"FormItem",title:'{{t("Phone")}}',"x-component-props":{style:{}},"x-read-pretty":"{{ phone ? true : false }}",default:"{{ phone }}"},code:{type:"string",required:!0,title:'{{t("Verification code")}}',"x-component":"VerificationCode","x-use-component-props":"useVerificationCodeProps","x-decorator":"FormItem"}}},b=function(t){var n,r=(0,e.usePlugin)("verification").smsOTPProviderManager.getProvider(t);return null==r||null==(n=r.components)?void 0:n.AdminSettingsForm},h=(0,s.observer)(function(){var e,t=b(null==(e=(0,s.useForm)().values.options)?void 0:e.provider);return t?c().createElement(t,null):null},{displayName:"SMSOTPVerificationSettings"}),S={type:"void",name:"sms-otp",properties:{uuid:{type:"string",required:!0,"x-component":"Input","x-decorator":"FormItem",title:'{{t("Phone")}}',"x-component-props":{style:{}}},code:{type:"string",required:!0,title:'{{t("Verification code")}}',"x-component":"VerificationCode","x-component-props":{targetFieldName:"phone",actionType:"{{ actionType }}",verifier:"{{ verifier }}"},"x-decorator":"FormItem"}}},P={components:{VerificationForm:function(t){var n=t.verifier,r=t.actionType,o=t.boundInfo,i=t.isLogged;return c().createElement(e.SchemaComponent,{schema:y,scope:{phone:null==o?void 0:o.publicInfo,useVerificationCodeProps:function(){return{actionType:r,verifier:n,isLogged:i}}},components:{VerificationCode:v}})},AdminSettingsForm:function(){return c().createElement(e.SchemaComponent,{components:{Settings:h},schema:{type:"void",properties:{provider:{title:(0,r.tval)("Provider",{ns:t.A7}),type:"string",required:!0,"x-decorator":"FormItem","x-component":"RemoteSelect","x-component-props":{manual:!1,fieldNames:{label:"title",value:"name"},service:{resource:"smsOTPProviders"}}},settings:{type:"object","x-component":"Settings"}}}})},BindForm:function(t){var n=t.verifier,r=t.actionType;return c().createElement(e.SchemaComponent,{scope:{verifier:n,actionType:r},schema:S,components:{VerificationCode:v}})}}},A={components:{AdminSettingsForm:function(){return c().createElement(e.SchemaComponent,{schema:a})}}},w={components:{AdminSettingsForm:function(){return c().createElement(e.SchemaComponent,{schema:u})}}},C=function(){var e;function t(){var e,n;if(!(this instanceof t))throw TypeError("Cannot call a class as a function");e="providers",n=new r.Registry,e in this?Object.defineProperty(this,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):this[e]=n}return e=[{key:"registerProvider",value:function(e,t){this.providers.register(e,t)}},{key:"getProvider",value:function(e){return this.providers.get(e)}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(t.prototype,e),t}(),T=g(875),E=g(563);function I(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 O(e,t,n,r,o,i,c){try{var a=e[i](c),u=a.value}catch(e){n(e);return}a.done?t(u):Promise.resolve(u).then(r,o)}function j(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function c(e){O(i,r,o,c,a,"next",e)}function a(e){O(i,r,o,c,a,"throw",e)}c(void 0)})}}function k(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function V(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){k(e,t,n[t])})}return e}function F(e,t){return 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=[],c=!0,a=!1;try{for(o=o.call(e);!(c=(n=o.next()).done)&&(i.push(n.value),!t||i.length!==t);c=!0);}catch(e){a=!0,r=e}finally{try{c||null==o.return||o.return()}finally{if(a)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return I(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 I(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 _(e,t){var n,r,o,i,c={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 u=[i,a];if(n)throw TypeError("Generator is already executing.");for(;c;)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 c.label++,{value:u[1],done:!1};case 5:c.label++,r=u[1],u=[0];continue;case 7:u=c.ops.pop(),c.trys.pop();continue;default:if(!(o=(o=c.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){c=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){c.label=u[1];break}if(6===u[0]&&c.label<o[1]){c.label=o[1],o=u;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(u);break}o[2]&&c.ops.pop(),c.trys.pop();continue}u=t.call(e,c)}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 q=(0,i.createContext)(null),M=function(n){var r=(0,s.useForm)(),o=(0,e.useAPIClient)(),c=(0,t.SD)().t,a=(0,i.useContext)(q).refresh,u=(0,e.useActionContext)().setVisible;return{type:"primary",htmlType:"submit",onClick:j(function(){return _(this,function(e){switch(e.label){case 0:return[4,r.submit()];case 1:return e.sent(),[4,o.resource("verifiers").bind({values:V({verifier:n},r.values)})];case 2:return e.sent(),l.message.success(c("Bound successfully")),u(!1),a(),[2]}})})}},D=function(){var n=(0,s.useForm)(),r=(0,e.useAPIClient)(),o=(0,t.SD)().t,c=(0,i.useContext)(q).refresh,a=(0,e.useActionContext)().setVisible;return{type:"primary",htmlType:"submit",onClick:j(function(){return _(this,function(e){switch(e.label){case 0:return[4,n.submit()];case 1:return e.sent(),[4,r.resource("verifiers").unbind({values:V({},n.values)})];case 2:return e.sent(),l.message.success(o("Unbound successfully")),a(!1),c(),[2]}})})}},G=function(){var t=(0,e.useActionContext)().setVisible;return{onClick:function(){t(!1)}}},B=function(n){var r,o=n.verifier,i=(0,t.SD)().t,a=(0,e.usePlugin)("verification");if(!o)return null;var u=a.verificationManager.getVerification(o.verificationType),s=null==u||null==(r=u.components)?void 0:r.BindForm;return c().createElement(e.SchemaComponent,{components:{C:s},scope:{useBindActionProps:function(){return M(o.name)},useCancelActionProps:G},schema:{type:"void",properties:k({},(0,T.uid)(),{type:"object","x-component":"Action.Modal","x-component-props":{width:520},title:i(o.title),"x-decorator":"FormV2",properties:{form:{type:"void","x-component":"C","x-component-props":{verifier:o.name,actionType:"verifiers:bind",isLogged:!0}},footer:{type:"void","x-component":"Action.Modal.Footer",properties:{close:{title:i("Cancel"),"x-component":"Action","x-component-props":{type:"default"},"x-use-component-props":"useCancelActionProps"},submit:{title:i("Bind"),"x-component":"Action","x-use-component-props":"useBindActionProps"}}}}})}})},L=function(n){var r=n.verifiers,o=n.unbindVerifier,a=(0,t.SD)().t,u=(0,e.usePlugin)("verification"),p=r.map(function(t){var n,r=u.verificationManager.getVerification(t.verificationType),l=null==r||null==(n=r.components)?void 0:n.VerificationForm;if(l){var p=s.Schema.compile(t.verificationTypeTitle||t.verificationType,{t:a});return V({component:c().createElement(e.SchemaComponent,{components:{C:l},scope:{useCancelActionProps:G,useUnbindActionProps:D,useFormProps:function(){var e;return e=t.name,{form:(0,i.useMemo)(function(){return(0,E.createForm)({initialValues:{verifier:e,unbindVerifier:o}})},[e,o])}}},schema:{type:"void",properties:{form:{type:"object","x-component":"FormV2","x-use-component-props":"useFormProps",properties:{bind:{type:"void","x-component":"C","x-component-props":{actionType:"verifiers:unbind",verifier:t.name,boundInfo:t.boundInfo,isLogged:!0}},footer:{type:"void","x-component":"Action.Modal.FootBar",properties:{close:{title:a("Cancel"),"x-component":"Action","x-component-props":{type:"default"},"x-use-component-props":"useCancelActionProps"},submit:{title:a("Unbind"),"x-component":"Action","x-use-component-props":"useUnbindActionProps"}}}}}}}}),tabTitle:t.title||p},t)}}).filter(function(e){return e});return c().createElement(c().Fragment,null,p.length?c().createElement(l.Tabs,{destroyInactiveTabPane:!0,items:p.map(function(e){return{label:e.tabTitle,key:e.name,children:e.component}})}):null)},R=function(n){var r=n.verifier,o=(0,t.SD)().t,i=(0,e.useAPIClient)(),a=(0,e.useRequest)(function(){return i.resource("verifiers").listForVerify({scene:"unbind-verifier"}).then(function(e){var t;return null==e||null==(t=e.data)?void 0:t.data})},{refreshDeps:[r]}),u=a.data,s=a.loading;return!r||s?null:c().createElement(e.SchemaComponent,{components:{UnbindForm:L},schema:{type:"void",properties:k({},(0,T.uid)(),{type:"object","x-component":"Action.Modal","x-component-props":{width:520},title:o("Unbind verifier"),properties:k({},(0,T.uid)(),{type:"void","x-component":"UnbindForm","x-component-props":{verifiers:u,unbindVerifier:r.name}})})}})},U=function(){var n=(0,t.SD)().t,r=(0,e.useAPIClient)(),o=(0,e.useRequest)(function(){return r.resource("verifiers").listByUser().then(function(e){var t;return null==e||null==(t=e.data)?void 0:t.data})}),a=o.data,u=o.refresh,p=F((0,i.useState)(!1),2),f=p[0],m=p[1],d=F((0,i.useState)(!1),2),v=d[0],y=d[1],b=F((0,i.useState)(null),2),h=b[0],g=b[1],x=function(e){m(!0),g(e)},S=function(e){y(!0),g(e)};return c().createElement(q.Provider,{value:{refresh:u}},c().createElement(l.List,{bordered:!0,dataSource:a,renderItem:function(e){var t,r,o;return c().createElement(l.List.Item,{actions:(null==(t=e.boundInfo)?void 0:t.bound)?[c().createElement("a",{key:"unbind",onClick:function(){return S(e)}},n("Unbind"))]:[c().createElement("a",{key:"bind",onClick:function(){return x(e)}},n("Bind"))]},c().createElement(l.List.Item.Meta,{title:c().createElement(c().Fragment,null,s.Schema.compile(e.title,{t:n}),(null==(r=e.boundInfo)?void 0:r.bound)?c().createElement(l.Tag,{color:"success",style:{marginLeft:"10px"}},n("Configured")):c().createElement(l.Tag,{color:"warning",style:{marginLeft:"10px"}},n("Not configured"))),description:s.Schema.compile(e.description,{t:n})}),c().createElement("div",{style:{marginLeft:"10px"}},null==(o=e.boundInfo)?void 0:o.publicInfo))}}),c().createElement(e.ActionContextProvider,{value:{visible:f,setVisible:m}},f?c().createElement(B,{verifier:h}):null),c().createElement(e.ActionContextProvider,{value:{visible:v,setVisible:y}},v?c().createElement(R,{verifier:h}):null))},W=function(){var n=(0,i.useContext)(e.DropdownVisibleContext),r=F((0,i.useState)(!1),2),o=r[0],a=r[1],u=(0,t.SD)().t,s=(0,e.useZIndexContext)()+10,l=(0,i.useCallback)(function(e){var t;e.stopPropagation(),null==n||null==(t=n.setVisible)||t.call(n,!1),a(function(e){return!e||e})},[n]),p=(0,i.useMemo)(function(){return c().createElement(e.SchemaComponent,{components:{Verifiers:U},schema:{type:"object",properties:k({},(0,T.uid)(),{"x-component":"Action.Drawer","x-component-props":{zIndex:s},type:"void",title:'{{t("Verification")}}',properties:{form:{type:"void","x-component":"Verifiers"}}})}})},[s]);return c().createElement(e.zIndexContext.Provider,{value:s},c().createElement(e.SchemaSettingsItem,{eventKey:"Verification",title:"Verification"},c().createElement("div",{onClick:l},u("Verification"))),c().createElement(e.ActionContextProvider,{value:{visible:o,setVisible:a}},o&&c().createElement("div",{onClick:function(e){return e.stopPropagation()}},p)))},N=g(581);function z(e,t,n,r,o,i,c){try{var a=e[i](c),u=a.value}catch(e){n(e);return}a.done?t(u):Promise.resolve(u).then(r,o)}function K(e,t,n){return(K=J()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&Z(o,n.prototype),o}).apply(null,arguments)}function $(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Y(e){return(Y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Z(e,t){return(Z=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function H(e){var t="function"==typeof Map?new Map:void 0;return(H=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return K(e,arguments,Y(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),Z(n,e)})(e)}function J(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(J=function(){return!!e})()}var Q=(0,e.lazy)(function(){return N("imported_-805vdi_component",g.e("490").then(g.bind(g,416)))},"Verifiers").Verifiers,X=(0,e.lazy)(function(){return N("imported_-1gce66s_component",g.e("88").then(g.bind(g,827)))},"VerifierSelect").VerifierSelect,ee=function(e){var r;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function i(){var e,t,n;if(!(this instanceof i))throw TypeError("Cannot call a class as a function");return t=i,n=arguments,t=Y(t),$(e=function(e,t){var n;if(t&&("object"==((n=t)&&"undefined"!=typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,J()?Reflect.construct(t,n||[],Y(this).constructor):t.apply(this,n)),"verificationManager",new o),$(e,"smsOTPProviderManager",new C),e}return i.prototype=Object.create(e&&e.prototype,{constructor:{value:i,writable:!0,configurable:!0}}),e&&Z(i,e),r=[{key:"load",value:function(){var e,r=this;return(e=function(){return function(e,t){var n,r,o,i,c={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 u=[i,a];if(n)throw TypeError("Generator is already executing.");for(;c;)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 c.label++,{value:u[1],done:!1};case 5:c.label++,r=u[1],u=[0];continue;case 7:u=c.ops.pop(),c.trys.pop();continue;default:if(!(o=(o=c.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){c=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){c.label=u[1];break}if(6===u[0]&&c.label<o[1]){c.label=o[1],o=u;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(u);break}o[2]&&c.ops.pop(),c.trys.pop();continue}u=t.call(e,c)}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}}}}(this,function(e){return r.app.pluginSettingsManager.add(t.A7,{icon:"CheckCircleOutlined",title:'{{t("Verification", { ns: "'.concat(t.A7,'" })}}'),Component:Q,aclSnippet:"pm.verification.verifiers"}),r.app.addComponents({VerifierSelect:X}),r.app.addUserCenterSettingsItem({name:"verification",Component:W,sort:150}),r.verificationManager.registerVerificationType(n,P),r.smsOTPProviderManager.registerProvider("sms-aliyun",A),r.smsOTPProviderManager.registerProvider("sms-tencent",w),[2]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function c(e){z(i,r,o,c,a,"next",e)}function a(e){z(i,r,o,c,a,"throw",e)}c(void 0)})})()}}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(i.prototype,r),i}(H(e.Plugin)),et=ee}(),x}()});
@@ -9,7 +9,7 @@
9
9
  import React from 'react';
10
10
  export declare const VerificationCode: React.FC<{
11
11
  actionType: string;
12
- verificator: string;
12
+ verifier: string;
13
13
  value: string;
14
14
  onChange: (value: any) => void;
15
15
  isLogged?: boolean;
@@ -7,7 +7,7 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
  import { ISchema } from '@formily/react';
10
- export declare const createVerificatorSchema: {
10
+ export declare const createVerifierSchema: {
11
11
  type: string;
12
12
  properties: {
13
13
  drawer: {
@@ -63,4 +63,4 @@ export declare const createVerificatorSchema: {
63
63
  };
64
64
  };
65
65
  };
66
- export declare const verficatorsSchema: ISchema;
66
+ export declare const verifiersSchema: ISchema;
@@ -8,13 +8,13 @@
8
8
  */
9
9
  import { ComponentType } from 'react';
10
10
  export type VerificationFormProps = {
11
- verificator: string;
11
+ verifier: string;
12
12
  actionType: string;
13
13
  boundInfo: any;
14
14
  isLogged?: boolean;
15
15
  };
16
16
  export type BindFormProps = {
17
- verificator: string;
17
+ verifier: string;
18
18
  actionType: string;
19
19
  isLogged?: boolean;
20
20
  };
@@ -7,4 +7,4 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
  import React from 'react';
10
- export declare const VerificatorSelect: React.ForwardRefExoticComponent<Omit<Partial<any>, "ref"> & React.RefAttributes<unknown>>;
10
+ export declare const VerifierSelect: React.ForwardRefExoticComponent<Omit<Partial<any>, "ref"> & React.RefAttributes<unknown>>;
@@ -9,4 +9,4 @@
9
9
  import React from 'react';
10
10
  export declare const useAdminSettingsForm: (verificationType: string) => any;
11
11
  export declare const Settings: React.MemoExoticComponent<import("@formily/react").ReactFC<unknown>>;
12
- export declare const Verificators: React.FC;
12
+ export declare const Verifiers: React.FC;
@@ -0,0 +1,50 @@
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
+ declare const _default: {
10
+ name: string;
11
+ autoGenId: boolean;
12
+ fields: ({
13
+ type: string;
14
+ name: string;
15
+ primaryKey: boolean;
16
+ interface?: undefined;
17
+ target?: undefined;
18
+ foreignKey?: undefined;
19
+ otherKey?: undefined;
20
+ onDelete?: undefined;
21
+ sourceKey?: undefined;
22
+ targetKey?: undefined;
23
+ through?: undefined;
24
+ } | {
25
+ type: string;
26
+ name: string;
27
+ primaryKey?: undefined;
28
+ interface?: undefined;
29
+ target?: undefined;
30
+ foreignKey?: undefined;
31
+ otherKey?: undefined;
32
+ onDelete?: undefined;
33
+ sourceKey?: undefined;
34
+ targetKey?: undefined;
35
+ through?: undefined;
36
+ } | {
37
+ interface: string;
38
+ type: string;
39
+ name: string;
40
+ target: string;
41
+ foreignKey: string;
42
+ otherKey: string;
43
+ onDelete: string;
44
+ sourceKey: string;
45
+ targetKey: string;
46
+ through: string;
47
+ primaryKey?: undefined;
48
+ })[];
49
+ };
50
+ export default _default;
@@ -0,0 +1,70 @@
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
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __export = (target, all) => {
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
+ };
18
+ var __copyProps = (to, from, except, desc) => {
19
+ if (from && typeof from === "object" || typeof from === "function") {
20
+ for (let key of __getOwnPropNames(from))
21
+ if (!__hasOwnProp.call(to, key) && key !== except)
22
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23
+ }
24
+ return to;
25
+ };
26
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
+ var verifiers_exports = {};
28
+ __export(verifiers_exports, {
29
+ default: () => verifiers_default
30
+ });
31
+ module.exports = __toCommonJS(verifiers_exports);
32
+ var verifiers_default = {
33
+ name: "verifiers",
34
+ autoGenId: false,
35
+ fields: [
36
+ {
37
+ type: "uid",
38
+ name: "name",
39
+ primaryKey: true
40
+ },
41
+ {
42
+ type: "string",
43
+ name: "title"
44
+ },
45
+ {
46
+ type: "string",
47
+ name: "verificationType"
48
+ },
49
+ {
50
+ type: "string",
51
+ name: "description"
52
+ },
53
+ {
54
+ type: "jsonb",
55
+ name: "options"
56
+ },
57
+ {
58
+ interface: "m2m",
59
+ type: "belongsToMany",
60
+ name: "users",
61
+ target: "users",
62
+ foreignKey: "verifier",
63
+ otherKey: "userId",
64
+ onDelete: "CASCADE",
65
+ sourceKey: "name",
66
+ targetKey: "id",
67
+ through: "usersVerifiers"
68
+ }
69
+ ]
70
+ };
@@ -8,16 +8,17 @@
8
8
  */
9
9
 
10
10
  module.exports = {
11
- "@nocobase/client": "1.7.0-beta.9",
11
+ "@nocobase/client": "1.7.0",
12
12
  "react": "18.2.0",
13
13
  "antd": "5.24.2",
14
14
  "@formily/shared": "2.3.2",
15
15
  "@formily/react": "2.3.0",
16
16
  "@formily/core": "2.3.0",
17
- "@nocobase/server": "1.7.0-beta.9",
18
- "@nocobase/utils": "1.7.0-beta.9",
19
- "@nocobase/actions": "1.7.0-beta.9",
20
- "@nocobase/database": "1.7.0-beta.9",
17
+ "@nocobase/server": "1.7.0",
18
+ "@nocobase/utils": "1.7.0",
19
+ "@nocobase/cache": "1.7.0",
20
+ "@nocobase/actions": "1.7.0",
21
+ "@nocobase/database": "1.7.0",
21
22
  "react-i18next": "11.18.6",
22
23
  "react-router-dom": "6.28.1",
23
24
  "@formily/antd-v5": "1.2.3",
@@ -24,15 +24,16 @@
24
24
  "Unbind": "Unbind",
25
25
  "Bind": "Bind",
26
26
  "Configured": "Configured",
27
- "Unbind verificator": "Unbind verificator",
27
+ "Unbind verifier": "Unbind verifier",
28
28
  "Not configured": "Not configured",
29
29
  "Unbound successfully": "Unbound successfully",
30
30
  "Bound successfully": "Bound successfully",
31
31
  "Verification type": "Verification type",
32
32
  "Provider": "Provider",
33
- "Verificator": "Verificator",
34
- "Verificators": "Verificators",
35
- "The following types of verificators are available:": "The following types of verifications are available: ",
33
+ "Verifier": "Verifier",
34
+ "Verifiers": "Verifiers",
35
+ "The following types of verifiers are available:": "The following types of verifiers are available: ",
36
36
  "Go to": "Go to",
37
- "create verificators": "create verificators"
37
+ "create verifiers": "create verifiers",
38
+ "Too many failed attempts. Please request a new verification code.": "Too many failed attempts. Please request a new verification code."
38
39
  }
@@ -25,15 +25,16 @@
25
25
  "Unbind": "解绑",
26
26
  "Bind": "绑定",
27
27
  "Configured": "已配置",
28
- "Unbind verificator": "解绑验证器",
28
+ "Unbind verifier": "解绑验证器",
29
29
  "Not configured": "未配置",
30
30
  "Unbound successfully": "解绑成功",
31
31
  "Bound successfully": "绑定成功",
32
32
  "Verification type": "验证类型",
33
33
  "Provider": "服务商",
34
- "Verificator": "验证器",
35
- "Verificators": "验证器",
36
- "The following types of verificators are available:": "以下类型的验证器可选:",
34
+ "Verifier": "验证器",
35
+ "Verifiers": "验证器",
36
+ "The following types of verifiers are available:": "以下类型的验证器可选:",
37
37
  "Go to": "前往",
38
- "create verificators": "创建验证器"
38
+ "create verifiers": "创建验证器",
39
+ "Too many failed attempts. Please request a new verification code.": "验证失败次数过多,请重新获取验证码。"
39
40
  }