skir 1.2.5 → 1.2.7

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 (91) hide show
  1. package/dist/casing.d.ts +5 -0
  2. package/dist/casing.js +23 -0
  3. package/dist/casing.js.map +1 -0
  4. package/dist/command_line_parser.d.ts +36 -0
  5. package/dist/command_line_parser.d.ts.map +1 -0
  6. package/dist/command_line_parser.js +240 -0
  7. package/dist/command_line_parser.js.map +1 -0
  8. package/dist/compatibility_checker.d.ts +74 -0
  9. package/dist/compatibility_checker.js +331 -0
  10. package/dist/compatibility_checker.js.map +1 -0
  11. package/dist/compiler.d.ts +3 -0
  12. package/dist/compiler.js +406 -0
  13. package/dist/compiler.js.map +1 -0
  14. package/dist/completion_helper.d.ts +27 -0
  15. package/dist/completion_helper.js +101 -0
  16. package/dist/completion_helper.js.map +1 -0
  17. package/dist/config.d.ts +18 -0
  18. package/dist/config.js +19 -0
  19. package/dist/config.js.map +1 -0
  20. package/dist/config_parser.d.ts +34 -0
  21. package/dist/config_parser.js +217 -0
  22. package/dist/config_parser.js.map +1 -0
  23. package/dist/definition_finder.d.ts +16 -0
  24. package/dist/definition_finder.js +375 -0
  25. package/dist/definition_finder.js.map +1 -0
  26. package/dist/dependency_manager.d.ts +14 -0
  27. package/dist/dependency_manager.js +109 -0
  28. package/dist/dependency_manager.js.map +1 -0
  29. package/dist/doc_comment_parser.d.ts +6 -0
  30. package/dist/doc_comment_parser.js +269 -0
  31. package/dist/doc_comment_parser.js.map +1 -0
  32. package/dist/doc_reference_resolver.d.ts +5 -0
  33. package/dist/doc_reference_resolver.js +232 -0
  34. package/dist/doc_reference_resolver.js.map +1 -0
  35. package/dist/error_renderer.d.ts +24 -0
  36. package/dist/error_renderer.js +326 -0
  37. package/dist/error_renderer.js.map +1 -0
  38. package/dist/exit_error.d.ts +8 -0
  39. package/dist/exit_error.d.ts.map +1 -0
  40. package/dist/exit_error.js +8 -0
  41. package/dist/exit_error.js.map +1 -0
  42. package/dist/expected_names.d.ts +11 -0
  43. package/dist/expected_names.js +34 -0
  44. package/dist/expected_names.js.map +1 -0
  45. package/dist/formatter.d.ts +28 -0
  46. package/dist/formatter.js +338 -0
  47. package/dist/formatter.js.map +1 -0
  48. package/dist/get_dependencies_flow.d.ts +40 -0
  49. package/dist/get_dependencies_flow.js +177 -0
  50. package/dist/get_dependencies_flow.js.map +1 -0
  51. package/dist/import_block_formatter.d.ts +3 -0
  52. package/dist/import_block_formatter.js +36 -0
  53. package/dist/import_block_formatter.js.map +1 -0
  54. package/dist/index.d.ts +2 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +2 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/io.d.ts +23 -0
  59. package/dist/io.d.ts.map +1 -0
  60. package/dist/io.js +58 -0
  61. package/dist/io.js.map +1 -0
  62. package/dist/literals.d.ts +12 -0
  63. package/dist/literals.js +96 -0
  64. package/dist/literals.js.map +1 -0
  65. package/dist/module_collector.d.ts +9 -0
  66. package/dist/module_collector.js +73 -0
  67. package/dist/module_collector.js.map +1 -0
  68. package/dist/module_set.d.ts +51 -0
  69. package/dist/module_set.js +1331 -0
  70. package/dist/module_set.js.map +1 -0
  71. package/dist/package_downloader.d.ts +4 -0
  72. package/dist/package_downloader.js +256 -0
  73. package/dist/package_downloader.js.map +1 -0
  74. package/dist/package_types.d.ts +30 -0
  75. package/dist/package_types.d.ts.map +1 -0
  76. package/dist/package_types.js +2 -0
  77. package/dist/package_types.js.map +1 -0
  78. package/dist/parser.d.ts +7 -0
  79. package/dist/parser.js +1335 -0
  80. package/dist/parser.js.map +1 -0
  81. package/dist/project_initializer.d.ts +2 -0
  82. package/dist/project_initializer.d.ts.map +1 -0
  83. package/dist/project_initializer.js +207 -0
  84. package/dist/project_initializer.js.map +1 -0
  85. package/dist/snapshotter.d.ts +16 -0
  86. package/dist/snapshotter.js +263 -0
  87. package/dist/snapshotter.js.map +1 -0
  88. package/dist/tokenizer.d.ts +18 -0
  89. package/dist/tokenizer.js +244 -0
  90. package/dist/tokenizer.js.map +1 -0
  91. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAoCA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGpD,2CAA2C;AAC3C,MAAM,UAAU,WAAW,CACzB,YAA0B,EAC1B,IAA0B;IAE1B,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;IAChD,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,MAAM,EAAE,GAAG,IAAI,aAAa,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzD,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAChE,MAAM,eAAe,GAAqB,uBAAuB,CAAC,MAAM,CACtE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CACpC,CAAC;IACF,MAAM,aAAa,GAAmB,uBAAuB,CAAC,MAAM,CAClE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAClC,CAAC;IACF,MAAM,YAAY,GAAG,uBAAuB,CAAC,MAAM,CACjD,CAAC,CAAC,EAAsC,EAAE,CACxC,CAAC,CAAC,IAAI,KAAK,iBAAiB,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,CAC7D,CAAC;IACF,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,0EAA0E;IAC1E,MAAM,iBAAiB,GACrB,EAAE,CAAC;IACL,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuC,CAAC;IACrE,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,UAAmB,CAAC;QACxB,IAAI,eAAmC,CAAC;QACxC,IAAI,iBAAiE,CAAC;QACtE,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClC,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC;YACvC,eAAe,GAAG,iBAAiB,CACjC,WAAW,CAAC,UAAU,EACtB,UAAU,EACV,MAAM,CACP,CAAC;YACF,iBAAiB,GAAG,WAAW,CAAC;QAClC,CAAC;aAAM,IAAI,WAAW,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAC/C,UAAU,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAChC,eAAe,GAAG,iBAAiB,CACjC,WAAW,CAAC,UAAU,EACtB,UAAU,EACV,MAAM,CACP,CAAC;YACF,iBAAiB,GAAG,WAAW,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACjD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,EAAE,CAAC;gBACb,aAAa,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,iBAAkB,CAAC,CAAC;YACjC,iBAAkB,CAAC,kBAAkB,GAAG,eAAe,CAAC;QAC1D,CAAC;QACD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;YAC5B,IAAI,IAAI,IAAI,iBAAiB,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,SAAS;oBAChB,OAAO,EAAE,yBAAyB,IAAI,GAAG;iBAC1C,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,iBAAiB,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,gBAAgB,GAAG,mBAAmB,CAC1C,YAAY,EACZ,YAAY,EACZ,MAAM,CACP,CAAC;IACF,MAAM,mBAAmB,GAAwB,EAAE,CAAC;IACpD,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,aAAa,EAAE,CAAC;QAC5C,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CACnC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CACxC,CAAC;QACF,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CACrC,CAAC,CAAC,EAAoB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CACnD,CAAC;QAEF,IAAI,cAAc,CAAC,MAAM,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;YACrD,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;gBAC3C,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,aAAa,CAAC,UAAU;oBAC/B,OAAO,EAAE,uCAAuC;iBACjD,CAAC,CAAC;YACL,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACjC,KAAK,MAAM,eAAe,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,eAAe,CAAC,UAAU;oBACjC,OAAO,EAAE,gDAAgD;iBAC1D,CAAC,CAAC;YACL,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;YAChC,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;gBAC3C,KAAK,MAAM,YAAY,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC;oBACvD,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;YACD,mBAAmB,CAAC,IAAI,CAAC,GAAG;gBAC1B,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,KAAK;aACb,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7C,mBAAmB,CAAC,IAAI,CAAC,GAAG;gBAC1B,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,KAAK;aACb,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CACjC,CAAC,CAAC,EAAsB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAC/C,CAAC;IACF,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CACnC,CAAC,CAAC,EAAwB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CACnD,CAAC;IACF,OAAO;QACL,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,UAAU;YACtB,iBAAiB,EAAE,iBAAiB;YACpC,YAAY,EAAE,YAAY;YAC1B,gBAAgB,EAAE,gBAAgB;YAClC,OAAO,EAAE,oBAAoB,CAAC,YAAY,CAAC;YAC3C,mBAAmB,EAAE,mBAAmB;YACxC,OAAO,EAAE,OAAO;YAChB,aAAa,EAAE,aAAa;YAC5B,SAAS,EAAE,SAAS;YACpB,eAAe,EAAE,eAAe;SACjC;QACD,MAAM,EAAE,MAAM;KACf,CAAC;AACJ,CAAC;AAYD,SAAS,iBAAiB,CACxB,EAAiB,EACjB,UAAwC;IAExC,MAAM,MAAM,GAA8D,EAAE,CAAC;IAC7E,2EAA2E;IAC3E,MAAM,UAAU,GAAG,CAAC,CAAS,EAAW,EAAE,CACxC,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACrD,wEAAwE;IACxE,MAAM,WAAW,GAAG,CAAC,CAAS,EAAW,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;IACnE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC;QAC5B,MAAM,WAAW,GAAG,gBAAgB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QACrD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACzB,IACE,WAAW,CAAC,IAAI,KAAK,QAAQ;gBAC7B,WAAW,CAAC,IAAI,KAAK,eAAe,EACpC,CAAC;gBACD,IAAI,WAAW,CAAC,mBAAmB,EAAE,CAAC;oBACpC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBAC/C,CAAC;gBACD,IAAI,WAAW,CAAC,oBAAoB,EAAE,CAAC;oBACrC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,yEAAyE;YACzE,4EAA4E;YAC5E,yEAAyE;YACzE,4EAA4E;YAC5E,0CAA0C;YAC1C,MAAM,kBAAkB,GAAG,EAAE,CAAC,KAAK,KAAK,UAAU,CAAC;YACnD,IAAI,kBAAkB,EAAE,CAAC;gBACvB,EAAE,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,wCAAwC;oBACxC,SAAS;gBACX,CAAC;YACH,CAAC;YACD,IACE,kBAAkB;gBAClB,CAAC,EAAE,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAChD,CAAC;gBACD,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,OAAO,IAAI,EAAE,CAAC;oBACZ,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC;oBACzB,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;wBACjB,MAAM;oBACR,CAAC;oBACD,EAAE,CAAC,IAAI,EAAE,CAAC;oBACV,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;wBAClB,EAAE,WAAW,CAAC;oBAChB,CAAC;yBAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;wBACzB,EAAE,WAAW,CAAC;oBAChB,CAAC;oBACD,IAAI,WAAW,IAAI,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC3C,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CACvB,EAAiB,EACjB,UAAwC;IAExC,MAAM,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IAC3B,IAAI,UAAU,GAAsB,MAAM,CAAC;IAC3C,MAAM,YAAY,GAAG,UAAU,KAAK,QAAQ,CAAC;IAC7C,MAAM,QAAQ,GAAG;QACf,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACtC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB;QAChD,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;QACrC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;QACrC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;KACrC,CAAC;IACF,MAAM,KAAK,GAAG,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,CAAC;YACJ,UAAU,GAAG,QAAQ,CAAC;QACxB,iBAAiB;QACjB,KAAK,CAAC;YACJ,OAAO,WAAW,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QAC1C,KAAK,CAAC;YACJ,OAAO,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,KAAK,CAAC;YACJ,OAAO,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,UAA+B,CAAC,CAAC;QAC3E,KAAK,CAAC;YACJ,OAAO,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACtC,KAAK,CAAC;YACJ,OAAO,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9B,KAAK,CAAC;YACJ,OAAO,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAChC;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,MAAM,aAAa;IACjB,YACmB,UAAiB,EACjB,UAA6B,EAC7B,GAAQ,EACR,QAAuB,EACvB,aAA8C,EAC9C,MAAiB;QALjB,eAAU,GAAV,UAAU,CAAO;QACjB,eAAU,GAAV,UAAU,CAAmB;QAC7B,QAAG,GAAH,GAAG,CAAK;QACR,aAAQ,GAAR,QAAQ,CAAe;QACvB,kBAAa,GAAb,aAAa,CAAiC;QAC9C,WAAM,GAAN,MAAM,CAAW;QAkK5B,sBAAiB,GACvB,EAAE,CAAC;QACG,2BAAsB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC3C,YAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAC5B,cAAS,GAAc,EAAE,CAAC;QAC1B,mBAAc,GAAa,EAAE,CAAC;IAtKnC,CAAC;IAEJ,cAAc,CAAC,WAA0C;QACvD,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,IAAI,SAA4B,CAAC;QACjC,IAAI,UAAiB,CAAC;QACtB,IAAI,OAAO,GAAsB,EAAE,CAAC;QACpC,IAAI,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;QAElC,4EAA4E;QAC5E,aAAa;QACb,MAAM,kBAAkB,GACtB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3D,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;YACzB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC;gBAC7B,UAAU,GAAG,SAAS,CAAC;gBACvB,YAAY,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;gBAChE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,WAAW,GAAG,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;gBAC/D,CAAC;gBACD,OAAO,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC/B,MAAM;YACR,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC;gBAC7B,UAAU,GAAG,SAAS,CAAC;gBACvB,MAAM;YACR,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC;gBACtC,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBAC/B,YAAY,GAAG,UAAU,CAAC;oBAC1B,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACN,YAAY,GAAG,UAAU,CAAC;oBAC1B,OAAO,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;QAED,8DAA8D;QAC9D,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;QAChC,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE,4CAA4C;aACtD,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC5B,CAAC;QAED,4DAA4D;QAC5D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;YAC5B,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtC,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;oBAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;wBACf,KAAK,EAAE,SAAS;wBAChB,OAAO,EAAE,yBAAyB,IAAI,GAAG;qBAC1C,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBACf,KAAK,EAAE,SAAS;oBAChB,OAAO,EAAE,yBAAyB,IAAI,GAAG;iBAC1C,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;QAC7C,CAAC;QAED,uDAAuD;QACvD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBACf,KAAK,EAAE,UAAU;oBACjB,OAAO,EAAE,0BAA0B,MAAM,EAAE;iBAC5C,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;gBAC1B,OAAO;YACT,CAAC;iBAAM,IAAI,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;gBACtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBACf,KAAK,EAAE,UAAU;oBACjB,OAAO,EAAE,wCAAwC;iBAClD,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QAED,sCAAsC;QACtC,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,KAAK;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC;QAE9C,kEAAkE;QAClE,yEAAyE;QACzE,iBAAiB;QACjB,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxB,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBACf,KAAK,EAAE,IAAI,CAAC,UAAU;oBACtB,OAAO,EAAE,wBAAwB,CAAC,EAAE;iBACrC,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAChC,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAC7C,CAAC;QACF,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CACvC,CAAC,CAAC,EAAsB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAC/C,CAAC;QAEF,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAC5B,IAAI,GAAG,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACjE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,GAAG,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAC1C,CAAC;QAED,MAAM,QAAQ,GACZ,QAAQ,IAAI,MAAM,CAAC,MAAM;YACvB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC;YAC9C,CAAC,CAAC,CAAC,CAAC;QACR,MAAM,0BAA0B,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpE,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACnD,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,aAAa;YAC5B,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;YAC1C,YAAY,EAAE,IAAI,CAAC,QAAQ;YAC3B,QAAQ,EAAE,QAAQ;YAClB,0BAA0B,EAAE,0BAA0B;SACvD,CAAC;IACJ,CAAC;CAQF;AAkBD,SAAS,WAAW,CAClB,EAAiB,EACjB,UAA6B,EAC7B,GAAQ,EACR,aAAmC;IAEnC,uBAAuB;IACvB,IAAI,SAAgB,CAAC;IACrB,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,EAAE,YAAY,EAAE,GAAG,aAAa,CAAC;QACvC,IAAI,eAAe,GAAG,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACnE,IAAI,aAAa,CAAC,OAAO,KAAK,gBAAgB,EAAE,CAAC;YAC/C,eAAe,IAAI,SAAS,CAAC;QAC/B,CAAC;aAAM,IAAI,aAAa,CAAC,OAAO,KAAK,iBAAiB,EAAE,CAAC;YACvD,eAAe,IAAI,UAAU,CAAC;QAChC,CAAC;QACD,SAAS,GAAG;YACV,GAAG,YAAY;YACf,IAAI,EAAE,eAAe;SACtB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,iBAAiB;QACjB,MAAM,SAAS,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC3D,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QAC1D,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,EAAE,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;QACvB,EAAE,CAAC,IAAI,EAAE,CAAC;QACV,QAAQ,GAAG,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAChC,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,YAAY,GAAG,iBAAiB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACvD,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,MAAM,OAAO,GAAG,IAAI,aAAa,CAC/B,SAAS,EACT,UAAU,EACV,GAAG,EACH,QAAQ,EACR,aAAa,EACb,EAAE,CAAC,MAAM,CACV,CAAC;IACF,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACpC,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;YAC7D,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;AACzB,CAAC;AAED,SAAS,UAAU,CACjB,EAAiB,EACjB,IAAW,EACX,GAAQ,EACR,UAA6B;IAE7B,gDAAgD;IAChD,IAAI,IAAgC,CAAC;IACrC,IAAI,YAAuC,CAAC;IAC5C,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;IAChB,MAAM,SAAS,GAAG,GAAiB,EAAE;QACnC,OAAO;YACL,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,GAAG;YACR,cAAc,EAAE,IAAI;YACpB,sCAAsC;YACtC,IAAI,EAAE,SAAS;YACf,sCAAsC;YACtC,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE,YAAY;SAC3B,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,WAAW,GAAG,IAAI,KAAK,SAAS,IAAI,MAAM,GAAG,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,IAAI,KAAK,SAAS,IAAI,UAAU,KAAK,MAAM,CAAC;QAC/D,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC;QAC/C,MAAM,QAAQ,GAAG;YACf,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;YAC/B,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;YACjC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;SAC/B,CAAC;QACF,MAAM,KAAK,GAAG,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC1C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,CAAC,CAAC,CAAC,CAAC;gBACP,MAAM,aAAa,GAAwB;oBACzC,OAAO,EAAE,OAAO;oBAChB,YAAY,EAAE,IAAI;iBACnB,CAAC;gBACF,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;gBACtE,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC;gBAC/B,YAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC;gBAC/C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,CAAC,CAAC,CAAC,CAAC;gBACP,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;gBACzB,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;oBACf,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,CAAC,CAAC,CAAC,CAAC;gBACP,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC;gBACtE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,UAAU,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACrD,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;wBACb,KAAK,EAAE,IAAI;wBACX,OAAO,EAAE,oCAAoC;qBAC9C,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,SAAS,EAAE,CAAC;YACrB,CAAC;YACD,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACR,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,SAAS,EAAE,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAY;IAC9D,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,SAAS;IACT,SAAS;IACT,WAAW;IACX,QAAQ;IACR,OAAO;CACR,CAAC,CAAC;AAEH,SAAS,uBAAuB,CAC9B,EAAiB,EACjB,aAAkC;IAKlC,IAAI,EAAE,CAAC,OAAO,KAAK,QAAQ,IAAI,EAAE,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,EAAE,CAAC,OAA4B,CAAC;QACnD,EAAE,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,YAAY,GAAG,WAAW,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAoC,YAAY;YACxD,CAAC,CAAC;gBACE,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;gBAC9B,QAAQ,EAAE,KAAK;aAChB;YACH,CAAC,CAAC,SAAS,CAAC;QACd,OAAO;YACL,IAAI,EAAE,IAAI;YACV,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;SACtD,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO;YACL,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;YACnB,YAAY,EAAE,SAAS;SACxB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EAAiB;IAClC,MAAM,KAAK,GAAG,EAAE,CAAC,cAAc,CAAC;QAC9B,MAAM,CAAC,GAAG;QACV,MAAM,CAAC,mBAAmB;QAC1B,MAAM,CAAC,GAAG;KACX,CAAC,CAAC;IACH,IAAI,KAAiC,CAAC;IACtC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,CAAC,CAAC,CAAC,CAAC;YACP,uBAAuB;YACvB,KAAK,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;YAC3B,MAAM;QACR,CAAC;QACD,KAAK,CAAC;YACJ,iBAAiB;YACjB,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,KAAK,GAAG;oBACN,IAAI,EAAE,WAAW;oBACjB,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,IAAiB;iBACzC,CAAC;gBACF,MAAM;YACR,CAAC;QACH,iBAAiB;QACjB,KAAK,CAAC,CAAC,CAAC,CAAC;YACP,OAAO;YACP,KAAK,GAAG,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM;QACR,CAAC;QACD;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,EAAE,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;QACvB,EAAE,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,EAAiB;IACvC,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IAC3B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,GAAG,GAA0B,SAAS,CAAC;IAC3C,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;QAClD,MAAM,KAAK,GAAG,EAAE,CAAC,cAAc,CAAC;YAC9B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;YAC9B,MAAM,CAAC,GAAG;SACX,CAAC,CAAC;QACH,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,CAAC,CAAC,CAAC,CAAC;gBACP,MAAM;gBACN,GAAG,GAAG,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBACtC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;oBACjB,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,CAAC;gBACJ,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YACjD;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CACrB,EAAiB,EACjB,SAAgB;IAEhB,MAAM,UAAU,GAAY,EAAE,CAAC;IAC/B,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACvD,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,EAAE,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;YACvB,EAAE,CAAC,IAAI,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,MAAM;QACR,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrC,IAAI,EAAE,IAAI;KACX,CAAC,CAAC,CAAC;IACJ,OAAO;QACL,SAAS,EAAE,SAAS;QACpB,IAAI;QACJ,2CAA2C;QAC3C,wDAAwD;QACxD,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE;KAClD,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,EAAiB,EACjB,SAAgB;IAEhB,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC;IACxC,MAAM,SAAS,GAAY,EAAE,CAAC;IAC9B,IAAI,SAAS,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACvD,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,EAAE,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;QAC1B,EAAE,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACvD,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACtE,CAAC;AAED,SAAS,WAAW,CAAC,EAAiB,EAAE,iBAAuB;IAC7D,IAAI,iBAAiB,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;QACrE,EAAE,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,MAAM,KAAK,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACzD,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC;IAC7B,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,aAAa,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC;IACf,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,2BAA2B;SACrC,CAAC,CAAC;QACH,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;AACH,CAAC;AAED,oCAAoC;AACpC,0DAA0D;AAC1D,SAAS,YAAY,CAAC,EAAiB,EAAE,YAAmB;IAC1D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,oBAAoB;IACpB,2CAA2C;IAC3C,0CAA0C;IAC1C,kDAAkD;IAClD,iEAAiE;IACjE,8CAA8C;IAC9C,IAAI,MAAM,GAAiC,GAAG,CAAC;IAC/C,IAAI,UAA8B,CAAC;IACnC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;QAClB,MAAM,UAAU,GAAG,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,IAAI,CAAC;QACvE,MAAM,QAAQ,GAA0C;YACtD,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;YACrD,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;gBACvD,CAAC,CAAC,qBAAqB;gBACvB,CAAC,CAAC,IAAI;YACR,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;YAC9B,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;SACrC,CAAC;QACF,MAAM,KAAK,GAAG,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC1C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,CAAC,CAAC,CAAC,CAAC;gBACP,WAAW;gBACX,MAAM,GAAG,GAAG,CAAC;gBACb,MAAM;YACR,CAAC;YACD,KAAK,CAAC,CAAC,CAAC,CAAC;gBACP,YAAY;gBACZ,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;gBACjC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC7B,MAAM,GAAG,IAAI,CAAC;oBACd,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,GAAG,CAAC;oBACb,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;wBACzB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;4BACb,KAAK,EAAE,YAAY;4BACnB,OAAO,EAAE,8CAA8C;yBACxD,CAAC,CAAC;oBACL,CAAC;oBACD,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;wBAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBACD,UAAU,GAAG,SAAS,CAAC;gBACzB,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,CAAC,CAAC,CAAC,CAAC;gBACP,eAAe;gBACf,MAAM,IAAI,CAAC;YACb,CAAC;YACD,KAAK,CAAC,CAAC,CAAC,CAAC;gBACP,SAAS;gBACT,MAAM,GAAG,GAAG,CAAC;gBACb,UAAU,GAAG,OAAO,CAAC,GAAG,EAAG,CAAC;gBAC5B,MAAM;YACR,CAAC;YACD,KAAK,CAAC,CAAC;gBACL,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,IAAI,CAAC;gBACb,CAAC;qBAAM,CAAC;oBACN,OAAO,IAAI,CAAC;gBACd,CAAC;QACL,CAAC;IACH,CAAC;IACD,8CAA8C;IAC9C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;gBACb,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE,0BAA0B,MAAM,EAAE;aAC5C,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS;QACf,YAAY,EAAE,YAAY;QAC1B,OAAO,EAAE,OAAO;KACjB,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,EAAiB,EACjB,WAAkB;IAElB,MAAM,UAAU,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACtE,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,KAAK,CAAC;YACJ,OAAO,aAAa,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QACxC,KAAK,CAAC;YACJ,OAAO,qBAAqB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAChD,KAAK,CAAC;YACJ,wEAAwE;YACxE,OAAO,qBAAqB,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAClE;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CACpB,EAAiB,EACjB,WAAkB;IAElB,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,MAAM,UAAU,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5D,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,MAAM,eAAe,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACrE,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAU;QACnB,KAAK,EAAE,WAAW,CAAC,QAAQ;QAC3B,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM;KAClD,CAAC;IACF,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC;IACzC,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,UAAU,CAAC,KAAK;QACtB,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,UAAU;KACvB,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,EAAiB,EACjB,WAAkB;AAClB,8EAA8E;AAC9E,SAAiB;IAEjB,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnD,IAAI,SAAS,EAAE,CAAC;QACd,aAAa;QACb,OAAO,EAAE,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;YAC1B,EAAE,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,SAAS,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC3D,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,iCAAiC;QACjC,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,KAAK,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1D,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACrB,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM;YACR,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACrB,MAAM;YACR,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,MAAM,eAAe,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACrE,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAU;QACnB,KAAK,EAAE,WAAW,CAAC,QAAQ;QAC3B,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM;KAClD,CAAC;IACF,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC;IACzC,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,WAAW;QACxB,aAAa,EAAE,aAAa;QAC5B,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,UAAU;KACvB,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,EAAiB,EACjB,GAAQ;IAER,MAAM,SAAS,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC3D,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC;IAC7B,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,yBAAyB,GAAG,uBAAuB,CAAC,EAAE,EAAE;QAC5D,OAAO,EAAE,gBAAgB;QACzB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,yBAAyB,CAAC,IAAI,CAAC;IACnD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,qBAAqB,EAAE,WAAW;YAClC,mBAAmB,EAAE,yBAAyB,CAAC,YAAY;YAC3D,sBAAsB,EAAE,SAAS;YACjC,oBAAoB,EAAE,SAAS;SAChC,CAAC;IACJ,CAAC;IACD,MAAM,0BAA0B,GAAG,uBAAuB,CAAC,EAAE,EAAE;QAC7D,OAAO,EAAE,iBAAiB;QAC1B,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,0BAA0B,CAAC,IAAI,CAAC;IACrD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,qBAAqB,EAAE,WAAW;YAClC,mBAAmB,EAAE,yBAAyB,CAAC,YAAY;YAC3D,sBAAsB,EAAE,YAAY;YACpC,oBAAoB,EAAE,0BAA0B,CAAC,YAAY;SAC9D,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAEzB,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,SAAS,CAAC,KAAK;QACrB,GAAG,EAAE,GAAG;QACR,qBAAqB,EAAE,WAAW;QAClC,sBAAsB,EAAE,YAAY;QACpC,sCAAsC;QACtC,WAAW,EAAE,SAAS;QACtB,sCAAsC;QACtC,YAAY,EAAE,SAAS;QACvB,MAAM,EAAE,MAAM;QACd,mBAAmB,EAAE,yBAAyB,CAAC,YAAY;QAC3D,oBAAoB,EAAE,0BAA0B,CAAC,YAAY;KAC9D,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,EAAiB,EACjB,GAAQ;IAER,MAAM,SAAS,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC3D,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAChE,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO;YACL,IAAI,EAAE,iBAAiB;YACvB,cAAc,EAAE,IAAI;SACrB,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,SAAS,CAAC,KAAK;QACrB,GAAG,EAAE,GAAG;QACR,cAAc,EAAE,IAAI;QACpB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,KAAK;QACZ,gBAAgB,EAAE,SAAS;KAC5B,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,EAAiB;IACnC,MAAM,QAAQ,GAAG;QACf,MAAM,CAAC,GAAG;QACV,MAAM,CAAC,IAAI;QACX,MAAM,CAAC,GAAG;QACV,MAAM,CAAC,OAAO;QACd,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,eAAe;QACtB,MAAM,CAAC,uBAAuB;KAC/B,CAAC;IACF,MAAM,KAAK,GAAG,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,CAAC,CAAC;QACP,KAAK,CAAC,CAAC,CAAC,CAAC;YACP,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;YACjC,OAAO,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC;QACD,KAAK,CAAC,CAAC,CAAC,CAAC;YACP,MAAM,KAAK,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;YAClC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK;aACb,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,CAAC;QACP,KAAK,CAAC,CAAC;QACP,KAAK,CAAC,CAAC;QACP,KAAK,CAAC,CAAC;QACP,KAAK,CAAC;YACJ,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB,CAAC;QACJ;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,WAAkB,EAClB,EAAiB,EACjB,OAAgB;IAEhB,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1C,MAAM,OAAO,GAAwC,EAAE,CAAC;IACxD,MAAM,WAAW,GAAY,EAAE,CAAC;IAChC,MAAM,eAAe,GAAG,GAAgB,EAAE,CAAC,CAAC;QAC1C,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,WAAW;QACxB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IACH,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,EAAE,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;YAChC,EAAE,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,eAAe,EAAE,CAAC;QAC3B,CAAC;QACD,MAAM,cAAc,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAChE,IAAI,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC;QAC5C,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC;QAC5C,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACtC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACjC,SAAS;QACX,CAAC;QACD,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACzB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;gBACb,KAAK,EAAE,cAAc,CAAC,KAAK;gBAC3B,OAAO,EAAE,iBAAiB;aAC3B,CAAC,CAAC;QACL,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CAAC,SAAS,CAAC,GAAG;YACnB,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,KAAK;SACb,CAAC;QACF,MAAM,QAAQ,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;QACxD,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACzC,OAAO,eAAe,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,EAAiB;IACxC,IAAI,EAAE,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;QACvB,EAAE,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,KAAK,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;YACvB,EAAE,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAAiB;IACnC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;IAC5B,MAAM,WAAW,GAAY,EAAE,CAAC;IAChC,OAAO,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;QAClC,EAAE,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,SAAS,CACd,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,CACvE,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAQ,MAAM,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAe,cAAc;CAG5B;AAED,MAAM,iBAAkB,SAAQ,cAAc;IACnC,OAAO,CAAC,KAAa;QAC5B,0CAA0C;QAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,KAAK,CAAC;IAC9C,CAAC;IAEQ,IAAI;QACX,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAED,MAAM,mBAAmB,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAEpD,MAAM,kBAAmB,SAAQ,cAAc;IACpC,OAAO,CAAC,KAAa;QAC5B,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAEQ,IAAI;QACX,OAAO,kBAAkB,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,qBAAqB,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAEvD,MAAM,aAAc,SAAQ,cAAc;IAC/B,OAAO,CAAC,KAAa;QAC5B,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAEQ,IAAI;QACX,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED,MAAM,eAAe,GAAG,IAAI,aAAa,EAAE,CAAC;AAE5C,MAAM,oBAAqB,SAAQ,cAAc;IACtC,OAAO,CAAC,KAAa;QAC5B,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEQ,IAAI;QACX,OAAO,gBAAgB,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,uBAAuB,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAO3D,MAAM,aAAa;IAGjB,YACW,YAA0B,EAC1B,IAA0B,EAC1B,MAAiB;QAFjB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,SAAI,GAAJ,IAAI,CAAsB;QAC1B,WAAM,GAAN,MAAM,CAAW;QAsFpB,eAAU,GAAG,CAAC,CAAC;QApFrB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,gBAAgB;IAChB,4EAA4E;IAC5E,sBAAsB;IACtB,0CAA0C;IAC1C,EAAE;IACF,2EAA2E;IAC3E,2EAA2E;IAC3E,cAAc,CACZ,QAAuD;QAEvD,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAE,CAAC;QAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,4CAA4C;aACtD,CAAC,CAAC;YACH,EAAE,IAAI,CAAC,UAAU,CAAC;YAClB,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAE,CAAC;QACxC,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACzC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACf,SAAS;YACX,CAAC;YACD,MAAM,KAAK,GACT,CAAC,YAAY,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;YACzE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,SAAS;YACX,CAAC;YACD,EAAE,IAAI,CAAC,UAAU,CAAC;YAClB,OAAO;gBACL,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,KAAK;aACb,CAAC;QACJ,CAAC;QAED,+BAA+B;QAC/B,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YACzC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACf,SAAS;YACX,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,WAAW,GACf,aAAa,CAAC,MAAM,KAAK,CAAC;YACxB,CAAC,CAAC,aAAa,CAAC,CAAC,CAAE;YACnB,CAAC,CAAC,WAAW,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAE5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAC;QAEH,OAAO;YACL,IAAI,EAAE,CAAC,CAAC;YACR,KAAK,EAAE,KAAK;SACb,CAAC;IACJ,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAE,CAAC;IACvC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAE,CAAC,IAAI,CAAC;IAChD,CAAC;IAED,IAAI;QACF,EAAE,IAAI,CAAC,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CAGF;AAED,SAAS,oBAAoB,CAC3B,YAAoC;IAEpC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,CACd,YAAoC,EACpC,SAA4B,EACtB,EAAE;QACR,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;YAClC,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS;YACvC,MAAM,sBAAsB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAC/C,MAAM,cAAc,GAA0B;gBAC5C,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,MAAM;gBACd,eAAe,EAAE,sBAAsB;gBACvC,UAAU,EAAE,UAAU;aACvB,CAAC;YACF,uBAAuB;YACvB,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC;IACF,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAC1B,YAAoC,EACpC,YAA0B,EAC1B,MAAiB;IAEjB,IAAI,KAAK,GAGsB,gBAAgB,CAAC;IAChD,IAAI,aAAiC,CAAC;IACtC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACzE,IAAI,KAAK,KAAK,gBAAgB,EAAE,CAAC;gBAC/B,KAAK,GAAG,yBAAyB,CAAC;gBAClC,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;YAC1C,CAAC;iBAAM,IAAI,KAAK,KAAK,wBAAwB,EAAE,CAAC;gBAC9C,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,WAAW,CAAC,WAAW;oBAC9B,OAAO,EAAE,yDAAyD;iBACnE,CAAC,CAAC;gBACH,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;YACD,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,gBAAgB;YAChB,KAAK,GAAG,wBAAwB,CAAC;QACnC,CAAC;IACH,CAAC;IACD,IAAI,aAAa,KAAK,SAAS,IAAI,QAAQ,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAU;QACnB,KAAK,EAAE,aAAa;QACpB,GAAG,EAAE,WAAW;KACjB,CAAC;IACF,oCAAoC;IACpC,CAAC;QACC,IAAI,MAAM,GAAG,YAAY,CAAC,kBAAkB,CAAC;QAC7C,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,MAAM,GAAG,MAAM,CAAC,KAAK,CACnB,CAAC,EACD,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,CACjD,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,0CAA0C;iBACpD,CAAC,CAAC;gBACH,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACjC,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACrD,OAAO,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,YAAY,CAAC,CAAS;IAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrC,CAAC;AAED,SAAS,cAAc,CAAC,CAAS;IAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC5D,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,iBAAiB,CACxB,SAAgB,EAChB,gBAAwB,EACxB,MAAiB;IAEjB,IAAI,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,8BAA8B;SACxC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,mBAAmB;aAC7B,CAAC,CAAC;YACH,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,qEAAqE;QACrE,2BAA2B;QAC3B,UAAU,GAAG,cAAc,CACzB,YAAY,CAAC,gBAAgB,CAAC,GAAG,GAAG,GAAG,UAAU,CAClD,CAAC;IACJ,CAAC;SAAM,IAAI,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3E,MAAM,aAAa,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QAC7D,UAAU,GAAG,aAAa,GAAG,UAAU,CAAC;IAC1C,CAAC;IACD,wBAAwB;IACxB,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IACxC,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,kDAAkD;SAC5D,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function initializeProject(rootDir: string): void;
