@teleporthq/teleport-plugin-next-workflows 0.43.50 → 0.43.53
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/__tests__/session-cookie-resolver.test.ts +412 -0
- package/dist/cjs/account-delete-route-generator.d.ts.map +1 -1
- package/dist/cjs/account-delete-route-generator.js +3 -3
- package/dist/cjs/account-delete-route-generator.js.map +1 -1
- package/dist/cjs/auth-generator.d.ts.map +1 -1
- package/dist/cjs/auth-generator.js +14 -8
- package/dist/cjs/auth-generator.js.map +1 -1
- package/dist/cjs/data-api-route-generator.d.ts.map +1 -1
- package/dist/cjs/data-api-route-generator.js +8 -2
- package/dist/cjs/data-api-route-generator.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +5 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/session-cookie-resolver.d.ts +84 -0
- package/dist/cjs/session-cookie-resolver.d.ts.map +1 -0
- package/dist/cjs/session-cookie-resolver.js +282 -0
- package/dist/cjs/session-cookie-resolver.js.map +1 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/workflow-auth-generator.d.ts +6 -0
- package/dist/cjs/workflow-auth-generator.d.ts.map +1 -1
- package/dist/cjs/workflow-auth-generator.js +9 -16
- package/dist/cjs/workflow-auth-generator.js.map +1 -1
- package/dist/esm/account-delete-route-generator.d.ts.map +1 -1
- package/dist/esm/account-delete-route-generator.js +3 -3
- package/dist/esm/account-delete-route-generator.js.map +1 -1
- package/dist/esm/auth-generator.d.ts.map +1 -1
- package/dist/esm/auth-generator.js +14 -8
- package/dist/esm/auth-generator.js.map +1 -1
- package/dist/esm/data-api-route-generator.d.ts.map +1 -1
- package/dist/esm/data-api-route-generator.js +8 -2
- package/dist/esm/data-api-route-generator.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/session-cookie-resolver.d.ts +84 -0
- package/dist/esm/session-cookie-resolver.d.ts.map +1 -0
- package/dist/esm/session-cookie-resolver.js +277 -0
- package/dist/esm/session-cookie-resolver.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/workflow-auth-generator.d.ts +6 -0
- package/dist/esm/workflow-auth-generator.d.ts.map +1 -1
- package/dist/esm/workflow-auth-generator.js +9 -16
- package/dist/esm/workflow-auth-generator.js.map +1 -1
- package/package.json +4 -4
- package/src/account-delete-route-generator.ts +3 -3
- package/src/auth-generator.ts +14 -8
- package/src/data-api-route-generator.ts +7 -2
- package/src/index.ts +5 -0
- package/src/session-cookie-resolver.ts +280 -0
- package/src/workflow-auth-generator.ts +9 -16
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
import {
|
|
2
|
+
generateSessionTokenResolverCode,
|
|
3
|
+
generateCommonJsSessionTokenResolverCode,
|
|
4
|
+
} from '../src/session-cookie-resolver'
|
|
5
|
+
import { generateWorkflowAuthHelperFile } from '../src/workflow-auth-generator'
|
|
6
|
+
import { generateDataAPIRoute } from '../src/data-api-route-generator'
|
|
7
|
+
import { generateAccountDeleteRoute } from '../src/account-delete-route-generator'
|
|
8
|
+
import { generateMiddlewareFile } from '../src/auth-generator'
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* "Failed to load dashboard data. Please refresh." on a signed-in user's home
|
|
12
|
+
* page.
|
|
13
|
+
*
|
|
14
|
+
* ## ⛔ THE REPORTED DEFECT
|
|
15
|
+
*
|
|
16
|
+
* A published project answered 401 `Unauthenticated` from its page-load
|
|
17
|
+
* workflow while `/api/auth/session` on the SAME page resolved the same user.
|
|
18
|
+
* Measured on the live deployment: 50 concurrent POSTs to one workflow route
|
|
19
|
+
* returned 33 × 401 and 17 × 200; 40 concurrent `/api/auth/session` calls
|
|
20
|
+
* returned the user 40/40.
|
|
21
|
+
*
|
|
22
|
+
* next-auth v4 picks the session cookie name from an env var:
|
|
23
|
+
*
|
|
24
|
+
* ```js
|
|
25
|
+
* secureCookie = process.env.NEXTAUTH_URL?.startsWith('https://') ?? !!process.env.VERCEL
|
|
26
|
+
* cookieName = secureCookie ? '__Secure-next-auth.session-token' : 'next-auth.session-token'
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* A generated project ships `NEXTAUTH_URL=http://localhost:3000` and repairs it
|
|
30
|
+
* from the request inside `/api/auth/[...nextauth]` only — process-locally. So
|
|
31
|
+
* every serverless instance that had not served an auth request first looked for
|
|
32
|
+
* the NON-secure cookie on an https deployment, found nothing, and reported a
|
|
33
|
+
* signed-in caller as anonymous. Hence the coin flip.
|
|
34
|
+
*
|
|
35
|
+
* These tests boot the emitted resolver against a `getToken` that behaves like
|
|
36
|
+
* the real one — it returns a token only when asked for the cookie the request
|
|
37
|
+
* actually carries.
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
interface ResolverModule {
|
|
41
|
+
__tqCookieNamesPresent(req: unknown): Record<string, true>
|
|
42
|
+
__tqRequestIsSecure(req: unknown): boolean
|
|
43
|
+
__tqSessionTokenCandidates(req: unknown): Array<{ cookieName?: string; secureCookie: boolean }>
|
|
44
|
+
__tqResolveSessionToken(
|
|
45
|
+
getToken: unknown,
|
|
46
|
+
req: unknown,
|
|
47
|
+
secret: string | undefined
|
|
48
|
+
): Promise<unknown>
|
|
49
|
+
__tqSessionToken(req: unknown): Promise<unknown>
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const EXPORTS =
|
|
53
|
+
'\n;module.exports = { __tqCookieNamesPresent: __tqCookieNamesPresent,' +
|
|
54
|
+
' __tqRequestIsSecure: __tqRequestIsSecure,' +
|
|
55
|
+
' __tqSessionTokenCandidates: __tqSessionTokenCandidates,' +
|
|
56
|
+
' __tqResolveSessionToken: __tqResolveSessionToken };\n'
|
|
57
|
+
|
|
58
|
+
const CJS_EXPORTS = EXPORTS.replace(
|
|
59
|
+
'__tqResolveSessionToken: __tqResolveSessionToken }',
|
|
60
|
+
'__tqResolveSessionToken: __tqResolveSessionToken, __tqSessionToken: __tqSessionToken }'
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
/** Boots the emitted snippet in isolation and hands back its helpers. */
|
|
64
|
+
function bootResolver(): ResolverModule {
|
|
65
|
+
const moduleObj: { exports: Partial<ResolverModule> } = { exports: {} }
|
|
66
|
+
// tslint:disable-next-line:function-constructor
|
|
67
|
+
new Function('module', 'exports', generateSessionTokenResolverCode() + EXPORTS)(
|
|
68
|
+
moduleObj,
|
|
69
|
+
moduleObj.exports
|
|
70
|
+
)
|
|
71
|
+
return moduleObj.exports as ResolverModule
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** Boots the CommonJS variant, with `next-auth/jwt` and `process.env` stubbed. */
|
|
75
|
+
function bootCommonJsResolver(params: {
|
|
76
|
+
secret?: string
|
|
77
|
+
getToken?: unknown
|
|
78
|
+
nextAuthPresent?: boolean
|
|
79
|
+
}): ResolverModule {
|
|
80
|
+
const moduleObj: { exports: Partial<ResolverModule> } = { exports: {} }
|
|
81
|
+
const fakeRequire = (name: string): unknown => {
|
|
82
|
+
if (name === 'next-auth/jwt') {
|
|
83
|
+
if (params.nextAuthPresent === false) {
|
|
84
|
+
throw new Error("Cannot find module 'next-auth/jwt'")
|
|
85
|
+
}
|
|
86
|
+
return { getToken: params.getToken }
|
|
87
|
+
}
|
|
88
|
+
throw new Error(`unexpected require(${name})`)
|
|
89
|
+
}
|
|
90
|
+
// tslint:disable-next-line:function-constructor
|
|
91
|
+
new Function(
|
|
92
|
+
'require',
|
|
93
|
+
'module',
|
|
94
|
+
'exports',
|
|
95
|
+
'process',
|
|
96
|
+
generateCommonJsSessionTokenResolverCode() + CJS_EXPORTS
|
|
97
|
+
)(fakeRequire, moduleObj, moduleObj.exports, { env: { NEXTAUTH_SECRET: params.secret } })
|
|
98
|
+
return moduleObj.exports as ResolverModule
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* A `getToken` that behaves like next-auth's: it only returns the session when
|
|
103
|
+
* asked for the cookie name the request is actually carrying. `undefined`
|
|
104
|
+
* cookieName falls back to next-auth's own env-derived default, which is the
|
|
105
|
+
* behaviour this fix exists to stop relying on.
|
|
106
|
+
*/
|
|
107
|
+
function realisticGetToken(envDerivedDefault: string) {
|
|
108
|
+
return async (params: { req: { headers?: Record<string, string> }; cookieName?: string }) => {
|
|
109
|
+
const asked = params.cookieName || envDerivedDefault
|
|
110
|
+
const raw = (params.req && params.req.headers && params.req.headers.cookie) || ''
|
|
111
|
+
const names = raw.split(';').map((part) => part.split('=')[0].trim())
|
|
112
|
+
return names.indexOf(asked) !== -1 ? { id: 'user-1', sub: 'user-1' } : null
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
const httpsReq = (cookie: string) => ({
|
|
117
|
+
headers: { cookie, 'x-forwarded-proto': 'https' },
|
|
118
|
+
})
|
|
119
|
+
|
|
120
|
+
describe('the emitted session-cookie resolver', () => {
|
|
121
|
+
const resolver = bootResolver()
|
|
122
|
+
|
|
123
|
+
describe('__tqCookieNamesPresent', () => {
|
|
124
|
+
it('does not report the plain cookie as present when only the secure one is', () => {
|
|
125
|
+
// The whole defect in one assertion: "next-auth.session-token" is a
|
|
126
|
+
// SUBSTRING of "__Secure-next-auth.session-token", so a naive indexOf
|
|
127
|
+
// reports both and getToken then decodes a cookie that is not there.
|
|
128
|
+
const present = resolver.__tqCookieNamesPresent({
|
|
129
|
+
headers: { cookie: '__Secure-next-auth.session-token=abc; other=1' },
|
|
130
|
+
})
|
|
131
|
+
expect(present['__Secure-next-auth.session-token']).toBe(true)
|
|
132
|
+
expect(present['next-auth.session-token']).toBeUndefined()
|
|
133
|
+
})
|
|
134
|
+
|
|
135
|
+
it('reads a chunked cookie by its .0 head', () => {
|
|
136
|
+
const present = resolver.__tqCookieNamesPresent({
|
|
137
|
+
headers: {
|
|
138
|
+
cookie: '__Secure-next-auth.session-token.0=a; __Secure-next-auth.session-token.1=b',
|
|
139
|
+
},
|
|
140
|
+
})
|
|
141
|
+
expect(present['__Secure-next-auth.session-token.0']).toBe(true)
|
|
142
|
+
})
|
|
143
|
+
|
|
144
|
+
it('reads an Edge Headers object and a parsed cookie jar', () => {
|
|
145
|
+
const edge = {
|
|
146
|
+
headers: { get: (n: string) => (n === 'cookie' ? 'authjs.session-token=z' : null) },
|
|
147
|
+
cookies: { getAll: () => [{ name: 'authjs.session-token', value: 'z' }] },
|
|
148
|
+
}
|
|
149
|
+
expect(resolver.__tqCookieNamesPresent(edge)['authjs.session-token']).toBe(true)
|
|
150
|
+
})
|
|
151
|
+
|
|
152
|
+
it('never throws on a malformed or absent request', () => {
|
|
153
|
+
for (const req of [undefined, null, {}, { headers: null }, { headers: { cookie: 42 } }]) {
|
|
154
|
+
expect(() => resolver.__tqCookieNamesPresent(req)).not.toThrow()
|
|
155
|
+
}
|
|
156
|
+
})
|
|
157
|
+
})
|
|
158
|
+
|
|
159
|
+
describe('__tqRequestIsSecure', () => {
|
|
160
|
+
it('reads x-forwarded-proto, taking the client-facing hop of a proxy chain', () => {
|
|
161
|
+
expect(resolver.__tqRequestIsSecure({ headers: { 'x-forwarded-proto': 'https' } })).toBe(true)
|
|
162
|
+
expect(resolver.__tqRequestIsSecure({ headers: { 'x-forwarded-proto': 'https,http' } })).toBe(
|
|
163
|
+
true
|
|
164
|
+
)
|
|
165
|
+
expect(resolver.__tqRequestIsSecure({ headers: { 'x-forwarded-proto': 'http' } })).toBe(false)
|
|
166
|
+
})
|
|
167
|
+
|
|
168
|
+
it('reads an array-valued header, an Edge nextUrl, and an encrypted socket', () => {
|
|
169
|
+
expect(resolver.__tqRequestIsSecure({ headers: { 'x-forwarded-proto': ['https'] } })).toBe(
|
|
170
|
+
true
|
|
171
|
+
)
|
|
172
|
+
expect(resolver.__tqRequestIsSecure({ headers: {}, nextUrl: { protocol: 'https:' } })).toBe(
|
|
173
|
+
true
|
|
174
|
+
)
|
|
175
|
+
expect(resolver.__tqRequestIsSecure({ headers: {}, socket: { encrypted: true } })).toBe(true)
|
|
176
|
+
})
|
|
177
|
+
|
|
178
|
+
it('is false — never "unknown" — for a plain local request', () => {
|
|
179
|
+
expect(resolver.__tqRequestIsSecure({ headers: {} })).toBe(false)
|
|
180
|
+
expect(resolver.__tqRequestIsSecure(undefined)).toBe(false)
|
|
181
|
+
})
|
|
182
|
+
})
|
|
183
|
+
|
|
184
|
+
describe('__tqSessionTokenCandidates', () => {
|
|
185
|
+
it('names the secure cookie the https request is actually carrying', () => {
|
|
186
|
+
expect(
|
|
187
|
+
resolver.__tqSessionTokenCandidates(httpsReq('__Secure-next-auth.session-token=abc'))
|
|
188
|
+
).toEqual([{ cookieName: '__Secure-next-auth.session-token', secureCookie: true }])
|
|
189
|
+
})
|
|
190
|
+
|
|
191
|
+
it('names the plain cookie on a local http request', () => {
|
|
192
|
+
expect(
|
|
193
|
+
resolver.__tqSessionTokenCandidates({
|
|
194
|
+
headers: { cookie: 'next-auth.session-token=abc' },
|
|
195
|
+
})
|
|
196
|
+
).toEqual([{ cookieName: 'next-auth.session-token', secureCookie: false }])
|
|
197
|
+
})
|
|
198
|
+
|
|
199
|
+
it('tries the protocol-matching cookie FIRST when a site carries both', () => {
|
|
200
|
+
const both = httpsReq('next-auth.session-token=old; __Secure-next-auth.session-token=new')
|
|
201
|
+
expect(resolver.__tqSessionTokenCandidates(both)[0]).toEqual({
|
|
202
|
+
cookieName: '__Secure-next-auth.session-token',
|
|
203
|
+
secureCookie: true,
|
|
204
|
+
})
|
|
205
|
+
})
|
|
206
|
+
|
|
207
|
+
it('recognises the Auth.js cookie names too', () => {
|
|
208
|
+
expect(
|
|
209
|
+
resolver.__tqSessionTokenCandidates(httpsReq('__Secure-authjs.session-token=abc'))
|
|
210
|
+
).toEqual([{ cookieName: '__Secure-authjs.session-token', secureCookie: true }])
|
|
211
|
+
})
|
|
212
|
+
|
|
213
|
+
it('falls back to the request protocol when no known cookie is present', () => {
|
|
214
|
+
// A project may configure a custom cookie name in authOptions; letting
|
|
215
|
+
// getToken apply its own defaults is the only correct answer there — but
|
|
216
|
+
// with the REQUEST's protocol, not a localhost env var.
|
|
217
|
+
expect(resolver.__tqSessionTokenCandidates(httpsReq('unrelated=1'))).toEqual([
|
|
218
|
+
{ secureCookie: true },
|
|
219
|
+
])
|
|
220
|
+
expect(resolver.__tqSessionTokenCandidates({ headers: {} })).toEqual([
|
|
221
|
+
{ secureCookie: false },
|
|
222
|
+
])
|
|
223
|
+
})
|
|
224
|
+
})
|
|
225
|
+
|
|
226
|
+
describe('__tqResolveSessionToken', () => {
|
|
227
|
+
it('THE DEFECT: resolves the session that the env-derived default would miss', async () => {
|
|
228
|
+
// Exactly the deployed setup: browser holds the secure cookie, the lambda
|
|
229
|
+
// holds NEXTAUTH_URL=http://localhost:3000 so next-auth's own default is
|
|
230
|
+
// the plain name.
|
|
231
|
+
const getToken = realisticGetToken('next-auth.session-token')
|
|
232
|
+
const req = httpsReq('__Secure-next-auth.session-token=abc')
|
|
233
|
+
|
|
234
|
+
// What the old code did — one call, no cookieName — still returns null…
|
|
235
|
+
expect(await getToken({ req } as never)).toBeNull()
|
|
236
|
+
// …and the resolver finds the session.
|
|
237
|
+
expect(await resolver.__tqResolveSessionToken(getToken, req, 'secret')).toEqual({
|
|
238
|
+
id: 'user-1',
|
|
239
|
+
sub: 'user-1',
|
|
240
|
+
})
|
|
241
|
+
})
|
|
242
|
+
|
|
243
|
+
it('still resolves on plain http, where the old default happened to be right', async () => {
|
|
244
|
+
const getToken = realisticGetToken('next-auth.session-token')
|
|
245
|
+
const req = { headers: { cookie: 'next-auth.session-token=abc' } }
|
|
246
|
+
expect(await resolver.__tqResolveSessionToken(getToken, req, 'secret')).toEqual({
|
|
247
|
+
id: 'user-1',
|
|
248
|
+
sub: 'user-1',
|
|
249
|
+
})
|
|
250
|
+
})
|
|
251
|
+
|
|
252
|
+
it('returns null for a genuinely anonymous caller', async () => {
|
|
253
|
+
const getToken = realisticGetToken('next-auth.session-token')
|
|
254
|
+
expect(await resolver.__tqResolveSessionToken(getToken, httpsReq(''), 'secret')).toBeNull()
|
|
255
|
+
})
|
|
256
|
+
|
|
257
|
+
it('tries the other cookie when the first candidate does not decode', async () => {
|
|
258
|
+
// A site reached over both protocols: the stale plain cookie is present
|
|
259
|
+
// but only the secure one decodes.
|
|
260
|
+
const getToken = realisticGetToken('next-auth.session-token')
|
|
261
|
+
const req = {
|
|
262
|
+
headers: {
|
|
263
|
+
cookie: 'next-auth.session-token=stale; __Secure-next-auth.session-token=live',
|
|
264
|
+
'x-forwarded-proto': 'http',
|
|
265
|
+
},
|
|
266
|
+
}
|
|
267
|
+
expect(await resolver.__tqResolveSessionToken(getToken, req, 'secret')).toEqual({
|
|
268
|
+
id: 'user-1',
|
|
269
|
+
sub: 'user-1',
|
|
270
|
+
})
|
|
271
|
+
})
|
|
272
|
+
|
|
273
|
+
it('returns null rather than throwing when getToken throws', async () => {
|
|
274
|
+
const throwing = async () => {
|
|
275
|
+
throw new Error('JWEDecryptionFailed')
|
|
276
|
+
}
|
|
277
|
+
await expect(
|
|
278
|
+
resolver.__tqResolveSessionToken(
|
|
279
|
+
throwing,
|
|
280
|
+
httpsReq('__Secure-next-auth.session-token=a'),
|
|
281
|
+
'secret'
|
|
282
|
+
)
|
|
283
|
+
).resolves.toBeNull()
|
|
284
|
+
})
|
|
285
|
+
|
|
286
|
+
it('returns null without calling getToken when there is no secret', async () => {
|
|
287
|
+
const getToken = jest.fn()
|
|
288
|
+
expect(await resolver.__tqResolveSessionToken(getToken, httpsReq('x=1'), '')).toBeNull()
|
|
289
|
+
expect(getToken).not.toHaveBeenCalled()
|
|
290
|
+
})
|
|
291
|
+
|
|
292
|
+
it('returns null when getToken is not a function', async () => {
|
|
293
|
+
expect(await resolver.__tqResolveSessionToken(null, httpsReq('x=1'), 'secret')).toBeNull()
|
|
294
|
+
})
|
|
295
|
+
})
|
|
296
|
+
|
|
297
|
+
describe('the CommonJS wrapper', () => {
|
|
298
|
+
it('reads NEXTAUTH_SECRET itself and resolves the secure cookie', async () => {
|
|
299
|
+
const cjs = bootCommonJsResolver({
|
|
300
|
+
secret: 'server-secret',
|
|
301
|
+
getToken: realisticGetToken('next-auth.session-token'),
|
|
302
|
+
})
|
|
303
|
+
expect(await cjs.__tqSessionToken(httpsReq('__Secure-next-auth.session-token=abc'))).toEqual({
|
|
304
|
+
id: 'user-1',
|
|
305
|
+
sub: 'user-1',
|
|
306
|
+
})
|
|
307
|
+
})
|
|
308
|
+
|
|
309
|
+
it('is null when NEXTAUTH_SECRET is unset', async () => {
|
|
310
|
+
const cjs = bootCommonJsResolver({
|
|
311
|
+
getToken: realisticGetToken('next-auth.session-token'),
|
|
312
|
+
})
|
|
313
|
+
expect(
|
|
314
|
+
await cjs.__tqSessionToken(httpsReq('__Secure-next-auth.session-token=abc'))
|
|
315
|
+
).toBeNull()
|
|
316
|
+
})
|
|
317
|
+
|
|
318
|
+
it('is null — not a crash — for a project generated without next-auth', async () => {
|
|
319
|
+
const cjs = bootCommonJsResolver({ secret: 'server-secret', nextAuthPresent: false })
|
|
320
|
+
await expect(
|
|
321
|
+
cjs.__tqSessionToken(httpsReq('__Secure-next-auth.session-token=abc'))
|
|
322
|
+
).resolves.toBeNull()
|
|
323
|
+
})
|
|
324
|
+
})
|
|
325
|
+
})
|
|
326
|
+
|
|
327
|
+
describe('every generated route that reads a session uses the resolver', () => {
|
|
328
|
+
const usesResolver = (code: string) => {
|
|
329
|
+
expect(code).toContain('__tqResolveSessionToken')
|
|
330
|
+
// The env-derived default is what produced the 401 — no route may call
|
|
331
|
+
// getToken without naming the cookie.
|
|
332
|
+
expect(code).not.toMatch(/getToken\(\{\s*req/)
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
it('the workflow auth guard', () => {
|
|
336
|
+
usesResolver(generateWorkflowAuthHelperFile())
|
|
337
|
+
})
|
|
338
|
+
|
|
339
|
+
it('the data API route, when it guards the auth users table', () => {
|
|
340
|
+
const code = generateDataAPIRoute({ authUsersTableName: 'users' })
|
|
341
|
+
usesResolver(code)
|
|
342
|
+
expect(code).toContain('__tqSessionToken(req)')
|
|
343
|
+
})
|
|
344
|
+
|
|
345
|
+
it('the data API route emits no resolver when there is no users table to guard', () => {
|
|
346
|
+
const code = generateDataAPIRoute({})
|
|
347
|
+
expect(code).not.toContain('__tqResolveSessionToken')
|
|
348
|
+
expect(code).not.toContain("require('next-auth/jwt')")
|
|
349
|
+
})
|
|
350
|
+
|
|
351
|
+
it('the account-delete route', () => {
|
|
352
|
+
usesResolver(generateAccountDeleteRoute({ authUsersTableName: 'users' }))
|
|
353
|
+
})
|
|
354
|
+
})
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* ⛔ THE SNIPPET IS INLINED INTO FILES OF THREE DIFFERENT SHAPES — a CommonJS
|
|
358
|
+
* route, an ESM middleware, and an `export default` API route. A syntax error in
|
|
359
|
+
* it would not surface until a project failed to build, so every emitted file is
|
|
360
|
+
* parsed here.
|
|
361
|
+
*/
|
|
362
|
+
/** The smallest authentication config that produces a protected route. */
|
|
363
|
+
const MIDDLEWARE_AUTH = {
|
|
364
|
+
enabled: true,
|
|
365
|
+
dataSourceId: 'ds-1',
|
|
366
|
+
dataSourceType: 'postgres',
|
|
367
|
+
passwordAuthEnabled: true,
|
|
368
|
+
providers: [],
|
|
369
|
+
roles: ['admin'],
|
|
370
|
+
tables: {},
|
|
371
|
+
folderProtection: {},
|
|
372
|
+
authPages: {
|
|
373
|
+
signIn: { pageId: 'sign-in', pageName: 'sign-in', route: '/sign-in' },
|
|
374
|
+
signUp: { pageId: 'sign-up', pageName: 'sign-up', route: '/sign-up' },
|
|
375
|
+
},
|
|
376
|
+
callbackBaseUrl: '',
|
|
377
|
+
envKeys: {},
|
|
378
|
+
customUserProperties: [],
|
|
379
|
+
pageProtection: {
|
|
380
|
+
HOME: { requiresAuth: true, allowedRoles: [], pageName: 'Dashboard', route: '/' },
|
|
381
|
+
},
|
|
382
|
+
} as never
|
|
383
|
+
|
|
384
|
+
describe('every file the resolver is inlined into still parses', () => {
|
|
385
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
386
|
+
const { parse } = require('@babel/parser')
|
|
387
|
+
const parses = (code: string) =>
|
|
388
|
+
parse(code, { sourceType: 'unambiguous', allowReturnOutsideFunction: true })
|
|
389
|
+
|
|
390
|
+
it('the shared snippet, on its own', () => {
|
|
391
|
+
expect(() => parses(generateSessionTokenResolverCode())).not.toThrow()
|
|
392
|
+
expect(() => parses(generateCommonJsSessionTokenResolverCode())).not.toThrow()
|
|
393
|
+
})
|
|
394
|
+
|
|
395
|
+
it('the workflow auth guard (CommonJS)', () => {
|
|
396
|
+
expect(() => parses(generateWorkflowAuthHelperFile())).not.toThrow()
|
|
397
|
+
})
|
|
398
|
+
|
|
399
|
+
it('the data API route (CommonJS)', () => {
|
|
400
|
+
expect(() => parses(generateDataAPIRoute({ authUsersTableName: 'users' }))).not.toThrow()
|
|
401
|
+
})
|
|
402
|
+
|
|
403
|
+
it('the account-delete route (CommonJS)', () => {
|
|
404
|
+
expect(() => parses(generateAccountDeleteRoute({ authUsersTableName: 'users' }))).not.toThrow()
|
|
405
|
+
})
|
|
406
|
+
|
|
407
|
+
it('the auth middleware (ESM, Edge runtime)', () => {
|
|
408
|
+
const code = generateMiddlewareFile(MIDDLEWARE_AUTH)
|
|
409
|
+
expect(() => parses(code)).not.toThrow()
|
|
410
|
+
expect(code).toContain('__tqResolveSessionToken(getToken, request, secret)')
|
|
411
|
+
})
|
|
412
|
+
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-delete-route-generator.d.ts","sourceRoot":"","sources":["../../src/account-delete-route-generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"account-delete-route-generator.d.ts","sourceRoot":"","sources":["../../src/account-delete-route-generator.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,yBAAyB;IAExC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAI3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAID,eAAO,MAAM,8BAA8B,+CAAiC,CAAA;AAE5E,eAAO,MAAM,0BAA0B,aAAa,yBAAyB,KAAQ,MA4NpF,CAAA"}
|
|
@@ -20,6 +20,7 @@ exports.generateAccountDeleteRoute = exports.accountDeleteRouteDependencies = vo
|
|
|
20
20
|
* provisioned.
|
|
21
21
|
*/
|
|
22
22
|
const pg_client_code_1 = require("./pg-client-code");
|
|
23
|
+
const session_cookie_resolver_1 = require("./session-cookie-resolver");
|
|
23
24
|
const transactional_email_code_1 = require("./transactional-email-code");
|
|
24
25
|
// Kept as a named alias (imported by workflow-project-plugin.ts) so the delete
|
|
25
26
|
// route's dependency wiring stays stable while the impl lives in the shared module.
|
|
@@ -31,8 +32,7 @@ const generateAccountDeleteRoute = (options = {}) => {
|
|
|
31
32
|
: null;
|
|
32
33
|
const deletedEmailPattern = options.deletedEmailPattern || 'deleted-user-{{userId}}@deleted.invalid';
|
|
33
34
|
return `${(0, pg_client_code_1.generatePgClientCode)()}
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
${(0, session_cookie_resolver_1.generateCommonJsSessionTokenResolverCode)()}
|
|
36
36
|
const AUTH_USERS_TABLE = ${JSON.stringify(authUsersTable)};
|
|
37
37
|
const SITE_NAME = ${JSON.stringify(options.siteName || '')};
|
|
38
38
|
const DELETED_EMAIL_PATTERN = ${JSON.stringify(deletedEmailPattern)};
|
|
@@ -158,7 +158,7 @@ module.exports = async function handler(req, res) {
|
|
|
158
158
|
// Identify the user from the session — never trust a client-supplied id.
|
|
159
159
|
var token = null;
|
|
160
160
|
try {
|
|
161
|
-
token = await
|
|
161
|
+
token = await __tqSessionToken(req);
|
|
162
162
|
} catch (e) {
|
|
163
163
|
token = null;
|
|
164
164
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-delete-route-generator.js","sourceRoot":"","sources":["../../src/account-delete-route-generator.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,qDAAuD;AACvD,yEAKmC;AAmBnC,+EAA+E;AAC/E,oFAAoF;AACvE,QAAA,8BAA8B,GAAG,yDAA8B,CAAA;AAErE,MAAM,0BAA0B,GAAG,CAAC,UAAqC,EAAE,EAAU,EAAE;IAC5F,MAAM,cAAc,GAAG,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAA;IAC5D,MAAM,QAAQ,GACZ,OAAO,CAAC,aAAa,IAAI,oDAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;QAC3E,CAAC,CAAC,OAAO,CAAC,aAAa;QACvB,CAAC,CAAC,IAAI,CAAA;IACV,MAAM,mBAAmB,GACvB,OAAO,CAAC,mBAAmB,IAAI,yCAAyC,CAAA;IAE1E,OAAO,GAAG,IAAA,qCAAoB,GAAE
|
|
1
|
+
{"version":3,"file":"account-delete-route-generator.js","sourceRoot":"","sources":["../../src/account-delete-route-generator.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,qDAAuD;AACvD,uEAAoF;AACpF,yEAKmC;AAmBnC,+EAA+E;AAC/E,oFAAoF;AACvE,QAAA,8BAA8B,GAAG,yDAA8B,CAAA;AAErE,MAAM,0BAA0B,GAAG,CAAC,UAAqC,EAAE,EAAU,EAAE;IAC5F,MAAM,cAAc,GAAG,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAA;IAC5D,MAAM,QAAQ,GACZ,OAAO,CAAC,aAAa,IAAI,oDAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;QAC3E,CAAC,CAAC,OAAO,CAAC,aAAa;QACvB,CAAC,CAAC,IAAI,CAAA;IACV,MAAM,mBAAmB,GACvB,OAAO,CAAC,mBAAmB,IAAI,yCAAyC,CAAA;IAE1E,OAAO,GAAG,IAAA,qCAAoB,GAAE;EAChC,IAAA,kEAAwC,GAAE;2BACjB,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;oBACrC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;gCAC1B,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC;yBAC1C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;qBAC5B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;gCAC5B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAC;wBACxD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,IAAI,+BAA+B,CAAC;0BACrE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6FnE,IAAA,iDAAsB,GAAE;;EAExB,IAAA,uDAA4B,EAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0GvC,CAAA;AACD,CAAC,CAAA;AA5NY,QAAA,0BAA0B,8BA4NtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-generator.d.ts","sourceRoot":"","sources":["../../src/auth-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACf,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"auth-generator.d.ts","sourceRoot":"","sources":["../../src/auth-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACf,MAAM,4BAA4B,CAAA;AAmBnC,eAAO,MAAM,6BAA6B,mBACxB,cAAc,GAAG,IAAI,KACpC,OAAO,MAAM,EAAE,MAAM,CA0BvB,CAAA;AAwID;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,QAAQ,CAAA;AAE7C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAQrD,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAalD,CAAA;AAWD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,WACzB,OAAO,MAAM,EAAE,mBAAmB,EAAE,CAAC,GAAG,SAAS,eAC5C,sBAAsB,EAAE,KACpC,MAAM,EAQR,CAAA;AAwbD,eAAO,MAAM,uBAAuB,SAC5B,kBAAkB,qBACL,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,KAChD,MAoIF,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,6BAA6B,QAAO,MA6ChD,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,QAAO,MAkD3C,CAAA;AAED,eAAO,MAAM,wBAAwB,QAAO,MA4B3C,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAO,MA8D5C,CAAA;AAMD,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,uBAAuB,SAC5B,kBAAkB,YACf,mBAAmB,KAC3B,MA4IF,CAAA;AAgDD,eAAO,MAAM,sBAAsB,SAAU,kBAAkB,KAAG,MAkVjE,CAAA;AAoBD,eAAO,MAAM,8BAA8B,QAAO,MA6BjD,CAAA;AAED,eAAO,MAAM,8BAA8B,QAAO,MAiHjD,CAAA"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateSessionProviderWrapper = exports.generateNextAuthUrlGuardModule = exports.generateMiddlewareFile = exports.generateSignupRouteFile = exports.generateNextAuthRouteFile = exports.generateHashPasswordFile = exports.generateAuthDbHealthFile = exports.generateAuthErrorMessagesFile = exports.generateAuthOptionsFile = exports.buildSessionUserFields = exports.SENSITIVE_USER_FIELDS = exports.SESSION_SAFE_USER_FIELDS = exports.USER_REFRESH_INTERVAL_MS = exports.getDatabaseDriverDependencies = void 0;
|
|
4
4
|
const transactional_email_code_1 = require("./transactional-email-code");
|
|
5
|
+
const session_cookie_resolver_1 = require("./session-cookie-resolver");
|
|
5
6
|
// GUI provider id → the actual next-auth v4 provider MODULE name, for the few
|
|
6
7
|
// cases where they differ. Everything else uses the id as the module name.
|
|
7
8
|
// (Providers next-auth v4 cannot supply are not offered by the GUI; if one
|
|
@@ -1261,6 +1262,7 @@ const generateMiddlewareFile = (auth) => {
|
|
|
1261
1262
|
return `import { NextResponse } from 'next/server';
|
|
1262
1263
|
import { getToken } from 'next-auth/jwt';
|
|
1263
1264
|
|
|
1265
|
+
${(0, session_cookie_resolver_1.generateSessionTokenResolverCode)()}
|
|
1264
1266
|
const protectedRoutes = ${protectedRoutesJson};
|
|
1265
1267
|
|
|
1266
1268
|
const authRoutes = ${authRoutesJson};
|
|
@@ -1421,18 +1423,22 @@ async function middleware(request) {
|
|
|
1421
1423
|
}
|
|
1422
1424
|
|
|
1423
1425
|
// Resolve the current user for this request. Fast path: decode the session JWT
|
|
1424
|
-
// at the edge
|
|
1425
|
-
//
|
|
1426
|
-
//
|
|
1427
|
-
//
|
|
1428
|
-
//
|
|
1429
|
-
//
|
|
1430
|
-
//
|
|
1426
|
+
// at the edge, telling getToken which cookie the request actually carries —
|
|
1427
|
+
// left to its own defaults it derives the cookie name from
|
|
1428
|
+
// process.env.NEXTAUTH_URL, which this deployment ships as a localhost value,
|
|
1429
|
+
// so on https it looked for the non-secure cookie and returned null for every
|
|
1430
|
+
// valid session. That is what made this fast path miss and sent logged-in
|
|
1431
|
+
// users to sign-in.
|
|
1432
|
+
//
|
|
1433
|
+
// The /api/auth/session fallback below stays as a genuine last resort (a
|
|
1434
|
+
// custom cookie name, or a secret unavailable at the edge): cookie PRESENCE
|
|
1435
|
+
// decides whether it is worth a round trip, and the endpoint is authoritative
|
|
1436
|
+
// for BOTH the auth gate and the role check, so no role is silently skipped.
|
|
1431
1437
|
var sessionUser = null;
|
|
1432
1438
|
var secret = process.env.NEXTAUTH_SECRET;
|
|
1433
1439
|
if (secret) {
|
|
1434
1440
|
try {
|
|
1435
|
-
sessionUser = await getToken
|
|
1441
|
+
sessionUser = await __tqResolveSessionToken(getToken, request, secret);
|
|
1436
1442
|
} catch (e) {
|
|
1437
1443
|
sessionUser = null;
|
|
1438
1444
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-generator.js","sourceRoot":"","sources":["../../src/auth-generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth-generator.js","sourceRoot":"","sources":["../../src/auth-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-api-route-generator.d.ts","sourceRoot":"","sources":["../../src/data-api-route-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"data-api-route-generator.d.ts","sourceRoot":"","sources":["../../src/data-api-route-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAcH,eAAO,MAAM,iBAAiB,kBAAmB,IAAI,MAAM,CAAC,KAAG,OAO9D,CAAA;AAED,MAAM,WAAW,mBAAmB;IAIlC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAQ3B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAI/B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,eAAO,MAAM,oBAAoB,aAAa,mBAAmB,KAAQ,MAu2BxE,CAAA"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.generateDataAPIRoute = exports.needsDataAPIRoute = void 0;
|
|
16
16
|
const sql_validator_1 = require("./sql-validator");
|
|
17
|
+
const session_cookie_resolver_1 = require("./session-cookie-resolver");
|
|
17
18
|
const DATA_NODE_TYPES = new Set([
|
|
18
19
|
'data-select',
|
|
19
20
|
'data-create-item',
|
|
@@ -39,7 +40,12 @@ const generateDataAPIRoute = (options = {}) => {
|
|
|
39
40
|
? options.lowStockThreshold
|
|
40
41
|
: 5;
|
|
41
42
|
return `const { Client } = require('pg');
|
|
42
|
-
${
|
|
43
|
+
${
|
|
44
|
+
// The session cookie is resolved from the REQUEST rather than from
|
|
45
|
+
// process.env.NEXTAUTH_URL — see session-cookie-resolver.ts. Reading it the
|
|
46
|
+
// old way made `assertSessionOwnsUsersRow` answer 401 to a signed-in user on
|
|
47
|
+
// any serverless instance that had not served an auth request first.
|
|
48
|
+
authUsersTable ? (0, session_cookie_resolver_1.generateCommonJsSessionTokenResolverCode)() : ''}const AUTH_USERS_TABLE = ${JSON.stringify(authUsersTable)};
|
|
43
49
|
const LOW_STOCK_ALERTS_ENABLED = ${JSON.stringify(lowStockAlertsEnabled)};
|
|
44
50
|
const LOW_STOCK_THRESHOLD = ${JSON.stringify(lowStockThreshold)};
|
|
45
51
|
${validatorCode}
|
|
@@ -795,7 +801,7 @@ async function assertSessionOwnsUsersRow(req, operation, body) {
|
|
|
795
801
|
|
|
796
802
|
var token;
|
|
797
803
|
try {
|
|
798
|
-
token = await
|
|
804
|
+
token = await __tqSessionToken(req);
|
|
799
805
|
} catch (e) {
|
|
800
806
|
token = null;
|
|
801
807
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-api-route-generator.js","sourceRoot":"","sources":["../../src/data-api-route-generator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,mDAA0D;
|
|
1
|
+
{"version":3,"file":"data-api-route-generator.js","sourceRoot":"","sources":["../../src/data-api-route-generator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,mDAA0D;AAC1D,uEAAoF;AAEpF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,aAAa;IACb,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,YAAY;IACZ,gBAAgB;CACjB,CAAC,CAAA;AAEK,MAAM,iBAAiB,GAAG,CAAC,aAA0B,EAAW,EAAE;IACvE,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE;QAC9B,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAC3B,OAAO,IAAI,CAAA;SACZ;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAPY,QAAA,iBAAiB,qBAO7B;AAqBM,MAAM,oBAAoB,GAAG,CAAC,UAA+B,EAAE,EAAU,EAAE;IAChF,MAAM,aAAa,GAAG,IAAA,wCAAwB,GAAE,CAAA;IAChD,MAAM,cAAc,GAAG,OAAO,CAAC,kBAAkB,IAAI,IAAI,CAAA;IACzD,MAAM,qBAAqB,GAAG,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAA;IAC7D,MAAM,iBAAiB,GACrB,OAAO,OAAO,CAAC,iBAAiB,KAAK,QAAQ,IAAI,OAAO,CAAC,iBAAiB,IAAI,CAAC;QAC7E,CAAC,CAAC,OAAO,CAAC,iBAAiB;QAC3B,CAAC,CAAC,CAAC,CAAA;IAEP,OAAO;EACP;IACA,mEAAmE;IACnE,4EAA4E;IAC5E,6EAA6E;IAC7E,qEAAqE;IACrE,cAAc,CAAC,CAAC,CAAC,IAAA,kEAAwC,GAAE,CAAC,CAAC,CAAC,EAChE,4BAA4B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;mCACvB,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC;8BAC1C,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;EAC7D,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAm1Bd,CAAA;AACD,CAAC,CAAA;AAv2BY,QAAA,oBAAoB,wBAu2BhC"}
|