@payloadcms/tanstack-start 4.0.0-internal.cc18726 → 4.0.0-internal.cd47d20

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 (61) hide show
  1. package/dist/elements/RouterAdapter/index.d.ts.map +1 -1
  2. package/dist/elements/RouterAdapter/index.js +2 -1
  3. package/dist/elements/RouterAdapter/index.js.map +1 -1
  4. package/dist/exports/server.d.ts +0 -2
  5. package/dist/exports/server.d.ts.map +1 -1
  6. package/dist/exports/server.js +0 -2
  7. package/dist/exports/server.js.map +1 -1
  8. package/dist/layouts/Root/getLayoutData.d.ts.map +1 -1
  9. package/dist/layouts/Root/getLayoutData.js +5 -5
  10. package/dist/layouts/Root/getLayoutData.js.map +1 -1
  11. package/dist/routes/adminRoutes.d.ts.map +1 -1
  12. package/dist/routes/adminRoutes.js +2 -1
  13. package/dist/routes/adminRoutes.js.map +1 -1
  14. package/dist/routes/layoutRoute.d.ts +1 -1
  15. package/dist/routes/layoutRoute.d.ts.map +1 -1
  16. package/dist/routes/layoutRoute.js +2 -1
  17. package/dist/routes/layoutRoute.js.map +1 -1
  18. package/dist/utilities/devConfigReload.server.js +1 -1
  19. package/dist/utilities/devConfigReload.server.js.map +1 -1
  20. package/dist/utilities/getRequestI18n.server.d.ts +1 -1
  21. package/dist/utilities/getRequestI18n.server.js +1 -1
  22. package/dist/utilities/getRequestI18n.server.js.map +1 -1
  23. package/dist/utilities/graphqlHandler.server.js +2 -2
  24. package/dist/utilities/graphqlHandler.server.js.map +1 -1
  25. package/dist/utilities/handleServerFunctions.js +2 -5
  26. package/dist/utilities/handleServerFunctions.js.map +1 -1
  27. package/dist/utilities/initAdminContext.server.d.ts +9 -0
  28. package/dist/utilities/initAdminContext.server.d.ts.map +1 -0
  29. package/dist/utilities/initAdminContext.server.js +13 -0
  30. package/dist/utilities/initAdminContext.server.js.map +1 -0
  31. package/dist/utilities/loadAdminPage.d.ts +2 -2
  32. package/dist/utilities/loadAdminPage.d.ts.map +1 -1
  33. package/dist/utilities/loadAdminPage.js +8 -12
  34. package/dist/utilities/loadAdminPage.js.map +1 -1
  35. package/dist/utilities/serializeForRsc.d.ts.map +1 -1
  36. package/dist/utilities/serializeForRsc.js +6 -1
  37. package/dist/utilities/serializeForRsc.js.map +1 -1
  38. package/dist/utilities/serverFunctionClient.d.ts.map +1 -1
  39. package/dist/utilities/serverFunctionClient.js +6 -1
  40. package/dist/utilities/serverFunctionClient.js.map +1 -1
  41. package/dist/utilities/toSerializable.d.ts.map +1 -1
  42. package/dist/utilities/toSerializable.js +6 -1
  43. package/dist/utilities/toSerializable.js.map +1 -1
  44. package/dist/withPayload/config/external.js +1 -1
  45. package/dist/withPayload/config/external.js.map +1 -1
  46. package/dist/withPayload/config/optimizeDeps.d.ts.map +1 -1
  47. package/dist/withPayload/config/optimizeDeps.js +20 -4
  48. package/dist/withPayload/config/optimizeDeps.js.map +1 -1
  49. package/dist/withPayload/index.d.ts +6 -0
  50. package/dist/withPayload/index.d.ts.map +1 -1
  51. package/dist/withPayload/index.js +8 -2
  52. package/dist/withPayload/index.js.map +1 -1
  53. package/package.json +7 -7
  54. package/dist/utilities/getRequestLocale.d.ts +0 -7
  55. package/dist/utilities/getRequestLocale.d.ts.map +0 -1
  56. package/dist/utilities/getRequestLocale.js +0 -19
  57. package/dist/utilities/getRequestLocale.js.map +0 -1
  58. package/dist/utilities/initReq.server.d.ts +0 -20
  59. package/dist/utilities/initReq.server.d.ts.map +0 -1
  60. package/dist/utilities/initReq.server.js +0 -90
  61. package/dist/utilities/initReq.server.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/tanstack-start",
