@prosopo/api-express-router 3.0.40 → 3.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +11 -7
  2. package/.turbo/turbo-build$colon$tsc.log +62 -0
  3. package/.turbo/turbo-build.log +16 -8
  4. package/CHANGELOG.md +389 -0
  5. package/dist/apiExpressRouterFactory.d.ts +9 -0
  6. package/dist/apiExpressRouterFactory.d.ts.map +1 -0
  7. package/dist/apiExpressRouterFactory.js.map +1 -0
  8. package/dist/cjs/endpointAdapter/apiExpressDefaultEndpointAdapter.cjs +2 -1
  9. package/dist/cjs/middlewares/authMiddleware.cjs +18 -41
  10. package/dist/cjs/middlewares/requestLoggerMiddleware.cjs +14 -4
  11. package/dist/endpointAdapter/apiExpressDefaultEndpointAdapter.d.ts +13 -0
  12. package/dist/endpointAdapter/apiExpressDefaultEndpointAdapter.d.ts.map +1 -0
  13. package/dist/endpointAdapter/apiExpressDefaultEndpointAdapter.js +2 -1
  14. package/dist/endpointAdapter/apiExpressDefaultEndpointAdapter.js.map +1 -0
  15. package/dist/endpointAdapter/apiExpressEndpointAdapter.d.ts +8 -0
  16. package/dist/endpointAdapter/apiExpressEndpointAdapter.d.ts.map +1 -0
  17. package/dist/endpointAdapter/apiExpressEndpointAdapter.js +2 -0
  18. package/dist/endpointAdapter/apiExpressEndpointAdapter.js.map +1 -0
  19. package/dist/errorHandler.d.ts +5 -0
  20. package/dist/errorHandler.d.ts.map +1 -0
  21. package/dist/errorHandler.js.map +1 -0
  22. package/dist/index.d.ts +10 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/middlewares/authMiddleware.d.ts +5 -0
  26. package/dist/middlewares/authMiddleware.d.ts.map +1 -0
  27. package/dist/middlewares/authMiddleware.js +19 -42
  28. package/dist/middlewares/authMiddleware.js.map +1 -0
  29. package/dist/middlewares/requestLoggerMiddleware.d.ts +4 -0
  30. package/dist/middlewares/requestLoggerMiddleware.d.ts.map +1 -0
  31. package/dist/middlewares/requestLoggerMiddleware.js +11 -1
  32. package/dist/middlewares/requestLoggerMiddleware.js.map +1 -0
  33. package/dist/tests/unit/errorHandler.unit.test.d.ts +2 -0
  34. package/dist/tests/unit/errorHandler.unit.test.d.ts.map +1 -0
  35. package/dist/tests/unit/errorHandler.unit.test.js +140 -0
  36. package/dist/tests/unit/errorHandler.unit.test.js.map +1 -0
  37. package/dist/tests/unit/middlewares/authMiddleware.unit.test.d.ts +2 -0
  38. package/dist/tests/unit/middlewares/authMiddleware.unit.test.d.ts.map +1 -0
  39. package/dist/tests/unit/middlewares/authMiddleware.unit.test.js +144 -0
  40. package/dist/tests/unit/middlewares/authMiddleware.unit.test.js.map +1 -0
  41. package/express.d.ts +4 -2
  42. package/package.json +17 -9
  43. package/src/apiExpressRouterFactory.ts +68 -0
  44. package/src/endpointAdapter/apiExpressDefaultEndpointAdapter.ts +65 -0
  45. package/src/endpointAdapter/apiExpressEndpointAdapter.ts +28 -0
  46. package/src/errorHandler.ts +33 -0
  47. package/src/index.ts +37 -0
  48. package/src/middlewares/authMiddleware.ts +93 -0
  49. package/src/middlewares/requestLoggerMiddleware.ts +55 -0
  50. package/src/tests/unit/errorHandler.unit.test.ts +190 -0
  51. package/src/tests/unit/middlewares/authMiddleware.unit.test.ts +183 -0
  52. package/tsconfig.cjs.json +34 -0
  53. package/tsconfig.json +41 -0
  54. package/tsconfig.tsbuildinfo +1 -0
  55. package/tsconfig.types.json +9 -0
  56. package/vite.cjs.config.ts +1 -1
  57. package/vite.esm.config.ts +1 -1
  58. package/vite.test.config.ts +1 -1
@@ -1,17 +1,19 @@
1
1
 
