@pikku/cli 0.12.53 → 0.12.55

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 (215) hide show
  1. package/cli.schema.json +1 -1
  2. package/console-app/assets/{index-DYnbceYg.js → index-xN8LW0II.js} +155 -155
  3. package/console-app/index.html +1 -1
  4. package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +1 -1
  5. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +3 -3
  6. package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
  7. package/dist/.pikku/cli/pikku-cli-channel.d.ts +6 -6
  8. package/dist/.pikku/cli/pikku-cli-channel.js +6 -1
  9. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  10. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
  11. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.d.ts +1 -1
  12. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.js +1 -1
  13. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
  14. package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
  15. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
  16. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +23 -0
  17. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
  18. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
  19. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
  20. package/dist/.pikku/cli/pikku-cli.gen.js +1 -1
  21. package/dist/.pikku/console/pikku-node-types.gen.d.ts +1 -1
  22. package/dist/.pikku/function/pikku-function-types.gen.d.ts +2 -2
  23. package/dist/.pikku/function/pikku-function-types.gen.js +1 -1
  24. package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
  25. package/dist/.pikku/function/pikku-functions-meta.gen.json +1205 -1188
  26. package/dist/.pikku/function/pikku-functions.gen.js +1 -1
  27. package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
  28. package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
  29. package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +1 -1
  30. package/dist/.pikku/http/pikku-http-wirings.gen.d.ts +1 -1
  31. package/dist/.pikku/http/pikku-http-wirings.gen.js +1 -1
  32. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
  33. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
  34. package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -1
  35. package/dist/.pikku/pikku-bootstrap.gen.js +1 -1
  36. package/dist/.pikku/pikku-meta-service.gen.d.ts +1 -1
  37. package/dist/.pikku/pikku-meta-service.gen.js +1 -1
  38. package/dist/.pikku/pikku-services.gen.d.ts +1 -1
  39. package/dist/.pikku/pikku-types.gen.d.ts +1 -1
  40. package/dist/.pikku/pikku-types.gen.js +1 -1
  41. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
  42. package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
  43. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +1 -1
  44. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +4 -4
  45. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
  46. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
  47. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
  48. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +66 -65
  49. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
  50. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
  51. package/dist/.pikku/schemas/register.gen.js +187 -185
  52. package/dist/.pikku/schemas/schemas/DeployApplyInput.schema.json +1 -1
  53. package/dist/.pikku/schemas/schemas/DeployPlanInput.schema.json +1 -1
  54. package/dist/.pikku/schemas/schemas/PikkuAuthInput.schema.json +1 -0
  55. package/dist/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
  56. package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
  57. package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
  58. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
  59. package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
  60. package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
  61. package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
  62. package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
  63. package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
  64. package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
  65. package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
  66. package/dist/.pikku/workflow/meta/allWorkflow.gen.json +9 -3
  67. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +1 -1
  68. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
  69. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
  70. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
  71. package/dist/bin/pikku-bin.mjs +2 -2
  72. package/dist/src/cli.wiring.js +23 -1
  73. package/dist/src/deploy/provider-adapter.d.ts +11 -0
  74. package/dist/src/deploy/server-entry.js +3 -1
  75. package/dist/src/fabric/fabric-commands.d.ts +72 -72
  76. package/dist/src/fabric/functions/add.function.d.ts +3 -3
  77. package/dist/src/fabric/functions/db-schema.function.d.ts +3 -3
  78. package/dist/src/fabric/functions/deploy-list.function.d.ts +3 -3
  79. package/dist/src/fabric/functions/deploy-units.function.d.ts +3 -3
  80. package/dist/src/fabric/functions/deploy.function.d.ts +6 -6
  81. package/dist/src/fabric/functions/domains-add.function.d.ts +3 -3
  82. package/dist/src/fabric/functions/domains-list.function.d.ts +3 -3
  83. package/dist/src/fabric/functions/domains-remove.function.d.ts +3 -3
  84. package/dist/src/fabric/functions/errors.function.d.ts +3 -3
  85. package/dist/src/fabric/functions/init.function.d.ts +3 -3
  86. package/dist/src/fabric/functions/link.function.d.ts +3 -3
  87. package/dist/src/fabric/functions/llm-key.function.d.ts +3 -3
  88. package/dist/src/fabric/functions/login.function.d.ts +3 -3
  89. package/dist/src/fabric/functions/logs.function.d.ts +3 -3
  90. package/dist/src/fabric/functions/metrics.function.d.ts +3 -3
  91. package/dist/src/fabric/functions/publish.function.d.ts +3 -3
  92. package/dist/src/fabric/functions/rollback.function.d.ts +3 -3
  93. package/dist/src/fabric/functions/secrets-list.function.d.ts +3 -3
  94. package/dist/src/fabric/functions/secrets-set.function.d.ts +3 -3
  95. package/dist/src/fabric/functions/smoke.function.d.ts +3 -3
  96. package/dist/src/fabric/functions/status.function.d.ts +3 -3
  97. package/dist/src/fabric/functions/trace.function.d.ts +3 -3
  98. package/dist/src/fabric/functions/validate.function.d.ts +3 -3
  99. package/dist/src/functions/commands/all.d.ts +1 -1
  100. package/dist/src/functions/commands/all.js +19 -2
  101. package/dist/src/functions/commands/binary.d.ts +3 -3
  102. package/dist/src/functions/commands/bootstrap.d.ts +1 -1
  103. package/dist/src/functions/commands/bootstrap.js +3 -0
  104. package/dist/src/functions/commands/console.d.ts +3 -3
  105. package/dist/src/functions/commands/db-audit.d.ts +1 -1
  106. package/dist/src/functions/commands/db-generate.d.ts +1 -1
  107. package/dist/src/functions/commands/db-migrate.d.ts +1 -1
  108. package/dist/src/functions/commands/db-reset.d.ts +1 -1
  109. package/dist/src/functions/commands/db-seed.d.ts +1 -1
  110. package/dist/src/functions/commands/deploy-apply.d.ts +9 -4
  111. package/dist/src/functions/commands/deploy-apply.js +35 -4
  112. package/dist/src/functions/commands/deploy-info.d.ts +1 -1
  113. package/dist/src/functions/commands/deploy-plan.d.ts +6 -3
  114. package/dist/src/functions/commands/deploy-plan.js +3 -1
  115. package/dist/src/functions/commands/dev.d.ts +3 -3
  116. package/dist/src/functions/commands/dev.js +47 -13
  117. package/dist/src/functions/commands/emails-init.d.ts +1 -1
  118. package/dist/src/functions/commands/enable.d.ts +6 -5
  119. package/dist/src/functions/commands/enable.js +4 -0
  120. package/dist/src/functions/commands/info.d.ts +4 -4
  121. package/dist/src/functions/commands/login.d.ts +7 -7
  122. package/dist/src/functions/commands/meta.d.ts +31 -31
  123. package/dist/src/functions/commands/new-addon.d.ts +3 -3
  124. package/dist/src/functions/commands/new-function.d.ts +3 -3
  125. package/dist/src/functions/commands/new-middleware.d.ts +3 -3
  126. package/dist/src/functions/commands/new-permission.d.ts +3 -3
  127. package/dist/src/functions/commands/new-wiring.d.ts +3 -3
  128. package/dist/src/functions/commands/pikku-command-bootstrap.d.ts +1 -1
  129. package/dist/src/functions/commands/pikku-command-summary.d.ts +1 -1
  130. package/dist/src/functions/commands/pikku-command-summary.js +6 -1
  131. package/dist/src/functions/commands/skills.d.ts +6 -6
  132. package/dist/src/functions/commands/tests-coverage.d.ts +3 -3
  133. package/dist/src/functions/commands/tests-init.d.ts +3 -3
  134. package/dist/src/functions/commands/versions-check.d.ts +1 -1
  135. package/dist/src/functions/commands/versions-init.d.ts +3 -3
  136. package/dist/src/functions/commands/versions-update.d.ts +1 -1
  137. package/dist/src/functions/commands/watch.d.ts +3 -3
  138. package/dist/src/functions/commands/workspace-validate.d.ts +3 -3
  139. package/dist/src/functions/db/sqlite/sqlite-runtime-bun.js +11 -1
  140. package/dist/src/functions/runtimes/fetch/index.d.ts +1 -1
  141. package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.d.ts +1 -1
  142. package/dist/src/functions/runtimes/tanstack-start/pikku-command-tanstack-start.d.ts +1 -1
  143. package/dist/src/functions/runtimes/websocket/pikku-command-websocket-typed.d.ts +1 -1
  144. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.d.ts +1 -1
  145. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.d.ts +1 -1
  146. package/dist/src/functions/wirings/ai-agent/pikku-command-public-agent.d.ts +1 -1
  147. package/dist/src/functions/wirings/auth/pikku-command-auth.d.ts +7 -1
  148. package/dist/src/functions/wirings/auth/pikku-command-auth.js +14 -2
  149. package/dist/src/functions/wirings/auth/serialize-auth-types.d.ts +10 -0
  150. package/dist/src/functions/wirings/auth/serialize-auth-types.js +15 -0
  151. package/dist/src/functions/wirings/channels/pikku-channels.d.ts +1 -1
  152. package/dist/src/functions/wirings/channels/pikku-command-channel-types.d.ts +1 -1
  153. package/dist/src/functions/wirings/channels/pikku-command-channels-map.d.ts +1 -1
  154. package/dist/src/functions/wirings/channels/pikku-command-channels.d.ts +1 -1
  155. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.d.ts +1 -1
  156. package/dist/src/functions/wirings/cli/pikku-command-cli-types.d.ts +1 -1
  157. package/dist/src/functions/wirings/cli/pikku-command-cli.d.ts +1 -1
  158. package/dist/src/functions/wirings/console/pikku-command-console-functions.d.ts +1 -1
  159. package/dist/src/functions/wirings/console/pikku-command-node-types.d.ts +1 -1
  160. package/dist/src/functions/wirings/console/pikku-command-nodes-meta.d.ts +1 -1
  161. package/dist/src/functions/wirings/credentials/pikku-command-credentials.d.ts +1 -1
  162. package/dist/src/functions/wirings/emails/pikku-command-emails.d.ts +1 -1
  163. package/dist/src/functions/wirings/functions/pikku-command-addon-types.d.ts +1 -1
  164. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.d.ts +3 -3
  165. package/dist/src/functions/wirings/functions/pikku-command-function-types.d.ts +3 -3
  166. package/dist/src/functions/wirings/functions/pikku-command-function-types.js +10 -3
  167. package/dist/src/functions/wirings/functions/pikku-command-functions.d.ts +1 -1
  168. package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +1 -1
  169. package/dist/src/functions/wirings/functions/schemas.d.ts +1 -1
  170. package/dist/src/functions/wirings/gateway/pikku-command-gateway.d.ts +1 -1
  171. package/dist/src/functions/wirings/http/pikku-command-http-map.d.ts +1 -1
  172. package/dist/src/functions/wirings/http/pikku-command-http-routes.d.ts +1 -1
  173. package/dist/src/functions/wirings/http/pikku-command-http-types.d.ts +1 -1
  174. package/dist/src/functions/wirings/http/pikku-command-openapi.d.ts +1 -1
  175. package/dist/src/functions/wirings/http/pikku-http-routes.d.ts +1 -1
  176. package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.d.ts +1 -1
  177. package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.d.ts +1 -1
  178. package/dist/src/functions/wirings/mcp/pikku-command-mcp.d.ts +1 -1
  179. package/dist/src/functions/wirings/middleware/pikku-command-middleware.d.ts +1 -1
  180. package/dist/src/functions/wirings/package/pikku-command-package-types.d.ts +2 -2
  181. package/dist/src/functions/wirings/package/pikku-command-package.d.ts +1 -1
  182. package/dist/src/functions/wirings/permissions/pikku-command-permissions.d.ts +1 -1
  183. package/dist/src/functions/wirings/queue/pikku-command-queue-map.d.ts +1 -1
  184. package/dist/src/functions/wirings/queue/pikku-command-queue-service.d.ts +1 -1
  185. package/dist/src/functions/wirings/queue/pikku-command-queue-types.d.ts +1 -1
  186. package/dist/src/functions/wirings/queue/pikku-command-queue.d.ts +1 -1
  187. package/dist/src/functions/wirings/queue/pikku-queue-map.d.ts +1 -1
  188. package/dist/src/functions/wirings/queue/pikku-queue.d.ts +1 -1
  189. package/dist/src/functions/wirings/realtime/pikku-command-events-scaffold.d.ts +1 -1
  190. package/dist/src/functions/wirings/realtime/pikku-command-realtime.d.ts +1 -1
  191. package/dist/src/functions/wirings/rpc/pikku-command-public-rpc.d.ts +1 -1
  192. package/dist/src/functions/wirings/rpc/pikku-command-react-query.d.ts +1 -1
  193. package/dist/src/functions/wirings/rpc/pikku-command-remote-rpc.d.ts +1 -1
  194. package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.d.ts +1 -1
  195. package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.d.ts +2 -2
  196. package/dist/src/functions/wirings/rpc/pikku-command-rpc.d.ts +1 -1
  197. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.d.ts +1 -1
  198. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.d.ts +1 -1
  199. package/dist/src/functions/wirings/secrets/pikku-command-secrets.d.ts +1 -1
  200. package/dist/src/functions/wirings/triggers/pikku-command-trigger-types.d.ts +3 -3
  201. package/dist/src/functions/wirings/triggers/pikku-command-trigger.d.ts +1 -1
  202. package/dist/src/functions/wirings/variables/pikku-command-variables.d.ts +1 -1
  203. package/dist/src/functions/wirings/workflow/pikku-command-workflow-routes.d.ts +1 -1
  204. package/dist/src/functions/wirings/workflow/pikku-command-workflow.d.ts +1 -1
  205. package/dist/src/functions/workflows/all.workflow.js +6 -1
  206. package/dist/src/scaffold/rpc-remote.gen.d.ts +3 -3
  207. package/dist/src/scaffold/rpc-remote.gen.js +1 -1
  208. package/dist/src/services/cli-logger.service.js +7 -1
  209. package/dist/src/services.js +8 -0
  210. package/dist/src/utils/detect-better-auth.d.ts +7 -0
  211. package/dist/src/utils/detect-better-auth.js +29 -0
  212. package/dist/src/utils/pikku-cli-config.js +1 -1
  213. package/dist/src/utils/serialize-schemas.js +5 -1
  214. package/dist/tsconfig.tsbuildinfo +1 -1
  215. package/package.json +5 -4
