@fairgarden/distribution 0.1.0-alpha.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 (58) hide show
  1. package/Readme.md +94 -0
  2. package/dist/add-module.d.ts +58 -0
  3. package/dist/add-module.d.ts.map +1 -0
  4. package/dist/add-module.js +250 -0
  5. package/dist/add-module.js.map +1 -0
  6. package/dist/canary.d.ts +58 -0
  7. package/dist/canary.d.ts.map +1 -0
  8. package/dist/canary.js +117 -0
  9. package/dist/canary.js.map +1 -0
  10. package/dist/cli.d.ts +3 -0
  11. package/dist/cli.d.ts.map +1 -0
  12. package/dist/cli.js +747 -0
  13. package/dist/cli.js.map +1 -0
  14. package/dist/config-edit.d.ts +18 -0
  15. package/dist/config-edit.d.ts.map +1 -0
  16. package/dist/config-edit.js +166 -0
  17. package/dist/config-edit.js.map +1 -0
  18. package/dist/extends.d.ts +59 -0
  19. package/dist/extends.d.ts.map +1 -0
  20. package/dist/extends.js +163 -0
  21. package/dist/extends.js.map +1 -0
  22. package/dist/extract.d.ts +31 -0
  23. package/dist/extract.d.ts.map +1 -0
  24. package/dist/extract.js +177 -0
  25. package/dist/extract.js.map +1 -0
  26. package/dist/git-url.d.ts +19 -0
  27. package/dist/git-url.d.ts.map +1 -0
  28. package/dist/git-url.js +55 -0
  29. package/dist/git-url.js.map +1 -0
  30. package/dist/index.d.ts +12 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +7 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/overrides.d.ts +32 -0
  35. package/dist/overrides.d.ts.map +1 -0
  36. package/dist/overrides.js +81 -0
  37. package/dist/overrides.js.map +1 -0
  38. package/dist/readme.d.ts +58 -0
  39. package/dist/readme.d.ts.map +1 -0
  40. package/dist/readme.js +299 -0
  41. package/dist/readme.js.map +1 -0
  42. package/dist/release.d.ts +140 -0
  43. package/dist/release.d.ts.map +1 -0
  44. package/dist/release.js +409 -0
  45. package/dist/release.js.map +1 -0
  46. package/dist/scaffold.d.ts +46 -0
  47. package/dist/scaffold.d.ts.map +1 -0
  48. package/dist/scaffold.js +389 -0
  49. package/dist/scaffold.js.map +1 -0
  50. package/dist/submodules.d.ts +95 -0
  51. package/dist/submodules.d.ts.map +1 -0
  52. package/dist/submodules.js +225 -0
  53. package/dist/submodules.js.map +1 -0
  54. package/dist/workflows.d.ts +57 -0
  55. package/dist/workflows.d.ts.map +1 -0
  56. package/dist/workflows.js +358 -0
  57. package/dist/workflows.js.map +1 -0
  58. package/package.json +51 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EACL,eAAe,EACf,WAAW,EACX,WAAW,EACX,OAAO,EACP,eAAe,IAAI,aAAa,EAChC,eAAe,GAEhB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,eAAe,IAAI,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC7D,OAAO,EACL,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,YAAY,EACZ,KAAK,GACN,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,cAAc,EACd,MAAM,EACN,UAAU,EACV,MAAM,GAEP,MAAM,iBAAiB,CAAA;AAExB,+EAA+E;AAC/E,KAAK,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;IACtD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAA4B,EAAE,EAAE;QAClD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC3C,MAAM,KAAK,CAAA;IACb,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCb,CAAA;AAyBD,MAAM,SAAS,GAAG,CAAC,IAAc,EAAQ,EAAE;IACzC,MAAM,IAAI,GAAS;QACjB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,EAAE;QACT,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,SAAS;QACf,EAAE,EAAE,SAAS;QACb,GAAG,EAAE,IAAI;QACT,GAAG,EAAE,SAAS;QACd,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,KAAK;QACf,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,IAAI;QACZ,GAAG,EAAE,IAAI;QACT,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,SAAS;QACf,EAAE,EAAE,SAAS;KACd,CAAA;IAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QACvB,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,CAAA;QAC/C,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACnB,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;YACjB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAA;QACrB,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAA;QACrB,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAA;QACrB,CAAC;aAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;QACzB,CAAC;aAAM,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QACpB,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QACpB,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;QAC3B,CAAC;aAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;QACzB,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,GAAG,KAAK,CAAA;QAClB,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;QAC1B,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;QAC9B,CAAC;aAAM,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACtB,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAA;QACjB,CAAC;aAAM,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACrB,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,GAAG,KAAK,CAAA;QAClB,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACnB,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;QACnB,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;;gBACjC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;QACzB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAA;QAClD,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,8DAA8D;AAC9D,MAAM,aAAa,GAAG,CAAC,KAAqB,EAAU,EAAE;IACtD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACrD,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;IACzE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEd,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAW;aACjD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACtC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,CAAA;QACrD,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACtC,CAAC;SAAM,IAAI,OAAO,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC1B,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC/B,CAAC;IAED,IAAI,QAAQ,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,mBAAmB,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IACvF,IAAI,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IAC5C,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC1D,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAErD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC,CAAA;AAED,+EAA+E;AAC/E,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,KAAe,EAAE,EAAE;IAClD,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,kCAAkC,CAAC,CAAA;IAEpE,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IAC5B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,6BAA6B,CAAC,CAAA;IACvD,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAA;IAErD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CACxB,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAC/E,CAAA;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,CACvE,CAAA;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,sBAAsB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAC1C,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACjD,CAAA;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAC1B,CAAC,CAAA;AAED,MAAM,GAAG,GAAG,CAAC,MAAgB,EAAU,EAAE,CACvC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;AAErE,MAAM,IAAI,GAAG,KAAK,IAAqB,EAAE;IACvC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAE7C,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7B,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QAChC,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8DAA8D,CAC/D,CAAA;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,GAAG,CAAC,CAAA;QACnD,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACxC,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,gDAAgD,CAAC,CAAA;YAC/E,OAAO,CAAC,CAAA;QACV,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC/C,oEAAoE;QACpE,mDAAmD;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC/E,MAAM,KAAK,GACT,IAAI,KAAK,cAAc;YACrB,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5E,CAAC,CAAC,IAAI,KAAK,UAAU;gBACnB,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;gBAC5B,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAChC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAE1C,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;gBAC1E,IAAI,MAAM,EAAE,CAAC;oBACX,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;wBACvD,GAAG,EAAE,MAAM;wBACX,KAAK,EAAE,QAAQ;qBAChB,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAA;YACjF,CAAC;QACH,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,OAAO;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAA;QAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,kBAAkB,MAAM,KAAK,CAAC,CAAA;QAE5D,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,MAAM,IAAI,CAAC,CAAA;YAC7C,IAAI,IAAI,CAAC,GAAG,IAAI,MAAM,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;gBACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,mBAAmB,IAAI,CAAC,GAAG,+CAA+C,CAC3E,CAAA;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,wEAAwE,CACzE,CAAA;QACH,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,KAAK,QAAQ;YACf,CAAC,CAAC,0EAA0E;YAC5E,CAAC,CAAC,yEAAyE,CAC9E,CAAA;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAGD,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;YAC5D,OAAO,CAAC,CAAA;QACV,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;YAC5C,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAA;QAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,MAAM,CAAC,YAAY,SAAS,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;QACzE,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,YAAY,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,OAAO,iCAAiC,CAClF,CAAA;QACH,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,mBAAmB,GAAG,+CAA+C,CACtE,CAAA;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,mDAAmD,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAClG,CAAA;QACH,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kCAAkC;gBAChC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAC7D,CAAA;QACH,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAA;QAC1E,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,+EAA+E,CAChF,CAAA;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,wEAAwE;gBACtE,KAAK,MAAM,CAAC,cAAc,IAAI;gBAC9B,gDAAgD,CACnD,CAAA;QACH,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,eAAe,MAAM,CAAC,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,CACrF,CAAA;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,yBAAyB,MAAM,CAAC,UAAU,IAAI;gBAC5C,oDAAoD;gBACpD,OAAO,MAAM,CAAC,KAAK,MAAM,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,YAAY,MAAM,CAC3E,CAAA;QACH,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACzB,oEAAoE;YACpE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qFAAqF,CACtF,CAAA;QACH,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACvC,iEAAiE;YACjE,yDAAyD;YACzD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,iFAAiF,CAClF,CAAA;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,MAAM,CAAC,KAAK,KAAK,CAAC,CAAA;QAChE,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,MAAM,CAAC,mBAAmB;YACxB,CAAC,CAAC,4DAA4D;YAC9D,CAAC,CAAC,uBAAuB,CAC5B,CAAA;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAGD,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,kCAAkC,CAAC,CAAA;QAEzE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE;YAC1D,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM;SACjC,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAE1D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAA;QACpF,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,KAAK,QAAQ;gBACf,CAAC,CAAC,qDAAqD;gBACvD,CAAC,CAAC,8CAA8C,CACnD,CAAA;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,OAAO,CAAC,MAAM,gCAAgC,OAAO;iBACvD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;iBACxD,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAC1D,CAAA;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,eAAe,OAAO;aACnB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;aACxD,IAAI,CAAC,IAAI,CAAC,IAAI,CAClB,CAAA;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,kCAAkC,CAAC,CAAA;QAEzE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE;YACzC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAA;QAEF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gFAAgF,CACjF,CAAA;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC3D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,MAAM,CAAC,OAAO;gBACZ,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,qBAAqB;gBAC7C,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAC3D,CAAA;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8EAA8E,CAC/E,CAAA;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAChE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QAEpE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,MAAM,iDAAiD,CAAC,CAAA;YAC1F,OAAO,CAAC,CAAA;QACV,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8BAA8B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;gBACjF,qCAAqC,CACxC,CAAA;QACH,CAAC;QACD,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QACtE,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kCAAkC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;gBACxF,2EAA2E;gBAC3E,uEAAuE;gBACvE,gFAAgF;gBAChF,kEAAkE,CACrE,CAAA;QACH,CAAC;QACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,wBAAwB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;gBAC7E,gFAAgF;gBAChF,+DAA+D;gBAC/D,mCAAmC,CACtC,CAAA;QACH,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,2BAA2B,OAAO,CAAC,MAAM,eAAe;YACtD,4EAA4E;YAC5E,iFAAiF;YACjF,0EAA0E;YAC1E,iEAAiE,CACpE,CAAA;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,kCAAkC,CAAC,CAAA;QAEzE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE;YACnE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM;SACjC,CAAC,CAAA;QAEF,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,eAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,qBAAqB,SAAS;gBACxE,kEAAkE,CACrE,CAAA;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,mFAAmF,CACpF,CAAA;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAA;QAE7D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,iCAAiC,CAAC,CAAA;YACrF,OAAO,CAAC,CAAA;QACV,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAA;YAC1E,OAAO,CAAC,CAAA;QACV,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,qCAAqC;gBACjE,yCAAyC,CAC5C,CAAA;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,aAAa,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,yCAAyC,CAChF,CAAA;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAA;QACjD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QAC/D,MAAM,YAAY,CAAC,MAAM,CAAC,CAAA;QAE1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,MAAM,CAAC,IAAI;YACT,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,8BAA8B,MAAM,CAAC,GAAG,KAAK;YAC/E,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,IAAI,CACpF,CAAA;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,kCAAkC,CAAC,CAAA;QAEzE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAA;YAC9C,MAAM,aAAa,CAAC,UAAU,CAAC,CAAA;YAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,OAAO,sCAAsC;gBAC5E,GAAG,UAAU,CAAC,GAAG,KAAK,CACzB,CAAA;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QAED,4EAA4E;QAC5E,4EAA4E;QAC5E,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;YAC7E,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,YAAY,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,0BAA0B,MAAM;oBACnF,kCAAkC,CACrC,CAAA;gBACD,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAW,EAAE,CAAC;oBACzD,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;oBAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG;wBACrD,CAAC,IAAI,CAAC,WAAW;4BACf,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,UAAU,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;4BACrF,CAAC,CAAC,4CAA4C,CAAC,CACpD,CAAA;gBACH,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,0EAA0E;oBACxE,sCAAsC,CACzC,CAAA;gBACD,OAAO,CAAC,CAAA;YACV,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;YAClC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAA;QACF,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;QAExB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,YAAY,IAAI,CAAC,QAAQ,IAAI;YAC3B,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,0BAA0B,MAAM,CAC5E,CAAA;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;QACrE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI;gBACzE,YAAY,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,QAAQ,kBAAkB,CAClE,CAAA;QACH,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI;YAC3D,kBAAkB,OAAO,CAAC,IAAI,IAAI,CACrC,CAAA;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAA;YACrE,OAAO,CAAC,CAAA;QACV,CAAC;QAED,0EAA0E;QAC1E,uEAAuE;QACvE,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kBAAkB,IAAI,CAAC,QAAQ,iBAAiB,IAAI,CAAC,WAAW,CAAC,MAAM,WAAW;gBAChF,gFAAgF;gBAChF,qDAAqD,OAAO,CAAC,IAAI,oBAAoB,CACxF,CAAA;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAA;YACrF,OAAO,CAAC,CAAA;QACV,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,OAAO,CAAC,WAAW;YACjB,CAAC,CAAC,KAAK,OAAO,CAAC,WAAW,IAAI;YAC9B,CAAC,CAAC,kEAAkE,CACvE,CAAA;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,kCAAkC,CAAC,CAAA;QAEzE,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qEAAqE,CACtE,CAAA;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE;YAC5D,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAA;QAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,cAAc,IAAI,CAAC,IAAI,sBAAsB,CAC/E,CAAA;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAA;YACrE,OAAO,CAAC,CAAA;QACV,CAAC;QACD,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,CAAA;QAEtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,MAAM;YACJ,CAAC,CAAC,6EAA6E;gBAC3E,uDAAuD;YAC3D,CAAC,CAAC,6CAA6C,CAClD,CAAA;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACrC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,kCAAkC,CAAC,CAAA;QAEzE,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;QAEnC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,oDAAoD,CAChF,CAAA;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,YAAY,MAAM,CAAC,UAAU,iBAAiB;gBACvE,uDAAuD,CAC1D,CAAA;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACvD,OAAO,CAAC,CAAA;QACV,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,uBAAuB;YAC/E,QAAQ,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,KAAK,CAC7D,CAAA;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;YAC5E,OAAO,CAAC,CAAA;QACV,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gEAAgE,CACjE,CAAA;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE;YACnD,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAA;QAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,MAAM,CAAC,YAAY,WAAW,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,oBAAoB,EAAE;YAC3F,gCAAgC,CACnC,CAAA;QACD,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAA;QAC5E,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,UAAU,MAAM,CAAC,MAAM,0BAA0B;gBAC/C,0EAA0E;gBAC1E,6EAA6E,CAChF,CAAA;QACH,CAAC;QACD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,4EAA4E;gBAC1E,KAAK,MAAM,CAAC,cAAc,IAAI;gBAC9B,gDAAgD,CACnD,CAAA;QACH,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;QACjD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,mBAAmB,IAAI,CAAC,GAAG,+CAA+C,CAC3E,CAAA;QACH,CAAC;QAED,0EAA0E;QAC1E,4DAA4D;QAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,6CAA6C;YAC3C,cAAc,MAAM,CAAC,YAAY,+BAA+B;YAChE,uCAAuC,CAC1C,CAAA;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;QACjC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QAEzD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAA;YAC/D,OAAO,CAAC,CAAA;QACV,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,GAAG,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACjC,IAAI,KAAK,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC;gBACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,uBAAuB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;gBACjF,SAAQ;YACV,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;YAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,GAAG,OAAO,KAAK,IAAI,CAAC,CAAA;QAC7E,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;YACjE,OAAO,CAAC,CAAA;QACV,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAA;QAElF,wEAAwE;QACxE,iDAAiD;QACjD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,CAAA;QAE1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAA;QACpF,MAAM,WAAW,GAAa,EAAE,CAAA;QAChC,KAAK,MAAM,MAAM,IAAI,GAAG,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;YACjC,IAAI,CAAC,SAAS;gBAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;YACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAA;QAC9F,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,WAAW,CAAC,MAAM,mDAAmD;gBACxE,gFAAgF,CACnF,CAAA;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAA;QACrD,OAAO,CAAC,CAAA;IACV,CAAC;IAGD,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAC5B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAC9E,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAA;QAEtE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,aAAa,CAAC,KAAK,CAAC,IAAI,CAC3E,CAAA;QACH,CAAC;QAED,yEAAyE;QACzE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;QAChE,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,GAAG,CAAC,MAAM,yDAAyD;gBACtE,6BAA6B,CAChC,CAAA;YACD,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;gBACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,KAAK,CAAC,SAAS,CAAC,YAAY,KAAK,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;oBACzD,SAAS,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAC5C,CAAA;YACH,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gEAAgE;gBAC9D,qDAAqD,CACxD,CAAA;QACH,CAAC;QAED,mEAAmE;QACnE,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;QAC1C,IAAI,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAClE,CAAC;aAAM,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kBAAkB,aAAa,CAAC,UAAU,4BAA4B;gBACpE,4CAA4C,CAC/C,CAAA;QACH,CAAC;aAAM,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qBAAqB,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,OAAO,IAAI;gBAChF,qBAAqB,CACxB,CAAA;QACH,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAC3E,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAA;QAEtE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;gBAC/B,CAAC,CAAC,qEAAqE;oBACnE,kDAAkD;gBACtD,CAAC,CAAC,0CAA0C,CAC/C,CAAA;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,QAAQ,CAAC,MAAM,0DAA0D,CAC7E,CAAA;YACH,CAAC;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QAED,wEAAwE;QACxE,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAA;QAC7E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,MAAM,kCAAkC,CAAC,CAAA;QAC9E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,MAAM,GAAG,CAAC;YACb,CAAC,CAAC,gDAAgD,IAAI,CAAC,MAAM,sBAAsB;YACnF,CAAC,CAAC,KAAK,CACV,CAAA;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAGD,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACpD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAE9E,MAAM,KAAK,GAAG,MAAM;aACjB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;aACrE,MAAM,CAAC,CAAC,IAAI,EAAiD,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAA;QAEzF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;YAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YACrE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,MAAM,uEAAuE,CACtF,CAAA;YACH,CAAC;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QAED,oEAAoE;QACpE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACtD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,sDAAsD,KAAK;iBACxD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;iBACvD,IAAI,CAAC,IAAI,CAAC,IAAI,CAClB,CAAA;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QAED,KAAK,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,KAAK,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACpD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,YAAY,KAAK,IAAI,OAAO,EAAE,IAAI,CAAC,CAAA;gBAC3E,SAAQ;YACV,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,YAAY,KAAK,IAAI,OAAO,EAAE,IAAI,CAAC,CAAA;QAC7E,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,MAAM;YACT,CAAC,CAAC,6BAA6B;YAC/B,CAAC,CAAC,uEAAuE,CAC5E,CAAA;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAGD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,OAAO,OAAO,KAAK,EAAE,CAAC,CAAA;IACpE,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAED,IAAI,EAAE,CAAC,IAAI,CACT,CAAC,IAAI,EAAE,EAAE;IACP,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAA;AACzB,CAAC,EACD,CAAC,KAAc,EAAE,EAAE;IACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACnF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;AACtB,CAAC,CACF,CAAA"}
