@pikku/core 0.7.8 → 0.8.1

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 (165) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/dist/errors/error-handler.d.ts +2 -0
  3. package/dist/errors/errors.js +2 -0
  4. package/dist/{channel → events/channel}/channel-handler.d.ts +1 -1
  5. package/dist/{channel → events/channel}/channel-handler.js +4 -2
  6. package/dist/{channel → events/channel}/channel-runner.d.ts +1 -1
  7. package/dist/{channel → events/channel}/channel-runner.js +4 -4
  8. package/dist/{channel → events/channel}/channel-store.d.ts +1 -1
  9. package/dist/{channel → events/channel}/channel.types.d.ts +3 -3
  10. package/dist/{channel → events/channel}/local/local-channel-runner.js +6 -6
  11. package/dist/{channel → events/channel}/log-channels.d.ts +1 -1
  12. package/dist/{channel → events/channel}/log-channels.js +1 -1
  13. package/dist/{channel → events/channel}/serverless/serverless-channel-runner.js +7 -7
  14. package/dist/{http → events/http}/http-runner.d.ts +1 -1
  15. package/dist/{http → events/http}/http-runner.js +8 -8
  16. package/dist/{http → events/http}/http.types.d.ts +3 -3
  17. package/dist/{http → events/http}/index.d.ts +0 -1
  18. package/dist/{http → events/http}/index.js +0 -1
  19. package/dist/{http → events/http}/log-http-routes.d.ts +1 -1
  20. package/dist/{http → events/http}/log-http-routes.js +1 -1
  21. package/dist/{http → events/http}/pikku-fetch-http-request.js +1 -1
  22. package/dist/events/mcp/index.d.ts +3 -0
  23. package/dist/events/mcp/index.js +3 -0
  24. package/dist/events/mcp/mcp-endpoint-registry.d.ts +48 -0
  25. package/dist/events/mcp/mcp-endpoint-registry.js +122 -0
  26. package/dist/events/mcp/mcp-runner.d.ts +30 -0
  27. package/dist/events/mcp/mcp-runner.js +192 -0
  28. package/dist/events/mcp/mcp.types.d.ts +117 -0
  29. package/dist/events/queue/index.d.ts +6 -0
  30. package/dist/events/queue/index.js +6 -0
  31. package/dist/events/queue/queue-runner.d.ts +24 -0
  32. package/dist/events/queue/queue-runner.js +83 -0
  33. package/dist/events/queue/queue.types.d.ts +154 -0
  34. package/dist/events/queue/register-queue-helper.d.ts +17 -0
  35. package/dist/events/queue/register-queue-helper.js +34 -0
  36. package/dist/events/queue/validate-worker-config.d.ts +41 -0
  37. package/dist/events/queue/validate-worker-config.js +50 -0
  38. package/dist/events/rpc/index.d.ts +2 -0
  39. package/dist/events/rpc/rpc-runner.d.ts +25 -0
  40. package/dist/{rpc → events/rpc}/rpc-runner.js +2 -2
  41. package/dist/events/scheduler/index.d.ts +3 -0
  42. package/dist/events/scheduler/index.js +3 -0
  43. package/dist/{scheduler → events/scheduler}/log-schedulers.d.ts +1 -1
  44. package/dist/{scheduler → events/scheduler}/log-schedulers.js +1 -1
  45. package/dist/{scheduler → events/scheduler}/scheduler-runner.d.ts +4 -3
  46. package/dist/{scheduler → events/scheduler}/scheduler-runner.js +7 -4
  47. package/dist/{scheduler → events/scheduler}/scheduler.types.d.ts +3 -4
  48. package/dist/function/function-runner.d.ts +3 -2
  49. package/dist/function/function-runner.js +16 -40
  50. package/dist/function/functions.types.d.ts +3 -2
  51. package/dist/handle-error.d.ts +2 -2
  52. package/dist/handle-error.js +1 -1
  53. package/dist/index.d.ts +15 -7
  54. package/dist/index.js +15 -7
  55. package/dist/middleware-runner.d.ts +4 -4
  56. package/dist/middleware-runner.js +3 -1
  57. package/dist/pikku-state.d.ts +18 -4
  58. package/dist/pikku-state.js +12 -0
  59. package/dist/services/index.d.ts +2 -2
  60. package/dist/services/index.js +2 -2
  61. package/dist/services/jwt-service.d.ts +1 -1
  62. package/dist/services/user-session-service.d.ts +1 -1
  63. package/dist/types/core.types.d.ts +17 -14
  64. package/dist/types/core.types.js +3 -1
  65. package/lcov.info +3947 -3184
  66. package/package.json +9 -7
  67. package/src/errors/error-handler.ts +2 -1
  68. package/src/errors/errors.ts +2 -0
  69. package/src/{channel → events/channel}/channel-handler.ts +7 -3
  70. package/src/{channel → events/channel}/channel-runner.ts +5 -5
  71. package/src/{channel → events/channel}/channel-store.ts +1 -1
  72. package/src/{channel → events/channel}/channel.types.ts +3 -3
  73. package/src/{channel → events/channel}/local/local-channel-runner.test.ts +1 -1
  74. package/src/{channel → events/channel}/local/local-channel-runner.ts +7 -7
  75. package/src/{channel → events/channel}/local/local-eventhub-service.test.ts +1 -1
  76. package/src/{channel → events/channel}/log-channels.ts +2 -2
  77. package/src/{channel → events/channel}/serverless/serverless-channel-runner.ts +8 -8
  78. package/src/{http → events/http}/http-runner.test.ts +6 -7
  79. package/src/{http → events/http}/http-runner.ts +9 -9
  80. package/src/{http → events/http}/http.types.ts +3 -3
  81. package/src/{http → events/http}/index.ts +0 -1
  82. package/src/{http → events/http}/log-http-routes.ts +2 -2
  83. package/src/{http → events/http}/pikku-fetch-http-request.ts +1 -1
  84. package/src/events/mcp/index.ts +3 -0
  85. package/src/events/mcp/mcp-endpoint-registry.test.d.ts +1 -0
  86. package/src/events/mcp/mcp-endpoint-registry.test.ts +389 -0
  87. package/src/events/mcp/mcp-endpoint-registry.ts +165 -0
  88. package/src/events/mcp/mcp-runner.ts +321 -0
  89. package/src/events/mcp/mcp.types.ts +150 -0
  90. package/src/events/queue/index.ts +18 -0
  91. package/src/events/queue/queue-runner.ts +125 -0
  92. package/src/events/queue/queue.types.ts +176 -0
  93. package/src/events/queue/register-queue-helper.ts +62 -0
  94. package/src/events/queue/validate-worker-config.ts +113 -0
  95. package/src/events/rpc/index.ts +2 -0
  96. package/src/{rpc → events/rpc}/rpc-runner.ts +3 -3
  97. package/src/events/scheduler/index.ts +9 -0
  98. package/src/{scheduler → events/scheduler}/log-schedulers.ts +2 -2
  99. package/src/{scheduler → events/scheduler}/scheduler-runner.ts +11 -10
  100. package/src/{scheduler → events/scheduler}/scheduler.types.ts +2 -4
  101. package/src/function/function-runner.ts +38 -65
  102. package/src/function/functions.types.ts +3 -1
  103. package/src/handle-error.ts +2 -2
  104. package/src/index.ts +28 -7
  105. package/src/middleware/auth-apikey.ts +1 -1
  106. package/src/middleware/auth-bearer.ts +1 -1
  107. package/src/middleware/auth-cookie.ts +1 -1
  108. package/src/middleware-runner.ts +14 -7
  109. package/src/pikku-state.ts +40 -4
  110. package/src/services/index.ts +2 -2
  111. package/src/services/jwt-service.ts +1 -1
  112. package/src/services/user-session-service.ts +1 -1
  113. package/src/types/core.types.ts +24 -13
  114. package/tsconfig.json +3 -2
  115. package/tsconfig.tsbuildinfo +1 -1
  116. package/dist/rpc/index.d.ts +0 -2
  117. package/dist/rpc/rpc-runner.d.ts +0 -27
  118. package/dist/scheduler/index.d.ts +0 -3
  119. package/dist/scheduler/index.js +0 -3
  120. package/src/http/incomingmessage-to-request-convertor.ts +0 -0
  121. package/src/rpc/index.ts +0 -2
  122. package/src/scheduler/index.ts +0 -5
  123. /package/dist/{channel → events/channel}/channel-store.js +0 -0
  124. /package/dist/{channel → events/channel}/channel.types.js +0 -0
  125. /package/dist/{channel → events/channel}/eventhub-service.d.ts +0 -0
  126. /package/dist/{channel → events/channel}/eventhub-service.js +0 -0
  127. /package/dist/{channel → events/channel}/eventhub-store.d.ts +0 -0
  128. /package/dist/{channel → events/channel}/eventhub-store.js +0 -0
  129. /package/dist/{channel → events/channel}/index.d.ts +0 -0
  130. /package/dist/{channel → events/channel}/index.js +0 -0
  131. /package/dist/{channel → events/channel}/local/index.d.ts +0 -0
  132. /package/dist/{channel → events/channel}/local/index.js +0 -0
  133. /package/dist/{channel → events/channel}/local/local-channel-handler.d.ts +0 -0
  134. /package/dist/{channel → events/channel}/local/local-channel-handler.js +0 -0
  135. /package/dist/{channel → events/channel}/local/local-channel-runner.d.ts +0 -0
  136. /package/dist/{channel → events/channel}/local/local-eventhub-service.d.ts +0 -0
  137. /package/dist/{channel → events/channel}/local/local-eventhub-service.js +0 -0
  138. /package/dist/{channel → events/channel}/pikku-abstract-channel-handler.d.ts +0 -0
  139. /package/dist/{channel → events/channel}/pikku-abstract-channel-handler.js +0 -0
  140. /package/dist/{channel → events/channel}/serverless/index.d.ts +0 -0
  141. /package/dist/{channel → events/channel}/serverless/index.js +0 -0
  142. /package/dist/{channel → events/channel}/serverless/serverless-channel-runner.d.ts +0 -0
  143. /package/dist/{http → events/http}/http.types.js +0 -0
  144. /package/dist/{http → events/http}/pikku-fetch-http-request.d.ts +0 -0
  145. /package/dist/{http → events/http}/pikku-fetch-http-response.d.ts +0 -0
  146. /package/dist/{http → events/http}/pikku-fetch-http-response.js +0 -0
  147. /package/dist/{http/incomingmessage-to-request-convertor.d.ts → events/mcp/mcp.types.js} +0 -0
  148. /package/dist/{http/incomingmessage-to-request-convertor.js → events/queue/queue.types.js} +0 -0
  149. /package/dist/{rpc → events/rpc}/index.js +0 -0
  150. /package/dist/{rpc → events/rpc}/rpc-types.d.ts +0 -0
  151. /package/dist/{rpc → events/rpc}/rpc-types.js +0 -0
  152. /package/dist/{scheduler → events/scheduler}/scheduler.types.js +0 -0
  153. /package/src/{channel → events/channel}/eventhub-service.ts +0 -0
  154. /package/src/{channel → events/channel}/eventhub-store.ts +0 -0
  155. /package/src/{channel → events/channel}/index.ts +0 -0
  156. /package/src/{channel → events/channel}/local/index.ts +0 -0
  157. /package/src/{channel → events/channel}/local/local-channel-handler.ts +0 -0
  158. /package/src/{channel → events/channel}/local/local-eventhub-service.ts +0 -0
  159. /package/src/{channel → events/channel}/pikku-abstract-channel-handler.test.ts +0 -0
  160. /package/src/{channel → events/channel}/pikku-abstract-channel-handler.ts +0 -0
  161. /package/src/{channel → events/channel}/serverless/index.ts +0 -0
  162. /package/src/{http → events/http}/pikku-fetch-http-request.test.ts +0 -0
  163. /package/src/{http → events/http}/pikku-fetch-http-response.test.ts +0 -0
  164. /package/src/{http → events/http}/pikku-fetch-http-response.ts +0 -0
  165. /package/src/{rpc → events/rpc}/rpc-types.ts +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pikku/core",