@@ -1,10 +1,10 @@
1
1
  export declare const pikkuNewWiring: import("#pikku").PikkuFunctionConfig<{
2
2
  name: string;
3
3
  type?: string;
4
- }, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<{
4
+ }, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
5
5
  name: string;
6
6
  type?: string;
7
- }, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<{
7
+ }, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
8
8
  name: string;
9
9
  type?: string;
10
- }, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
10
+ }, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1,4 +1,4 @@
1
1
  export type BootstrapInput = {
2
2
  allImports: string[];
3
3
  };
4
- export declare const pikkuBootstrap: import("#pikku").PikkuFunctionConfig<BootstrapInput, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<BootstrapInput, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<BootstrapInput, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
4
+ export declare const pikkuBootstrap: import("#pikku").PikkuFunctionConfig<BootstrapInput, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<BootstrapInput, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<BootstrapInput, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuSummary: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuSummary: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1,5 +1,10 @@
1
1
  import { pikkuSessionlessFunc } from '#pikku';
2
+ import { PikkuError } from '@pikku/core';
2
3
  import { CommandSummary } from '../../utils/command-summary.js';
4
+ // A blocking-diagnostics failure is expected (the gate did its job) — throw a
5
+ // PikkuError so the workflow runner logs the message alone, not a stack trace.
6
+ class PikkuInspectionFailedError extends PikkuError {
7
+ }
3
8
  export const pikkuSummary = pikkuSessionlessFunc({
4
9
  func: async ({ logger, getInspectorState }) => {
5
10
  const summary = new CommandSummary('all');
@@ -56,7 +61,7 @@ export const pikkuSummary = pikkuSessionlessFunc({
56
61
  }
57
62
  if (logger.hasBlockingDiagnostics()) {
58
63
  const severities = logger.blockingSeverities().join(', ');
59
- throw new Error(`Pikku inspection failed due to ${severities} diagnostics`);
64
+ throw new PikkuInspectionFailedError(`Pikku inspection failed due to ${severities} diagnostics`);
60
65
  }
61
66
  },
62
67
  });
@@ -1,26 +1,26 @@
1
1
  export declare const pikkuSkillsList: import("#pikku").PikkuFunctionConfig<{
2
2
  target?: string;
3
- }, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<{
3
+ }, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
4
4
  target?: string;
5
- }, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<{
5
+ }, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
6
6
  target?: string;
