Declarative manifest for the authorization_code and refresh_token grants.
Per A2-γ §3.2.2 + Amendment 4 (§1.1.4): the v0.4.x
oauthAuthorizationModule({ codeRepository, clientRepository }) factory
whose init(ctx) conditionally called ctx.grantRegistry.register(...)
is replaced by a defineModule(...) factory whose contributes.grants
entries the boot planner registers automatically.
Caller surface: oauthAuthorizationModule({ codeRepository, clientRepository })
→ oauthAuthorizationModule({ config }).
Both repositories now flow through requires from the DI graph.
Theme B (one responsibility per module), Theme D (immutability — no init
mutation of ctx), Theme E (structural conditional via factory body).
Declarative manifest for the authorization_code and refresh_token grants.
Per A2-γ §3.2.2 + Amendment 4 (§1.1.4): the v0.4.x
oauthAuthorizationModule({ codeRepository, clientRepository })factory whoseinit(ctx)conditionally calledctx.grantRegistry.register(...)is replaced by adefineModule(...)factory whosecontributes.grantsentries the boot planner registers automatically.Caller surface:
oauthAuthorizationModule({ codeRepository, clientRepository })→oauthAuthorizationModule({ config }). Both repositories now flow throughrequiresfrom the DI graph.Theme B (one responsibility per module), Theme D (immutability — no init mutation of ctx), Theme E (structural conditional via factory body).