@mouryaamit/nx-polystack 1.0.3 → 1.1.1

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.
@@ -179,9 +179,15 @@ async function migrateBatch(tree, schema) {
179
179
  if (schema.rewriteImports !== undefined)
180
180
  cli.rewriteImports = schema.rewriteImports;
181
181
  const done = [];
182
- for (const entry of entries) {
182
+ for (const [i, entry] of entries.entries()) {
183
+ // Imports may resolve into what earlier entries copied; the last entry also fixes earlier
184
+ // entries' imports into what later entries copied (NX-62).
185
+ const batchHooks = {
186
+ otherMoves: done.flatMap((d) => d.moves),
187
+ earlier: i === entries.length - 1 ? done : undefined,
188
+ };
183
189
  try {
184
- const outcome = await migrateOne(tree, (0, batch_1.mergeEntryOptions)(entry, defaults, cli));
190
+ const outcome = await migrateOne(tree, (0, batch_1.mergeEntryOptions)(entry, defaults, cli), batchHooks);
185
191
  if (outcome)
186
192
  done.push(outcome);
187
193
  }
@@ -213,8 +219,63 @@ async function migrateBatch(tree, schema) {
213
219
  }
214
220
  };
215
221
  }
222
+ /**
223
+ * The last `--config` entry: imports of earlier entries that pointed outside the projects they
224
+ * brought in are resolved again with every entry's moves, in the last entry's tree (so its
225
+ * rollback undoes them). Only those imports are touched; earlier reports are written again.
226
+ */
227
+ function resolveEarlierImports(tree, earlier, ownMoves) {
228
+ const all = [...earlier.flatMap((e) => e.moves), ...ownMoves];
229
+ const out = [];
230
+ for (const e of earlier) {
231
+ const imports = e.data.imports;
232
+ if (!imports)
233
+ continue;
234
+ const open = imports.unresolved.filter((u) => rewrite_1.LATER_RESOLVABLE.has(u.why));
235
+ if (open.length === 0)
236
+ continue;
237
+ const r = (0, rewrite_1.rewriteImports)(tree, {
238
+ sourceDir: e.sourceDir,
239
+ moves: e.moves,
240
+ otherMoves: all.filter((m) => !e.moves.includes(m)),
241
+ only: new Set(open.map((u) => `${u.file}\0${u.spec}`)),
242
+ });
243
+ // The second look replaces the open entries: ones it does not list again now resolve
244
+ // (rewritten, or already right); ones it lists again carry its reason.
245
+ const looked = new Set(open.map((u) => `${u.file}\0${u.spec}`));
246
+ const before = JSON.stringify(imports.unresolved);
247
+ imports.unresolved = [
248
+ ...imports.unresolved.filter((u) => !looked.has(`${u.file}\0${u.spec}`)),
249
+ ...r.unresolved,
250
+ ];
251
+ if (r.rewritten.length === 0 && JSON.stringify(imports.unresolved) === before)
252
+ continue;
253
+ imports.rewritten.push(...r.rewritten);
254
+ imports.deepImports.push(...r.deepImports);
255
+ imports.missingPackages = [
256
+ ...new Set([...imports.missingPackages, ...r.missingPackages]),
257
+ ].sort();
258
+ e.rerender(tree);
259
+ out.push(...r.rewritten);
260
+ }
261
+ return out;
262
+ }
263
+ /** Runs the batch follow-up for the last entry and records it in its report data. */
264
+ function applyBatchHooks(tree, data, hooks) {
265
+ if (!hooks?.earlier || hooks.earlier.length === 0)
266
+ return;
267
+ const resolved = resolveEarlierImports(tree, hooks.earlier, data.moves ?? []);
268
+ if (resolved.length === 0)
269
+ return;
270
+ if (data.imports)
271
+ data.imports.resolvedEarlier = resolved;
272
+ else {
273
+ data.notes.push(`Rewrote ${resolved.length} import(s) in earlier \`--config\` entries that point into the ` +
274
+ `projects this entry brought in: ${[...new Set(resolved.map((r) => r.file))].join(', ')}.`);
275
+ }
276
+ }
216
277
  /** One migration (the --source path). Undefined for --detect. */
217
- async function migrateOne(tree, schema) {
278
+ async function migrateOne(tree, schema, batch) {
218
279
  const sourceDir = resolveSource(tree, schema.source);
219
280
  const maxFiles = schema.maxFiles ?? copy_1.DEFAULT_MAX_FILES;
220
281
  if (!Number.isInteger(maxFiles) || maxFiles < 1) {
@@ -240,7 +301,7 @@ async function migrateOne(tree, schema) {
240
301
  if (dir !== undefined && !schema.dirInherited) {
241
302
  throw new Error(`migrate: --dir is for single-app sources; the ${adapter.id} adapter keeps the source layout.`);
242
303
  }
243
- return migrateWorkspace(tree, schema, adapter, detection, forced, sourceDir, maxFiles, projects);
304
+ return migrateWorkspace(tree, schema, adapter, detection, forced, sourceDir, maxFiles, projects, batch);
244
305
  }
245
306
  if ((projects && projects.length > 0) || schema.noDeps || schema.prefix) {
246
307
  throw new Error(`migrate: --projects, --no-deps and --prefix are for Nx workspace sources; the ` +
@@ -277,14 +338,19 @@ async function migrateOne(tree, schema) {
277
338
  adapter.preflight?.(rec.tree, ctx);
278
339
  const data = adapter.migrate(rec.tree, ctx);
279
340
  if (ctx.rewriteImports) {
280
- data.imports = (0, rewrite_1.rewriteImports)(rec.tree, { sourceDir, moves: data.moves ?? [] });
341
+ data.imports = (0, rewrite_1.rewriteImports)(rec.tree, {
342
+ sourceDir,
343
+ moves: data.moves ?? [],
344
+ otherMoves: batch?.otherMoves,
345
+ });
281
346
  }
347
+ applyBatchHooks(rec.tree, data, batch);
282
348
  if (dir && knipMissesNestedApps(tree)) {
283
349
  data.notes.push(`knip.json lists \`apps/*/src/main.ts\` as an entry, which does not reach ${projectRoot}; ` +
284
350
  'change it to `apps/**/src/main.ts` so `npm run stale-code` does not report the app as unused.');
285
351
  }
286
352
  const reportPath = `docs/migrations/${name}.md`;
287
- rec.tree.write(reportPath, (0, report_1.renderReport)({
353
+ const reportArgs = {
288
354
  name,
289
355
  adapterId: adapter.id,
290
356
  adapterLabel: adapter.label,
@@ -294,15 +360,24 @@ async function migrateOne(tree, schema) {
294
360
  minConfidence: schema.minConfidence,
295
361
  source: schema.sourceLabel ?? schema.source,
296
362
  data,
297
- }));
363
+ };
364
+ const rerender = (t) => t.write(reportPath, (0, report_1.renderReport)(reportArgs));
365
+ rerender(rec.tree);
298
366
  // Copied source files are not run through Prettier: they stay as the source had them.
299
367
  (0, llm_block_1.refreshLlmBlocks)(rec.tree);
300
368
  recordManifest(tree, rec.originals, name, adapter.id, schema.sourceLabel ?? schema.source, data);
301
369
  devkit_1.logger.info(`Migrated ${sourceDir} into ${projectRoot} with the ${adapter.id} adapter. ` +
302
370
  `Report: ${reportPath}. Undo with: pstack migrate --rollback=${name}`);
303
- return { name, installTask: data.installTask };
371
+ return {
372
+ name,
373
+ installTask: data.installTask,
374
+ moves: data.moves ?? [],
375
+ sourceDir,
376
+ data,
377
+ rerender,
378
+ };
304
379
  }
305
- async function migrateWorkspace(tree, schema, adapter, detection, forced, sourceDir, maxFiles, projects) {
380
+ async function migrateWorkspace(tree, schema, adapter, detection, forced, sourceDir, maxFiles, projects, batch) {
306
381
  const suggested = adapter.defaultName(sourceDir);
307
382
  const name = schema.name ?? (suggested ? (0, names_1.kebabName)(suggested) : '');
308
383
  if (!name || !names_3.NAME_RE.test(name)) {
@@ -326,9 +401,14 @@ async function migrateWorkspace(tree, schema, adapter, detection, forced, source
326
401
  adapter.preflight(rec.tree, ctx);
327
402
  const data = adapter.migrate(rec.tree, ctx);
328
403
  if (ctx.rewriteImports) {
329
- data.imports = (0, rewrite_1.rewriteImports)(rec.tree, { sourceDir, moves: data.moves ?? [] });
404
+ data.imports = (0, rewrite_1.rewriteImports)(rec.tree, {
405
+ sourceDir,
406
+ moves: data.moves ?? [],
407
+ otherMoves: batch?.otherMoves,
408
+ });
330
409
  }
331
- rec.tree.write(reportPath, (0, report_1.renderReport)({
410
+ applyBatchHooks(rec.tree, data, batch);
411
+ const reportArgs = {
332
412
  name,
333
413
  adapterId: adapter.id,
334
414
  adapterLabel: adapter.label,
@@ -337,11 +417,20 @@ async function migrateWorkspace(tree, schema, adapter, detection, forced, source
337
417
  minConfidence: schema.minConfidence,
338
418
  source: schema.sourceLabel ?? schema.source,
339
419
  data,
340
- }));
420
+ };
421
+ const rerender = (t) => t.write(reportPath, (0, report_1.renderReport)(reportArgs));
422
+ rerender(rec.tree);
341
423
  (0, llm_block_1.refreshLlmBlocks)(rec.tree);
342
424
  recordManifest(tree, rec.originals, name, adapter.id, schema.sourceLabel ?? schema.source, data);
343
425
  devkit_1.logger.info(`Imported ${data.projects.length} project(s) from ${sourceDir} with the ${adapter.id} ` +
344
426
  `adapter. Report: ${reportPath}. Undo with: pstack migrate --rollback=${name}`);
345
- return { name, installTask: data.installTask };
427
+ return {
428
+ name,
429
+ installTask: data.installTask,
430
+ moves: data.moves ?? [],
431
+ sourceDir,
432
+ data,
433
+ rerender,
434
+ };
346
435
  }
347
436
  //# sourceMappingURL=generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/generators/migrate/generator.ts"],"names":[],"mappings":";;;;AAAA,+CAAyB;AACzB,mDAA6B;AAE7B,uCAA6D;AAE7D,+CAAwE;AACxE,yDAAoF;AAEpF,yCAOoB;AACpB,kDAAwE;AACxE,kDAAsD;AACtD,4CAO0B;AAC1B,iCAA2C;AAC3C,+CAAmD;AACnD,mCAAiF;AACjF,mCAA0E;AAC1E,qCAAwC;AACxC,kDAAiF;AACjF,8DAAqE;AACrE,kDAA+E;AAG/E,iCAAkC;AAAzB,gGAAA,OAAO,OAAA;AAChB,mCAAkC;AAElC,iCAAoC;AAA3B,kGAAA,SAAS,OAAA;AAElB,8GAA8G;AAC9G,SAAgB,aAAa,CAAC,IAAU,EAAE,MAA0B;IAClE,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,KAAK,CACb,yEAAyE;YACvE,wCAAwC,CAC3C,CAAC;KACH;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,IAAc,CAAC;IACnB,IAAI;QACF,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;KACzB;IAAC,MAAM;QACN,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,iCAAiC,GAAG,IAAI,CAAC,CAAC;KACvF;IACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,uBAAuB,CAAC,CAAC;KACtE;IACD,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE;QACzB,IAAI;YACF,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;SAC3B;QAAC,MAAM;YACN,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SACxB;IACH,CAAC,CAAC;IACF,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;QAChD,MAAM,IAAI,KAAK,CACb,sBAAsB,MAAM,wEAAwE,CACrG,CAAC;KACH;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AA9BD,sCA8BC;AAED,qGAAqG;AACrG,SAAgB,gBAAgB,CAAC,KAAa,EAAE,KAAa;IAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxC,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACxE,CAAC;AAHD,4CAGC;AAED,qGAAqG;AACrG;;;GAGG;AACH,SAAS,gBAAgB,CAAC,IAAU,EAAE,SAAkB;IACtD,IAAI,SAAS,KAAK,SAAS,IAAI,sBAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1E,MAAM,MAAM,GAAG,IAAA,sBAAW,EAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC9F,OAAO,IAAA,+BAAoB,EAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAU;IACtC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;AAClF,CAAC;AAED,wFAAwF;AACxF,SAAS,sBAAsB,CAAC,IAAU,EAAE,IAAY;IACtD,KAAK,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,KAAK,EAAE,IAAA,uBAAY,EAAC,IAAI,CAAC,CAAC,EAAE;QAClE,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAClB,MAAM,IAAI,KAAK,CACb,aAAa,CAAC,sDAAsD,IAAI,MAAM;gBAC5E,sBAAsB,CACzB,CAAC;SACH;KACF;AACH,CAAC;AAED,wFAAwF;AACxF,SAAS,cAAc,CACrB,IAAU,EACV,SAAoB,EACpB,IAAY,EACZ,SAAiB,EACjB,MAAc,EACd,IAAyB;IAEzB,MAAM,MAAM,GAAG,IAAA,4BAAkB,EAAC,IAAI,CAAC,IAAI,CAAC,IAAA,yBAAe,EAAC,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IACzF,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IACnF,IAAA,wBAAa,EACX,IAAI,EACJ,IAAA,wBAAa,EAAC,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CACxF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAU,EAAE,MAA8B;IAChE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAkB,CAAC;IACvC,IAAI,MAAM,CAAC,MAAM,EAAE;QACjB,MAAM,IAAI,KAAK,CACb,kGAAkG,CACnG,CAAC;KACH;IACD,IACE,MAAM,CAAC,OAAO;QACd,MAAM,CAAC,IAAI;QACX,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,aAAa,KAAK,SAAS;QAClC,MAAM,CAAC,GAAG,KAAK,SAAS,EACxB;QACA,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;KAC5E;IACD,IAAI,CAAC,eAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACvB,MAAM,IAAI,KAAK,CACb,wBAAwB,IAAI,iDAAiD;YAC3E,4BAA4B,CAC/B,CAAC;KACH;IACD,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAA,4BAAgB,EAAC,IAAI,CAAC,CAAC;IACvB,eAAM,CAAC,IAAI,CAAC,IAAA,gCAAqB,EAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,OAAO,SAAS,CAAC;AACnB,CAAC;AAEc,KAAK,UAAU,gBAAgB,CAC5C,IAAU,EACV,MAA8B;IAE9B,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE;QACnC,0FAA0F;QAC1F,MAAM,GAAG,GACP,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,CAChF,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;QACzC,MAAM,EAAE,GAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAe,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,IAAI,KAAK,CACb,kFAAkF;gBAChF,QAAQ,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAChD,CAAC;SACH;QACD,IAAA,0BAAe,EAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACzC,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjE,IAAI,MAAM,CAAC,KAAK,EAAE;QAChB,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;KACH;IACD,OAAO,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC;AACvD,CAAC;AA5BD,mCA4BC;AAED,KAAK,UAAU,YAAY,CACzB,IAAU,EACV,MAA8B;IAE9B,IACE,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,QAAQ,KAAK,SAAS;QAC7B,MAAM,CAAC,KAAK;QACZ,MAAM,CAAC,IAAI;QACX,MAAM,CAAC,OAAO;QACd,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,MAAM,EACb;QACA,MAAM,IAAI,KAAK,CACb,sFAAsF;YACpF,qCAAqC,CACxC,CAAC;KACH;IACD,IAAA,gBAAQ,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,MAAgB,CAAC,CAAC;IAClE,6FAA6F;IAC7F,oFAAoF;IACpF,IAAI,KAAuC,CAAC;IAC5C,IAAI;QACF,KAAK,GAAG,IAAA,qBAAa,EAAC,IAAI,EAAE,sBAAW,CAAC,CAAC;KAC1C;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YAAE,MAAM,GAAG,CAAC;QAC5F,KAAK,GAAG,IAAA,qBAAa,EACnB,IAAI,EACJ,IAAA,sBAAW,EAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACrD,CAAC;KACH;IACD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACpC,MAAM,GAAG,GAAkB,EAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;QAAE,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IAC9E,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAClE,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS;QAAE,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IACjF,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS;QAAE,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IACnD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS;QAAE,GAAG,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IAEpF,MAAM,IAAI,GAAqB,EAAE,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC3B,IAAI;YACF,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,IAAA,yBAAiB,EAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YAChF,IAAI,OAAO;gBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACjC;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,OAAO,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;iBAC/D,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;gBAC1B,8EAA8E;iBAC7E,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,MAAM,OAAO,EAAE,CAAC,CAAC;SACxF;KACF;IACD,eAAM,CAAC,IAAI,CACT;QACE,YAAY,IAAI,CAAC,MAAM,iBAAiB,MAAM,CAAC,MAAM,GAAG;QACxD,mBAAmB;QACnB,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,+BAA+B,CAAC,CAAC,IAAI,EAAE,CAAC;KAC3E,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO,KAAK,IAAI,EAAE;QAChB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;YACrB,IAAI;gBACF,MAAO,CAAC,CAAC,WAAiC,EAAE,CAAC;aAC9C;YAAC,OAAO,GAAG,EAAE;gBACZ,MAAM,IAAI,KAAK,CACb,kCAAkC,CAAC,CAAC,IAAI,+CAA+C;oBACrF,0BAA0B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC/E,CAAC;aACH;SACF;IACH,CAAC,CAAC;AACJ,CAAC;AAOD,iEAAiE;AACjE,KAAK,UAAU,UAAU,CACvB,IAAU,EACV,MAA8B;IAE9B,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,wBAAiB,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE;QAC/C,MAAM,IAAI,KAAK,CACb,6DAA6D,MAAM,CAAC,QAAQ,IAAI,CACjF,CAAC;KACH;IAED,MAAM,aAAa,GAAG,IAAA,6BAAkB,EAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,IAAA,gBAAQ,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAEjC,IAAI,MAAM,CAAC,MAAM,EAAE;QACjB,eAAM,CAAC,IAAI,CACT,iBAAiB,SAAS,QAAQ,IAAA,+BAAoB,EACpD,IAAA,oBAAS,EAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAC7C,EAAE,CACJ,CAAC;QACF,OAAO,SAAS,CAAC;KAClB;IAED,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE;QACxD,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;KACH;IACD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAA,wBAAa,EAClD,SAAS,EACT,MAAM,CAAC,OAAO,EACd,aAAa,EACb,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CACvC,CAAC;IACF,MAAM,QAAQ,GACZ,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;QACjC,CAAC,CAAC,MAAM,CAAC,QAAQ;aACZ,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC;QACpB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IACtB,IAAI,IAAA,0BAAkB,EAAC,OAAO,CAAC,EAAE;QAC/B,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YAC7C,MAAM,IAAI,KAAK,CACb,iDAAiD,OAAO,CAAC,EAAE,mCAAmC,CAC/F,CAAC;SACH;QACD,OAAO,gBAAgB,CACrB,IAAI,EACJ,MAAM,EACN,OAAO,EACP,SAAS,EACT,MAAM,EACN,SAAS,EACT,QAAQ,EACR,QAAQ,CACT,CAAC;KACH;IACD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;QACvE,MAAM,IAAI,KAAK,CACb,gFAAgF;YAC9E,GAAG,OAAO,CAAC,EAAE,4BAA4B,CAC5C,CAAC;KACH;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpE,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;KAC9F;IACD,IAAI,CAAC,eAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACvB,MAAM,IAAI,KAAK,CACb,oBAAoB,IAAI,sEAAsE;YAC5F,0BAA0B,CAC7B,CAAC;KACH;IACD,MAAM,WAAW,GAAG,IAAA,eAAO,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvC,IAAI,GAAG;QAAE,IAAA,gCAAwB,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,aAAa,WAAW,wCAAwC,CAAC,CAAC;KACnF;IACD,IAAI,IAAA,iCAAqB,EAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QAC9C,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,wCAAwC,CAAC,CAAC;KAC5F;IACD,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAEnC,MAAM,GAAG,GAAqB;QAC5B,SAAS;QACT,IAAI;QACJ,WAAW;QACX,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY;QACnC,QAAQ;QACR,cAAc,EAAE,MAAM,CAAC,cAAc,KAAK,KAAK;KAChD,CAAC;IACF,MAAM,GAAG,GAAG,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC;IAChC,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,IAAI,GAAG,CAAC,cAAc,EAAE;QACtB,IAAI,CAAC,OAAO,GAAG,IAAA,wBAAc,EAAC,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;KACjF;IACD,IAAI,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;QACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,4EAA4E,WAAW,IAAI;YACzF,+FAA+F,CAClG,CAAC;KACH;IAED,MAAM,UAAU,GAAG,mBAAmB,IAAI,KAAK,CAAC;IAChD,GAAG,CAAC,IAAI,CAAC,KAAK,CACZ,UAAU,EACV,IAAA,qBAAY,EAAC;QACX,IAAI;QACJ,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,YAAY,EAAE,OAAO,CAAC,KAAK;QAC3B,SAAS;QACT,MAAM;QACN,WAAW;QACX,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,MAAM,EAAE,MAAM,CAAC,WAAW,IAAK,MAAM,CAAC,MAAiB;QACvD,IAAI;KACL,CAAC,CACH,CAAC;IAEF,sFAAsF;IACtF,IAAA,4BAAgB,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,cAAc,CACZ,IAAI,EACJ,GAAG,CAAC,SAAS,EACb,IAAI,EACJ,OAAO,CAAC,EAAE,EACV,MAAM,CAAC,WAAW,IAAK,MAAM,CAAC,MAAiB,EAC/C,IAAI,CACL,CAAC;IACF,eAAM,CAAC,IAAI,CACT,YAAY,SAAS,SAAS,WAAW,aAAa,OAAO,CAAC,EAAE,YAAY;QAC1E,WAAW,UAAU,0CAA0C,IAAI,EAAE,CACxE,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;AACjD,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,IAAU,EACV,MAA8B,EAC9B,OAAkC,EAClC,SAAoB,EACpB,MAAe,EACf,SAAiB,EACjB,QAAgB,EAChB,QAA8B;IAE9B,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpE,IAAI,CAAC,IAAI,IAAI,CAAC,eAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAChC,MAAM,IAAI,KAAK,CACb,6BAA6B,IAAI,iDAAiD,CACnF,CAAC;KACH;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,eAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QAC/D,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,MAAM,uBAAuB,CAAC,CAAC;KAC7E;IACD,MAAM,UAAU,GAAG,mBAAmB,IAAI,KAAK,CAAC;IAChD,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,MAAM,GAAG,GAA8B;QACrC,SAAS;QACT,QAAQ;QACR,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY;QACnC,QAAQ;QACR,cAAc,EAAE,MAAM,CAAC,cAAc,KAAK,KAAK;KAChD,CAAC;IACF,MAAM,GAAG,GAAG,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC;IAChC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,IAAI,GAAG,CAAC,cAAc,EAAE;QACtB,IAAI,CAAC,OAAO,GAAG,IAAA,wBAAc,EAAC,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;KACjF;IACD,GAAG,CAAC,IAAI,CAAC,KAAK,CACZ,UAAU,EACV,IAAA,qBAAY,EAAC;QACX,IAAI;QACJ,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,YAAY,EAAE,OAAO,CAAC,KAAK;QAC3B,SAAS;QACT,MAAM;QACN,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,MAAM,EAAE,MAAM,CAAC,WAAW,IAAK,MAAM,CAAC,MAAiB;QACvD,IAAI;KACL,CAAC,CACH,CAAC;IACF,IAAA,4BAAgB,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,cAAc,CACZ,IAAI,EACJ,GAAG,CAAC,SAAS,EACb,IAAI,EACJ,OAAO,CAAC,EAAE,EACV,MAAM,CAAC,WAAW,IAAK,MAAM,CAAC,MAAiB,EAC/C,IAAI,CACL,CAAC;IACF,eAAM,CAAC,IAAI,CACT,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,oBAAoB,SAAS,aAAa,OAAO,CAAC,EAAE,GAAG;QACrF,oBAAoB,UAAU,0CAA0C,IAAI,EAAE,CACjF,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/generators/migrate/generator.ts"],"names":[],"mappings":";;;;AAAA,+CAAyB;AACzB,mDAA6B;AAE7B,uCAA6D;AAE7D,+CAAwE;AACxE,yDAAoF;AAEpF,yCAOoB;AACpB,kDAAwE;AACxE,kDAAsD;AACtD,4CAO0B;AAC1B,iCAA2C;AAC3C,+CAAiF;AACjF,mCAAiF;AACjF,mCAA0E;AAC1E,qCAAwC;AACxC,kDAAiF;AACjF,8DAAqE;AACrE,kDAA+E;AAG/E,iCAAkC;AAAzB,gGAAA,OAAO,OAAA;AAChB,mCAAkC;AAElC,iCAAoC;AAA3B,kGAAA,SAAS,OAAA;AAElB,8GAA8G;AAC9G,SAAgB,aAAa,CAAC,IAAU,EAAE,MAA0B;IAClE,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,KAAK,CACb,yEAAyE;YACvE,wCAAwC,CAC3C,CAAC;KACH;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,IAAc,CAAC;IACnB,IAAI;QACF,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;KACzB;IAAC,MAAM;QACN,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,iCAAiC,GAAG,IAAI,CAAC,CAAC;KACvF;IACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,uBAAuB,CAAC,CAAC;KACtE;IACD,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE;QACzB,IAAI;YACF,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;SAC3B;QAAC,MAAM;YACN,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SACxB;IACH,CAAC,CAAC;IACF,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;QAChD,MAAM,IAAI,KAAK,CACb,sBAAsB,MAAM,wEAAwE,CACrG,CAAC;KACH;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AA9BD,sCA8BC;AAED,qGAAqG;AACrG,SAAgB,gBAAgB,CAAC,KAAa,EAAE,KAAa;IAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxC,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACxE,CAAC;AAHD,4CAGC;AAED,qGAAqG;AACrG;;;GAGG;AACH,SAAS,gBAAgB,CAAC,IAAU,EAAE,SAAkB;IACtD,IAAI,SAAS,KAAK,SAAS,IAAI,sBAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1E,MAAM,MAAM,GAAG,IAAA,sBAAW,EAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC9F,OAAO,IAAA,+BAAoB,EAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAU;IACtC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;AAClF,CAAC;AAED,wFAAwF;AACxF,SAAS,sBAAsB,CAAC,IAAU,EAAE,IAAY;IACtD,KAAK,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,KAAK,EAAE,IAAA,uBAAY,EAAC,IAAI,CAAC,CAAC,EAAE;QAClE,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAClB,MAAM,IAAI,KAAK,CACb,aAAa,CAAC,sDAAsD,IAAI,MAAM;gBAC5E,sBAAsB,CACzB,CAAC;SACH;KACF;AACH,CAAC;AAED,wFAAwF;AACxF,SAAS,cAAc,CACrB,IAAU,EACV,SAAoB,EACpB,IAAY,EACZ,SAAiB,EACjB,MAAc,EACd,IAAyB;IAEzB,MAAM,MAAM,GAAG,IAAA,4BAAkB,EAAC,IAAI,CAAC,IAAI,CAAC,IAAA,yBAAe,EAAC,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IACzF,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IACnF,IAAA,wBAAa,EACX,IAAI,EACJ,IAAA,wBAAa,EAAC,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CACxF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAU,EAAE,MAA8B;IAChE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAkB,CAAC;IACvC,IAAI,MAAM,CAAC,MAAM,EAAE;QACjB,MAAM,IAAI,KAAK,CACb,kGAAkG,CACnG,CAAC;KACH;IACD,IACE,MAAM,CAAC,OAAO;QACd,MAAM,CAAC,IAAI;QACX,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,aAAa,KAAK,SAAS;QAClC,MAAM,CAAC,GAAG,KAAK,SAAS,EACxB;QACA,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;KAC5E;IACD,IAAI,CAAC,eAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACvB,MAAM,IAAI,KAAK,CACb,wBAAwB,IAAI,iDAAiD;YAC3E,4BAA4B,CAC/B,CAAC;KACH;IACD,MAAM,MAAM,GAAG,IAAA,4BAAiB,EAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAA,4BAAgB,EAAC,IAAI,CAAC,CAAC;IACvB,eAAM,CAAC,IAAI,CAAC,IAAA,gCAAqB,EAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,OAAO,SAAS,CAAC;AACnB,CAAC;AAEc,KAAK,UAAU,gBAAgB,CAC5C,IAAU,EACV,MAA8B;IAE9B,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE;QACnC,0FAA0F;QAC1F,MAAM,GAAG,GACP,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,CAChF,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;QACzC,MAAM,EAAE,GAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAe,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,IAAI,KAAK,CACb,kFAAkF;gBAChF,QAAQ,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAChD,CAAC;SACH;QACD,IAAA,0BAAe,EAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACzC,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjE,IAAI,MAAM,CAAC,KAAK,EAAE;QAChB,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;KACH;IACD,OAAO,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC;AACvD,CAAC;AA5BD,mCA4BC;AAED,KAAK,UAAU,YAAY,CACzB,IAAU,EACV,MAA8B;IAE9B,IACE,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,QAAQ,KAAK,SAAS;QAC7B,MAAM,CAAC,KAAK;QACZ,MAAM,CAAC,IAAI;QACX,MAAM,CAAC,OAAO;QACd,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,MAAM,EACb;QACA,MAAM,IAAI,KAAK,CACb,sFAAsF;YACpF,qCAAqC,CACxC,CAAC;KACH;IACD,IAAA,gBAAQ,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,MAAgB,CAAC,CAAC;IAClE,6FAA6F;IAC7F,oFAAoF;IACpF,IAAI,KAAuC,CAAC;IAC5C,IAAI;QACF,KAAK,GAAG,IAAA,qBAAa,EAAC,IAAI,EAAE,sBAAW,CAAC,CAAC;KAC1C;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YAAE,MAAM,GAAG,CAAC;QAC5F,KAAK,GAAG,IAAA,qBAAa,EACnB,IAAI,EACJ,IAAA,sBAAW,EAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACrD,CAAC;KACH;IACD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACpC,MAAM,GAAG,GAAkB,EAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;QAAE,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IAC9E,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAClE,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS;QAAE,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IACjF,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS;QAAE,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IACnD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS;QAAE,GAAG,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IAEpF,MAAM,IAAI,GAAqB,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;QAC1C,0FAA0F;QAC1F,2DAA2D;QAC3D,MAAM,UAAU,GAAe;YAC7B,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YACxC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SACrD,CAAC;QACF,IAAI;YACF,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,IAAA,yBAAiB,EAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;YAC5F,IAAI,OAAO;gBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACjC;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,OAAO,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;iBAC/D,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;gBAC1B,8EAA8E;iBAC7E,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,MAAM,OAAO,EAAE,CAAC,CAAC;SACxF;KACF;IACD,eAAM,CAAC,IAAI,CACT;QACE,YAAY,IAAI,CAAC,MAAM,iBAAiB,MAAM,CAAC,MAAM,GAAG;QACxD,mBAAmB;QACnB,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,+BAA+B,CAAC,CAAC,IAAI,EAAE,CAAC;KAC3E,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO,KAAK,IAAI,EAAE;QAChB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;YACrB,IAAI;gBACF,MAAO,CAAC,CAAC,WAAiC,EAAE,CAAC;aAC9C;YAAC,OAAO,GAAG,EAAE;gBACZ,MAAM,IAAI,KAAK,CACb,kCAAkC,CAAC,CAAC,IAAI,+CAA+C;oBACrF,0BAA0B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC/E,CAAC;aACH;SACF;IACH,CAAC,CAAC;AACJ,CAAC;AAqBD;;;;GAIG;AACH,SAAS,qBAAqB,CAC5B,IAAU,EACV,OAAyB,EACzB,QAAsB;IAEtB,MAAM,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAyC,EAAE,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;QACvB,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,0BAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAChC,MAAM,CAAC,GAAG,IAAA,wBAAc,EAAC,IAAI,EAAE;YAC7B,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACnD,IAAI,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SACvD,CAAC,CAAC;QACH,qFAAqF;QACrF,uEAAuE;QACvE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClD,OAAO,CAAC,UAAU,GAAG;YACnB,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACxE,GAAG,CAAC,CAAC,UAAU;SAChB,CAAC;QACF,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,MAAM;YAAE,SAAS;QACxF,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;QAC3C,OAAO,CAAC,eAAe,GAAG;YACxB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC;SAC/D,CAAC,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;KAC1B;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAID,qFAAqF;AACrF,SAAS,eAAe,CAAC,IAAU,EAAE,IAAyB,EAAE,KAAkB;IAChF,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC1D,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC9E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAClC,IAAI,IAAI,CAAC,OAAO;QAAE,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,QAAQ,CAAC;SACrD;QACH,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,WAAW,QAAQ,CAAC,MAAM,iEAAiE;YACzF,mCAAmC,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC7F,CAAC;KACH;AACH,CAAC;AAED,iEAAiE;AACjE,KAAK,UAAU,UAAU,CACvB,IAAU,EACV,MAA8B,EAC9B,KAAkB;IAElB,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,wBAAiB,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE;QAC/C,MAAM,IAAI,KAAK,CACb,6DAA6D,MAAM,CAAC,QAAQ,IAAI,CACjF,CAAC;KACH;IAED,MAAM,aAAa,GAAG,IAAA,6BAAkB,EAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,IAAA,gBAAQ,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAEjC,IAAI,MAAM,CAAC,MAAM,EAAE;QACjB,eAAM,CAAC,IAAI,CACT,iBAAiB,SAAS,QAAQ,IAAA,+BAAoB,EACpD,IAAA,oBAAS,EAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAC7C,EAAE,CACJ,CAAC;QACF,OAAO,SAAS,CAAC;KAClB;IAED,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE;QACxD,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;KACH;IACD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAA,wBAAa,EAClD,SAAS,EACT,MAAM,CAAC,OAAO,EACd,aAAa,EACb,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CACvC,CAAC;IACF,MAAM,QAAQ,GACZ,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;QACjC,CAAC,CAAC,MAAM,CAAC,QAAQ;aACZ,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC;QACpB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IACtB,IAAI,IAAA,0BAAkB,EAAC,OAAO,CAAC,EAAE;QAC/B,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YAC7C,MAAM,IAAI,KAAK,CACb,iDAAiD,OAAO,CAAC,EAAE,mCAAmC,CAC/F,CAAC;SACH;QACD,OAAO,gBAAgB,CACrB,IAAI,EACJ,MAAM,EACN,OAAO,EACP,SAAS,EACT,MAAM,EACN,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,KAAK,CACN,CAAC;KACH;IACD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;QACvE,MAAM,IAAI,KAAK,CACb,gFAAgF;YAC9E,GAAG,OAAO,CAAC,EAAE,4BAA4B,CAC5C,CAAC;KACH;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpE,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;KAC9F;IACD,IAAI,CAAC,eAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACvB,MAAM,IAAI,KAAK,CACb,oBAAoB,IAAI,sEAAsE;YAC5F,0BAA0B,CAC7B,CAAC;KACH;IACD,MAAM,WAAW,GAAG,IAAA,eAAO,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvC,IAAI,GAAG;QAAE,IAAA,gCAAwB,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,aAAa,WAAW,wCAAwC,CAAC,CAAC;KACnF;IACD,IAAI,IAAA,iCAAqB,EAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QAC9C,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,wCAAwC,CAAC,CAAC;KAC5F;IACD,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAEnC,MAAM,GAAG,GAAqB;QAC5B,SAAS;QACT,IAAI;QACJ,WAAW;QACX,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY;QACnC,QAAQ;QACR,cAAc,EAAE,MAAM,CAAC,cAAc,KAAK,KAAK;KAChD,CAAC;IACF,MAAM,GAAG,GAAG,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC;IAChC,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,IAAI,GAAG,CAAC,cAAc,EAAE;QACtB,IAAI,CAAC,OAAO,GAAG,IAAA,wBAAc,EAAC,GAAG,CAAC,IAAI,EAAE;YACtC,SAAS;YACT,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;YACvB,UAAU,EAAE,KAAK,EAAE,UAAU;SAC9B,CAAC,CAAC;KACJ;IACD,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,IAAI,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;QACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,4EAA4E,WAAW,IAAI;YACzF,+FAA+F,CAClG,CAAC;KACH;IAED,MAAM,UAAU,GAAG,mBAAmB,IAAI,KAAK,CAAC;IAChD,MAAM,UAAU,GAAG;QACjB,IAAI;QACJ,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,YAAY,EAAE,OAAO,CAAC,KAAK;QAC3B,SAAS;QACT,MAAM;QACN,WAAW;QACX,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,MAAM,EAAE,MAAM,CAAC,WAAW,IAAK,MAAM,CAAC,MAAiB;QACvD,IAAI;KACL,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,IAAA,qBAAY,EAAC,UAAU,CAAC,CAAC,CAAC;IAC5E,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEnB,sFAAsF;IACtF,IAAA,4BAAgB,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,cAAc,CACZ,IAAI,EACJ,GAAG,CAAC,SAAS,EACb,IAAI,EACJ,OAAO,CAAC,EAAE,EACV,MAAM,CAAC,WAAW,IAAK,MAAM,CAAC,MAAiB,EAC/C,IAAI,CACL,CAAC;IACF,eAAM,CAAC,IAAI,CACT,YAAY,SAAS,SAAS,WAAW,aAAa,OAAO,CAAC,EAAE,YAAY;QAC1E,WAAW,UAAU,0CAA0C,IAAI,EAAE,CACxE,CAAC;IACF,OAAO;QACL,IAAI;QACJ,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACvB,SAAS;QACT,IAAI;QACJ,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,IAAU,EACV,MAA8B,EAC9B,OAAkC,EAClC,SAAoB,EACpB,MAAe,EACf,SAAiB,EACjB,QAAgB,EAChB,QAA8B,EAC9B,KAAkB;IAElB,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpE,IAAI,CAAC,IAAI,IAAI,CAAC,eAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAChC,MAAM,IAAI,KAAK,CACb,6BAA6B,IAAI,iDAAiD,CACnF,CAAC;KACH;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,eAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QAC/D,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,MAAM,uBAAuB,CAAC,CAAC;KAC7E;IACD,MAAM,UAAU,GAAG,mBAAmB,IAAI,KAAK,CAAC;IAChD,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,MAAM,GAAG,GAA8B;QACrC,SAAS;QACT,QAAQ;QACR,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY;QACnC,QAAQ;QACR,cAAc,EAAE,MAAM,CAAC,cAAc,KAAK,KAAK;KAChD,CAAC;IACF,MAAM,GAAG,GAAG,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC;IAChC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,IAAI,GAAG,CAAC,cAAc,EAAE;QACtB,IAAI,CAAC,OAAO,GAAG,IAAA,wBAAc,EAAC,GAAG,CAAC,IAAI,EAAE;YACtC,SAAS;YACT,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;YACvB,UAAU,EAAE,KAAK,EAAE,UAAU;SAC9B,CAAC,CAAC;KACJ;IACD,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG;QACjB,IAAI;QACJ,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,YAAY,EAAE,OAAO,CAAC,KAAK;QAC3B,SAAS;QACT,MAAM;QACN,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,MAAM,EAAE,MAAM,CAAC,WAAW,IAAK,MAAM,CAAC,MAAiB;QACvD,IAAI;KACL,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,IAAA,qBAAY,EAAC,UAAU,CAAC,CAAC,CAAC;IAC5E,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnB,IAAA,4BAAgB,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,cAAc,CACZ,IAAI,EACJ,GAAG,CAAC,SAAS,EACb,IAAI,EACJ,OAAO,CAAC,EAAE,EACV,MAAM,CAAC,WAAW,IAAK,MAAM,CAAC,MAAiB,EAC/C,IAAI,CACL,CAAC;IACF,eAAM,CAAC,IAAI,CACT,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,oBAAoB,SAAS,aAAa,OAAO,CAAC,EAAE,GAAG;QACrF,oBAAoB,UAAU,0CAA0C,IAAI,EAAE,CACjF,CAAC;IACF,OAAO;QACL,IAAI;QACJ,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACvB,SAAS;QACT,IAAI;QACJ,QAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -14,7 +14,11 @@ export interface ImportMove {
14
14
  /** Copied files, relative to the folder. */
15
15
  files: string[];
16
16
  }
17
- export type RewriteKind = 'cross-project' | 'base-url' | 'nrwl' | 'node-modules';
17
+ export type RewriteKind = 'cross-project' | 'base-url' | 'nrwl' | 'node-modules'
18
+ /** Angular templateUrl / styleUrl / styleUrls (NX-60). */
19
+ | 'resource'
20
+ /** A bare Sass path that resolved through the source load paths (NX-61). */
21
+ | 'sass-load-path';
18
22
  export interface ImportRewrite {
19
23
  /** File in the workspace tree. */
20
24
  file: string;
@@ -37,10 +41,22 @@ export interface ImportRewriteResult {
37
41
  }[];
38
42
  /** `@nx/*` packages the rewritten imports use that the workspace package.json does not declare. */
39
43
  missingPackages: string[];
44
+ /**
45
+ * `--config` batches (NX-62): imports of earlier entries that pointed into a project this entry
46
+ * brought in, rewritten after this entry's copy (they are part of this entry's rollback).
47
+ */
48
+ resolvedEarlier?: ImportRewrite[];
40
49
  }
50
+ /** Reasons an import is listed that a later `--config` entry's copy can make resolvable (NX-62). */
51
+ export declare const LATER_RESOLVABLE: Set<string>;
41
52
  export interface RewriteOptions {
42
53
  /** Absolute source repo root. */
43
54
  sourceDir: string;
55
+ /** The folders this run copied: only their files are rewritten. */
44
56
  moves: ImportMove[];
57
+ /** Folders other `--config` entries copied: imports may resolve into them (NX-62). */
58
+ otherMoves?: ImportMove[];
59
+ /** Only these imports (`file\0spec`) are looked at; everything else is left alone (NX-62). */
60
+ only?: Set<string>;
45
61
  }
46
62
  export declare function rewriteImports(tree: Tree, opts: RewriteOptions): ImportRewriteResult;
@@ -1,10 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rewriteImports = void 0;
3
+ exports.rewriteImports = exports.LATER_RESOLVABLE = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const fs = tslib_1.__importStar(require("fs"));
6
6
  const path = tslib_1.__importStar(require("path"));
7
7
  const source_1 = require("../source");
8
+ /** Reasons an import is listed that a later `--config` entry's copy can make resolvable (NX-62). */
9
+ exports.LATER_RESOLVABLE = new Set([
10
+ 'points outside the imported projects',
11
+ 'resolves through the source `baseUrl` to a file that was not imported',
12
+ 'resolves through the source Sass load paths to a file that was not imported',
13
+ ]);
8
14
  const CODE = /\.(ts|tsx|mts|cts|js|jsx|mjs|cjs)$/;
9
15
  const SCSS = /\.scss$/;
10
16
  /**
@@ -15,6 +21,11 @@ const CODE_IMPORT = /(\bfrom\s*|\bimport\s*\(\s*|\bimport\s+|\brequire(?:\.resol
15
21
  /** Sass module rules; each quoted path in them is a candidate. */
16
22
  const SCSS_RULE = /@(?:use|import|forward)\s+[^;{}]+/g;
17
23
  const QUOTED = /(['"])([^'"\n]+)\1/g;
24
+ /** Angular component resources: templateUrl / styleUrl values and styleUrls entries (NX-60). */
25
+ const RESOURCE_URL = /(\b(?:templateUrl|styleUrl)\s*:\s*)(['"`])([^'"`\n]+)\2/g;
26
+ const RESOURCE_LIST = /(\bstyleUrls\s*:\s*\[)([^\]]*)\]/g;
27
+ /** Sass paths that are never files under a load path: built-ins, URLs, plain CSS imports. */
28
+ const SASS_NOT_BARE = /^(?:~|\/|sass:|[a-z][a-z0-9+.-]*:|\/\/)|\.css$/i;
18
29
  /** @nrwl/* packages without an @nx/* successor. */
19
30
  const NRWL_KEEP = new Set(['@nrwl/nx-cloud', '@nrwl/tao', '@nrwl/cli']);
20
31
  /** @nrwl/* packages whose @nx/* successor has another name. */
@@ -67,7 +78,7 @@ function sassCandidates(p) {
67
78
  `${p}/index.scss`,
68
79
  ];
69
80
  }
70
- const candidates = (p, sass) => (sass ? sassCandidates(p) : codeCandidates(p));
81
+ const candidates = (p, mode) => mode === 'sass' ? sassCandidates(p) : mode === 'resource' ? [p] : codeCandidates(p);
71
82
  function rewriteImports(tree, opts) {
72
83
  const result = {
73
84
  rewritten: [],
@@ -78,10 +89,13 @@ function rewriteImports(tree, opts) {
78
89
  const seen = new Set();
79
90
  const deepSeen = new Set();
80
91
  const sourceRoot = toPosix(path.resolve(opts.sourceDir));
81
- const moves = opts.moves
92
+ const norm = (list) => list
82
93
  .map((m) => ({ ...m, from: toPosix(path.resolve(m.from)) }))
83
94
  .sort((a, b) => b.from.length - a.from.length);
84
- const moveOf = (abs) => moves.find((m) => abs === m.from || abs.startsWith(`${m.from}/`));
95
+ const moves = norm(opts.moves);
96
+ const known = norm([...opts.moves, ...(opts.otherMoves ?? [])]);
97
+ const only = opts.only;
98
+ const moveOf = (abs) => known.find((m) => abs === m.from || abs.startsWith(`${m.from}/`));
85
99
  const mapPath = (abs) => {
86
100
  const m = moveOf(abs);
87
101
  if (!m)
@@ -93,7 +107,7 @@ function rewriteImports(tree, opts) {
93
107
  const aliases = workspaceAliases(tree, wsBaseUrl);
94
108
  const baseUrls = baseUrlReader(sourceRoot);
95
109
  /** The tree path resolves to a file (copied, or already in the workspace). */
96
- const inTree = (p, sass) => candidates(p, sass).some((c) => tree.exists(c) && tree.isFile(c));
110
+ const inTree = (p, mode) => candidates(p, mode).some((c) => tree.exists(c) && tree.isFile(c));
97
111
  const statCache = new Map();
98
112
  const isSourceFileAbs = (abs) => {
99
113
  let hit = statCache.get(abs);
@@ -105,6 +119,18 @@ function rewriteImports(tree, opts) {
105
119
  };
106
120
  const dependencyNames = sourceDependencyNames(sourceRoot);
107
121
  const nxPackages = new Set();
122
+ const sourceLoadPaths = sourceSassLoadPaths(sourceRoot, moves);
123
+ const workspaceLoadPaths = workspaceSassLoadPaths(tree);
124
+ // Sass load paths in the moved projects that do not exist in the workspace (NX-61).
125
+ for (const move of only ? [] : moves) {
126
+ const pj = `${move.to}/project.json`;
127
+ for (const p of projectLoadPaths(tree, pj)) {
128
+ if (p === 'node_modules' || p.startsWith('node_modules/'))
129
+ continue;
130
+ if (!tree.exists(p))
131
+ leave(pj, p, 'Sass load path that does not exist in the workspace');
132
+ }
133
+ }
108
134
  for (const move of moves) {
109
135
  for (const rel of move.files) {
110
136
  const code = CODE.test(rel) && !rel.endsWith('.d.ts');
@@ -126,7 +152,10 @@ function rewriteImports(tree, opts) {
126
152
  };
127
153
  const viaAlias = (target) => aliases.get(target) ?? aliases.get(target.replace(/\.(ts|tsx|js|mjs|cjs)$/, ''));
128
154
  /** New specifier for `spec`, or undefined to keep it. */
129
- const rewrite = (spec, sass) => {
155
+ const rewrite = (spec, mode) => {
156
+ if (only && !only.has(`${file}\0${spec}`))
157
+ return undefined;
158
+ const sass = mode !== 'code';
130
159
  if (!sass) {
131
160
  const nrwl = /^@nrwl\/([^/]+)(.*)$/.exec(spec);
132
161
  if (nrwl) {
@@ -156,17 +185,17 @@ function rewriteImports(tree, opts) {
156
185
  // Inside the same copied folder the path is unchanged. Only a file that exists in the
157
186
  // source but was not copied (a project that was not selected, a skipped folder) is a
158
187
  // problem; text that resolves nowhere (a comment, a generated file) is left alone.
159
- if (moveOf(abs) === move) {
160
- const copied = inTree(mapPath(abs), sass);
161
- if (!copied && candidates(abs, sass).some((c) => isSourceFileAbs(c))) {
188
+ if (moveOf(abs)?.to === move.to) {
189
+ const copied = inTree(mapPath(abs), mode);
190
+ if (!copied && candidates(abs, mode).some((c) => isSourceFileAbs(c))) {
162
191
  leave(file, spec, 'points to a file that was not copied');
163
192
  }
164
193
  return undefined;
165
194
  }
166
195
  const target = mapPath(abs);
167
- if (target === undefined || !inTree(target, sass)) {
196
+ if (target === undefined || !inTree(target, mode)) {
168
197
  // Still resolves in the workspace (an Nx root file such as jest.preset.js): keep it.
169
- if (inTree(asIs, sass))
198
+ if (inTree(asIs, mode))
170
199
  return undefined;
171
200
  leave(file, spec, target === undefined
172
201
  ? 'points outside the imported projects'
@@ -183,7 +212,7 @@ function rewriteImports(tree, opts) {
183
212
  deepSeen.add(`${file}\0${kept}`);
184
213
  result.deepImports.push({ file, spec: kept });
185
214
  }
186
- return record(file, 'cross-project', spec, kept);
215
+ return record(file, mode === 'resource' ? 'resource' : 'cross-project', spec, kept);
187
216
  }
188
217
  if (sass || spec.startsWith('~'))
189
218
  return undefined;
@@ -204,30 +233,94 @@ function rewriteImports(tree, opts) {
204
233
  if (!local)
205
234
  return undefined;
206
235
  const target = mapPath(abs);
207
- if (target === undefined || !inTree(target, false)) {
236
+ if (target === undefined || !inTree(target, 'code')) {
208
237
  leave(file, spec, 'resolves through the source `baseUrl` to a file that was not imported');
209
238
  return undefined;
210
239
  }
211
240
  if (wsBaseUrl !== undefined && path.posix.normalize(`${wsBaseUrl}/${spec}`) === target) {
212
241
  return undefined; // still resolves through the workspace baseUrl
213
242
  }
214
- const alias = moveOf(abs) === move ? undefined : viaAlias(target);
243
+ const alias = moveOf(abs)?.to === move.to ? undefined : viaAlias(target);
215
244
  return record(file, 'base-url', spec, alias ?? relativeTo(target));
216
245
  };
246
+ /**
247
+ * A bare Sass path, resolved like Sass: from the stylesheet's folder, then through the
248
+ * source load paths (NX-61). Kept when it still resolves to the same file in the workspace.
249
+ */
250
+ const rewriteBare = (spec) => {
251
+ if (only && !only.has(`${file}\0${spec}`))
252
+ return undefined;
253
+ const exists = (abs) => sassCandidates(abs).some((c) => isSourceFileAbs(c));
254
+ const own = path.posix.normalize(`${sourceDirOfFile}/${spec}`);
255
+ let abs;
256
+ let viaLoadPath = false;
257
+ if (exists(own))
258
+ abs = own;
259
+ else {
260
+ for (const dir of sourceLoadPaths(sourceFile)) {
261
+ const candidate = path.posix.normalize(`${dir}/${spec}`);
262
+ if (exists(candidate)) {
263
+ abs = candidate;
264
+ viaLoadPath = true;
265
+ break;
266
+ }
267
+ }
268
+ }
269
+ if (abs === undefined)
270
+ return undefined;
271
+ // The source's node_modules is the workspace's (a common `includePaths: ["node_modules"]`).
272
+ if (abs.startsWith(`${sourceRoot}/node_modules/`))
273
+ return undefined;
274
+ if (!viaLoadPath && moveOf(abs)?.to === move.to)
275
+ return undefined;
276
+ const target = mapPath(abs);
277
+ if (target === undefined || !inTree(target, 'sass')) {
278
+ leave(file, spec, viaLoadPath
279
+ ? 'resolves through the source Sass load paths to a file that was not imported'
280
+ : 'points to a file that was not copied');
281
+ return undefined;
282
+ }
283
+ const loadPaths = workspaceLoadPaths(treeDirOfFile);
284
+ // Sass takes the first folder where the path exists.
285
+ const first = [treeDirOfFile, ...loadPaths]
286
+ .map((dir) => path.posix.normalize(`${dir}/${spec}`))
287
+ .find((there) => inTree(there, 'sass'));
288
+ if (first === target)
289
+ return undefined;
290
+ return record(file, 'sass-load-path', spec, relativeTo(target));
291
+ };
217
292
  let next = text;
218
293
  if (code) {
219
294
  next = next.replace(CODE_IMPORT, (whole, lead, q, spec) => {
220
- const r = rewrite(spec, false);
295
+ const r = rewrite(spec, 'code');
221
296
  return r === undefined ? whole : `${lead}${q}${r}${q}`;
222
297
  });
223
- }
224
- else {
225
- next = next.replace(SCSS_RULE, (rule) => rule.replace(QUOTED, (whole, q, spec) => {
298
+ const resource = (whole, q, spec) => {
226
299
  if (!isRelative(spec))
227
300
  return whole;
228
- const r = rewrite(spec, true);
301
+ const r = rewrite(spec, 'resource');
229
302
  return r === undefined ? whole : `${q}${r}${q}`;
230
- }));
303
+ };
304
+ next = next.replace(RESOURCE_URL, (whole, lead, q, spec) => `${lead}${resource(`${q}${spec}${q}`, q, spec)}`);
305
+ next = next.replace(RESOURCE_LIST, (whole, lead, list) => `${lead}${list.replace(QUOTED, (w, q, spec) => resource(w, q, spec))}]`);
306
+ }
307
+ else {
308
+ next = next.replace(SCSS_RULE, (whole) => {
309
+ // Only the URL list: `with (...)` values, `as`, `show` and `hide` are not paths.
310
+ const end = whole.search(/\s(?:with|as|show|hide)\b/);
311
+ const rule = end < 0 ? whole : whole.slice(0, end);
312
+ const rest = end < 0 ? '' : whole.slice(end);
313
+ return `${rule.replace(QUOTED, (whole, q, spec) => {
314
+ if (isRelative(spec)) {
315
+ const r = rewrite(spec, 'sass');
316
+ return r === undefined ? whole : `${q}${r}${q}`;
317
+ }
318
+ if (SASS_NOT_BARE.test(spec) || /url\(\s*$/.test(rule.slice(0, rule.indexOf(whole))))
319
+ return whole;
320
+ const r = rewriteBare(spec);
321
+ return r === undefined ? whole : `${q}${r}${q}`;
322
+ })}${rest}`;
323
+ });
231
324
  }
232
325
  if (next !== text)
233
326
  tree.write(file, next);
@@ -379,4 +472,89 @@ function baseUrlReader(sourceRoot) {
379
472
  };
380
473
  return lookup;
381
474
  }
475
+ /** stylePreprocessorOptions.includePaths of every target (options and configurations). */
476
+ function includePathsOf(targets) {
477
+ const out = [];
478
+ if (!targets || typeof targets !== 'object')
479
+ return out;
480
+ for (const target of Object.values(targets)) {
481
+ if (!target || typeof target !== 'object')
482
+ continue;
483
+ const t = target;
484
+ const blocks = [
485
+ t['options'],
486
+ ...Object.values(t['configurations'] ?? {}),
487
+ ];
488
+ for (const block of blocks) {
489
+ const spo = block?.['stylePreprocessorOptions'];
490
+ const list = spo?.['includePaths'];
491
+ if (Array.isArray(list))
492
+ for (const p of list)
493
+ if (typeof p === 'string')
494
+ out.push(p);
495
+ }
496
+ }
497
+ return out;
498
+ }
499
+ /**
500
+ * Source Sass load paths per stylesheet (NX-61): the includePaths of the source project that owns
501
+ * the file — the angular.json project with the longest root containing it, or the project.json at
502
+ * a copied folder — resolved against the source root. Sass only uses the owning project's paths.
503
+ */
504
+ function sourceSassLoadPaths(sourceRoot, moves) {
505
+ const projects = [];
506
+ const abs = (p) => path.posix.normalize(`${sourceRoot}/${p}`).replace(/\/$/, '');
507
+ const angular = (0, source_1.readSourceJson)(sourceRoot, 'angular.json');
508
+ for (const project of Object.values(angular?.projects ?? {})) {
509
+ const p = project;
510
+ const root = typeof p?.['root'] === 'string' ? p['root'] : '';
511
+ projects.push({
512
+ root: root ? abs(root) : sourceRoot,
513
+ paths: includePathsOf(p?.['architect'] ?? p?.['targets']).map(abs),
514
+ });
515
+ }
516
+ for (const m of moves) {
517
+ const pj = (0, source_1.readSourceJson)(m.from, 'project.json');
518
+ if (pj)
519
+ projects.push({ root: m.from, paths: includePathsOf(pj.targets).map(abs) });
520
+ }
521
+ projects.sort((a, b) => b.root.length - a.root.length);
522
+ return (absFile) => {
523
+ const owner = projects.find((p) => absFile.startsWith(`${p.root}/`));
524
+ return owner ? [...new Set(owner.paths)] : [];
525
+ };
526
+ }
527
+ /** includePaths of one workspace project.json (workspace-relative, normalised). */
528
+ function projectLoadPaths(tree, projectJson) {
529
+ if (!tree.exists(projectJson))
530
+ return [];
531
+ try {
532
+ const json = JSON.parse(tree.read(projectJson, 'utf8') ?? '{}');
533
+ return [
534
+ ...new Set(includePathsOf(json.targets).map((p) => path.posix.normalize(p).replace(/\/$/, ''))),
535
+ ];
536
+ }
537
+ catch {
538
+ return [];
539
+ }
540
+ }
541
+ /** For a workspace folder: the Sass load paths of the project that owns it (nearest project.json). */
542
+ function workspaceSassLoadPaths(tree) {
543
+ const cache = new Map();
544
+ const lookup = (dir) => {
545
+ const hit = cache.get(dir);
546
+ if (hit)
547
+ return hit;
548
+ let out;
549
+ if (tree.exists(`${dir}/project.json`))
550
+ out = projectLoadPaths(tree, `${dir}/project.json`);
551
+ else if (dir === '.' || dir === '' || !dir.includes('/'))
552
+ out = [];
553
+ else
554
+ out = lookup(path.posix.dirname(dir));
555
+ cache.set(dir, out);
556
+ return out;
557
+ };
558
+ return lookup;
559
+ }
382
560
  //# sourceMappingURL=rewrite.js.map