@kelpie/server 0.4.0 → 0.5.0

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 (182) hide show
  1. package/dist/app.d.ts.map +1 -1
  2. package/dist/app.js +14 -0
  3. package/dist/app.js.map +1 -1
  4. package/dist/index.d.ts +2 -1
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +1 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/lib/appUrl.d.ts +27 -0
  9. package/dist/lib/appUrl.d.ts.map +1 -0
  10. package/dist/lib/appUrl.js +53 -0
  11. package/dist/lib/appUrl.js.map +1 -0
  12. package/dist/lib/clientIp.d.ts +24 -0
  13. package/dist/lib/clientIp.d.ts.map +1 -0
  14. package/dist/lib/clientIp.js +34 -0
  15. package/dist/lib/clientIp.js.map +1 -0
  16. package/dist/lib/config.d.ts +11 -0
  17. package/dist/lib/config.d.ts.map +1 -1
  18. package/dist/lib/config.js +23 -12
  19. package/dist/lib/config.js.map +1 -1
  20. package/dist/lib/egress.d.ts +44 -0
  21. package/dist/lib/egress.d.ts.map +1 -0
  22. package/dist/lib/egress.js +111 -0
  23. package/dist/lib/egress.js.map +1 -0
  24. package/dist/lib/email.d.ts +53 -9
  25. package/dist/lib/email.d.ts.map +1 -1
  26. package/dist/lib/email.js +49 -4
  27. package/dist/lib/email.js.map +1 -1
  28. package/dist/lib/ids.d.ts +2 -0
  29. package/dist/lib/ids.d.ts.map +1 -1
  30. package/dist/lib/ids.js +2 -0
  31. package/dist/lib/ids.js.map +1 -1
  32. package/dist/lib/rateLimit.d.ts +12 -4
  33. package/dist/lib/rateLimit.d.ts.map +1 -1
  34. package/dist/lib/rateLimit.js +6 -0
  35. package/dist/lib/rateLimit.js.map +1 -1
  36. package/dist/modules/agent-tasks/dispatch.d.ts +4 -2
  37. package/dist/modules/agent-tasks/dispatch.d.ts.map +1 -1
  38. package/dist/modules/agent-tasks/dispatch.js +4 -2
  39. package/dist/modules/agent-tasks/dispatch.js.map +1 -1
  40. package/dist/modules/agent-tasks/index.d.ts.map +1 -1
  41. package/dist/modules/agent-tasks/index.js +3 -1
  42. package/dist/modules/agent-tasks/index.js.map +1 -1
  43. package/dist/modules/auth/index.d.ts.map +1 -1
  44. package/dist/modules/auth/index.js +10 -3
  45. package/dist/modules/auth/index.js.map +1 -1
  46. package/dist/modules/auth/repository.d.ts +13 -1
  47. package/dist/modules/auth/repository.d.ts.map +1 -1
  48. package/dist/modules/auth/repository.js +32 -1
  49. package/dist/modules/auth/repository.js.map +1 -1
  50. package/dist/modules/auth/routes.d.ts.map +1 -1
  51. package/dist/modules/auth/routes.js +29 -6
  52. package/dist/modules/auth/routes.js.map +1 -1
  53. package/dist/modules/auth/schema.d.ts +130 -0
  54. package/dist/modules/auth/schema.d.ts.map +1 -1
  55. package/dist/modules/auth/schema.js +16 -0
  56. package/dist/modules/auth/schema.js.map +1 -1
  57. package/dist/modules/auth/service.d.ts +7 -1
  58. package/dist/modules/auth/service.d.ts.map +1 -1
  59. package/dist/modules/auth/service.js +53 -4
  60. package/dist/modules/auth/service.js.map +1 -1
  61. package/dist/modules/deals/repository.d.ts.map +1 -1
  62. package/dist/modules/deals/repository.js +1 -0
  63. package/dist/modules/deals/repository.js.map +1 -1
  64. package/dist/modules/decisions/repository.d.ts.map +1 -1
  65. package/dist/modules/decisions/repository.js +8 -7
  66. package/dist/modules/decisions/repository.js.map +1 -1
  67. package/dist/modules/forms/index.d.ts.map +1 -1
  68. package/dist/modules/forms/index.js +6 -1
  69. package/dist/modules/forms/index.js.map +1 -1
  70. package/dist/modules/forms/publicRoutes.d.ts +3 -0
  71. package/dist/modules/forms/publicRoutes.d.ts.map +1 -1
  72. package/dist/modules/forms/publicRoutes.js +10 -4
  73. package/dist/modules/forms/publicRoutes.js.map +1 -1
  74. package/dist/modules/forms/submission.d.ts +3 -0
  75. package/dist/modules/forms/submission.d.ts.map +1 -1
  76. package/dist/modules/forms/submission.js +6 -0
  77. package/dist/modules/forms/submission.js.map +1 -1
  78. package/dist/modules/opportunities/repository.d.ts.map +1 -1
  79. package/dist/modules/opportunities/repository.js +1 -0
  80. package/dist/modules/opportunities/repository.js.map +1 -1
  81. package/dist/modules/partnerships/repository.d.ts.map +1 -1
  82. package/dist/modules/partnerships/repository.js +1 -0
  83. package/dist/modules/partnerships/repository.js.map +1 -1
  84. package/dist/modules/raises/repository.d.ts.map +1 -1
  85. package/dist/modules/raises/repository.js +1 -0
  86. package/dist/modules/raises/repository.js.map +1 -1
  87. package/dist/modules/rate-limit/middleware.d.ts +4 -4
  88. package/dist/modules/rate-limit/middleware.d.ts.map +1 -1
  89. package/dist/modules/rate-limit/middleware.js +57 -11
  90. package/dist/modules/rate-limit/middleware.js.map +1 -1
  91. package/dist/modules/webhooks/delivery.d.ts +5 -2
  92. package/dist/modules/webhooks/delivery.d.ts.map +1 -1
  93. package/dist/modules/webhooks/delivery.js +5 -2
  94. package/dist/modules/webhooks/delivery.js.map +1 -1
  95. package/dist/modules/webhooks/index.d.ts.map +1 -1
  96. package/dist/modules/webhooks/index.js +3 -1
  97. package/dist/modules/webhooks/index.js.map +1 -1
  98. package/dist/modules/workspace/idempotencyMiddleware.d.ts.map +1 -1
  99. package/dist/modules/workspace/idempotencyMiddleware.js +14 -1
  100. package/dist/modules/workspace/idempotencyMiddleware.js.map +1 -1
  101. package/dist/modules/workspace/index.d.ts.map +1 -1
  102. package/dist/modules/workspace/index.js +3 -0
  103. package/dist/modules/workspace/index.js.map +1 -1
  104. package/dist/modules/workspace/repository.d.ts +1 -1
  105. package/dist/modules/workspace/repository.d.ts.map +1 -1
  106. package/dist/modules/workspace/repository.js +15 -9
  107. package/dist/modules/workspace/repository.js.map +1 -1
  108. package/dist/modules/workspace/routes.d.ts +0 -4
  109. package/dist/modules/workspace/routes.d.ts.map +1 -1
  110. package/dist/modules/workspace/routes.js +2 -7
  111. package/dist/modules/workspace/routes.js.map +1 -1
  112. package/dist/modules/workspace/service.d.ts +4 -2
  113. package/dist/modules/workspace/service.d.ts.map +1 -1
  114. package/dist/modules/workspace/service.js +42 -17
  115. package/dist/modules/workspace/service.js.map +1 -1
  116. package/dist/modules/workspace/tools.d.ts.map +1 -1
  117. package/dist/modules/workspace/tools.js +6 -7
  118. package/dist/modules/workspace/tools.js.map +1 -1
  119. package/dist/operator.d.ts +40 -0
  120. package/dist/operator.d.ts.map +1 -0
  121. package/dist/operator.js +50 -0
  122. package/dist/operator.js.map +1 -0
  123. package/dist/runtime/module.d.ts +25 -1
  124. package/dist/runtime/module.d.ts.map +1 -1
  125. package/dist/runtime/registry.d.ts +16 -1
  126. package/dist/runtime/registry.d.ts.map +1 -1
  127. package/dist/runtime/registry.js +34 -0
  128. package/dist/runtime/registry.js.map +1 -1
  129. package/dist/testing/client.d.ts +3 -1
  130. package/dist/testing/client.d.ts.map +1 -1
  131. package/dist/testing/client.js +19 -2
  132. package/dist/testing/client.js.map +1 -1
  133. package/dist/testing/environment.d.ts +2 -0
  134. package/dist/testing/environment.d.ts.map +1 -1
  135. package/dist/testing/environment.js +3 -0
  136. package/dist/testing/environment.js.map +1 -1
  137. package/dist/webBundle.d.ts +8 -0
  138. package/dist/webBundle.d.ts.map +1 -1
  139. package/dist/webBundle.js +9 -7
  140. package/dist/webBundle.js.map +1 -1
  141. package/migrations/0018_hard_mystique.sql +12 -0
  142. package/migrations/meta/0018_snapshot.json +5113 -0
  143. package/migrations/meta/_journal.json +8 -1
  144. package/package.json +4 -2
  145. package/src/app.ts +16 -0
  146. package/src/index.ts +9 -1
  147. package/src/lib/appUrl.ts +64 -0
  148. package/src/lib/clientIp.ts +41 -0
  149. package/src/lib/config.ts +30 -12
  150. package/src/lib/egress.ts +149 -0
  151. package/src/lib/email.ts +75 -7
  152. package/src/lib/ids.ts +2 -0
  153. package/src/lib/rateLimit.ts +16 -4
  154. package/src/modules/agent-tasks/dispatch.ts +9 -2
  155. package/src/modules/agent-tasks/index.ts +3 -1
  156. package/src/modules/auth/index.ts +12 -5
  157. package/src/modules/auth/repository.ts +56 -1
  158. package/src/modules/auth/routes.ts +34 -6
  159. package/src/modules/auth/schema.ts +17 -0
  160. package/src/modules/auth/service.ts +78 -5
  161. package/src/modules/deals/repository.ts +1 -0
  162. package/src/modules/decisions/repository.ts +8 -7
  163. package/src/modules/forms/index.ts +6 -1
  164. package/src/modules/forms/publicRoutes.ts +14 -4
  165. package/src/modules/forms/submission.ts +10 -0
  166. package/src/modules/opportunities/repository.ts +1 -0
  167. package/src/modules/partnerships/repository.ts +1 -0
  168. package/src/modules/raises/repository.ts +1 -0
  169. package/src/modules/rate-limit/middleware.ts +74 -11
  170. package/src/modules/webhooks/delivery.ts +10 -2
  171. package/src/modules/webhooks/index.ts +3 -1
  172. package/src/modules/workspace/idempotencyMiddleware.ts +17 -1
  173. package/src/modules/workspace/index.ts +4 -0
  174. package/src/modules/workspace/repository.ts +15 -8
  175. package/src/modules/workspace/routes.ts +0 -8
  176. package/src/modules/workspace/service.ts +53 -20
  177. package/src/modules/workspace/tools.ts +7 -21
  178. package/src/runtime/module.ts +25 -1
  179. package/src/runtime/registry.ts +59 -1
  180. package/src/testing/client.ts +22 -2
  181. package/src/testing/environment.ts +4 -0
  182. package/src/webBundle.ts +21 -7
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/modules/workspace/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/modules/workspace/service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/modules/workspace/tools.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAG9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAmBpD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAmH5F"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/modules/workspace/tools.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAG9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAmBpD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAqG5F"}
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { requireWorkspaceId } from '../../lib/actor.js';
3
3
  import { deleteResult, idArg } from '../crudTools.js';
