@maronn-openid-connect/cli 0.5.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -51,8 +51,16 @@ maronn-oidc setup <framework> [options]
51
51
  | `--enable <features>` | 有効化する機能(カンマ区切り・複数回指定可) |
52
52
  | `--disable <features>` | 既定セットから外す機能(カンマ区切り・複数回指定可) |
53
53
  | `--scope <scopes>` | 生成 OP が受け付けるカスタムスコープ(カンマ区切り・複数回指定可) |
54
+ | `--force` | 出力先に既にあるファイルを上書きする |
55
+ | `--dry-run` | 書き込みを行わず、出力予定のファイル一覧(新規か上書きか)を表示する |
54
56
  | `--help, -h` | ヘルプ表示 |
55
57
 
58
+ ### 既存ファイルの上書き保護
59
+
60
+ 出力先に生成対象と同名のファイルが 1 つでもある場合、`generate` / `setup` は**何も書き込まずに**そのファイル一覧を表示して終了コード 1 で終わる。改造済みの `config.ts` や `store.ts` を再実行で失わないためで、上書きするには `--force` を明示する(ログは新規が `Created:`、上書きが `Overwritten:` になる)。事前に結果を確認したいときは `--dry-run` を使う。
61
+
62
+ 再生成する予定があるなら、生成直後にコミットしてから改造すること。`--force` で上書きしても、自分の変更を `git diff` で取り戻せる。
63
+
56
64
  ## 生成されるもの
57
65
 
58
66
  ```
@@ -61,11 +69,15 @@ oidc-provider/
61
69
  ├── config.ts # ProviderConfig・クライアント登録(既定値はローカル検証専用)
62
70
  ├── store.ts # インメモリストア(認可コード・トークン・セッション等)
63
71
  ├── resolvers.ts # セッション・同意状態の resolver
64
- ├── views.ts # ログイン / 同意 / エラー画面のデフォルト UI
65
- ├── routes/ # 各エンドポイントのルート実装
66
- └── conformance.test.ts # 生成 OP の想定挙動を固定する契約テスト
72
+ ├── views.ts # ログイン / 同意 / エラー画面のデフォルト HTML
73
+ ├── pages/ # 画面用ルーティング(ブラウザ向けの GET/POST。描画・リダイレクト・Cookie 付与はすべてここ。UI カスタマイズはここ)
74
+ ├── routes/ # API ルーティング(ロジック本体。ブラウザ向けステップは Response を返さず結果(outcome)を返す関数)
75
+ ├── conformance.test.ts # 生成 OP の想定挙動を固定する契約テスト
76
+ └── .maronn-openid-connect.json # 生成元の CLI バージョンと機能構成の記録
67
77
  ```
68
78
 
79
+ `.maronn-openid-connect.json` は、どの CLI バージョン・どの機能構成(`framework` / `features` / `scopes`)から生成されたかを記録するマニフェスト。テンプレートへ仕様修正が入ったとき、リリースノートと突き合わせて「自分のコードがどの版から生成されたか」を特定する起点になる。利用者が編集するファイルではないため、上書き保護の対象外として毎回更新される(生成日時は含めず、同じ入力からは同じ出力になる)。
80
+
69
81
  生成される OP のエンドポイント:
70
82
 
71
83
  | パス | 役割 |
@@ -73,12 +85,35 @@ oidc-provider/
73
85
  | `/authorize` | 認可エンドポイント(`response_type=code`、PKCE S256、`prompt` / `max_age` / `claims` / Request Object 対応) |
74
86
  | `/token` | トークンエンドポイント(`authorization_code` / `refresh_token` グラント、`client_secret_basic` / `client_secret_post` / public client) |
75
87
  | `/userinfo` | UserInfo エンドポイント(Bearer トークン、scope 別クレーム) |
76
- | `/login`, `/consent` | ログイン・同意画面(差し替え可能なデフォルト UI 付き) |
88
+ | `/login`, `/consent` | ログイン・同意画面。ルート(GET / POST)と描画は `pages/`、認証・同意の判断は `routes/` の関数が担当する(差し替え可能なデフォルト UI 付き) |
89
+ | `/login/google` | Sign in with Google の `login_uri`(Google が ID トークンを POST する先。`google-login` 有効時) |
77
90
  | `/.well-known/openid-configuration` | Discovery メタデータ |
