dbsc-toolkit 2.10.0 → 2.12.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 (126) hide show
  1. package/README.md +43 -7
  2. package/dist/core/dpop/bind.d.ts +13 -0
  3. package/dist/core/dpop/bind.d.ts.map +1 -0
  4. package/dist/core/dpop/bind.js +12 -0
  5. package/dist/core/dpop/bind.js.map +1 -0
  6. package/dist/core/dpop/guard.d.ts +55 -0
  7. package/dist/core/dpop/guard.d.ts.map +1 -0
  8. package/dist/core/dpop/guard.js +40 -0
  9. package/dist/core/dpop/guard.js.map +1 -0
  10. package/dist/core/dpop/htu.d.ts +4 -0
  11. package/dist/core/dpop/htu.d.ts.map +1 -0
  12. package/dist/core/dpop/htu.js +42 -0
  13. package/dist/core/dpop/htu.js.map +1 -0
  14. package/dist/core/dpop/index.d.ts +9 -0
  15. package/dist/core/dpop/index.d.ts.map +1 -0
  16. package/dist/core/dpop/index.js +6 -0
  17. package/dist/core/dpop/index.js.map +1 -0
  18. package/dist/core/dpop/thumbprint.d.ts +13 -0
  19. package/dist/core/dpop/thumbprint.d.ts.map +1 -0
  20. package/dist/core/dpop/thumbprint.js +30 -0
  21. package/dist/core/dpop/thumbprint.js.map +1 -0
  22. package/dist/core/dpop/verify.d.ts +44 -0
  23. package/dist/core/dpop/verify.d.ts.map +1 -0
  24. package/dist/core/dpop/verify.js +124 -0
  25. package/dist/core/dpop/verify.js.map +1 -0
  26. package/dist/core/errors.d.ts +13 -0
  27. package/dist/core/errors.d.ts.map +1 -1
  28. package/dist/core/errors.js +16 -0
  29. package/dist/core/errors.js.map +1 -1
  30. package/dist/dpop/index.d.ts +12 -0
  31. package/dist/dpop/index.d.ts.map +1 -0
  32. package/dist/dpop/index.js +11 -0
  33. package/dist/dpop/index.js.map +1 -0
  34. package/dist/express/create-dbsc.d.ts +4 -1
  35. package/dist/express/create-dbsc.d.ts.map +1 -1
  36. package/dist/express/create-dbsc.js +2 -0
  37. package/dist/express/create-dbsc.js.map +1 -1
  38. package/dist/express/index.d.ts +1 -0
  39. package/dist/express/index.d.ts.map +1 -1
  40. package/dist/express/index.js +1 -0
  41. package/dist/express/index.js.map +1 -1
  42. package/dist/express/require-dpop.d.ts +17 -0
  43. package/dist/express/require-dpop.d.ts.map +1 -0
  44. package/dist/express/require-dpop.js +51 -0
  45. package/dist/express/require-dpop.js.map +1 -0
  46. package/dist/fastify/create-dbsc.d.ts +4 -0
  47. package/dist/fastify/create-dbsc.d.ts.map +1 -1
  48. package/dist/fastify/create-dbsc.js +2 -0
  49. package/dist/fastify/create-dbsc.js.map +1 -1
  50. package/dist/fastify/index.d.ts +1 -0
  51. package/dist/fastify/index.d.ts.map +1 -1
  52. package/dist/fastify/index.js +1 -0
  53. package/dist/fastify/index.js.map +1 -1
  54. package/dist/fastify/require-dpop.d.ts +13 -0
  55. package/dist/fastify/require-dpop.d.ts.map +1 -0
  56. package/dist/fastify/require-dpop.js +42 -0
  57. package/dist/fastify/require-dpop.js.map +1 -0
  58. package/dist/hono/create-dbsc.d.ts +3 -0
  59. package/dist/hono/create-dbsc.d.ts.map +1 -1
  60. package/dist/hono/create-dbsc.js +2 -0
  61. package/dist/hono/create-dbsc.js.map +1 -1
  62. package/dist/hono/index.d.ts +1 -0
  63. package/dist/hono/index.d.ts.map +1 -1
  64. package/dist/hono/index.js +1 -0
  65. package/dist/hono/index.js.map +1 -1
  66. package/dist/hono/require-dpop.d.ts +14 -0
  67. package/dist/hono/require-dpop.d.ts.map +1 -0
  68. package/dist/hono/require-dpop.js +38 -0
  69. package/dist/hono/require-dpop.js.map +1 -0
  70. package/dist/koa/create-dbsc.d.ts +28 -0
  71. package/dist/koa/create-dbsc.d.ts.map +1 -0
  72. package/dist/koa/create-dbsc.js +34 -0
  73. package/dist/koa/create-dbsc.js.map +1 -0
  74. package/dist/koa/index.d.ts +20 -0
  75. package/dist/koa/index.d.ts.map +1 -0
  76. package/dist/koa/index.js +27 -0
  77. package/dist/koa/index.js.map +1 -0
  78. package/dist/koa/require-dpop.d.ts +14 -0
  79. package/dist/koa/require-dpop.d.ts.map +1 -0
  80. package/dist/koa/require-dpop.js +38 -0
  81. package/dist/koa/require-dpop.js.map +1 -0
  82. package/dist/koa/require-proof.d.ts +9 -0
  83. package/dist/koa/require-proof.d.ts.map +1 -0
  84. package/dist/koa/require-proof.js +69 -0
  85. package/dist/koa/require-proof.js.map +1 -0
  86. package/dist/nestjs/index.d.ts +57 -0
  87. package/dist/nestjs/index.d.ts.map +1 -0
  88. package/dist/nestjs/index.js +193 -0
  89. package/dist/nestjs/index.js.map +1 -0
  90. package/dist/nextjs/index.d.ts +2 -0
  91. package/dist/nextjs/index.d.ts.map +1 -1
  92. package/dist/nextjs/index.js +1 -0
  93. package/dist/nextjs/index.js.map +1 -1
  94. package/dist/nextjs/require-dpop.d.ts +21 -0
  95. package/dist/nextjs/require-dpop.d.ts.map +1 -0
  96. package/dist/nextjs/require-dpop.js +35 -0
  97. package/dist/nextjs/require-dpop.js.map +1 -0
  98. package/dist/node/create-dbsc.d.ts +33 -0
  99. package/dist/node/create-dbsc.d.ts.map +1 -0
  100. package/dist/node/create-dbsc.js +35 -0
  101. package/dist/node/create-dbsc.js.map +1 -0
  102. package/dist/node/index.d.ts +55 -0
  103. package/dist/node/index.d.ts.map +1 -0
  104. package/dist/node/index.js +413 -0
  105. package/dist/node/index.js.map +1 -0
  106. package/dist/node/require-dpop.d.ts +17 -0
  107. package/dist/node/require-dpop.d.ts.map +1 -0
  108. package/dist/node/require-dpop.js +49 -0
  109. package/dist/node/require-dpop.js.map +1 -0
  110. package/dist/node/require-proof.d.ts +17 -0
  111. package/dist/node/require-proof.d.ts.map +1 -0
  112. package/dist/node/require-proof.js +74 -0
  113. package/dist/node/require-proof.js.map +1 -0
  114. package/dist/sveltekit/index.d.ts +49 -0
  115. package/dist/sveltekit/index.d.ts.map +1 -0
  116. package/dist/sveltekit/index.js +319 -0
  117. package/dist/sveltekit/index.js.map +1 -0
  118. package/dist/sveltekit/require-dpop.d.ts +17 -0
  119. package/dist/sveltekit/require-dpop.d.ts.map +1 -0
  120. package/dist/sveltekit/require-dpop.js +48 -0
  121. package/dist/sveltekit/require-dpop.js.map +1 -0
  122. package/dist/sveltekit/require-proof.d.ts +15 -0
  123. package/dist/sveltekit/require-proof.d.ts.map +1 -0
  124. package/dist/sveltekit/require-proof.js +52 -0
  125. package/dist/sveltekit/require-proof.js.map +1 -0
  126. package/package.json +47 -2