7
- }, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
7
+ }, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
8
8
  export declare const pikkuSkillsInstall: import("#pikku").PikkuFunctionConfig<{
9
9
  agent?: string;
10
10
  only?: string;
11
11
  core?: boolean;
12
12
  fabric?: boolean;
13
13
  update?: boolean;
14
- }, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<{
14
+ }, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
15
15
  agent?: string;
16
16
  only?: string;
17
17
  core?: boolean;
18
18
  fabric?: boolean;
19
19
  update?: boolean;
20
- }, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<{
20
+ }, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
21
21
  agent?: string;
22
22
  only?: string;
23
23
  core?: boolean;
24
24
  fabric?: boolean;
25
25
  update?: boolean;
26
- }, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
26
+ }, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1,10 +1,10 @@
1
1
  export declare const pikkuTestsCoverage: import("#pikku").PikkuFunctionConfig<{
2
2
  noRun?: boolean;
3
3
  aiOut?: string;
4
- }, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<{
4
+ }, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
5
5
  noRun?: boolean;
6
6
  aiOut?: string;
7
- }, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<{
7
+ }, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
8
8
  noRun?: boolean;
9
9
  aiOut?: string;
10
- }, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
10
+ }, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1,7 +1,7 @@
1
1
  export declare const pikkuTestsInit: import("#pikku").PikkuFunctionConfig<{
2
2
  force?: boolean;
3
- }, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<{
3
+ }, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
4
4
  force?: boolean;