78
91
  | `/.well-known/jwks.json` | JWKS(公開鍵) |
79
92
  | `/introspect` | RFC 7662 Token Introspection(`introspection` 有効時) |
80
93
  | `/revoke` | RFC 7009 Token Revocation(`revocation` 有効時) |
81
94
 
95
+ ## 画面用ルーティング(pages/)と API ルーティング(routes/)
96
+
97
+ 生成されるルーティングは 2 種類に分かれている。ブラウザに返すもの(画面の描画・リダイレクト・Cookie の付与)はすべて `pages/` が担当し、`routes/` は Response を一切作らない。UI をカスタマイズするときに触るのは `pages/`(と `views.ts`)だけで、`routes/` のロジックは読まなくてよい。
98
+
99
+ | 層 | ファイル | 役割 |
100
+ |---|---|---|
101
+ | 画面用ルーティング | `pages/authorize.ts` / `pages/login.ts` / `pages/consent.ts` / `pages/errors.ts` / `pages/respond.ts`(機能有効時: `pages/device.ts` / `pages/ciba.ts` / `pages/logout.ts`) | ブラウザ向けのルートは **GET も POST も** ここにある(`GET\|POST /authorize`・`GET\|POST /login`・`GET\|POST /consent` など)。リクエストを読み、`routes/` の関数を 1 回呼び、返ってきた結果(outcome)を画面かリダイレクトに変換する。ロジックは持たない |
102
+ | API ルーティング | `routes/*.ts` | OIDC のロジック本体。`token` / `userinfo` などの JSON エンドポイントはルーターのまま。ブラウザ向けの各ステップ(`authorize` / `login` / `consent` / `device` / `ciba-verification` / `logout`)は Response を返さない関数(`processAuthorizationRequest()` / `prepareLogin()` / `submitLogin()` / `submitConsent()` など)で、結果を `kind` 付きの outcome(リダイレクト先 `location`、付与する `cookies`、画面データ、またはエラー)として返す。描画・リダイレクト・`Set-Cookie`・`c.json()` は一切行わず、`views.ts` も `pages/` も import しない |
103
+
104
+ たとえば `POST /login` は `pages/login.ts` がフォームを読んで `submitLogin()` を呼び、`{ kind: 'authenticated', cookies }` なら Cookie を付けて `/consent` へ 302、`{ kind: 'invalid_credentials' }` ならフォームを再表示、`{ kind: 'locked_out' }` なら 429 のエラー画面、という変換だけを行う。ステータスコード・Cookie・リダイレクト先といった HTTP の契約は `conformance.test.ts` が固定している。
105
+
106
+ UI を変える場所は、変えたい範囲で選ぶ。
107
+
108
+ - **HTML だけ変える** → `views.ts` の `default*Page` を書き換えるか、`createApp` / `applyOidc` の `views` オプションで差し替える
109
+ - **描画の仕方を変える**(テンプレートエンジン、フレームワークネイティブの Response、別に用意した UI へのリダイレクト)→ `pages/*.ts` の `render*Page()` と outcome を変換している箇所を書き換える。画面を返す経路はすべて `pages/` を通るので、`GET /login` もログイン失敗時の再表示も一緒に変わる
110
+ - **画面遷移を変える**(ログイン後の遷移先、エラー時の見せ方など)→ `pages/*.ts` で `redirectWithCookies()` / `withCookies()`(`pages/respond.ts`)を呼んでいる箇所。付けるべき Cookie は outcome の `cookies` にそのまま入っている
111
+ - **非リダイレクトの認可エラー(OIDC Core 1.0 §3.1.2.2)の見せ方を変える** → `pages/errors.ts` の `renderAuthorizationErrorPage()`。`config.authorizationErrorRedirectPath` に OP 内のパスを設定すると、HTML を直接返す代わりにそのパスへ 303 する(Next.js の生成物は `/oidc-error` を使う)
112
+
113
+ フォームの `name`(`transaction_id` / `csrf_token` / `username` / `password`、同意の `action=approve|deny`)は `pages/` が `routes/` の関数へ渡す入力なので、画面を差し替えても維持する。transaction-binding の束縛チェック(`rejectUnboundTransaction()`)や google-login のボタン設定(`buildGoogleSignIn()`)は判断なので `routes/login.ts` / `routes/consent.ts` にあり、`pages/` は返ってきた結果を描くだけでよい。
114
+
115
+ Next.js はもともと `login/page.tsx`(画面)と `login/actions.ts`(Server Action = ロジック)に分かれており、この構造に対応する。`_oidc-provider/pages/` も生成されるが、Route Handler 経由で動く `/authorize` と device / CIBA の画面、契約テストが使うもので、ログイン・同意画面のカスタマイズは `page.tsx` で行う。
116
+
82
117
  ## 機能トグル(--enable / --disable)