2
- > @prosopo/api-express-router@3.0.40 build:cjs
2
+ > @prosopo/api-express-router@3.1.17 build:cjs
3
3
  > NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV
4
4
 
5
5
  ViteCommonJSConfig: .
6
6
  {
7
7
  tsConfigPaths: [
8
8
  '/home/runner/work/captcha/captcha/packages/api-route/tsconfig.json',
9
+ '/home/runner/work/captcha/captcha/packages/logger/tsconfig.json',
10
+ '/home/runner/work/captcha/captcha/packages/util/tsconfig.json',
9
11
  '/home/runner/work/captcha/captcha/packages/common/tsconfig.json',
10
12
  '/home/runner/work/captcha/captcha/packages/locale/tsconfig.json',
11
13
  '/home/runner/work/captcha/captcha/packages/types/tsconfig.json',
12
- '/home/runner/work/captcha/captcha/packages/util/tsconfig.json',
13
14
  '/home/runner/work/captcha/captcha/packages/util-crypto/tsconfig.json',
14
15
  '/home/runner/work/captcha/captcha/packages/env/tsconfig.json',
16
+ '/home/runner/work/captcha/captcha/packages/ipinfo/tsconfig.json',
15
17
  '/home/runner/work/captcha/captcha/packages/database/tsconfig.json',
16
18
  '/home/runner/work/captcha/captcha/packages/types-database/tsconfig.json',
17
19
  '/home/runner/work/captcha/captcha/packages/user-access-policy/tsconfig.json',
@@ -24,12 +26,14 @@ ViteCommonJSConfig: .
24
26
  {
25
27
  externals: [
26
28
  '@prosopo/api-route',
29
+ '@prosopo/logger',
30
+ '@prosopo/util',
27
31
  '@prosopo/common',
28
32
  '@prosopo/locale',
29
33
  '@prosopo/types',
30
- '@prosopo/util',
31
34
  '@prosopo/util-crypto',
32
35
  '@prosopo/env',
36
+ '@prosopo/ipinfo',
33
37
  '@prosopo/database',
34
38
  '@prosopo/types-database',
35
39
  '@prosopo/user-access-policy',
@@ -46,9 +50,9 @@ Build end
46
50
  ✓ 6 modules transformed.
47
51
  rendering chunks...
48
52
  dist/cjs/errorHandler.cjs 0.49 kB
49
- dist/cjs/middlewares/requestLoggerMiddleware.cjs 0.69 kB
50
53
  dist/cjs/apiExpressRouterFactory.cjs 0.92 kB
51
- dist/cjs/endpointAdapter/apiExpressDefaultEndpointAdapter.cjs 1.09 kB
54
+ dist/cjs/middlewares/requestLoggerMiddleware.cjs 1.06 kB
55
+ dist/cjs/endpointAdapter/apiExpressDefaultEndpointAdapter.cjs 1.13 kB
52
56
  dist/cjs/index.cjs 1.16 kB
53
- dist/cjs/middlewares/authMiddleware.cjs 2.60 kB
54
- ✓ built in 132ms
57
+ dist/cjs/middlewares/authMiddleware.cjs 1.86 kB
58
+ ✓ built in 111ms
@@ -0,0 +1,62 @@
1
+
2
+ > @prosopo/api-express-router@3.1.17 build:tsc
3
+ > tsc --build --verbose
4
+
5
+ 8:15:21 AM - Projects in this build:
6
+ * ../../dev/config/tsconfig.json
7
+ * ../util/tsconfig.json
8
+ * ../logger/tsconfig.json
9
+ * ../api-route/tsconfig.json
10
+ * ../locale/tsconfig.json
11
+ * ../util-crypto/tsconfig.json
12
+ * ../types/tsconfig.json
13
+ * ../common/tsconfig.json
14
+ * ../ipinfo/tsconfig.json
15
+ * ../redis-client/tsconfig.json
16
+ * ../api/tsconfig.json
17
+ * ../user-access-policy/tsconfig.json
18
+ * ../types-database/tsconfig.json
19
+ * ../database/tsconfig.json
20
+ * ../keyring/tsconfig.json
21
+ * ../types-env/tsconfig.json
22
+ * ../env/tsconfig.json
23
+ * tsconfig.json
24
+
25
+ 8:15:21 AM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/webpack.config.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
26
+
27
+ 8:15:21 AM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
28
+
29
+ 8:15:21 AM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/index.ts' is older than output '../logger/tsconfig.tsbuildinfo'
30
+
31
+ 8:15:21 AM - Project '../api-route/tsconfig.json' is up to date because newest input '../api-route/src/apiRoutes.ts' is older than output '../api-route/tsconfig.tsbuildinfo'
32
+
33
+ 8:15:21 AM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
34
+
35
+ 8:15:21 AM - Project '../util-crypto/tsconfig.json' is up to date because newest input '../util-crypto/src/types.ts' is older than output '../util-crypto/tsconfig.tsbuildinfo'
36
+
37
+ 8:15:21 AM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/procaptcha/api.ts' is older than output '../types/tsconfig.tsbuildinfo'
38
+
39
+ 8:15:21 AM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/error.ts' is older than output '../common/tsconfig.tsbuildinfo'
40
+
41
+ 8:15:22 AM - Project '../ipinfo/tsconfig.json' is up to date because newest input '../ipinfo/src/IpInfoService.ts' is older than output '../ipinfo/tsconfig.tsbuildinfo'
42
+
43
+ 8:15:22 AM - Project '../redis-client/tsconfig.json' is up to date because newest input '../redis-client/src/index.ts' is older than output '../redis-client/tsconfig.tsbuildinfo'
44
+
45
+ 8:15:22 AM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.ts' is older than output '../api/tsconfig.tsbuildinfo'
46
+
47
+ 8:15:22 AM - Project '../user-access-policy/tsconfig.json' is up to date because newest input '../user-access-policy/src/transformRule.ts' is older than output '../user-access-policy/tsconfig.tsbuildinfo'
48
+
49
+ 8:15:22 AM - Project '../types-database/tsconfig.json' is up to date because newest input '../types-database/src/types/bannedDomain.ts' is older than output '../types-database/tsconfig.tsbuildinfo'
50
+
51
+ 8:15:22 AM - Project '../database/tsconfig.json' is up to date because newest input '../database/src/tests/integration/ipInfoPersistence.integration.test.ts' is older than output '../database/tsconfig.tsbuildinfo'
52
+
53
+ 8:15:22 AM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/index.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
54
+
55
+ 8:15:22 AM - Project '../types-env/tsconfig.json' is up to date because newest input '../types-env/src/index.ts' is older than output '../types-env/tsconfig.tsbuildinfo'
56
+
57
+ 8:15:22 AM - Project '../env/tsconfig.json' is up to date because newest input '../env/src/env.ts' is older than output '../env/tsconfig.tsbuildinfo'
58
+
59
+ 8:15:22 AM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
60
+
61
+ 8:15:22 AM - Building project '/home/runner/work/captcha/captcha/packages/api-express-router/tsconfig.json'...
62
+
@@ -1,17 +1,23 @@
1
1
 
2
- > @prosopo/api-express-router@3.0.40 build
3
- > NODE_ENV=${NODE_ENV:-development}; vite build --config vite.esm.config.ts --mode $NODE_ENV
2
+ > @prosopo/api-express-router@3.1.17 build
3
+ > npm run build:cross-env -- --mode ${NODE_ENV:-development}
4
+
5
+
6
+ > @prosopo/api-express-router@3.1.17 build:cross-env
7
+ > vite build --config vite.esm.config.ts --mode production
4
8
 
5
9
  ViteEsmConfig: .
6
10
  {
7
11
  tsConfigPaths: [
8
12
  '/home/runner/work/captcha/captcha/packages/api-route/tsconfig.json',
13
+ '/home/runner/work/captcha/captcha/packages/logger/tsconfig.json',
14
+ '/home/runner/work/captcha/captcha/packages/util/tsconfig.json',
9
15
  '/home/runner/work/captcha/captcha/packages/common/tsconfig.json',
10
16
  '/home/runner/work/captcha/captcha/packages/locale/tsconfig.json',
11
17
  '/home/runner/work/captcha/captcha/packages/types/tsconfig.json',
12
- '/home/runner/work/captcha/captcha/packages/util/tsconfig.json',
13
18
  '/home/runner/work/captcha/captcha/packages/util-crypto/tsconfig.json',
14
19
  '/home/runner/work/captcha/captcha/packages/env/tsconfig.json',
20
+ '/home/runner/work/captcha/captcha/packages/ipinfo/tsconfig.json',
15
21
  '/home/runner/work/captcha/captcha/packages/database/tsconfig.json',
16
22
  '/home/runner/work/captcha/captcha/packages/types-database/tsconfig.json',
17
23
  '/home/runner/work/captcha/captcha/packages/user-access-policy/tsconfig.json',
@@ -24,12 +30,14 @@ ViteEsmConfig: .
24
30
  {
25
31
  externals: [
26
32
  '@prosopo/api-route',
33
+ '@prosopo/logger',
34
+ '@prosopo/util',
27
35
  '@prosopo/common',
28
36
  '@prosopo/locale',
29
37
  '@prosopo/types',
30
- '@prosopo/util',
31
38
  '@prosopo/util-crypto',
32
39
  '@prosopo/env',
40
+ '@prosopo/ipinfo',
33
41
  '@prosopo/database',
34
42
  '@prosopo/types-database',
35
43
  '@prosopo/user-access-policy',
@@ -46,9 +54,9 @@ Build end
46
54
  ✓ 6 modules transformed.
47
55
  rendering chunks...
48
56
  dist/errorHandler.js 0.39 kB
49
- dist/middlewares/requestLoggerMiddleware.js 0.58 kB
50
57
  dist/index.js 0.78 kB
51
58
  dist/apiExpressRouterFactory.js 0.78 kB
52
- dist/endpointAdapter/apiExpressDefaultEndpointAdapter.js 0.98 kB
53
- dist/middlewares/authMiddleware.js 2.46 kB
54
- ✓ built in 204ms
59
+ dist/middlewares/requestLoggerMiddleware.js 0.94 kB
60
+ dist/endpointAdapter/apiExpressDefaultEndpointAdapter.js 1.02 kB
61
+ dist/middlewares/authMiddleware.js 1.73 kB
62
+ ✓ built in 192ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,394 @@
1
1
  # @prosopo/api-express-router
2
2
 
3
+ ## 3.1.17
4
+ ### Patch Changes
5
+
6
+ - Updated dependencies [a1d60db]
7
+ - Updated dependencies [2392aaf]
8
+ - Updated dependencies [97cf7bd]
9
+ - Updated dependencies [6ca1125]
10
+ - Updated dependencies [32a591b]
11
+ - @prosopo/types@4.3.0
12
+ - @prosopo/logger@1.0.2
13
+ - @prosopo/common@3.1.38
14
+ - @prosopo/env@3.5.7
15
+ - @prosopo/api-route@2.6.46
16
+
17
+ ## 3.1.16
18
+ ### Patch Changes
19
+
20
+ - Updated dependencies [6c26669]
21
+ - Updated dependencies [f7f9ec5]
22
+ - @prosopo/types@4.2.1
23
+ - @prosopo/env@3.5.6
24
+
25
+ ## 3.1.15
26
+ ### Patch Changes
27
+
28
+ - 0fd81af: Extract the logger into its own `@prosopo/logger` package, out of `@prosopo/common`. Consumers now import logger symbols from `@prosopo/logger`; `@prosopo/common` no longer re-exports them. Unused `@prosopo/common` dependencies pruned where the only usage was the logger.
29
+ - Updated dependencies [0fd81af]
30
+ - @prosopo/api-route@2.6.45
31
+ - @prosopo/common@3.1.37
32
+ - @prosopo/env@3.5.5
33
+ - @prosopo/logger@1.0.1
34
+
35
+ ## 3.1.14
36
+ ### Patch Changes
37
+
38
+ - Updated dependencies [20cae63]
39
+ - Updated dependencies [4d9923e]
40
+ - @prosopo/types@4.2.0
41
+ - @prosopo/env@3.5.4
42
+
43
+ ## 3.1.13
44
+ ### Patch Changes
45
+
46
+ - Updated dependencies [d351362]
47
+ - @prosopo/types@4.1.4
48
+ - @prosopo/env@3.5.3
49
+
50
+ ## 3.1.12
51
+ ### Patch Changes
52
+
53
+ - Updated dependencies [e2711ae]
54
+ - Updated dependencies [5786629]
55
+ - @prosopo/types@4.1.3
56
+ - @prosopo/locale@3.2.4
57
+ - @prosopo/common@3.1.36
58
+ - @prosopo/env@3.5.2
59
+ - @prosopo/api-route@2.6.44
60
+
61
+ ## 3.1.11
62
+ ### Patch Changes
63
+
64
+ - @prosopo/types@4.1.2
65
+ - @prosopo/env@3.5.1
66
+
67
+ ## 3.1.10
68
+ ### Patch Changes
69
+
70
+ - Updated dependencies [53bfd45]
71
+ - Updated dependencies [91958da]
72
+ - @prosopo/locale@3.2.3
73
+ - @prosopo/env@3.5.0
74
+ - @prosopo/types@4.1.1
75
+ - @prosopo/common@3.1.35
76
+ - @prosopo/api-route@2.6.43
77
+
78
+ ## 3.1.9
79
+ ### Patch Changes
80
+
81
+ - Updated dependencies [6a741ce]
82
+ - @prosopo/types@4.1.0
83
+ - @prosopo/env@3.4.9
84
+
85
+ ## 3.1.8
86
+ ### Patch Changes
87
+
88
+ - Updated dependencies [3c0be68]
89
+ - Updated dependencies [f9ea09d]
90
+ - Updated dependencies [4aae4e6]
91
+ - Updated dependencies [d865319]
92
+ - Updated dependencies [753304b]
93
+ - Updated dependencies [8bb7286]
94
+ - Updated dependencies [f9ea09d]
95
+ - Updated dependencies [4aae4e6]
96
+ - Updated dependencies [4993813]
97
+ - @prosopo/types@4.0.0
98
+ - @prosopo/locale@3.2.2
99
+ - @prosopo/common@3.1.34
100
+ - @prosopo/env@3.4.8
101
+ - @prosopo/api-route@2.6.42
102
+
103
+ ## 3.1.7
104
+ ### Patch Changes
105
+
106
+ - Updated dependencies [819ed95]
107
+ - @prosopo/types@3.16.1
108
+ - @prosopo/env@3.4.7
109
+
110
+ ## 3.1.6
111
+ ### Patch Changes
112
+
113
+ - @prosopo/env@3.4.6
114
+
115
+ ## 3.1.5
116
+ ### Patch Changes
117
+
118
+ - @prosopo/env@3.4.5
119
+
120
+ ## 3.1.4
121
+ ### Patch Changes
122
+
123
+ - @prosopo/env@3.4.4
124
+
125
+ ## 3.1.3
126
+ ### Patch Changes
127
+
128
+ - Updated dependencies [f6a4402]
129
+ - Updated dependencies [99dfb44]
130
+ - @prosopo/types@3.16.0
131
+ - @prosopo/env@3.4.3
132
+
133
+ ## 3.1.2
134
+ ### Patch Changes
135
+
136
+ - Updated dependencies [3e54c0a]
137
+ - @prosopo/types@3.15.0
138
+ - @prosopo/env@3.4.2
139
+
140
+ ## 3.1.1
141
+ ### Patch Changes
142
+
143
+ - Updated dependencies [946a8ba]
144
+ - Updated dependencies [5614814]
145
+ - Updated dependencies [b94890c]
146
+ - @prosopo/types@3.14.1
147
+ - @prosopo/locale@3.2.1
148
+ - @prosopo/common@3.1.33
149
+ - @prosopo/env@3.4.1
150
+ - @prosopo/api-route@2.6.41
151
+
152
+ ## 3.1.0
153
+ ### Minor Changes
154
+
155
+ - 42650db: Add better spam rules and move ipinfo service to local instead of external
156
+
157
+ ### Patch Changes
158
+
159
+ - Updated dependencies [fc514dd]
160
+ - Updated dependencies [42650db]
161
+ - @prosopo/locale@3.2.0
162
+ - @prosopo/types@3.14.0
163
+ - @prosopo/env@3.4.0
164
+ - @prosopo/common@3.1.32
165
+ - @prosopo/api-route@2.6.40
166
+
167
+ ## 3.0.70
168
+ ### Patch Changes
169
+
170
+ - Updated dependencies [4a9c518]
171
+ - @prosopo/common@3.1.31
172
+ - @prosopo/api-route@2.6.39
173
+ - @prosopo/env@3.3.15
174
+
175
+ ## 3.0.69
176
+ ### Patch Changes
177
+
178
+ - @prosopo/types@3.13.3
179
+ - @prosopo/env@3.3.14
180
+
181
+ ## 3.0.68
182
+ ### Patch Changes
183
+
184
+ - @prosopo/types@3.13.2
185
+ - @prosopo/env@3.3.13
186
+
187
+ ## 3.0.67
188
+ ### Patch Changes
189
+
190
+ - @prosopo/types@3.13.1
191
+ - @prosopo/env@3.3.12
192
+
193
+ ## 3.0.66
194
+ ### Patch Changes
195
+
196
+ - Updated dependencies [e6d9553]
197
+ - @prosopo/types@3.13.0
198
+ - @prosopo/env@3.3.11
199
+
200
+ ## 3.0.65
201
+ ### Patch Changes
202
+
203
+ - Updated dependencies [d5082a9]
204
+ - Updated dependencies [e1ea65f]
205
+ - Updated dependencies [c316257]
206
+ - @prosopo/types@3.12.3
207
+ - @prosopo/env@3.3.10
208
+
209
+ ## 3.0.64
210
+ ### Patch Changes
211
+
212
+ - Updated dependencies [adb89a6]
213
+ - @prosopo/locale@3.1.29
214
+ - @prosopo/types@3.12.2
215
+ - @prosopo/env@3.3.9
216
+ - @prosopo/common@3.1.30
217
+ - @prosopo/api-route@2.6.38
218
+
219
+ ## 3.0.63
220
+ ### Patch Changes
221
+
222
+ - Updated dependencies [c5ee492]
223
+ - Updated dependencies [a90eb54]
224
+ - @prosopo/common@3.1.29
225
+ - @prosopo/types@3.12.1
226
+ - @prosopo/api-route@2.6.37
227
+ - @prosopo/env@3.3.8
228
+
229
+ ## 3.0.62
230
+ ### Patch Changes
231
+
232
+ - Updated dependencies [676c5f2]
233
+ - Updated dependencies [feaca02]
234
+ - @prosopo/types@3.12.0
235
+ - @prosopo/env@3.3.7
236
+
237
+ ## 3.0.61
238
+ ### Patch Changes
239
+
240
+ - Updated dependencies [8148587]
241
+ - @prosopo/types@3.11.1
242
+ - @prosopo/env@3.3.6
243
+
244
+ ## 3.0.60
245
+ ### Patch Changes
246
+
247
+ - @prosopo/env@3.3.5
248
+
249
+ ## 3.0.59
250
+ ### Patch Changes
251
+
252
+ - ca7f4ad: Attach site key and user to logger earlier
253
+ - Updated dependencies [7f6ffc5]
254
+ - @prosopo/types@3.11.0
255
+ - @prosopo/env@3.3.4
256
+
257
+ ## 3.0.58
258
+ ### Patch Changes
259
+
260
+ - Updated dependencies [93fa086]
261
+ - @prosopo/types@3.10.2
262
+ - @prosopo/env@3.3.3
263
+
264
+ ## 3.0.57
265
+ ### Patch Changes
266
+
267
+ - Updated dependencies [cde7550]
268
+ - @prosopo/types@3.10.1
269
+ - @prosopo/env@3.3.2
270
+
271
+ ## 3.0.56
272
+ ### Patch Changes
273
+
274
+ - Updated dependencies [ad6d622]
275
+ - @prosopo/types@3.10.0
276
+ - @prosopo/env@3.3.1
277
+
278
+ ## 3.0.55
279
+ ### Patch Changes
280
+
281
+ - Updated dependencies [ff58a70]
282
+ - @prosopo/types@3.9.0
283
+ - @prosopo/env@3.3.0
284
+
285
+ ## 3.0.54
286
+ ### Patch Changes
287
+
288
+ - @prosopo/env@3.2.42
289
+
290
+ ## 3.0.53
291
+ ### Patch Changes
292
+
293
+ - Updated dependencies [d2431cd]
294
+ - @prosopo/types@3.8.4
295
+ - @prosopo/env@3.2.41
296
+
297
+ ## 3.0.52
298
+ ### Patch Changes
299
+
300
+ - @prosopo/env@3.2.40
301
+
302
+ ## 3.0.51
303
+ ### Patch Changes
304
+
305
+ - Updated dependencies [bd6995b]
306
+ - @prosopo/types@3.8.3
307
+ - @prosopo/env@3.2.39
308
+
309
+ ## 3.0.50
310
+ ### Patch Changes
311
+
312
+ - Updated dependencies [9633e58]
313
+ - @prosopo/types@3.8.2
314
+ - @prosopo/env@3.2.38
315
+
316
+ ## 3.0.49
317
+ ### Patch Changes
318
+
319
+ - Updated dependencies [f52a5c1]
320
+ - @prosopo/types@3.8.1
321
+ - @prosopo/env@3.2.37
322
+
323
+ ## 3.0.48
324
+ ### Patch Changes
325
+
326
+ - @prosopo/env@3.2.36
327
+
328
+ ## 3.0.47
329
+ ### Patch Changes
330
+
331
+ - 3acc333: Add JWT issuance to keypairs
332
+ - 0a38892: feat/cross-os-testing
333
+ - a8faa9a: bump license year
334
+ - 7543d17: mouse movements bot stopping
335
+ - 3acc333: Release 3.3.0
336
+ - Updated dependencies [3acc333]
337
+ - Updated dependencies [0a38892]
338
+ - Updated dependencies [1ee3d80]
339
+ - Updated dependencies [a8faa9a]
340
+ - Updated dependencies [7543d17]
341
+ - Updated dependencies [fe9fe22]
342
+ - Updated dependencies [3acc333]
343
+ - @prosopo/util-crypto@13.5.29
344
+ - @prosopo/types@3.8.0
345
+ - @prosopo/api-route@2.6.36
346
+ - @prosopo/common@3.1.28
347
+ - @prosopo/locale@3.1.28
348
+ - @prosopo/env@3.2.35
349
+
350
+ ## 3.0.46
351
+ ### Patch Changes
352
+
353
+ - @prosopo/env@3.2.34
354
+
355
+ ## 3.0.45
356
+ ### Patch Changes
357
+
358
+ - @prosopo/env@3.2.33
359
+
360
+ ## 3.0.44
361
+ ### Patch Changes
362
+
363
+ - @prosopo/env@3.2.32
364
+
365
+ ## 3.0.43
366
+ ### Patch Changes
367
+
368
+ - Updated dependencies [141e462]
369
+ - @prosopo/types@3.7.2
370
+ - @prosopo/env@3.2.31
371
+
372
+ ## 3.0.42
373
+ ### Patch Changes
374
+
375
+ - Updated dependencies [345b25b]
376
+ - @prosopo/types@3.7.1
377
+ - @prosopo/env@3.2.30
378
+
379
+ ## 3.0.41
380
+ ### Patch Changes
381
+
382
+ - Updated dependencies [ce70a2b]
383
+ - Updated dependencies [c2b940f]
384
+ - Updated dependencies [f6b5094]
385
+ - Updated dependencies [e01227b]
386
+ - @prosopo/types@3.7.0
387
+ - @prosopo/locale@3.1.27
388
+ - @prosopo/common@3.1.27
389
+ - @prosopo/env@3.2.29
390
+ - @prosopo/api-route@2.6.35
391
+
3
392
  ## 3.0.40
4
393
  ### Patch Changes
5
394
 
@@ -0,0 +1,9 @@
1
+ import type { ApiRoutes, ApiRoutesProvider } from "@prosopo/api-route";
2
+ import { Router } from "express";
3
+ import type { ApiExpressEndpointAdapter } from "./endpointAdapter/apiExpressEndpointAdapter.js";
4
+ declare class ApiExpressRouterFactory {
5
+ createRouter(routersProvider: ApiRoutesProvider, apiEndpointAdapter: ApiExpressEndpointAdapter): Router;
6
+ protected registerRoutes(router: Router, routes: ApiRoutes, apiEndpointAdapter: ApiExpressEndpointAdapter): void;
7
+ }
8
+ export { ApiExpressRouterFactory };
9
+ //# sourceMappingURL=apiExpressRouterFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiExpressRouterFactory.d.ts","sourceRoot":"","sources":["../src/apiExpressRouterFactory.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAIN,MAAM,EACN,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAGhG,cAAM,uBAAuB;IACrB,YAAY,CAClB,eAAe,EAAE,iBAAiB,EAClC,kBAAkB,EAAE,yBAAyB,GAC3C,MAAM;IAcT,SAAS,CAAC,cAAc,CACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACjB,kBAAkB,EAAE,yBAAyB,GAC3C,IAAI;CAmBP;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiExpressRouterFactory.js","sourceRoot":"","sources":["../src/apiExpressRouterFactory.ts"],"names":[],"mappings":"AAeA,OAAO,EAIN,MAAM,GACN,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,uBAAuB;IACrB,YAAY,CAClB,eAAkC,EAClC,kBAA6C;QAE7C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC;QAE9C,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAK3D,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEzB,OAAO,MAAM,CAAC;IACf,CAAC;IAES,cAAc,CACvB,MAAc,EACd,MAAiB,EACjB,kBAA6C;QAE7C,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,IAAI,CACV,KAAK,EACL,KAAK,EACJ,OAAgB,EAChB,QAAkB,EAClB,IAAkB,EACF,EAAE;gBAClB,OAAO,MAAM,kBAAkB,CAAC,aAAa,CAC5C,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,IAAI,CACJ,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;IACF,CAAC;CACD;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const common = require("@prosopo/common");
4
+ const logger = require("@prosopo/logger");
4
5
  class ApiExpressDefaultEndpointAdapter {
5
6
  constructor(logLevel, errorStatusCode) {
6
7
  this.logLevel = logLevel;
@@ -22,7 +23,7 @@ class ApiExpressDefaultEndpointAdapter {
22
23
  args,
23
24
  request.logger
24
25
  );
25
- const responseObject = common.stringifyBigInts(apiEndpointResponse);
26
+ const responseObject = logger.stringifyBigInts(apiEndpointResponse);
26
27
  response.json(responseObject);
27
28
  } catch (error) {
28
29
  request.logger.error(() => ({
@@ -5,31 +5,20 @@ const common = require("@prosopo/common");
5
5
  const authMiddleware = (pair, authAccount) => {
6
6
  return async (req, res, next) => {
7
7
  try {
8
- const { signature, timestamp } = extractHeaders(req);
8
+ const jwt = extractJWT(req);
9
9
  let error;
10
- if (authAccount) {
11
- try {
12
- verifySignature(signature, timestamp, authAccount);
13
- next();
14
- return;
15
- } catch (e) {
16
- req.logger.warn(() => ({
17
- err: e,
18
- data: {
19
- account: authAccount?.address
20
- }
21
- }));
22
- error = e;
23
- }
10
+ if (authAccount?.jwtVerify(jwt).isValid) {
11
+ next();
12
+ return;
24
13
  }
25
- if (pair) {
26
- verifySignature(signature, timestamp, pair);
14
+ if (pair?.jwtVerify(jwt).isValid) {
27
15
  next();
28
16
  return;
29
17
  }
30
18
  res.status(401).json({
31
- error: "Unauthorized",
32
- message: new common.ProsopoEnvError(error || "CONTRACT.CANNOT_FIND_KEYPAIR")
19
+ error: new common.ProsopoEnvError(error || "API.UNAUTHORIZED", {
20
+ context: { i18n: req.i18n, code: 401 }
21
+ })
33
22
  });
34
23
  return;
35
24
  } catch (err) {
@@ -39,32 +28,20 @@ const authMiddleware = (pair, authAccount) => {
39
28
  }
40
29
  };
41
30
  };
42
- const extractHeaders = (req) => {
43
- const signature = req.headers.signature;
44
- const timestamp = req.headers.timestamp;
45
- if (!timestamp) {
46
- throw new common.ProsopoApiError("GENERAL.INVALID_TIMESTAMP", {
47
- context: { error: "Missing timestamp", code: 400 }
48
- });
49
- }
50
- if (!signature) {
51
- throw new common.ProsopoApiError("GENERAL.INVALID_SIGNATURE", {
52
- context: { error: "Missing signature", code: 400 }
53
- });
54
- }
55
- if (Array.isArray(signature) || Array.isArray(timestamp) || !util.isHex(signature)) {
56
- throw new common.ProsopoApiError("CONTRACT.INVALID_DATA_FORMAT", {
57
- context: { error: "Invalid header format", code: 400 }
31
+ const extractJWT = (req) => {
32
+ const authHeader = req.headers.Authorization || req.headers.authorization;
33
+ if (!authHeader || typeof authHeader !== "string") {
34
+ throw new common.ProsopoApiError("GENERAL.MISSING_AUTH_HEADER", {
35
+ context: { error: "Missing Authorization header", code: 401 }
58
36
  });
59
37
  }
60
- const now = (/* @__PURE__ */ new Date()).getTime();
61
- const ts = Number.parseInt(timestamp);
62
- if (now - ts > 3e5) {
63
- throw new common.ProsopoApiError("GENERAL.INVALID_TIMESTAMP", {
64
- context: { error: "Timestamp is too old", code: 400 }
38
+ const jwt = authHeader.replace("Bearer ", "");
39
+ if (!jwt) {
40
+ throw new common.ProsopoApiError("GENERAL.INVALID_JWT", {
41
+ context: { error: "Missing JWT", code: 400 }
65
42
  });
66
43
  }
67
- return { signature, timestamp };
44
+ return jwt;
68
45
  };
69
46
  const verifySignature = (signature, message, pair) => {
70
47
  const u8Sig = util.hexToU8a(signature);