4
- import { inviteBody, inviteResponse, memberResponse, memberRoleBody, resendBody, updateBody, workspaceResponse } from './routes.js';
4
+ import { inviteBody, inviteResponse, memberResponse, memberRoleBody, updateBody, workspaceResponse } from './routes.js';
5
5
  /**
6
6
  * `workspace_*`: settings, the team, and invitations.
7
7
  *
@@ -59,11 +59,10 @@ export function registerWorkspaceTools(mcp, service) {
59
59
  });
60
60
  mcp.tool({
61
61
  name: 'workspace_invites_create',
62
- description: 'Invite somebody by email and send them the invitation. invite_url_template is the page ' +
63
- 'that accepts it and must contain {token}. Admin only. ' +
64
- 'Mirrors POST /v1/workspaces/{id}/invites.',
62
+ description: 'Invite somebody by email and send them the invitation. The link is built from the ' +
63
+ 'deployment\'s own base URL. Admin only. Mirrors POST /v1/workspaces/{id}/invites.',
65
64
  inputSchema: inviteBody,
66
- invoke: async (body, actor) => inviteResponse(await service.invite(actor, requireWorkspaceId(actor), body.email, body.role, body.invite_url_template)),
65
+ invoke: async (body, actor) => inviteResponse(await service.invite(actor, requireWorkspaceId(actor), body.email, body.role)),
67
66
  });
68
67
  mcp.tool({
69
68
  name: 'workspace_invites_list',
@@ -78,8 +77,8 @@ export function registerWorkspaceTools(mcp, service) {
78
77
  name: 'workspace_invites_resend',
79
78
  description: 'Issue a fresh token and expiry for an invitation and email it again. Admin only. ' +
80
79
  'Mirrors POST /v1/workspaces/{id}/invites/{inviteId}/resend.',
81
- inputSchema: resendBody.extend({ invite_id: idArg }),
82
- invoke: async (args, actor) => inviteResponse(await service.resendInvite(actor, requireWorkspaceId(actor), args.invite_id, args.invite_url_template)),
80
+ inputSchema: z.strictObject({ invite_id: idArg }),
81
+ invoke: async ({ invite_id: inviteId }, actor) => inviteResponse(await service.resendInvite(actor, requireWorkspaceId(actor), inviteId)),
83
82
  });
84
83
  mcp.tool({
85
84
  name: 'workspace_invites_revoke',
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/modules/workspace/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/modules/workspace/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { Hono } from 'hono';
2
+ import type { CredentialDependencies } from './modules/auth/credentials.ts';
3
+ import type { ModuleRouter } from './runtime/registry.ts';
4
+ /**
5
+ * The operator surface: deployment-level support tooling, mounted by
6
+ * `createApp` at `OPERATOR_ROUTE_PREFIX` the same way the MCP transport is
7
+ * mounted at `/mcp`.
8
+ *
9
+ * It is not part of `/v1` because operator access is a deployment concern,
10
+ * not a workspace role. A workspace or personal API key is refused outright:
11
+ * a key is bound to one workspace and carries that workspace's authority,
12
+ * which is exactly the credential this surface must not answer to. The only
13
+ * way in is a browser session belonging to an account named in
14
+ * `SUPERUSER_EMAILS`.
15
+ *
16
+ * Modules contribute the routes (`ModuleContext.operatorRoutes`); core ships
17
+ * the guard and the mount and no routes of its own. The guard runs ahead of
18
+ * every contribution, so a contributed handler only ever sees a superuser's
19
+ * request.
20
+ */
21
+ export declare const OPERATOR_ROUTE_PREFIX = "/operator/api";
22
+ export interface OperatorDependencies {
23
+ readonly credentials: CredentialDependencies;
24
+ /** Lower-cased operator emails from `SUPERUSER_EMAILS`. Empty means nobody. */
25
+ readonly superuserEmails: ReadonlySet<string>;
26
+ readonly routers: readonly ModuleRouter[];
27
+ }
28
+ /**
29
+ * Three checks, in order:
30
+ *
31
+ * 1. A credential must be present and valid (401 otherwise).
32
+ * 2. It must be a session, not an API key (403 otherwise).
33
+ * 3. The session's account email must be on the allowlist (403 otherwise).
34
+ *
35
+ * The email is read from the database on every request rather than trusted
36
+ * from anywhere else: a session carries only a user id, and re-reading means
37
+ * an email change takes effect on the next request, not the next sign-in.
38
+ */
39
+ export declare function createOperatorRouter(dependencies: OperatorDependencies): Hono;
40
+ //# sourceMappingURL=operator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../src/operator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAK3B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AAE3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD;;;;;;;;;;;;;;;;GAgBG;AAEH,eAAO,MAAM,qBAAqB,kBAAkB,CAAA;AAEpD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAA;IAC5C,+EAA+E;IAC/E,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC7C,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAA;CAC1C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,oBAAoB,GAAG,IAAI,CAmB7E"}
@@ -0,0 +1,50 @@
1
+ import { Hono } from 'hono';
2
+ import { requireSessionActor } from './lib/actor.js';
3
+ import { AppError } from './lib/errors.js';
4
+ import { resolveActorFrom } from './modules/auth/credentials.js';
5
+ import * as authRepository from './modules/auth/repository.js';
6
+ /**
7
+ * The operator surface: deployment-level support tooling, mounted by
8
+ * `createApp` at `OPERATOR_ROUTE_PREFIX` the same way the MCP transport is
9
+ * mounted at `/mcp`.
10
+ *
11
+ * It is not part of `/v1` because operator access is a deployment concern,
12
+ * not a workspace role. A workspace or personal API key is refused outright:
13
+ * a key is bound to one workspace and carries that workspace's authority,
14
+ * which is exactly the credential this surface must not answer to. The only
15
+ * way in is a browser session belonging to an account named in
16
+ * `SUPERUSER_EMAILS`.
17
+ *
18
+ * Modules contribute the routes (`ModuleContext.operatorRoutes`); core ships
19
+ * the guard and the mount and no routes of its own. The guard runs ahead of
20
+ * every contribution, so a contributed handler only ever sees a superuser's
21
+ * request.
22
+ */
23
+ export const OPERATOR_ROUTE_PREFIX = '/operator/api';
24
+ /**
25
+ * Three checks, in order:
26
+ *
27
+ * 1. A credential must be present and valid (401 otherwise).
28
+ * 2. It must be a session, not an API key (403 otherwise).
29
+ * 3. The session's account email must be on the allowlist (403 otherwise).
30
+ *
31
+ * The email is read from the database on every request rather than trusted
32
+ * from anywhere else: a session carries only a user id, and re-reading means
33
+ * an email change takes effect on the next request, not the next sign-in.
34
+ */
35
+ export function createOperatorRouter(dependencies) {
36
+ const router = new Hono();
37
+ router.use('*', async (context, next) => {
38
+ const actor = requireSessionActor(await resolveActorFrom(dependencies.credentials, context));
39
+ const user = await authRepository.findUserById(dependencies.credentials.db, actor.userId);
40
+ if (user === undefined || !dependencies.superuserEmails.has(user.email.toLowerCase())) {
41
+ throw new AppError('forbidden', 'This account is not on the operator allowlist');
42
+ }
43
+ await next();
44
+ });
45
+ for (const contribution of dependencies.routers) {
46
+ router.route('/', contribution.router);
47
+ }
48
+ return router;
49
+ }
50
+ //# sourceMappingURL=operator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operator.js","sourceRoot":"","sources":["../src/operator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAEhE,OAAO,KAAK,cAAc,MAAM,8BAA8B,CAAA;AAG9D;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,eAAe,CAAA;AASpD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,YAAkC;IACrE,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAA;IAEzB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,gBAAgB,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;QAC5F,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;QAEzF,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACtF,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,+CAA+C,CAAC,CAAA;QAClF,CAAC;QAED,MAAM,IAAI,EAAE,CAAA;IACd,CAAC,CAAC,CAAA;IAEF,KAAK,MAAM,YAAY,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;IACxC,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Hono } from 'hono';
1
+ import type { Handler, Hono, MiddlewareHandler } from 'hono';
2
2
  import type { ZodType } from 'zod';