83
118
 
84
119
  生成されるOPの機能は、既定の全部入り構成から機能単位で増減できる。
@@ -102,6 +137,21 @@ maronn-oidc generate express --disable pkce
102
137
  Basic OP に必須の機能(authorize / token / userinfo / discovery / jwks / login / consent)はトグル対象外で、常に生成される。
103
138
  未知の機能名や、同じ機能を `--enable` と `--disable` の両方に指定した場合はエラーになる。
104
139
 
140
+ ### 拡張機能(--enable google-login)
141
+
142
+ 拡張機能は、OAuth / OIDC の仕様ではなく**ログイン手段**を生成コードに足すカテゴリで、既定では無効。実装は別 package にあり、有効にしたときだけ import される。
143
+
144
+ ```bash
145
+ maronn-oidc generate express --enable google-login
146
+ pnpm add express @maronn-openid-connect/core @maronn-openid-connect/google-login
147
+ ```
148
+
149
+ | 機能名 | 既定 | 内容 | 実装 package |
150
+ |---|---|---|---|
151
+ | `google-login` | 無効 | ログイン画面に「Google でログイン」(Google Identity Services の redirect mode)を追加し、Google が ID トークンを POST する `POST /login/google` を生成する。ID トークンの検証は Google 公式の `google-auth-library` に委ね、CSRF(`g_csrf_token` の Double Submit Cookie)、nonce による認証トランザクションへの束縛、`google:<sub>` を subject にした Google ユーザーの JIT 登録を生成コードが行う | `@maronn-openid-connect/google-login`(Node.js 22 以上限定。Cloudflare Workers などのエッジでは動かない) |
152
+
153
+ 有効化しても `config.googleLogin` を渡すまでボタンは表示されず、`/login/google` は 404 を返す。設定は `ProviderConfig.googleLogin = { clientId, hostedDomain?, requireVerifiedEmail? }` で、Google Cloud コンソールの OAuth クライアントには `<issuer>/login/google` を「承認済みのリダイレクト URI」に、ログイン画面のオリジンを「承認済みの JavaScript 生成元」に登録する。生成される Next.js の `runtime.ts` と本リポジトリの samples は `GOOGLE_CLIENT_ID` / `GOOGLE_HOSTED_DOMAIN` からこれを読む。詳細は [`@maronn-openid-connect/google-login` の README](../google-login/README.md) を参照。
154
+
105
155
  ## カスタムスコープ(--scope)
106
156
 
107
157
  標準スコープ(`openid` / `profile` / `email` / `address` / `phone` / `offline_access`)以外に受け付けるスコープを、生成時に宣言できる。
