@beignet/cli 0.0.33 → 0.0.35

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 (69) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +34 -7
  3. package/dist/config.d.ts +1 -0
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +1 -0
  6. package/dist/config.js.map +1 -1
  7. package/dist/inspect.js +54 -17
  8. package/dist/inspect.js.map +1 -1
  9. package/dist/lint.js +10 -3
  10. package/dist/lint.js.map +1 -1
  11. package/dist/make/inbox.d.ts.map +1 -1
  12. package/dist/make/inbox.js +4 -5
  13. package/dist/make/inbox.js.map +1 -1
  14. package/dist/make/payments.d.ts.map +1 -1
  15. package/dist/make/payments.js +5 -7
  16. package/dist/make/payments.js.map +1 -1
  17. package/dist/make/shared.js +1 -1
  18. package/dist/make/shared.js.map +1 -1
  19. package/dist/make/tenancy.d.ts.map +1 -1
  20. package/dist/make/tenancy.js +4 -6
  21. package/dist/make/tenancy.js.map +1 -1
  22. package/dist/make.js +8 -9
  23. package/dist/make.js.map +1 -1
  24. package/dist/provider-add.d.ts.map +1 -1
  25. package/dist/provider-add.js +52 -69
  26. package/dist/provider-add.js.map +1 -1
  27. package/dist/registry-edits.js +2 -1
  28. package/dist/registry-edits.js.map +1 -1
  29. package/dist/schedule.d.ts.map +1 -1
  30. package/dist/schedule.js +1 -1
  31. package/dist/schedule.js.map +1 -1
  32. package/dist/templates/agents.d.ts.map +1 -1
  33. package/dist/templates/agents.js +2 -0
  34. package/dist/templates/agents.js.map +1 -1
  35. package/dist/templates/base.js +3 -3
  36. package/dist/templates/base.js.map +1 -1
  37. package/dist/templates/index.d.ts.map +1 -1
  38. package/dist/templates/index.js +1 -0
  39. package/dist/templates/index.js.map +1 -1
  40. package/dist/templates/server.d.ts +1 -0
  41. package/dist/templates/server.d.ts.map +1 -1
  42. package/dist/templates/server.js +19 -11
  43. package/dist/templates/server.js.map +1 -1
  44. package/dist/templates/testing.d.ts.map +1 -1
  45. package/dist/templates/testing.js +55 -26
  46. package/dist/templates/testing.js.map +1 -1
  47. package/dist/templates/todos.d.ts.map +1 -1
  48. package/dist/templates/todos.js +3 -4
  49. package/dist/templates/todos.js.map +1 -1
  50. package/package.json +3 -2
  51. package/skills/app-structure/SKILL.md +14 -1
  52. package/src/config.ts +2 -0
  53. package/src/inspect.ts +87 -21
  54. package/src/lint.ts +15 -3
  55. package/src/make/inbox.ts +4 -5
  56. package/src/make/payments.ts +4 -8
  57. package/src/make/shared.ts +1 -1
  58. package/src/make/tenancy.ts +4 -10
  59. package/src/make.ts +8 -9
  60. package/src/provider-add.ts +52 -69
  61. package/src/registry-edits.ts +2 -1
  62. package/src/schedule.ts +4 -3
  63. package/src/templates/agents.ts +2 -0
  64. package/src/templates/base.ts +3 -3
  65. package/src/templates/index.ts +1 -0
  66. package/src/templates/server.ts +19 -11
  67. package/src/templates/testing.ts +55 -26
  68. package/src/templates/todos.ts +3 -4
  69. package/src/test-helpers/generated-app.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,38 @@
1
1
  # @beignet/cli
2
2
 
