@pikku/cli 0.6.20 → 0.7.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 (100) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/bin/pikku-all.ts +41 -18
  3. package/bin/pikku-channels-map.ts +4 -4
  4. package/bin/pikku-channels.ts +17 -12
  5. package/bin/pikku-fetch.ts +3 -3
  6. package/bin/pikku-function-types.ts +4 -4
  7. package/bin/pikku-functions.ts +35 -0
  8. package/bin/{pikku-routes-map.ts → pikku-http-map.ts} +10 -10
  9. package/bin/{pikku-http.ts → pikku-http-routes.ts} +17 -10
  10. package/bin/pikku-nextjs.ts +9 -9
  11. package/bin/pikku-openapi.ts +10 -6
  12. package/bin/pikku-rpc.ts +22 -0
  13. package/bin/pikku-scheduler.ts +15 -13
  14. package/bin/pikku-schemas.ts +10 -6
  15. package/bin/pikku-websocket.ts +1 -1
  16. package/bin/pikku.ts +2 -2
  17. package/cli.schema.json +2 -2
  18. package/dist/bin/pikku-all.js +37 -16
  19. package/dist/bin/pikku-channels-map.js +4 -4
  20. package/dist/bin/pikku-channels.js +6 -10
  21. package/dist/bin/pikku-fetch.d.ts +1 -1
  22. package/dist/bin/pikku-fetch.js +3 -3
  23. package/dist/bin/pikku-function-types.js +4 -4
  24. package/dist/bin/pikku-functions.d.ts +3 -0
  25. package/dist/bin/pikku-functions.js +9 -0
  26. package/dist/bin/{pikku-routes-map.d.ts → pikku-http-map.d.ts} +1 -1
  27. package/dist/bin/{pikku-routes-map.js → pikku-http-map.js} +7 -7
  28. package/dist/bin/{pikku-http.js → pikku-http-routes.js} +6 -11
  29. package/dist/bin/pikku-nextjs.d.ts +1 -1
  30. package/dist/bin/pikku-nextjs.js +8 -8
  31. package/dist/bin/pikku-openapi.d.ts +1 -1
  32. package/dist/bin/pikku-openapi.js +6 -6
  33. package/dist/bin/pikku-rpc.d.ts +3 -0
  34. package/dist/bin/pikku-rpc.js +8 -0
  35. package/dist/bin/pikku-scheduler.js +7 -10
  36. package/dist/bin/pikku-schemas.d.ts +1 -1
  37. package/dist/bin/pikku-schemas.js +6 -6
  38. package/dist/bin/pikku-websocket.js +1 -1
  39. package/dist/bin/pikku.js +2 -2
  40. package/dist/src/inspector-glob.d.ts +1 -1
  41. package/dist/src/inspector-glob.js +2 -2
  42. package/dist/src/pikku-cli-config.d.ts +10 -4
  43. package/dist/src/pikku-cli-config.js +22 -4
  44. package/dist/src/{schema/schema-generator.d.ts → schema-generator.d.ts} +1 -1
  45. package/dist/src/{schema/schema-generator.js → schema-generator.js} +29 -8
  46. package/dist/src/{core/serialize-import-map.js → serialize-import-map.js} +2 -1
  47. package/dist/src/serialize-pikku-types.js +136 -0
  48. package/dist/src/{scheduler/serialize-schedulers.d.ts → serialize-scheduler-meta.d.ts} +0 -1
  49. package/dist/src/serialize-scheduler-meta.js +10 -0
  50. package/dist/src/{channels/serialize-typed-channel-map.js → serialize-typed-channel-map.js} +7 -4
  51. package/dist/src/{http/serialize-typed-route-map.js → serialize-typed-function-map.js} +2 -2
  52. package/dist/src/serialize-typed-http-map.d.ts +4 -0
  53. package/dist/src/serialize-typed-http-map.js +107 -0
  54. package/dist/src/utils.d.ts +1 -0
  55. package/dist/src/utils.js +17 -5
  56. package/dist/tsconfig.tsbuildinfo +1 -1
  57. package/package.json +3 -3
  58. package/src/inspector-glob.ts +2 -2
  59. package/src/pikku-cli-config.ts +44 -8
  60. package/src/{schema/schema-generator.ts → schema-generator.ts} +31 -9
  61. package/src/{core/serialize-import-map.ts → serialize-import-map.ts} +2 -1
  62. package/src/serialize-pikku-types.ts +143 -0
  63. package/src/serialize-scheduler-meta.ts +18 -0
  64. package/src/{channels/serialize-typed-channel-map.ts → serialize-typed-channel-map.ts} +8 -6
  65. package/src/{http/serialize-typed-route-map.ts → serialize-typed-function-map.ts} +3 -2
  66. package/src/serialize-typed-http-map.ts +151 -0
  67. package/src/utils.ts +29 -5
  68. package/dist/src/channels/serialize-channels.d.ts +0 -3
  69. package/dist/src/channels/serialize-channels.js +0 -19
  70. package/dist/src/core/serialize-pikku-types.js +0 -48
  71. package/dist/src/http/serialize-route-imports.d.ts +0 -1
  72. package/dist/src/http/serialize-route-imports.js +0 -13
  73. package/dist/src/http/serialize-route-meta.d.ts +0 -2
  74. package/dist/src/http/serialize-route-meta.js +0 -6
  75. package/dist/src/scheduler/serialize-schedulers.js +0 -22
  76. package/src/channels/serialize-channels.ts +0 -34
  77. package/src/core/serialize-pikku-types.ts +0 -55
  78. package/src/http/serialize-route-imports.ts +0 -24
  79. package/src/http/serialize-route-meta.ts +0 -10
  80. package/src/scheduler/serialize-schedulers.ts +0 -41
  81. /package/dist/bin/{pikku-http.d.ts → pikku-http-routes.d.ts} +0 -0
  82. /package/dist/src/{openapi/openapi-spec-generator.d.ts → openapi-spec-generator.d.ts} +0 -0
  83. /package/dist/src/{openapi/openapi-spec-generator.js → openapi-spec-generator.js} +0 -0
  84. /package/dist/src/{http/serialize-fetch-wrapper.d.ts → serialize-fetch-wrapper.d.ts} +0 -0
  85. /package/dist/src/{http/serialize-fetch-wrapper.js → serialize-fetch-wrapper.js} +0 -0
  86. /package/dist/src/{core/serialize-import-map.d.ts → serialize-import-map.d.ts} +0 -0
  87. /package/dist/src/{nextjs/serialize-nextjs-backend-wrapper.d.ts → serialize-nextjs-backend-wrapper.d.ts} +0 -0
  88. /package/dist/src/{nextjs/serialize-nextjs-backend-wrapper.js → serialize-nextjs-backend-wrapper.js} +0 -0
  89. /package/dist/src/{nextjs/serialize-nextjs-http-wrapper.d.ts → serialize-nextjs-http-wrapper.d.ts} +0 -0
  90. /package/dist/src/{nextjs/serialize-nextjs-http-wrapper.js → serialize-nextjs-http-wrapper.js} +0 -0
  91. /package/dist/src/{core/serialize-pikku-types.d.ts → serialize-pikku-types.d.ts} +0 -0
  92. /package/dist/src/{channels/serialize-typed-channel-map.d.ts → serialize-typed-channel-map.d.ts} +0 -0
  93. /package/dist/src/{http/serialize-typed-route-map.d.ts → serialize-typed-function-map.d.ts} +0 -0
  94. /package/dist/src/{channels/serialize-websocket-wrapper.d.ts → serialize-websocket-wrapper.d.ts} +0 -0
  95. /package/dist/src/{channels/serialize-websocket-wrapper.js → serialize-websocket-wrapper.js} +0 -0
  96. /package/src/{openapi/openapi-spec-generator.ts → openapi-spec-generator.ts} +0 -0
  97. /package/src/{http/serialize-fetch-wrapper.ts → serialize-fetch-wrapper.ts} +0 -0
  98. /package/src/{nextjs/serialize-nextjs-backend-wrapper.ts → serialize-nextjs-backend-wrapper.ts} +0 -0
  99. /package/src/{nextjs/serialize-nextjs-http-wrapper.ts → serialize-nextjs-http-wrapper.ts} +0 -0
  100. /package/src/{channels/serialize-websocket-wrapper.ts → serialize-websocket-wrapper.ts} +0 -0
