@maronn-openid-connect/cli 0.0.1 → 0.2.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.
@@ -1,5 +1,5 @@
1
1
  import { DEFAULT_FEATURES } from '../../features.js';
2
- import { authorizeRouteTemplate, configTemplate, conformanceTestClientsBlock, consentWithdrawalConformanceBlock, consentRouteTemplate, customViewConformanceTestBlock, discoveryRouteTemplate, endpointBehaviorConformanceBlock, featureDisabledDiscoveryConformanceTests, idTokenHintConformanceBlock, introspectionConformanceBlock, introspectionRouteTemplate, jwksRouteTemplate, loginRouteTemplate, parRouteTemplate, parConformanceBlock, tokenExchangeConformanceBlock, pkceDisabledConformanceBlock, persistentStorageConformanceBlock, requestObjectConformanceBeforeAll, requestObjectConformanceModuleSetup, resolversTemplate, reuseFlowConformanceTestBlock, revocationDisabledConformanceBlock, revocationRouteTemplate, scopesSupportedConformanceTest, storeTemplate, tokenEndpointAuthMethodsConformanceBlock, tokenRouteTemplate, userinfoRouteTemplate, viewsTemplate, } from '../hono/templates.js';
2
+ import { authorizationCodeConformanceHelper, authorizeRouteTemplate, configTemplate, conformanceTestClientsBlock, consentWithdrawalConformanceBlock, consentRouteTemplate, customViewConformanceTestBlock, deviceAuthorizationConformanceBlock, deviceAuthorizationRouteTemplate, deviceVerificationRouteTemplate, discoveryRouteTemplate, endpointBehaviorConformanceBlock, featureDisabledDiscoveryConformanceTests, idTokenHintConformanceBlock, introspectionConformanceBlock, introspectionRouteTemplate, jwksRouteTemplate, loginRouteTemplate, parRouteTemplate, parConformanceBlock, jarmConformanceBlock, jarmConfigTemplate, tokenExchangeConformanceBlock, pkceDisabledConformanceBlock, persistentStorageConformanceBlock, requestObjectConformanceBeforeAll, requestObjectConformanceModuleSetup, resolversTemplate, reuseFlowConformanceTestBlock, revocationDisabledConformanceBlock, revocationRouteTemplate, scopesSupportedConformanceTest, storeTemplate, tokenEndpointAuthMethodsConformanceBlock, tokenRouteTemplate, transactionBindingConformanceBlock, userinfoRouteTemplate, viewsTemplate, } from '../hono/templates.js';
3
3
  function toWebRouteTemplate(content) {
4
4
  return content
5
5
  .replace("import { Hono } from 'hono';", "import { WebRouter } from '../web-router.js';")
@@ -373,6 +373,23 @@ export function webAppTemplate(corePkg, features = DEFAULT_FEATURES) {
373
373
  const parStoreImport = features.par
374
374
  ? ` parStore,\n`
375
375
  : '';
376
+ const deviceImport = features.deviceAuthorizationGrant
377
+ ? `import { deviceAuthorizationApp } from './routes/device-authorization.js';
378
+ import { deviceApp } from './routes/device.js';\n`
379
+ : '';
380
+ const deviceCors = features.deviceAuthorizationGrant
381
+ ? ` app.use('/device_authorization', protectedCors);\n`
382
+ : '';
383
+ const deviceMount = features.deviceAuthorizationGrant
384
+ ? ` app.route('/device_authorization', deviceAuthorizationApp);
385
+ app.route('/device', deviceApp);\n`
386
+ : '';
387
+ const deviceStorageContext = features.deviceAuthorizationGrant
388
+ ? ` c.set('deviceAuthorizationStore', deviceAuthorizationStore);\n`
389
+ : '';
390
+ const deviceStoreImport = features.deviceAuthorizationGrant
391
+ ? ` deviceAuthorizationStore,\n`
392
+ : '';
376
393
  const refreshStorageContext = features.refreshToken
377
394
  ? ` c.set('refreshTokenResolver', storeResolvers.refreshTokenResolver);\n`
378
395
  : '';
@@ -387,7 +404,7 @@ export function webAppTemplate(corePkg, features = DEFAULT_FEATURES) {
387
404
  import { authorizeApp } from './routes/authorize.js';
388
405
  import { tokenApp } from './routes/token.js';
389
406
  import { userinfoApp } from './routes/userinfo.js';
390
- ${introspectionImport}${revocationImport}${parImport}import { jwksApp } from './routes/jwks.js';
407
+ ${introspectionImport}${revocationImport}${parImport}${deviceImport}import { jwksApp } from './routes/jwks.js';
391
408
  import { discoveryApp } from './routes/discovery.js';
392
409
  import { loginApp } from './routes/login.js';
393
410
  import { consentApp } from './routes/consent.js';
@@ -401,7 +418,7 @@ import {
401
418
  } from './resolvers.js';
402
419
  import {
403
420
  defaultProviderStores,
404
- ${parStoreImport} type ProviderStores,
421
+ ${parStoreImport}${deviceStoreImport} type ProviderStores,
405
422
  } from './store.js';
406
423
  import { createViews, type Views } from './views.js';
407
424
  import {
@@ -475,7 +492,7 @@ export function createApp(options: OidcProviderOptions): WebRouter {
475
492
  });
476
493
  app.use('/token', protectedCors);
477
494
  app.use('/userinfo', protectedCors);
478
- ${introspectionCors}${revocationCors}${parCors} app.use('/.well-known/openid-configuration', publicCors);
495
+ ${introspectionCors}${revocationCors}${parCors}${deviceCors} app.use('/.well-known/openid-configuration', publicCors);
479
496
  app.use('/.well-known/jwks.json', publicCors);
480
497
 
481
498
  app.use('*', async (c, next) => {
@@ -533,7 +550,7 @@ ${introspectionCors}${revocationCors}${parCors} app.use('/.well-known/openid-co
533
550
  c.set('authCodeResolver', storeResolvers.authorizationCodeResolver);
534
551
  c.set('accessTokenResolver', storeResolvers.accessTokenResolver);
535
552
  c.set('userClaimsResolver', storeResolvers.userClaimsResolver);
536
- ${refreshStorageContext}${introspectionStorageContext}${revocationStorageContext}${parStorageContext}
553
+ ${refreshStorageContext}${introspectionStorageContext}${revocationStorageContext}${parStorageContext}${deviceStorageContext}
537
554
  if (options.acrResolver) {
538
555
  c.set('acrResolver', options.acrResolver);
539
556
  }
@@ -551,7 +568,7 @@ ${refreshStorageContext}${introspectionStorageContext}${revocationStorageContext
551
568
  app.route('/authorize', authorizeApp);
552
569
  app.route('/token', tokenApp);
553
570
  app.route('/userinfo', userinfoApp);
554
- ${introspectionMount}${revocationMount}${parMount} app.route('/.well-known/jwks.json', jwksApp);
571
+ ${introspectionMount}${revocationMount}${parMount}${deviceMount} app.route('/.well-known/jwks.json', jwksApp);
555
572
  app.route('/.well-known/openid-configuration', discoveryApp);
556
573
  app.route('/login', loginApp);
557
574
  app.route('/consent', consentApp);
@@ -603,6 +620,10 @@ export function expressApplyTemplate(features = DEFAULT_FEATURES) {
603
620
  const parEndpoint = features.par
604
621
  ? ` '/par',\n`
605
622
  : '';
623
+ const deviceEndpoints = features.deviceAuthorizationGrant
624
+ ? ` '/device_authorization',
625
+ '/device',\n`
626
+ : '';
606
627
  return `import type { Express } from 'express';
607
628
  import type { Request, Response, NextFunction } from 'express';
608
629
  import { createApp, type OidcProviderOptions } from './app.js';
@@ -614,7 +635,7 @@ const OIDC_ENDPOINTS = [
614
635
  '/authorize',
615
636
  '/token',
616
637
  '/userinfo',
617
- ${introspectionEndpoint}${revocationEndpoint}${parEndpoint} '/.well-known/jwks.json',
638
+ ${introspectionEndpoint}${revocationEndpoint}${parEndpoint}${deviceEndpoints} '/.well-known/jwks.json',
618
639
  '/.well-known/openid-configuration',
619
640
  '/login',
620
641
  '/consent',
@@ -647,6 +668,12 @@ export function fastifyApplyTemplate(features = DEFAULT_FEATURES) {
647
668
  const parRoute = features.par
648
669
  ? ` app.route({ method: ['POST', 'OPTIONS'], url: '/par', handler: handle });\n`
649
670
  : '';
671
+ const deviceRoutes = features.deviceAuthorizationGrant
672
+ ? ` app.route({ method: ['POST', 'OPTIONS'], url: '/device_authorization', handler: handle });
673
+ app.route({ method: ['GET', 'POST'], url: '/device', handler: handle });
674
+ app.route({ method: ['POST'], url: '/device/login', handler: handle });
675
+ app.route({ method: ['POST'], url: '/device/approve', handler: handle });\n`
676
+ : '';
650
677
  return `import type { FastifyInstance } from 'fastify';
651
678
  import type { FastifyReply, FastifyRequest } from 'fastify';
652
679
  import { createApp, type OidcProviderOptions } from './app.js';
@@ -682,7 +709,7 @@ export async function applyOidc(app: FastifyInstance, options: ApplyOidcOptions)
682
709
  app.route({ method: ['GET', 'POST', 'OPTIONS'], url: '/authorize', handler: handle });
683
710
  app.route({ method: ['POST', 'OPTIONS'], url: '/token', handler: handle });
684
711
  app.route({ method: ['GET', 'POST', 'OPTIONS'], url: '/userinfo', handler: handle });
685
- ${introspectionRoute}${revocationRoute}${parRoute} app.route({ method: ['GET', 'OPTIONS'], url: '/.well-known/jwks.json', handler: handle });
712
+ ${introspectionRoute}${revocationRoute}${parRoute}${deviceRoutes} app.route({ method: ['GET', 'OPTIONS'], url: '/.well-known/jwks.json', handler: handle });
686
713
  app.route({ method: ['GET', 'OPTIONS'], url: '/.well-known/openid-configuration', handler: handle });
687
714
  app.route({ method: ['GET', 'POST'], url: '/login', handler: handle });
688
715
  app.route({ method: ['GET', 'POST'], url: '/consent', handler: handle });
@@ -840,7 +867,7 @@ class UpstashRedisJsonStoreBackend implements JsonStoreBackend {
840
867
  constructor(
841
868
  private readonly url: string,
842
869
  private readonly token: string,
843
- private readonly namespace = 'maronn-oidc:',
870
+ private readonly namespace = 'maronn-openid-connect:',
844
871
  ) {}
845
872
 
846
873
  async get<T>(key: string): Promise<T | null> {
@@ -1131,10 +1158,58 @@ export const runtime = 'nodejs';
1131
1158
  ${exports}
1132
1159
  `;
1133
1160
  }
1134
- export function nextJsLoginPageTemplate(corePkg) {
1135
- return `import { getAuthTransaction } from '${corePkg}';
1161
+ export function nextJsLoginPageTemplate(corePkg, features = DEFAULT_FEATURES) {
1162
+ const bindingImports = features.transactionBinding
1163
+ ? `import { cookies } from 'next/headers';
1164
+ import { getAuthTransaction, validateTransactionBinding } from '${corePkg}';`
1165
+ : `import { getAuthTransaction } from '${corePkg}';`;
1166
+ const bindingStoreImport = features.transactionBinding
1167
+ ? `import {
1168
+ defaultProviderStores,
1169
+ TRANSACTION_BINDING_COOKIE_PREFIX,
1170
+ } from '../_oidc-provider/store';`
1171
+ : `import { defaultProviderStores } from '../_oidc-provider/store';`;
1172
+ const bindingHelper = features.transactionBinding
1173
+ ? `
1174
+ /**
1175
+ * Is this request coming from the User-Agent that started the transaction?
1176
+ * The authorization endpoint handed that browser a secret in an HttpOnly cookie
1177
+ * named per transaction; only its hash is stored (OIDC Core 1.0 Section 3.1.2.3
1178
+ * / 3.1.2.4). See buildTransactionBindingCookie() in _oidc-provider/store.ts.
1179
+ */
1180
+ async function isBoundToThisBrowser(
1181
+ transaction: Awaited<ReturnType<typeof getAuthTransaction>>,
1182
+ transactionId: string,
1183
+ ): Promise<boolean> {
1184
+ const cookieStore = await cookies();
1185
+ const bindingSecret = cookieStore.get(TRANSACTION_BINDING_COOKIE_PREFIX + transactionId)?.value;
1186
+ try {
1187
+ await validateTransactionBinding(transaction, bindingSecret);
1188
+ return true;
1189
+ } catch {
1190
+ return false;
1191
+ }
1192
+ }
1193
+ `
1194
+ : '';
1195
+ const bindingCheck = features.transactionBinding
1196
+ ? `
1197
+ // OIDC Core 1.0 Section 3.1.2.3 / 3.1.2.4: this form embeds csrf_token, so only
1198
+ // the User-Agent that started the transaction may render it. transaction_id
1199
+ // alone is not proof — it rides in the URL and can leak. See store.ts.
1200
+ if (!(await isBoundToThisBrowser(transaction, transactionId))) {
1201
+ return (
1202
+ <main>
1203
+ <h1>Login</h1>
1204
+ <p role="alert">This authorization transaction was not started by this browser.</p>
1205
+ </main>
1206
+ );
1207
+ }
1208
+ `
1209
+ : '';
1210
+ return `${bindingImports}
1136
1211
  import { oidcProviderOptions } from '../_oidc-provider/runtime';
1137
- import { defaultProviderStores } from '../_oidc-provider/store';
1212
+ ${bindingStoreImport}
1138
1213
  import { loginAction } from './actions';
1139
1214
 
1140
1215
  const transactionStore =
@@ -1151,7 +1226,7 @@ interface LoginPageProps {
1151
1226
  remaining?: string;
1152
1227
  }>;
1153
1228
  }
1154
-
1229
+ ${bindingHelper}
1155
1230
  /**
1156
1231
  * Login page (React Server Component).
1157
1232
  *
@@ -1183,7 +1258,7 @@ export default async function LoginPage({ searchParams }: LoginPageProps) {
1183
1258
  }
1184
1259
 
1185
1260
  const transaction = await getAuthTransaction(transactionId, transactionStore);
1186
-
1261
+ ${bindingCheck}
1187
1262
  const errorMessage =
1188
1263
  error === 'invalid_credentials'
1189
1264
  ? \`Invalid credentials\${remaining ? \`. Attempts remaining: \${remaining}\` : ''}\`
@@ -1272,19 +1347,43 @@ export default function OidcAuthorizationError() {
1272
1347
  }
1273
1348
  `;
1274
1349
  }
1275
- export function nextJsLoginActionTemplate(corePkg) {
1350
+ export function nextJsLoginActionTemplate(corePkg, features = DEFAULT_FEATURES) {
1351
+ const bindingCoreImport = features.transactionBinding
1352
+ ? `
1353
+ validateTransactionBinding,`
1354
+ : '';
1355
+ const bindingStoreImport = features.transactionBinding
1356
+ ? `import {
1357
+ defaultProviderStores,
1358
+ SESSION_COOKIE_NAME,
1359
+ TRANSACTION_BINDING_COOKIE_PREFIX,
1360
+ } from '../_oidc-provider/store';`
1361
+ : `import { defaultProviderStores, SESSION_COOKIE_NAME } from '../_oidc-provider/store';`;
1362
+ const bindingCheck = features.transactionBinding
1363
+ ? ` // OIDC Core 1.0 Section 3.1.2.3 / 3.1.2.4: checked before validateCsrfToken —
1364
+ // the CSRF token only proves the value came from the form, and that form is
1365
+ // reachable by anyone holding transaction_id. This proves it is the same
1366
+ // browser. Throws AuthTransactionError, surfaced by the App Router error
1367
+ // boundary rather than redirected to the client. See _oidc-provider/store.ts.
1368
+ const bindingCookieStore = await cookies();
1369
+ await validateTransactionBinding(
1370
+ transaction,
1371
+ bindingCookieStore.get(TRANSACTION_BINDING_COOKIE_PREFIX + transactionId)?.value,
1372
+ );
1373
+ `
1374
+ : '';
1276
1375
  return `'use server';
1277
1376
 
1278
1377
  import { redirect } from 'next/navigation';
1279
1378
  import { cookies } from 'next/headers';
1280
1379
  import {
1281
1380
  getAuthTransaction,
1282
- validateCsrfToken,
1381
+ validateCsrfToken,${bindingCoreImport}
1283
1382
  handleLoginFailure,
1284
1383
  generateRandomString,
1285
1384
  } from '${corePkg}';
1286
1385
  import { oidcProviderOptions } from '../_oidc-provider/runtime';
1287
- import { defaultProviderStores, SESSION_COOKIE_NAME } from '../_oidc-provider/store';
1386
+ ${bindingStoreImport}
1288
1387
 
1289
1388
  const {
1290
1389
  transactionStore,
@@ -1307,7 +1406,7 @@ export async function loginAction(formData: FormData): Promise<void> {
1307
1406
  const password = String(formData.get('password') ?? '');
1308
1407
 
1309
1408
  const transaction = await getAuthTransaction(transactionId, transactionStore);
1310
- validateCsrfToken(transaction, csrfToken);
1409
+ ${bindingCheck} validateCsrfToken(transaction, csrfToken);
1311
1410
 
1312
1411
  const user = await userStore.authenticate(username, password);
1313
1412
  if (!user) {
@@ -1364,10 +1463,59 @@ export async function loginAction(formData: FormData): Promise<void> {
1364
1463
  }
1365
1464
  `;
1366
1465
  }
1367
- export function nextJsConsentPageTemplate(corePkg) {
1368
- return `import { getAuthTransaction } from '${corePkg}';
1466
+ export function nextJsConsentPageTemplate(corePkg, features = DEFAULT_FEATURES) {
1467
+ const bindingImports = features.transactionBinding
1468
+ ? `import { cookies } from 'next/headers';
1469
+ import { getAuthTransaction, validateTransactionBinding } from '${corePkg}';`
1470
+ : `import { getAuthTransaction } from '${corePkg}';`;
1471
+ const bindingStoreImport = features.transactionBinding
1472
+ ? `import {
1473
+ defaultProviderStores,
1474
+ TRANSACTION_BINDING_COOKIE_PREFIX,
1475
+ } from '../_oidc-provider/store';`
1476
+ : `import { defaultProviderStores } from '../_oidc-provider/store';`;
1477
+ const bindingHelper = features.transactionBinding
1478
+ ? `
1479
+ /**
1480
+ * Is this request coming from the User-Agent that started the transaction?
1481
+ * The authorization endpoint handed that browser a secret in an HttpOnly cookie
1482
+ * named per transaction; only its hash is stored (OIDC Core 1.0 Section 3.1.2.3
1483
+ * / 3.1.2.4). See buildTransactionBindingCookie() in _oidc-provider/store.ts.
1484
+ */
1485
+ async function isBoundToThisBrowser(
1486
+ transaction: Awaited<ReturnType<typeof getAuthTransaction>>,
1487
+ transactionId: string,
1488
+ ): Promise<boolean> {
1489
+ const cookieStore = await cookies();
1490
+ const bindingSecret = cookieStore.get(TRANSACTION_BINDING_COOKIE_PREFIX + transactionId)?.value;
1491
+ try {
1492
+ await validateTransactionBinding(transaction, bindingSecret);
1493
+ return true;
1494
+ } catch {
1495
+ return false;
1496
+ }
1497
+ }
1498
+ `
1499
+ : '';
1500
+ const bindingCheck = features.transactionBinding
1501
+ ? `
1502
+ // OIDC Core 1.0 Section 3.1.2.3 / 3.1.2.4: this form embeds csrf_token and its
1503
+ // submission mints the authorization code, so only the User-Agent that started
1504
+ // the transaction may render it. See _oidc-provider/store.ts.
1505
+ if (!(await isBoundToThisBrowser(transaction, transactionId))) {
1506
+ return (
1507
+ <main>
1508
+ <h1>Authorize Application</h1>
1509
+ <p role="alert">This authorization transaction was not started by this browser.</p>
1510
+ </main>
1511
+ );
1512
+ }
1513
+
1514
+ `
1515
+ : '';
1516
+ return `${bindingImports}
1369
1517
  import { oidcProviderOptions } from '../_oidc-provider/runtime';
1370
- import { defaultProviderStores } from '../_oidc-provider/store';
1518
+ ${bindingStoreImport}
1371
1519
  import { consentAction } from './actions';
1372
1520
 
1373
1521
  const transactionStore =
@@ -1378,7 +1526,7 @@ export const dynamic = 'force-dynamic';
1378
1526
  interface ConsentPageProps {
1379
1527
  searchParams: Promise<{ transaction_id?: string }>;
1380
1528
  }
1381
-
1529
+ ${bindingHelper}
1382
1530
  /**
1383
1531
  * Consent page (React Server Component).
1384
1532
  *
@@ -1398,7 +1546,7 @@ export default async function ConsentPage({ searchParams }: ConsentPageProps) {
1398
1546
  }
1399
1547
 
1400
1548
  const transaction = await getAuthTransaction(transactionId, transactionStore);
1401
- const scopes = transaction.scope.split(' ').filter(Boolean);
1549
+ ${bindingCheck} const scopes = transaction.scope.split(' ').filter(Boolean);
1402
1550
 
1403
1551
  return (
1404
1552
  <main>
@@ -1427,20 +1575,61 @@ export default async function ConsentPage({ searchParams }: ConsentPageProps) {
1427
1575
  }
1428
1576
  `;
1429
1577
  }
1430
- export function nextJsConsentActionTemplate(corePkg) {
1578
+ export function nextJsConsentActionTemplate(corePkg, features = DEFAULT_FEATURES) {
1579
+ const bindingCookiesImport = features.transactionBinding
1580
+ ? `
1581
+ import { cookies } from 'next/headers';`
1582
+ : '';
1583
+ const bindingCoreImport = features.transactionBinding
1584
+ ? `
1585
+ validateTransactionBinding,`
1586
+ : '';
1587
+ const bindingStoreImport = features.transactionBinding
1588
+ ? `import {
1589
+ defaultProviderStores,
1590
+ TRANSACTION_BINDING_COOKIE_PREFIX,
1591
+ } from '../_oidc-provider/store';`
1592
+ : `import { defaultProviderStores } from '../_oidc-provider/store';`;
1593
+ const bindingCheck = features.transactionBinding
1594
+ ? ` // OIDC Core 1.0 Section 3.1.2.3 / 3.1.2.4: checked before validateCsrfToken and
1595
+ // before any decision is acted on — this step mints the authorization code, so
1596
+ // an unbound caller must reach it neither to approve nor to deny. Throws
1597
+ // AuthTransactionError, surfaced by the App Router error boundary rather than
1598
+ // redirected to the client. See _oidc-provider/store.ts.
1599
+ const cookieStore = await cookies();
1600
+ const bindingCookieName = TRANSACTION_BINDING_COOKIE_PREFIX + transactionId;
1601
+ await validateTransactionBinding(
1602
+ transaction,
1603
+ cookieStore.get(bindingCookieName)?.value,
1604
+ );
1605
+ `
1606
+ : '';
1607
+ const clearBindingCookie = features.transactionBinding
1608
+ ? ` // The transaction is over; drop its binding cookie so the browser does not
1609
+ // keep one cookie per finished flow.
1610
+ cookieStore.delete(bindingCookieName);
1611
+ `
1612
+ : '';
1613
+ const clearBindingCookieOnSuccess = features.transactionBinding
1614
+ ? ` // The transaction is over; drop its binding cookie so the browser does not
1615
+ // keep one cookie per finished flow.
1616
+ cookieStore.delete(bindingCookieName);
1617
+
1618
+ `
1619
+ : '';
1431
1620
  return `'use server';
1432
1621
 
1433
- import { redirect } from 'next/navigation';
1622
+ import { redirect } from 'next/navigation';${bindingCookiesImport}
1434
1623
  import {
1435
1624
  getAuthTransaction,
1436
- validateCsrfToken,
1625
+ validateCsrfToken,${bindingCoreImport}
1437
1626
  completeAuthTransaction,
1438
1627
  createAuthorizationCode,
1439
1628
  } from '${corePkg}';
1440
1629
  import { oidcProviderOptions } from '../_oidc-provider/runtime';
1441
1630
  import { createStoreResolvers } from '../_oidc-provider/resolvers';
1442
1631
  import type { RegisteredClient } from '../_oidc-provider/config';
1443
- import { defaultProviderStores } from '../_oidc-provider/store';
1632
+ ${bindingStoreImport}
1444
1633
 
1445
1634
  const providerStores = oidcProviderOptions.storage ?? defaultProviderStores;
1446
1635
  const { transactionStore, authCodeStore, authSessionStore } = providerStores;
@@ -1459,7 +1648,7 @@ export async function consentAction(formData: FormData): Promise<void> {
1459
1648
  const action = String(formData.get('action') ?? '');
1460
1649
 
1461
1650
  const transaction = await getAuthTransaction(transactionId, transactionStore);
1462
- validateCsrfToken(transaction, csrfToken);
1651
+ ${bindingCheck} validateCsrfToken(transaction, csrfToken);
1463
1652
 
1464
1653
  // RFC 9207 §2: include the issuer identifier on every authorization response.
1465
1654
  const issuer = oidcProviderOptions.config?.issuer ?? '';
@@ -1473,7 +1662,7 @@ export async function consentAction(formData: FormData): Promise<void> {
1473
1662
  denyUrl.searchParams.set('iss', issuer);
1474
1663
  await transactionStore.delete('auth_txn:' + transactionId);
1475
1664
  await authSessionStore.delete(transactionId);
1476
- redirect(denyUrl.toString());
1665
+ ${clearBindingCookie} redirect(denyUrl.toString());
1477
1666
  }
1478
1667
 
1479
1668
  const session = await authSessionStore.get(transactionId);
@@ -1517,7 +1706,7 @@ export async function consentAction(formData: FormData): Promise<void> {
1517
1706
 
1518
1707
  await authSessionStore.delete(transactionId);
1519
1708
 
1520
- const successUrl = new URL(responseParams.redirectUri);
1709
+ ${clearBindingCookieOnSuccess} const successUrl = new URL(responseParams.redirectUri);
1521
1710
  successUrl.searchParams.set('code', authCodeData.code);
1522
1711
  if (responseParams.state) {
1523
1712
  successUrl.searchParams.set('state', responseParams.state);
@@ -1527,7 +1716,7 @@ export async function consentAction(formData: FormData): Promise<void> {
1527
1716
  }
1528
1717
  `;
1529
1718
  }
1530
- export function webConformanceTestTemplate(corePkg, errorPageMode = 'html', features = DEFAULT_FEATURES, includeNodeAdapterContract = false) {
1719
+ export function webConformanceTestTemplate(corePkg, errorPageMode = 'html', features = DEFAULT_FEATURES, includeNodeAdapterContract = false, jarmConsentResponseMode = 'jwt') {
1531
1720
  const usesRedirect = errorPageMode === 'redirect';
1532
1721
  const createAppConfig = usesRedirect
1533
1722
  ? `
@@ -1633,6 +1822,16 @@ export function webConformanceTestTemplate(corePkg, errorPageMode = 'html', feat
1633
1822
  });
1634
1823
  `
1635
1824
  : '';
1825
+ const responseModesSupportedExpectation = features.jarm
1826
+ ? ` // OAuth 2.0 Multiple Response Type Encoding Practices §2 + JARM §4: the
1827
+ // code flow returns the authorization response via query, and this OP was
1828
+ // generated with --enable jarm, so the JWT-secured query modes are
1829
+ // advertised alongside it.
1830
+ response_modes_supported: ['query', 'query.jwt', 'jwt'],`
1831
+ : ` // OAuth 2.0 Multiple Response Type Encoding Practices §2: the code flow
1832
+ // returns the authorization response via query, so the OP advertises
1833
+ // response_modes_supported as exactly ['query'].
1834
+ response_modes_supported: ['query'],`;
1636
1835
  const parConformanceImports = features.par
1637
1836
  ? `
1638
1837
  import { parStore } from './store.js';
@@ -1658,7 +1857,7 @@ function idTokenPayload(idToken: string): Record<string, unknown> {
1658
1857
  const payload = idToken.split('.')[1] ?? '';
1659
1858
  return JSON.parse(new TextDecoder().decode(Uint8Array.from(atob(payload.replace(/-/g, '+').replace(/_/g, '/')), (char) => char.charCodeAt(0))));
1660
1859
  }
1661
-
1860
+ ${authorizationCodeConformanceHelper(features)}
1662
1861
  ${conformanceTestClientsBlock(features)}${requestObjectConformanceModuleSetup(features)}
1663
1862
  let app: ReturnType<typeof createApp>;
1664
1863
  let signingKeyProvider: SigningKeyProvider;
@@ -1821,10 +2020,7 @@ ${nodeAdapterContract}
1821
2020
  jwks_uri: 'http://localhost:3000/.well-known/jwks.json',
1822
2021
  userinfo_endpoint: 'http://localhost:3000/userinfo',
1823
2022
  response_types_supported: ['code'],
1824
- // OAuth 2.0 Multiple Response Type Encoding Practices §2: the code flow
1825
- // returns the authorization response via query, so the OP advertises
1826
- // response_modes_supported as exactly ['query'].
1827
- response_modes_supported: ['query'],
2023
+ ${responseModesSupportedExpectation}
1828
2024
  });
1829
2025
  });
1830
2026
 
@@ -2063,10 +2259,11 @@ ${nonRedirectErrorTest}
2063
2259
  });
2064
2260
  });
2065
2261
  });
2066
- ${customViewConformanceTestBlock()}${endpointBehaviorConformanceBlock(features)}${idTokenHintConformanceBlock()}${consentWithdrawalConformanceBlock(features)}${reuseFlowConformanceTestBlock(features)}${revocationDisabledConformanceBlock(features)}${tokenEndpointAuthMethodsConformanceBlock()}${pkceDisabledConformanceBlock(features)}${parConformanceBlock(features)}${tokenExchangeConformanceBlock(features)}});
2262
+ ${transactionBindingConformanceBlock(features)}${customViewConformanceTestBlock()}${endpointBehaviorConformanceBlock(features)}${idTokenHintConformanceBlock()}${consentWithdrawalConformanceBlock(features)}${reuseFlowConformanceTestBlock(features)}${revocationDisabledConformanceBlock(features)}${tokenEndpointAuthMethodsConformanceBlock()}${pkceDisabledConformanceBlock(features)}${parConformanceBlock(features)}${tokenExchangeConformanceBlock(features)}${deviceAuthorizationConformanceBlock(features)}${jarmConformanceBlock(features, jarmConsentResponseMode)}});
2067
2263
  `;
2068
2264
  }
2069
- function webCoreGeneratedFiles(corePkg, errorPageMode = 'html', features = DEFAULT_FEATURES, includeNodeAdapterContract = false) {
2265
+ function webCoreGeneratedFiles(corePkg, errorPageMode = 'html', features = DEFAULT_FEATURES, includeNodeAdapterContract = false, jarmConsentResponseMode = 'jwt') {
2266
+ const consentFeatures = jarmConsentResponseMode === 'plain' ? { ...features, jarm: false } : features;
2070
2267
  return [
2071
2268
  { path: 'app.ts', content: webAppTemplate(corePkg, features) },
2072
2269
  { path: 'web-router.ts', content: webRouterTemplate() },
@@ -2079,7 +2276,7 @@ function webCoreGeneratedFiles(corePkg, errorPageMode = 'html', features = DEFAU
2079
2276
  path: 'resolvers.ts',
2080
2277
  content: resolversTemplate(corePkg, features).replace('through Hono context', 'through the generated request context'),
2081
2278
  },
2082
- { path: 'views.ts', content: viewsTemplate() },
2279
+ { path: 'views.ts', content: viewsTemplate(features) },
2083
2280
  { path: 'routes/authorize.ts', content: toWebRouteTemplate(authorizeRouteTemplate(corePkg, features)) },
2084
2281
  { path: 'routes/token.ts', content: toWebRouteTemplate(tokenRouteTemplate(corePkg, features)) },
2085
2282
  { path: 'routes/userinfo.ts', content: toWebRouteTemplate(userinfoRouteTemplate(corePkg)) },
@@ -2092,13 +2289,28 @@ function webCoreGeneratedFiles(corePkg, errorPageMode = 'html', features = DEFAU
2092
2289
  ...(features.par
2093
2290
  ? [{ path: 'routes/par.ts', content: toWebRouteTemplate(parRouteTemplate(corePkg)) }]
2094
2291
  : []),
2292
+ ...(features.deviceAuthorizationGrant
2293
+ ? [
2294
+ {
2295
+ path: 'routes/device-authorization.ts',
2296
+ content: toWebRouteTemplate(deviceAuthorizationRouteTemplate(corePkg, features)),
2297
+ },
2298
+ {
2299
+ path: 'routes/device.ts',
2300
+ content: toWebRouteTemplate(deviceVerificationRouteTemplate(corePkg)),
2301
+ },
2302
+ ]
2303
+ : []),
2304
+ ...(features.jarm
2305
+ ? [{ path: 'routes/jarm.ts', content: jarmConfigTemplate() }]
2306
+ : []),
2095
2307
  { path: 'routes/jwks.ts', content: toWebRouteTemplate(jwksRouteTemplate(corePkg)) },
2096
2308
  { path: 'routes/discovery.ts', content: toWebRouteTemplate(discoveryRouteTemplate(corePkg, features)) },
2097
- { path: 'routes/login.ts', content: toWebRouteTemplate(loginRouteTemplate(corePkg)) },
2098
- { path: 'routes/consent.ts', content: toWebRouteTemplate(consentRouteTemplate(corePkg)) },
2309
+ { path: 'routes/login.ts', content: toWebRouteTemplate(loginRouteTemplate(corePkg, features)) },
2310
+ { path: 'routes/consent.ts', content: toWebRouteTemplate(consentRouteTemplate(corePkg, consentFeatures)) },
2099
2311
  {
2100
2312
  path: 'conformance.test.ts',
2101
- content: webConformanceTestTemplate(corePkg, errorPageMode, features, includeNodeAdapterContract),
2313
+ content: webConformanceTestTemplate(corePkg, errorPageMode, features, includeNodeAdapterContract, jarmConsentResponseMode),
2102
2314
  },
2103
2315
  ];
2104
2316
  }
@@ -2113,7 +2325,7 @@ export function webGeneratedFiles(corePkg, applyTemplate, features = DEFAULT_FEA
2113
2325
  ];
2114
2326
  }
2115
2327
  export function nextJsGeneratedFiles(corePkg, features = DEFAULT_FEATURES) {
2116
- const internalFiles = webCoreGeneratedFiles(corePkg, 'redirect', features).map((file) => ({
2328
+ const internalFiles = webCoreGeneratedFiles(corePkg, 'redirect', features, false, 'plain').map((file) => ({
2117
2329
  path: `_oidc-provider/${file.path}`,
2118
2330
  content: toNextJsModuleImports(file.content),
2119
2331
  }));
@@ -2166,6 +2378,26 @@ export function nextJsGeneratedFiles(corePkg, features = DEFAULT_FEATURES) {
2166
2378
  },
2167
2379
  ]
2168
2380
  : []),
2381
+ ...(features.deviceAuthorizationGrant
2382
+ ? [
2383
+ {
2384
+ path: 'device_authorization/route.ts',
2385
+ content: nextJsEndpointRouteTemplate('../_oidc-provider/runtime', ['POST', 'OPTIONS']),
2386
+ },
2387
+ {
2388
+ path: 'device/route.ts',
2389
+ content: nextJsEndpointRouteTemplate('../_oidc-provider/runtime', ['GET', 'POST']),
2390
+ },
2391
+ {
2392
+ path: 'device/login/route.ts',
2393
+ content: nextJsEndpointRouteTemplate('../../_oidc-provider/runtime', ['POST']),
2394
+ },
2395
+ {
2396
+ path: 'device/approve/route.ts',
2397
+ content: nextJsEndpointRouteTemplate('../../_oidc-provider/runtime', ['POST']),
2398
+ },
2399
+ ]
2400
+ : []),
2169
2401
  {
2170
2402
  path: '.well-known/jwks.json/route.ts',
2171
2403
  content: nextJsEndpointRouteTemplate('../../_oidc-provider/runtime', [
@@ -2180,10 +2412,10 @@ export function nextJsGeneratedFiles(corePkg, features = DEFAULT_FEATURES) {
2180
2412
  'OPTIONS',
2181
2413
  ]),
2182
2414
  },
2183
- { path: 'login/page.tsx', content: nextJsLoginPageTemplate(corePkg) },
2184
- { path: 'login/actions.ts', content: nextJsLoginActionTemplate(corePkg) },
2185
- { path: 'consent/page.tsx', content: nextJsConsentPageTemplate(corePkg) },
2186
- { path: 'consent/actions.ts', content: nextJsConsentActionTemplate(corePkg) },
2415
+ { path: 'login/page.tsx', content: nextJsLoginPageTemplate(corePkg, features) },
2416
+ { path: 'login/actions.ts', content: nextJsLoginActionTemplate(corePkg, features) },
2417
+ { path: 'consent/page.tsx', content: nextJsConsentPageTemplate(corePkg, features) },
2418
+ { path: 'consent/actions.ts', content: nextJsConsentActionTemplate(corePkg, features) },
2187
2419
  { path: 'oidc-error/page.tsx', content: nextJsAuthorizationErrorPageTemplate() },
2188
2420
  { path: 'oidc-error/error.tsx', content: nextJsAuthorizationErrorBoundaryTemplate() },
2189
2421
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/frameworks/web-standard/templates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,2BAA2B,EAC3B,iCAAiC,EACjC,oBAAoB,EACpB,8BAA8B,EAC9B,sBAAsB,EACtB,gCAAgC,EAChC,wCAAwC,EACxC,2BAA2B,EAC3B,6BAA6B,EAC7B,0BAA0B,EAC1B,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,6BAA6B,EAC7B,4BAA4B,EAC5B,iCAAiC,EACjC,iCAAiC,EACjC,mCAAmC,EACnC,iBAAiB,EACjB,6BAA6B,EAC7B,kCAAkC,EAClC,uBAAuB,EACvB,8BAA8B,EAC9B,aAAa,EACb,wCAAwC,EACxC,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAE9B,SAAS,kBAAkB,CAAC,OAAe;IACzC,OAAO,OAAO;SACX,OAAO,CAAC,8BAA8B,EAAE,+CAA+C,CAAC;SACxF,UAAU,CAAC,gDAAgD,EAAE,iBAAiB,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoRR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,WAA8B,gBAAgB;IAE9C,MAAM,mBAAmB,GAAG,QAAQ,CAAC,aAAa;QAChD,CAAC,CAAC,iEAAiE;QACnE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU;QAC1C,CAAC,CAAC,2DAA2D;QAC7D,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa;QAC9C,CAAC,CAAC,4CAA4C;QAC9C,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU;QACxC,CAAC,CAAC,wCAAwC;QAC1C,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa;QAC/C,CAAC,CAAC,iDAAiD;QACnD,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,eAAe,GAAG,QAAQ,CAAC,UAAU;QACzC,CAAC,CAAC,0CAA0C;QAC5C,CAAC,CAAC,EAAE,CAAC;IAGP,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG;QAC5B,CAAC,CAAC,6CAA6C;QAC/C,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG;QAC1B,CAAC,CAAC,qCAAqC;QACvC,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG;QAC3B,CAAC,CAAC,gCAAgC;QAClC,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG;QACpC,CAAC,CAAC,oCAAoC;QACtC,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG;QACjC,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,qBAAqB,GAAG,QAAQ,CAAC,YAAY;QACjD,CAAC,CAAC,2EAA2E;QAC7E,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,2BAA2B,GAAG,QAAQ,CAAC,aAAa;QACxD,CAAC,CAAC;oGAC8F;QAChG,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,wBAAwB,GAAG,QAAQ,CAAC,UAAU;QAClD,CAAC,CAAC,yEAAyE;QAC3E,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;;;;EAIP,mBAAmB,GAAG,gBAAgB,GAAG,SAAS;;;;;;;;;;;;;;EAclD,cAAc;;;;;;;;;UASN,OAAO;;;;;;;;;;UAUP,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuDf,iBAAiB,GAAG,cAAc,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0D5C,qBAAqB,GAAG,2BAA2B,GAAG,wBAAwB,GAAG,iBAAiB;;;;;;;;;;;;;;;;;;EAkBlG,kBAAkB,GAAG,eAAe,GAAG,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwChD,CAAC;AACF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,WAA8B,gBAAgB;IAE9C,MAAM,qBAAqB,GAAG,QAAQ,CAAC,aAAa;QAClD,CAAC,CAAC,oBAAoB;QACtB,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,kBAAkB,GAAG,QAAQ,CAAC,UAAU;QAC5C,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG;QAC9B,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;;;;;;;;;;;EAWP,qBAAqB,GAAG,kBAAkB,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;CAqBzD,CAAC;AACF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,WAA8B,gBAAgB;IAE9C,MAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa;QAC/C,CAAC,CAAC,sFAAsF;QACxF,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,eAAe,GAAG,QAAQ,CAAC,UAAU;QACzC,CAAC,CAAC,kFAAkF;QACpF,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG;QAC3B,CAAC,CAAC,+EAA+E;QACjF,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCP,kBAAkB,GAAG,eAAe,GAAG,QAAQ;;;;;;;;;;;;;;;;;;CAkBhD,CAAC;AACF,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyLR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,OAAO;;;;;UAKC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8KhB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,UAAkB,EAClB,OAA0B;IAE1B,MAAM,OAAO,GAAG,OAAO;SACpB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,MAAM,mBAAmB,MAAM,GAAG,CAAC;SACnE,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,iCAAiC,UAAU;;;;;EAKlD,OAAO;CACR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,OAAO,uCAAuC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFtD,CAAC;AACF,CAAC;AAED,MAAM,UAAU,oCAAoC;IAClD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;CAyBR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,wCAAwC;IACtD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAe;IACvD,OAAO;;;;;;;;;UASC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgFhB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAe;IACvD,OAAO,uCAAuC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DtD,CAAC;AACF,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAAe;IACzD,OAAO;;;;;;;;UAQC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyFhB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAAe,EACf,gBAAqC,MAAM,EAC3C,WAA8B,gBAAgB,EAC9C,0BAA0B,GAAG,KAAK;IAElC,MAAM,YAAY,GAAG,aAAa,KAAK,UAAU,CAAC;IAIlD,MAAM,eAAe,GAAG,YAAY;QAClC,CAAC,CAAC;+DACyD;QAC3D,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,oBAAoB,GAAG,YAAY;QACvC,CAAC,CAAC;;;;;;;;;;;;;;;;QAgBE;QACJ,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;QAyBE,CAAC;IACP,MAAM,qBAAqB,GAAG,QAAQ,CAAC,aAAa;QAClD,CAAC,CAAC,oCAAoC,OAAO,MAAM;QACnD,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,iBAAiB,GAAG,0BAA0B;QAClD,CAAC,CAAC,yDAAyD;QAC3D,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,mBAAmB,GAAG,0BAA0B;QACpD,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CL;QACG,CAAC,CAAC,EAAE,CAAC;IAGP,MAAM,qBAAqB,GAAG,QAAQ,CAAC,GAAG;QACxC,CAAC,CAAC;;6CAEuC;QACzC,CAAC,CAAC,EAAE,CAAC;IAGP,MAAM,+BAA+B,GAAG,QAAQ,CAAC,aAAa;QAC5D,CAAC,CAAC;yDACmD;QACrD,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;uDAC8C,OAAO;EAC5D,qBAAqB;;;;;0CAKmB,qBAAqB,GAAG,+BAA+B;EAC/F,iBAAiB;;;;;;;;;EASjB,2BAA2B,CAAC,QAAQ,CAAC,GAAG,mCAAmC,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;EAgBrF,iCAAiC,CAAC,QAAQ,CAAC;;;;mFAIsC,eAAe;;;;;EAKhG,iCAAiC,EAAE;EACnC,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+InB,8BAA8B,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4ExC,wCAAwC,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmIlD,6BAA6B,CAAC,QAAQ,CAAC;;;;;;;;;;;EAWvC,oBAAoB;;;;;;;;;;;;;;;;;EAiBpB,8BAA8B,EAAE,GAAG,gCAAgC,CAAC,QAAQ,CAAC,GAAG,2BAA2B,EAAE,GAAG,iCAAiC,CAAC,QAAQ,CAAC,GAAG,6BAA6B,CAAC,QAAQ,CAAC,GAAG,kCAAkC,CAAC,QAAQ,CAAC,GAAG,wCAAwC,EAAE,GAAG,4BAA4B,CAAC,QAAQ,CAAC,GAAG,mBAAmB,CAAC,QAAQ,CAAC,GAAG,6BAA6B,CAAC,QAAQ,CAAC;CACrZ,CAAC;AACF,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAe,EACf,gBAAqC,MAAM,EAC3C,WAA8B,gBAAgB,EAC9C,0BAA0B,GAAG,KAAK;IAElC,OAAO;QACL,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;QAC9D,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE;QACvD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;QACjE;YACE,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC;SAC1C;QACD;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,OAAO,CACnD,sBAAsB,EACtB,uCAAuC,CACxC;SACF;QACD,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE;QAC9C,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE;QACvG,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE;QAC/F,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,EAAE;QAC3F,GAAG,CAAC,QAAQ,CAAC,aAAa;YACxB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACzG,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,QAAQ,CAAC,UAAU;YACrB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACnG,CAAC,CAAC,EAAE,CAAC;QAEP,GAAG,CAAC,QAAQ,CAAC,GAAG;YACd,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACrF,CAAC,CAAC,EAAE,CAAC;QACP,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE;QACnF,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE;QACvG,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE;QACrF,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,EAAE;QACzF;YACE,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,0BAA0B,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,0BAA0B,CAAC;SAClG;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe;IAC5C,OAAO,OAAO,CAAC,UAAU,CAAC,6CAA6C,EAAE,MAAM,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,aAAqB,EACrB,WAA8B,gBAAgB;IAE9C,OAAO;QACL,GAAG,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC;QACzD,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE;QAC5C,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE;KAC5D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,WAA8B,gBAAgB;IAE9C,MAAM,aAAa,GAAG,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxF,IAAI,EAAE,kBAAkB,IAAI,CAAC,IAAI,EAAE;QACnC,OAAO,EAAE,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;KAC7C,CAAC,CAAC,CAAC;IAEJ,OAAO;QACL,GAAG,aAAa;QAChB,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,0BAA0B,EAAE,EAAE;QACzE,EAAE,IAAI,EAAE,mCAAmC,EAAE,OAAO,EAAE,4BAA4B,EAAE,EAAE;QACtF,EAAE,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,qBAAqB,CAAC,OAAO,CAAC,EAAE;QAC9E;YACE,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,2BAA2B,CAAC,2BAA2B,EAAE;gBAChE,KAAK;gBACL,MAAM;gBACN,SAAS;aACV,CAAC;SACH;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,2BAA2B,CAAC,2BAA2B,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;SACvF;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,2BAA2B,CAAC,2BAA2B,EAAE;gBAChE,KAAK;gBACL,MAAM;gBACN,SAAS;aACV,CAAC;SACH;QACD,GAAG,CAAC,QAAQ,CAAC,aAAa;YACxB,CAAC,CAAC;gBACA;oBACE,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,2BAA2B,CAAC,2BAA2B,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;iBACvF;aACF;YACD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,QAAQ,CAAC,UAAU;YACrB,CAAC,CAAC;gBACA;oBACE,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,2BAA2B,CAAC,2BAA2B,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;iBACvF;aACF;YACD,CAAC,CAAC,EAAE,CAAC;QAEP,GAAG,CAAC,QAAQ,CAAC,GAAG;YACd,CAAC,CAAC;gBACA;oBACE,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,2BAA2B,CAAC,2BAA2B,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;iBACvF;aACF;YACD,CAAC,CAAC,EAAE,CAAC;QACP;YACE,IAAI,EAAE,gCAAgC;YACtC,OAAO,EAAE,2BAA2B,CAAC,8BAA8B,EAAE;gBACnE,KAAK;gBACL,SAAS;aACV,CAAC;SACH;QACD;YACE,IAAI,EAAE,2CAA2C;YACjD,OAAO,EAAE,2BAA2B,CAAC,8BAA8B,EAAE;gBACnE,KAAK;gBACL,SAAS;aACV,CAAC;SACH;QAGD,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC,EAAE;QACrE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,yBAAyB,CAAC,OAAO,CAAC,EAAE;QACzE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,yBAAyB,CAAC,OAAO,CAAC,EAAE;QACzE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,2BAA2B,CAAC,OAAO,CAAC,EAAE;QAI7E,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,oCAAoC,EAAE,EAAE;QAChF,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,wCAAwC,EAAE,EAAE;KACtF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/frameworks/web-standard/templates.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAuMA,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAgHxC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAyNA,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAyHxC"}