@@ -0,0 +1,193 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ var DbscModule_1;
14
+ import { Injectable, Module, Inject, ForbiddenException, InternalServerErrorException, UnauthorizedException, } from "@nestjs/common";
15
+ import { verifyBoundProof, noBindingReason, DbscVerificationError, } from "../core/index.js";
16
+ import { runDpopGuard, DPOP_WWW_AUTHENTICATE, } from "../core/dpop/index.js";
17
+ import { dbsc, createDbsc, DBSC_INTERNAL, } from "../express/index.js";
18
+ export { bindSession } from "../express/index.js";
19
+ /** DI token for the DBSC options passed to `DbscModule.forRoot()`. */
20
+ export const DBSC_OPTIONS = Symbol("dbsc-toolkit.nestjs.options");
21
+ /** Injectable wrapper around the Express kit's `bind()` — call it in your login controller. */
22
+ let DbscService = class DbscService {
23
+ kit;
24
+ constructor(opts) {
25
+ this.kit = createDbsc(opts);
26
+ }
27
+ /** Start a binding for an explicit session id. */
28
+ bind(res, sessionId, opts) {
29
+ return this.kit.bind(res, sessionId, opts);
30
+ }
31
+ };
32
+ DbscService = __decorate([
33
+ Injectable(),
34
+ __param(0, Inject(DBSC_OPTIONS)),
35
+ __metadata("design:paramtypes", [Object])
36
+ ], DbscService);
37
+ export { DbscService };
38
+ /**
39
+ * Registers DBSC on a NestJS app (Express platform). It mounts the protocol
40
+ * middleware for every route and exposes `DbscService`:
41
+ *
42
+ * @Module({ imports: [DbscModule.forRoot({ storage })] })
43
+ * export class AppModule {}
44
+ */
45
+ let DbscModule = DbscModule_1 = class DbscModule {
46
+ opts;
47
+ constructor(opts) {
48
+ this.opts = opts;
49
+ }
50
+ static forRoot(opts) {
51
+ return {
52
+ module: DbscModule_1,
53
+ global: true,
54
+ providers: [{ provide: DBSC_OPTIONS, useValue: opts }, DbscService],
55
+ exports: [DBSC_OPTIONS, DbscService],
56
+ };
57
+ }
58
+ configure(consumer) {
59
+ consumer.apply(dbsc(this.opts)).forRoutes("*");
60
+ }
61
+ };
62
+ DbscModule = DbscModule_1 = __decorate([
63
+ Module({}),
64
+ __param(0, Inject(DBSC_OPTIONS)),
65
+ __metadata("design:paramtypes", [Object])
66
+ ], DbscModule);
67
+ export { DbscModule };
68
+ async function runProof(req, res, opts) {
69
+ const dbscLocals = res.locals.dbsc;
70
+ const tier = dbscLocals?.tier ?? "none";
71
+ const skipped = dbscLocals?.skipped ?? [];
72
+ if (!dbscLocals?.sessionId || tier === "none") {
73
+ throw new ForbiddenException({ error: "device-bound session required", currentTier: "none", reason: noBindingReason(skipped), skipped });
74
+ }
75
+ const internal = res.locals[DBSC_INTERNAL];
76
+ const storage = opts.storage ?? internal?.storage;
77
+ if (!storage) {
78
+ throw new InternalServerErrorException("requireProof: storage unavailable — import DbscModule.forRoot(...)");
79
+ }
80
+ const allowDbscWithoutProof = opts.allowDbscWithoutProof ?? (internal?.boundEnabled === false ? true : undefined);
81
+ if (tier === "dbsc" && allowDbscWithoutProof)
82
+ return;
83
+ let bodyBytes;
84
+ const raw = req.body;
85
+ if (raw instanceof Buffer)
86
+ bodyBytes = new Uint8Array(raw.buffer, raw.byteOffset, raw.byteLength);
87
+ else if (raw instanceof Uint8Array)
88
+ bodyBytes = raw;
89
+ else if (typeof raw === "string")
90
+ bodyBytes = new TextEncoder().encode(raw);
91
+ else
92
+ bodyBytes = new Uint8Array(0);
93
+ try {
94
+ await verifyBoundProof({
95
+ sessionId: dbscLocals.sessionId,
96
+ proofHeader: req.headers["x-dbsc-bound-proof"],
97
+ method: req.method,
98
+ path: req.path,
99
+ signBody: true,
100
+ bodyBytes,
101
+ ...(opts.timestampWindowMs !== undefined && { timestampWindowMs: opts.timestampWindowMs }),
102
+ ...(internal?.replayCache !== undefined && { replayCache: internal.replayCache }),
103
+ }, storage);
104
+ }
105
+ catch (err) {
106
+ if (err instanceof DbscVerificationError) {
107
+ throw new ForbiddenException({ error: err.message, code: err.code });
108
+ }
109
+ throw err;
110
+ }
111
+ }
112
+ /**
113
+ * Zero-config route guard. Requires a bound device + a per-request proof:
114
+ *
115
+ * @UseGuards(DbscGuard)
116
+ * @Post("payment")
117
+ * pay() { ... }
118
+ *
119
+ * POST bodies are body-hashed, so a guarded POST must deliver raw bytes (set
120
+ * `rawBody: true` in `NestFactory.create` and disable the JSON parser on that
121
+ * route, or use a raw-body middleware). GET routes need no parser.
122
+ */
123
+ let DbscGuard = class DbscGuard {
124
+ async canActivate(context) {
125
+ const http = context.switchToHttp();
126
+ await runProof(http.getRequest(), http.getResponse(), {});
127
+ return true;
128
+ }
129
+ };
130
+ DbscGuard = __decorate([
131
+ Injectable()
132
+ ], DbscGuard);
133
+ export { DbscGuard };
134
+ /** Builds a guard with options baked in (e.g. a storage override or timestamp window). */
135
+ export function createDbscGuard(opts) {
136
+ let ConfiguredDbscGuard = class ConfiguredDbscGuard {
137
+ async canActivate(context) {
138
+ const http = context.switchToHttp();
139
+ await runProof(http.getRequest(), http.getResponse(), opts);
140
+ return true;
141
+ }
142
+ };
143
+ ConfiguredDbscGuard = __decorate([
144
+ Injectable()
145
+ ], ConfiguredDbscGuard);
146
+ return ConfiguredDbscGuard;
147
+ }
148
+ async function runDpop(req, res, opts) {
149
+ const internal = res.locals[DBSC_INTERNAL];
150
+ const replayCache = opts.replayCache ?? internal?.replayCache;
151
+ const url = `${req.protocol}://${req.get("host")}${req.originalUrl}`;
152
+ const boundJkt = opts.getBoundJkt ? await opts.getBoundJkt(req) : undefined;
153
+ const outcome = await runDpopGuard({
154
+ proof: req.headers["dpop"],
155
+ authorization: req.headers["authorization"],
156
+ method: req.method,
157
+ url,
158
+ boundJkt,
159
+ replayCache,
160
+ opts: {
161
+ ...(opts.requireTokenBinding !== undefined && { requireTokenBinding: opts.requireTokenBinding }),
162
+ ...(opts.iatWindowMs !== undefined && { iatWindowMs: opts.iatWindowMs }),
163
+ },
164
+ });
165
+ if (!outcome.ok) {
166
+ res.setHeader("WWW-Authenticate", DPOP_WWW_AUTHENTICATE);
167
+ throw new UnauthorizedException({ error: "invalid_dpop_proof", code: outcome.error?.code });
168
+ }
169
+ }
170
+ /**
171
+ * DPoP (RFC 9449) route guard for NestJS (Express platform). Build it with the
172
+ * token-binding hook, then attach with `@UseGuards`:
173
+ *
174
+ * @UseGuards(createDbscDpopGuard({ getBoundJkt }))
175
+ * @Get("resource")
176
+ * resource() { ... }
177
+ *
178
+ * On failure throws a 401 carrying `WWW-Authenticate: DPoP`.
179
+ */
180
+ export function createDbscDpopGuard(opts = {}) {
181
+ let ConfiguredDbscDpopGuard = class ConfiguredDbscDpopGuard {
182
+ async canActivate(context) {
183
+ const http = context.switchToHttp();
184
+ await runDpop(http.getRequest(), http.getResponse(), opts);
185
+ return true;
186
+ }
187
+ };
188
+ ConfiguredDbscDpopGuard = __decorate([
189
+ Injectable()
190
+ ], ConfiguredDbscDpopGuard);
191
+ return ConfiguredDbscDpopGuard;
192
+ }
193
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nestjs/index.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ export { requireBoundProof } from "./proof.js";
5
5
  export type { RequireBoundProofOptions, RequireBoundProofContext, RequireBoundProofResult, } from "./proof.js";