3
- "version": "4.0.0-internal.cc18726",
3
+ "version": "4.0.0-internal.cd47d20",
4
4
  "description": "TanStack Start framework adapter for Payload",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -58,8 +58,8 @@
58
58
  ],
59
59
  "dependencies": {
60
60
  "qs-esm": "^7.0.2",
61
- "@payloadcms/translations": "4.0.0-internal.cc18726",
62
- "@payloadcms/ui": "4.0.0-internal.cc18726"
61
+ "@payloadcms/translations": "4.0.0-internal.cd47d20",
62
+ "@payloadcms/ui": "4.0.0-internal.cd47d20"
63
63
  },
64
64
  "devDependencies": {
65
65
  "@tanstack/react-router": "^1.120.0",
@@ -68,10 +68,10 @@
68
68
  "@types/react-dom": "^19.0.0",
69
69
  "@vitejs/plugin-react": "^6.0.0",
70
70
  "@vitejs/plugin-rsc": "^0.5.21",
71
- "react": "^19.0.0",
72
- "react-dom": "^19.0.0",
71
+ "react": "19.2.6",
72
+ "react-dom": "19.2.6",
73
73
  "vite": ">=8.0.0",
74
- "payload": "4.0.0-internal.cc18726"
74
+ "payload": "4.0.0-internal.cd47d20"
75
75
  },
76
76
  "peerDependencies": {
77
77
  "@tanstack/react-router": "^1.120.0",
@@ -81,7 +81,7 @@
81
81
  "react": "^19.0.0",
82
82
  "react-dom": "^19.0.0",
83
83
  "vite": ">=8.0.0",
84
- "payload": "4.0.0-internal.cc18726"
84
+ "payload": "4.0.0-internal.cd47d20"
85
85
  },