5
- }, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<{
5
+ }, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
6
6
  force?: boolean;
7
- }, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
7
+ }, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuVersionsCheck: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuVersionsCheck: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1,7 +1,7 @@
1
1
  export declare const pikkuVersionsInit: import("#pikku").PikkuFunctionConfig<{
2
2
  force?: boolean;
3
- }, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<{
3
+ }, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
4
4
  force?: boolean;
5
- }, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<{
5
+ }, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
6
6
  force?: boolean;
7
- }, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
7
+ }, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuVersionsUpdate: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuVersionsUpdate: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1,7 +1,7 @@
1
1
  export declare const watch: import("#pikku").PikkuFunctionConfig<{
2
2
  hmr?: boolean;
3
- }, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<{
3
+ }, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
4
4
  hmr?: boolean;
5
- }, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<{
5
+ }, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
6
6
  hmr?: boolean;
7
- }, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
7
+ }, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -9,7 +9,7 @@ export declare const workspaceValidate: import("#pikku").PikkuFunctionConfig<Rec
9
9
  path: string;
10
10
  fixHint: string;
11
11
  }[];
12
- }, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<Record<string, never>, {
12
+ }, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<Record<string, never>, {
13
13
  ok: boolean;
14
14
  root: string;
15
15
  findings: {
@@ -19,7 +19,7 @@ export declare const workspaceValidate: import("#pikku").PikkuFunctionConfig<Rec
19
19
  path: string;
20
20
  fixHint: string;
21
21
  }[];
22
- }, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<Record<string, never>, {
22
+ }, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<Record<string, never>, {
23
23
  ok: boolean;
24
24
  root: string;
25
25
  findings: {
@@ -29,5 +29,5 @@ export declare const workspaceValidate: import("#pikku").PikkuFunctionConfig<Rec
29
29
  path: string;
30
30
  fixHint: string;
31
31
  }[];
32
- }, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
32
+ }, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
33
33
  export { renderWorkspaceValidate };