6
6
  export { requireProof } from "./require-proof.js";
7
7
  export type { RequireProofSession, RequireProofResult } from "./require-proof.js";
8
+ export { requireDpop } from "./require-dpop.js";
9
+ export type { RequireDpopResult } from "./require-dpop.js";
8
10
  export { createDbsc } from "./create-dbsc.js";
9
11
  export type { CreateDbscOptions, DbscKit, BindOptions } from "./create-dbsc.js";
10
12
  export interface DbscNextOptions extends DbscOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nextjs/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAsBL,KAAK,WAAW,EAChB,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EACV,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAchF,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAaD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,gIAAgI;IAChI,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wFAAwF;IACxF,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,0GAA0G;IAC1G,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,IAAI,CAAC,CA2Cf;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,eAAe,IA+BvB,KAAK,WAAW,KAAG,OAAO,CAAC,YAAY,CAAC,CA+Y1E;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAOD,wBAAsB,cAAc,CAClC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,EAC/B,IAAI,GAAE;IACJ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;CAC7B,GACL,OAAO,CAAC,eAAe,CAAC,CAgD1B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nextjs/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAsBL,KAAK,WAAW,EAChB,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EACV,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAchF,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAaD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,gIAAgI;IAChI,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wFAAwF;IACxF,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,0GAA0G;IAC1G,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,IAAI,CAAC,CA2Cf;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,eAAe,IA+BvB,KAAK,WAAW,KAAG,OAAO,CAAC,YAAY,CAAC,CA+Y1E;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAOD,wBAAsB,cAAc,CAClC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,EAC/B,IAAI,GAAE;IACJ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;CAC7B,GACL,OAAO,CAAC,eAAe,CAAC,CAgD1B"}
