@nocobase/plugin-workflow-mailer 2.2.0-beta.1 → 2.2.0-beta.3
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.
- package/dist/client/MailerInstruction.d.ts +48 -0
- package/dist/client/index.js +1 -1
- package/dist/externalVersion.js +4 -3
- package/dist/locale/de-DE.json +6 -2
- package/dist/locale/en-US.json +6 -2
- package/dist/locale/es-ES.json +6 -2
- package/dist/locale/fr-FR.json +6 -2
- package/dist/locale/hu-HU.json +6 -2
- package/dist/locale/id-ID.json +6 -2
- package/dist/locale/it-IT.json +6 -2
- package/dist/locale/ja-JP.json +6 -2
- package/dist/locale/ko-KR.json +6 -2
- package/dist/locale/nl-NL.json +6 -2
- package/dist/locale/pt-BR.json +6 -2
- package/dist/locale/ru-RU.json +6 -2
- package/dist/locale/tr-TR.json +6 -2
- package/dist/locale/uk-UA.json +6 -2
- package/dist/locale/vi-VN.json +6 -2
- package/dist/locale/zh-CN.json +6 -2
- package/dist/locale/zh-TW.json +6 -2
- package/dist/node_modules/joi/package.json +1 -1
- package/dist/node_modules/nodemailer/package.json +1 -1
- package/dist/server/MailerInstruction.d.ts +2 -0
- package/dist/server/MailerInstruction.js +78 -22
- package/package.json +3 -2
|
@@ -354,6 +354,54 @@ export default class extends Instruction {
|
|
|
354
354
|
};
|
|
355
355
|
}[];
|
|
356
356
|
};
|
|
357
|
+
attachments: {
|
|
358
|
+
type: string;
|
|
359
|
+
title: string;
|
|
360
|
+
description: string;
|
|
361
|
+
'x-decorator': string;
|
|
362
|
+
'x-component': string;
|
|
363
|
+
items: {
|
|
364
|
+
type: string;
|
|
365
|
+
'x-component': string;
|
|
366
|
+
'x-component-props': {
|
|
367
|
+
className: string;
|
|
368
|
+
};
|
|
369
|
+
properties: {
|
|
370
|
+
sort: {
|
|
371
|
+
type: string;
|
|
372
|
+
'x-decorator': string;
|
|
373
|
+
'x-component': string;
|
|
374
|
+
};
|
|
375
|
+
input: {
|
|
376
|
+
type: string;
|
|
377
|
+
default: any;
|
|
378
|
+
'x-decorator': string;
|
|
379
|
+
'x-component': string;
|
|
380
|
+
'x-component-props': {
|
|
381
|
+
constantAbel: boolean;
|
|
382
|
+
variableOptions: {
|
|
383
|
+
types: ((field: any, { collectionManager }: {
|
|
384
|
+
collectionManager: any;
|
|
385
|
+
}) => boolean)[];
|
|
386
|
+
};
|
|
387
|
+
placeholder: string;
|
|
388
|
+
};
|
|
389
|
+
};
|
|
390
|
+
remove: {
|
|
391
|
+
type: string;
|
|
392
|
+
'x-decorator': string;
|
|
393
|
+
'x-component': string;
|
|
394
|
+
};
|
|
395
|
+
};
|
|
396
|
+
};
|
|
397
|
+
properties: {
|
|
398
|
+
add: {
|
|
399
|
+
type: string;
|
|
400
|
+
title: string;
|
|
401
|
+
'x-component': string;
|
|
402
|
+
};
|
|
403
|
+
};
|
|
404
|
+
};
|
|
357
405
|
ignoreFail: {
|
|
358
406
|
type: string;
|
|
359
407
|
'x-content': string;
|
package/dist/client/index.js
CHANGED
|
@@ -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"),require("react-i18next"),require("@nocobase/client"),require("@ant-design/icons"),require("@nocobase/plugin-workflow/client"),require("@formily/antd-v5")):"function"==typeof define&&define.amd?define("@nocobase/plugin-workflow-mailer",["react","react-i18next","@nocobase/client","@ant-design/icons","@nocobase/plugin-workflow/client","@formily/antd-v5"],t):"object"==typeof exports?exports["@nocobase/plugin-workflow-mailer"]=t(require("react"),require("react-i18next"),require("@nocobase/client"),require("@ant-design/icons"),require("@nocobase/plugin-workflow/client"),require("@formily/antd-v5")):e["@nocobase/plugin-workflow-mailer"]=t(e.react,e["react-i18next"],e["@nocobase/client"],e["@ant-design/icons"],e["@nocobase/plugin-workflow/client"],e["@formily/antd-v5"])}(self,function(e,t,o,r,n,i){return function(){"use strict";var c={375:function(e){e.exports=r},418:function(e){e.exports=i},342:function(e){e.exports=o},990:function(e){e.exports=n},155:function(t){t.exports=e},953:function(e){e.exports=t}},a={};function p(e){var t=a[e];if(void 0!==t)return t.exports;var o=a[e]={exports:{}};return c[e](o,o.exports,p),o.exports}p.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return p.d(t,{a:t}),t},p.d=function(e,t){for(var o in t)p.o(t,o)&&!p.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},p.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),p.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},p.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},p.g.importScripts&&(l=p.g.location+"");var l,s=p.g.document;if(!l&&s&&(s.currentScript&&"SCRIPT"===s.currentScript.tagName.toUpperCase()&&(l=s.currentScript.src),!l)){var u=s.getElementsByTagName("script");if(u.length)for(var f=u.length-1;f>-1&&(!l||!/^http(s?):/.test(l));)l=u[f--].src}if(!l)throw Error("Automatic publicPath is not supported in this browser");p.p=l.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/");var d={};return!function(){var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src&&(e=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/")),!e){var o=window.__webpack_public_path__||"";o&&("/"!==o.charAt(o.length-1)&&(o+="/"),e=o+"static/plugins/@nocobase/plugin-workflow-mailer/dist/client/")}if(!e){var r=window.__nocobase_modern_client_prefix__||"v",n="/"+(r=String(r).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var i=window.location.pathname||"/",c=i.indexOf(n);e=c>=0?i.slice(0,c+1):"/"}e&&(e=e.replace(RegExp("/"+r+"/?$"),"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/@nocobase/plugin-workflow-mailer/dist/client/"}p.p=e}(),!function(){p.r(d),p.d(d,{default:function(){return k}});var e=p(342),t=p(375),o=p(418),r=p(155),n=p.n(r),i=p(990);p(953);var c="workflow-mailer";function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function l(e){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function s(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function u(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(u=function(){return!!e})()}function f(){var e,t,o=(e=["\n width: 100%;\n\n .ant-space-item:nth-child(2) {\n flex-grow: 1;\n }\n"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return f=function(){return o},o}var m=(0,e.css)(f()),y=function(r){if("function"!=typeof r&&null!==r)throw TypeError("Super expression must either be null or a function");function p(){var r,s,f;if(!(this instanceof p))throw TypeError("Cannot call a class as a function");return s=p,f=arguments,s=l(s),a(r=function(e,t){var o;if(t&&("object"==((o=t)&&"u">typeof Symbol&&o.constructor===Symbol?"symbol":typeof o)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,u()?Reflect.construct(s,f||[],l(this).constructor):s.apply(this,f)),"title",'{{t("Mailer", { ns: "'.concat(c,'" })}}')),a(r,"type","mailer"),a(r,"group","extended"),a(r,"description",'{{t("Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.", { ns: "'.concat(c,'" })}}')),a(r,"icon",n().createElement(t.MailOutlined,{style:{}})),a(r,"fieldset",{provider:{type:"object",properties:{server:{type:"void","x-decorator":"SchemaComponentContext.Provider","x-decorator-props":{value:{designable:!1}},"x-component":"Grid",properties:{row:{type:"void","x-component":"Grid.Row",properties:{host:{type:"void","x-component":"Grid.Col","x-component-props":{width:50},properties:{host:{type:"string",required:!0,title:'{{t("SMTP host", { ns: "'.concat(c,'" })}}'),"x-decorator":"FormItem","x-component":"WorkflowVariableInput","x-component-props":{useTypedConstant:[["string",{placeholder:"smtp.example.com"}]]}}}},port:{type:"void","x-component":"Grid.Col","x-component-props":{width:25},properties:{port:{type:"number",required:!0,title:'{{t("Port", { ns: "'.concat(c,'" })}}'),"x-decorator":"FormItem","x-component":"WorkflowVariableInput","x-component-props":{useTypedConstant:[["number",{min:1,max:65535,step:1}]]},default:465}}},secure:{type:"void","x-component":"Grid.Col","x-component-props":{width:25},properties:{secure:{type:"boolean",title:'{{t("Secure", { ns: "'.concat(c,'" })}}'),description:'{{t("In most cases, if using port 465, set it to true; otherwise, set it to false.", { ns: "'.concat(c,'" })}}'),"x-decorator":"FormItem","x-component":"WorkflowVariableInput","x-component-props":{useTypedConstant:[["boolean",{style:{width:"100%"}}]]},default:!0}}}}}}},auth:{type:"void","x-decorator":"SchemaComponentContext.Provider","x-decorator-props":{value:{designable:!1}},"x-component":"Grid",properties:{row:{type:"void","x-component":"Grid.Row",properties:{user:{type:"void","x-component":"Grid.Col",properties:{"auth.user":{type:"string",title:'{{t("User", { ns: "'.concat(c,'" })}}'),"x-decorator":"FormItem","x-component":"WorkflowVariableInput","x-component-props":{useTypedConstant:[["string",{placeholder:"example@domain.com"}]]}}}},pass:{type:"void","x-component":"Grid.Col",properties:{"auth.pass":{type:"string",title:'{{t("Password", { ns: "'.concat(c,'" })}}'),"x-decorator":"FormItem","x-component":"WorkflowVariableInput","x-component-props":{useTypedConstant:[["string",{type:"password"}]]}}}}}}}}}},from:{type:"string",required:!0,title:'{{t("From", { ns: "'.concat(c,'" })}}'),"x-decorator":"FormItem","x-component":"WorkflowVariableInput","x-component-props":{useTypedConstant:[["string",{placeholder:"noreply <example@domain.com>"}]]}},to:{type:"array",required:!0,title:'{{t("To", { ns: "'.concat(c,'" })}}'),"x-decorator":"FormItem","x-component":"ArrayItems",items:{type:"void","x-component":"Space","x-component-props":{className:m},properties:{sort:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.SortHandle"},input:{type:"string","x-decorator":"FormItem","x-component":"WorkflowVariableInput","x-component-props":{useTypedConstant:["string"],placeholder:'{{t("Email address")}}'}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}},properties:{add:{type:"void",title:'{{t("Add email address", { ns: "'.concat(c,'" })}}'),"x-component":"ArrayItems.Addition"}}},cc:{type:"array",title:'{{t("CC", { ns: "'.concat(c,'" })}}'),"x-decorator":"FormItem","x-component":"ArrayItems",items:{type:"void","x-component":"Space","x-component-props":{className:m},properties:{sort:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.SortHandle"},input:{type:"string","x-decorator":"FormItem","x-component":"WorkflowVariableInput","x-component-props":{useTypedConstant:["string"],placeholder:'{{t("Email address")}}'}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}},properties:{add:{type:"void",title:'{{t("Add email address", { ns: "'.concat(c,'" })}}'),"x-component":"ArrayItems.Addition"}}},bcc:{type:"array",title:'{{t("BCC", { ns: "'.concat(c,'" })}}'),"x-decorator":"FormItem","x-component":"ArrayItems",items:{type:"void","x-component":"Space","x-component-props":{className:m},properties:{sort:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.SortHandle"},input:{type:"string","x-decorator":"FormItem","x-component":"WorkflowVariableInput","x-component-props":{useTypedConstant:["string"],placeholder:'{{t("Email address")}}'}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}},properties:{add:{type:"void",title:'{{t("Add email address", { ns: "'.concat(c,'" })}}'),"x-component":"ArrayItems.Addition"}}},subject:{type:"string",title:'{{t("Subject", { ns: "'.concat(c,'" })}}'),"x-decorator":"FormItem","x-component":"WorkflowVariableTextArea"},contentType:{type:"string",title:'{{t("Content type", { ns: "'.concat(c,'" })}}'),"x-decorator":"FormItem","x-component":"Radio.Group",enum:[{label:"HTML",value:"html"},{label:'{{t("Plain text", { ns: "'.concat(c,'" })}}'),value:"text"}],default:"html"},html:{type:"string",title:'{{t("Content", { ns: "'.concat(c,'" })}}'),"x-decorator":"FormItem","x-decorator-props":{},"x-component":"WorkflowVariableRawTextArea","x-component-props":{placeholder:"Hi,",autoSize:{minRows:10}},"x-reactions":[{dependencies:["contentType"],fulfill:{state:{visible:'{{$deps[0] === "html"}}'}}}]},text:{type:"string",title:'{{t("Content", { ns: "'.concat(c,'" })}}'),"x-decorator":"FormItem","x-decorator-props":{},"x-component":"WorkflowVariableRawTextArea","x-component-props":{placeholder:"Hi,",autoSize:{minRows:10}},"x-reactions":[{dependencies:["contentType"],fulfill:{state:{visible:'{{$deps[0] === "text"}}'}}}]},ignoreFail:{type:"boolean","x-content":'{{t("Ignore failed sending and continue workflow", { ns: "'.concat(c,'" })}}'),"x-decorator":"FormItem","x-component":"Checkbox"}}),a(r,"components",{ArrayItems:o.ArrayItems,SchemaComponentContext:e.SchemaComponentContext,WorkflowVariableInput:i.WorkflowVariableInput,WorkflowVariableTextArea:i.WorkflowVariableTextArea,WorkflowVariableRawTextArea:i.WorkflowVariableRawTextArea}),r}return p.prototype=Object.create(r&&r.prototype,{constructor:{value:p,writable:!0,configurable:!0}}),r&&s(p,r),p}(i.Instruction);function b(e,t,o,r,n,i,c){try{var a=e[i](c),p=a.value}catch(e){o(e);return}a.done?t(p):Promise.resolve(p).then(r,n)}function x(e){return function(){var t=this,o=arguments;return new Promise(function(r,n){var i=e.apply(t,o);function c(e){b(i,r,n,c,a,"next",e)}function a(e){b(i,r,n,c,a,"throw",e)}c(void 0)})}}function v(e,t,o){return(v=I()?Reflect.construct:function(e,t,o){var r=[null];r.push.apply(r,t);var n=new(Function.bind.apply(e,r));return o&&w(n,o.prototype),n}).apply(null,arguments)}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function w(e,t){return(w=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function g(e){var t="function"==typeof Map?new Map:void 0;return(g=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,o)}function o(){return v(e,arguments,h(this).constructor)}return o.prototype=Object.create(e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),w(o,e)})(e)}function I(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(I=function(){return!!e})()}function _(e,t){var o,r,n,i={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]},c=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),a=Object.defineProperty;return a(c,"next",{value:p(0)}),a(c,"throw",{value:p(1)}),a(c,"return",{value:p(2)}),"function"==typeof Symbol&&a(c,Symbol.iterator,{value:function(){return this}}),c;function p(a){return function(p){var l=[a,p];if(o)throw TypeError("Generator is already executing.");for(;c&&(c=0,l[0]&&(i=0)),i;)try{if(o=1,r&&(n=2&l[0]?r.return:l[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,l[1])).done)return n;switch(r=0,n&&(l=[2&l[0],n.value]),l[0]){case 0:case 1:n=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(n=(n=i.trys).length>0&&n[n.length-1])&&(6===l[0]||2===l[0])){i=0;continue}if(3===l[0]&&(!n||l[1]>n[0]&&l[1]<n[3])){i.label=l[1];break}if(6===l[0]&&i.label<n[1]){i.label=n[1],n=l;break}if(n&&i.label<n[2]){i.label=n[2],i.ops.push(l);break}n[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{o=n=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}var k=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function o(){var e,t;if(!(this instanceof o))throw TypeError("Cannot call a class as a function");return e=o,t=arguments,e=h(e),function(e,t){var o;if(t&&("object"==((o=t)&&"u">typeof Symbol&&o.constructor===Symbol?"symbol":typeof o)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,I()?Reflect.construct(e,t||[],h(this).constructor):e.apply(this,t))}return o.prototype=Object.create(e&&e.prototype,{constructor:{value:o,writable:!0,configurable:!0}}),e&&w(o,e),t=[{key:"afterAdd",value:function(){return x(function(){return _(this,function(e){return[2]})})()}},{key:"beforeLoad",value:function(){return x(function(){return _(this,function(e){return[2]})})()}},{key:"load",value:function(){return x(function(){return _(this,function(e){return this.app.pm.get("workflow").registerInstruction("mailer",y),[2]})}).call(this)}}],function(e,t){for(var o=0;o<t.length;o++){var r=t[o];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(o.prototype,t),o}(g(e.Plugin))}(),d}()});
|
|
10
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("react-i18next"),require("@nocobase/client"),require("@ant-design/icons"),require("@nocobase/plugin-workflow/client"),require("@formily/antd-v5")):"function"==typeof define&&define.amd?define("@nocobase/plugin-workflow-mailer",["react","react-i18next","@nocobase/client","@ant-design/icons","@nocobase/plugin-workflow/client","@formily/antd-v5"],t):"object"==typeof exports?exports["@nocobase/plugin-workflow-mailer"]=t(require("react"),require("react-i18next"),require("@nocobase/client"),require("@ant-design/icons"),require("@nocobase/plugin-workflow/client"),require("@formily/antd-v5")):e["@nocobase/plugin-workflow-mailer"]=t(e.react,e["react-i18next"],e["@nocobase/client"],e["@ant-design/icons"],e["@nocobase/plugin-workflow/client"],e["@formily/antd-v5"])}(self,function(e,t,o,r,n,i){return function(){"use strict";var a={375:function(e){e.exports=r},418:function(e){e.exports=i},342:function(e){e.exports=o},990:function(e){e.exports=n},155:function(t){t.exports=e},953:function(e){e.exports=t}},c={};function p(e){var t=c[e];if(void 0!==t)return t.exports;var o=c[e]={exports:{}};return a[e](o,o.exports,p),o.exports}p.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return p.d(t,{a:t}),t},p.d=function(e,t){for(var o in t)p.o(t,o)&&!p.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},p.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),p.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},p.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},p.g.importScripts&&(l=p.g.location+"");var l,s=p.g.document;if(!l&&s&&(s.currentScript&&"SCRIPT"===s.currentScript.tagName.toUpperCase()&&(l=s.currentScript.src),!l)){var u=s.getElementsByTagName("script");if(u.length)for(var m=u.length-1;m>-1&&(!l||!/^http(s?):/.test(l));)l=u[m--].src}if(!l)throw Error("Automatic publicPath is not supported in this browser");p.p=l.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/");var d={};return!function(){var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src&&(e=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/")),!e){var o=window.__webpack_public_path__||"";o&&("/"!==o.charAt(o.length-1)&&(o+="/"),e=o+"static/plugins/@nocobase/plugin-workflow-mailer/dist/client/")}if(!e){var r=window.__nocobase_modern_client_prefix__||"v",n="/"+(r=String(r).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var i=window.location.pathname||"/",a=i.indexOf(n);e=a>=0?i.slice(0,a+1):"/"}e&&(e=e.replace(RegExp("/"+r+"/?$"),"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/@nocobase/plugin-workflow-mailer/dist/client/"}p.p=e}(),!function(){p.r(d),p.d(d,{default:function(){return O}});var e=p(342),t=p(375),o=p(418),r=p(155),n=p.n(r),i=p(990);p(953);var a="workflow-mailer";function c(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function l(e){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function s(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function u(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function m(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(m=function(){return!!e})()}function f(){var e=u(["\n width: 100%;\n\n .ant-space-item:nth-child(2) {\n flex-grow: 1;\n }\n"]);return f=function(){return e},e}function y(){var e=u(["\n width: 100%;\n\n .ant-space-item:nth-child(2) {\n flex-grow: 1;\n }\n"]);return y=function(){return e},e}var x=(0,e.css)(f()),b=(0,e.css)(y()),v=function(r){if("function"!=typeof r&&null!==r)throw TypeError("Super expression must either be null or a function");function p(){var r,s,u;if(!(this instanceof p))throw TypeError("Cannot call a class as a function");return s=p,u=arguments,s=l(s),c(r=function(e,t){var o;if(t&&("object"==((o=t)&&"u">typeof Symbol&&o.constructor===Symbol?"symbol":typeof o)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,m()?Reflect.construct(s,u||[],l(this).constructor):s.apply(this,u)),"title",'{{t("Mailer", { ns: "'.concat(a,'" })}}')),c(r,"type","mailer"),c(r,"group","extended"),c(r,"description",'{{t("Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.", { ns: "'.concat(a,'" })}}')),c(r,"icon",n().createElement(t.MailOutlined,{style:{}})),c(r,"fieldset",{provider:{type:"object",properties:{server:{type:"void","x-decorator":"SchemaComponentContext.Provider","x-decorator-props":{value:{designable:!1}},"x-component":"Grid",properties:{row:{type:"void","x-component":"Grid.Row",properties:{host:{type:"void","x-component":"Grid.Col","x-component-props":{width:50},properties:{host:{type:"string",required:!0,title:'{{t("SMTP host", { ns: "'.concat(a,'" })}}'),"x-decorator":"FormItem","x-component":"WorkflowVariableInput","x-component-props":{useTypedConstant:[["string",{placeholder:"smtp.example.com"}]]}}}},port:{type:"void","x-component":"Grid.Col","x-component-props":{width:25},properties:{port:{type:"number",required:!0,title:'{{t("Port", { ns: "'.concat(a,'" })}}'),"x-decorator":"FormItem","x-component":"WorkflowVariableInput","x-component-props":{useTypedConstant:[["number",{min:1,max:65535,step:1}]]},default:465}}},secure:{type:"void","x-component":"Grid.Col","x-component-props":{width:25},properties:{secure:{type:"boolean",title:'{{t("Secure", { ns: "'.concat(a,'" })}}'),description:'{{t("In most cases, if using port 465, set it to true; otherwise, set it to false.", { ns: "'.concat(a,'" })}}'),"x-decorator":"FormItem","x-component":"WorkflowVariableInput","x-component-props":{useTypedConstant:[["boolean",{style:{width:"100%"}}]]},default:!0}}}}}}},auth:{type:"void","x-decorator":"SchemaComponentContext.Provider","x-decorator-props":{value:{designable:!1}},"x-component":"Grid",properties:{row:{type:"void","x-component":"Grid.Row",properties:{user:{type:"void","x-component":"Grid.Col",properties:{"auth.user":{type:"string",title:'{{t("User", { ns: "'.concat(a,'" })}}'),"x-decorator":"FormItem","x-component":"WorkflowVariableInput","x-component-props":{useTypedConstant:[["string",{placeholder:"example@domain.com"}]]}}}},pass:{type:"void","x-component":"Grid.Col",properties:{"auth.pass":{type:"string",title:'{{t("Password", { ns: "'.concat(a,'" })}}'),"x-decorator":"FormItem","x-component":"WorkflowVariableInput","x-component-props":{useTypedConstant:[["string",{type:"password"}]]}}}}}}}}}},from:{type:"string",required:!0,title:'{{t("From", { ns: "'.concat(a,'" })}}'),"x-decorator":"FormItem","x-component":"WorkflowVariableInput","x-component-props":{useTypedConstant:[["string",{placeholder:"noreply <example@domain.com>"}]]}},to:{type:"array",required:!0,title:'{{t("To", { ns: "'.concat(a,'" })}}'),"x-decorator":"FormItem","x-component":"ArrayItems",items:{type:"void","x-component":"Space","x-component-props":{className:x},properties:{sort:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.SortHandle"},input:{type:"string","x-decorator":"FormItem","x-component":"WorkflowVariableInput","x-component-props":{useTypedConstant:["string"],placeholder:'{{t("Email address")}}'}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}},properties:{add:{type:"void",title:'{{t("Add email address", { ns: "'.concat(a,'" })}}'),"x-component":"ArrayItems.Addition"}}},cc:{type:"array",title:'{{t("CC", { ns: "'.concat(a,'" })}}'),"x-decorator":"FormItem","x-component":"ArrayItems",items:{type:"void","x-component":"Space","x-component-props":{className:x},properties:{sort:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.SortHandle"},input:{type:"string","x-decorator":"FormItem","x-component":"WorkflowVariableInput","x-component-props":{useTypedConstant:["string"],placeholder:'{{t("Email address")}}'}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}},properties:{add:{type:"void",title:'{{t("Add email address", { ns: "'.concat(a,'" })}}'),"x-component":"ArrayItems.Addition"}}},bcc:{type:"array",title:'{{t("BCC", { ns: "'.concat(a,'" })}}'),"x-decorator":"FormItem","x-component":"ArrayItems",items:{type:"void","x-component":"Space","x-component-props":{className:x},properties:{sort:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.SortHandle"},input:{type:"string","x-decorator":"FormItem","x-component":"WorkflowVariableInput","x-component-props":{useTypedConstant:["string"],placeholder:'{{t("Email address")}}'}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}},properties:{add:{type:"void",title:'{{t("Add email address", { ns: "'.concat(a,'" })}}'),"x-component":"ArrayItems.Addition"}}},subject:{type:"string",title:'{{t("Subject", { ns: "'.concat(a,'" })}}'),"x-decorator":"FormItem","x-component":"WorkflowVariableTextArea"},contentType:{type:"string",title:'{{t("Content type", { ns: "'.concat(a,'" })}}'),"x-decorator":"FormItem","x-component":"Radio.Group",enum:[{label:"HTML",value:"html"},{label:'{{t("Plain text", { ns: "'.concat(a,'" })}}'),value:"text"}],default:"html"},html:{type:"string",title:'{{t("Content", { ns: "'.concat(a,'" })}}'),"x-decorator":"FormItem","x-decorator-props":{},"x-component":"WorkflowVariableRawTextArea","x-component-props":{placeholder:"Hi,",autoSize:{minRows:10}},"x-reactions":[{dependencies:["contentType"],fulfill:{state:{visible:'{{$deps[0] === "html"}}'}}}]},text:{type:"string",title:'{{t("Content", { ns: "'.concat(a,'" })}}'),"x-decorator":"FormItem","x-decorator-props":{},"x-component":"WorkflowVariableRawTextArea","x-component-props":{placeholder:"Hi,",autoSize:{minRows:10}},"x-reactions":[{dependencies:["contentType"],fulfill:{state:{visible:'{{$deps[0] === "text"}}'}}}]},attachments:{type:"array",title:'{{t("Attachments", { ns: "'.concat(a,'" })}}'),description:'{{t("Only variables that resolve to file collection records are supported.", { ns: "'.concat(a,'" })}}'),"x-decorator":"FormItem","x-component":"ArrayItems",items:{type:"void","x-component":"Space","x-component-props":{className:b},properties:{sort:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.SortHandle"},input:{type:"string",default:null,"x-decorator":"FormItem","x-component":"WorkflowVariableInput","x-component-props":{constantAbel:!1,variableOptions:{types:[function(e,t){var o,r=t.collectionManager;if(!e.target||e.isForeignKey)return!1;var n=r.getCollection(e.target);return(null==n?void 0:n.template)==="file"||(null==n||null==(o=n.options)?void 0:o.template)==="file"}]},placeholder:'{{t("File record", { ns: "'.concat(a,'" })}}')}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}},properties:{add:{type:"void",title:'{{t("Add attachment", { ns: "'.concat(a,'" })}}'),"x-component":"ArrayItems.Addition"}}},ignoreFail:{type:"boolean","x-content":'{{t("Ignore failed sending and continue workflow", { ns: "'.concat(a,'" })}}'),"x-decorator":"FormItem","x-component":"Checkbox"}}),c(r,"components",{ArrayItems:o.ArrayItems,SchemaComponentContext:e.SchemaComponentContext,WorkflowVariableInput:i.WorkflowVariableInput,WorkflowVariableTextArea:i.WorkflowVariableTextArea,WorkflowVariableRawTextArea:i.WorkflowVariableRawTextArea}),r}return p.prototype=Object.create(r&&r.prototype,{constructor:{value:p,writable:!0,configurable:!0}}),r&&s(p,r),p}(i.Instruction);function h(e,t,o,r,n,i,a){try{var c=e[i](a),p=c.value}catch(e){o(e);return}c.done?t(p):Promise.resolve(p).then(r,n)}function w(e){return function(){var t=this,o=arguments;return new Promise(function(r,n){var i=e.apply(t,o);function a(e){h(i,r,n,a,c,"next",e)}function c(e){h(i,r,n,a,c,"throw",e)}a(void 0)})}}function g(e,t,o){return(g=S()?Reflect.construct:function(e,t,o){var r=[null];r.push.apply(r,t);var n=new(Function.bind.apply(e,r));return o&&k(n,o.prototype),n}).apply(null,arguments)}function I(e){return(I=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function k(e,t){return(k=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _(e){var t="function"==typeof Map?new Map:void 0;return(_=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,o)}function o(){return g(e,arguments,I(this).constructor)}return o.prototype=Object.create(e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),k(o,e)})(e)}function S(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(S=function(){return!!e})()}function A(e,t){var o,r,n,i={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(a,"next",{value:p(0)}),c(a,"throw",{value:p(1)}),c(a,"return",{value:p(2)}),"function"==typeof Symbol&&c(a,Symbol.iterator,{value:function(){return this}}),a;function p(c){return function(p){var l=[c,p];if(o)throw TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(o=1,r&&(n=2&l[0]?r.return:l[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,l[1])).done)return n;switch(r=0,n&&(l=[2&l[0],n.value]),l[0]){case 0:case 1:n=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(n=(n=i.trys).length>0&&n[n.length-1])&&(6===l[0]||2===l[0])){i=0;continue}if(3===l[0]&&(!n||l[1]>n[0]&&l[1]<n[3])){i.label=l[1];break}if(6===l[0]&&i.label<n[1]){i.label=n[1],n=l;break}if(n&&i.label<n[2]){i.label=n[2],i.ops.push(l);break}n[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{o=n=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}var O=function(e){var t;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function o(){var e,t;if(!(this instanceof o))throw TypeError("Cannot call a class as a function");return e=o,t=arguments,e=I(e),function(e,t){var o;if(t&&("object"==((o=t)&&"u">typeof Symbol&&o.constructor===Symbol?"symbol":typeof o)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,S()?Reflect.construct(e,t||[],I(this).constructor):e.apply(this,t))}return o.prototype=Object.create(e&&e.prototype,{constructor:{value:o,writable:!0,configurable:!0}}),e&&k(o,e),t=[{key:"afterAdd",value:function(){return w(function(){return A(this,function(e){return[2]})})()}},{key:"beforeLoad",value:function(){return w(function(){return A(this,function(e){return[2]})})()}},{key:"load",value:function(){return w(function(){return A(this,function(e){return this.app.pm.get("workflow").registerInstruction("mailer",v),[2]})}).call(this)}}],function(e,t){for(var o=0;o<t.length;o++){var r=t[o];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(o.prototype,t),o}(_(e.Plugin))}(),d}()});
|
package/dist/externalVersion.js
CHANGED
|
@@ -11,9 +11,10 @@ module.exports = {
|
|
|
11
11
|
"@ant-design/icons": "5.6.1",
|
|
12
12
|
"@formily/antd-v5": "1.2.3",
|
|
13
13
|
"react": "18.2.0",
|
|
14
|
-
"@nocobase/client": "2.2.0-beta.
|
|
15
|
-
"@nocobase/plugin-workflow": "2.2.0-beta.
|
|
14
|
+
"@nocobase/client": "2.2.0-beta.3",
|
|
15
|
+
"@nocobase/plugin-workflow": "2.2.0-beta.3",
|
|
16
16
|
"react-i18next": "11.18.6",
|
|
17
|
+
"@nocobase/plugin-file-manager": "2.2.0-beta.3",
|
|
17
18
|
"lodash": "4.18.1",
|
|
18
|
-
"@nocobase/server": "2.2.0-beta.
|
|
19
|
+
"@nocobase/server": "2.2.0-beta.3"
|
|
19
20
|
};
|
package/dist/locale/de-DE.json
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
+
"Add attachment": "Anhang hinzufügen",
|
|
2
3
|
"Add email address": "E-Mail-Adresse hinzufügen",
|
|
4
|
+
"Attachments": "Anhänge",
|
|
3
5
|
"BCC": "BCC",
|
|
4
6
|
"CC": "CC",
|
|
5
7
|
"Content": "Inhalt",
|
|
6
8
|
"Content type": "Inhaltstyp",
|
|
9
|
+
"File record": "Dateidatensatz",
|
|
7
10
|
"From": "Von",
|
|
8
11
|
"Ignore failed sending and continue workflow": "Fehlgeschlagenen Versand ignorieren und Workflow fortsetzen",
|
|
9
12
|
"In most cases, if using port 465, set it to true; otherwise, set it to false.": "In most cases, if using port 465, set it to true; otherwise, set it to false.",
|
|
10
13
|
"Mailer": "Mailer",
|
|
14
|
+
"Only variables that resolve to file collection records are supported.": "Es werden nur Variablen unterstützt, die zu Dateisammlungsdatensätzen aufgelöst werden.",
|
|
11
15
|
"Password": "Passwort",
|
|
12
16
|
"Plain text": "Einfacher Text",
|
|
13
17
|
"Port": "Port",
|
|
14
|
-
"SMTP host": "Service-Host",
|
|
15
18
|
"Secure": "Sicher",
|
|
16
19
|
"Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.": "E-Mail senden durch Aufruf des SMTP-Dienstes. Sie können die Variablen in den vorgelagerten Knoten als Empfänger, Betreff und Inhalt der E-Mail verwenden.",
|
|
20
|
+
"SMTP host": "Service-Host",
|
|
17
21
|
"Subject": "Betreff",
|
|
18
22
|
"To": "An",
|
|
19
23
|
"User": "Benutzer"
|
|
20
|
-
}
|
|
24
|
+
}
|
package/dist/locale/en-US.json
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
+
"Add attachment": "Add attachment",
|
|
2
3
|
"Add email address": "Add email address",
|
|
4
|
+
"Attachments": "Attachments",
|
|
3
5
|
"BCC": "BCC",
|
|
4
6
|
"CC": "CC",
|
|
5
7
|
"Content": "Content",
|
|
6
8
|
"Content type": "Content type",
|
|
9
|
+
"File record": "File record",
|
|
7
10
|
"From": "From",
|
|
8
11
|
"Ignore failed sending and continue workflow": "Ignore failed sending and continue workflow",
|
|
9
12
|
"In most cases, if using port 465, set it to true; otherwise, set it to false.": "In most cases, if using port 465, set it to true; otherwise, set it to false.",
|
|
10
13
|
"Mailer": "Mailer",
|
|
14
|
+
"Only variables that resolve to file collection records are supported.": "Only variables that resolve to file collection records are supported.",
|
|
11
15
|
"Password": "Password",
|
|
12
16
|
"Plain text": "Plain text",
|
|
13
17
|
"Port": "Port",
|
|
14
|
-
"SMTP host": "Service host",
|
|
15
18
|
"Secure": "Secure",
|
|
16
19
|
"Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.": "Send email by calling SMTP service. You can use the variables in the upstream nodes as receivers, subject and content of the email.",
|
|
20
|
+
"SMTP host": "Service host",
|
|
17
21
|
"Subject": "Subject",
|
|
18
22
|
"To": "To",
|
|
19
23
|
"User": "User"
|
|
20
|
-
}
|
|
24
|
+
}
|
package/dist/locale/es-ES.json
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
+
"Add attachment": "Add attachment",
|
|
2
3
|
"Add email address": "Add email address",
|
|
4
|
+
"Attachments": "Attachments",
|
|
3
5
|
"BCC": "BCC",
|
|
4
6
|
"CC": "CC",
|
|
5
7
|
"Content": "Content",
|
|
6
8
|
"Content type": "Content type",
|
|
9
|
+
"File record": "File record",
|
|
7
10
|
"From": "From",
|
|
8
11
|
"Ignore failed sending and continue workflow": "Ignore failed sending and continue workflow",
|
|
9
12
|
"In most cases, if using port 465, set it to true; otherwise, set it to false.": "In most cases, if using port 465, set it to true; otherwise, set it to false.",
|
|
10
13
|
"Mailer": "Mailer",
|
|
14
|
+
"Only variables that resolve to file collection records are supported.": "Only variables that resolve to file collection records are supported.",
|
|
11
15
|
"Password": "Password",
|
|
12
16
|
"Plain text": "Plain text",
|
|
13
17
|
"Port": "Port",
|
|
14
|
-
"SMTP host": "Service host",
|
|
15
18
|
"Secure": "Secure",
|
|
16
19
|
"Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.": "Send email by calling SMTP service. You can use the variables in the upstream nodes as receivers, subject and content of the email.",
|
|
20
|
+
"SMTP host": "Service host",
|
|
17
21
|
"Subject": "Subject",
|
|
18
22
|
"To": "To",
|
|
19
23
|
"User": "User"
|
|
20
|
-
}
|
|
24
|
+
}
|
package/dist/locale/fr-FR.json
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
+
"Add attachment": "Add attachment",
|
|
2
3
|
"Add email address": "Add email address",
|
|
4
|
+
"Attachments": "Attachments",
|
|
3
5
|
"BCC": "BCC",
|
|
4
6
|
"CC": "CC",
|
|
5
7
|
"Content": "Content",
|
|
6
8
|
"Content type": "Content type",
|
|
9
|
+
"File record": "File record",
|
|
7
10
|
"From": "From",
|
|
8
11
|
"Ignore failed sending and continue workflow": "Ignore failed sending and continue workflow",
|
|
9
12
|
"In most cases, if using port 465, set it to true; otherwise, set it to false.": "In most cases, if using port 465, set it to true; otherwise, set it to false.",
|
|
10
13
|
"Mailer": "Mailer",
|
|
14
|
+
"Only variables that resolve to file collection records are supported.": "Only variables that resolve to file collection records are supported.",
|
|
11
15
|
"Password": "Password",
|
|
12
16
|
"Plain text": "Plain text",
|
|
13
17
|
"Port": "Port",
|
|
14
|
-
"SMTP host": "Service host",
|
|
15
18
|
"Secure": "Secure",
|
|
16
19
|
"Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.": "Send email by calling SMTP service. You can use the variables in the upstream nodes as receivers, subject and content of the email.",
|
|
20
|
+
"SMTP host": "Service host",
|
|
17
21
|
"Subject": "Subject",
|
|
18
22
|
"To": "To",
|
|
19
23
|
"User": "User"
|
|
20
|
-
}
|
|
24
|
+
}
|
package/dist/locale/hu-HU.json
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
+
"Add attachment": "Melléklet hozzáadása",
|
|
2
3
|
"Add email address": "E-mail cím hozzáadása",
|
|
4
|
+
"Attachments": "Mellékletek",
|
|
3
5
|
"BCC": "Titkos másolat",
|
|
4
6
|
"CC": "Másolat",
|
|
5
7
|
"Content": "Tartalom",
|
|
6
8
|
"Content type": "Tartalom típus",
|
|
9
|
+
"File record": "Fájlrekord",
|
|
7
10
|
"From": "Feladó",
|
|
8
11
|
"Ignore failed sending and continue workflow": "Sikertelen küldés figyelmen kívül hagyása és a munkafolyamat folytatása",
|
|
9
12
|
"In most cases, if using port 465, set it to true; otherwise, set it to false.": "In most cases, if using port 465, set it to true; otherwise, set it to false.",
|
|
10
13
|
"Mailer": "Levelező",
|
|
14
|
+
"Only variables that resolve to file collection records are supported.": "Csak fájlgyűjtemény rekordokra feloldódó változók támogatottak.",
|
|
11
15
|
"Password": "Jelszó",
|
|
12
16
|
"Plain text": "Egyszerű szöveg",
|
|
13
17
|
"Port": "Port",
|
|
14
|
-
"SMTP host": "SMTP kiszolgáló",
|
|
15
18
|
"Secure": "Biztonságos",
|
|
16
19
|
"Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.": "E-mail küldése SMTP szolgáltatás hívásával. A felsőbb csomópontokban lévő változókat használhatja a címzettek, tárgy és e-mail tartalom értékeiként.",
|
|
20
|
+
"SMTP host": "SMTP kiszolgáló",
|
|
17
21
|
"Subject": "Tárgy",
|
|
18
22
|
"To": "Címzett",
|
|
19
23
|
"User": "Felhasználó"
|
|
20
|
-
}
|
|
24
|
+
}
|
package/dist/locale/id-ID.json
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
+
"Add attachment": "Tambah lampiran",
|
|
2
3
|
"Add email address": "Tambah alamat email",
|
|
4
|
+
"Attachments": "Lampiran",
|
|
3
5
|
"BCC": "BCC",
|
|
4
6
|
"CC": "CC",
|
|
5
7
|
"Content": "Konten",
|
|
6
8
|
"Content type": "Tipe konten",
|
|
9
|
+
"File record": "Rekaman file",
|
|
7
10
|
"From": "Dari",
|
|
8
11
|
"Ignore failed sending and continue workflow": "Abaikan pengiriman yang gagal dan lanjutkan alur kerja",
|
|
9
12
|
"In most cases, if using port 465, set it to true; otherwise, set it to false.": "In most cases, if using port 465, set it to true; otherwise, set it to false.",
|
|
10
13
|
"Mailer": "Mailer",
|
|
14
|
+
"Only variables that resolve to file collection records are supported.": "Hanya variabel yang menghasilkan rekaman koleksi file yang didukung.",
|
|
11
15
|
"Password": "Kata sandi",
|
|
12
16
|
"Plain text": "Teks biasa",
|
|
13
17
|
"Port": "Port",
|
|
14
|
-
"SMTP host": "Host Layanan",
|
|
15
18
|
"Secure": "Aman",
|
|
16
19
|
"Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.": "Kirim email dengan memanggil layanan SMTP. Anda dapat menggunakan variabel di node hulu sebagai penerima, subjek, dan konten email.",
|
|
20
|
+
"SMTP host": "Host Layanan",
|
|
17
21
|
"Subject": "Subjek",
|
|
18
22
|
"To": "Kepada",
|
|
19
23
|
"User": "Pengguna"
|
|
20
|
-
}
|
|
24
|
+
}
|
package/dist/locale/it-IT.json
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
+
"Add attachment": "Aggiungi allegato",
|
|
2
3
|
"Add email address": "Aggiungi indirizzo email",
|
|
4
|
+
"Attachments": "Allegati",
|
|
3
5
|
"BCC": "BCC",
|
|
4
6
|
"CC": "CC",
|
|
5
7
|
"Content": "Contenuto",
|
|
6
8
|
"Content type": "Tipo di contenuto",
|
|
9
|
+
"File record": "Record file",
|
|
7
10
|
"From": "Da",
|
|
8
11
|
"Ignore failed sending and continue workflow": "Ignora l'invio fallito e continua il workflow",
|
|
9
12
|
"In most cases, if using port 465, set it to true; otherwise, set it to false.": "In most cases, if using port 465, set it to true; otherwise, set it to false.",
|
|
10
13
|
"Mailer": "Mailer",
|
|
14
|
+
"Only variables that resolve to file collection records are supported.": "Sono supportate solo le variabili che vengono risolte in record di raccolte file.",
|
|
11
15
|
"Password": "Password",
|
|
12
16
|
"Plain text": "Testo semplice",
|
|
13
17
|
"Port": "Porta",
|
|
14
|
-
"SMTP host": "Host servizio",
|
|
15
18
|
"Secure": "Sicuro",
|
|
16
19
|
"Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.": "Invia email chiamando il servizio SMTP. Puoi usare le variabili nei nodi upstream come destinatari, oggetto e contenuto dell'email.",
|
|
20
|
+
"SMTP host": "Host servizio",
|
|
17
21
|
"Subject": "Oggetto",
|
|
18
22
|
"To": "A",
|
|
19
23
|
"User": "Utente"
|
|
20
|
-
}
|
|
24
|
+
}
|
package/dist/locale/ja-JP.json
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
+
"Add attachment": "添付ファイルを追加",
|
|
2
3
|
"Add email address": "メールアドレスを追加",
|
|
4
|
+
"Attachments": "添付ファイル",
|
|
3
5
|
"BCC": "BCC",
|
|
4
6
|
"CC": "CC",
|
|
5
7
|
"Content": "内容",
|
|
6
8
|
"Content type": "内容の形式",
|
|
9
|
+
"File record": "ファイルレコード",
|
|
7
10
|
"From": "送信元",
|
|
8
11
|
"Ignore failed sending and continue workflow": "送信失敗を無視してワークフローを継続",
|
|
9
12
|
"In most cases, if using port 465, set it to true; otherwise, set it to false.": "In most cases, if using port 465, set it to true; otherwise, set it to false.",
|
|
10
13
|
"Mailer": "メール送信",
|
|
14
|
+
"Only variables that resolve to file collection records are supported.": "ファイルコレクションのレコードに解決される変数のみサポートされています。",
|
|
11
15
|
"Password": "パスワード",
|
|
12
16
|
"Plain text": "プレーンテキスト",
|
|
13
17
|
"Port": "ポート",
|
|
14
|
-
"SMTP host": "SMTPホスト",
|
|
15
18
|
"Secure": "セキュア",
|
|
16
19
|
"Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.": "メールを送信します。上流ノードの変数を受信者、件名、内容として使用可能です。",
|
|
20
|
+
"SMTP host": "SMTPホスト",
|
|
17
21
|
"Subject": "件名",
|
|
18
22
|
"To": "宛先",
|
|
19
23
|
"User": "ユーザー"
|
|
20
|
-
}
|
|
24
|
+
}
|
package/dist/locale/ko-KR.json
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
+
"Add attachment": "첨부 파일 추가",
|
|
2
3
|
"Add email address": "이메일 주소 추가",
|
|
4
|
+
"Attachments": "첨부 파일",
|
|
3
5
|
"BCC": "숨은 참조",
|
|
4
6
|
"CC": "참조",
|
|
5
7
|
"Content": "내용",
|
|
6
8
|
"Content type": "내용 유형",
|
|
9
|
+
"File record": "파일 레코드",
|
|
7
10
|
"From": "보낸 사람",
|
|
8
11
|
"Ignore failed sending and continue workflow": "전송 실패 시 무시하고 워크플로 계속",
|
|
9
12
|
"In most cases, if using port 465, set it to true; otherwise, set it to false.": "In most cases, if using port 465, set it to true; otherwise, set it to false.",
|
|
10
13
|
"Mailer": "메일러",
|
|
14
|
+
"Only variables that resolve to file collection records are supported.": "파일 컬렉션 레코드로 해석되는 변수만 지원됩니다.",
|
|
11
15
|
"Password": "비밀번호",
|
|
12
16
|
"Plain text": "일반 텍스트",
|
|
13
17
|
"Port": "포트",
|
|
14
|
-
"SMTP host": "서비스 호스트",
|
|
15
18
|
"Secure": "보안",
|
|
16
19
|
"Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.": "SMTP 서비스를 호출하여 이메일을 보냅니다. 상위 노드의 변수를 수신자, 제목, 내용으로 사용할 수 있습니다.",
|
|
20
|
+
"SMTP host": "서비스 호스트",
|
|
17
21
|
"Subject": "제목",
|
|
18
22
|
"To": "받는 사람",
|
|
19
23
|
"User": "사용자"
|
|
20
|
-
}
|
|
24
|
+
}
|
package/dist/locale/nl-NL.json
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
+
"Add attachment": "Bijlage toevoegen",
|
|
2
3
|
"Add email address": "E-mailadres toevoegen",
|
|
4
|
+
"Attachments": "Bijlagen",
|
|
3
5
|
"BCC": "BCC",
|
|
4
6
|
"CC": "CC",
|
|
5
7
|
"Content": "Inhoud",
|
|
6
8
|
"Content type": "Inhoudstype",
|
|
9
|
+
"File record": "Bestandsrecord",
|
|
7
10
|
"From": "Van",
|
|
8
11
|
"Ignore failed sending and continue workflow": "Negeer mislukte verzending en ga door met de workflow",
|
|
9
12
|
"In most cases, if using port 465, set it to true; otherwise, set it to false.": "In most cases, if using port 465, set it to true; otherwise, set it to false.",
|
|
10
13
|
"Mailer": "Verzender",
|
|
14
|
+
"Only variables that resolve to file collection records are supported.": "Alleen variabelen die worden opgelost naar records uit bestandscollecties worden ondersteund.",
|
|
11
15
|
"Password": "Wachtwoord",
|
|
12
16
|
"Plain text": "Platte tekst",
|
|
13
17
|
"Port": "Poort",
|
|
14
|
-
"SMTP host": "SMTP host",
|
|
15
18
|
"Secure": "Veilig",
|
|
16
19
|
"Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.": "Stuur e-mail door de SMTP-service aan te roepen. Je kan de variabelen in de stroomopwaartse nodes gebruiken als ontvangers, onderwerp en inhoud van de e-mail.",
|
|
20
|
+
"SMTP host": "SMTP host",
|
|
17
21
|
"Subject": "Onderwerp",
|
|
18
22
|
"To": "Naar",
|
|
19
23
|
"User": "Gebruiker"
|
|
20
|
-
}
|
|
24
|
+
}
|
package/dist/locale/pt-BR.json
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
+
"Add attachment": "Add attachment",
|
|
2
3
|
"Add email address": "Add email address",
|
|
4
|
+
"Attachments": "Attachments",
|
|
3
5
|
"BCC": "BCC",
|
|
4
6
|
"CC": "CC",
|
|
5
7
|
"Content": "Content",
|
|
6
8
|
"Content type": "Content type",
|
|
9
|
+
"File record": "File record",
|
|
7
10
|
"From": "From",
|
|
8
11
|
"Ignore failed sending and continue workflow": "Ignore failed sending and continue workflow",
|
|
9
12
|
"In most cases, if using port 465, set it to true; otherwise, set it to false.": "In most cases, if using port 465, set it to true; otherwise, set it to false.",
|
|
10
13
|
"Mailer": "Mailer",
|
|
14
|
+
"Only variables that resolve to file collection records are supported.": "Only variables that resolve to file collection records are supported.",
|
|
11
15
|
"Password": "Password",
|
|
12
16
|
"Plain text": "Plain text",
|
|
13
17
|
"Port": "Port",
|
|
14
|
-
"SMTP host": "Service host",
|
|
15
18
|
"Secure": "Secure",
|
|
16
19
|
"Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.": "Send email by calling SMTP service. You can use the variables in the upstream nodes as receivers, subject and content of the email.",
|
|
20
|
+
"SMTP host": "Service host",
|
|
17
21
|
"Subject": "Subject",
|
|
18
22
|
"To": "To",
|
|
19
23
|
"User": "User"
|
|
20
|
-
}
|
|
24
|
+
}
|
package/dist/locale/ru-RU.json
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
+
"Add attachment": "Добавить вложение",
|
|
2
3
|
"Add email address": "Добавить email-адрес",
|
|
4
|
+
"Attachments": "Вложения",
|
|
3
5
|
"BCC": "Скрытая копия (BCC)",
|
|
4
6
|
"CC": "Копия (CC)",
|
|
5
7
|
"Content": "Содержание",
|
|
6
8
|
"Content type": "Тип содержания",
|
|
9
|
+
"File record": "Файловая запись",
|
|
7
10
|
"From": "От",
|
|
8
11
|
"Ignore failed sending and continue workflow": "Игнорировать неудачную отправку и продолжить рабочий процесс",
|
|
9
12
|
"In most cases, if using port 465, set it to true; otherwise, set it to false.": "В большинстве случаев, если используется порт 465, установите true; иначе установите false.",
|
|
10
13
|
"Mailer": "Почтовый сервис",
|
|
14
|
+
"Only variables that resolve to file collection records are supported.": "Поддерживаются только переменные, которые разрешаются в записи файловой коллекции.",
|
|
11
15
|
"Password": "Пароль",
|
|
12
16
|
"Plain text": "Простой текст",
|
|
13
17
|
"Port": "Порт",
|
|
14
|
-
"SMTP host": "Хост SMTP-сервиса",
|
|
15
18
|
"Secure": "Безопасное соединение",
|
|
16
19
|
"Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.": "Отправить email, вызвав SMTP-сервис. Вы можете использовать переменные из предыдущих узлов в качестве получателей, темы и содержания письма.",
|
|
20
|
+
"SMTP host": "Хост SMTP-сервиса",
|
|
17
21
|
"Subject": "Тема",
|
|
18
22
|
"To": "Кому",
|
|
19
23
|
"User": "Пользователь"
|
|
20
|
-
}
|
|
24
|
+
}
|
package/dist/locale/tr-TR.json
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
+
"Add attachment": "Add attachment",
|
|
2
3
|
"Add email address": "Add email address",
|
|
4
|
+
"Attachments": "Attachments",
|
|
3
5
|
"BCC": "BCC",
|
|
4
6
|
"CC": "CC",
|
|
5
7
|
"Content": "Content",
|
|
6
8
|
"Content type": "Content type",
|
|
9
|
+
"File record": "File record",
|
|
7
10
|
"From": "From",
|
|
8
11
|
"Ignore failed sending and continue workflow": "Ignore failed sending and continue workflow",
|
|
9
12
|
"In most cases, if using port 465, set it to true; otherwise, set it to false.": "In most cases, if using port 465, set it to true; otherwise, set it to false.",
|
|
10
13
|
"Mailer": "Mailer",
|
|
14
|
+
"Only variables that resolve to file collection records are supported.": "Only variables that resolve to file collection records are supported.",
|
|
11
15
|
"Password": "Password",
|
|
12
16
|
"Plain text": "Plain text",
|
|
13
17
|
"Port": "Port",
|
|
14
|
-
"SMTP host": "Service host",
|
|
15
18
|
"Secure": "Secure",
|
|
16
19
|
"Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.": "Send email by calling SMTP service. You can use the variables in the upstream nodes as receivers, subject and content of the email.",
|
|
20
|
+
"SMTP host": "Service host",
|
|
17
21
|
"Subject": "Subject",
|
|
18
22
|
"To": "To",
|
|
19
23
|
"User": "User"
|
|
20
|
-
}
|
|
24
|
+
}
|
package/dist/locale/uk-UA.json
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
+
"Add attachment": "Add attachment",
|
|
2
3
|
"Add email address": "Add email address",
|
|
4
|
+
"Attachments": "Attachments",
|
|
3
5
|
"BCC": "BCC",
|
|
4
6
|
"CC": "CC",
|
|
5
7
|
"Content": "Content",
|
|
6
8
|
"Content type": "Content type",
|
|
9
|
+
"File record": "File record",
|
|
7
10
|
"From": "From",
|
|
8
11
|
"Ignore failed sending and continue workflow": "Ignore failed sending and continue workflow",
|
|
9
12
|
"In most cases, if using port 465, set it to true; otherwise, set it to false.": "In most cases, if using port 465, set it to true; otherwise, set it to false.",
|
|
10
13
|
"Mailer": "Mailer",
|
|
14
|
+
"Only variables that resolve to file collection records are supported.": "Only variables that resolve to file collection records are supported.",
|
|
11
15
|
"Password": "Password",
|
|
12
16
|
"Plain text": "Plain text",
|
|
13
17
|
"Port": "Port",
|
|
14
|
-
"SMTP host": "Service host",
|
|
15
18
|
"Secure": "Secure",
|
|
16
19
|
"Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.": "Send email by calling SMTP service. You can use the variables in the upstream nodes as receivers, subject and content of the email.",
|
|
20
|
+
"SMTP host": "Service host",
|
|
17
21
|
"Subject": "Subject",
|
|
18
22
|
"To": "To",
|
|
19
23
|
"User": "User"
|
|
20
|
-
}
|
|
24
|
+
}
|
package/dist/locale/vi-VN.json
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
+
"Add attachment": "Thêm tệp đính kèm",
|
|
2
3
|
"Add email address": "Add email address",
|
|
4
|
+
"Attachments": "Tệp đính kèm",
|
|
3
5
|
"BCC": "BCC",
|
|
4
6
|
"CC": "CC",
|
|
5
7
|
"Content": "Nội dung",
|
|
6
8
|
"Content type": "Loại nội dung",
|
|
9
|
+
"File record": "Bản ghi tệp",
|
|
7
10
|
"From": "Từ",
|
|
8
11
|
"Ignore failed sending and continue workflow": "Bỏ qua gửi thất bại và tiếp tục quy trình",
|
|
9
12
|
"In most cases, if using port 465, set it to true; otherwise, set it to false.": "In most cases, if using port 465, set it to true; otherwise, set it to false.",
|
|
10
13
|
"Mailer": "Người gửi mail",
|
|
14
|
+
"Only variables that resolve to file collection records are supported.": "Chỉ hỗ trợ các biến được phân giải thành bản ghi bộ sưu tập tệp.",
|
|
11
15
|
"Password": "Mật khẩu",
|
|
12
16
|
"Plain text": "Văn bản thuần",
|
|
13
17
|
"Port": "Cổng",
|
|
14
|
-
"SMTP host": "Máy chủ dịch vụ",
|
|
15
18
|
"Secure": "Bảo mật",
|
|
16
19
|
"Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.": "Gửi email bằng cách gọi dịch vụ SMTP. Bạn có thể sử dụng các biến trong các nút phía trước làm người nhận, chủ đề và nội dung của email.",
|
|
20
|
+
"SMTP host": "Máy chủ dịch vụ",
|
|
17
21
|
"Subject": "Chủ đề",
|
|
18
22
|
"To": "Đến",
|
|
19
23
|
"User": "Người dùng"
|
|
20
|
-
}
|
|
24
|
+
}
|
package/dist/locale/zh-CN.json
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
+
"Add attachment": "新增附件",
|
|
2
3
|
"Add email address": "新增邮件地址",
|
|
4
|
+
"Attachments": "附件",
|
|
3
5
|
"BCC": "暗送",
|
|
4
6
|
"CC": "抄送",
|
|
5
7
|
"Content": "内容",
|
|
6
8
|
"Content type": "内容格式",
|
|
9
|
+
"File record": "文件记录",
|
|
7
10
|
"From": "发件人",
|
|
8
11
|
"Ignore failed sending and continue workflow": "忽略失败的发送并继续工作流",
|
|
9
12
|
"In most cases, if using port 465, set it to true; otherwise, set it to false.": "通常情况下,如果使用端口 465 ,请设置为 true ;否则,请设置为 false 。",
|
|
10
13
|
"Mailer": "邮件发送",
|
|
14
|
+
"Only variables that resolve to file collection records are supported.": "仅支持解析结果为文件表记录的变量。",
|
|
11
15
|
"Password": "密码",
|
|
12
16
|
"Plain text": "纯文本",
|
|
13
17
|
"Port": "端口",
|
|
14
|
-
"SMTP host": "SMTP 服务主机名",
|
|
15
18
|
"Secure": "安全模式",
|
|
16
19
|
"Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.": "发送邮件。可以使用上游节点中的变量作为邮件的接收者、主题和内容。",
|
|
20
|
+
"SMTP host": "SMTP 服务主机名",
|
|
17
21
|
"Subject": "主题",
|
|
18
22
|
"To": "收件人",
|
|
19
23
|
"User": "用户名"
|
|
20
|
-
}
|
|
24
|
+
}
|
package/dist/locale/zh-TW.json
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
+
"Add attachment": "Add attachment",
|
|
2
3
|
"Add email address": "Add email address",
|
|
4
|
+
"Attachments": "Attachments",
|
|
3
5
|
"BCC": "BCC",
|
|
4
6
|
"CC": "CC",
|
|
5
7
|
"Content": "Content",
|
|
6
8
|
"Content type": "Content type",
|
|
9
|
+
"File record": "File record",
|
|
7
10
|
"From": "From",
|
|
8
11
|
"Ignore failed sending and continue workflow": "Ignore failed sending and continue workflow",
|
|
9
12
|
"In most cases, if using port 465, set it to true; otherwise, set it to false.": "In most cases, if using port 465, set it to true; otherwise, set it to false.",
|
|
10
13
|
"Mailer": "Mailer",
|
|
14
|
+
"Only variables that resolve to file collection records are supported.": "Only variables that resolve to file collection records are supported.",
|
|
11
15
|
"Password": "Password",
|
|
12
16
|
"Plain text": "Plain text",
|
|
13
17
|
"Port": "Port",
|
|
14
|
-
"SMTP host": "Service host",
|
|
15
18
|
"Secure": "Secure",
|
|
16
19
|
"Send email. You can use the variables in the upstream nodes as receivers, subject and content of the email.": "Send email by calling SMTP service. You can use the variables in the upstream nodes as receivers, subject and content of the email.",
|
|
20
|
+
"SMTP host": "Service host",
|
|
17
21
|
"Subject": "Subject",
|
|
18
22
|
"To": "To",
|
|
19
23
|
"User": "User"
|
|
20
|
-
}
|
|
24
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"joi","description":"Object schema validation","version":"17.13.3","repository":"git://github.com/hapijs/joi","main":"lib/index.js","types":"lib/index.d.ts","browser":"dist/joi-browser.min.js","files":["lib/**/*","dist/*"],"keywords":["schema","validation"],"dependencies":{"@hapi/hoek":"^9.3.0","@hapi/topo":"^5.1.0","@sideway/address":"^4.1.5","@sideway/formula":"^3.0.1","@sideway/pinpoint":"^2.0.0"},"devDependencies":{"@hapi/bourne":"2.x.x","@hapi/code":"8.x.x","@hapi/joi-legacy-test":"npm:@hapi/joi@15.x.x","@hapi/lab":"^25.1.3","@types/node":"^14.18.63","typescript":"4.3.x"},"scripts":{"prepublishOnly":"cd browser && npm install && npm run build","test":"lab -t 100 -a @hapi/code -L -Y","test-cov-html":"lab -r html -o coverage.html -a @hapi/code"},"license":"BSD-3-Clause","_lastModified":"2026-06-
|
|
1
|
+
{"name":"joi","description":"Object schema validation","version":"17.13.3","repository":"git://github.com/hapijs/joi","main":"lib/index.js","types":"lib/index.d.ts","browser":"dist/joi-browser.min.js","files":["lib/**/*","dist/*"],"keywords":["schema","validation"],"dependencies":{"@hapi/hoek":"^9.3.0","@hapi/topo":"^5.1.0","@sideway/address":"^4.1.5","@sideway/formula":"^3.0.1","@sideway/pinpoint":"^2.0.0"},"devDependencies":{"@hapi/bourne":"2.x.x","@hapi/code":"8.x.x","@hapi/joi-legacy-test":"npm:@hapi/joi@15.x.x","@hapi/lab":"^25.1.3","@types/node":"^14.18.63","typescript":"4.3.x"},"scripts":{"prepublishOnly":"cd browser && npm install && npm run build","test":"lab -t 100 -a @hapi/code -L -Y","test-cov-html":"lab -r html -o coverage.html -a @hapi/code"},"license":"BSD-3-Clause","_lastModified":"2026-06-15T15:31:30.291Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"nodemailer","version":"6.9.13","description":"Easy as cake e-mail sending from your Node.js applications","main":"lib/nodemailer.js","scripts":{"test":"node --test --test-concurrency=1 test/**/*.test.js test/**/*-test.js","test:coverage":"c8 node --test --test-concurrency=1 test/**/*.test.js test/**/*-test.js","lint":"eslint .","update":"rm -rf node_modules/ package-lock.json && ncu -u && npm install"},"repository":{"type":"git","url":"https://github.com/nodemailer/nodemailer.git"},"keywords":["Nodemailer"],"author":"Andris Reinman","license":"MIT-0","bugs":{"url":"https://github.com/nodemailer/nodemailer/issues"},"homepage":"https://nodemailer.com/","devDependencies":{"@aws-sdk/client-ses":"3.529.1","bunyan":"1.8.15","c8":"9.1.0","eslint":"8.57.0","eslint-config-nodemailer":"1.2.0","eslint-config-prettier":"9.1.0","libbase64":"1.3.0","libmime":"5.3.4","libqp":"2.1.0","nodemailer-ntlm-auth":"1.0.4","proxy":"1.0.2","proxy-test-server":"1.0.0","smtp-server":"3.13.3"},"engines":{"node":">=6.0.0"},"_lastModified":"2026-06-
|
|
1
|
+
{"name":"nodemailer","version":"6.9.13","description":"Easy as cake e-mail sending from your Node.js applications","main":"lib/nodemailer.js","scripts":{"test":"node --test --test-concurrency=1 test/**/*.test.js test/**/*-test.js","test:coverage":"c8 node --test --test-concurrency=1 test/**/*.test.js test/**/*-test.js","lint":"eslint .","update":"rm -rf node_modules/ package-lock.json && ncu -u && npm install"},"repository":{"type":"git","url":"https://github.com/nodemailer/nodemailer.git"},"keywords":["Nodemailer"],"author":"Andris Reinman","license":"MIT-0","bugs":{"url":"https://github.com/nodemailer/nodemailer/issues"},"homepage":"https://nodemailer.com/","devDependencies":{"@aws-sdk/client-ses":"3.529.1","bunyan":"1.8.15","c8":"9.1.0","eslint":"8.57.0","eslint-config-nodemailer":"1.2.0","eslint-config-prettier":"9.1.0","libbase64":"1.3.0","libmime":"5.3.4","libqp":"2.1.0","nodemailer-ntlm-auth":"1.0.4","proxy":"1.0.2","proxy-test-server":"1.0.0","smtp-server":"3.13.3"},"engines":{"node":">=6.0.0"},"_lastModified":"2026-06-15T15:31:30.965Z"}
|
|
@@ -10,6 +10,8 @@ import Joi from 'joi';
|
|
|
10
10
|
import { FlowNodeModel, Instruction, InstructionResult, JobModel, Processor } from '@nocobase/plugin-workflow';
|
|
11
11
|
export default class MailerInstruction extends Instruction {
|
|
12
12
|
configSchema: Joi.ObjectSchema<any>;
|
|
13
|
+
private getAttachments;
|
|
14
|
+
private getPayload;
|
|
13
15
|
run(node: FlowNodeModel, prevJob: JobModel, processor: Processor, options?: {
|
|
14
16
|
signal?: AbortSignal;
|
|
15
17
|
}): Promise<InstructionResult>;
|
|
@@ -42,7 +42,41 @@ module.exports = __toCommonJS(MailerInstruction_exports);
|
|
|
42
42
|
var import_joi = __toESM(require("joi"));
|
|
43
43
|
var import_nodemailer = __toESM(require("nodemailer"));
|
|
44
44
|
var import_plugin_workflow = require("@nocobase/plugin-workflow");
|
|
45
|
+
var import_plugin_file_manager = __toESM(require("@nocobase/plugin-file-manager"));
|
|
45
46
|
var import_get = __toESM(require("lodash/get"));
|
|
47
|
+
function isRecord(value) {
|
|
48
|
+
return value !== null && typeof value === "object";
|
|
49
|
+
}
|
|
50
|
+
function toPlainRecord(value) {
|
|
51
|
+
if (!isRecord(value)) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
if ("dataValues" in value && isRecord(value.dataValues)) {
|
|
55
|
+
return value.dataValues;
|
|
56
|
+
}
|
|
57
|
+
return value;
|
|
58
|
+
}
|
|
59
|
+
function isPlainFileRecord(record) {
|
|
60
|
+
return Boolean(
|
|
61
|
+
isRecord(record) && typeof record.title === "string" && typeof record.storageId === "number" && typeof record.path === "string" && typeof record.filename === "string" && record.filename.length > 0
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
function getAttachmentFilename(file) {
|
|
65
|
+
if (file.title && file.extname) {
|
|
66
|
+
return `${file.title}${file.extname}`;
|
|
67
|
+
}
|
|
68
|
+
return file.title || file.filename;
|
|
69
|
+
}
|
|
70
|
+
function normalizeFiles(value) {
|
|
71
|
+
if (Array.isArray(value)) {
|
|
72
|
+
return value.flatMap((item) => normalizeFiles(item));
|
|
73
|
+
}
|
|
74
|
+
const record = toPlainRecord(value);
|
|
75
|
+
if (isPlainFileRecord(record)) {
|
|
76
|
+
return [record];
|
|
77
|
+
}
|
|
78
|
+
return [];
|
|
79
|
+
}
|
|
46
80
|
const transporterMap = /* @__PURE__ */ new Map();
|
|
47
81
|
const configMap = /* @__PURE__ */ new Map();
|
|
48
82
|
function getTransporterKey(provider) {
|
|
@@ -73,7 +107,11 @@ function getTransporter(provider) {
|
|
|
73
107
|
}
|
|
74
108
|
return createNewTransporter(key, newConfig);
|
|
75
109
|
}
|
|
76
|
-
|
|
110
|
+
const transporter = transporterMap.get(key);
|
|
111
|
+
if (!transporter) {
|
|
112
|
+
return createNewTransporter(key, newConfig);
|
|
113
|
+
}
|
|
114
|
+
return transporter;
|
|
77
115
|
}
|
|
78
116
|
function discardTransporter(key, transporter) {
|
|
79
117
|
transporter.close();
|
|
@@ -180,40 +218,57 @@ class MailerInstruction extends import_plugin_workflow.Instruction {
|
|
|
180
218
|
contentType: import_joi.default.string().valid("html", "text").default("html"),
|
|
181
219
|
html: import_joi.default.string(),
|
|
182
220
|
text: import_joi.default.string(),
|
|
221
|
+
attachments: import_joi.default.any(),
|
|
183
222
|
ignoreFail: import_joi.default.boolean().default(false)
|
|
184
223
|
});
|
|
224
|
+
async getAttachments(attachments = []) {
|
|
225
|
+
const files = normalizeFiles(attachments);
|
|
226
|
+
if (!files.length) {
|
|
227
|
+
return void 0;
|
|
228
|
+
}
|
|
229
|
+
const fileManager = this.workflow.app.pm.get(import_plugin_file_manager.default);
|
|
230
|
+
if (!fileManager) {
|
|
231
|
+
throw new Error("[workflow-mailer] file-manager plugin is required to send attachments");
|
|
232
|
+
}
|
|
233
|
+
return Promise.all(
|
|
234
|
+
files.map(async (file) => {
|
|
235
|
+
const { stream, contentType } = await fileManager.getFileStream(file);
|
|
236
|
+
const resolvedContentType = contentType || file.mimetype;
|
|
237
|
+
return {
|
|
238
|
+
filename: getAttachmentFilename(file),
|
|
239
|
+
content: stream,
|
|
240
|
+
...resolvedContentType ? { contentType: resolvedContentType } : {}
|
|
241
|
+
};
|
|
242
|
+
})
|
|
243
|
+
);
|
|
244
|
+
}
|
|
245
|
+
async getPayload(config) {
|
|
246
|
+
const { provider, contentType, to = [], cc, bcc, subject, html, text, ignoreFail, attachments, ...others } = config;
|
|
247
|
+
return {
|
|
248
|
+
...others,
|
|
249
|
+
...contentType === "html" ? { html } : { text },
|
|
250
|
+
subject: subject == null ? void 0 : subject.trim(),
|
|
251
|
+
to: to ? to.flat().map((item) => item == null ? void 0 : item.trim()).filter(Boolean) : void 0,
|
|
252
|
+
cc: cc ? cc.flat().map((item) => item == null ? void 0 : item.trim()).filter(Boolean) : [],
|
|
253
|
+
bcc: bcc ? bcc.flat().map((item) => item == null ? void 0 : item.trim()).filter(Boolean) : [],
|
|
254
|
+
attachments: await this.getAttachments(attachments)
|
|
255
|
+
};
|
|
256
|
+
}
|
|
185
257
|
async run(node, prevJob, processor, options) {
|
|
186
258
|
var _a, _b;
|
|
187
|
-
const
|
|
188
|
-
|
|
189
|
-
contentType,
|
|
190
|
-
to = [],
|
|
191
|
-
cc,
|
|
192
|
-
bcc,
|
|
193
|
-
subject,
|
|
194
|
-
html,
|
|
195
|
-
text,
|
|
196
|
-
ignoreFail,
|
|
197
|
-
...others
|
|
198
|
-
} = processor.getParsedValue(node.config, node.id);
|
|
259
|
+
const config = processor.getParsedValue(node.config, node.id);
|
|
260
|
+
const { provider, ignoreFail } = config;
|
|
199
261
|
const { workflow } = processor.execution;
|
|
200
262
|
const currentWorkflow = (workflow == null ? void 0 : workflow.options) || ((_a = workflow == null ? void 0 : workflow.get) == null ? void 0 : _a.call(workflow, "options")) ? workflow : await node.getWorkflow();
|
|
201
|
-
const sync =
|
|
263
|
+
const sync = processor.isInstructionSync(node);
|
|
202
264
|
const workflowOptions = (currentWorkflow == null ? void 0 : currentWorkflow.options) ?? ((_b = currentWorkflow == null ? void 0 : currentWorkflow.get) == null ? void 0 : _b.call(currentWorkflow, "options")) ?? {};
|
|
203
265
|
const workflowTimeout = Number(workflowOptions.timeout ?? 0);
|
|
204
266
|
const transporterKey = getTransporterKey(provider);
|
|
205
267
|
const transporter = getTransporter(provider);
|
|
206
268
|
const mailAbort = createAbortSignal(processor, options == null ? void 0 : options.signal, workflowTimeout);
|
|
207
|
-
const payload = {
|
|
208
|
-
...others,
|
|
209
|
-
...contentType === "html" ? { html } : { text },
|
|
210
|
-
subject: subject == null ? void 0 : subject.trim(),
|
|
211
|
-
to: to ? to.flat().map((item) => item == null ? void 0 : item.trim()).filter(Boolean) : void 0,
|
|
212
|
-
cc: cc ? cc.flat().map((item) => item == null ? void 0 : item.trim()).filter(Boolean) : [],
|
|
213
|
-
bcc: bcc ? bcc.flat().map((item) => item == null ? void 0 : item.trim()).filter(Boolean) : []
|
|
214
|
-
};
|
|
215
269
|
if (sync) {
|
|
216
270
|
try {
|
|
271
|
+
const payload = await this.getPayload(config);
|
|
217
272
|
const result = await sendMail(transporter, transporterKey, payload, mailAbort.signal);
|
|
218
273
|
return {
|
|
219
274
|
status: import_plugin_workflow.JOB_STATUS.RESOLVED,
|
|
@@ -240,6 +295,7 @@ class MailerInstruction extends import_plugin_workflow.Instruction {
|
|
|
240
295
|
await processor.exit();
|
|
241
296
|
const jobDone = { status: import_plugin_workflow.JOB_STATUS.PENDING };
|
|
242
297
|
try {
|
|
298
|
+
const payload = await this.getPayload(config);
|
|
243
299
|
const response = await sendMail(transporter, transporterKey, payload, mailAbort.signal);
|
|
244
300
|
processor.logger.info(`smtp-mailer (#${node.id}) sent successfully.`);
|
|
245
301
|
jobDone.status = import_plugin_workflow.JOB_STATUS.RESOLVED;
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"description": "Send email in workflow.",
|
|
7
7
|
"description.ru-RU": "Отправляет электронное письмо в рамках рабочего процесса.",
|
|
8
8
|
"description.zh-CN": "可用于在工作流中发送电子邮件。",
|
|
9
|
-
"version": "2.2.0-beta.
|
|
9
|
+
"version": "2.2.0-beta.3",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"main": "./dist/server/index.js",
|
|
12
12
|
"homepage": "https://docs.nocobase.com/handbook/workflow-smtp-mailer",
|
|
@@ -21,11 +21,12 @@
|
|
|
21
21
|
"peerDependencies": {
|
|
22
22
|
"@nocobase/client": "2.x",
|
|
23
23
|
"@nocobase/database": "2.x",
|
|
24
|
+
"@nocobase/plugin-file-manager": "2.x",
|
|
24
25
|
"@nocobase/plugin-workflow": ">=0.17.0-alpha.3",
|
|
25
26
|
"@nocobase/server": "2.x",
|
|
26
27
|
"@nocobase/test": "2.x"
|
|
27
28
|
},
|
|
28
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "7b16bb2cfd427c110c6671252138cd85155723c5",
|
|
29
30
|
"keywords": [
|
|
30
31
|
"NocoBase",
|
|
31
32
|
"Workflow",
|