@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.
- package/CHANGELOG.md +14 -0
- package/dist/channel/channel-handler.js +2 -2
- package/dist/channel/channel-runner.d.ts +2 -14
- package/dist/channel/channel-runner.js +5 -36
- package/dist/channel/channel-store.d.ts +9 -6
- package/dist/channel/index.d.ts +0 -1
- package/dist/channel/index.js +0 -1
- package/dist/channel/local/local-channel-runner.js +2 -2
- package/dist/channel/log-channels.js +2 -2
- package/dist/channel/serverless/serverless-channel-runner.js +8 -7
- package/dist/errors/error-handler.d.ts +1 -1
- package/dist/errors/error-handler.js +6 -14
- package/dist/errors/errors.d.ts +1 -1
- package/dist/errors/errors.js +2 -2
- package/dist/http/http-route-runner.d.ts +3 -23
- package/dist/http/http-route-runner.js +13 -82
- package/dist/http/index.d.ts +1 -1
- package/dist/http/index.js +1 -1
- package/dist/http/log-http-routes.js +2 -2
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/middleware/auth-apikey.d.ts +15 -0
- package/dist/middleware/auth-apikey.js +36 -0
- package/dist/middleware/auth-bearer.d.ts +12 -0
- package/dist/middleware/auth-bearer.js +40 -0
- package/dist/middleware/auth-cookie.d.ts +16 -0
- package/dist/middleware/auth-cookie.js +43 -0
- package/dist/middleware/index.d.ts +3 -4
- package/dist/middleware/index.js +3 -4
- package/dist/middleware/timeout.d.ts +2 -0
- package/dist/middleware/timeout.js +10 -0
- package/dist/middleware-runner.d.ts +1 -1
- package/dist/pikku-state.d.ts +29 -0
- package/dist/pikku-state.js +30 -0
- package/dist/scheduler/index.d.ts +1 -1
- package/dist/scheduler/index.js +1 -1
- package/dist/scheduler/log-schedulers.js +2 -2
- package/dist/scheduler/scheduler-runner.d.ts +1 -11
- package/dist/scheduler/scheduler-runner.js +5 -33
- package/dist/schema.js +2 -2
- package/dist/services/jwt-service.d.ts +1 -10
- package/dist/services/user-session-service.d.ts +2 -2
- package/dist/services/user-session-service.js +6 -6
- package/dist/types/core.types.d.ts +3 -3
- package/lcov.info +814 -907
- package/package.json +2 -1
- package/src/channel/channel-handler.ts +2 -2
- package/src/channel/channel-runner.ts +4 -43
- package/src/channel/channel-store.ts +8 -11
- package/src/channel/index.ts +0 -1
- package/src/channel/local/local-channel-runner.test.ts +10 -20
- package/src/channel/local/local-channel-runner.ts +2 -2
- package/src/channel/log-channels.ts +2 -2
- package/src/channel/serverless/serverless-channel-runner.ts +10 -9
- package/src/errors/error-handler.ts +7 -18
- package/src/errors/errors.ts +2 -3
- package/src/handle-error.ts +0 -1
- package/src/http/http-route-runner.test.ts +3 -2
- package/src/http/http-route-runner.ts +18 -99
- package/src/http/index.ts +1 -6
- package/src/http/log-http-routes.ts +2 -2
- package/src/index.ts +2 -1
- package/src/middleware/auth-apikey.ts +65 -0
- package/src/middleware/auth-bearer.ts +65 -0
- package/src/middleware/auth-cookie.ts +76 -0
- package/src/middleware/index.ts +3 -4
- package/src/middleware/timeout.ts +13 -0
- package/src/middleware-runner.ts +1 -1
- package/src/pikku-state.ts +70 -0
- package/src/scheduler/index.ts +1 -7
- package/src/scheduler/log-schedulers.ts +2 -2
- package/src/scheduler/scheduler-runner.ts +6 -45
- package/src/schema.ts +2 -2
- package/src/services/jwt-service.ts +1 -12
- package/src/services/user-session-service.ts +8 -6
- package/src/types/core.types.ts +3 -6
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/channel/eventhub-forwarder.d.ts +0 -17
- package/dist/channel/eventhub-forwarder.js +0 -1
- package/dist/middleware/auth-api-key.d.ts +0 -9
- package/dist/middleware/auth-api-key.js +0 -23
- package/dist/middleware/auth-cookie-middleware.d.ts +0 -11
- package/dist/middleware/auth-cookie-middleware.js +0 -36
- package/dist/middleware/auth-jwt-middleware.d.ts +0 -10
- package/dist/middleware/auth-jwt-middleware.js +0 -32
- package/dist/middleware/auth-query-middleware.d.ts +0 -10
- package/dist/middleware/auth-query-middleware.js +0 -21
- package/src/channel/eventhub-forwarder.ts +0 -25
- package/src/middleware/auth-api-key.ts +0 -32
- package/src/middleware/auth-cookie-middleware.ts +0 -54
- package/src/middleware/auth-jwt-middleware.ts +0 -47
- 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
|
-
}
|