3
+ ## 0.0.35
4
+
5
+ ### Patch Changes
6
+
7
+ - 74aad51: Replace the schedule-specific instrumentation sink with shared provider targets, serve bodyless HEAD responses from GET routes, improve missing JSON content-type diagnostics, and expose the auth error HTTP status.
8
+ - db79263: Align route, listener, auth-provider, and webhook-integration APIs before 1.0. Route declarations now use an app-bound `createRoutes<AppContext>()` builder, listeners put their stable name first, Better Auth exports `createBetterAuthProvider(...)`, and vendor webhook verifiers live in `@beignet/webhooks-*` packages outside provider audits.
9
+ - 40f4155: Refresh package-shipped agent guidance for app-bound route builders, configured route-builder paths, webhook integrations, and operational error responses.
10
+ - c403db2: Isolate use-case observers, authenticate operational routes before context creation, honor configured generated-test roots, correct feature-helper linting, preserve optional OpenAPI descriptions, and keep upload resets stable.
11
+ - Updated dependencies [2101386]
12
+ - Updated dependencies [2290c4a]
13
+ - Updated dependencies [42921da]
14
+ - Updated dependencies [2a5b224]
15
+ - Updated dependencies [74aad51]
16
+ - Updated dependencies [db79263]
17
+ - Updated dependencies [397f106]
18
+ - Updated dependencies [40f4155]
19
+ - Updated dependencies [d1c0efd]
20
+ - Updated dependencies [c403db2]
21
+ - Updated dependencies [4cc5254]
22
+ - Updated dependencies [7d0c795]
23
+ - @beignet/core@0.0.35
24
+
25
+ ## 0.0.34
26
+
27
+ ### Patch Changes
28
+
29
+ - 8226b4c: Isolate notification channel failures, add app-owned preference checks, provide independently retryable queued delivery through existing job dispatchers, and document the app structure for queued notification workers.
30
+ - 479a383: Warn when hand-authored tenant-owned Drizzle repository ports expose raw `workspaceId` methods in addition to raw `tenantId` methods.
31
+ - 9345cc9: Stabilize the pre-1.0 public surface around factory-only providers, canonical server and testing imports, consistent memory naming, and the removal of deprecated aliases.
32
+ - Updated dependencies [8226b4c]
33
+ - Updated dependencies [9345cc9]
34
+ - @beignet/core@0.0.34
35
+
3
36
  ## 0.0.33
4
37
 
5
38
  ### Patch Changes
package/README.md CHANGED
@@ -187,6 +187,11 @@ bun beignet doctor
187
187
  beignet create [directory] [options]
188
188
  beignet task run <name> [options]
189
189
  beignet outbox drain [options]
190
+ beignet outbox list [options]
191
+ beignet outbox show <id> [options]
192
+ beignet outbox requeue <id> [options]
193
+ beignet outbox purge [options]
194
+ beignet outbox prune [options]
190
195
  beignet schedule run <name> [options]
191
196
  beignet make task <feature>/<name> [options]
192
197
  beignet make contract <name> [options]
@@ -348,6 +353,7 @@ The standard app layout includes the files feature generators expect:
348
353
  app-context.ts
349
354
  infra/app-ports.ts
350
355
  ports/index.ts
356
+ lib/routes.ts
351
357
  lib/use-case.ts