3
- "version": "0.7.8",
3
+ "version": "0.8.1",
4
4
  "author": "yasser.fadl@gmail.com",
5
5
  "license": "MIT",
6
6
  "module": "dist/index.js",
@@ -20,13 +20,15 @@
20
20
  ".": "./dist/index.js",
21
21
  "./middleware": "./dist/middleware/index.js",
22
22
  "./function": "./dist/function/index.js",
23
- "./channel": "./dist/channel/index.js",
24
- "./channel/local": "./dist/channel/local/index.js",
25
- "./channel/serverless": "./dist/channel/serverless/index.js",
26
- "./http": "./dist/http/index.js",
27
- "./rpc": "./dist/rpc/index.js",
23
+ "./channel": "./dist/events/channel/index.js",
24
+ "./channel/local": "./dist/events/channel/local/index.js",
25
+ "./channel/serverless": "./dist/events/channel/serverless/index.js",
26
+ "./http": "./dist/events/http/index.js",
27
+ "./queue": "./dist/events/queue/index.js",
28
+ "./scheduler": "./dist/events/scheduler/index.js",
29
+ "./rpc": "./dist/events/rpc/index.js",
30
+ "./mcp": "./dist/events/mcp/index.js",
28
31
  "./errors": "./dist/errors/index.js",