3
3
  import type { Actor } from '../lib/actor.ts';
4
4
  import type { Database } from '../lib/database.ts';
@@ -85,6 +85,30 @@ export interface ModuleContext extends ModuleServices {
85
85
  * scope every query to that. There is no other way in.
86
86
  */
87
87
  publicRoutes(mount: (router: Hono) => void): void;
88
+ /**
89
+ * Declares one route at its real, full path on the app itself, outside
90
+ * `/v1`. Core applies the declaration; no router exists between the module
91
+ * and the app.
92
+ *
93
+ * Nothing is put in front of it: no actor resolution, no workspace, no
94
+ * `module.<id>` capability gate, and workspace settings cannot toggle it.
95
+ * A surface declared this way owns its access rules, normally by pairing
96
+ * these with `appMiddleware`. Paths at or under `/v1`, `/mcp`, or
97
+ * `/healthz` are refused at boot: those are core's surfaces, and `routes`
98
+ * is the only way under `/v1`.
99
+ */
100
+ appRoute(method: 'GET' | 'POST' | 'PATCH' | 'DELETE', path: string, handler: Handler): void;
101
+ /**
102
+ * Declares middleware for a path pattern (`/operator/api/*`), the other
103
+ * half of `appRoute`.
104
+ *
105
+ * The app applies every declared middleware before any declared route, in
106
+ * module registration order, so a pattern covers matching routes from
107
+ * every module, later-registered ones included. That is what lets one
108
+ * module guard a surface other modules add routes to. Reserved paths are
109
+ * refused as for `appRoute`.
110
+ */
111
+ appMiddleware(pattern: string, handler: MiddlewareHandler): void;
88
112
  schema(tables: Readonly<Record<string, unknown>>, migrationsDir: string): void;
89
113
  readonly mcp: McpToolRegistry;
90
114
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/runtime/module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/runtime/module.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Hono } from 'hono';
2
- import type { Context } from 'hono';
2
+ import type { Context, Handler, MiddlewareHandler } from 'hono';
3
3
  import type { Actor } from '../lib/actor.ts';