352
358
  ```
353
359
 
@@ -374,6 +380,7 @@ export default defineConfig({
374
380
  appContext: "src/app-context.ts",
375
381
  contracts: "src/features",
376
382
  features: "src/features",
383
+ routesBuilder: "src/lib/routes.ts",
377
384
  routes: "src/app/api",
378
385
  server: "src/core/server/index.ts",
379
386
  listeners: "src/core/server/listeners.ts",
@@ -390,6 +397,10 @@ config before inspecting or writing files. When `appContext` is moved under a
390
397
  source root such as `src/app-context.ts`, client setup follows that root at
391
398
  `src/client/index.ts`.
392
399
 
400
+ The generated `lib/beignet-test-runner.ts` also resolves all four supported
401
+ config formats and includes configured test, feature, route, server, port,
402
+ infra-port, route-builder, and use-case-builder roots in test discovery.
403
+
393
404
  The same config can declare app-owned names for Beignet operational database
394
405
  tables when an app uses names other than the provider defaults:
395
406
 
@@ -568,7 +579,7 @@ The command writes `features/posts/policy.ts` with a `definePolicy(...)` starter
568
579
  Register the policy with `createGate(...)`, install the gate as a port, and
569
580
  bind it into request context so use cases can call `ctx.gate.authorize(...)`.
570
581
  For tenant, ownership, or role-heavy rules, add a matrix test with
571
- `createPolicyTester(...)` from `@beignet/core/ports/testing`.
582
+ `createPolicyTester(...)` from `@beignet/core/testing`.
572
583
 
573
584
  ## Generate a port adapter
574
585
 
@@ -622,13 +633,13 @@ writes with a branded `TenantScope`; generated use cases call
622
633
  `requireTenantScope(ctx)`, repository ports require `scope: TenantScope`, and
623
634
  adapters unwrap the storage key with `tenantScopeId(scope)`. `doctor --strict`
624
635
  also warns when tenant-scoped generated repositories lose that boundary, when
625
- hand-authored Drizzle ports expose raw `tenantId` app-facing methods, or when
626
- scoped adapters stop using `tenantScopeId(scope)` predicates. Use `--events` to
627
- generate created, updated, and deleted domain events and publish them through
628
- `ctx.ports.eventBus`. The
636
+ hand-authored Drizzle ports expose raw `tenantId` or `workspaceId` app-facing
637
+ methods, or when scoped adapters stop using `tenantScopeId(scope)` predicates.
638
+ Use `--events` to generate created, updated, and deleted domain events and
639
+ publish them through `ctx.ports.eventBus`. The
629
640
  starter ships no event bus, so `--events` also wires one: it adds
630
641
  `eventBus: EventBusPort` to `AppPorts`, defers the key in
631
- `infra/app-ports.ts`, registers `createInMemoryEventBusProvider()` in
642
+ `infra/app-ports.ts`, registers `createMemoryEventBusProvider()` in
632
643
  `server/providers.ts`, and adds the `@beignet/provider-event-bus-memory`
633
644
  dependency. The wiring is skipped when the ports file already mentions
634
645
  `eventBus`, so apps that wired their own bus are left untouched. Use
@@ -684,7 +695,7 @@ reports events and jobs the registry cannot deliver.
684
695
 
685
696
  Generators wire the provider-backed ports their output depends on. `make
