@ttsc/unplugin 0.28.5 → 0.29.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 (86) hide show
  1. package/README.md +15 -11
  2. package/lib/api.js +10 -0
  3. package/lib/api.js.map +1 -1
  4. package/lib/api.mjs +3 -2
  5. package/lib/api.mjs.map +1 -1
  6. package/lib/bun-register.d.cts +10 -7
  7. package/lib/bun-register.d.mts +10 -7
  8. package/lib/bun-register.d.ts +10 -7
  9. package/lib/bun-register.js +90 -24
  10. package/lib/bun-register.js.map +1 -1
  11. package/lib/bun-register.mjs +90 -24
  12. package/lib/bun-register.mjs.map +1 -1
  13. package/lib/bun.d.cts +10 -8
  14. package/lib/bun.d.mts +10 -8
  15. package/lib/bun.d.ts +10 -8
  16. package/lib/bun.js +19 -17
  17. package/lib/bun.js.map +1 -1
  18. package/lib/bun.mjs +20 -18
  19. package/lib/bun.mjs.map +1 -1
  20. package/lib/core/index.d.cts +10 -8
  21. package/lib/core/index.d.mts +10 -8
  22. package/lib/core/index.d.ts +10 -8
  23. package/lib/core/index.js +88 -16
  24. package/lib/core/index.js.map +1 -1
  25. package/lib/core/index.mjs +81 -18
  26. package/lib/core/index.mjs.map +1 -1
  27. package/lib/core/projectDiscovery.d.cts +55 -0
  28. package/lib/core/projectDiscovery.d.mts +55 -0
  29. package/lib/core/projectDiscovery.d.ts +55 -0
  30. package/lib/core/projectDiscovery.js +187 -0
  31. package/lib/core/projectDiscovery.js.map +1 -0
  32. package/lib/core/projectDiscovery.mjs +182 -0
  33. package/lib/core/projectDiscovery.mjs.map +1 -0
  34. package/lib/core/sourceExtensions.d.cts +10 -0
  35. package/lib/core/sourceExtensions.d.mts +10 -0
  36. package/lib/core/sourceExtensions.d.ts +10 -0
  37. package/lib/core/sourceExtensions.js +38 -0
  38. package/lib/core/sourceExtensions.js.map +1 -0
  39. package/lib/core/sourceExtensions.mjs +32 -0
  40. package/lib/core/sourceExtensions.mjs.map +1 -0
  41. package/lib/core/transform.d.cts +96 -16
  42. package/lib/core/transform.d.mts +96 -16
  43. package/lib/core/transform.d.ts +96 -16
  44. package/lib/core/transform.js +1295 -309
  45. package/lib/core/transform.js.map +1 -1
  46. package/lib/core/transform.mjs +1290 -310
  47. package/lib/core/transform.mjs.map +1 -1
  48. package/lib/core/tsconfigPaths.d.cts +55 -3
  49. package/lib/core/tsconfigPaths.d.mts +55 -3
  50. package/lib/core/tsconfigPaths.d.ts +55 -3
  51. package/lib/core/tsconfigPaths.js +260 -46
  52. package/lib/core/tsconfigPaths.js.map +1 -1
  53. package/lib/core/tsconfigPaths.mjs +255 -47
  54. package/lib/core/tsconfigPaths.mjs.map +1 -1
  55. package/lib/core/viteServe.d.cts +18 -21
  56. package/lib/core/viteServe.d.mts +18 -21
  57. package/lib/core/viteServe.d.ts +18 -21
  58. package/lib/core/viteServe.js +88 -47
  59. package/lib/core/viteServe.js.map +1 -1
  60. package/lib/core/viteServe.mjs +89 -49
  61. package/lib/core/viteServe.mjs.map +1 -1
  62. package/lib/next.d.cts +7 -0
  63. package/lib/next.d.mts +7 -0
  64. package/lib/next.d.ts +7 -0
  65. package/lib/next.js +186 -54
  66. package/lib/next.js.map +1 -1
  67. package/lib/next.mjs +186 -55
  68. package/lib/next.mjs.map +1 -1
  69. package/lib/turbopack.d.cts +6 -4
  70. package/lib/turbopack.d.mts +6 -4
  71. package/lib/turbopack.d.ts +6 -4
  72. package/lib/turbopack.js +11 -10
  73. package/lib/turbopack.js.map +1 -1
  74. package/lib/turbopack.mjs +11 -10
  75. package/lib/turbopack.mjs.map +1 -1
  76. package/package.json +7 -4
  77. package/src/bun-register.ts +112 -25
  78. package/src/bun.ts +60 -50
  79. package/src/core/index.ts +114 -19
  80. package/src/core/projectDiscovery.ts +256 -0
  81. package/src/core/sourceExtensions.ts +47 -0
  82. package/src/core/transform.ts +1671 -361
  83. package/src/core/tsconfigPaths.ts +406 -46
  84. package/src/core/viteServe.ts +125 -74
  85. package/src/next.ts +230 -54
  86. package/src/turbopack.ts +11 -10
