@pikku/core 0.6.16 → 0.6.18

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 (92) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/channel/channel-handler.js +2 -2
  3. package/dist/channel/channel-runner.d.ts +2 -14
  4. package/dist/channel/channel-runner.js +5 -36
  5. package/dist/channel/channel-store.d.ts +9 -6
  6. package/dist/channel/index.d.ts +0 -1
  7. package/dist/channel/index.js +0 -1
  8. package/dist/channel/local/local-channel-runner.js +2 -2
  9. package/dist/channel/log-channels.js +2 -2
  10. package/dist/channel/serverless/serverless-channel-runner.js +8 -7
  11. package/dist/errors/error-handler.d.ts +1 -1
  12. package/dist/errors/error-handler.js +6 -14
  13. package/dist/errors/errors.d.ts +1 -1
  14. package/dist/errors/errors.js +2 -2
  15. package/dist/http/http-route-runner.d.ts +3 -23
  16. package/dist/http/http-route-runner.js +13 -82
  17. package/dist/http/index.d.ts +1 -1
  18. package/dist/http/index.js +1 -1
  19. package/dist/http/log-http-routes.js +2 -2
  20. package/dist/index.d.ts +2 -1
  21. package/dist/index.js +2 -1
  22. package/dist/middleware/auth-apikey.d.ts +15 -0
  23. package/dist/middleware/auth-apikey.js +36 -0
  24. package/dist/middleware/auth-bearer.d.ts +12 -0
  25. package/dist/middleware/auth-bearer.js +40 -0
  26. package/dist/middleware/auth-cookie.d.ts +16 -0
  27. package/dist/middleware/auth-cookie.js +43 -0
  28. package/dist/middleware/index.d.ts +3 -4
  29. package/dist/middleware/index.js +3 -4
  30. package/dist/middleware/timeout.d.ts +2 -0
  31. package/dist/middleware/timeout.js +10 -0
  32. package/dist/middleware-runner.d.ts +1 -1
  33. package/dist/pikku-state.d.ts +29 -0
  34. package/dist/pikku-state.js +30 -0
  35. package/dist/scheduler/index.d.ts +1 -1
  36. package/dist/scheduler/index.js +1 -1
  37. package/dist/scheduler/log-schedulers.js +2 -2
  38. package/dist/scheduler/scheduler-runner.d.ts +1 -11
  39. package/dist/scheduler/scheduler-runner.js +5 -33
  40. package/dist/schema.js +2 -2
  41. package/dist/services/jwt-service.d.ts +1 -10
  42. package/dist/services/user-session-service.d.ts +2 -2
  43. package/dist/services/user-session-service.js +6 -6
  44. package/dist/types/core.types.d.ts +3 -3
  45. package/lcov.info +814 -907
  46. package/package.json +2 -1
  47. package/src/channel/channel-handler.ts +2 -2
  48. package/src/channel/channel-runner.ts +4 -43
  49. package/src/channel/channel-store.ts +8 -11
  50. package/src/channel/index.ts +0 -1
  51. package/src/channel/local/local-channel-runner.test.ts +10 -20
  52. package/src/channel/local/local-channel-runner.ts +2 -2
  53. package/src/channel/log-channels.ts +2 -2
  54. package/src/channel/serverless/serverless-channel-runner.ts +10 -9
  55. package/src/errors/error-handler.ts +7 -18
  56. package/src/errors/errors.ts +2 -3
  57. package/src/handle-error.ts +0 -1
  58. package/src/http/http-route-runner.test.ts +3 -2
  59. package/src/http/http-route-runner.ts +18 -99
  60. package/src/http/index.ts +1 -6
  61. package/src/http/log-http-routes.ts +2 -2
  62. package/src/index.ts +2 -1
  63. package/src/middleware/auth-apikey.ts +65 -0
  64. package/src/middleware/auth-bearer.ts +65 -0
  65. package/src/middleware/auth-cookie.ts +76 -0
  66. package/src/middleware/index.ts +3 -4
  67. package/src/middleware/timeout.ts +13 -0
  68. package/src/middleware-runner.ts +1 -1
  69. package/src/pikku-state.ts +70 -0
  70. package/src/scheduler/index.ts +1 -7
  71. package/src/scheduler/log-schedulers.ts +2 -2
  72. package/src/scheduler/scheduler-runner.ts +6 -45
  73. package/src/schema.ts +2 -2
  74. package/src/services/jwt-service.ts +1 -12
  75. package/src/services/user-session-service.ts +8 -6
  76. package/src/types/core.types.ts +3 -6
  77. package/tsconfig.tsbuildinfo +1 -1
  78. package/dist/channel/eventhub-forwarder.d.ts +0 -17
  79. package/dist/channel/eventhub-forwarder.js +0 -1
  80. package/dist/middleware/auth-api-key.d.ts +0 -9
  81. package/dist/middleware/auth-api-key.js +0 -23
  82. package/dist/middleware/auth-cookie-middleware.d.ts +0 -11
  83. package/dist/middleware/auth-cookie-middleware.js +0 -36
  84. package/dist/middleware/auth-jwt-middleware.d.ts +0 -10
  85. package/dist/middleware/auth-jwt-middleware.js +0 -32
  86. package/dist/middleware/auth-query-middleware.d.ts +0 -10
  87. package/dist/middleware/auth-query-middleware.js +0 -21
  88. package/src/channel/eventhub-forwarder.ts +0 -25
  89. package/src/middleware/auth-api-key.ts +0 -32
  90. package/src/middleware/auth-cookie-middleware.ts +0 -54
  91. package/src/middleware/auth-jwt-middleware.ts +0 -47
  92. package/src/middleware/auth-query-middleware.ts +0 -33