2
+ //# sourceMappingURL=project_initializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project_initializer.d.ts","sourceRoot":"","sources":["../src/project_initializer.ts"],"names":[],"mappings":"AAIA,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAiDvD"}
@@ -0,0 +1,207 @@
1
+ import * as FileSystem from "fs";
2
+ import * as Paths from "path";
3
+ import { rewritePathForRendering } from "./io.js";
4
+ export function initializeProject(rootDir) {
5
+ const skirYmlPath = Paths.join(rootDir, "skir.yml");
6
+ // Check if skir.yml already exists
7
+ if (FileSystem.existsSync(skirYmlPath)) {
8
+ console.log("A skir.yml file already exists in this directory. Skipping project initialization.");
9
+ return;
10
+ }
11
+ // Create skir.yml file
12
+ FileSystem.writeFileSync(skirYmlPath, SKIR_YML_CONTENT, "utf-8");
13
+ // Check if skir-src directory exists
14
+ const skirSrcDir = Paths.join(rootDir, "skir-src");
15
+ if (!FileSystem.existsSync(skirSrcDir)) {
16
+ // Create skir-src directory
17
+ FileSystem.mkdirSync(skirSrcDir, { recursive: true });
18
+ // Create hello_world.skir file
19
+ const helloWorldPath = Paths.join(skirSrcDir, "hello_world.skir");
20
+ FileSystem.writeFileSync(helloWorldPath, HELLO_WORLD_SKIR_CONTENT, "utf-8");
21
+ }
22
+ // Update .gitignore if it exists
23
+ const gitIgnorePath = Paths.join(rootDir, ".gitignore");
24
+ if (FileSystem.existsSync(gitIgnorePath)) {
25
+ const content = FileSystem.readFileSync(gitIgnorePath, "utf-8");
26
+ const lines = content.split(/\r?\n/);
27
+ const toAdd = [];
28
+ for (const dirName of ["skirout", "skir-external"]) {
29
+ const hasDir = lines.some((line) => line.trim().replace(/\/$/, "") === dirName);
30
+ if (!hasDir) {
31
+ toAdd.push(`${dirName}/`);
32
+ }
33
+ }
34
+ if (toAdd.length > 0) {
35
+ const append = `\n${toAdd.join("\n")}\n`;
36
+ FileSystem.appendFileSync(gitIgnorePath, append, "utf-8");
37
+ }
38
+ }
39
+ console.log(`Done. Please edit: ${rewritePathForRendering(skirYmlPath)}`);
40
+ console.log("To generate code, run: npx skir gen [--watch]");
41
+ }
42
+ const SKIR_YML_CONTENT = `# Configuration file for Skir code generator
43
+ #
44
+ # Documentation: https://skir.build/
45
+ #
46
+ # Cheat sheet:
47
+ # npx skir gen Generate code from .skir files
48
+ # npx skir gen --watch Watch for changes and regenerate automatically
49
+ # npx skir format Format all .skir files
50
+ # npx skir snapshot Take a snapshot of the source directory, verify no
51
+ # breaking changes since last snapshot
52
+
53
+ # Uncomment and configure the generators for your target language(s).
54
+ generators:
55
+ # --------------------------------------------------------------------------
56
+ # C++ code generator
57
+ # Home: https://github.com/gepheum/skir-cc-gen
58
+ # To install runtime dependencies, follow instructions in repository README
59
+ # --------------------------------------------------------------------------
60
+ - mod: skir-cc-gen
61
+ outDir: ./skirout
62
+ config:
63
+ # Set to true if you use GoogleTest
64
+ writeGoogleTestHeaders: false
65
+
66
+ # # --------------------------------------------------------------------------
67
+ # # Dart code generator
68
+ # # Home: https://github.com/gepheum/skir-dart-gen
69
+ # # To install runtime dependencies: dart pub add skir_client
70
+ # # --------------------------------------------------------------------------
71
+ # - mod: skir-dart-gen
72
+ # outDir: ./lib/skirout
73
+ # config: {}
74
+
75
+ # # --------------------------------------------------------------------------
76
+ # # Gleam code generator
77
+ # # Home: https://github.com/gepheum/skir-gleam-gen
78
+ # # To install runtime dependencies: gleam add skir_client
79
+ # # --------------------------------------------------------------------------
80
+ # - mod: skir-gleam-gen
81
+ # outDir: ./src/skirout
82
+ # config: {}
83
+
84
+ # # --------------------------------------------------------------------------
85
+ # # Go code generator
86
+ # # Home: https://github.com/gepheum/skir-go-gen
87
+ # # To install runtime dependencies: go get github.com/gepheum/skir-go-client
88
+ # # --------------------------------------------------------------------------
89
+ # - mod: skir-go-gen
90
+ # outDir: ./skirout
91
+ # config:
92
+ # # Must match the module name declared in your go.mod file.
93
+ # goModuleName: "github.com/my-org/my-project"
94
+
95
+ # # --------------------------------------------------------------------------
96
+ # # Java code generator
97
+ # # Home: https://github.com/gepheum/skir-java-gen
98
+ # # Add the following line to your build.gradle dependencies:
99
+ # # implementation("build.skir:skir-client:latest.release")
100
+ # # --------------------------------------------------------------------------
101
+ # - mod: skir-java-gen
102
+ # outDir: ./src/main/java/skirout
103
+ # config: {}
104
+ # # Alternatively:
105
+ # # outDir: ./src/main/java/my/project/skirout
106
+ # # config:
107
+ # # packagePrefix: my.project.
108
+
109
+ # # --------------------------------------------------------------------------
110
+ # # Kotlin code generator
111
+ # # Home: https://github.com/gepheum/skir-kotlin-gen
112
+ # # Add the following line to your build.gradle dependencies:
113
+ # # implementation("build.skir:skir-client:latest.release")
114
+ # # --------------------------------------------------------------------------
115
+ # - mod: skir-kotlin-gen
116
+ # outDir: ./src/main/kotlin/skirout
117
+ # config: {}
118
+ # # Alternatively:
119
+ # # outDir: ./src/main/kotlin/my/project/skirout
120
+ # # config:
121
+ # # packagePrefix: my.project.
122
+
123
+ # # --------------------------------------------------------------------------
124
+ # # Python code generator
125
+ # # Home: https://github.com/gepheum/skir-python-gen
126
+ # # To install runtime dependencies: pip install skir-client
127
+ # # --------------------------------------------------------------------------
128
+ # - mod: skir-python-gen
129
+ # outDir: ./skirout
130
+ # config: {}
131
+ # # Alternatively:
132
+ # # outDir: ./my/project/skirout
133
+ # # config:
134
+ # # packagePrefix: my.project.
135
+
136
+ # # --------------------------------------------------------------------------
137
+ # # Swift code generator
138
+ # # Home: https://github.com/gepheum/skir-swift-gen
139
+ # # To install runtime dependencies:
140
+ # # swift package add-dependency \
141
+ # # https://github.com/gepheum/skir-swift-client --branch main
142
+ # # --------------------------------------------------------------------------
143
+ # - mod: skir-swift-gen
144
+ # outDir: ./Sources/skirout
145
+ # config:
146
+ # # Whether to generate public declarations.
147
+ # # If false, declarations are internal.
148
+ # public: false
149
+
150
+ # # --------------------------------------------------------------------------
151
+ # # Rust code generator
152
+ # # Home: https://github.com/gepheum/skir-rust-gen
153
+ # # Complete these 3 steps:
154
+ # # (1) Install runtime dependencies: cargo add skir-client
155
+ # # (2) In ./src/lib.rs, add this line: 'pub mod skirout;'
156
+ # # (3) Create a new ./src/skirout.rs file with this content: 'pub mod base;'
157
+ # # --------------------------------------------------------------------------
158
+ # - mod: skir-rust-gen
159
+ # outDir: ./src/skirout
160
+ # config: {}
161
+
162
+ # # --------------------------------------------------------------------------
163
+ # # TypeScript/JavaScript code generator
164
+ # # Home: https://github.com/gepheum/skir-typescript-gen
165
+ # # To install runtime dependencies: npm i skir-client
166
+ # # --------------------------------------------------------------------------
167
+ # - mod: skir-typescript-gen
168
+ # outDir: ./skirout
169
+ # config:
170
+ # # Use ".js" for ES modules, "" for CommonJS
171
+ # importPathExtension: ".js"
172
+
173
+ # # --------------------------------------------------------------------------
174
+ # # Zig code generator
175
+ # # Home: https://github.com/gepheum/skir-zig-gen
176
+ # # To install runtime dependencies: zig fetch --save https://github.com/gepheum/skir-zig-client/archive/refs/tags/\${latest_tag}.tar.gz
177
+ # # --------------------------------------------------------------------------
178
+ # - mod: skir-zig-gen
179
+ # outDir: ./src/skirout
180
+ # config: {}
181
+
182
+ # # --------------------------------------------------------------------------
183
+ # # External Skir dependencies hosted on GitHub
184
+ # # To use an external repository, specify the GitHub repository identifier
185
+ # # in the format "@owner/repository-name" and the release tag version.
186
+ # # --------------------------------------------------------------------------
187
+ # dependencies:
188
+ # # Add a dependency to:
189
+ # # https://github.com/gepheum/skir-fantasy-game-example/tree/v1.0.0
190
+ # "@gepheum/skir-fantasy-game-example": v1.0.0
191
+
192
+ # # --------------------------------------------------------------------------
193
+ # # GitHub Personal Access Token (required for private dependencies)
194
+ # # Set this to the name of an environment variable containing your GitHub
195
+ # # token. The token is used to authenticate when downloading dependencies.
196
+ # # --------------------------------------------------------------------------
197
+ # githubTokenEnvVar: GITHUB_TOKEN
198
+ `;
199
+ const HELLO_WORLD_SKIR_CONTENT = `/// A point in 2D space.
200
+ struct Point {
201
+ /// x-coordinate
202
+ x: int32;
203
+ /// y-coordinate
204
+ y: int32;
205
+ }
206
+ `;
207
+ //# sourceMappingURL=project_initializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project_initializer.js","sourceRoot":"","sources":["../src/project_initializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,IAAI,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAEpD,mCAAmC;IACnC,IAAI,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CACT,oFAAoF,CACrF,CAAC;QACF,OAAO;IACT,CAAC;IAED,uBAAuB;IACvB,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAEjE,qCAAqC;IACrC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACvC,4BAA4B;QAC5B,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtD,+BAA+B;QAC/B,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAClE,UAAU,CAAC,aAAa,CAAC,cAAc,EAAE,wBAAwB,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED,iCAAiC;IACjC,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACxD,IAAI,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,MAAM,OAAO,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CACvB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,OAAO,CACrD,CAAC;YACF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACzC,UAAU,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,sBAAsB,uBAAuB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4JxB,CAAC;AAEF,MAAM,wBAAwB,GAAG;;;;;;;CAOhC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { ModuleSet } from "./module_set.js";
2
+ export declare function takeSnapshot(args: {
3
+ rootDir: string;
4
+ srcDir: string;
5
+ dependencies: ModuleSet;
6
+ subcommand: "ci" | "dry-run" | undefined;
7
+ }): Promise<boolean>;
8
+ export interface CorruptedError {
9
+ kind: "corrupted";
10
+ error: any;
11
+ }
12
+ export declare function snapshotFileContentToModuleSet(fileContent: string): ModuleSet | CorruptedError;
13
+ export declare function viewSnapshot(args: {
14
+ rootDir: string;
15
+ }): Promise<void>;
16
+ //# sourceMappingURL=snapshotter.d.ts.map
@@ -0,0 +1,263 @@
1
+ import { readFile, writeFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { checkCompatibility } from "./compatibility_checker.js";
4
+ import { formatError, makeGreen, makeOrange, makeRed, renderBreakingChanges, renderErrors, } from "./error_renderer.js";
5
+ import { rewritePathForRendering } from "./io.js";
6
+ import { collectModules } from "./module_collector.js";
7
+ import { ModuleSet } from "./module_set.js";
8
+ export async function takeSnapshot(args) {
9
+ const newModuleSet = await collectModules(args.srcDir, args.dependencies);
10
+ if (newModuleSet.errors.length) {
11
+ renderErrors(newModuleSet.errors);
12
+ return false;
13
+ }
14
+ const snapshotPath = join(args.rootDir, "skir-snapshot.json");
15
+ const oldModuleSet = await readLastSnapshot(snapshotPath);
16
+ if (!(oldModuleSet instanceof ModuleSet)) {
17
+ console.error(makeRed(`Corrupted snapshot file: ${rewritePathForRendering(snapshotPath)}`));
18
+ console.error(`Error: ${oldModuleSet.error.toString()}`);
19
+ console.log("If the snapshot file cannot be restored to a valid state, delete it and run again. " +
20
+ "Breaking changes from recent commits will not be detected, but a valid snapshot will be created for future comparisons.");
21
+ return false;
22
+ }
23
+ const breakingChanges = checkCompatibility({
24
+ before: oldModuleSet,
25
+ after: newModuleSet,
26
+ });
27
+ if (breakingChanges.length) {
28
+ renderBreakingChanges(breakingChanges, {
29
+ before: oldModuleSet,
30
+ after: newModuleSet,
31
+ });
32
+ return false;
33
+ }
34
+ const now = new Date();
35
+ const newSnapshot = makeSnapshot(newModuleSet, now);
36
+ if (sameModules(newSnapshot, makeSnapshot(oldModuleSet, now))) {
37
+ console.log("No changes detected since last snapshot.");
38
+ return true;
39
+ }
40
+ if (args.subcommand === "ci") {
41
+ console.error(makeRed("Modules have changed since the last snapshot."));
42
+ console.log("Run 'npx skir snapshot' to take a new snapshot.");
43
+ return false;
44
+ }
45
+ else if (args.subcommand === "dry-run") {
46
+ console.log(makeGreen("Changes detected since last snapshot."));
47
+ console.log("No breaking changes found.");
48
+ return true;
49
+ }
50
+ await writeFile(snapshotPath, JSON.stringify(newSnapshot, null, 2), "utf-8");
51
+ console.log("Snapshot taken. No breaking changes detected.");
52
+ const trackedRecordCount = newSnapshot.trackedRecordIds.length;
53
+ const untrackedRecordCount = newSnapshot.untrackedRecordIds.length;
54
+ const formatCount = (n, what) => {
55
+ return `${n} ${what}${n === 1 ? "" : "s"}`;
56
+ };
57
+ console.log([
58
+ formatCount(trackedRecordCount, "tracked record"),
59
+ ", ",
60
+ formatCount(untrackedRecordCount, "untracked record"),
61
+ " found in new snapshot.",
62
+ ].join(""));
63
+ console.log("See them in " + rewritePathForRendering(snapshotPath));
64
+ if (trackedRecordCount === 0) {
65
+ console.log(makeOrange("Warning: no tracked records found."));
66
+ console.log("Breaking changes cannot be detected without tracking records.");
67
+ console.log("To track a record and its dependencies, give it a stable identifier, e.g.:");
68
+ console.log(" struct MyStruct(56789) { ... }");
69
+ }
70
+ return true;
71
+ }
72
+ async function readLastSnapshot(snapshotPath) {
73
+ let textContent;
74
+ try {
75
+ textContent = await readFile(snapshotPath, "utf-8");
76
+ }
77
+ catch (error) {
78
+ const isNotFoundError = error instanceof Error && "code" in error && error.code === "ENOENT";
79
+ if (isNotFoundError) {
80
+ return ModuleSet.compile(new Map());
81
+ }
82
+ else {
83
+ // Rethrow I/O error
84
+ throw error;
85
+ }
86
+ }
87
+ return snapshotFileContentToModuleSet(textContent);
88
+ }
89
+ export function snapshotFileContentToModuleSet(fileContent) {
90
+ let snapshot;
91
+ try {
92
+ snapshot = JSON.parse(fileContent);
93
+ }
94
+ catch (error) {
95
+ if (error instanceof SyntaxError) {
96
+ return {
97
+ kind: "corrupted",
98
+ error: error,
99
+ };
100
+ }
101
+ else {
102
+ throw error;
103
+ }
104
+ }
105
+ const pathToSourceCode = new Map();
106
+ try {
107
+ for (const [path, sourceCode] of Object.entries(snapshot.modules)) {
108
+ // + "" to ensure string type
109
+ pathToSourceCode.set(path + "", sourceCode + "");
110
+ }
111
+ }
112
+ catch (error) {
113
+ return {
114
+ kind: "corrupted",
115
+ error: error,
116
+ };
117
+ }
118
+ const moduleSet = ModuleSet.compile(pathToSourceCode);
119
+ if (moduleSet.errors.length) {
120
+ const firstError = formatError(moduleSet.errors[0]);
121
+ return {
122
+ kind: "corrupted",
123
+ error: new Error(`errors in modules; first error: ${firstError}`),
124
+ };
125
+ }
126
+ return moduleSet;
127
+ }
128
+ export async function viewSnapshot(args) {
129
+ const snapshotPath = join(args.rootDir, "skir-snapshot.json");
130
+ let snapshot;
131
+ try {
132
+ const textContent = await readFile(snapshotPath, "utf-8");
133
+ snapshot = JSON.parse(textContent);
134
+ }
135
+ catch (error) {
136
+ if (error instanceof SyntaxError) {
137
+ console.error(makeRed(`Corrupted snapshot file: ${snapshotPath}`));
138
+ console.error(`Error: ${error.toString()}`);
139
+ process.exit(1);
140
+ }
141
+ const isNotFoundError = error instanceof Error && "code" in error && error.code === "ENOENT";
142
+ if (isNotFoundError) {
143
+ console.log("No snapshot found.");
144
+ return;
145
+ }
146
+ else {
147
+ // Rethrow I/O error
148
+ throw error;
149
+ }
150
+ }
151
+ console.log(`Last snapshot: ${snapshot.lastChange}\n`);
152
+ const modulePaths = Object.keys(snapshot.modules).sort();
153
+ for (const path of modulePaths) {
154
+ console.log(makeGreen("-".repeat(80)));
155
+ console.log(makeGreen(path));
156
+ console.log(makeGreen("-".repeat(80)));
157
+ console.log();
158
+ const sourceCode = snapshot.modules[path];
159
+ console.log(sourceCode);
160
+ console.log();
161
+ }
162
+ }
163
+ function makeSnapshot(moduleSet, now) {
164
+ const modules = {};
165
+ for (const [path, moduleResult] of moduleSet.modules) {
166
+ if (moduleResult.errors.length === 0) {
167
+ modules[path] = moduleResult.result.sourceCode;
168
+ }
169
+ }
170
+ const trackedRecordIds = collectTrackedRecords(moduleSet);
171
+ return {
172
+ readMe: [
173
+ "DO NOT EDIT THIS FILE MANUALLY",
174
+ "",
175
+ "Goal: find breaking changes since the last snapshot",
176
+ "",
177
+ "To update this file (take a new snapshot), run:",
178
+ " npx skir snapshot",
179
+ "",
180
+ "If you just want to check that there are no breaking changes:",
181
+ " npx skir snapshot --dry",
182
+ "",
183
+ "Commit this file to version control (do not add to .gitignore)",
184
+ "It is good practice to always take a snapshot before committing",
185
+ "To verify the snapshot is up-to-date in CI:",
186
+ " npx skir snapshot --ci",
187
+ ],
188
+ lastChange: now.toISOString(),
189
+ trackedRecordIds: Array.from(trackedRecordIds.trackedRecordIds).sort(),
190
+ untrackedRecordIds: Array.from(trackedRecordIds.untrackedRecordIds).sort(),
191
+ modules,
192
+ };
193
+ }
194
+ function sameModules(a, b) {
195
+ return (Object.keys(a.modules).length === Object.keys(b.modules).length &&
196
+ Object.entries(a.modules).every(([path, sourceCode]) => {
197
+ return sourceCode === b.modules[path];
198
+ }));
199
+ }
200
+ function collectTrackedRecords(moduleSet) {
201
+ const trackedRecordIds = new Set();
202
+ const getRecordId = (record) => {
203
+ const qualifiedName = record.recordAncestors
204
+ .map((token) => token.name.text)
205
+ .join(".");
206
+ return `${record.modulePath}:${qualifiedName}`;
207
+ };
208
+ const trackType = (type) => {
209
+ switch (type.kind) {
210
+ case "array":
211
+ trackType(type.item);
212
+ break;
213
+ case "optional":
214
+ trackType(type.other);
215
+ break;
216
+ case "primitive":
217
+ break;
218
+ case "record": {
219
+ const record = moduleSet.recordMap.get(type.key);
220
+ if (record) {
221
+ trackRecord(record);
222
+ }
223
+ break;
224
+ }
225
+ }
226
+ };
227
+ const trackRecord = (record) => {
228
+ const recordId = getRecordId(record);
229
+ if (trackedRecordIds.has(recordId)) {
230
+ return;
231
+ }
232
+ trackedRecordIds.add(recordId);
233
+ // Recursively process the field/variant types
234
+ for (const field of record.record.fields) {
235
+ const fieldType = field.type;
236
+ if (fieldType) {
237
+ trackType(fieldType);
238
+ }
239
+ }
240
+ };
241
+ for (const module of moduleSet.modules.values()) {
242
+ // Skip external dependencies
243
+ if (module.result.path.startsWith("@"))
244
+ continue;
245
+ for (const record of module.result.records) {
246
+ if (record.record.recordNumber !== null) {
247
+ trackRecord(record);
248
+ }
249
+ }
250
+ for (const method of module.result.methods) {
251
+ trackType(method.requestType);
252
+ trackType(method.responseType);
253
+ }
254
+ }
255
+ const untrackedRecordIds = new Set([...moduleSet.recordMap.values()]
256
+ .map(getRecordId)
257
+ .filter((id) => !trackedRecordIds.has(id)));
258
+ return {
259
+ trackedRecordIds: trackedRecordIds,
260
+ untrackedRecordIds: untrackedRecordIds,
261
+ };
262
+ }
263
+ //# sourceMappingURL=snapshotter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshotter.js","sourceRoot":"","sources":["../src/snapshotter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EACL,WAAW,EACX,SAAS,EACT,UAAU,EACV,OAAO,EACP,qBAAqB,EACrB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAKlC;IACC,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1E,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC/B,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC1D,IAAI,CAAC,CAAC,YAAY,YAAY,SAAS,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,KAAK,CACX,OAAO,CACL,4BAA4B,uBAAuB,CAAC,YAAY,CAAC,EAAE,CACpE,CACF,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CACT,qFAAqF;YACnF,yHAAyH,CAC5H,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,eAAe,GAAG,kBAAkB,CAAC;QACzC,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,YAAY;KACpB,CAAC,CAAC;IACH,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;QAC3B,qBAAqB,CAAC,eAAe,EAAE;YACrC,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,YAAY;SACpB,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACpD,IAAI,WAAW,CAAC,WAAW,EAAE,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,KAAK,CAAC;IACf,CAAC;SAAM,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAE7D,MAAM,kBAAkB,GAAG,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC;IAC/D,MAAM,oBAAoB,GAAG,WAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC;IACnE,MAAM,WAAW,GAAG,CAAC,CAAS,EAAE,IAAY,EAAU,EAAE;QACtD,OAAO,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAC7C,CAAC,CAAC;IACF,OAAO,CAAC,GAAG,CACT;QACE,WAAW,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;QACjD,IAAI;QACJ,WAAW,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;QACrD,yBAAyB;KAC1B,CAAC,IAAI,CAAC,EAAE,CAAC,CACX,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC,CAAC;IAEpE,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CACT,+DAA+D,CAChE,CAAC;QACF,OAAO,CAAC,GAAG,CACT,4EAA4E,CAC7E,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAOD,KAAK,UAAU,gBAAgB,CAC7B,YAAoB;IAEpB,IAAI,WAAmB,CAAC;IACxB,IAAI,CAAC;QACH,WAAW,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,eAAe,GACnB,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;QACvE,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,GAAG,EAAkB,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,oBAAoB;YACpB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,8BAA8B,CAAC,WAAW,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,WAAmB;IAEnB,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,KAAK;aACb,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACnD,IAAI,CAAC;QACH,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAClE,6BAA6B;YAC7B,gBAAgB,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,KAAK;SACb,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtD,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC;QACrD,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,IAAI,KAAK,CAAC,mCAAmC,UAAU,EAAE,CAAC;SAClE,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAyB;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAC9D,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC1D,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC,CAAC;YACnE,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,eAAe,GACnB,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;QACvE,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;aAAM,CAAC;YACN,oBAAoB;YACpB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC;IAEvD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IACzD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,SAAoB,EAAE,GAAS;IACnD,MAAM,OAAO,GAA+B,EAAE,CAAC;IAC/C,KAAK,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACrD,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC;QACjD,CAAC;IACH,CAAC;IACD,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC1D,OAAO;QACL,MAAM,EAAE;YACN,gCAAgC;YAChC,EAAE;YACF,qDAAqD;YACrD,EAAE;YACF,iDAAiD;YACjD,qBAAqB;YACrB,EAAE;YACF,+DAA+D;YAC/D,2BAA2B;YAC3B,EAAE;YACF,gEAAgE;YAChE,iEAAiE;YACjE,6CAA6C;YAC7C,0BAA0B;SAC3B;QACD,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE;QAC7B,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE;QACtE,kBAAkB,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE;QAC1E,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,CAAW,EAAE,CAAW;IAC3C,OAAO,CACL,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM;QAC/D,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE;YACrD,OAAO,UAAU,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAeD,SAAS,qBAAqB,CAAC,SAAoB;IACjD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE3C,MAAM,WAAW,GAAG,CAAC,MAAsB,EAAU,EAAE;QACrD,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe;aACzC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;aAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,GAAG,MAAM,CAAC,UAAU,IAAI,aAAa,EAAE,CAAC;IACjD,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,IAAkB,EAAQ,EAAE;QAC7C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,OAAO;gBACV,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrB,MAAM;YACR,KAAK,UAAU;gBACb,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACtB,MAAM;YACR,KAAK,WAAW;gBACd,MAAM;YACR,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjD,IAAI,MAAM,EAAE,CAAC;oBACX,WAAW,CAAC,MAAM,CAAC,CAAC;gBACtB,CAAC;gBACD,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,MAAsB,EAAQ,EAAE;QACnD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QACD,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/B,8CAA8C;QAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;YAC7B,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,CAAC,SAAS,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QAChD,6BAA6B;QAC7B,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACjD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC3C,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;gBACxC,WAAW,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC3C,SAAS,CAAC,MAAM,CAAC,WAAY,CAAC,CAAC;YAC/B,SAAS,CAAC,MAAM,CAAC,YAAa,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAChC,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;SAC9B,GAAG,CAAC,WAAW,CAAC;SAChB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAC7C,CAAC;IACF,OAAO;QACL,gBAAgB,EAAE,gBAAgB;QAClC,kBAAkB,EAAE,kBAAkB;KACvC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { type Doc, type Result, type Token } from "skir-internal";
2
+ export interface ModuleTokens {
3
+ /** Includes regular comments and doc comments. */
4
+ readonly tokens: readonly Token[];
5
+ /** Includes both kinds of comments. */
6
+ readonly tokensWithComments: readonly Token[];
7
+ /** Maps the start position of a doc comment (///) to the parsed documentation. */
8
+ readonly posToDoc: Readonly<{
9
+ [pos: number]: Doc;
10
+ }>;
11
+ readonly sourceCode: string;
12
+ readonly modulePath: string;
13
+ }
14
+ /** Tokenizes the given module. */
15
+ export declare function tokenizeModule(sourceCode: string, modulePath: string, completionMode?: {
16
+ position: number;
17
+ }): Result<ModuleTokens>;
18
+ //# sourceMappingURL=tokenizer.d.ts.map