package/lib/next.js CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var fs = require('node:fs');
6
+ var path = require('node:path');
7
+ var node_url = require('node:url');
8
+ var sourceExtensions = require('./core/sourceExtensions.js');
5
9
  var webpack = require('./webpack.js');
6
10
 
7
11
  /** The standalone loader entry Turbopack accepts through `turbopack.rules`. */
@@ -9,11 +13,11 @@ const TURBOPACK_LOADER = "@ttsc/unplugin/turbopack";
9
13
  /**
10
14
  * The globs the loader is wired for.
11
15
  *
12
- * The same two the manual wiring in the README uses. A wider glob would be
13
- * harmless, since `isTransformTarget` declines everything else that reaches the
14
- * loader, but it would also route files through a worker for nothing.
16
+ * The same exact set the manual wiring in the README uses. A wider glob would
17
+ * be harmless, since `isTransformTarget` declines everything else that reaches
18
+ * the loader, but it would also route files through a worker for nothing.
15
19
  */
16
- const TURBOPACK_RULE_GLOBS = ["*.ts", "*.tsx"];
20
+ const TURBOPACK_RULE_GLOBS = sourceExtensions.TYPESCRIPT_TURBOPACK_RULE_GLOBS;
17
21
  /**
18
22
  * Wrap a Next.js config object so that ttsc runs under whichever bundler
19
23
  * Next.js uses.
@@ -102,35 +106,33 @@ function warnAboutSuppressedWebpackConfig(nextConfig) {
102
106
  */