@@ -1,55 +0,0 @@
1
- /**
2
- *
3
- */
4
- export const serializePikkuTypes = (
5
- userSessionTypeImport: string,
6
- userSessionTypeName: string,
7
- singletonServicesTypeImport: string,
8
- singletonServicesTypeName: string,
9
- sessionServicesTypeImport: string,
10
- servicesTypeName: string
11
- ) => {
12
- return `/**
13
- * This is used to provide the application types in the typescript project
14
- */
15
-
16
- import { CoreAPIFunction, CoreAPIFunctionSessionless, CoreAPIPermission, PikkuMiddleware, MakeRequired } from '@pikku/core'
17
- import { CoreHTTPFunctionRoute, AssertRouteParams, addRoute as addCoreHTTP } from '@pikku/core/http'
18
- import { CoreScheduledTask, addScheduledTask as addCoreScheduledTask } from '@pikku/core/scheduler'
19
- import { CoreAPIChannel, PikkuChannel, addChannel as addCoreChannel } from '@pikku/core/channel'
20
-
21
- ${userSessionTypeImport}
22
- ${singletonServicesTypeImport}
23
- ${sessionServicesTypeImport}
24
-
25
- export type APIPermission<In = unknown, RequiredServices extends ${singletonServicesTypeName} = ${singletonServicesTypeName}> = CoreAPIPermission<In, RequiredServices, ${userSessionTypeName}>
26
- export type APIMiddleware<RequiredServices extends ${singletonServicesTypeName} = ${singletonServicesTypeName}> = PikkuMiddleware<RequiredServices, ${userSessionTypeName}>
27
-
28
- export type APIFunctionSessionless<In = unknown, Out = never, RequiredServices extends ${servicesTypeName} = ${servicesTypeName}> = CoreAPIFunctionSessionless<In, Out, RequiredServices, ${userSessionTypeName}>
29
- export type APIFunction<In = unknown, Out = never, RequiredServices extends ${servicesTypeName} = ${servicesTypeName}> = CoreAPIFunction<In, Out, RequiredServices, ${userSessionTypeName}>
30
- type APIRoute<In, Out, Route extends string> = CoreHTTPFunctionRoute<In, Out, Route, APIFunction<In, Out>, APIFunctionSessionless<In, Out>, APIPermission<In>, APIMiddleware>
31
-
32
- export type ChannelConnection<Out = unknown, ChannelData = unknown, RequiredServices extends ${servicesTypeName} = ${servicesTypeName}> = (services: MakeRequired<RequiredServices, 'userSession'>, channel: PikkuChannel<ChannelData, Out>) => Promise<void>
33
- export type ChannelDisconnection<ChannelData = unknown, RequiredServices extends ${servicesTypeName} = ${servicesTypeName}> = (services: MakeRequired<RequiredServices, 'userSession'>, channel: PikkuChannel<ChannelData, never>) => Promise<void>
34
- export type ChannelMessage<In, Out = unknown, ChannelData = unknown, RequiredServices extends ${servicesTypeName} = ${servicesTypeName}> = (services: MakeRequired<RequiredServices, 'userSession'>, channel: PikkuChannel<ChannelData, Out>, data: In) => Promise<Out | void>
35
- type APIChannel<ChannelData, Channel extends string> = CoreAPIChannel<ChannelData, Channel, ChannelConnection, ChannelDisconnection, ChannelMessage<any, any, ChannelData>, ChannelMessage<any, any, ChannelData>, APIPermission>
36
-
37
- type ScheduledTask = CoreScheduledTask<APIFunctionSessionless<void, void>, ${userSessionTypeName}>
38
-
39
- export const addChannel = <ChannelData, Channel extends string>(
40
- channel: APIChannel<ChannelData, Channel> & AssertRouteParams<ChannelData, Channel>
41
- ) => {
42
- addCoreChannel(channel as any) // TODO
43
- }
44
-
45
- export const addRoute = <In, Out, Route extends string>(
46
- route: APIRoute<In, Out, Route> & AssertRouteParams<In, Route>
47
- ) => {
48
- addCoreHTTP(route)
49
- }
50
-
51
- export const addScheduledTask = (task: ScheduledTask) => {
52
- addCoreScheduledTask(task as any) // TODO
53
- }
54
- `
55
- }
@@ -1,24 +0,0 @@
1
- import { getFileImportRelativePath } from '../utils.js'
2
-
3
- export const serializeRoutes = (
4
- outputPath: string,
5
- filesWithRoutes: Set<string>,
6
- packageMappings: Record<string, string> = {}
7
- ) => {
8
- const serializedOutput: string[] = [
9
- '/* The files with an addRoute function call */',
10
- ]
11
-
12
- Array.from(filesWithRoutes)
13
- .sort()
14
- .forEach((path) => {
15
- const filePath = getFileImportRelativePath(
16
- outputPath,
17
- path,
18
- packageMappings
19
- )
20
- serializedOutput.push(`import '${filePath}'`)
21
- })
22
-
23
- return serializedOutput.join('\n')
24
- }
@@ -1,10 +0,0 @@
1
- import type { HTTPRoutesMeta } from '@pikku/core/http'
2
-
3
- export const serializeHTTPRoutesMeta = (routesMeta: HTTPRoutesMeta) => {
4
- const serializedOutput: string[] = []
5
- serializedOutput.push("import { pikkuState } from '@pikku/core'")
6
- serializedOutput.push(
7
- `pikkuState('http', 'meta', ${JSON.stringify(routesMeta, null, 2)})`
8
- )
9
- return serializedOutput.join('\n')
10
- }
@@ -1,41 +0,0 @@
1
- import { ScheduledTasksMeta } from '@pikku/core/scheduler'
2
- import { getFileImportRelativePath } from '../utils.js'
3
-
4
- export const serializeSchedulers = (
5
- outputPath: string,
6
- filesWithScheduledTasks: Set<string>,
7
- packageMappings: Record<string, string> = {}
8
- ) => {
9
- const serializedOutput: string[] = [
10
- '/* The files with an addSerializedTasks function call */',
11
- ]
12
-
13
- Array.from(filesWithScheduledTasks)
14
- .sort()
15
- .forEach((path) => {
16
- const filePath = getFileImportRelativePath(
17
- outputPath,
18
- path,
19
- packageMappings
20
- )
21
- serializedOutput.push(`import '${filePath}'`)
22
- })
23
-
24
- return serializedOutput.join('\n')
25
- }
26
-
27
- export const serializeSchedulerMeta = (
28
- scheduledTasksMeta: ScheduledTasksMeta
29
- ) => {
30
- const serializedOutput: string[] = []
31
- serializedOutput.push("import { pikkuState } from '@pikku/core'")
32
- serializedOutput.push(
33
- `pikkuState('scheduler', 'meta', ${JSON.stringify(scheduledTasksMeta, null, 2)})`
34
- )
35
- if (scheduledTasksMeta.length > 0) {
36
- serializedOutput.push(
37
- `export type ScheduledTaskNames = '${scheduledTasksMeta.map((s) => s.name).join("' | '")}'`
38
- )
39
- }
40
- return serializedOutput.join('\n')
41
- }