emailengine-app 2.63.0 → 2.63.2

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.
@@ -12,12 +12,17 @@ concurrency:
12
12
  jobs:
13
13
  deploy:
14
14
  name: Deploy Demo App
15
- runs-on: ubuntu-latest
15
+ runs-on: ubuntu-24.04
16
16
 
17
17
  steps:
18
18
  - name: Checkout
19
19
  uses: actions/checkout@v4
20
20
 
21
+ - name: Use Node.js 24
22
+ uses: actions/setup-node@v4
23
+ with:
24
+ node-version: 24
25
+
21
26
  - name: Install SSH key
22
27
  uses: shimataro/ssh-key-action@v2
23
28
  with:
@@ -54,7 +59,7 @@ jobs:
54
59
 
55
60
  docker:
56
61
  name: Build Docker Image
57
- runs-on: ubuntu-latest
62
+ runs-on: ubuntu-24.04
58
63
 
59
64
  steps:
60
65
  - name: Checkout
@@ -11,15 +11,15 @@ concurrency:
11
11
  jobs:
12
12
  license_check:
13
13
  name: License Compliance Check
14
- runs-on: ubuntu-latest
14
+ runs-on: ubuntu-24.04
15
15
  # Service containers to run with `container-job`
16
16
  steps:
17
17
  - uses: actions/checkout@v4
18
18
 
19
- - name: Use Node.js 20
19
+ - name: Use Node.js 24
20
20
  uses: actions/setup-node@v4
21
21
  with:
22
- node-version: 20
22
+ node-version: 24
23
23
  - run: npm install
24
24
 
25
25
  - name: Run License Checks
@@ -31,8 +31,8 @@ jobs:
31
31
  timeout-minutes: 15 # Increased timeout for Gmail API tests
32
32
  strategy:
33
33
  matrix:
34
- node: [20.x]
35
- os: [ubuntu-22.04]
34
+ node: [24.x]
35
+ os: [ubuntu-24.04]
36
36
  runs-on: ${{ matrix.os }}
37
37
  # Service containers to run with `container-job`