103
107
  function withTtscTurbopackRules(existing, options) {
104
108
  const rules = { ...(existing?.rules ?? {}) };
109
+ // Package ownership is stable only for this configuration snapshot. A later
110
+ // call may observe an atomic install or a directory-link retarget at the same
111
+ // lexical loader path, so no verdict can escape this invocation.
112
+ const resolvedLoaderResults = new Map();
105
113
  for (const glob of TURBOPACK_RULE_GLOBS) {
106
114
  const rule = rules[glob];
107
- const loaders = selectTurbopackLoaders(rule);
108
- if (loaders.some(referencesTtscLoader)) {
115
+ if (hasUnconditionalTtscLoader(rule, resolvedLoaderResults)) {
109
116
  continue;
110
117
  }
111
118
  // The caller may have written the same file set under a different glob.
112
119
  // Adding ours beside theirs makes every matching module run the loader
113
120
  // twice, and the second pass receives the first pass's output, so the
114
121
  // guard has to cover the spellings a caller plausibly uses rather than
115
- // only the two this wrapper writes (samchon/ttsc#1314).
116
- if (coveredByAnotherRule(rules, glob)) {
122
+ // only the four this wrapper writes (samchon/ttsc#1314).
123
+ if (coveredByAnotherRule(rules, glob, resolvedLoaderResults)) {
117
124
  continue;
118
125
  }
119
126
  const entry = { loader: TURBOPACK_LOADER, options: options ?? {} };
120
- // Appended, not prepended. Turbopack runs a rule's loaders right to left,
121
- // so the last entry is the one that sees the original source. ttsc
122
- // transforms TypeScript into TypeScript, so it has to be that one, which
123
- // is the same position `enforce: "pre"` gives it on the webpack half.
127
+ // Loader shorthand runs right to left, so ttsc is appended there to see
128
+ // the original source. Rule collections run matching items in order, so
129
+ // ttsc becomes an explicit first rule there for the same reason. That is
130
+ // the same position `enforce: "pre"` gives it on the webpack half.
124
131
  //
125
132
  // Measured rather than inferred from webpack's `loader-runner`: two
126
133
  // loaders on one rule, each marking the source, came back marked in the
127
134
  // order that only the last-runs-first chain produces (samchon/ttsc#1319).
128
- rules[glob] =
129
- rule === undefined || loaders.length === 0
130
- ? { loaders: [entry] }
131
- : Array.isArray(rule)
132
- ? { loaders: [...loaders, entry] }
133
- : { ...rule, loaders: [...loaders, entry] };
135
+ rules[glob] = addUnconditionalTtscLoader(rule, entry);
134
136
  }
135
137
  return { ...(existing ?? {}), rules };
136
138
  }
@@ -147,13 +149,13 @@ function withTtscTurbopackRules(existing, options) {
147
149
  * untransformed, which is samchon/ttsc#1310 again and the quieter of the two
148
150
  * failures. {@link matchesExtension} owns the rule and names what it declines.
149
151
  */
150
- function coveredByAnotherRule(rules, glob) {
152
+ function coveredByAnotherRule(rules, glob, resolvedLoaderResults) {
151
153
  const extension = glob.slice(glob.lastIndexOf(".") + 1);
152
154
  return Object.entries(rules).some(([candidate, rule]) => {
153
155
  if (candidate === glob) {
154
156
  return false;
155
157
  }
156
- if (!selectTurbopackLoaders(rule).some(referencesTtscLoader)) {
158
+ if (!hasUnconditionalTtscLoader(rule, resolvedLoaderResults)) {
157
159
  return false;
158
160
  }
159
161
  return matchesExtension(candidate, extension);
@@ -181,7 +183,7 @@ function coveredByAnotherRule(rules, glob) {
181
183
  * spellings, and that document explains why it is a set rather than a rule.
182
184
  */
183
185
  function matchesExtension(glob, extension) {
184
- return PROJECT_WIDE_GLOBS.get(glob.trim())?.includes(extension) === true;
186
+ return PROJECT_WIDE_GLOBS.get(glob)?.includes(extension) === true;
185
187
  }
186
188
  /**
187
189
  * The exact glob spellings a real Turbopack build has shown to name every file
@@ -205,53 +207,183 @@ function matchesExtension(glob, extension) {
205
207
  * if any — is a second registration rather than a module that no loader ever
206
208
  * sees.
207
209
  *
208
- * `experimental/test-unplugin` drives every entry through `next build
209
- * --turbopack` and asserts a nested `.ts`, a root-level `.ts` and a nested
210
- * `.tsx` all came out transformed, and
211
- * `test_next_adapter_does_not_double_register_across_globs` asserts these keys
212
- * and that list are the same set, so an entry cannot be added here without a
213
- * build proving it.
210
+ * `experimental/test-unplugin` reads this exported table from the installed
211
+ * package, drives every entry through one `next build --turbopack`, and asserts
212
+ * root, nested, and deep `.ts`, `.tsx`, `.mts`, and `.cts` sources match
213
+ * exactly the extension family recorded here. An entry therefore cannot be
214
+ * recognised without that same build measuring it.
214
215
  */
215
- const PROJECT_WIDE_GLOBS = new Map([
216
- ["*.ts", ["ts"]],
217
- ["**/*.ts", ["ts"]],
218
- ["{**/,}*.ts", ["ts"]],
219
- ["*.tsx", ["tsx"]],
220
- ["**/*.tsx", ["tsx"]],
221
- ["*.{ts,tsx}", ["ts", "tsx"]],
222
- ["{*.ts,*.tsx}", ["ts", "tsx"]],
223
- ["**/*.{ts,tsx}", ["ts", "tsx"]],
224
- ["**/{*.ts,*.tsx}", ["ts", "tsx"]],
225
- ["**/**/*.{ts,tsx}", ["ts", "tsx"]],
216
+ const TYPESCRIPT_EXTENSION_NAMES = sourceExtensions.TYPESCRIPT_TRANSFORM_EXTENSIONS.map((extension) => extension.slice(1));
217
+ const TYPESCRIPT_EXTENSION_GROUPS = extensionCombinations(TYPESCRIPT_EXTENSION_NAMES);
218
+ /**
219
+ * Measured project-wide Turbopack globs and the source extensions each covers.
220
+ *
221
+ * Exported so the packed-package E2E can measure the exact production allowlist
222
+ * instead of maintaining a second list that can drift from it.
223
+ */
224
+ const TURBOPACK_PROJECT_WIDE_GLOB_COVERAGE = Object.freeze([
225
+ ...TYPESCRIPT_EXTENSION_NAMES.flatMap((extension) => {
226
+ const extensions = Object.freeze([extension]);
227
+ return [
228
+ Object.freeze([`*.${extension}`, extensions]),
229
+ Object.freeze([`**/*.${extension}`, extensions]),
230
+ Object.freeze([`{**/,}*.${extension}`, extensions]),
231
+ ];
232
+ }),
233
+ ...TYPESCRIPT_EXTENSION_GROUPS.flatMap(projectWideBraceGlobEntries),
226
234
  ]);
235
+ const PROJECT_WIDE_GLOBS = new Map(TURBOPACK_PROJECT_WIDE_GLOB_COVERAGE);
236
+ /** Every source-extension subset of size two or more, in shared-table order. */
237
+ function extensionCombinations(extensions) {
238
+ const output = [];
239
+ const visit = (start, selected) => {
240
+ for (let index = start; index < extensions.length; index += 1) {
241
+ const next = [...selected, extensions[index]];
242
+ if (next.length >= 2)
243
+ output.push(Object.freeze(next));
244
+ visit(index + 1, next);
245
+ }
246
+ };
247
+ visit(0, []);
248
+ return output;
249
+ }
250
+ /** Measured project-wide brace spellings for one extension family. */
251
+ function projectWideBraceGlobEntries(extensions) {
252
+ const suffixes = extensions.join(",");
253
+ const alternatives = extensions
254
+ .map((extension) => `*.${extension}`)
255
+ .join(",");
256
+ return [
257
+ Object.freeze([`*.{${suffixes}}`, extensions]),
258
+ Object.freeze([`{${alternatives}}`, extensions]),
259
+ Object.freeze([`**/*.{${suffixes}}`, extensions]),
260
+ Object.freeze([`**/{${alternatives}}`, extensions]),
261
+ Object.freeze([`**/**/*.{${suffixes}}`, extensions]),
262
+ ];
263
+ }
227
264
  /**
228
- * Read the loader list out of one Turbopack rule.
265
+ * Add one unconditional loader without flattening Next's rule collection.
229
266
  *
230
- * Turbopack accepts a bare array of loaders as well as the object form, and a
231
- * loader is either a module name or a `{ loader, options }` pair, so this
232
- * normalises only enough to answer "what is already here".
267
+ * An array is either loader shorthand or a collection whose entries may be
268
+ * complete conditional rule objects, so it must remain an array. A collection
269
+ * executes every matching rule in order; its unconditional ttsc rule therefore
270
+ * comes first so it sees the original source before any caller rule. A
271
+ * conditioned object becomes that same two-item collection because putting ttsc
272
+ * inside the condition would leave the rest of the glob uncovered. An
273
+ * unconditioned object can keep its own shape while gaining the loader,
274
+ * including when it had no loaders.
233
275
  */
234
- function selectTurbopackLoaders(rule) {
276
+ function addUnconditionalTtscLoader(rule, entry) {
235
277
  if (Array.isArray(rule)) {
236
- return rule;
278
+ return rule.every(isTurbopackLoaderItem)
279
+ ? [...rule, entry]
280
+ : [{ loaders: [entry] }, ...rule];
237
281
  }
238
282
  if (typeof rule === "object" && rule !== null) {
239
- const loaders = rule.loaders;
240
- if (Array.isArray(loaders)) {
241
- return loaders;
283
+ if (rule.condition !== undefined) {
284
+ return [{ loaders: [entry] }, rule];
242
285
  }
286
+ return {
287
+ ...rule,
288
+ loaders: [...selectTurbopackConfigLoaders(rule), entry],
289
+ };
290
+ }
291
+ return { loaders: [entry] };
292
+ }
293
+ /** Read the direct loader list from one Turbopack rule configuration item. */
294
+ function selectTurbopackConfigLoaders(rule) {
295
+ if (typeof rule !== "object" || rule === null || Array.isArray(rule)) {
296
+ return [];
297
+ }
298
+ const loaders = rule.loaders;
299
+ return Array.isArray(loaders) ? loaders : [];
300
+ }
301
+ /** Whether a rule collection provides this loader without a condition. */
302
+ function hasUnconditionalTtscLoader(rule, resolvedLoaderResults) {
303
+ if (Array.isArray(rule)) {
304
+ return rule.some((item) => {
305
+ if (isTurbopackLoaderItem(item)) {
306
+ return referencesTtscLoader(item, resolvedLoaderResults);
307
+ }
308
+ return (typeof item === "object" &&
309
+ item !== null &&
310
+ item.condition === undefined &&
311
+ selectTurbopackConfigLoaders(item).some((loader) => referencesTtscLoader(loader, resolvedLoaderResults)));
312
+ });
243
313
  }
244
- return [];
314
+ return (typeof rule === "object" &&
315
+ rule !== null &&
316
+ rule.condition === undefined &&
317
+ selectTurbopackConfigLoaders(rule).some((loader) => referencesTtscLoader(loader, resolvedLoaderResults)));
318
+ }
319
+ /** Whether one collection item is a direct Turbopack loader. */
320
+ function isTurbopackLoaderItem(item) {
321
+ return (typeof item === "string" ||
322
+ (typeof item === "object" &&
323
+ item !== null &&
324
+ typeof item.loader === "string"));
245
325
  }
246
326
  /** Whether one Turbopack loader entry is already this package's loader. */
247
- function referencesTtscLoader(loader) {
248
- if (typeof loader === "string") {
249
- return loader === TURBOPACK_LOADER;
327
+ function referencesTtscLoader(loader, resolvedLoaderResults) {
328
+ const identity = typeof loader === "string"
329
+ ? loader
330
+ : typeof loader === "object" && loader !== null
331
+ ? loader.loader
332
+ : undefined;
333
+ return (typeof identity === "string" &&
334
+ (identity === TURBOPACK_LOADER ||
335
+ isResolvedTtscLoader(identity, resolvedLoaderResults)));
336
+ }
337
+ /** Whether an absolute path is the Turbopack entry of an @ttsc/unplugin copy. */
338
+ function isResolvedTtscLoader(identity, resolvedLoaderResults) {
339
+ const cached = resolvedLoaderResults.get(identity);
340
+ if (cached !== undefined) {
341
+ return cached;
342
+ }
343
+ let file;
344
+ try {
345
+ file = /^file:/i.test(identity) ? node_url.fileURLToPath(identity) : identity;
346
+ }
347
+ catch {
348
+ resolvedLoaderResults.set(identity, false);
349
+ return false;
350
+ }
351
+ if (!path.isAbsolute(file)) {
352
+ resolvedLoaderResults.set(identity, false);
353
+ return false;
354
+ }
355
+ let resolvedFile;
356
+ try {
357
+ resolvedFile = fs.realpathSync.native(file);
358
+ if (!fs.statSync(resolvedFile).isFile()) {
359
+ resolvedLoaderResults.set(identity, false);
360
+ return false;
361
+ }
362
+ }
363
+ catch {
364
+ resolvedLoaderResults.set(identity, false);
365
+ return false;
366
+ }
367
+ const packageRoot = path.dirname(path.dirname(resolvedFile));
368
+ const relative = path
369
+ .relative(packageRoot, resolvedFile)
370
+ .replaceAll(path.sep, "/");
371
+ if (relative !== "lib/turbopack.js" && relative !== "lib/turbopack.mjs") {
372
+ resolvedLoaderResults.set(identity, false);
373
+ return false;
374
+ }
375
+ let matches = false;
376
+ try {
377
+ const manifest = JSON.parse(fs.readFileSync(path.join(packageRoot, "package.json"), "utf8"));
378
+ matches = manifest.name === "@ttsc/unplugin";
379
+ }
380
+ catch {
381
+ // An unreadable or malformed owner cannot prove this package's identity.
250
382
  }
251
- return (typeof loader === "object" &&
252
- loader !== null &&
253
- loader.loader === TURBOPACK_LOADER);
383
+ resolvedLoaderResults.set(identity, matches);
384
+ return matches;
254
385
  }
255
386
 
387
+ exports.TURBOPACK_PROJECT_WIDE_GLOB_COVERAGE = TURBOPACK_PROJECT_WIDE_GLOB_COVERAGE;
256
388
  exports.default = next;
257
389
  //# sourceMappingURL=next.js.map
package/lib/next.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"next.js","sources":["../src/next.ts"],"sourcesContent":[null],"names":["webpack"],"mappings":"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"}
1
+ {"version":3,"file":"next.js","sources":["../src/next.ts"],"sourcesContent":[null],"names":["TYPESCRIPT_TURBOPACK_RULE_GLOBS","webpack","TYPESCRIPT_TRANSFORM_EXTENSIONS","fileURLToPath"],"mappings":";;;;;;;;;;AAWA;AACA,MAAM,gBAAgB,GAAG,0BAA0B;AACnD;;;;;;AAMG;AACH,MAAM,oBAAoB,GAAGA,gDAA+B;AAqC5D;;;;;;;;;;;;;;;;;;;AAmBG;AACW,SAAU,IAAI,CAC1B,UAAA,GAA6B,EAAE,EAC/B,OAA6B,EAAA;IAE7B,gCAAgC,CAAC,UAAU,CAAC;IAC5C,OAAO;AACL,QAAA,GAAG,UAAU;QACb,SAAS,EAAE,sBAAsB,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC;QAChE,OAAO,CAAC,MAAyB,EAAE,cAAuB,EAAA;YACxD,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,EAAE;;YAEpE,MAAM,CAAC,OAAO,CAAC,OAAO,CAACC,eAAO,CAAC,OAAO,CAAC,CAAC;AACxC,YAAA,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,UAAU,EAAE;gBAC5C,OAAO,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC;YACnD;AACA,YAAA,OAAO,MAAM;QACf,CAAC;KACF;AACH;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACH,SAAS,gCAAgC,CAAC,UAA0B,EAAA;AAClE,IAAA,IACE,OAAO,UAAU,CAAC,OAAO,KAAK,UAAU;AACxC,QAAA,UAAU,CAAC,SAAS,KAAK,SAAS,EAClC;QACA;IACF;AACA,IAAA,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,2EAA2E;QACzE,kEAAkE;QAClE,0EAA0E;QAC1E,kEAAkE;QAClE,uBAAuB;AACvB,QAAA,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAC1B;AACH;AAEA;;;;;;;;;AASG;AACH,SAAS,sBAAsB,CAC7B,QAAyC,EACzC,OAA6B,EAAA;AAE7B,IAAA,MAAM,KAAK,GAA4B,EAAE,IAAI,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;;;;AAIrE,IAAA,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAmB;AACxD,IAAA,KAAK,MAAM,IAAI,IAAI,oBAAoB,EAAE;AACvC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,0BAA0B,CAAC,IAAI,EAAE,qBAAqB,CAAC,EAAE;YAC3D;QACF;;;;;;QAMA,IAAI,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,qBAAqB,CAAC,EAAE;YAC5D;QACF;AACA,QAAA,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE;;;;;;;;;QASlE,KAAK,CAAC,IAAI,CAAC,GAAG,0BAA0B,CAAC,IAAI,EAAE,KAAK,CAAC;IACvD;IACA,OAAO,EAAE,IAAI,QAAQ,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE;AACvC;AAEA;;;;;;;;;;;;AAYG;AACH,SAAS,oBAAoB,CAC3B,KAA8B,EAC9B,IAAY,EACZ,qBAA2C,EAAA;AAE3C,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvD,IAAA,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,KAAI;AACtD,QAAA,IAAI,SAAS,KAAK,IAAI,EAAE;AACtB,YAAA,OAAO,KAAK;QACd;QACA,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,qBAAqB,CAAC,EAAE;AAC5D,YAAA,OAAO,KAAK;QACd;AACA,QAAA,OAAO,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC;AAC/C,IAAA,CAAC,CAAC;AACJ;AAEA;;;;;;;;;;;;;;;;;;;;AAoBG;AACH,SAAS,gBAAgB,CAAC,IAAY,EAAE,SAAiB,EAAA;AACvD,IAAA,OAAO,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI;AACnE;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACH,MAAM,0BAA0B,GAAGC,gDAA+B,CAAC,GAAG,CACpE,CAAC,SAAS,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAClC;AACD,MAAM,2BAA2B,GAAG,qBAAqB,CACvD,0BAA0B,CAC3B;AAED;;;;;AAKG;AACI,MAAM,oCAAoC,GAE7C,MAAM,CAAC,MAAM,CAAC;AAChB,IAAA,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;QAClD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7C,OAAO;YACL,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA,EAAA,EAAK,SAAS,CAAA,CAAE,EAAE,UAAU,CAAU,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA,KAAA,EAAQ,SAAS,CAAA,CAAE,EAAE,UAAU,CAAU,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA,QAAA,EAAW,SAAS,CAAA,CAAE,EAAE,UAAU,CAAU,CAAC;SAC7D;AACH,IAAA,CAAC,CAAC;AACF,IAAA,GAAG,2BAA2B,CAAC,OAAO,CAAC,2BAA2B,CAAC;AACpE,CAAA;AACD,MAAM,kBAAkB,GAA2C,IAAI,GAAG,CACxE,oCAAoC,CACrC;AAED;AACA,SAAS,qBAAqB,CAC5B,UAA6B,EAAA;IAE7B,MAAM,MAAM,GAA6B,EAAE;AAC3C,IAAA,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,QAAkB,KAAU;AACxD,QAAA,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;YAC7D,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAE,CAAC;AAC9C,YAAA,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACtD,YAAA,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC;QACxB;AACF,IAAA,CAAC;AACD,IAAA,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AACZ,IAAA,OAAO,MAAM;AACf;AAEA;AACA,SAAS,2BAA2B,CAClC,UAA6B,EAAA;IAE7B,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;IACrC,MAAM,YAAY,GAAG;SAClB,GAAG,CAAC,CAAC,SAAS,KAAK,CAAA,EAAA,EAAK,SAAS,CAAA,CAAE;SACnC,IAAI,CAAC,GAAG,CAAC;IACZ,OAAO;QACL,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA,GAAA,EAAM,QAAQ,CAAA,CAAA,CAAG,EAAE,UAAU,CAAU,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA,CAAA,EAAI,YAAY,CAAA,CAAA,CAAG,EAAE,UAAU,CAAU,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA,MAAA,EAAS,QAAQ,CAAA,CAAA,CAAG,EAAE,UAAU,CAAU,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA,IAAA,EAAO,YAAY,CAAA,CAAA,CAAG,EAAE,UAAU,CAAU,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA,SAAA,EAAY,QAAQ,CAAA,CAAA,CAAG,EAAE,UAAU,CAAU,CAAC;KAC9D;AACH;AAEA;;;;;;;;;;;AAWG;AACH,SAAS,0BAA0B,CACjC,IAAa,EACb,KAAuD,EAAA;AAEvD,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB;AACrC,cAAE,CAAC,GAAG,IAAI,EAAE,KAAK;AACjB,cAAE,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;IACrC;IACA,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;AAC7C,QAAA,IAAK,IAAgC,CAAC,SAAS,KAAK,SAAS,EAAE;YAC7D,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC;QACrC;QACA,OAAO;AACL,YAAA,GAAG,IAAI;YACP,OAAO,EAAE,CAAC,GAAG,4BAA4B,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;SACxD;IACH;AACA,IAAA,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE;AAC7B;AAEA;AACA,SAAS,4BAA4B,CAAC,IAAa,EAAA;AACjD,IAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACpE,QAAA,OAAO,EAAE;IACX;AACA,IAAA,MAAM,OAAO,GAAI,IAA8B,CAAC,OAAO;AACvD,IAAA,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,EAAE;AAC9C;AAEA;AACA,SAAS,0BAA0B,CACjC,IAAa,EACb,qBAA2C,EAAA;AAE3C,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;AACxB,YAAA,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE;AAC/B,gBAAA,OAAO,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,CAAC;YAC1D;AACA,YAAA,QACE,OAAO,IAAI,KAAK,QAAQ;AACxB,gBAAA,IAAI,KAAK,IAAI;gBACZ,IAAgC,CAAC,SAAS,KAAK,SAAS;AACzD,gBAAA,4BAA4B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAC7C,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,CAAC,CACpD;AAEL,QAAA,CAAC,CAAC;IACJ;AACA,IAAA,QACE,OAAO,IAAI,KAAK,QAAQ;AACxB,QAAA,IAAI,KAAK,IAAI;QACZ,IAAgC,CAAC,SAAS,KAAK,SAAS;AACzD,QAAA,4BAA4B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAC7C,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,CAAC,CACpD;AAEL;AAEA;AACA,SAAS,qBAAqB,CAAC,IAAa,EAAA;AAC1C,IAAA,QACE,OAAO,IAAI,KAAK,QAAQ;SACvB,OAAO,IAAI,KAAK,QAAQ;AACvB,YAAA,IAAI,KAAK,IAAI;AACb,YAAA,OAAQ,IAA6B,CAAC,MAAM,KAAK,QAAQ,CAAC;AAEhE;AAEA;AACA,SAAS,oBAAoB,CAC3B,MAAe,EACf,qBAA2C,EAAA;AAE3C,IAAA,MAAM,QAAQ,GACZ,OAAO,MAAM,KAAK;AAChB,UAAE;UACA,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK;cACtC,MAA+B,CAAC;cACjC,SAAS;AACjB,IAAA,QACE,OAAO,QAAQ,KAAK,QAAQ;SAC3B,QAAQ,KAAK,gBAAgB;AAC5B,YAAA,oBAAoB,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;AAE5D;AAEA;AACA,SAAS,oBAAoB,CAC3B,QAAgB,EAChB,qBAA2C,EAAA;IAE3C,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC;AAClD,IAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,QAAA,OAAO,MAAM;IACf;AACA,IAAA,IAAI,IAAY;AAChB,IAAA,IAAI;AACF,QAAA,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAGC,sBAAa,CAAC,QAAQ,CAAC,GAAG,QAAQ;IACtE;AAAE,IAAA,MAAM;AACN,QAAA,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC1C,QAAA,OAAO,KAAK;IACd;IACA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AAC1B,QAAA,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC1C,QAAA,OAAO,KAAK;IACd;AACA,IAAA,IAAI,YAAoB;AACxB,IAAA,IAAI;QACF,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;QAC3C,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,EAAE;AACvC,YAAA,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC1C,YAAA,OAAO,KAAK;QACd;IACF;AAAE,IAAA,MAAM;AACN,QAAA,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC1C,QAAA,OAAO,KAAK;IACd;AACA,IAAA,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG;AACd,SAAA,QAAQ,CAAC,WAAW,EAAE,YAAY;AAClC,SAAA,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;IAC5B,IAAI,QAAQ,KAAK,kBAAkB,IAAI,QAAQ,KAAK,mBAAmB,EAAE;AACvE,QAAA,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC1C,QAAA,OAAO,KAAK;IACd;IACA,IAAI,OAAO,GAAG,KAAK;AACnB,IAAA,IAAI;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAC1C;AACvB,QAAA,OAAO,GAAG,QAAQ,CAAC,IAAI,KAAK,gBAAgB;IAC9C;AAAE,IAAA,MAAM;;IAER;AACA,IAAA,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC;AAC5C,IAAA,OAAO,OAAO;AAChB;;;;;"}