@@ -10,7 +10,7 @@ class BunSqliteStatement {
10
10
  return this.stmt.all(...parameters);
11
11
  }
12
12
  get(...parameters) {
13
- return this.stmt.get(...parameters) ?? null;
13
+ return (this.stmt.get(...parameters) ?? null);
14
14
  }
15
15
  iterate(...parameters) {
16
16
  return this.stmt.iterate(...parameters);
@@ -29,6 +29,16 @@ class BunSqliteDatabase {
29
29
  this.db = db;
30
30
  }
31
31
  exec(sql) {
32
+ // bun:sqlite throws "no valid SQL statement" on comment-only/empty input
33
+ // (e.g. a placeholder seed.sql); node:sqlite silently no-ops. Match node's
34
+ // tolerance by skipping when nothing executable remains after stripping
35
+ // comments. The original `sql` is still exec'd verbatim when non-empty.
36
+ const executable = sql
37
+ .replace(/--[^\n]*/g, '')
38
+ .replace(/\/\*[\s\S]*?\*\//g, '')
39
+ .trim();
40
+ if (executable.length === 0)
41
+ return;
32
42
  this.db.exec(sql);
33
43
  }
34
44
  prepare(sql) {
@@ -1 +1 @@
1
- export declare const pikkuFetch: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuFetch: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuNext: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuNext: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuTanStackStart: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuTanStackStart: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuWebSocketTyped: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuWebSocketTyped: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuAIAgentTypes: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuAIAgentTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuAIAgent: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuAIAgent: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuPublicAgent: import("#pikku").PikkuFunctionConfig<void, boolean, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuPublicAgent: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1,7 @@
1
- export declare const pikkuAuth: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuAuth: import("#pikku").PikkuFunctionConfig<{
2
+ bootstrap?: boolean;
3
+ }, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
4
+ bootstrap?: boolean;
5
+ }, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
6
+ bootstrap?: boolean;
7
+ }, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -5,13 +5,25 @@ import { pikkuSessionlessFunc } from '#pikku';
5
5
  import { writeFileInDir } from '../../../utils/file-writer.js';
6
6
  import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
7
7
  import { serializeAuthGen } from './serialize-auth-gen.js';
8
- import { serializeAuthTypes } from './serialize-auth-types.js';
8
+ import { serializeAuthTypes, serializeAuthTypesBootstrap, } from './serialize-auth-types.js';
9
9
  import { serializeAuthMeta } from './serialize-auth-meta.js';
10
+ import { projectDeclaresBetterAuth } from '../../../utils/detect-better-auth.js';
10
11
  export const pikkuAuth = pikkuSessionlessFunc({
11
- func: async ({ logger, config, getInspectorState }) => {
12
+ func: async ({ logger, config, getInspectorState }, data) => {
12
13
  const { authFile, authTypesFile, authMetaJsonFile, functionTypesFile, typesDeclarationFile, secretsFile: secretsServiceFile, variablesFile, packageMappings, } = config;
13
14
  if (!authFile)
14
15
  return;
16
+ // Bootstrap pass: the inspector hasn't run, so the typed wrapper can't be
17
+ // built. If the project uses better-auth, pre-write a stub auth.types.ts so
18
+ // the `pikkuBetterAuth` re-export resolves during the first full inspect /
19
+ // a standalone `pikku db generate`. The typed wrapper replaces it later.
20
+ if (data?.bootstrap) {
21
+ if (authTypesFile &&
22
+ (await projectDeclaresBetterAuth(config.rootDir, config.srcDirectories, config.ignoreFiles))) {
23
+ await writeFileInDir(logger, authTypesFile, serializeAuthTypesBootstrap());
24
+ }
25
+ return;
26
+ }
15
27
  const state = await getInspectorState();
16
28
  // Only generate when the project declares auth via `pikkuBetterAuth`. Gating on
17
29
  // the definition (not provider count) means credentials-only auth — which
@@ -24,4 +24,14 @@
24
24
  * The file is re-exported from `.pikku/pikku-types.gen.ts` (the `#pikku` hub)
25
25
  * so the single import resolves correctly.
26
26
  */
27
+ /**
28
+ * A minimal `auth.types.ts` written during bootstrap (before the inspector has
29
+ * run, so the typed wrapper above can't be built yet). It re-exports the raw
30
+ * `pikkuBetterAuth` so `import { pikkuBetterAuth } from '#pikku'` resolves while
31
+ * codegen is still in its bootstrap state — otherwise the first full inspect (or
32
+ * a standalone `pikku db generate`) crashes importing the user's auth file with
33
+ * "does not provide an export named 'pikkuBetterAuth'". The typed wrapper from
34
+ * `serializeAuthTypes` overwrites this on the post-inspect pass.
35
+ */
36
+ export declare const serializeAuthTypesBootstrap: () => string;
27
37
  export declare const serializeAuthTypes: (authTypesFile: string, functionTypesFile: string, secretsFile: string, variablesFile: string, packageMappings: Record<string, string>) => string;
@@ -25,6 +25,21 @@ import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
25
25
  * The file is re-exported from `.pikku/pikku-types.gen.ts` (the `#pikku` hub)
26
26
  * so the single import resolves correctly.
27
27
  */
28
+ /**
29
+ * A minimal `auth.types.ts` written during bootstrap (before the inspector has
30
+ * run, so the typed wrapper above can't be built yet). It re-exports the raw
31
+ * `pikkuBetterAuth` so `import { pikkuBetterAuth } from '#pikku'` resolves while
32
+ * codegen is still in its bootstrap state — otherwise the first full inspect (or
33
+ * a standalone `pikku db generate`) crashes importing the user's auth file with
34
+ * "does not provide an export named 'pikkuBetterAuth'". The typed wrapper from
35
+ * `serializeAuthTypes` overwrites this on the post-inspect pass.
36
+ */
37
+ export const serializeAuthTypesBootstrap = () => [
38
+ '// AUTO-GENERATED by pikku CLI (bootstrap stub) — replaced by the typed wrapper after inspection',
39
+ '',
40
+ `export { pikkuBetterAuth } from '@pikku/better-auth'`,
41
+ '',
42
+ ].join('\n');
28
43
  export const serializeAuthTypes = (authTypesFile, functionTypesFile, secretsFile, variablesFile, packageMappings) => {
29
44
  const functionTypesImport = getFileImportRelativePath(authTypesFile, functionTypesFile, packageMappings);
30
45
  const secretsImport = getFileImportRelativePath(authTypesFile, secretsFile, packageMappings);
@@ -1 +1 @@
1
- export declare const pikkuChannels: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuChannels: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuChannelTypes: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuChannelTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuChannelsMap: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuChannelsMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuCommandChannels: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuCommandChannels: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuCLIEntry: import("#pikku").PikkuFunctionConfig<void, boolean, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuCLIEntry: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1,5 +1,5 @@
1
1
  type CLITypesCommandInput = {
2
2
  bootstrap?: boolean;
3
3
  };
4
- export declare const pikkuCLITypes: import("#pikku").PikkuFunctionConfig<CLITypesCommandInput, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<CLITypesCommandInput, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<CLITypesCommandInput, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
4
+ export declare const pikkuCLITypes: import("#pikku").PikkuFunctionConfig<CLITypesCommandInput, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<CLITypesCommandInput, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<CLITypesCommandInput, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
5
5
  export {};
@@ -1 +1 @@
1
- export declare const pikkuCLI: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuCLI: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuConsoleFunctions: import("#pikku").PikkuFunctionConfig<void, boolean, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuConsoleFunctions: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuNodeTypes: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuNodeTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuNodesMeta: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuNodesMeta: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuCredentials: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuCredentials: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1,6 +1,6 @@
1
1
  import type { PikkuCLIConfig } from '../../../../types/config.js';
2
2
  import type { CLILogger } from '../../../services/cli-logger.service.js';
3
- export declare const pikkuEmails: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
3
+ export declare const pikkuEmails: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
4
4
  export declare function generateEmailsArtifacts(logger: CLILogger, config: Pick<PikkuCLIConfig, 'outDir'> & {
5
5
  emailTemplatesDir?: string;
6
6
  }): Promise<true | undefined>;
@@ -1,5 +1,5 @@
1
1
  type AddonTypesCommandInput = {
2
2
  bootstrap?: boolean;
3
3
  };
4
- export declare const pikkuAddonTypes: import("#pikku").PikkuFunctionConfig<AddonTypesCommandInput, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<AddonTypesCommandInput, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<AddonTypesCommandInput, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
4
+ export declare const pikkuAddonTypes: import("#pikku").PikkuFunctionConfig<AddonTypesCommandInput, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<AddonTypesCommandInput, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<AddonTypesCommandInput, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
5
5
  export {};
@@ -1,7 +1,7 @@
1
1
  export declare const pikkuFunctionTypesSplit: import("#pikku").PikkuFunctionConfig<{
2
2
  bootstrap?: boolean;
3
- }, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<{
3
+ }, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
4
4
  bootstrap?: boolean;
5
- }, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<{
5
+ }, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
6
6
  bootstrap?: boolean;
7
- }, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
7
+ }, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1,7 +1,7 @@
1
1
  export declare const pikkuFunctionTypes: import("#pikku").PikkuFunctionConfig<{
2
2
  bootstrap?: boolean;
3
- }, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<{
3
+ }, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
4
4
  bootstrap?: boolean;
5
- }, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<{
5
+ }, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
6
6
  bootstrap?: boolean;
7
- }, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
7
+ }, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -3,6 +3,7 @@ import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
3
3
  import { writeFileInDir } from '../../../utils/file-writer.js';
