From 543e696bfc5b7e0c08c93c7293c1819c198f6515 Mon Sep 17 00:00:00 2001 From: Philipp Kunz Date: Fri, 16 Feb 2024 13:41:04 +0100 Subject: [PATCH] fix(core): update --- package.json | 10 +- pnpm-lock.yaml | 376 ++++++++++++++++++++++++++++- ts/00_commitinfo_data.ts | 2 +- ts/mta/mta.classes.apimanager.ts | 2 +- ts/mta/mta.classes.dkimcreator.ts | 4 +- ts/mta/mta.classes.dkimverifier.ts | 2 +- ts/mta/mta.classes.dnsmanager.ts | 2 +- ts/mta/mta.classes.emailsendjob.ts | 4 +- ts/mta/mta.classes.emailsignjob.ts | 2 +- ts/mta/mta.classes.mta.ts | 2 +- ts/mta/mta.classes.smtpserver.ts | 4 +- ts/mta/paths.ts | 12 - ts/mta/plugins.ts | 67 ----- ts/paths.ts | 6 + ts/plugins.ts | 40 ++- 15 files changed, 433 insertions(+), 102 deletions(-) delete mode 100644 ts/mta/paths.ts delete mode 100644 ts/mta/plugins.ts diff --git a/package.json b/package.json index d53b3c8..28a6f30 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,8 @@ "dependencies": { "@api.global/typedrequest": "^3.0.4", "@api.global/typedserver": "^3.0.20", + "@api.global/typedsocket": "^3.0.0", + "@apiclient.xyz/cloudflare": "^6.0.3", "@push.rocks/projectinfo": "^5.0.1", "@push.rocks/qenv": "^6.0.5", "@push.rocks/smartdata": "^5.0.7", @@ -30,8 +32,14 @@ "@push.rocks/smartlog": "^3.0.3", "@push.rocks/smartmail": "^1.0.24", "@push.rocks/smartpath": "^5.0.5", + "@push.rocks/smartpromise": "^4.0.3", "@push.rocks/smartrequest": "^2.0.21", + "@push.rocks/smartrx": "^3.0.7", "@push.rocks/smartstate": "^2.0.0", - "@serve.zone/interfaces": "^1.0.34" + "@serve.zone/interfaces": "^1.0.34", + "@tsclass/tsclass": "^4.0.51", + "mailauth": "^4.6.5", + "mailparser": "^3.6.7", + "uuid": "^9.0.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fc1f46d..a38556f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,6 +11,12 @@ dependencies: '@api.global/typedserver': specifier: ^3.0.20 version: 3.0.20 + '@api.global/typedsocket': + specifier: ^3.0.0 + version: 3.0.0 + '@apiclient.xyz/cloudflare': + specifier: ^6.0.3 + version: 6.0.3 '@push.rocks/projectinfo': specifier: ^5.0.1 version: 5.0.2 @@ -32,15 +38,33 @@ dependencies: '@push.rocks/smartpath': specifier: ^5.0.5 version: 5.0.11 + '@push.rocks/smartpromise': + specifier: ^4.0.3 + version: 4.0.3 '@push.rocks/smartrequest': specifier: ^2.0.21 version: 2.0.21 + '@push.rocks/smartrx': + specifier: ^3.0.7 + version: 3.0.7 '@push.rocks/smartstate': specifier: ^2.0.0 version: 2.0.17 '@serve.zone/interfaces': specifier: ^1.0.34 version: 1.0.34 + '@tsclass/tsclass': + specifier: ^4.0.51 + version: 4.0.51 + mailauth: + specifier: ^4.6.5 + version: 4.6.5 + mailparser: + specifier: ^3.6.7 + version: 3.6.7 + uuid: + specifier: ^9.0.1 + version: 9.0.1 devDependencies: '@git.zone/tsbuild': @@ -107,9 +131,7 @@ packages: express-force-ssl: 0.3.2 lit: 3.1.2 transitivePeerDependencies: - - bufferutil - supports-color - - utf-8-validate /@api.global/typedsocket@3.0.0: resolution: {integrity: sha512-ui+6MLd99iTN/lC+iC/FKPRjzVyiZ4PrmlU6ptbCtbBj3cSOXHx+RRGF54+be2xHodf4FOgwFv/GZdW8LtO3vg==} @@ -127,6 +149,17 @@ packages: - supports-color - utf-8-validate + /@apiclient.xyz/cloudflare@6.0.3: + resolution: {integrity: sha512-NOPHFrKVxfkrRn9lVBLCdo0Ibm08PuaJe3A1K6TmXWxgbeJSqGkgVMGRwLilnol/062v6/1w2ZFO6f3fAxk5Gw==} + dependencies: + '@pushrocks/smartdelay': 3.0.1 + '@pushrocks/smartlog': 3.0.2 + '@pushrocks/smartpromise': 4.0.2 + '@pushrocks/smartrequest': 2.0.15 + '@pushrocks/smartstring': 4.0.7 + '@tsclass/tsclass': 4.0.51 + dev: false + /@apiglobal/typedrequest-interfaces@1.0.20: resolution: {integrity: sha512-ybsDtavYbzGJYSLodSbkxDvSLYtfMzBTuNZDJpiANt1rZA2MO/GCq8zk5MVLlrUUQIr/7oxPGWqxi1QDwR+RHQ==} @@ -959,6 +992,11 @@ packages: dev: true optional: true + /@fastify/busboy@2.1.0: + resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} + engines: {node: '>=14'} + dev: false + /@git.zone/tsbuild@2.1.72: resolution: {integrity: sha512-rVWM98chNjkt8pXdF5knGErZjM3GPnRXZYHVGECptxNvvhTol2DliM1OP8k3p3X5UOwEPV2sQVe//XzXs3BcUw==} hasBin: true @@ -1060,6 +1098,16 @@ packages: - supports-color dev: true + /@hapi/hoek@9.3.0: + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + dev: false + + /@hapi/topo@5.1.0: + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + dependencies: + '@hapi/hoek': 9.3.0 + dev: false + /@isaacs/cliui@8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -1191,12 +1239,47 @@ packages: - utf-8-validate dev: true + /@peculiar/asn1-schema@2.3.8: + resolution: {integrity: sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA==} + dependencies: + asn1js: 3.0.5 + pvtsutils: 1.3.5 + tslib: 2.6.2 + dev: false + + /@peculiar/asn1-x509-logotype@2.3.8: + resolution: {integrity: sha512-8o3iLl/aQP/HEpaxmU9tGo/7iqSb6XQtSYbJIOd8cXg7Wy5xnBsO5JgCs/njl0pFg+nph37DHFiVqy/R4kmIGQ==} + dependencies: + '@peculiar/asn1-schema': 2.3.8 + '@peculiar/asn1-x509': 2.3.8 + asn1js: 3.0.5 + tslib: 2.6.2 + dev: false + + /@peculiar/asn1-x509@2.3.8: + resolution: {integrity: sha512-voKxGfDU1c6r9mKiN5ZUsZWh3Dy1BABvTM3cimf0tztNwyMJPhiXY94eRTgsMQe6ViLfT6EoXxkWVzcm3mFAFw==} + dependencies: + '@peculiar/asn1-schema': 2.3.8 + asn1js: 3.0.5 + ipaddr.js: 2.1.0 + pvtsutils: 1.3.5 + tslib: 2.6.2 + dev: false + /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} requiresBuild: true optional: true + /@postalsys/vmc@1.0.8: + resolution: {integrity: sha512-qIa71QZOJAr7JJJ4I4Zdre7YeBBBZyBqCl3p3gt8NARPFpIsSjrYUo3CpiU4cFWVcTBCAco9zBgazgE64p6pLA==} + dependencies: + '@peculiar/asn1-schema': 2.3.8 + '@peculiar/asn1-x509': 2.3.8 + '@peculiar/asn1-x509-logotype': 2.3.8 + dev: false + /@push.rocks/consolecolor@2.0.1: resolution: {integrity: sha512-iQx+sjxmvhRXjnv8aMiaZu125ZWfyZKSylCvKUNjVrdhkmP2uPy2VWsvyRBS4UiieYHTY/i+HpQiFv4QZV2/Fg==} dependencies: @@ -1817,7 +1900,6 @@ packages: deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartdelay dependencies: '@pushrocks/smartpromise': 4.0.2 - dev: true /@pushrocks/smartenv@5.0.5: resolution: {integrity: sha512-VWON1OJ4qV2/9hzJbgRquRekaO9am3b8W82tgCwgO6LBg23ea2tanfd+gESVMbRFduxHVoFLvlhSBcDGM5zsLA==} @@ -1917,7 +1999,14 @@ packages: deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartlog-interfaces dependencies: '@apiglobal/typedrequest-interfaces': 2.0.1 - dev: true + + /@pushrocks/smartlog@3.0.2: + resolution: {integrity: sha512-1WPA0LX9HfE54ESKtk32uvsXiYIMu2QX7NUlQ3uHSMmFULnJYo2m/LeKEf6qHH7DJtxZbkWzkrMOkZVPL1MeNg==} + deprecated: This package has been deprecated in favour of the new package at @push.rocks/smartlog + dependencies: + '@pushrocks/isounique': 1.0.5 + '@pushrocks/smartlog-interfaces': 3.0.0 + dev: false /@pushrocks/smartmatch@1.0.7: resolution: {integrity: sha512-D+lK5HIKO4Kj1Jm/ycKvy1VzDJ3V6ucHqmf5DMBFdm18BrMj2Zb6M7wN8HUKtkfHvOI7ig85JMuANSEyO7kAPg==} @@ -2066,6 +2155,13 @@ packages: unicode-trie: 0.3.1 dev: true + /@selderee/plugin-htmlparser2@0.11.0: + resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} + dependencies: + domhandler: 5.0.3 + selderee: 0.11.0 + dev: false + /@serve.zone/interfaces@1.0.34: resolution: {integrity: sha512-5G340VReyWT8v4DNMUOfWQtZSDAA+sCnWwhMUaVcGglMSSMpPge6N3G7M7gbRknf87nqN13U/6+ZzVqRz3U52w==} dependencies: @@ -2074,6 +2170,20 @@ packages: '@tsclass/tsclass': 4.0.51 dev: false + /@sideway/address@4.1.5: + resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + dependencies: + '@hapi/hoek': 9.3.0 + dev: false + + /@sideway/formula@3.0.1: + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + dev: false + + /@sideway/pinpoint@2.0.0: + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + dev: false + /@sindresorhus/is@5.6.0: resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} engines: {node: '>=14.16'} @@ -3188,6 +3298,15 @@ packages: is-shared-array-buffer: 1.0.2 dev: true + /asn1js@3.0.5: + resolution: {integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==} + engines: {node: '>=12.0.0'} + dependencies: + pvtsutils: 1.3.5 + pvutils: 1.1.3 + tslib: 2.6.2 + dev: false + /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true @@ -3495,6 +3614,15 @@ packages: wrap-ansi: 5.1.0 dev: true + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: false + /clone@2.1.2: resolution: {integrity: sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=} engines: {node: '>=0.8'} @@ -3705,6 +3833,11 @@ packages: resolution: {integrity: sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=} dev: true + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: false + /defer-to-connect@2.0.1: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} engines: {node: '>=10'} @@ -3800,11 +3933,38 @@ packages: resolution: {integrity: sha512-m27K11aQalRbmUs7RLaz6aPyceLjAoqjPRNTdE7qUouQpl+PC8Bi67O+i9SuJUPbQC8dxFrczAxfmTPuTKHNkw==} dev: false + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + dev: false + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: false + /domexception@1.0.1: resolution: {integrity: sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==} dependencies: webidl-conversions: 4.0.2 + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: false + + /domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dev: false + /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -3825,6 +3985,11 @@ packages: resolution: {integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=} engines: {node: '>= 0.8'} + /encoding-japanese@2.0.0: + resolution: {integrity: sha512-++P0RhebUC8MJAwJOsT93dT+5oc5oPImp1HubZpAuCZ5kTLnhuuBhKHj2jJeO/Gj93idPBWmIuQ9QWMe5rX3pQ==} + engines: {node: '>=8.10.0'} + dev: false + /end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: @@ -3869,6 +4034,11 @@ packages: /entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: false + /errorstacks@2.4.1: resolution: {integrity: sha512-jE4i0SMYevwu/xxAuzhly/KTwtj0xDhbzB6m1xPImxTkw8wcCbgarOQPfCVMi5JKVyW7in29pNJCCJrry3Ynnw==} dev: true @@ -3987,6 +4157,11 @@ packages: '@esbuild/win32-x64': 0.19.12 dev: true + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + dev: false + /escape-html@1.0.3: resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=} @@ -4299,7 +4474,6 @@ packages: /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - dev: true /get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} @@ -4485,7 +4659,6 @@ packages: /he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true - dev: true /html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -4505,6 +4678,26 @@ packages: uglify-js: 3.17.4 dev: true + /html-to-text@9.0.5: + resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==} + engines: {node: '>=14'} + dependencies: + '@selderee/plugin-htmlparser2': 0.11.0 + deepmerge: 4.3.1 + dom-serializer: 2.0.0 + htmlparser2: 8.0.2 + selderee: 0.11.0 + dev: false + + /htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + dev: false + /http-assert@1.5.0: resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} engines: {node: '>= 0.8'} @@ -4576,6 +4769,13 @@ packages: dependencies: safer-buffer: 2.1.2 + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: false + /idb@7.1.1: resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} @@ -4640,6 +4840,11 @@ packages: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} + /ipaddr.js@2.1.0: + resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} + engines: {node: '>= 10'} + dev: false + /is-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} @@ -4870,6 +5075,16 @@ packages: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + /joi@17.12.1: + resolution: {integrity: sha512-vtxmq+Lsc5SlfqotnfVjlViWfOL9nt/avKNbKYizwf6gsCfq9NYY/ceYRMFD8XDdrjJ9abJyScWmhmIiy+XRtQ==} + 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 + dev: false + /js-base64@3.7.6: resolution: {integrity: sha512-NPrWuHFxFUknr1KqJRDgUQPexQF0uIJWjeT+2KjEePhitQxQEx5EJBG1lVn5/hc8aLycTpXrDOgPQ6Zq+EDiTA==} @@ -5004,6 +5219,42 @@ packages: - supports-color dev: true + /leac@0.6.0: + resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} + dev: false + + /libbase64@1.2.1: + resolution: {integrity: sha512-l+nePcPbIG1fNlqMzrh68MLkX/gTxk/+vdvAb388Ssi7UuUN31MI44w4Yf33mM3Cm4xDfw48mdf3rkdHszLNew==} + dev: false + + /libmime@5.2.0: + resolution: {integrity: sha512-X2U5Wx0YmK0rXFbk67ASMeqYIkZ6E5vY7pNWRKtnNzqjvdYYG8xtPDpCnuUEnPU9vlgNev+JoSrcaKSUaNvfsw==} + dependencies: + encoding-japanese: 2.0.0 + iconv-lite: 0.6.3 + libbase64: 1.2.1 + libqp: 2.0.1 + dev: false + + /libmime@5.2.1: + resolution: {integrity: sha512-A0z9O4+5q+ZTj7QwNe/Juy1KARNb4WaviO4mYeFC4b8dBT2EEqK2pkM+GC8MVnkOjqhl5nYQxRgnPYRRTNmuSQ==} + dependencies: + encoding-japanese: 2.0.0 + iconv-lite: 0.6.3 + libbase64: 1.2.1 + libqp: 2.0.1 + dev: false + + /libqp@2.0.1: + resolution: {integrity: sha512-Ka0eC5LkF3IPNQHJmYBWljJsw0UvM6j+QdKRbWyCdTmYwvIDE6a7bCm0UkTAL/K+3KXK5qXT/ClcInU01OpdLg==} + dev: false + + /linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + dependencies: + uc.micro: 2.0.0 + dev: false + /lit-element@2.5.1: resolution: {integrity: sha512-ogu7PiJTA33bEK0xGu1dmaX5vhcRjBXCFexPja0e7P7jqLhTpNKYRPmE+GmiCaRVAbiQKGkUgkh/i6+bh++dPQ==} dependencies: @@ -5147,6 +5398,46 @@ packages: dependencies: yallist: 4.0.0 + /mailauth@4.6.5: + resolution: {integrity: sha512-bQFgHrhcmks+LNwcEYTxqX3PZ2lA2LvAUatxSgmfZREbJfDBSwvZ9NX8Nc/l2t/DyUF6dmorPqn+gGdQZjfKCw==} + engines: {node: '>=16.0.0'} + hasBin: true + dependencies: + '@postalsys/vmc': 1.0.8 + fast-xml-parser: 4.3.4 + ipaddr.js: 2.1.0 + joi: 17.12.1 + libmime: 5.2.1 + nodemailer: 6.9.9 + psl: 1.9.0 + punycode: 2.3.1 + undici: 5.28.2 + uuid: 9.0.1 + yargs: 17.7.2 + dev: false + + /mailparser@3.6.7: + resolution: {integrity: sha512-/3x8HW70DNehw+3vdOPKdlLuxOHoWcGB5jfx5vJ5XUbY9/2jUJbrrhda5Si8Dj/3w08U0y5uGAkqs5+SPTPKoA==} + dependencies: + encoding-japanese: 2.0.0 + he: 1.2.0 + html-to-text: 9.0.5 + iconv-lite: 0.6.3 + libmime: 5.2.1 + linkify-it: 5.0.0 + mailsplit: 5.4.0 + nodemailer: 6.9.9 + tlds: 1.248.0 + dev: false + + /mailsplit@5.4.0: + resolution: {integrity: sha512-wnYxX5D5qymGIPYLwnp6h8n1+6P6vz/MJn5AzGjZ8pwICWssL+CCQjWBIToOVHASmATot4ktvlLo6CyLfOXWYA==} + dependencies: + libbase64: 1.2.1 + libmime: 5.2.0 + libqp: 2.0.1 + dev: false + /make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} @@ -5490,6 +5781,11 @@ packages: whatwg-url: 5.0.0 dev: true + /nodemailer@6.9.9: + resolution: {integrity: sha512-dexTll8zqQoVJEZPwQAKzxxtFn0qTnjdQTchoU6Re9BUUGBJiOy3YMn/0ShTW6J5M0dfQ1NeDeRTTl4oIWgQMA==} + engines: {node: '>=6.0.0'} + dev: false + /normalize-newline@4.1.0: resolution: {integrity: sha512-ff4jKqMI8Xl50/4Mms/9jPobzAV/UK+kXG2XJ/7AqOmxIx8mqfqTIHYxuAnEgJ2AQeBbLnlbmZ5+38Y9A0w/YA==} engines: {node: '>=12'} @@ -5645,6 +5941,13 @@ packages: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} dev: true + /parseley@0.12.1: + resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==} + dependencies: + leac: 0.6.0 + peberminta: 0.9.0 + dev: false + /parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -5717,6 +6020,10 @@ packages: uuid: 8.3.2 dev: true + /peberminta@0.9.0: + resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} + dev: false + /pend@1.2.0: resolution: {integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA=} @@ -5767,6 +6074,10 @@ packages: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: true + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: false + /public-ip@6.0.1: resolution: {integrity: sha512-1/Mxa1MKrAQ4jF5IalECSBtB0W1FAtnG+9c5X16jjvV/Gx9fiRy7xXIrHlBGYjnTlai0zdZkM3LrpmASavmAEg==} engines: {node: '>=14.16'} @@ -5815,6 +6126,17 @@ packages: - utf-8-validate dev: true + /pvtsutils@1.3.5: + resolution: {integrity: sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==} + dependencies: + tslib: 2.6.2 + dev: false + + /pvutils@1.1.3: + resolution: {integrity: sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==} + engines: {node: '>=6.0.0'} + dev: false + /qs@6.11.0: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} @@ -5921,7 +6243,6 @@ packages: /require-directory@2.1.1: resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} engines: {node: '>=0.10.0'} - dev: true /require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} @@ -6014,6 +6335,12 @@ packages: /sax@1.3.0: resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + /selderee@0.11.0: + resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} + dependencies: + parseley: 0.12.1 + dev: false + /semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true @@ -6455,6 +6782,11 @@ packages: esm: 3.2.25 dev: true + /tlds@1.248.0: + resolution: {integrity: sha512-noj0KdpWTBhwsKxMOXk0rN9otg4kTgLm4WohERRHbJ9IY+kSDKr3RmjitaQ3JFzny+DyvBOQKlFZhp0G0qNSfg==} + hasBin: true + dev: false + /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -6620,6 +6952,10 @@ packages: resolution: {integrity: sha512-6FTtyGr8ldU0pfbvW/eOZrEtEkczHRUtduBnA90Jh9kMPCiFNnXIon3vF41N0S4tV1HHQt4Hk1j4srpESziCaA==} engines: {node: '>=0.1.14'} + /uc.micro@2.0.0: + resolution: {integrity: sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig==} + dev: false + /uglify-js@3.17.4: resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} engines: {node: '>=0.8.0'} @@ -6644,6 +6980,13 @@ packages: /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + /undici@5.28.2: + resolution: {integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==} + engines: {node: '>=14.0'} + dependencies: + '@fastify/busboy': 2.1.0 + dev: false + /unicode-trie@0.3.1: resolution: {integrity: sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=} dependencies: @@ -6906,6 +7249,11 @@ packages: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} dev: true + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: false + /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} @@ -6919,7 +7267,6 @@ packages: /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} - dev: true /yargs-unparser@1.6.0: resolution: {integrity: sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==} @@ -6945,6 +7292,19 @@ packages: yargs-parser: 13.1.2 dev: true + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.2 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: false + /yauzl@2.10.0: resolution: {integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=} dependencies: diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index a23af5e..2f4849a 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@serve.zone/platformservice', - version: '1.0.3', + version: '1.0.4', description: 'contains the platformservice container with mail, sms, letter, ai services.' } diff --git a/ts/mta/mta.classes.apimanager.ts b/ts/mta/mta.classes.apimanager.ts index b2ac0c6..f269b3f 100644 --- a/ts/mta/mta.classes.apimanager.ts +++ b/ts/mta/mta.classes.apimanager.ts @@ -1,4 +1,4 @@ -import * as plugins from './plugins.js'; +import * as plugins from '../plugins.js'; export class ApiManager { public typedrouter = new plugins.typedrequest.TypedRouter(); diff --git a/ts/mta/mta.classes.dkimcreator.ts b/ts/mta/mta.classes.dkimcreator.ts index f690595..5cfb742 100644 --- a/ts/mta/mta.classes.dkimcreator.ts +++ b/ts/mta/mta.classes.dkimcreator.ts @@ -1,5 +1,5 @@ -import * as plugins from './plugins.js'; -import * as paths from './paths.js'; +import * as plugins from '../plugins.js'; +import * as paths from '../paths.js'; import { Email } from './mta.classes.email.js'; import type { MTA } from './mta.classes.mta.js'; diff --git a/ts/mta/mta.classes.dkimverifier.ts b/ts/mta/mta.classes.dkimverifier.ts index 237510f..1dded2e 100644 --- a/ts/mta/mta.classes.dkimverifier.ts +++ b/ts/mta/mta.classes.dkimverifier.ts @@ -1,4 +1,4 @@ -import * as plugins from './plugins.js'; +import * as plugins from '../plugins.js'; import { MTA } from './mta.classes.mta.js'; class DKIMVerifier { diff --git a/ts/mta/mta.classes.dnsmanager.ts b/ts/mta/mta.classes.dnsmanager.ts index f543fd7..d2f1381 100644 --- a/ts/mta/mta.classes.dnsmanager.ts +++ b/ts/mta/mta.classes.dnsmanager.ts @@ -1,5 +1,5 @@ import type { MTA } from './mta.classes.mta.js'; -import * as plugins from './plugins.js'; +import * as plugins from '../plugins.js'; export class DNSManager { public mtaRef: MTA; diff --git a/ts/mta/mta.classes.emailsendjob.ts b/ts/mta/mta.classes.emailsendjob.ts index 2a5e059..009b58f 100644 --- a/ts/mta/mta.classes.emailsendjob.ts +++ b/ts/mta/mta.classes.emailsendjob.ts @@ -1,5 +1,5 @@ -import * as plugins from './plugins.js'; -import * as paths from './paths.js'; +import * as plugins from '../plugins.js'; +import * as paths from '../paths.js'; import { Email } from './mta.classes.email.js'; import { EmailSignJob } from './mta.classes.emailsignjob.js'; import type { MTA } from './mta.classes.mta.js'; diff --git a/ts/mta/mta.classes.emailsignjob.ts b/ts/mta/mta.classes.emailsignjob.ts index 6b65131..35d9fcc 100644 --- a/ts/mta/mta.classes.emailsignjob.ts +++ b/ts/mta/mta.classes.emailsignjob.ts @@ -1,4 +1,4 @@ -import * as plugins from './plugins.js'; +import * as plugins from '../plugins.js'; import type { MTA } from './mta.classes.mta.js'; interface Headers { diff --git a/ts/mta/mta.classes.mta.ts b/ts/mta/mta.classes.mta.ts index 7d3e2f0..e9c29b7 100644 --- a/ts/mta/mta.classes.mta.ts +++ b/ts/mta/mta.classes.mta.ts @@ -1,4 +1,4 @@ -import * as plugins from './plugins.js'; +import * as plugins from '../plugins.js'; import { Email } from './mta.classes.email.js'; import { EmailSendJob } from './mta.classes.emailsendjob.js'; diff --git a/ts/mta/mta.classes.smtpserver.ts b/ts/mta/mta.classes.smtpserver.ts index ba780e0..c8ef91c 100644 --- a/ts/mta/mta.classes.smtpserver.ts +++ b/ts/mta/mta.classes.smtpserver.ts @@ -1,5 +1,5 @@ -import * as plugins from './plugins.js'; -import * as paths from './paths.js'; +import * as plugins from '../plugins.js'; +import * as paths from '../paths.js'; import { Email } from './mta.classes.email.js'; import type { MTA } from './mta.classes.mta.js'; diff --git a/ts/mta/paths.ts b/ts/mta/paths.ts deleted file mode 100644 index fed1881..0000000 --- a/ts/mta/paths.ts +++ /dev/null @@ -1,12 +0,0 @@ -import * as plugins from './plugins.js'; - -export const cwd = plugins.path.join( - plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), - '../' -); -export const assetsDir = plugins.path.join(cwd, './assets'); -export const keysDir = plugins.path.join(assetsDir, './keys'); -export const dnsRecordsDir = plugins.path.join(assetsDir, './dns-records'); -export const sentEmailsDir = plugins.path.join(assetsDir, './sent-emails'); -export const receivedEmailsDir = plugins.path.join(assetsDir, './received-emails'); -plugins.smartfile.fs.ensureDirSync(keysDir); diff --git a/ts/mta/plugins.ts b/ts/mta/plugins.ts deleted file mode 100644 index 45ded57..0000000 --- a/ts/mta/plugins.ts +++ /dev/null @@ -1,67 +0,0 @@ -// node native -import * as dns from 'dns'; -import * as fs from 'fs'; -import * as crypto from 'crypto'; -import * as net from 'net'; -import * as path from 'path'; -import * as tls from 'tls'; -import * as util from 'util'; - -export { - dns, - fs, - crypto, - net, - path, - tls, - util, -} - -// @apiclient.xyz/cloudflare -import * as cloudflare from '@apiclient.xyz/cloudflare'; - -export { - cloudflare, -} - -// @apiglobal scope -import * as typedrequest from '@apiglobal/typedrequest'; -import * as typedsocket from '@apiglobal/typedsocket'; - -export { - typedrequest, - typedsocket, -} - -// pushrocks scope -import * as smartfile from '@pushrocks/smartfile'; -import * as smartpath from '@pushrocks/smartpath'; -import * as smartpromise from '@pushrocks/smartpromise'; -import * as smartrx from '@pushrocks/smartrx'; - -export { - smartfile, - smartpath, - smartpromise, - smartrx, -} - -// tsclass scope -import * as tsclass from '@tsclass/tsclass'; - -export { - tsclass, -} - -// third party -import * as mailauth from 'mailauth'; -import { dkimSign } from 'mailauth/lib/dkim/sign.js'; -import mailparser from 'mailparser'; -import * as uuid from 'uuid'; - -export { - mailauth, - dkimSign, - mailparser, - uuid, -} diff --git a/ts/paths.ts b/ts/paths.ts index 1f23b1d..7683e09 100644 --- a/ts/paths.ts +++ b/ts/paths.ts @@ -4,3 +4,9 @@ export const packageDir = plugins.path.join( plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), '../' ); +export const assetsDir = plugins.path.join(packageDir, './assets'); +export const keysDir = plugins.path.join(assetsDir, './keys'); +export const dnsRecordsDir = plugins.path.join(assetsDir, './dns-records'); +export const sentEmailsDir = plugins.path.join(assetsDir, './sent-emails'); +export const receivedEmailsDir = plugins.path.join(assetsDir, './received-emails'); +plugins.smartfile.fs.ensureDirSync(keysDir); \ No newline at end of file diff --git a/ts/plugins.ts b/ts/plugins.ts index f0032c9..4feebfe 100644 --- a/ts/plugins.ts +++ b/ts/plugins.ts @@ -1,8 +1,20 @@ // node native +import * as dns from 'dns'; +import * as fs from 'fs'; +import * as crypto from 'crypto'; +import * as net from 'net'; import * as path from 'path'; +import * as tls from 'tls'; +import * as util from 'util'; export { - path + dns, + fs, + crypto, + net, + path, + tls, + util, } // @serve.zone scope @@ -15,10 +27,12 @@ export { // @api.global scope import * as typedrequest from '@api.global/typedrequest'; import * as typedserver from '@api.global/typedserver'; +import * as typedsocket from '@api.global/typedsocket'; export { typedrequest, typedserver, + typedsocket, } // @push.rocks scope @@ -29,6 +43,28 @@ import * as smartfile from '@push.rocks/smartfile'; import * as smartlog from '@push.rocks/smartlog'; import * as smartmail from '@push.rocks/smartmail'; import * as smartpath from '@push.rocks/smartpath'; +import * as smartpromise from '@push.rocks/smartpromise'; import * as smartrequest from '@push.rocks/smartrequest'; +import * as smartrx from '@push.rocks/smartrx'; -export { projectinfo, qenv, smartdata, smartfile, smartlog, smartmail, smartpath, smartrequest }; \ No newline at end of file +export { projectinfo, qenv, smartdata, smartfile, smartlog, smartmail, smartpath, smartpromise, smartrequest, smartrx }; + +// tsclass scope +import * as tsclass from '@tsclass/tsclass'; + +export { + tsclass, +} + +// third party +import * as mailauth from 'mailauth'; +import { dkimSign } from 'mailauth/lib/dkim/sign.js'; +import mailparser from 'mailparser'; +import * as uuid from 'uuid'; + +export { + mailauth, + dkimSign, + mailparser, + uuid, +}