@@ -159,7 +209,7 @@ export async function resolveGrantableScopes(
159
209
  1. ProviderConfig・署名鍵・クライアント resolver を環境変数 / DB / KV から供給する
160
210
  2. 生成される `JsonStoreBackend` を実装し、`createJsonProviderStores()` の結果を `storage` に渡す
161
211
  3. `config.ts` と未指定時のインメモリストアはローカル検証・契約テスト専用として扱う
162
- 4. 依存をインストールしてサーバーを起動する(例: `pnpm add hono @maronn-openid-connect/core`)
212
+ 4. 依存をインストールしてサーバーを起動する(例: `pnpm add hono @maronn-openid-connect/core`。`--enable google-login` 時は `@maronn-openid-connect/google-login` も)
163
213
 
164
214
  署名鍵は `SigningKeyProvider` として注入する。`createCachedSigningKeyProvider()`(core 提供)でラップすると、TTL 付きキャッシュで鍵ローテーションに追随できる。
165
215
 
@@ -2,8 +2,10 @@ export declare const AVAILABLE_FEATURES: readonly ['pkce', 'refresh-token', 'int
2
2
  export type FeatureName = (typeof AVAILABLE_FEATURES)[number];
3
3
  export declare const OPTIONAL_FEATURES: readonly ['transaction-binding'];
4
4
  export type OptionalFeatureName = (typeof OPTIONAL_FEATURES)[number];
5
- export declare const EXPERIMENTAL_FEATURES: readonly ['par', 'token-exchange', 'jarm', 'device-authorization-grant', 'id-jag', 'ciba', 'jwt-introspection-response'];
5
+ export declare const EXPERIMENTAL_FEATURES: readonly ['par', 'token-exchange', 'jarm', 'device-authorization-grant', 'id-jag', 'ciba', 'jwt-introspection-response', 'rp-initiated-logout'];
6
6
  export type ExperimentalFeatureName = (typeof EXPERIMENTAL_FEATURES)[number];
7
+ export declare const EXTENSION_FEATURES: readonly ['google-login'];
8
+ export type ExtensionFeatureName = (typeof EXTENSION_FEATURES)[number];
7
9
  export interface OidcFeatureConfig {
8
10
  pkce: boolean;
9
11
  refreshToken: boolean;
@@ -17,6 +19,8 @@ export interface OidcFeatureConfig {
17
19
  idJag: boolean;
18
20
  ciba: boolean;
19
21
  jwtIntrospectionResponse: boolean;
22
+ rpInitiatedLogout: boolean;
23
+ googleLogin: boolean;
20
24
  transactionBinding: boolean;
21
25
  }
22
26
  export declare const DEFAULT_FEATURES: OidcFeatureConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../src/features.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,kBAAkB,YAC7B,MAAM,EACN,eAAe,EACf,eAAe,EACf,YAAY,EACZ,gBAAgB,CACR,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAiB9D,eAAO,MAAM,iBAAiB,YAAI,qBAAqB,CAAU,CAAC;AAElE,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AA2BrE,eAAO,MAAM,qBAAqB,YAChC,KAAK,EACL,gBAAgB,EAChB,MAAM,EACN,4BAA4B,EAC5B,QAAQ,EACR,MAAM,EACN,4BAA4B,CACpB,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AA6D7E,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,GAAG,EAAE,OAAO,CAAC;IACb,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,wBAAwB,EAAE,OAAO,CAAC;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,wBAAwB,EAAE,OAAO,CAAC;IAClC,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AA+BD,eAAO,MAAM,gBAAgB,EAAE,iBAc9B,CAAC;AAwCF,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACvC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,GAAG,iBAAiB,CAoCpB"}
1
+ {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../src/features.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,kBAAkB,YAC7B,MAAM,EACN,eAAe,EACf,eAAe,EACf,YAAY,EACZ,gBAAgB,CACR,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAiB9D,eAAO,MAAM,iBAAiB,YAAI,qBAAqB,CAAU,CAAC;AAElE,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AA+BrE,eAAO,MAAM,qBAAqB,YAChC,KAAK,EACL,gBAAgB,EAChB,MAAM,EACN,4BAA4B,EAC5B,QAAQ,EACR,MAAM,EACN,4BAA4B,EAC5B,qBAAqB,CACb,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAkB7E,eAAO,MAAM,kBAAkB,YAAI,cAAc,CAAU,CAAC;AAE5D,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AA4EvE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,GAAG,EAAE,OAAO,CAAC;IACb,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,wBAAwB,EAAE,OAAO,CAAC;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,wBAAwB,EAAE,OAAO,CAAC;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAqCD,eAAO,MAAM,gBAAgB,EAAE,iBAgB9B,CAAC;AA+CF,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACvC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,GAAG,iBAAiB,CAqCpB"}
package/dist/features.js CHANGED
@@ -14,7 +14,9 @@ export const EXPERIMENTAL_FEATURES = [
14
14
  'id-jag',
15
15
  'ciba',
16
16
  'jwt-introspection-response',
17
+ 'rp-initiated-logout',
17
18
  ];
19
+ export const EXTENSION_FEATURES = ['google-login'];
18
20
  const FEATURE_KEYS = {
19
21
  pkce: 'pkce',
20
22
  'refresh-token': 'refreshToken',
@@ -33,6 +35,10 @@ const EXPERIMENTAL_FEATURE_KEYS = {
33
35
  'id-jag': 'idJag',
34
36
  ciba: 'ciba',
35
37
  'jwt-introspection-response': 'jwtIntrospectionResponse',
38
+ 'rp-initiated-logout': 'rpInitiatedLogout',
39
+ };
40
+ const EXTENSION_FEATURE_KEYS = {
41
+ 'google-login': 'googleLogin',
36
42
  };
37
43
  export const DEFAULT_FEATURES = {
38
44
  pkce: true,
@@ -47,6 +53,8 @@ export const DEFAULT_FEATURES = {
47
53
  idJag: false,
48
54
  ciba: false,
49
55
  jwtIntrospectionResponse: false,
56
+ rpInitiatedLogout: false,
57
+ googleLogin: false,
50
58
  transactionBinding: false,
51
59
  };
52
60
  function isOptionalFeature(name) {
@@ -55,18 +63,25 @@ function isOptionalFeature(name) {
55
63
  function isExperimentalFeature(name) {
56
64
  return EXPERIMENTAL_FEATURES.includes(name);
57
65
  }
66
+ function isExtensionFeature(name) {
67
+ return EXTENSION_FEATURES.includes(name);
68
+ }
58
69
  function assertKnownFeature(name) {
59
70
  if (!AVAILABLE_FEATURES.includes(name) &&
60
71
  !isOptionalFeature(name) &&
61
- !isExperimentalFeature(name)) {
72
+ !isExperimentalFeature(name) &&
73
+ !isExtensionFeature(name)) {
62
74
  throw new Error(`Unknown feature: "${name}". Available features: ${AVAILABLE_FEATURES.join(', ')}. ` +
63
75
  `Optional features (disabled by default): ${OPTIONAL_FEATURES.join(', ')}. ` +
64
- `Experimental features (disabled by default): ${EXPERIMENTAL_FEATURES.join(', ')}`);
76
+ `Experimental features (disabled by default): ${EXPERIMENTAL_FEATURES.join(', ')}. ` +
77
+ `Extension features (disabled by default): ${EXTENSION_FEATURES.join(', ')}`);
65
78
  }
66
79
  }
67
80
  function featureKey(name) {
68
81
  if (isOptionalFeature(name))
69
82
  return OPTIONAL_FEATURE_KEYS[name];
83
+ if (isExtensionFeature(name))
84
+ return EXTENSION_FEATURE_KEYS[name];
70
85
  return isExperimentalFeature(name) ? EXPERIMENTAL_FEATURE_KEYS[name] : FEATURE_KEYS[name];
71
86
  }
72
87
  export function resolveFeatures(options) {
@@ -1 +1 @@
1
- {"version":3,"file":"features.js","sourceRoot":"","sources":["../src/features.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"features.js","sourceRoot":"","sources":["../src/features.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/frameworks/hono/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AA4BvF,qBAAa,aAAc,YAAW,kBAAkB;IACtD,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,WAAW,UAAU;IAE9B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CA4DnD;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/frameworks/hono/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAuCvF,qBAAa,aAAc,YAAW,kBAAkB;IACtD,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,WAAW,UAAU;IAE9B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAiFnD;CACF"}
@@ -1,5 +1,6 @@
1
1
  import { DEFAULT_FEATURES } from '../../features.js';
2
- import { appTemplate, applyTemplate, configTemplate, customScopesTemplate, storeTemplate, resolversTemplate, viewsTemplate, authorizeRouteTemplate, tokenRouteTemplate, userinfoRouteTemplate, introspectionRouteTemplate, revocationRouteTemplate, jwksRouteTemplate, parRouteTemplate, deviceAuthorizationRouteTemplate, deviceVerificationRouteTemplate, backchannelAuthenticationRouteTemplate, cibaVerificationRouteTemplate, jarmConfigTemplate, discoveryRouteTemplate, loginRouteTemplate, consentRouteTemplate, conformanceTestTemplate, } from './templates.js';
2
+ import { appTemplate, applyTemplate, configTemplate, customScopesTemplate, storeTemplate, resolversTemplate, viewsTemplate, authorizeRouteTemplate, tokenRouteTemplate, userinfoRouteTemplate, introspectionRouteTemplate, revocationRouteTemplate, jwksRouteTemplate, parRouteTemplate, deviceAuthorizationRouteTemplate, deviceVerificationRouteTemplate, backchannelAuthenticationRouteTemplate, cibaVerificationRouteTemplate, endSessionRouteTemplate, jarmConfigTemplate, discoveryRouteTemplate, loginRouteTemplate, consentRouteTemplate, conformanceTestTemplate, } from './templates.js';
3
+ import { authorizePageTemplate, cibaPageTemplate, consentPageTemplate, devicePageTemplate, errorPageTemplate, loginPageTemplate, logoutPageTemplate, respondTemplate, } from './pages.js';
3
4
  export class HonoGenerator {
4
5
  name = 'hono';
5
6
  displayName = 'Hono';
@@ -17,6 +18,18 @@ export class HonoGenerator {
17
18
  { path: 'store.ts', content: storeTemplate(pkg, features) },
18
19
  { path: 'resolvers.ts', content: resolversTemplate(pkg, features) },
19
20
  { path: 'views.ts', content: viewsTemplate(features) },
21
+ { path: 'pages/respond.ts', content: respondTemplate() },
22
+ { path: 'pages/errors.ts', content: errorPageTemplate() },
23
+ { path: 'pages/authorize.ts', content: authorizePageTemplate() },
24
+ { path: 'pages/login.ts', content: loginPageTemplate(features) },
25
+ { path: 'pages/consent.ts', content: consentPageTemplate() },
26
+ ...(features.deviceAuthorizationGrant
27
+ ? [{ path: 'pages/device.ts', content: devicePageTemplate() }]
28
+ : []),
29
+ ...(features.ciba ? [{ path: 'pages/ciba.ts', content: cibaPageTemplate() }] : []),
30
+ ...(features.rpInitiatedLogout
31
+ ? [{ path: 'pages/logout.ts', content: logoutPageTemplate() }]
32
+ : []),
20
33
  { path: 'routes/authorize.ts', content: authorizeRouteTemplate(pkg, features, scopes) },
21
34
  { path: 'routes/token.ts', content: tokenRouteTemplate(pkg, features) },
22
35
  { path: 'routes/userinfo.ts', content: userinfoRouteTemplate(pkg) },
@@ -47,6 +60,9 @@ export class HonoGenerator {
47
60
  { path: 'routes/ciba-verification.ts', content: cibaVerificationRouteTemplate(pkg, scopes) },
48
61
  ]
49
62
  : []),
63
+ ...(features.rpInitiatedLogout
64
+ ? [{ path: 'routes/logout.ts', content: endSessionRouteTemplate(pkg) }]
65
+ : []),
50
66
  ...(features.jarm
51
67
  ? [{ path: 'routes/jarm.ts', content: jarmConfigTemplate() }]
52
68
  : []),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/frameworks/hono/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/frameworks/hono/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { OidcFeatureConfig } from '../../features.js';
2
+ export declare function respondTemplate(): string;
3
+ export declare function errorPageTemplate(): string;
4
+ export declare function authorizePageTemplate(): string;
5
+ export declare function loginPageTemplate(features?: OidcFeatureConfig): string;
6
+ export declare function consentPageTemplate(): string;
7
+ export declare function devicePageTemplate(): string;
8
+ export declare function cibaPageTemplate(): string;
9
+ export declare function logoutPageTemplate(): string;
10
+ //# sourceMappingURL=pages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../../src/frameworks/hono/pages.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAO3D,wBAAgB,eAAe,IAAI,MAAM,CA6CxC;AAUD,wBAAgB,iBAAiB,IAAI,MAAM,CA+D1C;AAOD,wBAAgB,qBAAqB,IAAI,MAAM,CAiF9C;AAOD,wBAAgB,iBAAiB,CAC/B,QAAQ,GAAE,iBAAoC,GAC7C,MAAM,CAwIR;AAMD,wBAAgB,mBAAmB,IAAI,MAAM,CAqF5C;AAOD,wBAAgB,kBAAkB,IAAI,MAAM,CAoK3C;AAOD,wBAAgB,gBAAgB,IAAI,MAAM,CAuIzC;AAOD,wBAAgB,kBAAkB,IAAI,MAAM,CAyF3C"}