4
4
  import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
5
5
  import { serializePikkuTypesHub } from './serialize-pikku-types-hub.js';
6
+ import { projectDeclaresBetterAuth } from '../../../utils/detect-better-auth.js';
6
7
  export const pikkuFunctionTypes = pikkuSessionlessFunc({
7
8
  func: async ({ logger, config, getInspectorState }, data) => {
8
9
  const { typesDeclarationFile: typesFile, packageMappings, functionTypesFile, httpTypesFile, channelsTypesFile, triggersTypesFile, schedulersTypesFile, queueTypesFile, mcpTypesFile, cliTypesFile, nodeTypesFile, secretTypesFile, addonTypesFile, authTypesFile, } = config;
@@ -18,10 +19,16 @@ export const pikkuFunctionTypes = pikkuSessionlessFunc({
18
19
  // Skip inspector state entirely during cold bootstrap: .pikku doesn't exist
19
20
  // yet, so a full inspect would runtime-import user files that themselves
20
21
  // import `.pikku/pikku-types.gen.js` — deadlocking before this step can
21
- // write that very file. The auth re-export is added on the later
22
- // post-inspect pass (where .pikku already exists) instead.
22
+ // write that very file. During bootstrap we instead detect auth with a
23
+ // cheap AST-free source scan (the `pikkuAuth` bootstrap pass writes a stub
24
+ // auth.types.ts off the same signal), so the hub re-exports it from the
25
+ // start — otherwise the first full inspect / `pikku db generate` crashes
26
+ // importing the user's auth file before the post-inspect pass can add it.
23
27
  const state = data?.bootstrap ? null : await getInspectorState();
24
- const authTypesImportPath = authTypesFile && state?.auth.definition
28
+ const hasAuth = data?.bootstrap
29
+ ? await projectDeclaresBetterAuth(config.rootDir, config.srcDirectories, config.ignoreFiles)
30
+ : !!state?.auth.definition;
31
+ const authTypesImportPath = authTypesFile && hasAuth
25
32
  ? getFileImportRelativePath(typesFile, authTypesFile, packageMappings)
26
33
  : null;
27
34
  const content = serializePikkuTypesHub(getFileImportRelativePath(typesFile, functionTypesFile, packageMappings), getImportPath(httpTypesFile), getImportPath(channelsTypesFile), getAlwaysImportPath(triggersTypesFile), getImportPath(schedulersTypesFile), getImportPath(queueTypesFile), getImportPath(mcpTypesFile), getImportPath(cliTypesFile), getAlwaysImportPath(nodeTypesFile), getAlwaysImportPath(secretTypesFile), config.addon ? getAlwaysImportPath(addonTypesFile) : null, authTypesImportPath);
@@ -1 +1 @@
1
- export declare const pikkuFunctions: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuFunctions: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1,2 +1,2 @@
1
1
  export declare const serializeServicesMap: (allSingletonServices: string[], allWireServices: string[], requiredServices: Set<string>, forceRequiredServices: string[] | undefined, servicesImport: string, wireServicesImport: string, addonRequiredParentServices?: string[], authInjected?: boolean) => string;
2
- export declare const pikkuServices: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
2
+ export declare const pikkuServices: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuSchemas: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuSchemas: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuGateway: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuGateway: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuHTTPMap: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuHTTPMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuCommandHTTP: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuCommandHTTP: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuHTTPTypes: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuHTTPTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuOpenAPI: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuOpenAPI: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuHTTP: import("#pikku").PikkuFunctionConfig<void, boolean, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuHTTP: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuMCPJSON: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuMCPJSON: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuMCPTypes: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuMCPTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuMCP: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuMCP: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuMiddleware: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuMiddleware: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1,2 +1,2 @@
1
- export declare const pikkuSecretDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
2
- export declare const pikkuVariableDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuSecretDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
2
+ export declare const pikkuVariableDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuPackage: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuPackage: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuPermissions: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuPermissions: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuCommandQueueMap: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuCommandQueueMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;