@@ -1,47 +0,0 @@
1
- import { InvalidSessionError } from '../errors/errors.js'
2
- import { PikkuMiddleware } from '../types/core.types.js'
3
-
4
- /**
5
- * JWT middleware that extracts the Bearer token from the Authorization header,
6
- * decodes it via the jwtService, and sets the session if found.
7
- *
8
- * @param options.debugJWTDecode - Optional flag for debugging the JWT decode process.
9
- */
10
- export const authJWTMiddleware = (
11
- options: { debugJWTDecode?: boolean } = {}
12
- ): PikkuMiddleware => {
13
- const middleware: PikkuMiddleware = async (
14
- { jwt, userSessionService },
15
- { http },
16
- next
17
- ) => {
18
- if (!jwt) {
19
- throw new Error('JWT service not found')
20
- }
21
-
22
- // Skip if session already exists.
23
- if (!http?.request || userSessionService.get()) {
24
- return next()
25
- }
26
-
27
- const authHeader =
28
- http.request.getHeader('authorization') ||
29
- http.request.getHeader('Authorization')
30
- if (authHeader) {
31
- const [scheme, token] = authHeader.split(' ')
32
- if (scheme !== 'Bearer' || !token) {
33
- throw new InvalidSessionError()
34
- }
35
- const userSession = await jwt.decode<any>(
36
- token,
37
- undefined,
38
- options.debugJWTDecode
39
- )
40
- if (userSession) {
41
- await userSessionService.set(userSession)
42
- }
43
- }
44
- return next()
45
- }
46
- return middleware
47
- }
@@ -1,33 +0,0 @@
1
- import { PikkuQuery } from '../http/http-routes.types.js'
2
- import { PikkuMiddleware } from '../types/core.types.js'
3
-
4
- /**
5
- * Query middleware that retrieves a session using query parameters.
6
- *
7
- * @param options.getSessionForQueryValue - A function that returns a session based on query parameters.
8
- */
9
- export const queryMiddleware = (
10
- options: {
11
- getSessionForQueryValue?: (query: PikkuQuery) => Promise<any>
12
- } = {}
13
- ): PikkuMiddleware => {
14
- const middleware: PikkuMiddleware = async (
15
- { userSessionService },
16
- { http },
17
- next
18
- ) => {
19
- if (!http?.request || userSessionService.get()) {
20
- return next()
21
- }
22
-
23
- if (options.getSessionForQueryValue) {
24
- const query = http.request.getQuery()
25
- const userSession = await options.getSessionForQueryValue(query)
26
- if (userSession) {
27
- await userSessionService.set(userSession)
28
- }
29
- }
30
- return next()
31
- }
32
- return middleware
33
- }