86
86
  "peerDependenciesMeta": {
87
87
  "@vitejs/plugin-react": {
@@ -1,7 +0,0 @@
1
- import type { Locale, PayloadRequest } from 'payload';
2
- type GetRequestLocaleArgs = {
3
- req: PayloadRequest;
4
- };
5
- export declare function getRequestLocale({ req }: GetRequestLocaleArgs): Promise<Locale | undefined>;
6
- export {};
7
- //# sourceMappingURL=getRequestLocale.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getRequestLocale.d.ts","sourceRoot":"","sources":["../../src/utilities/getRequestLocale.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAKrD,KAAK,oBAAoB,GAAG;IAC1B,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,wBAAsB,gBAAgB,CAAC,EAAE,GAAG,EAAE,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkCjG"}
@@ -1,19 +0,0 @@
1
- import { getPreferences, upsertPreferences } from '@payloadcms/ui/rsc';
2
- import { findLocaleFromCode } from '@payloadcms/ui/shared';
3
- export async function getRequestLocale({ req }) {
4
- if (req.payload.config.localization) {
5
- const localeFromParams = req.query.locale;
6
- if (req.user && localeFromParams) {
7
- await upsertPreferences({
8
- key: 'locale',
9
- req,
10
- value: localeFromParams
11
- });
12
- }
13
- const userLocale = req.user && findLocaleFromCode(req.payload.config.localization, localeFromParams || (await getPreferences('locale', req.payload, req.user.id, req.user.collection))?.value);
14
- return userLocale ?? findLocaleFromCode(req.payload.config.localization, req.payload.config.localization.defaultLocale || 'en') ?? undefined;
15
- }
16
- return undefined;
17
- }
18
-
19
- //# sourceMappingURL=getRequestLocale.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utilities/getRequestLocale.ts"],"sourcesContent":["import type { Locale, PayloadRequest } from 'payload'\n\nimport { getPreferences, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { findLocaleFromCode } from '@payloadcms/ui/shared'\n\ntype GetRequestLocaleArgs = {\n req: PayloadRequest\n}\n\nexport async function getRequestLocale({ req }: GetRequestLocaleArgs): Promise<Locale | undefined> {\n if (req.payload.config.localization) {\n const localeFromParams = req.query.locale as string | undefined\n\n if (req.user && localeFromParams) {\n await upsertPreferences<Locale['code']>({ key: 'locale', req, value: localeFromParams })\n }\n\n const userLocale =\n req.user &&\n findLocaleFromCode(\n req.payload.config.localization,\n localeFromParams ||\n (\n await getPreferences<Locale['code']>(\n 'locale',\n req.payload,\n req.user.id,\n req.user.collection,\n )\n )?.value,\n )\n\n return (\n userLocale ??\n findLocaleFromCode(\n req.payload.config.localization,\n req.payload.config.localization.defaultLocale || 'en',\n ) ??\n undefined\n )\n }\n\n return undefined\n}\n"],"names":["getPreferences","upsertPreferences","findLocaleFromCode","getRequestLocale","req","payload","config","localization","localeFromParams","query","locale","user","key","value","userLocale","id","collection","defaultLocale","undefined"],"mappings":"AAEA,SAASA,cAAc,EAAEC,iBAAiB,QAAQ,qBAAoB;AACtE,SAASC,kBAAkB,QAAQ,wBAAuB;AAM1D,OAAO,eAAeC,iBAAiB,EAAEC,GAAG,EAAwB;IAClE,IAAIA,IAAIC,OAAO,CAACC,MAAM,CAACC,YAAY,EAAE;QACnC,MAAMC,mBAAmBJ,IAAIK,KAAK,CAACC,MAAM;QAEzC,IAAIN,IAAIO,IAAI,IAAIH,kBAAkB;YAChC,MAAMP,kBAAkC;gBAAEW,KAAK;gBAAUR;gBAAKS,OAAOL;YAAiB;QACxF;QAEA,MAAMM,aACJV,IAAIO,IAAI,IACRT,mBACEE,IAAIC,OAAO,CAACC,MAAM,CAACC,YAAY,EAC/BC,oBAEI,CAAA,MAAMR,eACJ,UACAI,IAAIC,OAAO,EACXD,IAAIO,IAAI,CAACI,EAAE,EACXX,IAAIO,IAAI,CAACK,UAAU,CACrB,GACCH;QAGT,OACEC,cACAZ,mBACEE,IAAIC,OAAO,CAACC,MAAM,CAACC,YAAY,EAC/BH,IAAIC,OAAO,CAACC,MAAM,CAACC,YAAY,CAACU,aAAa,IAAI,SAEnDC;IAEJ;IAEA,OAAOA;AACT"}
@@ -1,20 +0,0 @@
1
- import type { ImportMap, InitReqResult, SanitizedConfig, ServerAdapter } from 'payload';
2
- import { createLocalReq } from 'payload';
3
- import './devConfigReload.server.js';
4
- /**
5
- * Initializes a Payload request object from the current TanStack Start server context.
6
- * Uses `getRequest()` from `@tanstack/react-start/server` to access the incoming request.
7
- */
8
- export declare function initReq({ configPromise, importMap, overrides, serverAdapter, }: {
9
- configPromise: Promise<SanitizedConfig> | SanitizedConfig;
10
- importMap: ImportMap;
11
- overrides?: Parameters<typeof createLocalReq>[0];
12
- /**
13
- * `ServerAdapter` attached to `req.server`. Defaults to the native
14
- * `tanstackServerAdapter` (throws TanStack `redirect`/`notFound`). The admin
15
- * page render passes an error-contract adapter so navigation thrown mid-render
16
- * is caught at the loader boundary and re-thrown as native TanStack nav.
17
- */
18
- serverAdapter?: ServerAdapter;
19
- }): Promise<InitReqResult>;
20
- //# sourceMappingURL=initReq.server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"initReq.server.d.ts","sourceRoot":"","sources":["../../src/utilities/initReq.server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAIvF,OAAO,EACL,cAAc,EAMf,MAAM,SAAS,CAAA;AAKhB,OAAO,6BAA6B,CAAA;AAIpC;;;GAGG;AACH,wBAAsB,OAAO,CAAC,EAC5B,aAAa,EACb,SAAS,EACT,SAAS,EACT,aAAqC,GACtC,EAAE;IACD,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IACzD,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;IAChD;;;;;OAKG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B,GAAG,OAAO,CAAC,aAAa,CAAC,CAkFzB"}
@@ -1,90 +0,0 @@
1
- import { initI18n } from '@payloadcms/translations';
2
- import { getRequest } from '@tanstack/react-start/server';
3
- import { createLocalReq, executeAuthStrategies, getAccessResults, getPayload, getRequestLanguage, parseCookies } from 'payload';
4
- import * as qs from 'qs-esm';
5
- // Registers the dev reload strategy before the `getPayload` call below can
6
- // build an instance. Side-effect only, and a no-op outside of dev serve.
7
- import './devConfigReload.server.js';
8
- import { getRequestLocale } from './getRequestLocale.js';
9
- import { tanstackServerAdapter } from './serverAdapter.server.js';
10
- /**
11
- * Initializes a Payload request object from the current TanStack Start server context.
12
- * Uses `getRequest()` from `@tanstack/react-start/server` to access the incoming request.
13
- */ export async function initReq({ configPromise, importMap, overrides, serverAdapter = tanstackServerAdapter }) {
14
- const webRequest = getRequest();
15
- const headers = new Headers(webRequest.headers);
16
- const cookies = parseCookies(headers);
17
- const config = await configPromise;
18
- const payload = await getPayload({
19
- config,
20
- importMap
21
- });
22
- const languageCode = getRequestLanguage({
23
- config,
24
- cookies,
25
- headers
26
- });
27
- const i18n = await initI18n({
28
- config: config.i18n,
29
- context: 'client',
30
- language: languageCode
31
- });
32
- const { responseHeaders, user } = await executeAuthStrategies({
33
- headers,
34
- payload
35
- });
36
- const { req: reqOverrides, ...optionsOverrides } = overrides || {};
37
- // Parse the active URL's query string so that `req.query` (and thus
38
- // `getRequestLocale`, access checks, etc.) reflect things like `?locale=es`
39
- // even when the caller (e.g. the root layout loader) hasn't explicitly
40
- // forwarded `searchParams` via overrides. `createLocalReq` only defaults
41
- // `req.query` to `{}` and never reads the request URL itself.
42
- let queryFromUrl;
43
- try {
44
- const urlObject = new URL(webRequest.url);
45
- if (urlObject.search) {
46
- queryFromUrl = qs.parse(urlObject.search, {
47
- depth: 10,
48
- ignoreQueryPrefix: true
49
- });
50
- }
51
- } catch {
52
- queryFromUrl = undefined;
53
- }
54
- const req = await createLocalReq({
55
- req: {
56
- headers,
57
- host: headers.get('host') ?? undefined,
58
- i18n: i18n,
59
- query: queryFromUrl,
60
- responseHeaders,
61
- // Expose the `ServerAdapter` so framework-agnostic server functions can
62
- // set cookies / redirect via `req.server` (mirrors the Next.js adapter,
63
- // which passes `nextServerAdapter`). Required by handlers like
64
- // `switch-language`. Defaults to the native adapter; the page render
65
- // overrides it with the error-contract adapter.
66
- server: serverAdapter,
67
- url: webRequest.url,
68
- user,
69
- ...reqOverrides || {}
70
- },
71
- ...optionsOverrides || {}
72
- }, payload);
73
- const locale = await getRequestLocale({
74
- req
75
- });
76
- req.locale = locale?.code;
77
- const permissions = await getAccessResults({
78
- req
79
- });
80
- return {
81
- cookies,
82
- headers,
83
- languageCode,
84
- locale,
85
- permissions,
86
- req
87
- };
88
- }
89
-
90
- //# sourceMappingURL=initReq.server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utilities/initReq.server.ts"],"sourcesContent":["import type { I18n, I18nClient } from '@payloadcms/translations'\nimport type { ImportMap, InitReqResult, SanitizedConfig, ServerAdapter } from 'payload'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { getRequest } from '@tanstack/react-start/server'\nimport {\n createLocalReq,\n executeAuthStrategies,\n getAccessResults,\n getPayload,\n getRequestLanguage,\n parseCookies,\n} from 'payload'\nimport * as qs from 'qs-esm'\n\n// Registers the dev reload strategy before the `getPayload` call below can\n// build an instance. Side-effect only, and a no-op outside of dev serve.\nimport './devConfigReload.server.js'\nimport { getRequestLocale } from './getRequestLocale.js'\nimport { tanstackServerAdapter } from './serverAdapter.server.js'\n\n/**\n * Initializes a Payload request object from the current TanStack Start server context.\n * Uses `getRequest()` from `@tanstack/react-start/server` to access the incoming request.\n */\nexport async function initReq({\n configPromise,\n importMap,\n overrides,\n serverAdapter = tanstackServerAdapter,\n}: {\n configPromise: Promise<SanitizedConfig> | SanitizedConfig\n importMap: ImportMap\n overrides?: Parameters<typeof createLocalReq>[0]\n /**\n * `ServerAdapter` attached to `req.server`. Defaults to the native\n * `tanstackServerAdapter` (throws TanStack `redirect`/`notFound`). The admin\n * page render passes an error-contract adapter so navigation thrown mid-render\n * is caught at the loader boundary and re-thrown as native TanStack nav.\n */\n serverAdapter?: ServerAdapter\n}): Promise<InitReqResult> {\n const webRequest = getRequest()\n const headers = new Headers(webRequest.headers)\n const cookies = parseCookies(headers)\n\n const config = await configPromise\n const payload = await getPayload({ config, importMap })\n\n const languageCode = getRequestLanguage({\n config,\n cookies,\n headers,\n })\n\n const i18n: I18nClient = await initI18n({\n config: config.i18n,\n context: 'client',\n language: languageCode,\n })\n\n const { responseHeaders, user } = await executeAuthStrategies({\n headers,\n payload,\n })\n\n const { req: reqOverrides, ...optionsOverrides } = overrides || {}\n\n // Parse the active URL's query string so that `req.query` (and thus\n // `getRequestLocale`, access checks, etc.) reflect things like `?locale=es`\n // even when the caller (e.g. the root layout loader) hasn't explicitly\n // forwarded `searchParams` via overrides. `createLocalReq` only defaults\n // `req.query` to `{}` and never reads the request URL itself.\n let queryFromUrl: Record<string, unknown> | undefined\n try {\n const urlObject = new URL(webRequest.url)\n if (urlObject.search) {\n queryFromUrl = qs.parse(urlObject.search, {\n depth: 10,\n ignoreQueryPrefix: true,\n }) as Record<string, unknown>\n }\n } catch {\n queryFromUrl = undefined\n }\n\n const req = await createLocalReq(\n {\n req: {\n headers,\n host: headers.get('host') ?? undefined,\n i18n: i18n as I18n,\n query: queryFromUrl,\n responseHeaders,\n // Expose the `ServerAdapter` so framework-agnostic server functions can\n // set cookies / redirect via `req.server` (mirrors the Next.js adapter,\n // which passes `nextServerAdapter`). Required by handlers like\n // `switch-language`. Defaults to the native adapter; the page render\n // overrides it with the error-contract adapter.\n server: serverAdapter,\n url: webRequest.url,\n user,\n ...(reqOverrides || {}),\n },\n ...(optionsOverrides || {}),\n },\n payload,\n )\n\n const locale = await getRequestLocale({ req })\n\n req.locale = locale?.code\n\n const permissions = await getAccessResults({ req })\n\n return {\n cookies,\n headers,\n languageCode,\n locale,\n permissions,\n req,\n }\n}\n"],"names":["initI18n","getRequest","createLocalReq","executeAuthStrategies","getAccessResults","getPayload","getRequestLanguage","parseCookies","qs","getRequestLocale","tanstackServerAdapter","initReq","configPromise","importMap","overrides","serverAdapter","webRequest","headers","Headers","cookies","config","payload","languageCode","i18n","context","language","responseHeaders","user","req","reqOverrides","optionsOverrides","queryFromUrl","urlObject","URL","url","search","parse","depth","ignoreQueryPrefix","undefined","host","get","query","server","locale","code","permissions"],"mappings":"AAGA,SAASA,QAAQ,QAAQ,2BAA0B;AACnD,SAASC,UAAU,QAAQ,+BAA8B;AACzD,SACEC,cAAc,EACdC,qBAAqB,EACrBC,gBAAgB,EAChBC,UAAU,EACVC,kBAAkB,EAClBC,YAAY,QACP,UAAS;AAChB,YAAYC,QAAQ,SAAQ;AAE5B,2EAA2E;AAC3E,yEAAyE;AACzE,OAAO,8BAA6B;AACpC,SAASC,gBAAgB,QAAQ,wBAAuB;AACxD,SAASC,qBAAqB,QAAQ,4BAA2B;AAEjE;;;CAGC,GACD,OAAO,eAAeC,QAAQ,EAC5BC,aAAa,EACbC,SAAS,EACTC,SAAS,EACTC,gBAAgBL,qBAAqB,EAYtC;IACC,MAAMM,aAAaf;IACnB,MAAMgB,UAAU,IAAIC,QAAQF,WAAWC,OAAO;IAC9C,MAAME,UAAUZ,aAAaU;IAE7B,MAAMG,SAAS,MAAMR;IACrB,MAAMS,UAAU,MAAMhB,WAAW;QAAEe;QAAQP;IAAU;IAErD,MAAMS,eAAehB,mBAAmB;QACtCc;QACAD;QACAF;IACF;IAEA,MAAMM,OAAmB,MAAMvB,SAAS;QACtCoB,QAAQA,OAAOG,IAAI;QACnBC,SAAS;QACTC,UAAUH;IACZ;IAEA,MAAM,EAAEI,eAAe,EAAEC,IAAI,EAAE,GAAG,MAAMxB,sBAAsB;QAC5Dc;QACAI;IACF;IAEA,MAAM,EAAEO,KAAKC,YAAY,EAAE,GAAGC,kBAAkB,GAAGhB,aAAa,CAAC;IAEjE,oEAAoE;IACpE,4EAA4E;IAC5E,uEAAuE;IACvE,yEAAyE;IACzE,8DAA8D;IAC9D,IAAIiB;IACJ,IAAI;QACF,MAAMC,YAAY,IAAIC,IAAIjB,WAAWkB,GAAG;QACxC,IAAIF,UAAUG,MAAM,EAAE;YACpBJ,eAAevB,GAAG4B,KAAK,CAACJ,UAAUG,MAAM,EAAE;gBACxCE,OAAO;gBACPC,mBAAmB;YACrB;QACF;IACF,EAAE,OAAM;QACNP,eAAeQ;IACjB;IAEA,MAAMX,MAAM,MAAM1B,eAChB;QACE0B,KAAK;YACHX;YACAuB,MAAMvB,QAAQwB,GAAG,CAAC,WAAWF;YAC7BhB,MAAMA;YACNmB,OAAOX;YACPL;YACA,wEAAwE;YACxE,wEAAwE;YACxE,+DAA+D;YAC/D,qEAAqE;YACrE,gDAAgD;YAChDiB,QAAQ5B;YACRmB,KAAKlB,WAAWkB,GAAG;YACnBP;YACA,GAAIE,gBAAgB,CAAC,CAAC;QACxB;QACA,GAAIC,oBAAoB,CAAC,CAAC;IAC5B,GACAT;IAGF,MAAMuB,SAAS,MAAMnC,iBAAiB;QAAEmB;IAAI;IAE5CA,IAAIgB,MAAM,GAAGA,QAAQC;IAErB,MAAMC,cAAc,MAAM1C,iBAAiB;QAAEwB;IAAI;IAEjD,OAAO;QACLT;QACAF;QACAK;QACAsB;QACAE;QACAlB;IACF;AACF"}