@@ -2,6 +2,7 @@ import { NextResponse } from "next/server.js";
2
2
  import { handleRegistration, handleRefresh, handleBoundRegistration, handleBoundRefresh, issueChallenge, buildRegistrationHeader, buildChallengeHeader, parseSessionSkippedHeader, REGISTRATION_HEADER, CHALLENGE_HEADER, LEGACY_REGISTRATION_HEADER, LEGACY_CHALLENGE_HEADER, NoopRateLimiter, emit, maybeEmitPolyfillMissing, resolveCookieNames, resolveCookieScope, cookieAttributesString, DbscProtocolError, DbscVerificationError, ErrorCodes, } from "../core/index.js";
3
3
  export { requireBoundProof } from "./proof.js";
4
4
  export { requireProof } from "./require-proof.js";
5
+ export { requireDpop } from "./require-dpop.js";
5
6
  export { createDbsc } from "./create-dbsc.js";
6
7
  const cookieNames = (s) => resolveCookieNames(s);
7
8
  const DEFAULT_BOUND_TTL_MS = 10 * 60 * 1000;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nextjs/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nextjs/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { NextRequest } from "next/server.js";
2
+ import { NextResponse } from "next/server.js";
3
+ import { type RequireDpopOptions } from "../core/dpop/index.js";
4
+ export type RequireDpopResult = {
5
+ ok: true;
6
+ } | {
7
+ ok: false;
8
+ response: NextResponse;
9
+ };
10
+ /**
11
+ * DPoP (RFC 9449) route guard for Next.js App Router handlers. Self-contained:
12
+ * no shared context, so pass `{ replayCache }` to enable jti replay defense and
13
+ * `getBoundJkt` to bind a presented token.
14
+ *
15
+ * const gate = await requireDpop(req, { getBoundJkt });
16
+ * if (!gate.ok) return gate.response;
17
+ *
18
+ * On failure returns a 401 NextResponse + `WWW-Authenticate: DPoP`.
19
+ */
20
+ export declare function requireDpop(req: NextRequest, opts?: RequireDpopOptions<NextRequest>): Promise<RequireDpopResult>;
21
+ //# sourceMappingURL=require-dpop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-dpop.d.ts","sourceRoot":"","sources":["../../src/nextjs/require-dpop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,iBAAiB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,CAAC;AAErF;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,WAAW,EAChB,IAAI,GAAE,kBAAkB,CAAC,WAAW,CAAM,GACzC,OAAO,CAAC,iBAAiB,CAAC,CAyB5B"}
@@ -0,0 +1,35 @@
1
+ import { NextResponse } from "next/server.js";
2
+ import { runDpopGuard, DPOP_WWW_AUTHENTICATE, } from "../core/dpop/index.js";
3
+ /**
4
+ * DPoP (RFC 9449) route guard for Next.js App Router handlers. Self-contained:
5
+ * no shared context, so pass `{ replayCache }` to enable jti replay defense and
6
+ * `getBoundJkt` to bind a presented token.
7
+ *
8
+ * const gate = await requireDpop(req, { getBoundJkt });
9
+ * if (!gate.ok) return gate.response;
10
+ *
11
+ * On failure returns a 401 NextResponse + `WWW-Authenticate: DPoP`.
12
+ */
13
+ export async function requireDpop(req, opts = {}) {
14
+ const boundJkt = opts.getBoundJkt ? await opts.getBoundJkt(req) : undefined;
15
+ const outcome = await runDpopGuard({
16
+ proof: req.headers.get("DPoP") ?? undefined,
17
+ authorization: req.headers.get("Authorization") ?? undefined,
18
+ method: req.method,
19
+ url: req.nextUrl.href,
20
+ boundJkt,
21
+ replayCache: opts.replayCache,
22
+ opts: {
23
+ ...(opts.requireTokenBinding !== undefined && { requireTokenBinding: opts.requireTokenBinding }),
24
+ ...(opts.iatWindowMs !== undefined && { iatWindowMs: opts.iatWindowMs }),
25
+ },
26
+ });
27
+ if (!outcome.ok) {
28
+ return {
29
+ ok: false,
30
+ response: NextResponse.json({ error: "invalid_dpop_proof", code: outcome.error?.code }, { status: 401, headers: { "WWW-Authenticate": DPOP_WWW_AUTHENTICATE } }),
31
+ };
32
+ }
33
+ return { ok: true };
34
+ }
35
+ //# sourceMappingURL=require-dpop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-dpop.js","sourceRoot":"","sources":["../../src/nextjs/require-dpop.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,YAAY,EACZ,qBAAqB,GAEtB,MAAM,uBAAuB,CAAC;AAI/B;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAgB,EAChB,OAAwC,EAAE;IAE1C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC;QACjC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS;QAC3C,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,SAAS;QAC5D,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI;QACrB,QAAQ;QACR,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,IAAI,EAAE;YACJ,GAAG,CAAC,IAAI,CAAC,mBAAmB,KAAK,SAAS,IAAI,EAAE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAChG,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;SACzE;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,YAAY,CAAC,IAAI,CACzB,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAC1D,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,EAAE,CACxE;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { IncomingMessage, ServerResponse } from "node:http";
2
+ import { type RequireProofOptions } from "../core/index.js";
3
+ import { type DbscNodeOptions, type DbscNodeHandler, type DbscNodeSession } from "./index.js";
4
+ import { type NodeProofGuard } from "./require-proof.js";
5
+ import { type NodeDpopGuard } from "./require-dpop.js";
6
+ import type { RequireDpopOptions } from "../core/dpop/index.js";
7
+ export interface CreateDbscOptions extends DbscNodeOptions {
8
+ /** Default session TTL (ms) for `bind()`. */
9
+ sessionTtl?: number;
10
+ }
11
+ export interface BindOptions {
12
+ userId: string;
13
+ namespace?: string;
14
+ }
15
+ export interface DbscKit {
16
+ /** The dbsc handler — run it first in your request pipeline. Returns true when it answered a protocol route. */
17
+ handler(): DbscNodeHandler;
18
+ /** Read the resolved session off a request the handler has processed. */
19
+ getSession(req: IncomingMessage): DbscNodeSession | undefined;
20
+ /** Start a binding for an explicit session id (e.g. your server-session id). */
21
+ bind(res: ServerResponse, sessionId: string, opts: BindOptions): Promise<string>;
22
+ /** The route guard — requires a bound device + a per-request proof. */
23
+ requireProof(opts?: RequireProofOptions): NodeProofGuard;
24
+ /** DPoP (RFC 9449) route guard for token-bound API calls. Optional layer. */
25
+ requireDpop(opts?: RequireDpopOptions<IncomingMessage>): NodeDpopGuard;
26
+ }
27
+ /**
28
+ * Builds a configured DBSC kit for raw `node:http`. There is no `install()`
29
+ * because raw http has no router — wire `handler()` at the top of your request
30
+ * listener and branch on its boolean return.
31
+ */
32
+ export declare function createDbsc(opts: CreateDbscOptions): DbscKit;
33
+ //# sourceMappingURL=create-dbsc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-dbsc.d.ts","sourceRoot":"","sources":["../../src/node/create-dbsc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,gHAAgH;IAChH,OAAO,IAAI,eAAe,CAAC;IAC3B,yEAAyE;IACzE,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,GAAG,SAAS,CAAC;IAC9D,gFAAgF;IAChF,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjF,uEAAuE;IACvE,YAAY,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG,cAAc,CAAC;IACzD,6EAA6E;IAC7E,WAAW,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC;CACxE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CA2B3D"}
@@ -0,0 +1,35 @@
1
+ import { dbsc, bindSession, getDbscSession, } from "./index.js";
2
+ import { requireProof } from "./require-proof.js";
3
+ import { requireDpop } from "./require-dpop.js";
4
+ /**
5
+ * Builds a configured DBSC kit for raw `node:http`. There is no `install()`
6
+ * because raw http has no router — wire `handler()` at the top of your request
7
+ * listener and branch on its boolean return.
8
+ */
9
+ export function createDbsc(opts) {
10
+ const secure = opts.secure ?? true;
11
+ const cookieScope = opts.cookieScope;
12
+ const cookieDomain = opts.cookieDomain;
13
+ const registrationPath = opts.registrationPath ?? "/dbsc/registration";
14
+ const handler = dbsc(opts);
15
+ async function bind(res, sessionId, bindOpts) {
16
+ await bindSession(res, sessionId, opts.storage, {
17
+ userId: bindOpts.userId,
18
+ secure,
19
+ ...(cookieScope !== undefined && { cookieScope }),
20
+ ...(cookieDomain !== undefined && { cookieDomain }),
21
+ registrationPath,
22
+ ...(opts.registrationCookieTtl !== undefined && { registrationCookieTtl: opts.registrationCookieTtl }),
23
+ ...(opts.sessionTtl !== undefined && { sessionTtl: opts.sessionTtl }),
24
+ });
25
+ return sessionId;
26
+ }
27
+ return {
28
+ handler: () => handler,
29
+ getSession: getDbscSession,
30
+ bind,
31
+ requireProof,
32
+ requireDpop,
33
+ };
34
+ }
35
+ //# sourceMappingURL=create-dbsc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-dbsc.js","sourceRoot":"","sources":["../../src/node/create-dbsc.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,IAAI,EACJ,WAAW,EACX,cAAc,GAIf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAuB,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAsB,MAAM,mBAAmB,CAAC;AA0BpE;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,IAAuB;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;IACnC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACrC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IACvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,oBAAoB,CAAC;IACvE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAE3B,KAAK,UAAU,IAAI,CAAC,GAAmB,EAAE,SAAiB,EAAE,QAAqB;QAC/E,MAAM,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE;YAC9C,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,MAAM;YACN,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;YACjD,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,CAAC;YACnD,gBAAgB;YAChB,GAAG,CAAC,IAAI,CAAC,qBAAqB,KAAK,SAAS,IAAI,EAAE,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACtG,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;SACtE,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO;QACtB,UAAU,EAAE,cAAc;QAC1B,IAAI;QACJ,YAAY;QACZ,WAAW;KACZ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,55 @@
1
+ import type { IncomingMessage, ServerResponse } from "node:http";
2
+ import { type DbscOptions, type StorageAdapter, type ProofReplayCache, type ProtectionTier, type SkippedEntry, type CookieScope } from "../core/index.js";
3
+ export { requireProof } from "./require-proof.js";
4
+ export { requireDpop } from "./require-dpop.js";
5
+ export type { NodeDpopGuard } from "./require-dpop.js";
6
+ export { createDbsc } from "./create-dbsc.js";
7
+ export type { CreateDbscOptions, DbscKit, BindOptions } from "./create-dbsc.js";
8
+ /** Internal carrier so `requireProof()` can reach storage without re-passing it. */
9
+ export interface DbscInternal {
10
+ storage: StorageAdapter;
11
+ secure: boolean;
12
+ /** When false, `requireProof()` auto-relaxes the native dbsc tier. */
13
+ boundEnabled: boolean;
14
+ replayCache?: ProofReplayCache;
15
+ }
16
+ export declare const DBSC_INTERNAL: unique symbol;
17
+ export interface DbscNodeOptions extends DbscOptions {
18
+ secure?: boolean;
19
+ boundStatePath?: string;
20
+ boundChallengePath?: string;
21
+ boundRegistrationPath?: string;
22
+ boundRefreshPath?: string;
23
+ }
24
+ export interface DbscNodeSession {
25
+ sessionId: string | null;
26
+ tier: ProtectionTier;
27
+ skipped: SkippedEntry[];
28
+ revoke: () => Promise<void>;
29
+ }
30
+ /**
31
+ * The dbsc handler for raw `node:http`. Call it first in your request
32
+ * pipeline: it returns `true` when it has fully answered a DBSC protocol route
33
+ * (the response is ended — stop), and `false` otherwise, having attached the
34
+ * resolved session to the request. Read it back with `getDbscSession(req)`.
35
+ */
36
+ export type DbscNodeHandler = (req: IncomingMessage, res: ServerResponse) => Promise<boolean>;
37
+ /** Reads the session the `dbsc()` handler attached to this request. */
38
+ export declare function getDbscSession(req: IncomingMessage): DbscNodeSession | undefined;
39
+ /** Reads and JSON-parses the raw request body. Returns `{}` on empty/invalid. */
40
+ export declare function readJsonBody(req: IncomingMessage): Promise<Record<string, unknown>>;
41
+ export interface BindSessionOptions {
42
+ userId: string;
43
+ /** Match the value passed to dbsc({ secure }). Defaults true. */
44
+ secure?: boolean;
45
+ /** Match the value passed to dbsc({ cookieScope }). Defaults "host". */
46
+ cookieScope?: CookieScope;
47
+ /** Match the value passed to dbsc({ cookieDomain }). Required for cookieScope: "site". */
48
+ cookieDomain?: string;
49
+ registrationPath?: string;
50
+ registrationCookieTtl?: number;
51
+ sessionTtl?: number;
52
+ }
53
+ export declare function bindSession(res: ServerResponse, sessionId: string, storage: StorageAdapter, opts: BindSessionOptions): Promise<void>;
54
+ export declare function dbsc(opts: DbscNodeOptions): DbscNodeHandler;
55
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAwBL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEhF,oFAAoF;AACpF,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,sEAAsE;IACtE,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AACD,eAAO,MAAM,aAAa,EAAE,OAAO,MAA6C,CAAC;AAejF,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE9F,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,GAAG,SAAS,CAEhF;AAmED,iFAAiF;AACjF,wBAAsB,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAiBzF;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,IAAI,CAAC,CAsCf;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAwT3D"}