29
- "./scheduler": "./dist/scheduler/index.js",
30
32
  "./services": "./dist/services/index.js",
31
33
  "./schema": "./dist/schema.js",
32
34
  "./types": "./dist/types/index.d.ts"
@@ -21,6 +21,7 @@ export class PikkuError extends Error {
21
21
  export interface ErrorDetails {
22
22
  status: number
23
23
  message: string
24
+ mcpCode?: number
24
25
  }
25
26
 
26
27
  /**
@@ -51,7 +52,7 @@ export const addErrors = (
51
52
  */
52
53
  export const getErrorResponse = (
53
54
  error: Error
54
- ): { status: number; message: string } | undefined => {
55
+ ): { status: number; message: string; mcpCode?: number } | undefined => {
55
56
  const errors = Array.from(pikkuState('misc', 'errors').entries())
56
57
  const foundError = errors.find(([e]) => e.name === error.constructor.name)
57
58
  if (foundError) {
@@ -10,6 +10,7 @@ import { addError, PikkuError } from './error-handler.js'
10
10
  export class BadRequestError extends PikkuError {}
11
11
  addError(BadRequestError, {
12
12
  status: 400,
13
+ mcpCode: -32600,
13
14
  message:
14
15
  'The server cannot or will not process the request due to client error (e.g., malformed request syntax).',
15
16
  })
@@ -85,6 +86,7 @@ export class NotFoundError extends PikkuError {}
85
86
  */
86
87
  addError(NotFoundError, {
87
88
  status: 404,
89
+ mcpCode: -32601,
88
90
  message: 'The server cannot find the requested resource.',
89
91
  })
90
92
 
@@ -2,14 +2,14 @@ import {
2
2
  CoreServices,
3
3
  JSONValue,
4
4
  CoreUserSession,
5
- } from '../types/core.types.js'
5
+ } from '../../types/core.types.js'
6
6
  import {
7
7
  ChannelMessageMeta,
8
8
  CoreAPIChannel,
9
9
  PikkuChannelHandler,
10
10
  } from './channel.types.js'
11
- import { pikkuState } from '../pikku-state.js'
12
- import { runPikkuFunc } from '../function/function-runner.js'
11
+ import { pikkuState } from '../../pikku-state.js'
12
+ import { runPikkuFunc } from '../../function/function-runner.js'
13
13
 
14
14
  const getRouteMeta = (
15
15
  channelName: string,
@@ -95,6 +95,9 @@ export const processMessageHandlers = (
95
95
  const permissions =
96
96
  typeof onMessage === 'function' ? {} : onMessage.permissions
97
97
 
98
+ const middleware =
99
+ typeof onMessage === 'function' ? [] : onMessage.middleware
100
+
98
101
  return await runPikkuFunc(pikkuFuncName, {
99
102
  getAllServices: () => ({
100
103
  ...services,
@@ -103,6 +106,7 @@ export const processMessageHandlers = (
103
106
  data,
104
107
  session,
105
108
  permissions,
109
+ middleware,
106
110
  })
107
111
  }
108
112
 
@@ -1,8 +1,8 @@
1
- import { NotFoundError } from '../errors/errors.js'
2
- import { addFunction } from '../function/function-runner.js'
3
- import { pikkuState } from '../pikku-state.js'
4
- import { coerceTopLevelDataFromSchema, validateSchema } from '../schema.js'
5
- import { UserSessionService } from '../services/user-session-service.js'
1
+ import { NotFoundError } from '../../errors/errors.js'
2
+ import { addFunction } from '../../function/function-runner.js'
3
+ import { pikkuState } from '../../pikku-state.js'
4
+ import { coerceTopLevelDataFromSchema, validateSchema } from '../../schema.js'
5
+ import { UserSessionService } from '../../services/user-session-service.js'
6
6
  import {
7
7
  ChannelMeta,
8
8
  CoreAPIChannel,
@@ -1,4 +1,4 @@
1
- import { CoreUserSession } from '../types/core.types.js'
1
+ import { CoreUserSession } from '../../types/core.types.js'
2
2
 
3
3
  export type Channel<ChannelType = unknown, OpeningData = unknown> = {
4
4
  channelId: string
@@ -1,4 +1,4 @@
1
- import { PikkuError } from '../errors/error-handler.js'
1
+ import { PikkuError } from '../../errors/error-handler.js'
2
2
  import {
3
3
  HTTPFunctionMetaInputTypes,
4
4
  PikkuHTTPRequest,
@@ -9,12 +9,12 @@ import {
9
9
  CoreSingletonServices,
10
10
  CreateSessionServices,
11
11
  PikkuMiddleware,
12
- } from '../types/core.types.js'
12
+ } from '../../types/core.types.js'
13
13
  import {
14
14
  CoreAPIFunction,
15
15
  CoreAPIFunctionSessionless,
16
16
  CoreAPIPermission,
17
- } from '../function/functions.types.js'
17
+ } from '../../function/functions.types.js'
18
18
 
19
19
  export type RunChannelOptions = Partial<{
20
20
  skipUserSession: boolean
@@ -1,7 +1,7 @@
1
1
  import { test, beforeEach, afterEach } from 'node:test'
2
2
  import * as assert from 'node:assert/strict'
3
3
  import { runLocalChannel } from './local-channel-runner.js'
4
- import { pikkuState, resetPikkuState } from '../../pikku-state.js'
4
+ import { pikkuState, resetPikkuState } from '../../../pikku-state.js'
5
5
  import { addChannel } from '../channel-runner.js'
6
6
  import {
7
7
  HTTPMethod,
@@ -1,6 +1,6 @@
1
1
  import { openChannel } from '../channel-runner.js'
2
2
  import { createHTTPInteraction } from '../../http/http-runner.js'
3
- import { closeSessionServices } from '../../utils.js'
3
+ import { closeSessionServices } from '../../../utils.js'
4
4
  import { processMessageHandlers } from '../channel-handler.js'
5
5
  import {
6
6
  CoreAPIChannel,
@@ -8,12 +8,12 @@ import {
8
8
  RunChannelParams,
9
9
  } from '../channel.types.js'
10
10
  import { PikkuLocalChannelHandler } from './local-channel-handler.js'
11
- import { SessionServices } from '../../types/core.types.js'
12
- import { handleError } from '../../handle-error.js'
13
- import { runMiddleware } from '../../middleware-runner.js'
14
- import { PikkuUserSessionService } from '../../services/user-session-service.js'
11
+ import { SessionServices } from '../../../types/core.types.js'
12
+ import { handleHTTPError } from '../../../handle-error.js'
13
+ import { runMiddleware } from '../../../middleware-runner.js'
14
+ import { PikkuUserSessionService } from '../../../services/user-session-service.js'
15
15
  import { PikkuHTTP } from '../../http/http.types.js'
16
- import { runPikkuFuncDirectly } from '../../function/function-runner.js'
16
+ import { runPikkuFuncDirectly } from '../../../function/function-runner.js'
17
17
  import { rpcService } from '../../rpc/rpc-runner.js'
18
18
 
19
19
  export const runLocalChannel = async ({
@@ -110,7 +110,7 @@ export const runLocalChannel = async ({
110
110
  )
111
111
  )
112
112
  } catch (e: any) {
113
- handleError(
113
+ handleHTTPError(
114
114
  e,
115
115
  http,
116
116
  channelId,
@@ -1,7 +1,7 @@
1
1
  import * as assert from 'assert'
2
2
  import { test } from 'node:test'
3
3
  import { PikkuChannelHandler } from '../channel.types.js'
4
- import { CoreUserSession } from '../../types/core.types.js'
4
+ import { CoreUserSession } from '../../../types/core.types.js'
5
5
  import { LocalEventHubService } from './local-eventhub-service.js'
6
6
 
7
7
  class MockChannelHandler implements PikkuChannelHandler {
@@ -1,5 +1,5 @@
1
- import { pikkuState } from '../pikku-state.js'
2
- import { Logger } from '../services/index.js'
1
+ import { pikkuState } from '../../pikku-state.js'
2
+ import { Logger } from '../../services/index.js'
3
3
 
4
4
  /**
5
5
  * Logs all the loaded channels.
@@ -1,5 +1,5 @@
1
- import { SessionServices } from '../../types/core.types.js'
2
- import { closeSessionServices } from '../../utils.js'
1
+ import { SessionServices } from '../../../types/core.types.js'
2
+ import { closeSessionServices } from '../../../utils.js'
3
3
  import { processMessageHandlers } from '../channel-handler.js'
4
4
  import { openChannel } from '../channel-runner.js'
5
5
  import type {
@@ -10,13 +10,13 @@ import type {
10
10
  } from '../channel.types.js'
11
11
  import { createHTTPInteraction } from '../../http/http-runner.js'
12
12
  import { ChannelStore } from '../channel-store.js'
13
- import { handleError } from '../../handle-error.js'
14
- import { PikkuUserSessionService } from '../../services/user-session-service.js'
15
- import { runMiddleware } from '../../middleware-runner.js'
16
- import { pikkuState } from '../../pikku-state.js'
13
+ import { handleHTTPError } from '../../../handle-error.js'
14
+ import { PikkuUserSessionService } from '../../../services/user-session-service.js'
15
+ import { runMiddleware } from '../../../middleware-runner.js'
16
+ import { pikkuState } from '../../../pikku-state.js'
17
17
  import { PikkuFetchHTTPRequest } from '../../http/pikku-fetch-http-request.js'
18
18
  import { PikkuHTTP } from '../../http/http.types.js'
19
- import { runPikkuFuncDirectly } from '../../function/function-runner.js'
19
+ import { runPikkuFuncDirectly } from '../../../function/function-runner.js'
20
20
 
21
21
  export interface RunServerlessChannelParams<ChannelData>
22
22
  extends RunChannelParams<ChannelData> {
@@ -124,7 +124,7 @@ export const runChannelConnect = async ({
124
124
  }
125
125
  http?.response?.status(101)
126
126
  } catch (e: any) {
127
- handleError(
127
+ handleHTTPError(
128
128
  e,
129
129
  http,
130
130
  channelId,
@@ -1,14 +1,14 @@
1
1
  import { test, describe, beforeEach, afterEach } from 'node:test'
2
2
  import * as assert from 'assert'
3
- import { NotFoundError } from '../errors/errors.js'
4
- import { JSONValue, PikkuMiddleware } from '../types/core.types.js'
3
+ import { NotFoundError } from '../../errors/errors.js'
4
+ import { JSONValue, PikkuMiddleware } from '../../types/core.types.js'
5
5
  import { fetch, addHTTPRoute } from './http-runner.js'
6
- import { pikkuState, resetPikkuState } from '../pikku-state.js'
6
+ import { pikkuState, resetPikkuState } from '../../pikku-state.js'
7
7
  import {
8
8
  PikkuMockRequest,
9
9
  PikkuMockResponse,
10
10
  } from '../channel/local/local-channel-runner.test.js'
11
- import { addFunction } from '../function/function-runner.js'
11
+ import { addFunction } from '../../function/function-runner.js'
12
12
 
13
13
  const sessionMiddleware: PikkuMiddleware = async (services, _, next) => {
14
14
  services.userSession.set({ userId: 'test' } as any)
@@ -27,8 +27,6 @@ const setHTTPFunctionMap = (func: any) => {
27
27
  pikkuFuncName: 'pikku_func_name',
28
28
  route: 'test',
29
29
  method: 'get',
30
- input: null,
31
- output: null,
32
30
  },
33
31
  ])
34
32
  addFunction('pikku_func_name', { func })
@@ -56,7 +54,8 @@ describe('fetch', () => {
56
54
  response = new PikkuMockResponse()
57
55
 
58
56
  request.getData = async () => ({})
59
- request.getHeader = () => 'application/json'
57
+ request.getHeader = (name: string) =>
58
+ name === 'content-type' ? 'application/json' : undefined
60
59
  response.setStatus = (status: number) => {}
61
60
  response.setJson = (json: JSONValue) => {}
62
61
  })
@@ -12,25 +12,25 @@ import {
12
12
  CoreUserSession,
13
13
  PikkuMiddleware,
14
14
  SessionServices,
15
- } from '../types/core.types.js'
15
+ } from '../../types/core.types.js'
16
16
  import { match } from 'path-to-regexp'
17
- import { MissingSessionError, NotFoundError } from '../errors/errors.js'
17
+ import { MissingSessionError, NotFoundError } from '../../errors/errors.js'
18
18
  import {
19
19
  closeSessionServices,
20
20
  createWeakUID,
21
21
  isSerializable,
22
- } from '../utils.js'
22
+ } from '../../utils.js'
23
23
  import {
24
24
  PikkuUserSessionService,
25
25
  UserSessionService,
26
- } from '../services/user-session-service.js'
27
- import { runMiddleware } from '../middleware-runner.js'
28
- import { handleError } from '../handle-error.js'
29
- import { pikkuState } from '../pikku-state.js'
26
+ } from '../../services/user-session-service.js'
27
+ import { runMiddleware } from '../../middleware-runner.js'
28
+ import { handleHTTPError } from '../../handle-error.js'
29
+ import { pikkuState } from '../../pikku-state.js'
30
30
  import { PikkuFetchHTTPResponse } from './pikku-fetch-http-response.js'
31
31
  import { PikkuFetchHTTPRequest } from './pikku-fetch-http-request.js'
32
32
  import { PikkuChannel } from '../channel/channel.types.js'
33
- import { addFunction, runPikkuFunc } from '../function/function-runner.js'
33
+ import { addFunction, runPikkuFunc } from '../../function/function-runner.js'
34
34
  import { rpcService } from '../rpc/rpc-runner.js'
35
35
 
36
36
  /**
@@ -499,7 +499,7 @@ export const fetchData = async <In, Out>(
499
499
  return result
500
500
  } catch (e: any) {
501
501
  // Handle errors and, depending on configuration, bubble them up or respond with an error
502
- handleError(
502
+ handleHTTPError(
503
503
  e,
504
504
  http,
505
505
  requestId,
@@ -1,5 +1,5 @@
1
1
  import type { SerializeOptions } from 'cookie'
2
- import type { PikkuError } from '../errors/error-handler.js'
2
+ import type { PikkuError } from '../../errors/error-handler.js'
3
3
  import type {
4
4
  APIDocs,
5
5
  CoreServices,
@@ -7,13 +7,13 @@ import type {
7
7
  CoreUserSession,
8
8
  CreateSessionServices,
9
9
  PikkuMiddleware,
10
- } from '../types/core.types.js'
10
+ } from '../../types/core.types.js'
11
11
  import type {
12
12
  CoreAPIFunction,
13
13
  CoreAPIFunctionSessionless,
14
14
  CoreAPIPermission,
15
15
  CorePermissionGroup,
16
- } from '../function/functions.types.js'
16
+ } from '../../function/functions.types.js'
17
17
 
18
18
  type ExtractRouteParams<S extends string> =
19
19
  S extends `${string}:${infer Param}/${infer Rest}`
@@ -1,6 +1,5 @@
1
1
  export * from './pikku-fetch-http-request.js'
2
2
  export * from './pikku-fetch-http-response.js'
3
- export * from './incomingmessage-to-request-convertor.js'
4
3
  export * from './log-http-routes.js'
5
4
 
6
5
  export { fetch, fetchData, addHTTPRoute } from './http-runner.js'
@@ -1,5 +1,5 @@
1
- import { pikkuState } from '../pikku-state.js'
2
- import { Logger } from '../services/index.js'
1
+ import { pikkuState } from '../../pikku-state.js'
2
+ import { Logger } from '../../services/index.js'
3
3
 
4
4
  /**
5
5
  * Logs all the loaded routes.
@@ -1,7 +1,7 @@
1
1
  import { parse as parseQuery } from 'picoquery'
2
2
  import { parse as parseCookie } from 'cookie'
3
3
  import { HTTPMethod, PikkuHTTPRequest, PikkuQuery } from './http.types.js'
4
- import { UnprocessableContentError } from '../errors/errors.js'
4
+ import { UnprocessableContentError } from '../../errors/errors.js'
5
5
 
6
6
  /**
7
7
  * Abstract class representing a pikku request.
@@ -0,0 +1,3 @@
1
+ export * from './mcp.types.js'
2
+ export * from './mcp-runner.js'
3
+ export * from './mcp-endpoint-registry.js'
@@ -0,0 +1 @@
1
+ export {}