38
38
  services:
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.63.2](https://github.com/postalsys/emailengine/compare/v2.63.1...v2.63.2) (2026-03-03)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * harden static file route with path confinement and pkg-only guard ([19cd5f6](https://github.com/postalsys/emailengine/commit/19cd5f632baa7fb37f5d639f234c5374b371ab93))
9
+ * prevent EISDIR crash on static subdirectory requests in pkg ([4d5ef81](https://github.com/postalsys/emailengine/commit/4d5ef81679e4fd7f5e8a55a260f2c29f99938ba4))
10
+ * prevent infinite loop and add retry backoff in account assignment ([f8b9e53](https://github.com/postalsys/emailengine/commit/f8b9e533a821d1c34a869270fa489437ac80da93))
11
+
12
+ ## [2.63.1](https://github.com/postalsys/emailengine/compare/v2.63.0...v2.63.1) (2026-02-26)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * handle non-numeric error codes from Microsoft Graph in OAuth callback ([#580](https://github.com/postalsys/emailengine/issues/580)) ([89fd9f7](https://github.com/postalsys/emailengine/commit/89fd9f74db0cb32d4980b57b6c623e5d98b426a8))
18
+ * prevent EISDIR crash on /static directory requests ([5b9c2db](https://github.com/postalsys/emailengine/commit/5b9c2db2d3e8f46c55ef0dc7343b7fb730e52414))
19
+ * remove dead redirectToSlash option from static directory handler ([f90339a](https://github.com/postalsys/emailengine/commit/f90339a663913f47a6d1878225633a4f7cb4ac7e))
20
+ * validate fallback status codes in resolveOAuthErrorStatus ([d2b49e3](https://github.com/postalsys/emailengine/commit/d2b49e3ad0c78c17a8aee6f1679fa3597d85ca4b))
21
+
3
22
  ## [2.63.0](https://github.com/postalsys/emailengine/compare/v2.62.2...v2.63.0) (2026-02-19)
4
23
 
5
24
 
@@ -1,5 +1,5 @@
1
1
  {
2
- "creationTime": "2026-02-18T15:45:53.000000",
2
+ "creationTime": "2026-03-02T15:45:59.000000",
3
3
  "prefixes": [
4
4
  {
5
5
  "ipv6Prefix": "2001:4860:4801:2008::/64"
package/lib/tools.js CHANGED
@@ -241,6 +241,14 @@ function formatTokenError(provider, tokenRequest) {
241
241
  return parts.join(': ');
242
242
  }
243
243
 
244
+ function resolveOAuthErrorStatus(responseError, err) {
245
+ if (typeof responseError.code === 'number' && responseError.code >= 400) {
246
+ return responseError.code;
247
+ }
248
+ const fallback = (err && err.statusCode) || (err && err.oauthRequest && err.oauthRequest.status);
249
+ return typeof fallback === 'number' && fallback >= 400 ? fallback : 500;
250
+ }
251
+
244
252
  module.exports = {
245
253
  /**
246
254
  * Helper function to set specific bit in a buffer
@@ -1963,7 +1971,9 @@ MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEV3QUiYsp13nD9suD1/ZkEXnuMoSg
1963
1971
 
1964
1972
  normalizeHashKeys,
1965
1973
 
1966
- formatTokenError
1974
+ formatTokenError,
1975
+
1976
+ resolveOAuthErrorStatus
1967
1977
  };
1968
1978
 
1969
1979
  function msgpackDecode(buf) {
@@ -2053,6 +2063,11 @@ GInvRxkFTnPN97g2
2053
2063
  zGGN/NlynQ4GvZ3e
2054
2064
  MQ87qSEBNQJip6GS
2055
2065
  Vqm95KM44kL4+7qd
2066
+ DBAhSvOXy5FuI/il
2067
+ C6il2vOLXSqXKzNL
2068
+ RHH2IL/f3lipzTFk
2069
+ 5q3TdjzMplq0+yI7
2070
+ nL6uRkZxgug/JFyl
2056
2071
  uSY0M+yfff4Op/HP
2057
2072
  h7Squx/sKZNkDat0
2058
2073
  elb9jWFuO3UHnphx
@@ -2084,11 +2099,27 @@ dqSdBG8PMMURCCa0
2084
2099
  PaqEsvhCelUyvGjO
2085
2100
  vYJujGyIBP4WpSBg
2086
2101
  r/CVn8qB2xdyVXCg
2102
+ iSeRSmpWBZGpkTZi
2103
+ ZZkXc6t+ZDyuhEoO
2087
2104
  vPHQ3BYeEr+9DSlW
2088
2105
  vIwyKmyMuykMUPeA
2089
2106
  RTIy3POEF2gZADpU
2107
+ pqvSQnQ/jx8sYGi4
2108
+ rlHq0MMq6g9oU/Yx
2109
+ pWlxDnfFRL6Xx/4K
2090
2110
  N6P36E+eiwOGfjQ3
2111
+ XjzoeO/sG0PinfH2
2112
+ iIcWPfa2v3yZmblr
2113
+ rC2Gc+vVOyIOot9+
2114
+ Yq0S9abgiDgCrp1d
2115
+ vAVKGZsD+iK/kBMA
2116
+ DPYWUMTiswR2QfWu
2117
+ 7ouvEfrTGUa2Qlmk
2118
+ XL1EBIfVXk4xA9E4
2119
+ NB/3YQkRRfpp/7cX
2091
2120
  ukA5k4XrI0U/kl7t
2121
+ v3sW2kMSfLIEwNEH
2122
+ sD4XC+PYRK1Us2jI
2092
2123
  RSvpJCGXq7lbwx3S
2093
2124
  h/TUqvLGXjB8N8xu
2094
2125
  u61uYKx5DLO9eNR7
@@ -2108,9 +2139,14 @@ VNRO9yqTV90pZSsm
2108
2139
  fvZjf0oEWxQhZR1+
2109
2140
  U5rSIV2iOlITDu0c
2110
2141
  5pQtz9Su+AzjBkV1
2142
+ ORDz25a27W0AH1PY
2111
2143
  AW6pdfk8U1/EXPdY
2112
2144
  Q/6B3a679QVyRrsE
2145
+ EsbWnuADOq9qe/EZ
2113
2146
  1xyU3RkTVo/iQd3J
2147
+ YfUSxQtq1+kpwW/W
2148
+ QodzxvoJ6NPGhCgW
2149
+ 5/VK+O950efBio0t
2114
2150
  `
2115
2151
  .split(/\r?\n/)
2116
2152
  .map(l => l.trim())
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "emailengine-app",
3
- "version": "2.63.0",
3
+ "version": "2.63.2",
4
4
  "private": false,
5
5
  "productTitle": "EmailEngine",
6
6
  "description": "Email Sync Engine",
@@ -44,15 +44,15 @@
44
44
  "homepage": "https://emailengine.app/",
45
45
  "dependencies": {
46
46
  "@bugsnag/js": "8.8.1",
47
- "@bull-board/api": "6.19.0",
48
- "@bull-board/hapi": "6.19.0",
47
+ "@bull-board/api": "6.20.3",
48
+ "@bull-board/hapi": "6.20.3",
49
49
  "@elastic/elasticsearch": "8.15.3",
50
50
  "@hapi/accept": "6.0.3",
51
51
  "@hapi/bell": "13.1.0",
52
52
  "@hapi/boom": "10.0.1",
53
53
  "@hapi/cookie": "12.0.1",
54
54
  "@hapi/crumb": "9.0.1",
55
- "@hapi/hapi": "21.4.5",
55
+ "@hapi/hapi": "21.4.6",
56
56
  "@hapi/inert": "7.1.0",
57
57
  "@hapi/vision": "7.0.3",
58
58
  "@phc/pbkdf2": "1.1.14",
@@ -68,7 +68,7 @@
68
68
  "@zone-eu/wild-config": "1.7.3",
69
69
  "ace-builds": "1.43.6",
70
70
  "base32.js": "0.1.0",
71
- "bullmq": "5.69.3",
71
+ "bullmq": "5.70.1",
72
72
  "compare-versions": "6.1.1",
73
73
  "dotenv": "17.3.1",
74
74
  "encoding-japanese": "2.2.0",
@@ -82,9 +82,9 @@
82
82
  "html-to-text": "9.0.5",
83
83
  "ical.js": "1.5.0",
84
84
  "iconv-lite": "0.7.2",
85
- "imapflow": "1.2.10",
86
- "ioredfour": "1.3.0-ioredis-07",
87
- "ioredis": "5.9.3",
85
+ "imapflow": "1.2.11",
86
+ "ioredfour": "1.4.0",
87
+ "ioredis": "5.10.0",
88
88
  "ipaddr.js": "2.3.0",
89
89
  "joi": "17.13.3",
90
90
  "jquery": "4.0.0",
@@ -118,7 +118,7 @@
118
118
  "@eslint/js": "10.0.1",
119
119
  "chai": "4.3.10",
120
120
  "eerawlog": "1.5.1",
121
- "eslint": "10.0.0",
121
+ "eslint": "10.0.2",
122
122
  "grunt": "1.6.1",
123
123
  "grunt-cli": "1.5.0",
124
124
  "grunt-shell-spawn": "0.5.0",