686
697
  event` (and `make resource --events`) wires `eventBus: EventBusPort` with
687
- `createInMemoryEventBusProvider()` from
698
+ `createMemoryEventBusProvider()` from
688
699
  `@beignet/provider-event-bus-memory`, including the package dependency.
689
700
  `make notification` wires `mailer: MailerPort` with
690
701
  `createMemoryMailerProvider()` and `notifications: NotificationPort` with
@@ -700,6 +711,8 @@ Task, job, listener, schedule, and notification generators define artifacts
700
711
  through app-owned context-bound builders in `lib/`. Each generator creates the
701
712
  builder file when it is missing:
702
713
 
714
+ - `lib/routes.ts` exports `defineRoute` and `defineRouteGroup` from
715
+ `createRoutes<AppContext>()` (`@beignet/core/server`) and ships with every app
703
716
  - `lib/tasks.ts` exports `defineTask` from `createTasks<AppContext>()`
704
717
  (`@beignet/core/tasks`)
705
718
  - `lib/jobs.ts` exports `defineJob` from `createJobs<AppContext>()`
@@ -732,6 +745,20 @@ The runner loads `server/outbox.ts` or `paths.outbox`. That module should export
732
745
  lifecycle, so the CLI drain uses the same outbox, event bus, jobs,
733
746
  instrumentation, actor, and tenant decisions as the scheduled drain route.
734
747
 
748
+ Inspect and recover failed deliveries through the same app-owned operational
749
+ context:
750
+
751
+ ```bash
752
+ beignet outbox list --status deadLettered
753
+ beignet outbox show <id>
754
+ beignet outbox requeue <id> --reset-attempts
755
+ beignet outbox purge --before 2026-06-01T00:00:00Z --dry-run
756
+ beignet outbox prune --before 2026-06-01T00:00:00Z --dry-run
757
+ ```
758
+
759
+ `purge` only targets dead-lettered messages; `prune` only targets delivered
760
+ messages. Both support bounded `--limit` runs and `--dry-run` previews.
761
+
735
762
  There is intentionally no separate `beignet jobs drain` command. Outbox-backed
736
763
  jobs drain through the outbox beside durable events. Direct provider jobs should
737
764
  use provider-owned worker entrypoints, such as a BullMQ worker built with
package/dist/config.d.ts CHANGED
@@ -22,6 +22,7 @@ export type BeignetPaths = {
22
22
  policies: string;
23
23
  useCases: string;
24
24
  useCaseBuilder: string;
25
+ routesBuilder: string;
25
26
  listenersBuilder: string;
26
27
  jobsBuilder: string;
27
28
  schedulesBuilder: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEtC;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE;QACR,MAAM,EAAE,qBAAqB,CAAC;QAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,qBAkClC,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAEjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,GAAE,aAAkB,EAC1B,UAAU,CAAC,EAAE,MAAM,GAClB,qBAAqB,CAqBvB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,qBAAqB,CAAC,CA+ChC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAGjE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAGnE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAErE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAErE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEtC;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE;QACR,MAAM,EAAE,qBAAqB,CAAC;QAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,qBAmClC,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAEjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,GAAE,aAAkB,EAC1B,UAAU,CAAC,EAAE,MAAM,GAClB,qBAAqB,CAqBvB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,qBAAqB,CAAC,CA+ChC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAGjE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAGnE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAErE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAErE"}
package/dist/config.js CHANGED
@@ -23,6 +23,7 @@ export const defaultBeignetConfig = {
23
23
  policies: "features",
24
24
  useCases: "features",
25
25
  useCaseBuilder: "lib/use-case.ts",
26
+ routesBuilder: "lib/routes.ts",
26
27
  listenersBuilder: "lib/listeners.ts",
27
28
  jobsBuilder: "lib/jobs.ts",
28
29
  schedulesBuilder: "lib/schedules.ts",
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/inspect.js CHANGED
@@ -895,6 +895,10 @@ async function inspectCanonicalConformance(targetDir, files, config, convention,
895
895
  file: config.paths.infrastructurePorts,
896
896
  reason: "infra/app-ports.ts should wire concrete app ports for the selected runtime.",
897
897
  },
898
+ {
899
+ file: config.paths.routesBuilder,
900
+ reason: "lib/routes.ts should bind route declarations to the shared AppContext type.",
901
+ },
898
902
  ];
899
903
  if (hasClientSurface) {
900
904
  requiredFiles.push({
@@ -992,6 +996,18 @@ async function inspectCanonicalConformance(targetDir, files, config, convention,
992
996
  });
993
997
  }
994
998
  }
999
+ if (files.includes(config.paths.routesBuilder)) {
1000
+ const routesBuilderSource = await readCachedSource(targetDir, config.paths.routesBuilder, sourceCache);
1001
+ if (!importsAppContext(routesBuilderSource, config.paths.routesBuilder, config, files) ||
1002
+ !/\bcreateRoutes\s*<\s*AppContext\s*>\s*\(\s*\)/.test(routesBuilderSource)) {
1003
+ diagnostics.push({
1004
+ severity: "warning",
1005
+ code: "BEIGNET_ROUTE_BUILDER_CONTEXT",
1006
+ file: config.paths.routesBuilder,
1007
+ message: `${config.paths.routesBuilder} should import AppContext from ${config.paths.appContext} and export route builders from createRoutes<AppContext>().`,
1008
+ });
1009
+ }
1010
+ }
995
1011
  const featureRoutesPath = `${featuresPath}/`;
996
1012
  for (const file of files) {
997
1013
  if (!file.startsWith(featureRoutesPath) || !file.endsWith("/routes.ts")) {
@@ -1000,20 +1016,12 @@ async function inspectCanonicalConformance(targetDir, files, config, convention,
1000
1016
  const source = await readCachedSource(targetDir, file, sourceCache);
1001
1017
  if (!source.includes("defineRouteGroup"))
1002
1018
  continue;
1003
- if (!importsAppContext(source, file, config, files)) {
1019
+ if (!importsNamedFromFile(source, file, config.paths.routesBuilder, "defineRouteGroup", files)) {
1004
1020
  diagnostics.push({
1005
1021
  severity: "warning",
1006
- code: "BEIGNET_FEATURE_ROUTE_APP_CONTEXT",
1022
+ code: "BEIGNET_FEATURE_ROUTE_BUILDER",
1007
1023
  file,
1008
- message: `${file} should import type { AppContext } from ${config.paths.appContext} so feature routes use the app-wide context type.`,
1009
- });
1010
- }
1011
- if (!/defineRouteGroup\s*<\s*AppContext\s*>\s*\(\s*\)\s*\(/.test(source)) {
1012
- diagnostics.push({
1013
- severity: "warning",
1014
- code: "BEIGNET_FEATURE_ROUTE_GROUP_CONTEXT",
1015
- file,
1016
- message: `${file} should call defineRouteGroup<AppContext>()({ ... }) so route groups preserve per-route contract and use-case type checks.`,
1024
+ message: `${file} should import { defineRouteGroup } from ${config.paths.routesBuilder} so route groups use the app-bound context type.`,
1017
1025
  });
1018
1026
  }
1019
1027
  }
@@ -1059,6 +1067,20 @@ function importsAppContext(source, importerFile, config, files) {
1059
1067
  }
1060
1068
  return false;
1061
1069
  }
1070
+ function importsNamedFromFile(source, importerFile, expectedFile, importedName, files) {
1071
+ const importRegex = /import\s+\{([^}]+)\}\s+from\s+["']([^"']+)["']/g;
1072
+ for (const match of source.matchAll(importRegex)) {
1073
+ const sourceFile = sourceFileFromImport(match[2], importerFile, files);
1074
+ if (sourceFile !== expectedFile)
1075
+ continue;
1076
+ for (const member of match[1].split(",")) {
1077
+ const parsed = parseImportMember(member);
1078
+ if (parsed?.importedName === importedName)
1079
+ return true;
1080
+ }
1081
+ }
1082
+ return false;
1083
+ }
1062
1084
  async function inspectAuthzAuditDrift(targetDir, files, config, convention, contracts) {
1063
1085
  if (!convention.resourceGenerator)
1064
1086
  return [];
@@ -1495,7 +1517,7 @@ async function inspectPaymentsProductionReadiness(targetDir, files, config, sour
1495
1517
  severity: "warning",
1496
1518
  code: "BEIGNET_PAYMENTS_STRIPE_MEMORY_PROVIDER",
1497
1519
  file: serverProviderFiles(files, config)[0] ?? config.paths.server,
1498
- message: "@beignet/provider-payments-stripe is installed and Stripe env/config is present, but server/providers.ts still registers memory payments. Register stripePaymentsProvider before deploying Stripe-backed billing, or remove the Stripe provider/config until the app is ready to switch.",
1520
+ message: "@beignet/provider-payments-stripe is installed and Stripe env/config is present, but server/providers.ts still registers memory payments. Register createStripePaymentsProvider() before deploying Stripe-backed billing, or remove the Stripe provider/config until the app is ready to switch.",
1499
1521
  });
1500
1522
  }
1501
1523
  if (!(await hasPaymentWebhookRoute(targetDir, files, config, sourceCache))) {
@@ -1551,7 +1573,8 @@ async function hasStripeMemoryProviderMismatch(targetDir, sourceCache, configFil
1551
1573
  if (!installedPackages.has("@beignet/provider-payments-stripe")) {
1552
1574
  return false;
1553
1575
  }
1554
- if (findProviderEntryIndex(providerEntries, ["stripePaymentsProvider"]) >= 0) {
1576
+ if (findProviderEntryIndex(providerEntries, ["createStripePaymentsProvider"]) >=
1577
+ 0) {
1555
1578
  return false;
1556
1579
  }
1557
1580
  if (findProviderEntryIndex(providerEntries, [
@@ -2432,8 +2455,22 @@ async function listenedEventNames(targetDir, files, config) {
2432
2455
  if (!listenerPattern.test(file) || isWorkflowTestFile(file))
2433
2456
  continue;
2434
2457
  const source = await readFile(path.join(targetDir, file), "utf8");
2435
- for (const match of source.matchAll(/\bdefineListener\s*(?:<[^>]*>\s*)?\(\s*([A-Za-z_$][\w$]*)/g)) {
2436
- listened.add(match[1]);
2458
+ const callPattern = /\bdefineListener\s*\(/g;
2459
+ for (const match of source.matchAll(callPattern)) {
2460
+ const openIndex = source.indexOf("(", match.index ?? 0);
2461
+ if (openIndex === -1)
2462
+ continue;
2463
+ const closeIndex = matchingDelimiterIndex(source, openIndex, "(", ")");
2464
+ if (closeIndex === -1)
2465
+ continue;
2466
+ const args = splitTopLevelArguments(source.slice(openIndex + 1, closeIndex));
2467
+ const options = args[1]?.trim();
2468
+ if (!options?.startsWith("{") || !options.endsWith("}"))
2469
+ continue;
2470
+ const eventProperty = splitTopLevelArguments(options.slice(1, -1)).find((property) => /^\s*event\s*:/.test(property));
2471
+ const eventName = /^\s*event\s*:\s*([A-Za-z_$][\w$]*)/.exec(eventProperty ?? "")?.[1];
2472
+ if (eventName)
2473
+ listened.add(eventName);
2437
2474
  }
2438
2475
  }
2439
2476
  return listened;
@@ -2935,7 +2972,7 @@ async function inspectTenantScopeRepositoryDrift(targetDir, files, resources, co
2935
2972
  severity: "warning",
2936
2973
  code: "BEIGNET_TENANT_SCOPE_RAW_ID_BOUNDARY",
2937
2974
  file: portFile,
2938
- message: `${portFile} declares tenant-owned repository methods (${rawBoundaries.join(", ")}) with raw tenant IDs. Use TenantScope at app-facing repository boundaries and unwrap it with tenantScopeId(scope) inside ${repositoryFile}; keep provider-correlation lookups separate from authorization.`,
2975
+ message: `${portFile} declares tenant-owned repository methods (${rawBoundaries.join(", ")}) with raw tenant or workspace IDs. Use TenantScope at app-facing repository boundaries and unwrap it with tenantScopeId(scope) inside ${repositoryFile}; keep provider-correlation lookups separate from authorization.`,
2939
2976
  });
2940
2977
  continue;
2941
2978
  }
@@ -3030,7 +3067,7 @@ function rawTenantRepositoryMethodBoundaries(block, tables) {
3030
3067
  for (const method of repositoryMethodSignatures(block)) {
3031
3068
  if (isProviderCorrelationMethod(method.name))
3032
3069
  continue;
3033
- const rawColumns = tenantColumnsUsedInSource(method.params, tables).filter((column) => column.property === "tenantId");
3070
+ const rawColumns = tenantColumnsUsedInSource(method.params, tables);
3034
3071
  if (rawColumns.length === 0)
3035
3072
  continue;
3036
3073
  rawMethods.push(method.name);