4
4
  import type { Environment } from '../lib/config.ts';
5
5
  import type { Logger } from '../lib/logger.ts';
@@ -15,6 +15,10 @@ export interface ModuleContributions {
15
15
  readonly routers: readonly ModuleRouter[];
16
16
  /** Routers for `/v1/public`: no credentials, CORS open. `architecture.md` boot step 5. */
17
17
  readonly publicRouters: readonly ModuleRouter[];
18
+ /** Middleware declared on the app itself. Applied before every `appRoutes` entry. */
19
+ readonly appMiddleware: readonly AppMiddlewareContribution[];
20
+ /** Routes declared at full paths on the app itself, outside `/v1`. */
21
+ readonly appRoutes: readonly AppRouteContribution[];
18
22
  readonly schemas: readonly SchemaContribution[];
19
23
  readonly mcpTools: readonly McpTool[];
20
24
  /** The bus every module subscribed to. Services publish through it after commit. */
@@ -26,6 +30,17 @@ export interface ModuleRouter {
26
30
  readonly moduleId: string;
27
31
  readonly router: Hono;
28
32
  }
33
+ export interface AppRouteContribution {
34
+ readonly moduleId: string;
35
+ readonly method: 'GET' | 'POST' | 'PATCH' | 'DELETE';
36
+ readonly path: string;
37
+ readonly handler: Handler;
38
+ }
39
+ export interface AppMiddlewareContribution {
40
+ readonly moduleId: string;
41
+ readonly pattern: string;
42
+ readonly handler: MiddlewareHandler;
43
+ }
29
44
  /**
30
45
  * What `registerModules` needs.
31
46
  *
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/runtime/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAE5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,EACV,YAAY,EACZ,OAAO,EAGP,cAAc,EACd,kBAAkB,EACnB,MAAM,aAAa,CAAA;AAIpB;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAA;IACzC,0FAA0F;IAC1F,QAAQ,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,CAAA;IAC/C,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAA;IAC/C,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAA;IACrC,oFAAoF;IACpF,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;IACzB,yEAAyE;IACzE,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAA;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;CACtB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAA;IACzC,oFAAoF;IACpF,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;IACtC,yEAAyE;IACzE,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAA;IACvD,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;IACjC;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAA;IACrE;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAA;CAC3E;AA+GD;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAuEjG"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/runtime/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAA;AAE/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAE5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,EACV,YAAY,EACZ,OAAO,EAGP,cAAc,EACd,kBAAkB,EACnB,MAAM,aAAa,CAAA;AAIpB;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAA;IACzC,0FAA0F;IAC1F,QAAQ,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,CAAA;IAC/C,qFAAqF;IACrF,QAAQ,CAAC,aAAa,EAAE,SAAS,yBAAyB,EAAE,CAAA;IAC5D,sEAAsE;IACtE,QAAQ,CAAC,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAA;IACnD,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAA;IAC/C,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAA;IACrC,oFAAoF;IACpF,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;IACzB,yEAAyE;IACzE,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAA;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;CACpC;AAwBD;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAA;IACzC,oFAAoF;IACpF,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;IACtC,yEAAyE;IACzE,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAA;IACvD,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;IACjC;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAA;IACrE;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAA;CAC3E;AA8HD;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA2EjG"}
@@ -5,6 +5,25 @@ import { createEntitlementRegistry, requireCapability } from './entitlements.js'
5
5
  import { createEventBus } from './events.js';
6
6
  import { createModuleConfigProvider, moduleCapabilityName, validateModuleConfig } from './moduleConfig.js';
7
7
  import { ModuleBootError, orderModules } from './order.js';
8
+ /**
9
+ * Paths `appRoute`/`appMiddleware` may not touch. `/v1` because `routes` with
10
+ * its gates is the only way there, the rest because they are core's own
11
+ * surfaces. `/mcp` mirrors `MCP_ROUTE_PREFIX`, written out because `runtime/`
12
+ * must not import a feature module.
13
+ */
14
+ const RESERVED_APP_PATHS = ['/v1', '/mcp', '/healthz'];
15
+ function assertMountablePath(moduleId, kind, path) {
16
+ if (!path.startsWith('/')) {
17
+ throw new ModuleBootError([`module "${moduleId}" declares ${kind} "${path}", which must start with "/"`]);
18
+ }
19
+ for (const reserved of RESERVED_APP_PATHS) {
20
+ if (path === reserved || path.startsWith(`${reserved}/`)) {
21
+ throw new ModuleBootError([
22
+ `module "${moduleId}" declares ${kind} "${path}" under "${reserved}", which is core's surface`,
23
+ ]);
24
+ }
25
+ }
26
+ }
8
27
  function createModuleContext(module, accumulator, options, events, entitlements, moduleCatalog) {
9
28
  return {
10
29
  ...options.services,
@@ -30,6 +49,17 @@ function createModuleContext(module, accumulator, options, events, entitlements,
30
49
  mount(router);
31
50
  accumulator.publicRouters.push({ moduleId: module.id, router });
32
51
  },
52
+ // No gate on either, unlike `routes`: a surface declared here owns its
53
+ // own access rules, and a per-module `module.<id>` check would hand
54
+ // workspaces a switch over deployment tooling they do not own.
55
+ appRoute(method, path, handler) {
56
+ assertMountablePath(module.id, 'app route', path);
57
+ accumulator.appRoutes.push({ moduleId: module.id, method, path, handler });
58
+ },
59
+ appMiddleware(pattern, handler) {
60
+ assertMountablePath(module.id, 'app middleware', pattern);
61
+ accumulator.appMiddleware.push({ moduleId: module.id, pattern, handler });
62
+ },
33
63
  schema(tables, migrationsDir) {
34
64
  accumulator.schemas.push({ moduleId: module.id, tables, migrationsDir });
35
65
  },
@@ -92,6 +122,8 @@ export async function registerModules(options) {
92
122
  const accumulator = {
93
123
  routers: [],
94
124
  publicRouters: [],
125
+ appMiddleware: [],
126
+ appRoutes: [],
95
127
  schemas: [],
96
128
  mcpTools: [],
97
129
  };
@@ -139,6 +171,8 @@ export async function registerModules(options) {
139
171
  return {
140
172
  routers: accumulator.routers,
141
173
  publicRouters: accumulator.publicRouters,
174
+ appMiddleware: accumulator.appMiddleware,
175
+ appRoutes: accumulator.appRoutes,
142
176
  schemas: accumulator.schemas,
143
177
  mcpTools: accumulator.mcpTools,
144
178
  events,
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/runtime/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/runtime/registry.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { Hono } from 'hono';
2
2
  import type { AppBindings } from '../app.ts';
3
+ import type { Database } from '../lib/database.ts';
3
4
  /**
4
5
  * An HTTP client for integration tests, plus the two setups almost every suite
5
6
  * needs first: an account, and an account that owns a workspace.
@@ -30,5 +31,6 @@ export declare function readRecord(payload: unknown): Record<string, unknown>;
30
31
  export declare function readList(payload: unknown): Record<string, unknown>[];
31
32
  /** Reads `next_cursor`, which is a string or null and never absent. */
32
33
  export declare function readCursor(payload: unknown): string | null;
33
- export declare function createTestClient(app: Hono<AppBindings>): TestClient;
34
+ /** @param db Verifies a fresh signup directly, so almost every suite can start from a working owner. */
35
+ export declare function createTestClient(app: Hono<AppBindings>, db: Database): TestClient;
34
36
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/testing/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAEhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C;;;;;;GAMG;AAEH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC;AAED,8EAA8E;AAC9E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IACnF,uDAAuD;IACvD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACtC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;CACzD;AAMD,6FAA6F;AAC7F,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMhE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMpE;AAED,wEAAwE;AACxE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAMpE;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAM1D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,UAAU,CA+CnE"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/testing/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAEhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAGlD;;;;;;GAMG;AAEH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC;AAED,8EAA8E;AAC9E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IACnF,uDAAuD;IACvD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACtC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;CACzD;AAMD,6FAA6F;AAC7F,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMhE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMpE;AAED,wEAAwE;AACxE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAMpE;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAM1D;AAED,wGAAwG;AACxG,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,QAAQ,GAAG,UAAU,CA+DjF"}
@@ -1,3 +1,5 @@
1
+ import { eq } from 'drizzle-orm';
2
+ import { users } from '../modules/auth/schema.js';
1
3
  function isRecord(value) {
2
4
  return typeof value === 'object' && value !== null;
3
5
  }
@@ -28,7 +30,8 @@ export function readCursor(payload) {
28
30
  }
29
31
  return payload.next_cursor;
30
32
  }
31
- export function createTestClient(app) {
33
+ /** @param db Verifies a fresh signup directly, so almost every suite can start from a working owner. */
34
+ export function createTestClient(app, db) {
32
35
  function send(method, path, options = {}) {
33
36
  return Promise.resolve(app.request(path, {
34
37
  method,
@@ -40,13 +43,27 @@ export function createTestClient(app) {
40
43
  ...(options.body === undefined ? {} : { body: JSON.stringify(options.body) }),
41
44
  }));
42
45
  }
46
+ /**
47
+ * Signs up and verifies directly against the database.
48
+ *
49
+ * These suites are about the CRM, not verification: going through the real
50
+ * emailed link for every signup would mean threading the email spy through
51
+ * this client too, for a step almost nothing here is testing. `auth.test.ts`
52
+ * and `workspace.test.ts` cover the real link.
53
+ */
43
54
  async function signUp(email) {
44
55
  const response = await send('POST', '/v1/auth/signup', {
45
- body: { email, name: 'Someone', password: 'correct horse battery staple' },
56
+ body: {
57
+ email,
58
+ name: 'Someone',
59
+ password: 'correct horse battery staple',
60
+ },
46
61
  });
47
62
  if (response.status !== 201) {
48
63
  throw new Error(`Signing up ${email} answered ${String(response.status)}`);
49
64
  }
65
+ const accountId = readString(readRecord(await response.json()).account, 'id');
66
+ await db.update(users).set({ emailVerifiedAt: new Date() }).where(eq(users.id, accountId));
50
67
  // Only the cookie's name=value matters to a later request; the attributes
51
68
  // after the first semicolon are for a browser.
52
69
  return (response.headers.get('Set-Cookie') ?? '').split(';')[0] ?? '';
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/testing/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/testing/client.ts"],"names":[],"mappings":"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"}
@@ -13,5 +13,7 @@ import type { Environment } from '../lib/config.ts';
13
13
  * secret is ever sealed with it.
14
14
  */
15
15
  export declare const TEST_SECRET_ENCRYPTION_KEY = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
16
+ /** The base URL every emailed link is built from in tests. */
17
+ export declare const TEST_APP_BASE_URL = "https://kelpie.test";
16
18
  export declare const TEST_ENVIRONMENT: Environment;
17
19
  //# sourceMappingURL=environment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/testing/environment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD;;;;;;;GAOG;AAEH;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,iDAAiD,CAAA;AAExF,eAAO,MAAM,gBAAgB,EAAE,WAG9B,CAAA"}
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/testing/environment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD;;;;;;;GAOG;AAEH;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,iDAAiD,CAAA;AAExF,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,wBAAwB,CAAA;AAEtD,eAAO,MAAM,gBAAgB,EAAE,WAI9B,CAAA"}
@@ -12,8 +12,11 @@
12
12
  * secret is ever sealed with it.
13
13
  */
14
14
  export const TEST_SECRET_ENCRYPTION_KEY = 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=';
15
+ /** The base URL every emailed link is built from in tests. */
16
+ export const TEST_APP_BASE_URL = 'https://kelpie.test';
15
17
  export const TEST_ENVIRONMENT = {
16
18
  NODE_ENV: 'test',
17
19
  SECRET_ENCRYPTION_KEY: TEST_SECRET_ENCRYPTION_KEY,
20
+ APP_BASE_URL: TEST_APP_BASE_URL,
18
21
  };
19
22
  //# sourceMappingURL=environment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/testing/environment.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,8CAA8C,CAAA;AAExF,MAAM,CAAC,MAAM,gBAAgB,GAAgB;IAC3C,QAAQ,EAAE,MAAM;IAChB,qBAAqB,EAAE,0BAA0B;CAClD,CAAA"}
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/testing/environment.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,8CAA8C,CAAA;AAExF,8DAA8D;AAC9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAA;AAEtD,MAAM,CAAC,MAAM,gBAAgB,GAAgB;IAC3C,QAAQ,EAAE,MAAM;IAChB,qBAAqB,EAAE,0BAA0B;IACjD,YAAY,EAAE,iBAAiB;CAChC,CAAA"}
@@ -17,6 +17,14 @@ import type { AppBindings } from './app.ts';
17
17
  export interface WebBundleOptions {
18
18
  /** Directory holding the built `index.html` and its assets. */
19
19
  readonly directory: string;
20
+ /**
21
+ * Prefixes the assembly's own modules answer on beyond core's, via
22
+ * `appRoute`/`appMiddleware`. An unmatched GET under one stays a JSON
23
+ * error instead of becoming the app shell, the same rule `/v1` gets. The
24
+ * assembly names them here because only it knows which of its declared
25
+ * paths are API rather than pages.
26
+ */
27
+ readonly apiPrefixes?: readonly string[];
20
28
  }
21
29
  /** The bundle directory does not hold a build. Thrown at boot, never per request. */
22
30
  export declare class WebBundleError extends Error {
@@ -1 +1 @@
1
- {"version":3,"file":"webBundle.d.ts","sourceRoot":"","sources":["../src/webBundle.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAqB,MAAM,MAAM,CAAA;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAG3C;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,qFAAqF;AACrF,qBAAa,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAuCD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAwBtF"}
1
+ {"version":3,"file":"webBundle.d.ts","sourceRoot":"","sources":["../src/webBundle.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAqB,MAAM,MAAM,CAAA;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAG3C;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACzC;AAED,qFAAqF;AACrF,qBAAa,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AA2CD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CA0BtF"}