@timshel_npm/maildev 3.2.8 → 3.2.11
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/README.md
CHANGED
|
@@ -30,8 +30,8 @@ Or can be installed using [Github](https://docs.npmjs.com/cli/v10/configuring-np
|
|
|
30
30
|
Ex:
|
|
31
31
|
```json
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"maildev": "github:timshel/maildev#3.2.
|
|
34
|
-
"maildev": "npm:@timshel_npm/maildev@^3.2.
|
|
33
|
+
"maildev": "github:timshel/maildev#3.2.11",
|
|
34
|
+
"maildev": "npm:@timshel_npm/maildev@^3.2.11"
|
|
35
35
|
}
|
|
36
36
|
```
|
|
37
37
|
|
|
@@ -56,20 +56,17 @@ app.controller("ItemCtrl", [
|
|
|
56
56
|
|
|
57
57
|
if (head) head.appendChild(baseEl);
|
|
58
58
|
|
|
59
|
-
replaceMediaQueries(iframe);
|
|
60
59
|
fixIframeHeight(iframe);
|
|
61
|
-
|
|
62
60
|
addHideDropdownHandler(iframe.contentDocument.getElementsByTagName("body")[0]);
|
|
61
|
+
|
|
62
|
+
replaceMediaQueries(iframe);
|
|
63
63
|
}, 500);
|
|
64
64
|
};
|
|
65
65
|
|
|
66
66
|
// Updates the iframe height so it matches it's content
|
|
67
67
|
// This prevents the iframe from having scrollbars
|
|
68
68
|
const fixIframeHeight = function (iframe) {
|
|
69
|
-
|
|
70
|
-
const newHeight = body.scrollHeight;
|
|
71
|
-
|
|
72
|
-
iframe.height = newHeight;
|
|
69
|
+
iframe.style.height = iframe.contentWindow.document.body.scrollHeight + "px";
|
|
73
70
|
};
|
|
74
71
|
|
|
75
72
|
// Updates all media query rules to use 'width' instead of device width
|
|
@@ -34,4 +34,4 @@
|
|
|
34
34
|
*//*!
|
|
35
35
|
* Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com
|
|
36
36
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
|
37
|
-
*/@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url("../webfonts/fa-solid-900.eot");src:url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"),url("../webfonts/fa-solid-900.woff2") format("woff2"),url("../webfonts/fa-solid-900.woff") format("woff"),url("../webfonts/fa-solid-900.ttf") format("truetype"),url("../webfonts/fa-solid-900.svg#fontawesome") format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900}html,body{height:100%;width:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:14px;-webkit-font-smoothing:antialiased}.clearfix:before,.clearfix:after{content:"";display:table}.clearfix:after{clear:both}.clearfix{zoom:1}.hidden{display:none !important}[ng\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide{display:none !important}th,td{padding:.4em .6em}th:first-child,td:first-child{padding-left:0}th:last-child,td:last-child{padding-right:0}body.dark-theme{background-color:rgb(9.4181818182,23.8337662338,34.9818181818)}.application-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;flex-flow:row nowrap;height:100%;width:100%;overflow:hidden}.main-container{-webkit-box-flex:1 70%;-ms-flex:1 70%;flex:1 70%;overflow-y:hidden}.sidebar{-webkit-box-flex:1 33%;-ms-flex:1 33%;flex:1 33%;max-width:26em;height:100%;background:#fff}body.dark-theme .sidebar{background-color:rgb(18.0727272727,45.7350649351,67.1272727273)}.sidebar-header{position:relative;box-sizing:border-box;width:100%;max-width:26em;background:#4994ce;border-right:1px solid rgb(41.8727272727,105.9636363636,155.5272727273)}body.dark-theme .sidebar-header{background-color:rgb(24.5636363636,62.161038961,91.2363636364);border-right-color:rgb(28.8909090909,73.1116883117,107.3090909091)}.brand-container{padding:.3em 0 0 .8em;height:2.8em;box-sizing:border-box;border-bottom:1px solid rgb(52.6909090909,133.3402597403,195.7090909091)}body.dark-theme .brand-container{border-bottom-color:rgb(28.8909090909,73.1116883117,107.3090909091)}.brand{display:inline-block;font-size:20px;font-weight:400;color:#fff;text-decoration:none}.brand i{margin-right:.1em}@media(max-width: 1100px){.brand{margin-top:.15em;font-size:18px}.brand i{display:none}}.brand-text{font-weight:500}.brand-unread{font-size:13px;font-weight:400;color:hsla(0,0%,100%,.75);cursor:default}.header-nav{box-sizing:border-box;display:block;position:absolute;top:0;right:0;height:2.8em;padding-right:.4em}.header-nav-list{box-sizing:border-box;display:block;list-style:none;display:-webkit-box;display:-ms-flexbox;display:flex;margin:0;padding:0;height:100%}.header-nav-item{box-sizing:border-box;display:block;height:100%}.header-nav-item-link{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;flex-flow:row nowrap;box-sizing:border-box;height:100%;width:2em;text-align:center;text-decoration:none;font-size:1em;font-weight:400;color:hsla(0,0%,100%,.75);padding:0}.header-nav-item-link i{display:block;text-align:center;font-size:14px;line-height:1;margin-bottom:.05em}.header-nav-item-link i.danger{color:red}.header-nav-item-link:hover{background:hsla(0,0%,100%,.1)}@media(max-width: 1100px){.header-nav-item-link{width:1.6em}.header-nav-item-link i{font-size:12px}}.header-nav-more-menu.header-nav-more-menu{box-sizing:border-box;position:absolute;top:1.5em;right:0;min-width:14em}.header-nav-switch{padding:.5em .5em;display:block;box-sizing:border-box;cursor:pointer}.header-nav-switch:hover{background:hsl(0,0%,95%)}.header-nav-switch.disabled{pointer-events:none;user-select:none;opacity:.75}.header-nav-switch input{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;height:14px;width:28px;margin-right:.3em;vertical-align:middle;margin-bottom:2px;content:"";background:rgb(201.5818181818,223.5948051948,240.6181818182);border-radius:1em;cursor:pointer;outline:none}.header-nav-switch input::before{display:block;height:14px;width:14px;margin-bottom:2px;content:"";background:rgb(137.2909090909,185.7974025974,223.3090909091);border-radius:50%;transition:margin 100ms}.header-nav-switch input:checked::before{margin-left:14px;background-color:rgb(37.5454545455,95.012987013,139.4545454545)}.header-nav-switch input:disabled{pointer-events:none;opacity:.5}.sidebar-content{height:100%}.sidebar-emails-container{box-sizing:border-box;height:calc(100% - 2.8em);overflow-x:hidden;overflow-y:hidden;border-right:1px solid hsl(0,0%,90%)}body.dark-theme .sidebar-emails-container{border-right-color:rgb(24.5636363636,62.161038961,91.2363636364)}.sidebar-scrollable-content{box-sizing:border-box;height:calc(100% - 2.4em);overflow-x:hidden;overflow-y:auto;border-top:1px solid hsl(0,0%,90%)}body.dark-theme .sidebar-scrollable-content{border-top-color:rgb(24.5636363636,62.161038961,91.2363636364)}.search-container{position:relative;height:2.4em}.search-icon{position:absolute;top:.7em;left:.8em;color:hsl(0,0%,45%)}body.dark-theme .search-icon{color:hsl(0,0%,85%)}.search-input{box-sizing:border-box;display:block;margin:0;height:100%;padding:.5em .8em .5em 2.4em;width:100%;background-color:#fff;border:0;color:#000;-webkit-font-smoothing:antialiased}.search-input:focus{outline:none;background-color:hsl(0,0%,95%)}.search-input:focus+.search-icon{color:#000}.search-input::-webkit-input-placeholder{color:rgba(0,0,0,.5)}.search-input::-moz-placeholder{color:rgba(0,0,0,.5)}.search-input::-ms-placeholder{color:rgba(0,0,0,.5)}.search-input::placeholder{color:rgba(0,0,0,.5)}body.dark-theme .search-input{background-color:rgb(18.0727272727,45.7350649351,67.1272727273);color:#fff}body.dark-theme .search-input+.search-icon{color:hsla(0,0%,100%,.5)}body.dark-theme .search-input:focus{background-color:rgb(18.0727272727,45.7350649351,67.1272727273)}body.dark-theme .search-input:focus+.search-icon{color:#fff}body.dark-theme .search-input::-webkit-input-placeholder{color:hsla(0,0%,100%,.5)}body.dark-theme .search-input::-moz-placeholder{color:hsla(0,0%,100%,.5)}body.dark-theme .search-input::-ms-placeholder{color:hsla(0,0%,100%,.5)}body.dark-theme .search-input::placeholder{color:hsla(0,0%,100%,.5)}.emails-loading,.emails-empty{padding:.8em 1em;font-weight:400;font-size:14px;color:rgba(0,0,0,.65)}body.dark-theme .emails-loading,body.dark-theme .emails-empty{color:hsla(0,0%,100%,.5)}.email-list{margin:0;padding:0;list-style:none}.email-item-link{display:block;padding:.9em 1em 1.1em;background:#fff;border-top:1px solid hsl(0,0%,95%);text-decoration:none;font-size:12px;line-height:14px;position:relative}.email-item-link:focus{outline:none}.email-item-link:focus::after{position:absolute;top:0;left:0;right:0;bottom:0;z-index:0;pointer-events:none;background:rgba(0,0,0,.05);content:""}.email-item-link .title{display:block;position:relative;margin-bottom:.2em;font-size:14px;line-height:1.3em;font-weight:400;color:rgba(0,0,0,.95)}.email-item-link .title i{opacity:.8}body.dark-theme .email-item-link .title{color:hsla(0,0%,100%,.8)}.email-item-link .title-subline{font-size:12px;font-weight:400;word-break:break-word;color:rgba(0,0,0,.6)}body.dark-theme .email-item-link .title-subline{color:hsla(0,0%,100%,.6)}.email-item-link .subline{font-size:12px;font-weight:400;display:block;word-break:break-word;color:rgba(0,0,0,.6)}body.dark-theme .email-item-link .subline{color:hsla(0,0%,100%,.6)}body.dark-theme .email-item-link{background-color:rgb(18.0727272727,45.7350649351,67.1272727273);border-top-color:rgb(24.5636363636,62.161038961,91.2363636364)}body.dark-theme .email-item-link:focus::after{background:hsla(0,0%,100%,.07)}.email-item:first-of-type .email-item-link{border-top:none}.email-item:last-of-type .email-item-link{border-bottom:1px solid hsl(0,0%,95%)}body.dark-theme .email-item:last-of-type .email-item-link{border-bottom-color:rgb(24.5636363636,62.161038961,91.2363636364)}.email-item.unread .email-item-link{background:rgb(225.6909090909,237.7688311688,247.1090909091);border-top-color:rgb(209.6181818182,228.3194805195,242.7818181818);border-bottom-color:rgb(209.6181818182,228.3194805195,242.7818181818)}.email-item.unread .email-item-link .title{font-weight:600}body.dark-theme .email-item.unread .email-item-link .title{color:hsla(0,0%,100%,.88)}body.dark-theme .email-item.unread .email-item-link{background-color:rgb(28.8909090909,73.1116883117,107.3090909091);border-top-color:rgb(34.3,86.8,127.4);border-bottom-color:rgb(34.3,86.8,127.4)}.email-item.unread+.email-item .email-item-link{border-top-color:rgb(209.6181818182,228.3194805195,242.7818181818)}body.dark-theme .email-item.unread+.email-item .email-item-link{border-top-color:rgb(34.3,86.8,127.4)}.email-item.current .email-item-link{background:#4994ce}.email-item.current .email-item-link .title{color:hsla(0,0%,100%,.95);font-weight:400}.email-item.current .email-item-link .title-subline{color:hsla(0,0%,100%,.7)}.email-item.current .email-item-link .subline{color:hsla(0,0%,100%,.7)}body.dark-theme .email-item.current .email-item-link{background:rgb(53.7727272727,136.0779220779,199.7272727273)}.main-content{margin:1.5em 2em;color:#000}.main-content a{color:#000}.main-content h1{margin-top:0;font-size:1.6em}body.dark-theme .main-content{color:#fff}body.dark-theme .main-content a{color:#fff}.email-content{box-sizing:border-box;z-index:1;height:calc(100vh - 2.8em)}.email-content-view{height:100%}.email-content-view-html{text-align:center;background:rgb(241.7636363636,247.2181818182,251.4363636364)}body.dark-theme .email-content-view-html{background:rgb(2.9272727273,7.4077922078,10.8727272727)}.email-content-view-plain{height:100%;overflox-x:hidden;overflow-y:auto}.preview-iframe{box-sizing:border-box;border:0;margin:0;width:100%;max-width:100%;height:100%;position:relative;background:#fff}body.dark-theme .preview-iframe{background:rgb(9.4181818182,23.8337662338,34.9818181818)}.email-toolbar{box-sizing:border-box;width:100%;height:2.8em;background-color:#fff;background:rgb(46.2,116.9142857143,171.6);border-bottom:1px solid rgb(41.8727272727,105.9636363636,155.5272727273);list-style:none;margin:0;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;flex-flow:row nowrap;font-size:14px}.email-toolbar li{display:inline-block;height:100%;margin:0;padding:0}.email-toolbar li a{display:inline-block;height:100%;text-decoration:none;padding:0 .8em 0 .5em}.email-toolbar li a,.email-toolbar li a:visited{color:#fff}.email-toolbar li a:hover{background:hsla(0,0%,100%,.1)}.email-toolbar li a span{box-sizing:border-box;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;flex-flow:row nowrap;padding-bottom:.12em}.email-toolbar li a span i{display:block;text-align:center;width:1.6em;vertical-align:baseline;font-size:16px;margin-right:.2em}body.dark-theme .email-toolbar{background-color:rgb(18.0727272727,45.7350649351,67.1272727273);border-bottom-color:rgb(24.5636363636,62.161038961,91.2363636364)}.email-meta{box-sizing:border-box;width:100%;background-color:#fff;background:rgb(225.6909090909,237.7688311688,247.1090909091);border-bottom:1px solid rgb(185.5090909091,214.1454545455,236.2909090909);margin:0;padding:.5em 1em;font-size:14px}.email-meta .row{display:-webkit-box;display:-ms-flexbox;display:flex;flex-flow:row nowrap}@media(max-width: 1100px){.email-meta .row{flex-wrap:wrap;flex-direction:column}.email-meta .row+.row{margin-top:.5em}}.email-meta .description{flex-basis:5em;flex-shrink:0;display:inline-block;text-align:right;margin-right:.25em;color:rgb(67.98,114.1303759398,149.82)}@media(max-width: 1100px){.email-meta .description{text-align:left;flex-basis:0;margin-right:0}}.email-meta .description-value{flex-grow:1}.email-meta .subject{font-size:20px;margin-bottom:.5em}.email-meta .address .address-address{color:hsla(0,0%,25%,.4)}.email-meta .address .address-name{color:hsl(0,0%,30%)}.email-meta app-address+app-address::before{content:", "}body.dark-theme .email-meta{background-color:rgb(28.8909090909,73.1116883117,107.3090909091);border-bottom-color:rgb(39.7090909091,100.4883116883,147.4909090909);color:#fff}body.dark-theme .email-meta .description{color:rgb(138.1981818182,174.1776760082,202.0018181818)}body.dark-theme .email-meta .address .address-address{color:hsla(0,0%,60%,.65)}body.dark-theme .email-meta .address .address-name{color:hsl(0,0%,70%)}.dropdown-container{position:relative}.dropdown-trigger.open+.dropdown-menu{display:block}.dropdown-trigger.disabled{pointer-events:none;user-select:none;opacity:.5}.dropdown-menu{display:none;position:absolute;top:2.5em;left:0;z-index:10;padding:.3em 0;min-width:14em;list-style:none;background-color:#fff;border-radius:0px;box-shadow:0 1px 5px 0px rgba(0,0,0,.2)}.dropdown-menu li{padding:0;display:block}.dropdown-menu li a span{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:start}.dropdown-menu.open{display:block}.dropdown-menu.dropdown-menu.dropdown-menu li a{display:block;padding:.5em .5em;color:#000}.dropdown-menu.dropdown-menu.dropdown-menu li a:hover{background:hsl(0,0%,95%)}.dropdown-menu.dropdown-menu.dropdown-menu li a.disabled{pointer-events:none;user-select:none;opacity:.5}.panel-plain{box-sizing:border-box;padding:1em 1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;white-space:pre-wrap}body.dark-theme .panel-plain{color:#fff}.panel-attachments{box-sizing:border-box;padding:1em 1em}body.dark-theme .panel-attachments a{color:#fff}.panel-headers{box-sizing:border-box;padding:1em 1em}.panel-headers td,.panel-headers th{text-align:left}.panel-headers td:first-of-type{text-align:right}body.dark-theme .panel-headers{color:#fff}body.dark-theme .panel-source{background:#fff}
|
|
37
|
+
*/@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url("../webfonts/fa-solid-900.eot");src:url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"),url("../webfonts/fa-solid-900.woff2") format("woff2"),url("../webfonts/fa-solid-900.woff") format("woff"),url("../webfonts/fa-solid-900.ttf") format("truetype"),url("../webfonts/fa-solid-900.svg#fontawesome") format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900}html,body{height:100%;width:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:14px;-webkit-font-smoothing:antialiased}.clearfix:before,.clearfix:after{content:"";display:table}.clearfix:after{clear:both}.clearfix{zoom:1}.hidden{display:none !important}[ng\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide{display:none !important}th,td{padding:.4em .6em}th:first-child,td:first-child{padding-left:0}th:last-child,td:last-child{padding-right:0}body.dark-theme{background-color:rgb(9.4181818182,23.8337662338,34.9818181818)}.application-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;flex-flow:row nowrap;height:100%;width:100%}.main-container{-webkit-box-flex:1 70%;-ms-flex:1 70%;flex:1 70%;overflow:hidden}.sidebar{-webkit-box-flex:1 33%;-ms-flex:1 33%;flex:1 33%;max-width:26em;height:100%;background:#fff}body.dark-theme .sidebar{background-color:rgb(18.0727272727,45.7350649351,67.1272727273)}.sidebar-header{position:relative;box-sizing:border-box;width:100%;max-width:26em;background:#4994ce;border-right:1px solid rgb(41.8727272727,105.9636363636,155.5272727273)}body.dark-theme .sidebar-header{background-color:rgb(24.5636363636,62.161038961,91.2363636364);border-right-color:rgb(28.8909090909,73.1116883117,107.3090909091)}.brand-container{padding:.3em 0 0 .8em;height:2.8em;box-sizing:border-box;border-bottom:1px solid rgb(52.6909090909,133.3402597403,195.7090909091)}body.dark-theme .brand-container{border-bottom-color:rgb(28.8909090909,73.1116883117,107.3090909091)}.brand{display:inline-block;font-size:20px;font-weight:400;color:#fff;text-decoration:none}.brand i{margin-right:.1em}@media(max-width: 1100px){.brand{margin-top:.15em;font-size:18px}.brand i{display:none}}.brand-text{font-weight:500}.brand-unread{font-size:13px;font-weight:400;color:hsla(0,0%,100%,.75);cursor:default}.header-nav{box-sizing:border-box;display:block;position:absolute;top:0;right:0;height:2.8em;padding-right:.4em}.header-nav-list{box-sizing:border-box;display:block;list-style:none;display:-webkit-box;display:-ms-flexbox;display:flex;margin:0;padding:0;height:100%}.header-nav-item{box-sizing:border-box;display:block;height:100%}.header-nav-item-link{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;flex-flow:row nowrap;box-sizing:border-box;height:100%;width:2em;text-align:center;text-decoration:none;font-size:1em;font-weight:400;color:hsla(0,0%,100%,.75);padding:0}.header-nav-item-link i{display:block;text-align:center;font-size:14px;line-height:1;margin-bottom:.05em}.header-nav-item-link i.danger{color:red}.header-nav-item-link:hover{background:hsla(0,0%,100%,.1)}@media(max-width: 1100px){.header-nav-item-link{width:1.6em}.header-nav-item-link i{font-size:12px}}.header-nav-more-menu.header-nav-more-menu{box-sizing:border-box;position:absolute;top:1.5em;right:0;min-width:14em}.header-nav-switch{padding:.5em .5em;display:block;box-sizing:border-box;cursor:pointer}.header-nav-switch:hover{background:hsl(0,0%,95%)}.header-nav-switch.disabled{pointer-events:none;user-select:none;opacity:.75}.header-nav-switch input{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;height:14px;width:28px;margin-right:.3em;vertical-align:middle;margin-bottom:2px;content:"";background:rgb(201.5818181818,223.5948051948,240.6181818182);border-radius:1em;cursor:pointer;outline:none}.header-nav-switch input::before{display:block;height:14px;width:14px;margin-bottom:2px;content:"";background:rgb(137.2909090909,185.7974025974,223.3090909091);border-radius:50%;transition:margin 100ms}.header-nav-switch input:checked::before{margin-left:14px;background-color:rgb(37.5454545455,95.012987013,139.4545454545)}.header-nav-switch input:disabled{pointer-events:none;opacity:.5}.sidebar-content{height:100%}.sidebar-emails-container{box-sizing:border-box;height:calc(100% - 2.8em);overflow-x:hidden;border-right:1px solid hsl(0,0%,90%)}body.dark-theme .sidebar-emails-container{border-right-color:rgb(24.5636363636,62.161038961,91.2363636364)}.sidebar-scrollable-content{box-sizing:border-box;height:calc(100% - 2.4em);overflow-x:hidden;overflow-y:auto;border-top:1px solid hsl(0,0%,90%)}body.dark-theme .sidebar-scrollable-content{border-top-color:rgb(24.5636363636,62.161038961,91.2363636364)}.search-container{position:relative;height:2.4em}.search-icon{position:absolute;top:.7em;left:.8em;color:hsl(0,0%,45%)}body.dark-theme .search-icon{color:hsl(0,0%,85%)}.search-input{box-sizing:border-box;display:block;margin:0;height:100%;padding:.5em .8em .5em 2.4em;width:100%;background-color:#fff;border:0;color:#000;-webkit-font-smoothing:antialiased}.search-input:focus{outline:none;background-color:hsl(0,0%,95%)}.search-input:focus+.search-icon{color:#000}.search-input::-webkit-input-placeholder{color:rgba(0,0,0,.5)}.search-input::-moz-placeholder{color:rgba(0,0,0,.5)}.search-input::-ms-placeholder{color:rgba(0,0,0,.5)}.search-input::placeholder{color:rgba(0,0,0,.5)}body.dark-theme .search-input{background-color:rgb(18.0727272727,45.7350649351,67.1272727273);color:#fff}body.dark-theme .search-input+.search-icon{color:hsla(0,0%,100%,.5)}body.dark-theme .search-input:focus{background-color:rgb(18.0727272727,45.7350649351,67.1272727273)}body.dark-theme .search-input:focus+.search-icon{color:#fff}body.dark-theme .search-input::-webkit-input-placeholder{color:hsla(0,0%,100%,.5)}body.dark-theme .search-input::-moz-placeholder{color:hsla(0,0%,100%,.5)}body.dark-theme .search-input::-ms-placeholder{color:hsla(0,0%,100%,.5)}body.dark-theme .search-input::placeholder{color:hsla(0,0%,100%,.5)}.emails-loading,.emails-empty{padding:.8em 1em;font-weight:400;font-size:14px;color:rgba(0,0,0,.65)}body.dark-theme .emails-loading,body.dark-theme .emails-empty{color:hsla(0,0%,100%,.5)}.email-list{margin:0;padding:0;list-style:none}.email-item-link{display:block;padding:.9em 1em 1.1em;background:#fff;border-top:1px solid hsl(0,0%,95%);text-decoration:none;font-size:12px;line-height:14px;position:relative}.email-item-link:focus{outline:none}.email-item-link:focus::after{position:absolute;top:0;left:0;right:0;bottom:0;z-index:0;pointer-events:none;background:rgba(0,0,0,.05);content:""}.email-item-link .title{display:block;position:relative;margin-bottom:.2em;font-size:14px;line-height:1.3em;font-weight:400;color:rgba(0,0,0,.95)}.email-item-link .title i{opacity:.8}body.dark-theme .email-item-link .title{color:hsla(0,0%,100%,.8)}.email-item-link .title-subline{font-size:12px;font-weight:400;word-break:break-word;color:rgba(0,0,0,.6)}body.dark-theme .email-item-link .title-subline{color:hsla(0,0%,100%,.6)}.email-item-link .subline{font-size:12px;font-weight:400;display:block;word-break:break-word;color:rgba(0,0,0,.6)}body.dark-theme .email-item-link .subline{color:hsla(0,0%,100%,.6)}body.dark-theme .email-item-link{background-color:rgb(18.0727272727,45.7350649351,67.1272727273);border-top-color:rgb(24.5636363636,62.161038961,91.2363636364)}body.dark-theme .email-item-link:focus::after{background:hsla(0,0%,100%,.07)}.email-item:first-of-type .email-item-link{border-top:none}.email-item:last-of-type .email-item-link{border-bottom:1px solid hsl(0,0%,95%)}body.dark-theme .email-item:last-of-type .email-item-link{border-bottom-color:rgb(24.5636363636,62.161038961,91.2363636364)}.email-item.unread .email-item-link{background:rgb(225.6909090909,237.7688311688,247.1090909091);border-top-color:rgb(209.6181818182,228.3194805195,242.7818181818);border-bottom-color:rgb(209.6181818182,228.3194805195,242.7818181818)}.email-item.unread .email-item-link .title{font-weight:600}body.dark-theme .email-item.unread .email-item-link .title{color:hsla(0,0%,100%,.88)}body.dark-theme .email-item.unread .email-item-link{background-color:rgb(28.8909090909,73.1116883117,107.3090909091);border-top-color:rgb(34.3,86.8,127.4);border-bottom-color:rgb(34.3,86.8,127.4)}.email-item.unread+.email-item .email-item-link{border-top-color:rgb(209.6181818182,228.3194805195,242.7818181818)}body.dark-theme .email-item.unread+.email-item .email-item-link{border-top-color:rgb(34.3,86.8,127.4)}.email-item.current .email-item-link{background:#4994ce}.email-item.current .email-item-link .title{color:hsla(0,0%,100%,.95);font-weight:400}.email-item.current .email-item-link .title-subline{color:hsla(0,0%,100%,.7)}.email-item.current .email-item-link .subline{color:hsla(0,0%,100%,.7)}body.dark-theme .email-item.current .email-item-link{background:rgb(53.7727272727,136.0779220779,199.7272727273)}.main-content{margin:1.5em 2em;color:#000}.main-content a{color:#000}.main-content h1{margin-top:0;font-size:1.6em}body.dark-theme .main-content{color:#fff}body.dark-theme .main-content a{color:#fff}.email-container{display:flex;flex-direction:column;height:100%}.email-content{box-sizing:border-box;z-index:1;flex:1;overflow:auto}.email-content-view-html{text-align:center;background:rgb(241.7636363636,247.2181818182,251.4363636364)}body.dark-theme .email-content-view-html{background:rgb(2.9272727273,7.4077922078,10.8727272727)}.email-content-view-plain{height:100%;overflox-x:hidden;overflow-y:auto}.preview-iframe{box-sizing:border-box;border:0;margin:0;width:100%;max-width:100%;position:relative;background:#fff}body.dark-theme .preview-iframe{background:rgb(9.4181818182,23.8337662338,34.9818181818)}.email-toolbar{box-sizing:border-box;width:100%;height:2.8em;background-color:#fff;background:rgb(46.2,116.9142857143,171.6);border-bottom:1px solid rgb(41.8727272727,105.9636363636,155.5272727273);list-style:none;margin:0;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;flex-flow:row nowrap;font-size:14px}.email-toolbar li{display:inline-block;height:100%;margin:0;padding:0}.email-toolbar li a{display:inline-block;height:100%;text-decoration:none;padding:0 .8em 0 .5em}.email-toolbar li a,.email-toolbar li a:visited{color:#fff}.email-toolbar li a:hover{background:hsla(0,0%,100%,.1)}.email-toolbar li a span{box-sizing:border-box;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;flex-flow:row nowrap;padding-bottom:.12em}.email-toolbar li a span i{display:block;text-align:center;width:1.6em;vertical-align:baseline;font-size:16px;margin-right:.2em}body.dark-theme .email-toolbar{background-color:rgb(18.0727272727,45.7350649351,67.1272727273);border-bottom-color:rgb(24.5636363636,62.161038961,91.2363636364)}.email-meta{box-sizing:border-box;width:100%;background-color:#fff;background:rgb(225.6909090909,237.7688311688,247.1090909091);border-bottom:1px solid rgb(185.5090909091,214.1454545455,236.2909090909);margin:0;padding:.5em 1em;font-size:14px}.email-meta .row{display:-webkit-box;display:-ms-flexbox;display:flex;flex-flow:row nowrap}@media(max-width: 1100px){.email-meta .row{flex-wrap:wrap;flex-direction:column}.email-meta .row+.row{margin-top:.5em}}.email-meta .description{flex-basis:5em;flex-shrink:0;display:inline-block;text-align:right;margin-right:.25em;color:rgb(67.98,114.1303759398,149.82)}@media(max-width: 1100px){.email-meta .description{text-align:left;flex-basis:0;margin-right:0}}.email-meta .description-value{flex-grow:1}.email-meta .subject{font-size:20px;margin-bottom:.5em}.email-meta .address .address-address{color:hsla(0,0%,25%,.4)}.email-meta .address .address-name{color:hsl(0,0%,30%)}.email-meta app-address+app-address::before{content:", "}body.dark-theme .email-meta{background-color:rgb(28.8909090909,73.1116883117,107.3090909091);border-bottom-color:rgb(39.7090909091,100.4883116883,147.4909090909);color:#fff}body.dark-theme .email-meta .description{color:rgb(138.1981818182,174.1776760082,202.0018181818)}body.dark-theme .email-meta .address .address-address{color:hsla(0,0%,60%,.65)}body.dark-theme .email-meta .address .address-name{color:hsl(0,0%,70%)}.dropdown-container{position:relative}.dropdown-trigger.open+.dropdown-menu{display:block}.dropdown-trigger.disabled{pointer-events:none;user-select:none;opacity:.5}.dropdown-menu{display:none;position:absolute;top:2.5em;left:0;z-index:10;padding:.3em 0;min-width:14em;list-style:none;background-color:#fff;border-radius:0px;box-shadow:0 1px 5px 0px rgba(0,0,0,.2)}.dropdown-menu li{padding:0;display:block}.dropdown-menu li a span{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:start}.dropdown-menu.open{display:block}.dropdown-menu.dropdown-menu.dropdown-menu li a{display:block;padding:.5em .5em;color:#000}.dropdown-menu.dropdown-menu.dropdown-menu li a:hover{background:hsl(0,0%,95%)}.dropdown-menu.dropdown-menu.dropdown-menu li a.disabled{pointer-events:none;user-select:none;opacity:.5}.panel-plain{box-sizing:border-box;padding:1em 1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;white-space:pre-wrap}body.dark-theme .panel-plain{color:#fff}.panel-attachments{box-sizing:border-box;padding:1em 1em}body.dark-theme .panel-attachments a{color:#fff}.panel-headers{box-sizing:border-box;padding:1em 1em}.panel-headers td,.panel-headers th{text-align:left}.panel-headers td:first-of-type{text-align:right}body.dark-theme .panel-headers{color:#fff}body.dark-theme .panel-source{background:#fff}
|
package/dist/app/views/item.html
CHANGED
|
@@ -262,7 +262,7 @@
|
|
|
262
262
|
<div class="email-content">
|
|
263
263
|
|
|
264
264
|
<div class="email-content-view email-content-view-html" ng-hide="panelVisibility != 'html'">
|
|
265
|
-
<iframe ng-src="{{ item.iframeUrl }}" class="preview-iframe panel-html"></iframe>
|
|
265
|
+
<iframe ng-src="{{ item.iframeUrl }}" class="preview-iframe panel-html" scrolling="no"></iframe>
|
|
266
266
|
</div>
|
|
267
267
|
|
|
268
268
|
<div class="email-content-view email-content-view-plain" ng-hide="panelVisibility != 'plain'">
|
|
@@ -304,7 +304,7 @@
|
|
|
304
304
|
</div>
|
|
305
305
|
|
|
306
306
|
<div class="email-content-view email-content-view-source" ng-hide="panelVisibility != 'source'">
|
|
307
|
-
<iframe ng-src="{{ rawEmail }}" class="preview-iframe panel-source" ></iframe>
|
|
307
|
+
<iframe ng-src="{{ rawEmail }}" class="preview-iframe panel-source" scrolling="no"></iframe>
|
|
308
308
|
</div>
|
|
309
309
|
|
|
310
310
|
</div>
|
package/dist/lib/mailserver.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ export declare class MailServer {
|
|
|
35
35
|
mailEventSubjectMapper: (Mail: any) => string | undefined;
|
|
36
36
|
smtp: typeof SMTPServer;
|
|
37
37
|
outgoing: Outgoing | undefined;
|
|
38
|
+
private _reloadInProgress;
|
|
38
39
|
/**
|
|
39
40
|
* Extend Event Emitter methods
|
|
40
41
|
* events:
|
|
@@ -111,5 +112,6 @@ export declare class MailServer {
|
|
|
111
112
|
* Download a given email
|
|
112
113
|
*/
|
|
113
114
|
getEmailEml(id: any): Promise<[string, string, ReadStream]>;
|
|
114
|
-
loadMailsFromDirectory(): Promise<void
|
|
115
|
+
loadMailsFromDirectory(): Promise<void>;
|
|
116
|
+
private _loadMailsFromDirectory;
|
|
115
117
|
}
|
package/dist/lib/mailserver.js
CHANGED
|
@@ -107,6 +107,7 @@ class MailServer {
|
|
|
107
107
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
108
108
|
this.store = [];
|
|
109
109
|
this.eventEmitter = new events.EventEmitter();
|
|
110
|
+
this._reloadInProgress = undefined;
|
|
110
111
|
/**
|
|
111
112
|
* Extend Event Emitter methods
|
|
112
113
|
* events:
|
|
@@ -379,6 +380,19 @@ class MailServer {
|
|
|
379
380
|
});
|
|
380
381
|
}
|
|
381
382
|
loadMailsFromDirectory() {
|
|
383
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
384
|
+
if (this._reloadInProgress == undefined) {
|
|
385
|
+
this._reloadInProgress = this._loadMailsFromDirectory().finally(() => {
|
|
386
|
+
this._reloadInProgress = undefined;
|
|
387
|
+
});
|
|
388
|
+
return this._reloadInProgress;
|
|
389
|
+
}
|
|
390
|
+
else {
|
|
391
|
+
return this._reloadInProgress;
|
|
392
|
+
}
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
_loadMailsFromDirectory() {
|
|
382
396
|
return __awaiter(this, void 0, void 0, function* () {
|
|
383
397
|
const self = this;
|
|
384
398
|
const persistencePath = yield fs_1.promises.realpath(this.mailDir);
|
|
@@ -387,14 +401,19 @@ class MailServer {
|
|
|
387
401
|
throw new Error(`Error during reading of the mailDir ${persistencePath}`);
|
|
388
402
|
});
|
|
389
403
|
this.store.length = 0;
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
404
|
+
this.eventEmitter.emit("delete", { id: "all" });
|
|
405
|
+
const concurrency = 20;
|
|
406
|
+
for (let i = 0; i < files.length; i += concurrency) {
|
|
407
|
+
const chunk = files.slice(i, i + concurrency);
|
|
408
|
+
let saved = chunk.map(function (file) {
|
|
409
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
410
|
+
const id = path.parse(file).name;
|
|
411
|
+
const email = yield getDiskEmail(self.mailDir, id);
|
|
412
|
+
return saveEmailToStore(self, email);
|
|
413
|
+
});
|
|
395
414
|
});
|
|
396
|
-
|
|
397
|
-
|
|
415
|
+
yield Promise.all(saved);
|
|
416
|
+
}
|
|
398
417
|
});
|
|
399
418
|
}
|
|
400
419
|
}
|
package/dist/lib/routes.js
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.routes = routes;
|
|
4
13
|
const utils_1 = require("./utils");
|
|
@@ -132,8 +141,10 @@ function routes(app, mailserver, basePathname) {
|
|
|
132
141
|
res.status(200).json(true);
|
|
133
142
|
});
|
|
134
143
|
router.get("/reloadMailsFromDirectory", function (req, res) {
|
|
135
|
-
|
|
136
|
-
|
|
144
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
145
|
+
yield mailserver.loadMailsFromDirectory();
|
|
146
|
+
res.status(200).json(true);
|
|
147
|
+
});
|
|
137
148
|
});
|
|
138
149
|
app.use(basePathname, router);
|
|
139
150
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@timshel_npm/maildev",
|
|
3
3
|
"description": "SMTP Server with async API and Web Interface for viewing and testing emails during development",
|
|
4
|
-
"version": "3.2.
|
|
4
|
+
"version": "3.2.11",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"email",
|
|
7
7
|
"e-mail",
|
|
@@ -58,16 +58,16 @@
|
|
|
58
58
|
"@types/mailparser": "3.4.6",
|
|
59
59
|
"addressparser": "1.0.1",
|
|
60
60
|
"async": "3.2.6",
|
|
61
|
-
"commander": "14.0.
|
|
61
|
+
"commander": "14.0.3",
|
|
62
62
|
"compression": "1.8.1",
|
|
63
63
|
"cors": "2.8.6",
|
|
64
64
|
"dompurify": "3.3.1",
|
|
65
65
|
"express": "5.2.1",
|
|
66
|
-
"jsdom": "
|
|
67
|
-
"mailparser": "3.9.
|
|
66
|
+
"jsdom": "28.0.0",
|
|
67
|
+
"mailparser": "3.9.3",
|
|
68
68
|
"mime": "4.1.0",
|
|
69
|
-
"nodemailer": "
|
|
70
|
-
"smtp-server": "3.18.
|
|
69
|
+
"nodemailer": "8.0.1",
|
|
70
|
+
"smtp-server": "3.18.1",
|
|
71
71
|
"socket.io": "4.8.3",
|
|
72
72
|
"wildstring": "1.0.9"
|
|
73
73
|
},
|