@@ -0,0 +1,18 @@
1
+ export interface EditResult {
2
+ source: string;
3
+ /** False when the mount was already there. */
4
+ changed: boolean;
5
+ }
6
+ export declare class ConfigEditError extends Error {
7
+ }
8
+ export declare const addMount: (source: string, mount: string, module: string) => EditResult;
9
+ /**
10
+ * Whether a Next config composes modules, rather than merely importing from
11
+ * this package.
12
+ *
13
+ * A module depends on `@fairgarden/monolith` too — for the portability check
14
+ * and the portable Link — so the dependency says nothing. Only a config that
15
+ * calls `withMonolith` belongs to the app doing the composing.
16
+ */
17
+ export declare const declaresMonolith: (source: string) => boolean;
18
+ //# sourceMappingURL=config-edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-edit.d.ts","sourceRoot":"","sources":["../src/config-edit.ts"],"names":[],"mappings":"AA4DA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,qBAAa,eAAgB,SAAQ,KAAK;CAAG;AAa7C,eAAO,MAAM,QAAQ,GACnB,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,QAAQ,MAAM,KACb,UAqFF,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,KAAG,OAwBjD,CAAA"}
@@ -0,0 +1,166 @@
1
+ import { parse } from '@babel/parser';
2
+ /**
3
+ * Add a mount to a monolith's Next config.
4
+ *
5
+ * The file is parsed to find where the mount map is, and the new entry is
6
+ * spliced into the original text at that offset rather than regenerated from
7
+ * the tree. Printing the tree back out would reformat the whole file and move
8
+ * its comments, over a one-line change.
9
+ */
10
+ const IDENTIFIER = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
11
+ /** Walk every node, depth first, until `visit` returns a value. */
12
+ const find = (node, visit) => {
13
+ if (!node || typeof node !== 'object')
14
+ return undefined;
15
+ if (Array.isArray(node)) {
16
+ for (const child of node) {
17
+ const found = find(child, visit);
18
+ if (found !== undefined)
19
+ return found;
20
+ }
21
+ return undefined;
22
+ }
23
+ const candidate = node;
24
+ if (typeof candidate.type === 'string') {
25
+ const found = visit(candidate);
26
+ if (found !== undefined)
27
+ return found;
28
+ }
29
+ for (const [key, value] of Object.entries(node)) {
30
+ if (key === 'loc' || key === 'leadingComments' || key === 'trailingComments')
31
+ continue;
32
+ const found = find(value, visit);
33
+ if (found !== undefined)
34
+ return found;
35
+ }
36
+ return undefined;
37
+ };
38
+ /** What the config calls `withMonolith`, which an import may have renamed. */
39
+ const localName = (ast) => find(ast, (node) => {
40
+ if (node.type !== 'ImportDeclaration')
41
+ return undefined;
42
+ if (!String(node.source.value).startsWith('@fairgarden/monolith'))
43
+ return undefined;
44
+ for (const specifier of node.specifiers) {
45
+ if (specifier.type === 'ImportSpecifier' &&
46
+ specifier.imported.type === 'Identifier' &&
47
+ specifier.imported.name === 'withMonolith') {
48
+ return specifier.local.name;
49
+ }
50
+ if (specifier.type === 'ImportDefaultSpecifier')
51
+ return specifier.local.name;
52
+ }
53
+ return undefined;
54
+ });
55
+ export class ConfigEditError extends Error {
56
+ }
57
+ const keyOf = (name) => IDENTIFIER.test(name) ? name : `'${name}'`;
58
+ /** The indent to give a new property, taken from whatever is already there. */
59
+ const indentFor = (source, offset, fallback) => {
60
+ const lineStart = source.lastIndexOf('\n', offset - 1) + 1;
61
+ const line = source.slice(lineStart, offset);
62
+ const leading = /^[ \t]*/.exec(line)?.[0];
63
+ return leading && leading.length > 0 ? leading : fallback;
64
+ };
65
+ export const addMount = (source, mount, module) => {
66
+ let ast;
67
+ try {
68
+ ast = parse(source, {
69
+ sourceType: 'module',
70
+ plugins: ['typescript'],
71
+ ranges: true,
72
+ });
73
+ }
74
+ catch (cause) {
75
+ throw new ConfigEditError('The config could not be parsed.', { cause });
76
+ }
77
+ const called = localName(ast);
78
+ if (!called) {
79
+ throw new ConfigEditError('The config does not import withMonolith.');
80
+ }
81
+ const call = find(ast, (node) => node.type === 'CallExpression' &&
82
+ node.callee.type === 'Identifier' &&
83
+ node.callee.name === called
84
+ ? node
85
+ : undefined);
86
+ if (!call || call.type !== 'CallExpression') {
87
+ throw new ConfigEditError(`The config never calls ${called}().`);
88
+ }
89
+ const [first, apps] = call.arguments;
90
+ const entry = `${keyOf(mount)}: '${module}',`;
91
+ // No mount map yet, so give it one alongside the config it already passes.
92
+ if (!apps) {
93
+ if (!first || first.end === null || first.end === undefined) {
94
+ throw new ConfigEditError(`${called}() was called without a config to extend.`);
95
+ }
96
+ const indent = indentFor(source, first.start ?? 0, ' ');
97
+ const inner = `${indent} `;
98
+ const insert = `,\n${indent}{\n${inner}${entry}\n${indent}}`;
99
+ return {
100
+ source: source.slice(0, first.end) + insert + source.slice(first.end),
101
+ changed: true,
102
+ };
103
+ }
104
+ if (apps.type !== 'ObjectExpression') {
105
+ throw new ConfigEditError(`The apps passed to ${called}() are not written inline, so they cannot be edited here.`);
106
+ }
107
+ const existing = apps.properties.some((property) => property.type === 'ObjectProperty' &&
108
+ ((property.key.type === 'Identifier' && property.key.name === mount) ||
109
+ (property.key.type === 'StringLiteral' && property.key.value === mount)));
110
+ if (existing)
111
+ return { source, changed: false };
112
+ const open = apps.start ?? 0;
113
+ const close = (apps.end ?? 0) - 1;
114
+ const last = apps.properties.at(-1);
115
+ if (!last || last.end === null || last.end === undefined) {
116
+ // An empty map, possibly holding a comment; put the entry first.
117
+ const indent = `${indentFor(source, open, ' ')} `;
118
+ return {
119
+ source: `${source.slice(0, open + 1)}\n${indent}${entry}${source.slice(open + 1)}`,
120
+ changed: true,
121
+ };
122
+ }
123
+ // Step over a trailing comma so the new entry does not double it, and
124
+ // supply one when the last property does not already end in it.
125
+ let at = last.end;
126
+ const between = source.slice(at, close);
127
+ const comma = between.indexOf(',');
128
+ const trailing = comma !== -1 && between.slice(0, comma).trim() === '';
129
+ if (trailing)
130
+ at += comma + 1;
131
+ const indent = indentFor(source, last.start ?? open, ' ');
132
+ return {
133
+ source: `${source.slice(0, at)}${trailing ? '' : ','}\n${indent}${entry}${source.slice(at)}`,
134
+ changed: true,
135
+ };
136
+ };
137
+ /**
138
+ * Whether a Next config composes modules, rather than merely importing from
139
+ * this package.
140
+ *
141
+ * A module depends on `@fairgarden/monolith` too — for the portability check
142
+ * and the portable Link — so the dependency says nothing. Only a config that
143
+ * calls `withMonolith` belongs to the app doing the composing.
144
+ */
145
+ export const declaresMonolith = (source) => {
146
+ let ast;
147
+ try {
148
+ ast = parse(source, {
149
+ sourceType: 'module',
150
+ plugins: ['typescript'],
151
+ ranges: true,
152
+ });
153
+ }
154
+ catch {
155
+ return false;
156
+ }
157
+ const called = localName(ast);
158
+ if (!called)
159
+ return false;
160
+ return (find(ast, (node) => node.type === 'CallExpression' &&
161
+ node.callee.type === 'Identifier' &&
162
+ node.callee.name === called
163
+ ? true
164
+ : undefined) === true);
165
+ };
166
+ //# sourceMappingURL=config-edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-edit.js","sourceRoot":"","sources":["../src/config-edit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * A distribution is a manifest: its dependencies are the modules it ships, each
3
+ * pinned to a version. End users consume the distribution, which is versioned
4
+ * by date; developers consume the modules, which are versioned by semver.
5
+ *
6
+ * One distribution may extend another. The extension ships the parent's modules
7
+ * and may move ahead of it, but can never ship a module older than the parent
8
+ * does — otherwise "extends" would mean shipping a regression.
9
+ */
10
+ export interface Distribution {
11
+ name: string;
12
+ version: string;
13
+ /** Module name to the version range this distribution ships. */
14
+ modules: Record<string, string>;
15
+ /** The distribution this one extends, when it extends one. */
16
+ extends: string | undefined;
17
+ }
18
+ /**
19
+ * Read a distribution.
20
+ *
21
+ * In a repository the modules come from the submodules. A published
22
+ * distribution has no submodules, so its manifest carries the versions it
23
+ * shipped, which is what an extension is compared against.
24
+ */
25
+ export declare const readDistribution: (root: string) => Distribution;
26
+ /**
27
+ * The parent's manifest, read from node_modules.
28
+ *
29
+ * A distribution is published, so the parent is an ordinary dependency and
30
+ * whatever version is installed is the one being extended.
31
+ */
32
+ export declare const readParent: (root: string, parent: string) => Distribution | undefined;
33
+ export interface FloorViolation {
34
+ module: string;
35
+ /** What the parent ships, which is the floor. */
36
+ parent: string;
37
+ /** What this distribution ships, or undefined when it ships none. */
38
+ ours: string | undefined;
39
+ reason: 'behind' | 'missing';
40
+ }
41
+ /**
42
+ * Modules this distribution ships older than its parent, or not at all.
43
+ *
44
+ * Ranges are compared by the lowest version they allow, since that is the
45
+ * oldest thing the distribution could resolve to.
46
+ */
47
+ export declare const findFloorViolations: (ours: Distribution, parent: Distribution) => FloorViolation[];
48
+ export interface ExtendsReport {
49
+ distribution: Distribution;
50
+ parent: Distribution | undefined;
51
+ violations: FloorViolation[];
52
+ /** Set when a parent is declared but could not be read. */
53
+ unresolved: string | undefined;
54
+ }
55
+ export declare const inspectExtends: (root: string) => ExtendsReport;
56
+ export declare const describeViolations: (report: ExtendsReport) => string;
57
+ /** Throw when this distribution ships something older than its parent. */
58
+ export declare const assertExtends: (root: string) => void;
59
+ //# sourceMappingURL=extends.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extends.d.ts","sourceRoot":"","sources":["../src/extends.ts"],"names":[],"mappings":"AAMA;;;;;;;;GAQG;AAEH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,8DAA8D;IAC9D,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAC5B;AAsCD;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,YAkB/C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GACrB,MAAM,MAAM,EACZ,QAAQ,MAAM,KACb,YAAY,GAAG,SAQjB,CAAA;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAA;IACd,qEAAqE;IACrE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAA;CAC7B;AAiBD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,YAAY,EAClB,QAAQ,YAAY,KACnB,cAAc,EAgChB,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,YAAY,CAAA;IAC1B,MAAM,EAAE,YAAY,GAAG,SAAS,CAAA;IAChC,UAAU,EAAE,cAAc,EAAE,CAAA;IAC5B,2DAA2D;IAC3D,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CAC/B;AAED,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,aAuB7C,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,QAAQ,aAAa,KAAG,MAa1D,CAAA;AAED,0EAA0E;AAC1E,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,IAG5C,CAAA"}
@@ -0,0 +1,163 @@
1
+ import { createRequire } from 'node:module';
2
+ import { readFileSync } from 'node:fs';
3
+ import path from 'node:path';
4
+ import semver from 'semver';
5
+ import { submodules } from "./submodules.js";
6
+ const readPackageJson = (file) => JSON.parse(readFileSync(file, 'utf8'));
7
+ /**
8
+ * The modules a repository ships, read from the submodules themselves.
9
+ *
10
+ * Nothing is pinned in the distribution repository: the submodule commit is the
11
+ * pin, and the version is whatever the package.json inside that checkout says.
12
+ * pnpm links the checkout into the workspace, so that is also the version
13
+ * everything here resolves against.
14
+ */
15
+ const modulesFromSubmodules = (root) => {
16
+ const found = submodules(root);
17
+ if (found.length === 0)
18
+ return undefined;
19
+ const modules = {};
20
+ for (const submodule of found) {
21
+ try {
22
+ const pkg = readPackageJson(path.join(submodule.path, 'package.json'));
23
+ if (pkg.name && pkg.version)
24
+ modules[pkg.name] = pkg.version;
25
+ }
26
+ catch {
27
+ // A submodule that was never cloned has nothing to read.
28
+ continue;
29
+ }
30
+ }
31
+ return Object.keys(modules).length > 0 ? modules : undefined;
32
+ };
33
+ /**
34
+ * Read a distribution.
35
+ *
36
+ * In a repository the modules come from the submodules. A published
37
+ * distribution has no submodules, so its manifest carries the versions it
38
+ * shipped, which is what an extension is compared against.
39
+ */
40
+ export const readDistribution = (root) => {
41
+ const pkg = readPackageJson(path.join(root, 'package.json'));
42
+ const parent = pkg.distribution?.extends;
43
+ const declared = { ...pkg.dependencies };
44
+ // The parent is a dependency too, but it is not one of the modules.
45
+ if (parent)
46
+ delete declared[parent];
47
+ // Workspace links say "whatever the checkout is", not a version.
48
+ for (const [name, range] of Object.entries(declared)) {
49
+ if (range.startsWith('workspace:') || range.startsWith('link:'))
50
+ delete declared[name];
51
+ }
52
+ return {
53
+ name: pkg.name ?? path.basename(root),
54
+ version: pkg.version ?? '0.0.0',
55
+ modules: modulesFromSubmodules(root) ?? declared,
56
+ extends: parent,
57
+ };
58
+ };
59
+ /**
60
+ * The parent's manifest, read from node_modules.
61
+ *
62
+ * A distribution is published, so the parent is an ordinary dependency and
63
+ * whatever version is installed is the one being extended.
64
+ */
65
+ export const readParent = (root, parent) => {
66
+ const require = createRequire(path.join(root, 'package.json'));
67
+ try {
68
+ const manifest = require.resolve(`${parent}/package.json`);
69
+ return readDistribution(path.dirname(manifest));
70
+ }
71
+ catch {
72
+ return undefined;
73
+ }
74
+ };
75
+ /**
76
+ * The lowest version a range allows, which is what a floor compares.
77
+ *
78
+ * `minVersion` throws on anything that is not a range — `latest`, a git url, a
79
+ * dist-tag — so this returns undefined for those rather than taking the whole
80
+ * check down with it.
81
+ */
82
+ const lowest = (range) => {
83
+ try {
84
+ return semver.minVersion(range, { loose: true })?.version;
85
+ }
86
+ catch {
87
+ return undefined;
88
+ }
89
+ };
90
+ /**
91
+ * Modules this distribution ships older than its parent, or not at all.
92
+ *
93
+ * Ranges are compared by the lowest version they allow, since that is the
94
+ * oldest thing the distribution could resolve to.
95
+ */
96
+ export const findFloorViolations = (ours, parent) => {
97
+ const violations = [];
98
+ for (const [module, parentRange] of Object.entries(parent.modules)) {
99
+ const ourRange = ours.modules[module];
100
+ if (ourRange === undefined) {
101
+ violations.push({
102
+ module,
103
+ parent: parentRange,
104
+ ours: undefined,
105
+ reason: 'missing',
106
+ });
107
+ continue;
108
+ }
109
+ const ourFloor = lowest(ourRange);
110
+ const parentFloor = lowest(parentRange);
111
+ // Anything unparseable is left alone rather than guessed at.
112
+ if (!ourFloor || !parentFloor)
113
+ continue;
114
+ if (semver.lt(ourFloor, parentFloor)) {
115
+ violations.push({
116
+ module,
117
+ parent: parentRange,
118
+ ours: ourRange,
119
+ reason: 'behind',
120
+ });
121
+ }
122
+ }
123
+ return violations;
124
+ };
125
+ export const inspectExtends = (root) => {
126
+ const distribution = readDistribution(root);
127
+ if (!distribution.extends) {
128
+ return { distribution, parent: undefined, violations: [], unresolved: undefined };
129
+ }
130
+ const parent = readParent(root, distribution.extends);
131
+ if (!parent) {
132
+ return {
133
+ distribution,
134
+ parent: undefined,
135
+ violations: [],
136
+ unresolved: distribution.extends,
137
+ };
138
+ }
139
+ return {
140
+ distribution,
141
+ parent,
142
+ violations: findFloorViolations(distribution, parent),
143
+ unresolved: undefined,
144
+ };
145
+ };
146
+ export const describeViolations = (report) => {
147
+ const { distribution, parent, violations } = report;
148
+ const lines = violations.map((violation) => violation.reason === 'missing'
149
+ ? ` ${violation.module} is not shipped, but ${parent?.name} ships ${violation.parent}`
150
+ : ` ${violation.module} ${violation.ours} is older than the ${violation.parent} ${parent?.name} ships`);
151
+ return [
152
+ `${distribution.name} extends ${parent?.name}, so it cannot ship anything older:`,
153
+ ...lines,
154
+ 'An extension may move ahead of what it extends, never behind it.',
155
+ ].join('\n');
156
+ };
157
+ /** Throw when this distribution ships something older than its parent. */
158
+ export const assertExtends = (root) => {
159
+ const report = inspectExtends(root);
160
+ if (report.violations.length > 0)
161
+ throw new Error(describeViolations(report));
162
+ };
163
+ //# sourceMappingURL=extends.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extends.js","sourceRoot":"","sources":["../src/extends.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export interface ExtractOptions {
2
+ /** Where the new repository will live. Recorded in .gitmodules. */
3
+ url: string;
4
+ /** Record the url as given rather than rewriting it to https. */
5
+ ssh?: boolean;
6
+ /** Tag the first commit with the version its package.json declares. */
7
+ tag?: boolean;
8
+ }
9
+ export interface ExtractResult {
10
+ /** Why the workspace overrides were not updated, when they could not be. */
11
+ overridesError: string | undefined;
12
+ relativePath: string;
13
+ packageName: string | undefined;
14
+ version: string | undefined;
15
+ url: string;
16
+ rewritten: boolean;
17
+ /** The repository was created here, rather than already existing. */
18
+ initialised: boolean;
19
+ /** The version tag written, when one was. */
20
+ tagged: string | undefined;
21
+ }
22
+ export declare const extractModule: (cwd: string, target: string, options: ExtractOptions) => Promise<ExtractResult>;
23
+ /**
24
+ * A workspace covering this repository and the packages inside it.
25
+ *
26
+ * The settings are not decoration: pnpm 10 defaults `linkWorkspacePackages` to
27
+ * false, so without it a nested package resolves its dependency on this one
28
+ * from the registry rather than from the checkout it is sitting in.
29
+ */
30
+ export declare const workspaceFile: (nested: string[]) => string;
31
+ //# sourceMappingURL=extract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../src/extract.ts"],"names":[],"mappings":"AA6CA,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,GAAG,EAAE,MAAM,CAAA;IACX,iEAAiE;IACjE,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,uEAAuE;IACvE,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,4EAA4E;IAC5E,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,OAAO,CAAA;IAClB,qEAAqE;IACrE,WAAW,EAAE,OAAO,CAAA;IACpB,6CAA6C;IAC7C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAC3B;AAoBD,eAAO,MAAM,aAAa,GACxB,KAAK,MAAM,EACX,QAAQ,MAAM,EACd,SAAS,cAAc,KACtB,OAAO,CAAC,aAAa,CA+FvB,CAAA;AAkBD;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,EAAE,KAAG,MAqBnC,CAAA"}