@knpkv/control-center 0.10.3 → 0.10.4

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 (226) hide show
  1. package/dist/client/.vite/manifest.json +406 -406
  2. package/dist/client/assets/{ActiveWorkPage-DJbMyFnV.js → ActiveWorkPage-DK9ucRgq.js} +2 -2
  3. package/dist/client/assets/{ActiveWorkPage-DJbMyFnV.js.map → ActiveWorkPage-DK9ucRgq.js.map} +1 -1
  4. package/dist/client/assets/{AgentPage-CkoowYNN.js → AgentPage-DiaRhWH4.js} +2 -2
  5. package/dist/client/assets/{AgentPage-CkoowYNN.js.map → AgentPage-DiaRhWH4.js.map} +1 -1
  6. package/dist/client/assets/{AtlassianOAuthCallbackPage-i2zdrAW9.js → AtlassianOAuthCallbackPage-B00yNx-2.js} +2 -2
  7. package/dist/client/assets/{AtlassianOAuthCallbackPage-i2zdrAW9.js.map → AtlassianOAuthCallbackPage-B00yNx-2.js.map} +1 -1
  8. package/dist/client/assets/{AuthorizedSharePage-BKRFQEW5.js → AuthorizedSharePage-BJM10BAd.js} +2 -2
  9. package/dist/client/assets/{AuthorizedSharePage-BKRFQEW5.js.map → AuthorizedSharePage-BJM10BAd.js.map} +1 -1
  10. package/dist/client/assets/{BrowserSessionHydrator-DsrYOye8.js → BrowserSessionHydrator-Bm8F4Ctu.js} +2 -2
  11. package/dist/client/assets/{BrowserSessionHydrator-DsrYOye8.js.map → BrowserSessionHydrator-Bm8F4Ctu.js.map} +1 -1
  12. package/dist/client/assets/{CommandSearch-B3ogcxH6.js → CommandSearch-BxAJW0LJ.js} +2 -2
  13. package/dist/client/assets/{CommandSearch-B3ogcxH6.js.map → CommandSearch-BxAJW0LJ.js.map} +1 -1
  14. package/dist/client/assets/{ItemsPage-C8Kvj_hC.js → ItemsPage-DkKQR0qC.js} +2 -2
  15. package/dist/client/assets/{ItemsPage-C8Kvj_hC.js.map → ItemsPage-DkKQR0qC.js.map} +1 -1
  16. package/dist/client/assets/{OpenPullRequestPage-CdKHYk5U.js → OpenPullRequestPage-BXQFgiq0.js} +2 -2
  17. package/dist/client/assets/{OpenPullRequestPage-CdKHYk5U.js.map → OpenPullRequestPage-BXQFgiq0.js.map} +1 -1
  18. package/dist/client/assets/{Pages-_Z_n1J6R.js → Pages-DlF3u5xB.js} +2 -2
  19. package/dist/client/assets/{Pages-_Z_n1J6R.js.map → Pages-DlF3u5xB.js.map} +1 -1
  20. package/dist/client/assets/{PairPage-BEMXhRqa.js → PairPage-CKINCdoy.js} +2 -2
  21. package/dist/client/assets/{PairPage-BEMXhRqa.js.map → PairPage-CKINCdoy.js.map} +1 -1
  22. package/dist/client/assets/{PortfolioOverview-k2woweJX.js → PortfolioOverview-ajQK-ZVn.js} +2 -2
  23. package/dist/client/assets/{PortfolioOverview-k2woweJX.js.map → PortfolioOverview-ajQK-ZVn.js.map} +1 -1
  24. package/dist/client/assets/{PullRequestReviewPanel-BZ9gJ9do.js → PullRequestReviewPanel-CUiPHp33.js} +4 -4
  25. package/dist/client/assets/{PullRequestReviewPanel-BZ9gJ9do.js.map → PullRequestReviewPanel-CUiPHp33.js.map} +1 -1
  26. package/dist/client/assets/{ReleaseRoute-D5Mrpp8w.js → ReleaseRoute-Dccsofss.js} +2 -2
  27. package/dist/client/assets/ReleaseRoute-Dccsofss.js.map +1 -0
  28. package/dist/client/assets/{ReleaseWorkset-idMU3iUy.js → ReleaseWorkset-CpploDSa.js} +2 -2
  29. package/dist/client/assets/{ReleaseWorkset-idMU3iUy.js.map → ReleaseWorkset-CpploDSa.js.map} +1 -1
  30. package/dist/client/assets/{ReviewSuggestionOverview-sS1HGbOF.js → ReviewSuggestionOverview-C0gKrq0N.js} +2 -2
  31. package/dist/client/assets/{ReviewSuggestionOverview-sS1HGbOF.js.map → ReviewSuggestionOverview-C0gKrq0N.js.map} +1 -1
  32. package/dist/client/assets/{ReviewSuggestionPublicationSurface-CIUTjuOD.js → ReviewSuggestionPublicationSurface-B485cO3v.js} +2 -2
  33. package/dist/client/assets/{ReviewSuggestionPublicationSurface-CIUTjuOD.js.map → ReviewSuggestionPublicationSurface-B485cO3v.js.map} +1 -1
  34. package/dist/client/assets/{ServicesPage-C2sELVLy.js → ServicesPage-DxMDCBRr.js} +2 -2
  35. package/dist/client/assets/{ServicesPage-C2sELVLy.js.map → ServicesPage-DxMDCBRr.js.map} +1 -1
  36. package/dist/client/assets/{TimelinePage-5BEpQPra.js → TimelinePage-BzvR1pQi.js} +2 -2
  37. package/dist/client/assets/{TimelinePage-5BEpQPra.js.map → TimelinePage-BzvR1pQi.js.map} +1 -1
  38. package/dist/client/assets/{WorkspaceEntityLink-w0WA7xRO.js → WorkspaceEntityLink-DOOjBPKo.js} +2 -2
  39. package/dist/client/assets/{WorkspaceEntityLink-w0WA7xRO.js.map → WorkspaceEntityLink-DOOjBPKo.js.map} +1 -1
  40. package/dist/client/assets/{WorkspaceEntityRoute-BpO38Ge1.js → WorkspaceEntityRoute-HkedzU2L.js} +4 -4
  41. package/dist/client/assets/{WorkspaceEntityRoute-BpO38Ge1.js.map → WorkspaceEntityRoute-HkedzU2L.js.map} +1 -1
  42. package/dist/client/assets/{WorkspaceHomeLink-Xl8GvzFw.js → WorkspaceHomeLink-Dn-m2Xhv.js} +2 -2
  43. package/dist/client/assets/{WorkspaceHomeLink-Xl8GvzFw.js.map → WorkspaceHomeLink-Dn-m2Xhv.js.map} +1 -1
  44. package/dist/client/assets/{WorkspacePullRequestDetails-COZdOIOb.js → WorkspacePullRequestDetails-DuIuN53U.js} +3 -3
  45. package/dist/client/assets/{WorkspacePullRequestDetails-COZdOIOb.js.map → WorkspacePullRequestDetails-DuIuN53U.js.map} +1 -1
  46. package/dist/client/assets/{WorkspaceReleaseLayout-D__SEsHt.js → WorkspaceReleaseLayout-CmOYomjP.js} +2 -2
  47. package/dist/client/assets/{WorkspaceReleaseLayout-D__SEsHt.js.map → WorkspaceReleaseLayout-CmOYomjP.js.map} +1 -1
  48. package/dist/client/assets/{WorkspaceSettingsPage-D-0O9-41.js → WorkspaceSettingsPage-Co6JSDzD.js} +2 -2
  49. package/dist/client/assets/{WorkspaceSettingsPage-D-0O9-41.js.map → WorkspaceSettingsPage-Co6JSDzD.js.map} +1 -1
  50. package/dist/client/assets/{angular-html-B-gwpVlh-BRbhVJ6Y.js → angular-html-B-gwpVlh-Bgrt633l.js} +2 -2
  51. package/dist/client/assets/{angular-html-B-gwpVlh-BRbhVJ6Y.js.map → angular-html-B-gwpVlh-Bgrt633l.js.map} +1 -1
  52. package/dist/client/assets/{angular-ts-BdaH9qH_-CreuaMKb.js → angular-ts-BdaH9qH_-BkPrletd.js} +2 -2
  53. package/dist/client/assets/{angular-ts-BdaH9qH_-CreuaMKb.js.map → angular-ts-BdaH9qH_-BkPrletd.js.map} +1 -1
  54. package/dist/client/assets/{apl-BLTDDucx-E9crm-GK.js → apl-BLTDDucx-wY4O_74Y.js} +2 -2
  55. package/dist/client/assets/{apl-BLTDDucx-E9crm-GK.js.map → apl-BLTDDucx-wY4O_74Y.js.map} +1 -1
  56. package/dist/client/assets/{astro-CM3EIsEH-DpNG08M6.js → astro-CM3EIsEH-D7flgJwH.js} +2 -2
  57. package/dist/client/assets/{astro-CM3EIsEH-DpNG08M6.js.map → astro-CM3EIsEH-D7flgJwH.js.map} +1 -1
  58. package/dist/client/assets/{blade-BuLZ1b4i-s07PULYH.js → blade-BuLZ1b4i-qswDnG1D.js} +2 -2
  59. package/dist/client/assets/{blade-BuLZ1b4i-s07PULYH.js.map → blade-BuLZ1b4i-qswDnG1D.js.map} +1 -1
  60. package/dist/client/assets/{c-BOe7FNWg-PrQjeFQ3.js → c-BOe7FNWg-9K6ZU3yU.js} +2 -2
  61. package/dist/client/assets/{c-BOe7FNWg-PrQjeFQ3.js.map → c-BOe7FNWg-9K6ZU3yU.js.map} +1 -1
  62. package/dist/client/assets/{chapel-DS426I0C-DB9jZ2L5.js → chapel-DS426I0C-D7P1_fn5.js} +2 -2
  63. package/dist/client/assets/{chapel-DS426I0C-DB9jZ2L5.js.map → chapel-DS426I0C-D7P1_fn5.js.map} +1 -1
  64. package/dist/client/assets/{cobol-D88xw2SU-C4G8uiv_.js → cobol-D88xw2SU-BeZ5JZSl.js} +2 -2
  65. package/dist/client/assets/{cobol-D88xw2SU-C4G8uiv_.js.map → cobol-D88xw2SU-BeZ5JZSl.js.map} +1 -1
  66. package/dist/client/assets/{coffee-9O-pYXz5-BZexwMqx.js → coffee-9O-pYXz5-CB0EJ1nc.js} +2 -2
  67. package/dist/client/assets/{coffee-9O-pYXz5-BZexwMqx.js.map → coffee-9O-pYXz5-CB0EJ1nc.js.map} +1 -1
  68. package/dist/client/assets/{controlCenterRelayDock-CyvFJBSX.js → controlCenterRelayDock-Duxhij28.js} +3 -3
  69. package/dist/client/assets/{controlCenterRelayDock-CyvFJBSX.js.map → controlCenterRelayDock-Duxhij28.js.map} +1 -1
  70. package/dist/client/assets/{controlCenterRelayDockChrome-LsVvlXRh.js → controlCenterRelayDockChrome-8SmLWAq4.js} +2 -2
  71. package/dist/client/assets/{controlCenterRelayDockChrome-LsVvlXRh.js.map → controlCenterRelayDockChrome-8SmLWAq4.js.map} +1 -1
  72. package/dist/client/assets/{cpp-CPk7VU6o-lNmTk_pG.js → cpp-CPk7VU6o-hQ9MAV3y.js} +2 -2
  73. package/dist/client/assets/{cpp-CPk7VU6o-lNmTk_pG.js.map → cpp-CPk7VU6o-hQ9MAV3y.js.map} +1 -1
  74. package/dist/client/assets/{crystal-CRftOMVe-BSooBDgS.js → crystal-CRftOMVe-DN_g4Upk.js} +2 -2
  75. package/dist/client/assets/{crystal-CRftOMVe-BSooBDgS.js.map → crystal-CRftOMVe-DN_g4Upk.js.map} +1 -1
  76. package/dist/client/assets/{css-DKjIhbA_-kkwCxkks.js → css-DKjIhbA_-CUnFG3ES.js} +2 -2
  77. package/dist/client/assets/{css-DKjIhbA_-kkwCxkks.js.map → css-DKjIhbA_-CUnFG3ES.js.map} +1 -1
  78. package/dist/client/assets/{diff-BvynzM0a.js → diff-Ci0yCkTU.js} +3 -3
  79. package/dist/client/assets/{diff-BvynzM0a.js.map → diff-Ci0yCkTU.js.map} +1 -1
  80. package/dist/client/assets/{edge-CZci3foK-DbjelmsF.js → edge-CZci3foK-Ctlg1YxQ.js} +2 -2
  81. package/dist/client/assets/{edge-CZci3foK-DbjelmsF.js.map → edge-CZci3foK-Ctlg1YxQ.js.map} +1 -1
  82. package/dist/client/assets/{elixir-BFbWRTPN-DGdecMQe.js → elixir-BFbWRTPN-cC1K9Ezq.js} +2 -2
  83. package/dist/client/assets/{elixir-BFbWRTPN-DGdecMQe.js.map → elixir-BFbWRTPN-cC1K9Ezq.js.map} +1 -1
  84. package/dist/client/assets/{elm-BFCSOEGh-B9BWZIGp.js → elm-BFCSOEGh-XnRYfTO2.js} +2 -2
  85. package/dist/client/assets/{elm-BFCSOEGh-B9BWZIGp.js.map → elm-BFCSOEGh-XnRYfTO2.js.map} +1 -1
  86. package/dist/client/assets/{erb-C0EkZJvn-BQCINe4O.js → erb-C0EkZJvn-Dzi6SH3N.js} +2 -2
  87. package/dist/client/assets/{erb-C0EkZJvn-BQCINe4O.js.map → erb-C0EkZJvn-Dzi6SH3N.js.map} +1 -1
  88. package/dist/client/assets/{git-rebase-DBDs07B2-BsUn_6wp.js → git-rebase-DBDs07B2-CPonOskG.js} +2 -2
  89. package/dist/client/assets/{git-rebase-DBDs07B2-BsUn_6wp.js.map → git-rebase-DBDs07B2-CPonOskG.js.map} +1 -1
  90. package/dist/client/assets/{glimmer-js-oqYt1Bty-DhwIdeuV.js → glimmer-js-oqYt1Bty-8uN_RGfs.js} +2 -2
  91. package/dist/client/assets/{glimmer-js-oqYt1Bty-DhwIdeuV.js.map → glimmer-js-oqYt1Bty-8uN_RGfs.js.map} +1 -1
  92. package/dist/client/assets/{glimmer-ts-CjmgbZTn-D--4KEri.js → glimmer-ts-CjmgbZTn-BbhdlUs3.js} +2 -2
  93. package/dist/client/assets/{glimmer-ts-CjmgbZTn-D--4KEri.js.map → glimmer-ts-CjmgbZTn-BbhdlUs3.js.map} +1 -1
  94. package/dist/client/assets/{glsl-BqUMGrwT-BugoDbsL.js → glsl-BqUMGrwT-BdC4EsWs.js} +2 -2
  95. package/dist/client/assets/{glsl-BqUMGrwT-BugoDbsL.js.map → glsl-BqUMGrwT-BdC4EsWs.js.map} +1 -1
  96. package/dist/client/assets/{graphql-CEJryLGF-CK33Sd2D.js → graphql-CEJryLGF-BRAA6O06.js} +2 -2
  97. package/dist/client/assets/{graphql-CEJryLGF-CK33Sd2D.js.map → graphql-CEJryLGF-BRAA6O06.js.map} +1 -1
  98. package/dist/client/assets/{hack-DwBIwaGr-BlHtHO90.js → hack-DwBIwaGr-BAtB0Umc.js} +2 -2
  99. package/dist/client/assets/{hack-DwBIwaGr-BlHtHO90.js.map → hack-DwBIwaGr-BAtB0Umc.js.map} +1 -1
  100. package/dist/client/assets/{haml-BgD6GFV2-Cn_7eMhf.js → haml-BgD6GFV2-Cc0uNVUI.js} +2 -2
  101. package/dist/client/assets/{haml-BgD6GFV2-Cn_7eMhf.js.map → haml-BgD6GFV2-Cc0uNVUI.js.map} +1 -1
  102. package/dist/client/assets/{handlebars-DAEAtsmp-Ddwvn7SX.js → handlebars-DAEAtsmp-DLsK2kOk.js} +2 -2
  103. package/dist/client/assets/{handlebars-DAEAtsmp-Ddwvn7SX.js.map → handlebars-DAEAtsmp-DLsK2kOk.js.map} +1 -1
  104. package/dist/client/assets/{html-B63qAdeQ-C8grXLcX.js → html-B63qAdeQ-BI2TthmT.js} +2 -2
  105. package/dist/client/assets/{html-B63qAdeQ-C8grXLcX.js.map → html-B63qAdeQ-BI2TthmT.js.map} +1 -1
  106. package/dist/client/assets/{html-derivative-DliF0Izh-eHtyKN9s.js → html-derivative-DliF0Izh-CMfd68Cg.js} +2 -2
  107. package/dist/client/assets/{html-derivative-DliF0Izh-eHtyKN9s.js.map → html-derivative-DliF0Izh-CMfd68Cg.js.map} +1 -1
  108. package/dist/client/assets/{http-BPdteiK2-tAvZYLK6.js → http-BPdteiK2-CX-IhbOk.js} +2 -2
  109. package/dist/client/assets/{http-BPdteiK2-tAvZYLK6.js.map → http-BPdteiK2-CX-IhbOk.js.map} +1 -1
  110. package/dist/client/assets/{hurl-y6bQoMbn-BGQBtGLU.js → hurl-y6bQoMbn-7mwJ2k07.js} +2 -2
  111. package/dist/client/assets/{hurl-y6bQoMbn-BGQBtGLU.js.map → hurl-y6bQoMbn-7mwJ2k07.js.map} +1 -1
  112. package/dist/client/assets/{index-BDOFEVxB.js → index-CyCO7dDM.js} +3 -3
  113. package/dist/client/assets/{index-BDOFEVxB.js.map → index-CyCO7dDM.js.map} +1 -1
  114. package/dist/client/assets/{index-DBsf6vDR.css → index-Dn0IKu62.css} +1 -1
  115. package/dist/client/assets/{java-HDTZqoJ--BjrQmsMC.js → java-HDTZqoJ--B9p-6FTD.js} +2 -2
  116. package/dist/client/assets/{java-HDTZqoJ--BjrQmsMC.js.map → java-HDTZqoJ--B9p-6FTD.js.map} +1 -1
  117. package/dist/client/assets/{javascript-B8-PXjxO-Bq-MMO25.js → javascript-B8-PXjxO-CxKVIkrE.js} +2 -2
  118. package/dist/client/assets/{javascript-B8-PXjxO-Bq-MMO25.js.map → javascript-B8-PXjxO-CxKVIkrE.js.map} +1 -1
  119. package/dist/client/assets/{jinja-Li2helwk-l0WFvHGY.js → jinja-Li2helwk-wiEfSEKd.js} +2 -2
  120. package/dist/client/assets/{jinja-Li2helwk-l0WFvHGY.js.map → jinja-Li2helwk-wiEfSEKd.js.map} +1 -1
  121. package/dist/client/assets/{jison-D4pd2L4r-DfaKq-VY.js → jison-D4pd2L4r-CdTHAA5K.js} +2 -2
  122. package/dist/client/assets/{jison-D4pd2L4r-DfaKq-VY.js.map → jison-D4pd2L4r-CdTHAA5K.js.map} +1 -1
  123. package/dist/client/assets/{json-CHeq_08V-DZfpiOP9.js → json-CHeq_08V-BaAxXEpC.js} +2 -2
  124. package/dist/client/assets/{json-CHeq_08V-DZfpiOP9.js.map → json-CHeq_08V-BaAxXEpC.js.map} +1 -1
  125. package/dist/client/assets/{jsx-CTDAtxCE-Zsgbxq22.js → jsx-CTDAtxCE-DqkBvJVQ.js} +2 -2
  126. package/dist/client/assets/{jsx-CTDAtxCE-Zsgbxq22.js.map → jsx-CTDAtxCE-DqkBvJVQ.js.map} +1 -1
  127. package/dist/client/assets/{julia-B8HGxjvO-LAG3JTya.js → julia-B8HGxjvO-BViJH-3Z.js} +2 -2
  128. package/dist/client/assets/{julia-B8HGxjvO-LAG3JTya.js.map → julia-B8HGxjvO-BViJH-3Z.js.map} +1 -1
  129. package/dist/client/assets/{just-C1IY8eCo-BbIdo5MA.js → just-C1IY8eCo-DyJ_BTeb.js} +2 -2
  130. package/dist/client/assets/{just-C1IY8eCo-BbIdo5MA.js.map → just-C1IY8eCo-DyJ_BTeb.js.map} +1 -1
  131. package/dist/client/assets/{latex-CWjLpLhK-46pD4fMG.js → latex-CWjLpLhK-DpCuHsze.js} +2 -2
  132. package/dist/client/assets/{latex-CWjLpLhK-46pD4fMG.js.map → latex-CWjLpLhK-DpCuHsze.js.map} +1 -1
  133. package/dist/client/assets/{liquid-DO0vm52w-Cy8GQMCW.js → liquid-DO0vm52w-CEF5fJp5.js} +2 -2
  134. package/dist/client/assets/{liquid-DO0vm52w-Cy8GQMCW.js.map → liquid-DO0vm52w-CEF5fJp5.js.map} +1 -1
  135. package/dist/client/assets/{lua-rOZn354j-Cbcfon72.js → lua-rOZn354j-CaHUiAfq.js} +2 -2
  136. package/dist/client/assets/{lua-rOZn354j-Cbcfon72.js.map → lua-rOZn354j-CaHUiAfq.js.map} +1 -1
  137. package/dist/client/assets/{marko-CiZdnOV9-CcFVdIL7.js → marko-CiZdnOV9-Brrk-_VN.js} +2 -2
  138. package/dist/client/assets/{marko-CiZdnOV9-CcFVdIL7.js.map → marko-CiZdnOV9-Brrk-_VN.js.map} +1 -1
  139. package/dist/client/assets/{mdc-D1ADfxGi-YqDuYoZm.js → mdc-D1ADfxGi-Co8KdHkR.js} +2 -2
  140. package/dist/client/assets/{mdc-D1ADfxGi-YqDuYoZm.js.map → mdc-D1ADfxGi-Co8KdHkR.js.map} +1 -1
  141. package/dist/client/assets/{nginx-8KXIzHX2-Bic9RPc2.js → nginx-8KXIzHX2-CEzGaPe_.js} +2 -2
  142. package/dist/client/assets/{nginx-8KXIzHX2-Bic9RPc2.js.map → nginx-8KXIzHX2-CEzGaPe_.js.map} +1 -1
  143. package/dist/client/assets/{nim-CbBDSJf5-BQ6kTMUg.js → nim-CbBDSJf5-whZa9TGm.js} +2 -2
  144. package/dist/client/assets/{nim-CbBDSJf5-BQ6kTMUg.js.map → nim-CbBDSJf5-whZa9TGm.js.map} +1 -1
  145. package/dist/client/assets/{org-BlnOvN6p-B_-wxUCO.js → org-BlnOvN6p-C-HBqFDh.js} +2 -2
  146. package/dist/client/assets/{org-BlnOvN6p-B_-wxUCO.js.map → org-BlnOvN6p-C-HBqFDh.js.map} +1 -1
  147. package/dist/client/assets/{patterns-Nc-ycn7Y.js → patterns-DsePY14f.js} +2 -2
  148. package/dist/client/assets/{patterns-Nc-ycn7Y.js.map → patterns-DsePY14f.js.map} +1 -1
  149. package/dist/client/assets/{perl-CntHWu4k-BuEQuG7U.js → perl-CntHWu4k-DLNYobup.js} +2 -2
  150. package/dist/client/assets/{perl-CntHWu4k-BuEQuG7U.js.map → perl-CntHWu4k-DLNYobup.js.map} +1 -1
  151. package/dist/client/assets/{php-VF06KE26-BliObRgA.js → php-VF06KE26-Dp4fuXKl.js} +2 -2
  152. package/dist/client/assets/{php-VF06KE26-BliObRgA.js.map → php-VF06KE26-Dp4fuXKl.js.map} +1 -1
  153. package/dist/client/assets/{primitives-CgvvYKjR-BnO9EmQf.js → primitives-Bd6WhE78-DyJtZKnH.js} +2 -2
  154. package/dist/client/assets/primitives-Bd6WhE78-DyJtZKnH.js.map +1 -0
  155. package/dist/client/assets/{pug-DeZwH1tK-DpL6DGEh.js → pug-DeZwH1tK-Bho3PjIQ.js} +2 -2
  156. package/dist/client/assets/{pug-DeZwH1tK-DpL6DGEh.js.map → pug-DeZwH1tK-Bho3PjIQ.js.map} +1 -1
  157. package/dist/client/assets/{pullRequestReviewThreadReplay-FCMFIIPG.js → pullRequestReviewThreadReplay-D-Gd3hoP.js} +2 -2
  158. package/dist/client/assets/{pullRequestReviewThreadReplay-FCMFIIPG.js.map → pullRequestReviewThreadReplay-D-Gd3hoP.js.map} +1 -1
  159. package/dist/client/assets/{qml-CQhAR2tt-Cjst7VAs.js → qml-CQhAR2tt-D1c_pknn.js} +2 -2
  160. package/dist/client/assets/{qml-CQhAR2tt-Cjst7VAs.js.map → qml-CQhAR2tt-D1c_pknn.js.map} +1 -1
  161. package/dist/client/assets/{r-CGShpgkr-BVeckCHF.js → r-CGShpgkr-C7bXpPjk.js} +2 -2
  162. package/dist/client/assets/{r-CGShpgkr-BVeckCHF.js.map → r-CGShpgkr-C7bXpPjk.js.map} +1 -1
  163. package/dist/client/assets/{razor-CgB2QCs6-Cd3_piVw.js → razor-CgB2QCs6-DhGc3RMt.js} +2 -2
  164. package/dist/client/assets/{razor-CgB2QCs6-Cd3_piVw.js.map → razor-CgB2QCs6-DhGc3RMt.js.map} +1 -1
  165. package/dist/client/assets/{regexp-go_CdRjx-CR2YSHZ1.js → regexp-go_CdRjx-CJ0kv0kL.js} +2 -2
  166. package/dist/client/assets/{regexp-go_CdRjx-CR2YSHZ1.js.map → regexp-go_CdRjx-CJ0kv0kL.js.map} +1 -1
  167. package/dist/client/assets/{releaseRoutes-DPwinWrO.js → releaseRoutes-cNpu7gsD.js} +2 -2
  168. package/dist/client/assets/{releaseRoutes-DPwinWrO.js.map → releaseRoutes-cNpu7gsD.js.map} +1 -1
  169. package/dist/client/assets/{rst-CbWMI8ou-DAnUZELh.js → rst-CbWMI8ou-QeegT2a0.js} +2 -2
  170. package/dist/client/assets/{rst-CbWMI8ou-DAnUZELh.js.map → rst-CbWMI8ou-QeegT2a0.js.map} +1 -1
  171. package/dist/client/assets/{ruby-DsGwIs06--OWGrZzF.js → ruby-DsGwIs06-zfezgkhT.js} +2 -2
  172. package/dist/client/assets/{ruby-DsGwIs06--OWGrZzF.js.map → ruby-DsGwIs06-zfezgkhT.js.map} +1 -1
  173. package/dist/client/assets/{sas-DjxN8J4Z-jVfbDYqr.js → sas-DjxN8J4Z-CnTs8n2C.js} +2 -2
  174. package/dist/client/assets/{sas-DjxN8J4Z-jVfbDYqr.js.map → sas-DjxN8J4Z-CnTs8n2C.js.map} +1 -1
  175. package/dist/client/assets/{scss-bkiiULjK-D2AbGytL.js → scss-bkiiULjK-XMjkwalx.js} +2 -2
  176. package/dist/client/assets/{scss-bkiiULjK-D2AbGytL.js.map → scss-bkiiULjK-XMjkwalx.js.map} +1 -1
  177. package/dist/client/assets/{shellscript-Cuh1SIPr-BiNPTO6b.js → shellscript-Cuh1SIPr-46XCCu2F.js} +2 -2
  178. package/dist/client/assets/{shellscript-Cuh1SIPr-BiNPTO6b.js.map → shellscript-Cuh1SIPr-46XCCu2F.js.map} +1 -1
  179. package/dist/client/assets/{shellsession-C4UOwxb7-kRylcT_R.js → shellsession-C4UOwxb7-BKA80XTI.js} +2 -2
  180. package/dist/client/assets/{shellsession-C4UOwxb7-kRylcT_R.js.map → shellsession-C4UOwxb7-BKA80XTI.js.map} +1 -1
  181. package/dist/client/assets/{soy-CeGFXpLT-C8n-t50V.js → soy-CeGFXpLT-Nlu0Kd5l.js} +2 -2
  182. package/dist/client/assets/{soy-CeGFXpLT-C8n-t50V.js.map → soy-CeGFXpLT-Nlu0Kd5l.js.map} +1 -1
  183. package/dist/client/assets/{sql-qDYmMTO1-CMujL9b5.js → sql-qDYmMTO1-D24X-mUh.js} +2 -2
  184. package/dist/client/assets/{sql-qDYmMTO1-CMujL9b5.js.map → sql-qDYmMTO1-D24X-mUh.js.map} +1 -1
  185. package/dist/client/assets/{stata-Dzus_rwP-xpTbStns.js → stata-Dzus_rwP-DJ7CmNSn.js} +2 -2
  186. package/dist/client/assets/{stata-Dzus_rwP-xpTbStns.js.map → stata-Dzus_rwP-DJ7CmNSn.js.map} +1 -1
  187. package/dist/client/assets/{surrealql-DmTrf8uR-C71726g6.js → surrealql-DmTrf8uR-C3LuBr-Y.js} +2 -2
  188. package/dist/client/assets/{surrealql-DmTrf8uR-C71726g6.js.map → surrealql-DmTrf8uR-C3LuBr-Y.js.map} +1 -1
  189. package/dist/client/assets/{svelte-CWlRonoS-Dsmgsl3p.js → svelte-CWlRonoS-B_ECcTzN.js} +2 -2
  190. package/dist/client/assets/{svelte-CWlRonoS-Dsmgsl3p.js.map → svelte-CWlRonoS-B_ECcTzN.js.map} +1 -1
  191. package/dist/client/assets/{templ-EuFg1gKs-Dlt8LDbj.js → templ-EuFg1gKs-ByAnUgBM.js} +2 -2
  192. package/dist/client/assets/{templ-EuFg1gKs-Dlt8LDbj.js.map → templ-EuFg1gKs-ByAnUgBM.js.map} +1 -1
  193. package/dist/client/assets/{tex-Cbbx1SXS-CGW7lVtU.js → tex-Cbbx1SXS-0Ywa__H_.js} +2 -2
  194. package/dist/client/assets/{tex-Cbbx1SXS-CGW7lVtU.js.map → tex-Cbbx1SXS-0Ywa__H_.js.map} +1 -1
  195. package/dist/client/assets/{ts-tags-DOHpIWV2-Cs4BupLU.js → ts-tags-DOHpIWV2-CuulTIKM.js} +2 -2
  196. package/dist/client/assets/{ts-tags-DOHpIWV2-Cs4BupLU.js.map → ts-tags-DOHpIWV2-CuulTIKM.js.map} +1 -1
  197. package/dist/client/assets/{tsx-DmRL3u_2-Br3tQc1n.js → tsx-DmRL3u_2-GCLpfMRQ.js} +2 -2
  198. package/dist/client/assets/{tsx-DmRL3u_2-Br3tQc1n.js.map → tsx-DmRL3u_2-GCLpfMRQ.js.map} +1 -1
  199. package/dist/client/assets/{twig-BzcHspK1-DTeHZkzh.js → twig-BzcHspK1-BaXWhuif.js} +2 -2
  200. package/dist/client/assets/{twig-BzcHspK1-DTeHZkzh.js.map → twig-BzcHspK1-BaXWhuif.js.map} +1 -1
  201. package/dist/client/assets/{typescript-BYTx4UxO-Ckgqgf_6.js → typescript-BYTx4UxO-D62Ug8gp.js} +2 -2
  202. package/dist/client/assets/{typescript-BYTx4UxO-Ckgqgf_6.js.map → typescript-BYTx4UxO-D62Ug8gp.js.map} +1 -1
  203. package/dist/client/assets/{typst-BrfC91e7-C5LPu314.js → typst-BrfC91e7-BqtmZjA2.js} +2 -2
  204. package/dist/client/assets/{typst-BrfC91e7-C5LPu314.js.map → typst-BrfC91e7-BqtmZjA2.js.map} +1 -1
  205. package/dist/client/assets/{useWorkspaceDefaultLanding-DwCv_p0F.js → useWorkspaceDefaultLanding-CNq5BmMV.js} +2 -2
  206. package/dist/client/assets/{useWorkspaceDefaultLanding-DwCv_p0F.js.map → useWorkspaceDefaultLanding-CNq5BmMV.js.map} +1 -1
  207. package/dist/client/assets/{vue-B92PIQFm-D2EcIWyt.js → vue-B92PIQFm-C54gWdwm.js} +2 -2
  208. package/dist/client/assets/{vue-B92PIQFm-D2EcIWyt.js.map → vue-B92PIQFm-C54gWdwm.js.map} +1 -1
  209. package/dist/client/assets/{vue-html-EDHI-aeE-Cu1z77i2.js → vue-html-EDHI-aeE-Cw2PnKOb.js} +2 -2
  210. package/dist/client/assets/{vue-html-EDHI-aeE-Cu1z77i2.js.map → vue-html-EDHI-aeE-Cw2PnKOb.js.map} +1 -1
  211. package/dist/client/assets/{vue-vine-CmMdgoEY-xSl0fRHe.js → vue-vine-CmMdgoEY-C9ayJcHX.js} +2 -2
  212. package/dist/client/assets/{vue-vine-CmMdgoEY-xSl0fRHe.js.map → vue-vine-CmMdgoEY-C9ayJcHX.js.map} +1 -1
  213. package/dist/client/assets/{workspaceEntityRoutes-DY6gXtOy.js → workspaceEntityRoutes-BYPBqjUZ.js} +2 -2
  214. package/dist/client/assets/{workspaceEntityRoutes-DY6gXtOy.js.map → workspaceEntityRoutes-BYPBqjUZ.js.map} +1 -1
  215. package/dist/client/assets/{workspaceScrollCapture-B4_xSwNQ.js → workspaceScrollCapture-u6lJbYGL.js} +2 -2
  216. package/dist/client/assets/{workspaceScrollCapture-B4_xSwNQ.js.map → workspaceScrollCapture-u6lJbYGL.js.map} +1 -1
  217. package/dist/client/assets/{xml-Bz9Nzp99-Dci4Wxub.js → xml-Bz9Nzp99-q2auRtdj.js} +2 -2
  218. package/dist/client/assets/{xml-Bz9Nzp99-Dci4Wxub.js.map → xml-Bz9Nzp99-q2auRtdj.js.map} +1 -1
  219. package/dist/client/assets/{xsl-D0pOnfMq-BJ-ZDrUM.js → xsl-D0pOnfMq-DV7XsD_5.js} +2 -2
  220. package/dist/client/assets/{xsl-D0pOnfMq-BJ-ZDrUM.js.map → xsl-D0pOnfMq-DV7XsD_5.js.map} +1 -1
  221. package/dist/client/assets/{yaml-DKDHNCIP-DhiHdxcC.js → yaml-DKDHNCIP-DSSGln5p.js} +2 -2
  222. package/dist/client/assets/{yaml-DKDHNCIP-DhiHdxcC.js.map → yaml-DKDHNCIP-DSSGln5p.js.map} +1 -1
  223. package/dist/client/index.html +2 -2
  224. package/package.json +9 -9
  225. package/dist/client/assets/ReleaseRoute-D5Mrpp8w.js.map +0 -1
  226. package/dist/client/assets/primitives-CgvvYKjR-BnO9EmQf.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"coffee-9O-pYXz5-BZexwMqx.js","names":["e","n$1"],"sources":["../../../../rly/dist/coffee-9O-pYXz5.js"],"sourcesContent":["import { t as e } from \"./javascript-B8-PXjxO.js\";\n//#region ../../node_modules/.pnpm/@shikijs+langs@4.5.0/node_modules/@shikijs/langs/dist/coffee.mjs\nvar t = Object.freeze(JSON.parse(\"{\\\"displayName\\\":\\\"CoffeeScript\\\",\\\"name\\\":\\\"coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#jsx\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"keyword.operator.new.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"storage.type.class.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"entity.name.type.instance.coffee\\\"},\\\"4\\\":{\\\"name\\\":\\\"entity.name.type.instance.coffee\\\"}},\\\"match\\\":\\\"(new)\\\\\\\\s+(?:(class)\\\\\\\\s+(\\\\\\\\w+(?:\\\\\\\\.\\\\\\\\w*)*)?|(\\\\\\\\w+(?:\\\\\\\\.\\\\\\\\w*)*))\\\",\\\"name\\\":\\\"meta.class.instance.constructor.coffee\\\"},{\\\"begin\\\":\\\"'''\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.coffee\\\"}},\\\"end\\\":\\\"'''\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.coffee\\\"}},\\\"name\\\":\\\"string.quoted.single.heredoc.coffee\\\",\\\"patterns\\\":[{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.escape.backslash.coffee\\\"}},\\\"match\\\":\\\"(\\\\\\\\\\\\\\\\).\\\",\\\"name\\\":\\\"constant.character.escape.backslash.coffee\\\"}]},{\\\"begin\\\":\\\"\\\\\\\"\\\\\\\"\\\\\\\"\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.coffee\\\"}},\\\"end\\\":\\\"\\\\\\\"\\\\\\\"\\\\\\\"\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.coffee\\\"}},\\\"name\\\":\\\"string.quoted.double.heredoc.coffee\\\",\\\"patterns\\\":[{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.escape.backslash.coffee\\\"}},\\\"match\\\":\\\"(\\\\\\\\\\\\\\\\).\\\",\\\"name\\\":\\\"constant.character.escape.backslash.coffee\\\"},{\\\"include\\\":\\\"#interpolated_coffee\\\"}]},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"source.js.embedded.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"source.js\\\"}]},\\\"3\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.coffee\\\"}},\\\"match\\\":\\\"(`)(.*)(`)\\\",\\\"name\\\":\\\"string.quoted.script.coffee\\\"},{\\\"begin\\\":\\\"(?<!#)###(?!#)\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.comment.coffee\\\"}},\\\"end\\\":\\\"###\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.comment.coffee\\\"}},\\\"name\\\":\\\"comment.block.coffee\\\",\\\"patterns\\\":[{\\\"match\\\":\\\"(?<=^|\\\\\\\\s)@\\\\\\\\w*(?=\\\\\\\\s)\\\",\\\"name\\\":\\\"storage.type.annotation.coffee\\\"}]},{\\\"begin\\\":\\\"#\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.comment.coffee\\\"}},\\\"end\\\":\\\"$\\\",\\\"name\\\":\\\"comment.line.number-sign.coffee\\\"},{\\\"begin\\\":\\\"///\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.coffee\\\"}},\\\"end\\\":\\\"(///)[gimuy]*\\\",\\\"endCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.coffee\\\"}},\\\"name\\\":\\\"string.regexp.multiline.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#heregexp\\\"}]},{\\\"begin\\\":\\\"(?<![$\\\\\\\\w])(/)(?=(?![*+/?])(.+)(/)[gimuy]*(?!\\\\\\\\s*[$(/\\\\\\\\w]))\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.coffee\\\"}},\\\"end\\\":\\\"(/)[gimuy]*(?!\\\\\\\\s*[$(/\\\\\\\\w])\\\",\\\"endCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.coffee\\\"}},\\\"name\\\":\\\"string.regexp.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"source.js.regexp\\\"}]},{\\\"match\\\":\\\"\\\\\\\\b(?<![$.])(break|by|catch|continue|else|finally|for|in|of|if|return|switch|then|throw|try|unless|when|while|until|loop|do|export|import|default|from|as|yield|async|await|(?<=for)\\\\\\\\s+own)(?!\\\\\\\\s*:)\\\\\\\\b\\\",\\\"name\\\":\\\"keyword.control.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(?<![$.])(delete|instanceof|new|typeof)(?!\\\\\\\\s*:)\\\\\\\\b\\\",\\\"name\\\":\\\"keyword.operator.$1.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(?<![$.])(case|function|var|void|with|const|let|enum|native|__hasProp|__extends|__slice|__bind|__indexOf|implements|interface|package|private|protected|public|static)(?!\\\\\\\\s*:)\\\\\\\\b\\\",\\\"name\\\":\\\"keyword.reserved.coffee\\\"},{\\\"begin\\\":\\\"(?<=\\\\\\\\s|^)((@)?[$A-Z_a-z][$\\\\\\\\w]*)\\\\\\\\s*([:=])\\\\\\\\s*(?=(\\\\\\\\([^()]*\\\\\\\\)\\\\\\\\s*)?[-=]>)\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"entity.name.function.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"variable.other.readwrite.instance.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"keyword.operator.assignment.coffee\\\"}},\\\"end\\\":\\\"[-=]>\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"storage.type.function.coffee\\\"}},\\\"name\\\":\\\"meta.function.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#function_params\\\"}]},{\\\"begin\\\":\\\"(?<=\\\\\\\\s|^)(?:((')([^']*?)('))|((\\\\\\\")([^\\\\\\\"]*?)(\\\\\\\")))\\\\\\\\s*([:=])\\\\\\\\s*(?=(\\\\\\\\([^()]*\\\\\\\\)\\\\\\\\s*)?[-=]>)\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"string.quoted.single.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"entity.name.function.coffee\\\"},\\\"4\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.coffee\\\"},\\\"5\\\":{\\\"name\\\":\\\"string.quoted.double.coffee\\\"},\\\"6\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.coffee\\\"},\\\"7\\\":{\\\"name\\\":\\\"entity.name.function.coffee\\\"},\\\"8\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.coffee\\\"},\\\"9\\\":{\\\"name\\\":\\\"keyword.operator.assignment.coffee\\\"}},\\\"end\\\":\\\"[-=]>\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"storage.type.function.coffee\\\"}},\\\"name\\\":\\\"meta.function.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#function_params\\\"}]},{\\\"begin\\\":\\\"(?=(\\\\\\\\([^()]*\\\\\\\\)\\\\\\\\s*)?[-=]>)\\\",\\\"end\\\":\\\"[-=]>\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"storage.type.function.coffee\\\"}},\\\"name\\\":\\\"meta.function.inline.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#function_params\\\"}]},{\\\"begin\\\":\\\"(?<=\\\\\\\\s|^)(\\\\\\\\{)(?=[^\\\\\\\"#']+?}[]}\\\\\\\\s]*=)\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.destructuring.begin.bracket.curly.coffee\\\"}},\\\"end\\\":\\\"}\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.destructuring.end.bracket.curly.coffee\\\"}},\\\"name\\\":\\\"meta.variable.assignment.destructured.object.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"$self\\\"},{\\\"match\\\":\\\"[$A-Z_a-z]\\\\\\\\w*\\\",\\\"name\\\":\\\"variable.assignment.coffee\\\"}]},{\\\"begin\\\":\\\"(?<=\\\\\\\\s|^)(\\\\\\\\[)(?=[^\\\\\\\"#']+?][]}\\\\\\\\s]*=)\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.destructuring.begin.bracket.square.coffee\\\"}},\\\"end\\\":\\\"]\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.destructuring.end.bracket.square.coffee\\\"}},\\\"name\\\":\\\"meta.variable.assignment.destructured.array.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"$self\\\"},{\\\"match\\\":\\\"[$A-Z_a-z]\\\\\\\\w*\\\",\\\"name\\\":\\\"variable.assignment.coffee\\\"}]},{\\\"match\\\":\\\"\\\\\\\\b(?<!\\\\\\\\.|::)(true|on|yes)(?!\\\\\\\\s*[:=][^=])\\\\\\\\b\\\",\\\"name\\\":\\\"constant.language.boolean.true.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(?<!\\\\\\\\.|::)(false|off|no)(?!\\\\\\\\s*[:=][^=])\\\\\\\\b\\\",\\\"name\\\":\\\"constant.language.boolean.false.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(?<!\\\\\\\\.|::)null(?!\\\\\\\\s*[:=][^=])\\\\\\\\b\\\",\\\"name\\\":\\\"constant.language.null.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(?<!\\\\\\\\.|::)extends(?!\\\\\\\\s*[:=])\\\\\\\\b\\\",\\\"name\\\":\\\"variable.language.coffee\\\"},{\\\"match\\\":\\\"(?<!\\\\\\\\.)\\\\\\\\b(?<!\\\\\\\\$)(super|this|arguments)(?!\\\\\\\\s*[:=][^=]|\\\\\\\\$)\\\\\\\\b\\\",\\\"name\\\":\\\"variable.language.$1.coffee\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"storage.type.class.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.control.inheritance.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"entity.other.inherited-class.coffee\\\"}},\\\"match\\\":\\\"(?<=\\\\\\\\s|^|[(\\\\\\\\[])(class)\\\\\\\\s+(extends)\\\\\\\\s+(@?[$.A-Z_a-z][.\\\\\\\\w]*)\\\",\\\"name\\\":\\\"meta.class.coffee\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"storage.type.class.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"entity.name.type.class.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"keyword.control.inheritance.coffee\\\"},\\\"4\\\":{\\\"name\\\":\\\"entity.other.inherited-class.coffee\\\"}},\\\"match\\\":\\\"(?<=\\\\\\\\s|^|[(\\\\\\\\[])(class)\\\\\\\\b\\\\\\\\s+(@?[$A-Z_a-z][.\\\\\\\\w]*)?(?:\\\\\\\\s+(extends)\\\\\\\\s+(@?[$.A-Z_a-z][.\\\\\\\\w]*))?\\\",\\\"name\\\":\\\"meta.class.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(debugger|\\\\\\\\\\\\\\\\)\\\\\\\\b\\\",\\\"name\\\":\\\"keyword.other.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(Array|ArrayBuffer|Blob|Boolean|Date|document|Function|Int(8|16|32|64)Array|Math|Map|Number|Object|Proxy|RegExp|Set|String|WeakMap|window|Uint(8|16|32|64)Array|XMLHttpRequest)\\\\\\\\b\\\",\\\"name\\\":\\\"support.class.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(console)\\\\\\\\b\\\",\\\"name\\\":\\\"entity.name.type.object.coffee\\\"},{\\\"match\\\":\\\"((?<=console\\\\\\\\.)(debug|warn|info|log|error|time|timeEnd|assert))\\\\\\\\b\\\",\\\"name\\\":\\\"support.function.console.coffee\\\"},{\\\"match\\\":\\\"((?<=\\\\\\\\.)(apply|call|concat|every|filter|forEach|from|hasOwnProperty|indexOf|isPrototypeOf|join|lastIndexOf|map|of|pop|propertyIsEnumerable|push|reduce(Right)?|reverse|shift|slice|some|sort|splice|to(Locale)?String|unshift|valueOf))\\\\\\\\b\\\",\\\"name\\\":\\\"support.function.method.array.coffee\\\"},{\\\"match\\\":\\\"((?<=Array\\\\\\\\.)(isArray))\\\\\\\\b\\\",\\\"name\\\":\\\"support.function.static.array.coffee\\\"},{\\\"match\\\":\\\"((?<=Object\\\\\\\\.)(create|definePropert(ies|y)|freeze|getOwnProperty(Descriptors?|Names)|getProperty(Descriptor|Names)|getPrototypeOf|is(Extensible|Frozen|Sealed)?|isnt|keys|preventExtensions|seal))\\\\\\\\b\\\",\\\"name\\\":\\\"support.function.static.object.coffee\\\"},{\\\"match\\\":\\\"((?<=Math\\\\\\\\.)(abs|acosh??|asinh??|atan2??|atanh|ceil|cosh??|exp|expm1|floor|hypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sinh??|sqrt|tanh??|trunc))\\\\\\\\b\\\",\\\"name\\\":\\\"support.function.static.math.coffee\\\"},{\\\"match\\\":\\\"((?<=Number\\\\\\\\.)(is(Finite|Integer|NaN)|toInteger))\\\\\\\\b\\\",\\\"name\\\":\\\"support.function.static.number.coffee\\\"},{\\\"match\\\":\\\"(?<!\\\\\\\\.)\\\\\\\\b(module|exports|__filename|__dirname|global|process)(?!\\\\\\\\s*:)\\\\\\\\b\\\",\\\"name\\\":\\\"support.variable.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(Infinity|NaN|undefined)\\\\\\\\b\\\",\\\"name\\\":\\\"constant.language.coffee\\\"},{\\\"include\\\":\\\"#operators\\\"},{\\\"include\\\":\\\"#method_calls\\\"},{\\\"include\\\":\\\"#function_calls\\\"},{\\\"include\\\":\\\"#numbers\\\"},{\\\"include\\\":\\\"#objects\\\"},{\\\"include\\\":\\\"#properties\\\"},{\\\"match\\\":\\\"::\\\",\\\"name\\\":\\\"keyword.operator.prototype.coffee\\\"},{\\\"match\\\":\\\"(?<!\\\\\\\\$)\\\\\\\\b[0-9]+[$\\\\\\\\w]*\\\",\\\"name\\\":\\\"invalid.illegal.identifier.coffee\\\"},{\\\"match\\\":\\\";\\\",\\\"name\\\":\\\"punctuation.terminator.statement.coffee\\\"},{\\\"match\\\":\\\",\\\",\\\"name\\\":\\\"punctuation.separator.delimiter.coffee\\\"},{\\\"begin\\\":\\\"\\\\\\\\{\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"meta.brace.curly.coffee\\\"}},\\\"end\\\":\\\"}\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"meta.brace.curly.coffee\\\"}},\\\"patterns\\\":[{\\\"include\\\":\\\"$self\\\"}]},{\\\"begin\\\":\\\"\\\\\\\\[\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.array.begin.bracket.square.coffee\\\"}},\\\"end\\\":\\\"]\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.array.end.bracket.square.coffee\\\"}},\\\"patterns\\\":[{\\\"match\\\":\\\"(?<!\\\\\\\\.)\\\\\\\\.{3}\\\",\\\"name\\\":\\\"keyword.operator.slice.exclusive.coffee\\\"},{\\\"match\\\":\\\"(?<!\\\\\\\\.)\\\\\\\\.{2}\\\",\\\"name\\\":\\\"keyword.operator.slice.inclusive.coffee\\\"},{\\\"include\\\":\\\"$self\\\"}]},{\\\"begin\\\":\\\"\\\\\\\\(\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"meta.brace.round.coffee\\\"}},\\\"end\\\":\\\"\\\\\\\\)\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"meta.brace.round.coffee\\\"}},\\\"patterns\\\":[{\\\"include\\\":\\\"$self\\\"}]},{\\\"include\\\":\\\"#instance_variable\\\"},{\\\"include\\\":\\\"#single_quoted_string\\\"},{\\\"include\\\":\\\"#double_quoted_string\\\"}],\\\"repository\\\":{\\\"arguments\\\":{\\\"patterns\\\":[{\\\"begin\\\":\\\"\\\\\\\\(\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.arguments.begin.bracket.round.coffee\\\"}},\\\"end\\\":\\\"\\\\\\\\)\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.arguments.end.bracket.round.coffee\\\"}},\\\"name\\\":\\\"meta.arguments.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"$self\\\"}]},{\\\"begin\\\":\\\"(?=(@|@?[$\\\\\\\\w]+|[-=]>|-\\\\\\\\d|[\\\\\\\"'\\\\\\\\[{]))\\\",\\\"end\\\":\\\"(?=\\\\\\\\s*(?<![$\\\\\\\\w])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![$\\\\\\\\w]))|(?=\\\\\\\\s*([]#)}]|$))\\\",\\\"name\\\":\\\"meta.arguments.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"$self\\\"}]}]},\\\"double_quoted_string\\\":{\\\"patterns\\\":[{\\\"begin\\\":\\\"\\\\\\\"\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.coffee\\\"}},\\\"end\\\":\\\"\\\\\\\"\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.coffee\\\"}},\\\"name\\\":\\\"string.quoted.double.coffee\\\",\\\"patterns\\\":[{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.escape.backslash.coffee\\\"}},\\\"match\\\":\\\"(\\\\\\\\\\\\\\\\)(x\\\\\\\\h{2}|[012][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)\\\",\\\"name\\\":\\\"constant.character.escape.backslash.coffee\\\"},{\\\"include\\\":\\\"#interpolated_coffee\\\"}]}]},\\\"embedded_comment\\\":{\\\"patterns\\\":[{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.comment.coffee\\\"}},\\\"match\\\":\\\"(?<!\\\\\\\\\\\\\\\\)(#).*$\\\\\\\\n?\\\",\\\"name\\\":\\\"comment.line.number-sign.coffee\\\"}]},\\\"function_calls\\\":{\\\"patterns\\\":[{\\\"begin\\\":\\\"(@)?([$\\\\\\\\w]+)(?=\\\\\\\\()\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"variable.other.readwrite.instance.coffee\\\"},\\\"2\\\":{\\\"patterns\\\":[{\\\"include\\\":\\\"#function_names\\\"}]}},\\\"end\\\":\\\"(?<=\\\\\\\\))\\\",\\\"name\\\":\\\"meta.function-call.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#arguments\\\"}]},{\\\"begin\\\":\\\"(@)?([$\\\\\\\\w]+)\\\\\\\\s*(?=\\\\\\\\s+(?!(?<![$\\\\\\\\w])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![$\\\\\\\\w]))(?=(@?[$\\\\\\\\w]+|[-=]>|-\\\\\\\\d|[\\\\\\\"'\\\\\\\\[{])))\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"variable.other.readwrite.instance.coffee\\\"},\\\"2\\\":{\\\"patterns\\\":[{\\\"include\\\":\\\"#function_names\\\"}]}},\\\"end\\\":\\\"(?=\\\\\\\\s*(?<![$\\\\\\\\w])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![$\\\\\\\\w]))|(?=\\\\\\\\s*([]#)}]|$))\\\",\\\"name\\\":\\\"meta.function-call.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#arguments\\\"}]}]},\\\"function_names\\\":{\\\"patterns\\\":[{\\\"match\\\":\\\"\\\\\\\\b(isNaN|isFinite|eval|uneval|parseInt|parseFloat|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|unescape|require|set(Interval|Timeout)|clear(Interval|Timeout))\\\\\\\\b\\\",\\\"name\\\":\\\"support.function.coffee\\\"},{\\\"match\\\":\\\"[$A-Z_a-z][$\\\\\\\\w]*\\\",\\\"name\\\":\\\"entity.name.function.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\d[$\\\\\\\\w]*\\\",\\\"name\\\":\\\"invalid.illegal.identifier.coffee\\\"}]},\\\"function_params\\\":{\\\"patterns\\\":[{\\\"begin\\\":\\\"\\\\\\\\(\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.parameters.begin.bracket.round.coffee\\\"}},\\\"end\\\":\\\"\\\\\\\\)\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.parameters.end.bracket.round.coffee\\\"}},\\\"name\\\":\\\"meta.parameters.coffee\\\",\\\"patterns\\\":[{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"variable.parameter.function.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.splat.coffee\\\"}},\\\"match\\\":\\\"([$A-Z_a-z][$\\\\\\\\w]*)(\\\\\\\\.\\\\\\\\.\\\\\\\\.)?\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"variable.parameter.function.readwrite.instance.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.splat.coffee\\\"}},\\\"match\\\":\\\"(@(?:[$A-Z_a-z][$\\\\\\\\w]*)?)(\\\\\\\\.\\\\\\\\.\\\\\\\\.)?\\\"},{\\\"include\\\":\\\"$self\\\"}]}]},\\\"heregexp\\\":{\\\"patterns\\\":[{\\\"match\\\":\\\"\\\\\\\\\\\\\\\\[Bb]|[$^]\\\",\\\"name\\\":\\\"keyword.control.anchor.regexp\\\"},{\\\"match\\\":\\\"\\\\\\\\\\\\\\\\[1-9]\\\\\\\\d*\\\",\\\"name\\\":\\\"keyword.other.back-reference.regexp\\\"},{\\\"match\\\":\\\"[*+?]|\\\\\\\\{(\\\\\\\\d+,\\\\\\\\d+|\\\\\\\\d+,|,\\\\\\\\d+|\\\\\\\\d+)}\\\\\\\\??\\\",\\\"name\\\":\\\"keyword.operator.quantifier.regexp\\\"},{\\\"match\\\":\\\"\\\\\\\\|\\\",\\\"name\\\":\\\"keyword.operator.or.regexp\\\"},{\\\"begin\\\":\\\"(\\\\\\\\()((\\\\\\\\?=)|(\\\\\\\\?!))\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.group.regexp\\\"},\\\"3\\\":{\\\"name\\\":\\\"meta.assertion.look-ahead.regexp\\\"},\\\"4\\\":{\\\"name\\\":\\\"meta.assertion.negative-look-ahead.regexp\\\"}},\\\"end\\\":\\\"(\\\\\\\\))\\\",\\\"endCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.group.regexp\\\"}},\\\"name\\\":\\\"meta.group.assertion.regexp\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#heregexp\\\"}]},{\\\"begin\\\":\\\"\\\\\\\\((\\\\\\\\?:)?\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.group.regexp\\\"}},\\\"end\\\":\\\"\\\\\\\\)\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.group.regexp\\\"}},\\\"name\\\":\\\"meta.group.regexp\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#heregexp\\\"}]},{\\\"begin\\\":\\\"(\\\\\\\\[)(\\\\\\\\^)?\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.character-class.regexp\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.negation.regexp\\\"}},\\\"end\\\":\\\"(])\\\",\\\"endCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.character-class.regexp\\\"}},\\\"name\\\":\\\"constant.other.character-class.set.regexp\\\",\\\"patterns\\\":[{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"constant.character.numeric.regexp\\\"},\\\"2\\\":{\\\"name\\\":\\\"constant.character.control.regexp\\\"},\\\"3\\\":{\\\"name\\\":\\\"constant.character.escape.backslash.regexp\\\"},\\\"4\\\":{\\\"name\\\":\\\"constant.character.numeric.regexp\\\"},\\\"5\\\":{\\\"name\\\":\\\"constant.character.control.regexp\\\"},\\\"6\\\":{\\\"name\\\":\\\"constant.character.escape.backslash.regexp\\\"}},\\\"match\\\":\\\"(?:.|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x\\\\\\\\h{2}|u\\\\\\\\h{4}))|(\\\\\\\\\\\\\\\\c[A-Z])|(\\\\\\\\\\\\\\\\.))-(?:[^]\\\\\\\\\\\\\\\\]|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x\\\\\\\\h{2}|u\\\\\\\\h{4}))|(\\\\\\\\\\\\\\\\c[A-Z])|(\\\\\\\\\\\\\\\\.))\\\",\\\"name\\\":\\\"constant.other.character-class.range.regexp\\\"},{\\\"include\\\":\\\"#regex-character-class\\\"}]},{\\\"include\\\":\\\"#regex-character-class\\\"},{\\\"include\\\":\\\"#interpolated_coffee\\\"},{\\\"include\\\":\\\"#embedded_comment\\\"}]},\\\"instance_variable\\\":{\\\"patterns\\\":[{\\\"match\\\":\\\"(@)([$A-Z_a-z]\\\\\\\\w*)?\\\",\\\"name\\\":\\\"variable.other.readwrite.instance.coffee\\\"}]},\\\"interpolated_coffee\\\":{\\\"patterns\\\":[{\\\"begin\\\":\\\"#\\\\\\\\{\\\",\\\"captures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.section.embedded.coffee\\\"}},\\\"end\\\":\\\"}\\\",\\\"name\\\":\\\"source.coffee.embedded.source\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"$self\\\"}]}]},\\\"jsx\\\":{\\\"patterns\\\":[{\\\"include\\\":\\\"#jsx-tag\\\"},{\\\"include\\\":\\\"#jsx-end-tag\\\"}]},\\\"jsx-attribute\\\":{\\\"patterns\\\":[{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"entity.other.attribute-name.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.assignment.coffee\\\"}},\\\"match\\\":\\\"(?:^|\\\\\\\\s+)([-.\\\\\\\\w]+)\\\\\\\\s*(=)\\\"},{\\\"include\\\":\\\"#double_quoted_string\\\"},{\\\"include\\\":\\\"#single_quoted_string\\\"},{\\\"include\\\":\\\"#jsx-expression\\\"}]},\\\"jsx-end-tag\\\":{\\\"patterns\\\":[{\\\"begin\\\":\\\"(</)([-.\\\\\\\\w]+)\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.tag.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"entity.name.tag.coffee\\\"}},\\\"end\\\":\\\"(/?>)\\\",\\\"name\\\":\\\"meta.tag.coffee\\\"}]},\\\"jsx-expression\\\":{\\\"begin\\\":\\\"\\\\\\\\{\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"meta.brace.curly.coffee\\\"}},\\\"end\\\":\\\"}\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"meta.brace.curly.coffee\\\"}},\\\"patterns\\\":[{\\\"include\\\":\\\"#double_quoted_string\\\"},{\\\"include\\\":\\\"$self\\\"}]},\\\"jsx-tag\\\":{\\\"patterns\\\":[{\\\"begin\\\":\\\"(<)([-.\\\\\\\\w]+)\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.tag.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"entity.name.tag.coffee\\\"}},\\\"end\\\":\\\"(/?>)\\\",\\\"name\\\":\\\"meta.tag.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#jsx-attribute\\\"}]}]},\\\"method_calls\\\":{\\\"patterns\\\":[{\\\"begin\\\":\\\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*([$\\\\\\\\w]+)\\\\\\\\s*(?=\\\\\\\\()\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.separator.method.period.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.prototype.coffee\\\"},\\\"3\\\":{\\\"patterns\\\":[{\\\"include\\\":\\\"#method_names\\\"}]}},\\\"end\\\":\\\"(?<=\\\\\\\\))\\\",\\\"name\\\":\\\"meta.method-call.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#arguments\\\"}]},{\\\"begin\\\":\\\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*([$\\\\\\\\w]+)\\\\\\\\s*(?=\\\\\\\\s+(?!(?<![$\\\\\\\\w])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![$\\\\\\\\w]))(?=(@|@?[$\\\\\\\\w]+|[-=]>|-\\\\\\\\d|[\\\\\\\"'\\\\\\\\[{])))\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.separator.method.period.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.prototype.coffee\\\"},\\\"3\\\":{\\\"patterns\\\":[{\\\"include\\\":\\\"#method_names\\\"}]}},\\\"end\\\":\\\"(?=\\\\\\\\s*(?<![$\\\\\\\\w])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![$\\\\\\\\w]))|(?=\\\\\\\\s*([]#)}]|$))\\\",\\\"name\\\":\\\"meta.method-call.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#arguments\\\"}]}]},\\\"method_names\\\":{\\\"patterns\\\":[{\\\"match\\\":\\\"\\\\\\\\bon(Rowsinserted|Rowsdelete|Rowenter|Rowexit|Resize|Resizestart|Resizeend|Reset|Readystatechange|Mouseout|Mouseover|Mousedown|Mouseup|Mousemove|Before(cut|deactivate|unload|update|paste|print|editfocus|activate)|Blur|Scrolltop|Submit|Select|Selectstart|Selectionchange|Hover|Help|Change|Contextmenu|Controlselect|Cut|Cellchange|Clock|Close|Deactivate|Datasetchanged|Datasetcomplete|Dataavailable|Drop|Drag|Dragstart|Dragover|Dragdrop|Dragenter|Dragend|Dragleave|Dblclick|Unload|Paste|Propertychange|Error|Errorupdate|Keydown|Keyup|Keypress|Focus|Load|Activate|Afterupdate|Afterprint|Abort)\\\\\\\\b\\\",\\\"name\\\":\\\"support.function.event-handler.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(shift|showModelessDialog|showModalDialog|showHelp|scrollX??|scrollByPages|scrollByLines|scrollY|scrollTo|stop|strike|sizeToContent|sidebar|signText|sort|sup|sub|substr|substring|splice|split|send|set(Milliseconds|Seconds|Minutes|Hours|Month|Year|FullYear|Date|UTC(Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)|Time|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|slice|savePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|concat|contextual|confirm|compile|clear|captureEvents|call|createStyleSheet|createPopup|createEventObject|to(GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)|test|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift|untaint|unwatch|updateCommands|join|javaEnabled|pop|push|plugins.refresh|paddings|parse|print|prompt|preference|enableExternalCapture|exec|execScript|valueOf|UTC|find|file|fileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|fixed|fontsize|fontcolor|forward|fromCharCode|watch|link|load|lastIndexOf|anchor|attachEvent|atob|apply|alert|abort|routeEvents|resize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload|releaseCapture|releaseEvents|go|get(Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear|Time|Date|TimezoneOffset|UTC(Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)|Attention|Selection|ResponseHeader|AllResponseHeaders)|moveBy|moveBelow|moveTo|moveToAbsolute|moveAbove|mergeAttributes|match|margins|btoa|big|bold|borderWidths|blink|back)\\\\\\\\b\\\",\\\"name\\\":\\\"support.function.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(acceptNode|add|addEventListener|addTextTrack|adoptNode|after|animate|append|appendChild|appendData|before|blur|canPlayType|captureStream|caretPositionFromPoint|caretRangeFromPoint|checkValidity|clear|click|cloneContents|cloneNode|cloneRange|close|closest|collapse|compareBoundaryPoints|compareDocumentPosition|comparePoint|contains|convertPointFromNode|convertQuadFromNode|convertRectFromNode|createAttribute|createAttributeNS|createCaption|createCDATASection|createComment|createContextualFragment|createDocument|createDocumentFragment|createDocumentType|createElement|createElementNS|createEntityReference|createEvent|createExpression|createHTMLDocument|createNodeIterator|createNSResolver|createProcessingInstruction|createRange|createShadowRoot|createTBody|createTextNode|createTFoot|createTHead|createTreeWalker|delete|deleteCaption|deleteCell|deleteContents|deleteData|deleteRow|deleteTFoot|deleteTHead|detach|disconnect|dispatchEvent|elementFromPoint|elementsFromPoint|enableStyleSheetsForSet|entries|evaluate|execCommand|exitFullscreen|exitPointerLock|expand|extractContents|fastSeek|firstChild|focus|forEach|get|getAll|getAnimations|getAttribute|getAttributeNames|getAttributeNode|getAttributeNodeNS|getAttributeNS|getBoundingClientRect|getBoxQuads|getClientRects|getContext|getDestinationInsertionPoints|getElementById|getElementsByClassName|getElementsByName|getElementsByTagName|getElementsByTagNameNS|getItem|getNamedItem|getSelection|getStartDate|getVideoPlaybackQuality|has|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasFeature|hasFocus|importNode|initEvent|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|insertBefore|insertCell|insertData|insertNode|insertRow|intersectsNode|isDefaultNamespace|isEqualNode|isPointInRange|isSameNode|item|keys??|lastChild|load|lookupNamespaceURI|lookupPrefix|matches|move|moveAttribute|moveAttributeNode|moveChild|moveNamedItem|namedItem|nextNode|nextSibling|normalize|observe|open|parentNode|pause|play|postMessage|prepend|preventDefault|previousNode|previousSibling|probablySupportsContext|queryCommandEnabled|queryCommandIndeterm|queryCommandState|queryCommandSupported|queryCommandValue|querySelector|querySelectorAll|registerContentHandler|registerElement|registerProtocolHandler|releaseCapture|releaseEvents|remove|removeAttribute|removeAttributeNode|removeAttributeNS|removeChild|removeEventListener|removeItem|replace|replaceChild|replaceData|replaceWith|reportValidity|requestFullscreen|requestPointerLock|reset|scroll|scrollBy|scrollIntoView|scrollTo|seekToNextFrame|select|selectNode|selectNodeContents|set|setAttribute|setAttributeNode|setAttributeNodeNS|setAttributeNS|setCapture|setCustomValidity|setEnd|setEndAfter|setEndBefore|setItem|setNamedItem|setRangeText|setSelectionRange|setSinkId|setStart|setStartAfter|setStartBefore|slice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation|submit|substringData|supports|surroundContents|takeRecords|terminate|toBlob|toDataURL|toggle|toString|values|write|writeln)\\\\\\\\b\\\",\\\"name\\\":\\\"support.function.dom.coffee\\\"},{\\\"match\\\":\\\"[$A-Z_a-z][$\\\\\\\\w]*\\\",\\\"name\\\":\\\"entity.name.function.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\d[$\\\\\\\\w]*\\\",\\\"name\\\":\\\"invalid.illegal.identifier.coffee\\\"}]},\\\"numbers\\\":{\\\"patterns\\\":[{\\\"match\\\":\\\"\\\\\\\\b(?<!\\\\\\\\$)0([Xx])\\\\\\\\h+\\\\\\\\b(?!\\\\\\\\$)\\\",\\\"name\\\":\\\"constant.numeric.hex.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(?<!\\\\\\\\$)0([Bb])[01]+\\\\\\\\b(?!\\\\\\\\$)\\\",\\\"name\\\":\\\"constant.numeric.binary.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(?<!\\\\\\\\$)0([Oo])?[0-7]+\\\\\\\\b(?!\\\\\\\\$)\\\",\\\"name\\\":\\\"constant.numeric.octal.coffee\\\"},{\\\"captures\\\":{\\\"0\\\":{\\\"name\\\":\\\"constant.numeric.decimal.coffee\\\"},\\\"1\\\":{\\\"name\\\":\\\"punctuation.separator.decimal.period.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"punctuation.separator.decimal.period.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"punctuation.separator.decimal.period.coffee\\\"},\\\"4\\\":{\\\"name\\\":\\\"punctuation.separator.decimal.period.coffee\\\"},\\\"5\\\":{\\\"name\\\":\\\"punctuation.separator.decimal.period.coffee\\\"},\\\"6\\\":{\\\"name\\\":\\\"punctuation.separator.decimal.period.coffee\\\"}},\\\"match\\\":\\\"(?<!\\\\\\\\$)(?:\\\\\\\\b[0-9]+(\\\\\\\\.)[0-9]+[Ee][-+]?[0-9]+\\\\\\\\b|\\\\\\\\b[0-9]+(\\\\\\\\.)[Ee][-+]?[0-9]+\\\\\\\\b|\\\\\\\\B(\\\\\\\\.)[0-9]+[Ee][-+]?[0-9]+\\\\\\\\b|\\\\\\\\b[0-9]+[Ee][-+]?[0-9]+\\\\\\\\b|\\\\\\\\b[0-9]+(\\\\\\\\.)[0-9]+\\\\\\\\b|\\\\\\\\b[0-9]+(?=\\\\\\\\.{2,3})|\\\\\\\\b[0-9]+(\\\\\\\\.)\\\\\\\\B|\\\\\\\\B(\\\\\\\\.)[0-9]+\\\\\\\\b|\\\\\\\\b[0-9]+\\\\\\\\b(?!\\\\\\\\.))(?!\\\\\\\\$)\\\"}]},\\\"objects\\\":{\\\"patterns\\\":[{\\\"match\\\":\\\"[A-Z][$0-9A-Z_]*(?=\\\\\\\\s*\\\\\\\\??(\\\\\\\\.\\\\\\\\s*[$A-Z_a-z]\\\\\\\\w*|::))\\\",\\\"name\\\":\\\"constant.other.object.coffee\\\"},{\\\"match\\\":\\\"[$A-Z_a-z][$\\\\\\\\w]*(?=\\\\\\\\s*\\\\\\\\??(\\\\\\\\.\\\\\\\\s*[$A-Z_a-z]\\\\\\\\w*|::))\\\",\\\"name\\\":\\\"variable.other.object.coffee\\\"}]},\\\"operators\\\":{\\\"patterns\\\":[{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"variable.assignment.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.assignment.compound.coffee\\\"}},\\\"match\\\":\\\"(?:([$A-Z_a-z][$\\\\\\\\w]*)?\\\\\\\\s+|(?<![$\\\\\\\\w]))(and=|or=)\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"variable.assignment.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.assignment.compound.coffee\\\"}},\\\"match\\\":\\\"([$A-Z_a-z][$\\\\\\\\w]*)?\\\\\\\\s*((?:[-%*+]|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\?|(?<!\\\\\\\\()/)=)\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"variable.assignment.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.assignment.compound.bitwise.coffee\\\"}},\\\"match\\\":\\\"([$A-Z_a-z][$\\\\\\\\w]*)?\\\\\\\\s*((?:[\\\\\\\\&^]|<<|>>>??|\\\\\\\\|)=)\\\"},{\\\"match\\\":\\\"<<|>>>?\\\",\\\"name\\\":\\\"keyword.operator.bitwise.shift.coffee\\\"},{\\\"match\\\":\\\"!=|<=|>=|==|[<>]\\\",\\\"name\\\":\\\"keyword.operator.comparison.coffee\\\"},{\\\"match\\\":\\\"&&|!|\\\\\\\\|\\\\\\\\|\\\",\\\"name\\\":\\\"keyword.operator.logical.coffee\\\"},{\\\"match\\\":\\\"[\\\\\\\\&^|~]\\\",\\\"name\\\":\\\"keyword.operator.bitwise.coffee\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"variable.assignment.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.assignment.coffee\\\"}},\\\"match\\\":\\\"([$A-Z_a-z][$\\\\\\\\w]*)?\\\\\\\\s*(=|:(?!:))(?![=>])\\\"},{\\\"match\\\":\\\"--\\\",\\\"name\\\":\\\"keyword.operator.decrement.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\+\\\\\\\\+\\\",\\\"name\\\":\\\"keyword.operator.increment.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\",\\\"name\\\":\\\"keyword.operator.splat.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\?\\\",\\\"name\\\":\\\"keyword.operator.existential.coffee\\\"},{\\\"match\\\":\\\"[-%*+/]\\\",\\\"name\\\":\\\"keyword.operator.coffee\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"keyword.operator.logical.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.comparison.coffee\\\"}},\\\"match\\\":\\\"\\\\\\\\b(?<![$.])(?:(and|or|not)|(is(?:|nt)))(?!\\\\\\\\s*:)\\\\\\\\b\\\"}]},\\\"properties\\\":{\\\"patterns\\\":[{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.separator.property.period.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.prototype.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"constant.other.object.property.coffee\\\"}},\\\"match\\\":\\\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*([A-Z][$0-9A-Z_]*\\\\\\\\b\\\\\\\\$*)(?=\\\\\\\\s*\\\\\\\\??(\\\\\\\\.\\\\\\\\s*[$A-Z_a-z]\\\\\\\\w*|::))\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.separator.property.period.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.prototype.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"variable.other.object.property.coffee\\\"}},\\\"match\\\":\\\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*(\\\\\\\\$*[$A-Z_a-z][$\\\\\\\\w]*)(?=\\\\\\\\s*\\\\\\\\??(\\\\\\\\.\\\\\\\\s*[$A-Z_a-z]\\\\\\\\w*|::))\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.separator.property.period.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.prototype.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"constant.other.property.coffee\\\"}},\\\"match\\\":\\\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*([A-Z][$0-9A-Z_]*\\\\\\\\b\\\\\\\\$*)\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.separator.property.period.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.prototype.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"variable.other.property.coffee\\\"}},\\\"match\\\":\\\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*(\\\\\\\\$*[$A-Z_a-z][$\\\\\\\\w]*)\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.separator.property.period.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.prototype.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"invalid.illegal.identifier.coffee\\\"}},\\\"match\\\":\\\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*([0-9][$\\\\\\\\w]*)\\\"}]},\\\"regex-character-class\\\":{\\\"patterns\\\":[{\\\"match\\\":\\\"\\\\\\\\\\\\\\\\[DSWdsw]|\\\\\\\\.\\\",\\\"name\\\":\\\"constant.character.character-class.regexp\\\"},{\\\"match\\\":\\\"\\\\\\\\\\\\\\\\([0-7]{3}|x\\\\\\\\h{2}|u\\\\\\\\h{4})\\\",\\\"name\\\":\\\"constant.character.numeric.regexp\\\"},{\\\"match\\\":\\\"\\\\\\\\\\\\\\\\c[A-Z]\\\",\\\"name\\\":\\\"constant.character.control.regexp\\\"},{\\\"match\\\":\\\"\\\\\\\\\\\\\\\\.\\\",\\\"name\\\":\\\"constant.character.escape.backslash.regexp\\\"}]},\\\"single_quoted_string\\\":{\\\"patterns\\\":[{\\\"begin\\\":\\\"'\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.coffee\\\"}},\\\"end\\\":\\\"'\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.coffee\\\"}},\\\"name\\\":\\\"string.quoted.single.coffee\\\",\\\"patterns\\\":[{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.escape.backslash.coffee\\\"}},\\\"match\\\":\\\"(\\\\\\\\\\\\\\\\)(x\\\\\\\\h{2}|[012][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)\\\",\\\"name\\\":\\\"constant.character.escape.backslash.coffee\\\"}]}]}},\\\"scopeName\\\":\\\"source.coffee\\\",\\\"embeddedLangs\\\":[\\\"javascript\\\"],\\\"aliases\\\":[\\\"coffeescript\\\"]}\")), n = [...e, t];\n//#endregion\nexport { n as default };\n\n//# sourceMappingURL=coffee-9O-pYXz5.js.map"],"mappings":"sDAEA,IAAI,EAAI,OAAO,OAAO,KAAK,MAAM,ir1BAA245B,CAAC,EAAG,EAAI,CAAC,GAAGA,EAAG,CAAC"}
1
+ {"version":3,"file":"coffee-9O-pYXz5-CB0EJ1nc.js","names":["e","n$1"],"sources":["../../../../rly/dist/coffee-9O-pYXz5.js"],"sourcesContent":["import { t as e } from \"./javascript-B8-PXjxO.js\";\n//#region ../../node_modules/.pnpm/@shikijs+langs@4.5.0/node_modules/@shikijs/langs/dist/coffee.mjs\nvar t = Object.freeze(JSON.parse(\"{\\\"displayName\\\":\\\"CoffeeScript\\\",\\\"name\\\":\\\"coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#jsx\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"keyword.operator.new.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"storage.type.class.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"entity.name.type.instance.coffee\\\"},\\\"4\\\":{\\\"name\\\":\\\"entity.name.type.instance.coffee\\\"}},\\\"match\\\":\\\"(new)\\\\\\\\s+(?:(class)\\\\\\\\s+(\\\\\\\\w+(?:\\\\\\\\.\\\\\\\\w*)*)?|(\\\\\\\\w+(?:\\\\\\\\.\\\\\\\\w*)*))\\\",\\\"name\\\":\\\"meta.class.instance.constructor.coffee\\\"},{\\\"begin\\\":\\\"'''\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.coffee\\\"}},\\\"end\\\":\\\"'''\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.coffee\\\"}},\\\"name\\\":\\\"string.quoted.single.heredoc.coffee\\\",\\\"patterns\\\":[{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.escape.backslash.coffee\\\"}},\\\"match\\\":\\\"(\\\\\\\\\\\\\\\\).\\\",\\\"name\\\":\\\"constant.character.escape.backslash.coffee\\\"}]},{\\\"begin\\\":\\\"\\\\\\\"\\\\\\\"\\\\\\\"\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.coffee\\\"}},\\\"end\\\":\\\"\\\\\\\"\\\\\\\"\\\\\\\"\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.coffee\\\"}},\\\"name\\\":\\\"string.quoted.double.heredoc.coffee\\\",\\\"patterns\\\":[{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.escape.backslash.coffee\\\"}},\\\"match\\\":\\\"(\\\\\\\\\\\\\\\\).\\\",\\\"name\\\":\\\"constant.character.escape.backslash.coffee\\\"},{\\\"include\\\":\\\"#interpolated_coffee\\\"}]},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"source.js.embedded.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"source.js\\\"}]},\\\"3\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.coffee\\\"}},\\\"match\\\":\\\"(`)(.*)(`)\\\",\\\"name\\\":\\\"string.quoted.script.coffee\\\"},{\\\"begin\\\":\\\"(?<!#)###(?!#)\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.comment.coffee\\\"}},\\\"end\\\":\\\"###\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.comment.coffee\\\"}},\\\"name\\\":\\\"comment.block.coffee\\\",\\\"patterns\\\":[{\\\"match\\\":\\\"(?<=^|\\\\\\\\s)@\\\\\\\\w*(?=\\\\\\\\s)\\\",\\\"name\\\":\\\"storage.type.annotation.coffee\\\"}]},{\\\"begin\\\":\\\"#\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.comment.coffee\\\"}},\\\"end\\\":\\\"$\\\",\\\"name\\\":\\\"comment.line.number-sign.coffee\\\"},{\\\"begin\\\":\\\"///\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.coffee\\\"}},\\\"end\\\":\\\"(///)[gimuy]*\\\",\\\"endCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.coffee\\\"}},\\\"name\\\":\\\"string.regexp.multiline.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#heregexp\\\"}]},{\\\"begin\\\":\\\"(?<![$\\\\\\\\w])(/)(?=(?![*+/?])(.+)(/)[gimuy]*(?!\\\\\\\\s*[$(/\\\\\\\\w]))\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.coffee\\\"}},\\\"end\\\":\\\"(/)[gimuy]*(?!\\\\\\\\s*[$(/\\\\\\\\w])\\\",\\\"endCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.coffee\\\"}},\\\"name\\\":\\\"string.regexp.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"source.js.regexp\\\"}]},{\\\"match\\\":\\\"\\\\\\\\b(?<![$.])(break|by|catch|continue|else|finally|for|in|of|if|return|switch|then|throw|try|unless|when|while|until|loop|do|export|import|default|from|as|yield|async|await|(?<=for)\\\\\\\\s+own)(?!\\\\\\\\s*:)\\\\\\\\b\\\",\\\"name\\\":\\\"keyword.control.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(?<![$.])(delete|instanceof|new|typeof)(?!\\\\\\\\s*:)\\\\\\\\b\\\",\\\"name\\\":\\\"keyword.operator.$1.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(?<![$.])(case|function|var|void|with|const|let|enum|native|__hasProp|__extends|__slice|__bind|__indexOf|implements|interface|package|private|protected|public|static)(?!\\\\\\\\s*:)\\\\\\\\b\\\",\\\"name\\\":\\\"keyword.reserved.coffee\\\"},{\\\"begin\\\":\\\"(?<=\\\\\\\\s|^)((@)?[$A-Z_a-z][$\\\\\\\\w]*)\\\\\\\\s*([:=])\\\\\\\\s*(?=(\\\\\\\\([^()]*\\\\\\\\)\\\\\\\\s*)?[-=]>)\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"entity.name.function.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"variable.other.readwrite.instance.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"keyword.operator.assignment.coffee\\\"}},\\\"end\\\":\\\"[-=]>\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"storage.type.function.coffee\\\"}},\\\"name\\\":\\\"meta.function.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#function_params\\\"}]},{\\\"begin\\\":\\\"(?<=\\\\\\\\s|^)(?:((')([^']*?)('))|((\\\\\\\")([^\\\\\\\"]*?)(\\\\\\\")))\\\\\\\\s*([:=])\\\\\\\\s*(?=(\\\\\\\\([^()]*\\\\\\\\)\\\\\\\\s*)?[-=]>)\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"string.quoted.single.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"entity.name.function.coffee\\\"},\\\"4\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.coffee\\\"},\\\"5\\\":{\\\"name\\\":\\\"string.quoted.double.coffee\\\"},\\\"6\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.coffee\\\"},\\\"7\\\":{\\\"name\\\":\\\"entity.name.function.coffee\\\"},\\\"8\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.coffee\\\"},\\\"9\\\":{\\\"name\\\":\\\"keyword.operator.assignment.coffee\\\"}},\\\"end\\\":\\\"[-=]>\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"storage.type.function.coffee\\\"}},\\\"name\\\":\\\"meta.function.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#function_params\\\"}]},{\\\"begin\\\":\\\"(?=(\\\\\\\\([^()]*\\\\\\\\)\\\\\\\\s*)?[-=]>)\\\",\\\"end\\\":\\\"[-=]>\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"storage.type.function.coffee\\\"}},\\\"name\\\":\\\"meta.function.inline.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#function_params\\\"}]},{\\\"begin\\\":\\\"(?<=\\\\\\\\s|^)(\\\\\\\\{)(?=[^\\\\\\\"#']+?}[]}\\\\\\\\s]*=)\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.destructuring.begin.bracket.curly.coffee\\\"}},\\\"end\\\":\\\"}\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.destructuring.end.bracket.curly.coffee\\\"}},\\\"name\\\":\\\"meta.variable.assignment.destructured.object.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"$self\\\"},{\\\"match\\\":\\\"[$A-Z_a-z]\\\\\\\\w*\\\",\\\"name\\\":\\\"variable.assignment.coffee\\\"}]},{\\\"begin\\\":\\\"(?<=\\\\\\\\s|^)(\\\\\\\\[)(?=[^\\\\\\\"#']+?][]}\\\\\\\\s]*=)\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.destructuring.begin.bracket.square.coffee\\\"}},\\\"end\\\":\\\"]\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.destructuring.end.bracket.square.coffee\\\"}},\\\"name\\\":\\\"meta.variable.assignment.destructured.array.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"$self\\\"},{\\\"match\\\":\\\"[$A-Z_a-z]\\\\\\\\w*\\\",\\\"name\\\":\\\"variable.assignment.coffee\\\"}]},{\\\"match\\\":\\\"\\\\\\\\b(?<!\\\\\\\\.|::)(true|on|yes)(?!\\\\\\\\s*[:=][^=])\\\\\\\\b\\\",\\\"name\\\":\\\"constant.language.boolean.true.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(?<!\\\\\\\\.|::)(false|off|no)(?!\\\\\\\\s*[:=][^=])\\\\\\\\b\\\",\\\"name\\\":\\\"constant.language.boolean.false.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(?<!\\\\\\\\.|::)null(?!\\\\\\\\s*[:=][^=])\\\\\\\\b\\\",\\\"name\\\":\\\"constant.language.null.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(?<!\\\\\\\\.|::)extends(?!\\\\\\\\s*[:=])\\\\\\\\b\\\",\\\"name\\\":\\\"variable.language.coffee\\\"},{\\\"match\\\":\\\"(?<!\\\\\\\\.)\\\\\\\\b(?<!\\\\\\\\$)(super|this|arguments)(?!\\\\\\\\s*[:=][^=]|\\\\\\\\$)\\\\\\\\b\\\",\\\"name\\\":\\\"variable.language.$1.coffee\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"storage.type.class.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.control.inheritance.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"entity.other.inherited-class.coffee\\\"}},\\\"match\\\":\\\"(?<=\\\\\\\\s|^|[(\\\\\\\\[])(class)\\\\\\\\s+(extends)\\\\\\\\s+(@?[$.A-Z_a-z][.\\\\\\\\w]*)\\\",\\\"name\\\":\\\"meta.class.coffee\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"storage.type.class.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"entity.name.type.class.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"keyword.control.inheritance.coffee\\\"},\\\"4\\\":{\\\"name\\\":\\\"entity.other.inherited-class.coffee\\\"}},\\\"match\\\":\\\"(?<=\\\\\\\\s|^|[(\\\\\\\\[])(class)\\\\\\\\b\\\\\\\\s+(@?[$A-Z_a-z][.\\\\\\\\w]*)?(?:\\\\\\\\s+(extends)\\\\\\\\s+(@?[$.A-Z_a-z][.\\\\\\\\w]*))?\\\",\\\"name\\\":\\\"meta.class.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(debugger|\\\\\\\\\\\\\\\\)\\\\\\\\b\\\",\\\"name\\\":\\\"keyword.other.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(Array|ArrayBuffer|Blob|Boolean|Date|document|Function|Int(8|16|32|64)Array|Math|Map|Number|Object|Proxy|RegExp|Set|String|WeakMap|window|Uint(8|16|32|64)Array|XMLHttpRequest)\\\\\\\\b\\\",\\\"name\\\":\\\"support.class.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(console)\\\\\\\\b\\\",\\\"name\\\":\\\"entity.name.type.object.coffee\\\"},{\\\"match\\\":\\\"((?<=console\\\\\\\\.)(debug|warn|info|log|error|time|timeEnd|assert))\\\\\\\\b\\\",\\\"name\\\":\\\"support.function.console.coffee\\\"},{\\\"match\\\":\\\"((?<=\\\\\\\\.)(apply|call|concat|every|filter|forEach|from|hasOwnProperty|indexOf|isPrototypeOf|join|lastIndexOf|map|of|pop|propertyIsEnumerable|push|reduce(Right)?|reverse|shift|slice|some|sort|splice|to(Locale)?String|unshift|valueOf))\\\\\\\\b\\\",\\\"name\\\":\\\"support.function.method.array.coffee\\\"},{\\\"match\\\":\\\"((?<=Array\\\\\\\\.)(isArray))\\\\\\\\b\\\",\\\"name\\\":\\\"support.function.static.array.coffee\\\"},{\\\"match\\\":\\\"((?<=Object\\\\\\\\.)(create|definePropert(ies|y)|freeze|getOwnProperty(Descriptors?|Names)|getProperty(Descriptor|Names)|getPrototypeOf|is(Extensible|Frozen|Sealed)?|isnt|keys|preventExtensions|seal))\\\\\\\\b\\\",\\\"name\\\":\\\"support.function.static.object.coffee\\\"},{\\\"match\\\":\\\"((?<=Math\\\\\\\\.)(abs|acosh??|asinh??|atan2??|atanh|ceil|cosh??|exp|expm1|floor|hypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sinh??|sqrt|tanh??|trunc))\\\\\\\\b\\\",\\\"name\\\":\\\"support.function.static.math.coffee\\\"},{\\\"match\\\":\\\"((?<=Number\\\\\\\\.)(is(Finite|Integer|NaN)|toInteger))\\\\\\\\b\\\",\\\"name\\\":\\\"support.function.static.number.coffee\\\"},{\\\"match\\\":\\\"(?<!\\\\\\\\.)\\\\\\\\b(module|exports|__filename|__dirname|global|process)(?!\\\\\\\\s*:)\\\\\\\\b\\\",\\\"name\\\":\\\"support.variable.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(Infinity|NaN|undefined)\\\\\\\\b\\\",\\\"name\\\":\\\"constant.language.coffee\\\"},{\\\"include\\\":\\\"#operators\\\"},{\\\"include\\\":\\\"#method_calls\\\"},{\\\"include\\\":\\\"#function_calls\\\"},{\\\"include\\\":\\\"#numbers\\\"},{\\\"include\\\":\\\"#objects\\\"},{\\\"include\\\":\\\"#properties\\\"},{\\\"match\\\":\\\"::\\\",\\\"name\\\":\\\"keyword.operator.prototype.coffee\\\"},{\\\"match\\\":\\\"(?<!\\\\\\\\$)\\\\\\\\b[0-9]+[$\\\\\\\\w]*\\\",\\\"name\\\":\\\"invalid.illegal.identifier.coffee\\\"},{\\\"match\\\":\\\";\\\",\\\"name\\\":\\\"punctuation.terminator.statement.coffee\\\"},{\\\"match\\\":\\\",\\\",\\\"name\\\":\\\"punctuation.separator.delimiter.coffee\\\"},{\\\"begin\\\":\\\"\\\\\\\\{\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"meta.brace.curly.coffee\\\"}},\\\"end\\\":\\\"}\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"meta.brace.curly.coffee\\\"}},\\\"patterns\\\":[{\\\"include\\\":\\\"$self\\\"}]},{\\\"begin\\\":\\\"\\\\\\\\[\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.array.begin.bracket.square.coffee\\\"}},\\\"end\\\":\\\"]\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.array.end.bracket.square.coffee\\\"}},\\\"patterns\\\":[{\\\"match\\\":\\\"(?<!\\\\\\\\.)\\\\\\\\.{3}\\\",\\\"name\\\":\\\"keyword.operator.slice.exclusive.coffee\\\"},{\\\"match\\\":\\\"(?<!\\\\\\\\.)\\\\\\\\.{2}\\\",\\\"name\\\":\\\"keyword.operator.slice.inclusive.coffee\\\"},{\\\"include\\\":\\\"$self\\\"}]},{\\\"begin\\\":\\\"\\\\\\\\(\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"meta.brace.round.coffee\\\"}},\\\"end\\\":\\\"\\\\\\\\)\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"meta.brace.round.coffee\\\"}},\\\"patterns\\\":[{\\\"include\\\":\\\"$self\\\"}]},{\\\"include\\\":\\\"#instance_variable\\\"},{\\\"include\\\":\\\"#single_quoted_string\\\"},{\\\"include\\\":\\\"#double_quoted_string\\\"}],\\\"repository\\\":{\\\"arguments\\\":{\\\"patterns\\\":[{\\\"begin\\\":\\\"\\\\\\\\(\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.arguments.begin.bracket.round.coffee\\\"}},\\\"end\\\":\\\"\\\\\\\\)\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.arguments.end.bracket.round.coffee\\\"}},\\\"name\\\":\\\"meta.arguments.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"$self\\\"}]},{\\\"begin\\\":\\\"(?=(@|@?[$\\\\\\\\w]+|[-=]>|-\\\\\\\\d|[\\\\\\\"'\\\\\\\\[{]))\\\",\\\"end\\\":\\\"(?=\\\\\\\\s*(?<![$\\\\\\\\w])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![$\\\\\\\\w]))|(?=\\\\\\\\s*([]#)}]|$))\\\",\\\"name\\\":\\\"meta.arguments.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"$self\\\"}]}]},\\\"double_quoted_string\\\":{\\\"patterns\\\":[{\\\"begin\\\":\\\"\\\\\\\"\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.coffee\\\"}},\\\"end\\\":\\\"\\\\\\\"\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.coffee\\\"}},\\\"name\\\":\\\"string.quoted.double.coffee\\\",\\\"patterns\\\":[{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.escape.backslash.coffee\\\"}},\\\"match\\\":\\\"(\\\\\\\\\\\\\\\\)(x\\\\\\\\h{2}|[012][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)\\\",\\\"name\\\":\\\"constant.character.escape.backslash.coffee\\\"},{\\\"include\\\":\\\"#interpolated_coffee\\\"}]}]},\\\"embedded_comment\\\":{\\\"patterns\\\":[{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.comment.coffee\\\"}},\\\"match\\\":\\\"(?<!\\\\\\\\\\\\\\\\)(#).*$\\\\\\\\n?\\\",\\\"name\\\":\\\"comment.line.number-sign.coffee\\\"}]},\\\"function_calls\\\":{\\\"patterns\\\":[{\\\"begin\\\":\\\"(@)?([$\\\\\\\\w]+)(?=\\\\\\\\()\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"variable.other.readwrite.instance.coffee\\\"},\\\"2\\\":{\\\"patterns\\\":[{\\\"include\\\":\\\"#function_names\\\"}]}},\\\"end\\\":\\\"(?<=\\\\\\\\))\\\",\\\"name\\\":\\\"meta.function-call.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#arguments\\\"}]},{\\\"begin\\\":\\\"(@)?([$\\\\\\\\w]+)\\\\\\\\s*(?=\\\\\\\\s+(?!(?<![$\\\\\\\\w])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![$\\\\\\\\w]))(?=(@?[$\\\\\\\\w]+|[-=]>|-\\\\\\\\d|[\\\\\\\"'\\\\\\\\[{])))\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"variable.other.readwrite.instance.coffee\\\"},\\\"2\\\":{\\\"patterns\\\":[{\\\"include\\\":\\\"#function_names\\\"}]}},\\\"end\\\":\\\"(?=\\\\\\\\s*(?<![$\\\\\\\\w])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![$\\\\\\\\w]))|(?=\\\\\\\\s*([]#)}]|$))\\\",\\\"name\\\":\\\"meta.function-call.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#arguments\\\"}]}]},\\\"function_names\\\":{\\\"patterns\\\":[{\\\"match\\\":\\\"\\\\\\\\b(isNaN|isFinite|eval|uneval|parseInt|parseFloat|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|unescape|require|set(Interval|Timeout)|clear(Interval|Timeout))\\\\\\\\b\\\",\\\"name\\\":\\\"support.function.coffee\\\"},{\\\"match\\\":\\\"[$A-Z_a-z][$\\\\\\\\w]*\\\",\\\"name\\\":\\\"entity.name.function.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\d[$\\\\\\\\w]*\\\",\\\"name\\\":\\\"invalid.illegal.identifier.coffee\\\"}]},\\\"function_params\\\":{\\\"patterns\\\":[{\\\"begin\\\":\\\"\\\\\\\\(\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.parameters.begin.bracket.round.coffee\\\"}},\\\"end\\\":\\\"\\\\\\\\)\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.parameters.end.bracket.round.coffee\\\"}},\\\"name\\\":\\\"meta.parameters.coffee\\\",\\\"patterns\\\":[{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"variable.parameter.function.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.splat.coffee\\\"}},\\\"match\\\":\\\"([$A-Z_a-z][$\\\\\\\\w]*)(\\\\\\\\.\\\\\\\\.\\\\\\\\.)?\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"variable.parameter.function.readwrite.instance.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.splat.coffee\\\"}},\\\"match\\\":\\\"(@(?:[$A-Z_a-z][$\\\\\\\\w]*)?)(\\\\\\\\.\\\\\\\\.\\\\\\\\.)?\\\"},{\\\"include\\\":\\\"$self\\\"}]}]},\\\"heregexp\\\":{\\\"patterns\\\":[{\\\"match\\\":\\\"\\\\\\\\\\\\\\\\[Bb]|[$^]\\\",\\\"name\\\":\\\"keyword.control.anchor.regexp\\\"},{\\\"match\\\":\\\"\\\\\\\\\\\\\\\\[1-9]\\\\\\\\d*\\\",\\\"name\\\":\\\"keyword.other.back-reference.regexp\\\"},{\\\"match\\\":\\\"[*+?]|\\\\\\\\{(\\\\\\\\d+,\\\\\\\\d+|\\\\\\\\d+,|,\\\\\\\\d+|\\\\\\\\d+)}\\\\\\\\??\\\",\\\"name\\\":\\\"keyword.operator.quantifier.regexp\\\"},{\\\"match\\\":\\\"\\\\\\\\|\\\",\\\"name\\\":\\\"keyword.operator.or.regexp\\\"},{\\\"begin\\\":\\\"(\\\\\\\\()((\\\\\\\\?=)|(\\\\\\\\?!))\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.group.regexp\\\"},\\\"3\\\":{\\\"name\\\":\\\"meta.assertion.look-ahead.regexp\\\"},\\\"4\\\":{\\\"name\\\":\\\"meta.assertion.negative-look-ahead.regexp\\\"}},\\\"end\\\":\\\"(\\\\\\\\))\\\",\\\"endCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.group.regexp\\\"}},\\\"name\\\":\\\"meta.group.assertion.regexp\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#heregexp\\\"}]},{\\\"begin\\\":\\\"\\\\\\\\((\\\\\\\\?:)?\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.group.regexp\\\"}},\\\"end\\\":\\\"\\\\\\\\)\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.group.regexp\\\"}},\\\"name\\\":\\\"meta.group.regexp\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#heregexp\\\"}]},{\\\"begin\\\":\\\"(\\\\\\\\[)(\\\\\\\\^)?\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.character-class.regexp\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.negation.regexp\\\"}},\\\"end\\\":\\\"(])\\\",\\\"endCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.character-class.regexp\\\"}},\\\"name\\\":\\\"constant.other.character-class.set.regexp\\\",\\\"patterns\\\":[{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"constant.character.numeric.regexp\\\"},\\\"2\\\":{\\\"name\\\":\\\"constant.character.control.regexp\\\"},\\\"3\\\":{\\\"name\\\":\\\"constant.character.escape.backslash.regexp\\\"},\\\"4\\\":{\\\"name\\\":\\\"constant.character.numeric.regexp\\\"},\\\"5\\\":{\\\"name\\\":\\\"constant.character.control.regexp\\\"},\\\"6\\\":{\\\"name\\\":\\\"constant.character.escape.backslash.regexp\\\"}},\\\"match\\\":\\\"(?:.|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x\\\\\\\\h{2}|u\\\\\\\\h{4}))|(\\\\\\\\\\\\\\\\c[A-Z])|(\\\\\\\\\\\\\\\\.))-(?:[^]\\\\\\\\\\\\\\\\]|(\\\\\\\\\\\\\\\\(?:[0-7]{3}|x\\\\\\\\h{2}|u\\\\\\\\h{4}))|(\\\\\\\\\\\\\\\\c[A-Z])|(\\\\\\\\\\\\\\\\.))\\\",\\\"name\\\":\\\"constant.other.character-class.range.regexp\\\"},{\\\"include\\\":\\\"#regex-character-class\\\"}]},{\\\"include\\\":\\\"#regex-character-class\\\"},{\\\"include\\\":\\\"#interpolated_coffee\\\"},{\\\"include\\\":\\\"#embedded_comment\\\"}]},\\\"instance_variable\\\":{\\\"patterns\\\":[{\\\"match\\\":\\\"(@)([$A-Z_a-z]\\\\\\\\w*)?\\\",\\\"name\\\":\\\"variable.other.readwrite.instance.coffee\\\"}]},\\\"interpolated_coffee\\\":{\\\"patterns\\\":[{\\\"begin\\\":\\\"#\\\\\\\\{\\\",\\\"captures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.section.embedded.coffee\\\"}},\\\"end\\\":\\\"}\\\",\\\"name\\\":\\\"source.coffee.embedded.source\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"$self\\\"}]}]},\\\"jsx\\\":{\\\"patterns\\\":[{\\\"include\\\":\\\"#jsx-tag\\\"},{\\\"include\\\":\\\"#jsx-end-tag\\\"}]},\\\"jsx-attribute\\\":{\\\"patterns\\\":[{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"entity.other.attribute-name.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.assignment.coffee\\\"}},\\\"match\\\":\\\"(?:^|\\\\\\\\s+)([-.\\\\\\\\w]+)\\\\\\\\s*(=)\\\"},{\\\"include\\\":\\\"#double_quoted_string\\\"},{\\\"include\\\":\\\"#single_quoted_string\\\"},{\\\"include\\\":\\\"#jsx-expression\\\"}]},\\\"jsx-end-tag\\\":{\\\"patterns\\\":[{\\\"begin\\\":\\\"(</)([-.\\\\\\\\w]+)\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.tag.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"entity.name.tag.coffee\\\"}},\\\"end\\\":\\\"(/?>)\\\",\\\"name\\\":\\\"meta.tag.coffee\\\"}]},\\\"jsx-expression\\\":{\\\"begin\\\":\\\"\\\\\\\\{\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"meta.brace.curly.coffee\\\"}},\\\"end\\\":\\\"}\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"meta.brace.curly.coffee\\\"}},\\\"patterns\\\":[{\\\"include\\\":\\\"#double_quoted_string\\\"},{\\\"include\\\":\\\"$self\\\"}]},\\\"jsx-tag\\\":{\\\"patterns\\\":[{\\\"begin\\\":\\\"(<)([-.\\\\\\\\w]+)\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.tag.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"entity.name.tag.coffee\\\"}},\\\"end\\\":\\\"(/?>)\\\",\\\"name\\\":\\\"meta.tag.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#jsx-attribute\\\"}]}]},\\\"method_calls\\\":{\\\"patterns\\\":[{\\\"begin\\\":\\\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*([$\\\\\\\\w]+)\\\\\\\\s*(?=\\\\\\\\()\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.separator.method.period.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.prototype.coffee\\\"},\\\"3\\\":{\\\"patterns\\\":[{\\\"include\\\":\\\"#method_names\\\"}]}},\\\"end\\\":\\\"(?<=\\\\\\\\))\\\",\\\"name\\\":\\\"meta.method-call.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#arguments\\\"}]},{\\\"begin\\\":\\\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*([$\\\\\\\\w]+)\\\\\\\\s*(?=\\\\\\\\s+(?!(?<![$\\\\\\\\w])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![$\\\\\\\\w]))(?=(@|@?[$\\\\\\\\w]+|[-=]>|-\\\\\\\\d|[\\\\\\\"'\\\\\\\\[{])))\\\",\\\"beginCaptures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.separator.method.period.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.prototype.coffee\\\"},\\\"3\\\":{\\\"patterns\\\":[{\\\"include\\\":\\\"#method_names\\\"}]}},\\\"end\\\":\\\"(?=\\\\\\\\s*(?<![$\\\\\\\\w])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![$\\\\\\\\w]))|(?=\\\\\\\\s*([]#)}]|$))\\\",\\\"name\\\":\\\"meta.method-call.coffee\\\",\\\"patterns\\\":[{\\\"include\\\":\\\"#arguments\\\"}]}]},\\\"method_names\\\":{\\\"patterns\\\":[{\\\"match\\\":\\\"\\\\\\\\bon(Rowsinserted|Rowsdelete|Rowenter|Rowexit|Resize|Resizestart|Resizeend|Reset|Readystatechange|Mouseout|Mouseover|Mousedown|Mouseup|Mousemove|Before(cut|deactivate|unload|update|paste|print|editfocus|activate)|Blur|Scrolltop|Submit|Select|Selectstart|Selectionchange|Hover|Help|Change|Contextmenu|Controlselect|Cut|Cellchange|Clock|Close|Deactivate|Datasetchanged|Datasetcomplete|Dataavailable|Drop|Drag|Dragstart|Dragover|Dragdrop|Dragenter|Dragend|Dragleave|Dblclick|Unload|Paste|Propertychange|Error|Errorupdate|Keydown|Keyup|Keypress|Focus|Load|Activate|Afterupdate|Afterprint|Abort)\\\\\\\\b\\\",\\\"name\\\":\\\"support.function.event-handler.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(shift|showModelessDialog|showModalDialog|showHelp|scrollX??|scrollByPages|scrollByLines|scrollY|scrollTo|stop|strike|sizeToContent|sidebar|signText|sort|sup|sub|substr|substring|splice|split|send|set(Milliseconds|Seconds|Minutes|Hours|Month|Year|FullYear|Date|UTC(Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)|Time|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|slice|savePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|concat|contextual|confirm|compile|clear|captureEvents|call|createStyleSheet|createPopup|createEventObject|to(GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)|test|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift|untaint|unwatch|updateCommands|join|javaEnabled|pop|push|plugins.refresh|paddings|parse|print|prompt|preference|enableExternalCapture|exec|execScript|valueOf|UTC|find|file|fileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|fixed|fontsize|fontcolor|forward|fromCharCode|watch|link|load|lastIndexOf|anchor|attachEvent|atob|apply|alert|abort|routeEvents|resize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload|releaseCapture|releaseEvents|go|get(Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear|Time|Date|TimezoneOffset|UTC(Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)|Attention|Selection|ResponseHeader|AllResponseHeaders)|moveBy|moveBelow|moveTo|moveToAbsolute|moveAbove|mergeAttributes|match|margins|btoa|big|bold|borderWidths|blink|back)\\\\\\\\b\\\",\\\"name\\\":\\\"support.function.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(acceptNode|add|addEventListener|addTextTrack|adoptNode|after|animate|append|appendChild|appendData|before|blur|canPlayType|captureStream|caretPositionFromPoint|caretRangeFromPoint|checkValidity|clear|click|cloneContents|cloneNode|cloneRange|close|closest|collapse|compareBoundaryPoints|compareDocumentPosition|comparePoint|contains|convertPointFromNode|convertQuadFromNode|convertRectFromNode|createAttribute|createAttributeNS|createCaption|createCDATASection|createComment|createContextualFragment|createDocument|createDocumentFragment|createDocumentType|createElement|createElementNS|createEntityReference|createEvent|createExpression|createHTMLDocument|createNodeIterator|createNSResolver|createProcessingInstruction|createRange|createShadowRoot|createTBody|createTextNode|createTFoot|createTHead|createTreeWalker|delete|deleteCaption|deleteCell|deleteContents|deleteData|deleteRow|deleteTFoot|deleteTHead|detach|disconnect|dispatchEvent|elementFromPoint|elementsFromPoint|enableStyleSheetsForSet|entries|evaluate|execCommand|exitFullscreen|exitPointerLock|expand|extractContents|fastSeek|firstChild|focus|forEach|get|getAll|getAnimations|getAttribute|getAttributeNames|getAttributeNode|getAttributeNodeNS|getAttributeNS|getBoundingClientRect|getBoxQuads|getClientRects|getContext|getDestinationInsertionPoints|getElementById|getElementsByClassName|getElementsByName|getElementsByTagName|getElementsByTagNameNS|getItem|getNamedItem|getSelection|getStartDate|getVideoPlaybackQuality|has|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasFeature|hasFocus|importNode|initEvent|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|insertBefore|insertCell|insertData|insertNode|insertRow|intersectsNode|isDefaultNamespace|isEqualNode|isPointInRange|isSameNode|item|keys??|lastChild|load|lookupNamespaceURI|lookupPrefix|matches|move|moveAttribute|moveAttributeNode|moveChild|moveNamedItem|namedItem|nextNode|nextSibling|normalize|observe|open|parentNode|pause|play|postMessage|prepend|preventDefault|previousNode|previousSibling|probablySupportsContext|queryCommandEnabled|queryCommandIndeterm|queryCommandState|queryCommandSupported|queryCommandValue|querySelector|querySelectorAll|registerContentHandler|registerElement|registerProtocolHandler|releaseCapture|releaseEvents|remove|removeAttribute|removeAttributeNode|removeAttributeNS|removeChild|removeEventListener|removeItem|replace|replaceChild|replaceData|replaceWith|reportValidity|requestFullscreen|requestPointerLock|reset|scroll|scrollBy|scrollIntoView|scrollTo|seekToNextFrame|select|selectNode|selectNodeContents|set|setAttribute|setAttributeNode|setAttributeNodeNS|setAttributeNS|setCapture|setCustomValidity|setEnd|setEndAfter|setEndBefore|setItem|setNamedItem|setRangeText|setSelectionRange|setSinkId|setStart|setStartAfter|setStartBefore|slice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation|submit|substringData|supports|surroundContents|takeRecords|terminate|toBlob|toDataURL|toggle|toString|values|write|writeln)\\\\\\\\b\\\",\\\"name\\\":\\\"support.function.dom.coffee\\\"},{\\\"match\\\":\\\"[$A-Z_a-z][$\\\\\\\\w]*\\\",\\\"name\\\":\\\"entity.name.function.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\d[$\\\\\\\\w]*\\\",\\\"name\\\":\\\"invalid.illegal.identifier.coffee\\\"}]},\\\"numbers\\\":{\\\"patterns\\\":[{\\\"match\\\":\\\"\\\\\\\\b(?<!\\\\\\\\$)0([Xx])\\\\\\\\h+\\\\\\\\b(?!\\\\\\\\$)\\\",\\\"name\\\":\\\"constant.numeric.hex.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(?<!\\\\\\\\$)0([Bb])[01]+\\\\\\\\b(?!\\\\\\\\$)\\\",\\\"name\\\":\\\"constant.numeric.binary.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\b(?<!\\\\\\\\$)0([Oo])?[0-7]+\\\\\\\\b(?!\\\\\\\\$)\\\",\\\"name\\\":\\\"constant.numeric.octal.coffee\\\"},{\\\"captures\\\":{\\\"0\\\":{\\\"name\\\":\\\"constant.numeric.decimal.coffee\\\"},\\\"1\\\":{\\\"name\\\":\\\"punctuation.separator.decimal.period.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"punctuation.separator.decimal.period.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"punctuation.separator.decimal.period.coffee\\\"},\\\"4\\\":{\\\"name\\\":\\\"punctuation.separator.decimal.period.coffee\\\"},\\\"5\\\":{\\\"name\\\":\\\"punctuation.separator.decimal.period.coffee\\\"},\\\"6\\\":{\\\"name\\\":\\\"punctuation.separator.decimal.period.coffee\\\"}},\\\"match\\\":\\\"(?<!\\\\\\\\$)(?:\\\\\\\\b[0-9]+(\\\\\\\\.)[0-9]+[Ee][-+]?[0-9]+\\\\\\\\b|\\\\\\\\b[0-9]+(\\\\\\\\.)[Ee][-+]?[0-9]+\\\\\\\\b|\\\\\\\\B(\\\\\\\\.)[0-9]+[Ee][-+]?[0-9]+\\\\\\\\b|\\\\\\\\b[0-9]+[Ee][-+]?[0-9]+\\\\\\\\b|\\\\\\\\b[0-9]+(\\\\\\\\.)[0-9]+\\\\\\\\b|\\\\\\\\b[0-9]+(?=\\\\\\\\.{2,3})|\\\\\\\\b[0-9]+(\\\\\\\\.)\\\\\\\\B|\\\\\\\\B(\\\\\\\\.)[0-9]+\\\\\\\\b|\\\\\\\\b[0-9]+\\\\\\\\b(?!\\\\\\\\.))(?!\\\\\\\\$)\\\"}]},\\\"objects\\\":{\\\"patterns\\\":[{\\\"match\\\":\\\"[A-Z][$0-9A-Z_]*(?=\\\\\\\\s*\\\\\\\\??(\\\\\\\\.\\\\\\\\s*[$A-Z_a-z]\\\\\\\\w*|::))\\\",\\\"name\\\":\\\"constant.other.object.coffee\\\"},{\\\"match\\\":\\\"[$A-Z_a-z][$\\\\\\\\w]*(?=\\\\\\\\s*\\\\\\\\??(\\\\\\\\.\\\\\\\\s*[$A-Z_a-z]\\\\\\\\w*|::))\\\",\\\"name\\\":\\\"variable.other.object.coffee\\\"}]},\\\"operators\\\":{\\\"patterns\\\":[{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"variable.assignment.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.assignment.compound.coffee\\\"}},\\\"match\\\":\\\"(?:([$A-Z_a-z][$\\\\\\\\w]*)?\\\\\\\\s+|(?<![$\\\\\\\\w]))(and=|or=)\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"variable.assignment.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.assignment.compound.coffee\\\"}},\\\"match\\\":\\\"([$A-Z_a-z][$\\\\\\\\w]*)?\\\\\\\\s*((?:[-%*+]|&&|\\\\\\\\|\\\\\\\\||\\\\\\\\?|(?<!\\\\\\\\()/)=)\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"variable.assignment.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.assignment.compound.bitwise.coffee\\\"}},\\\"match\\\":\\\"([$A-Z_a-z][$\\\\\\\\w]*)?\\\\\\\\s*((?:[\\\\\\\\&^]|<<|>>>??|\\\\\\\\|)=)\\\"},{\\\"match\\\":\\\"<<|>>>?\\\",\\\"name\\\":\\\"keyword.operator.bitwise.shift.coffee\\\"},{\\\"match\\\":\\\"!=|<=|>=|==|[<>]\\\",\\\"name\\\":\\\"keyword.operator.comparison.coffee\\\"},{\\\"match\\\":\\\"&&|!|\\\\\\\\|\\\\\\\\|\\\",\\\"name\\\":\\\"keyword.operator.logical.coffee\\\"},{\\\"match\\\":\\\"[\\\\\\\\&^|~]\\\",\\\"name\\\":\\\"keyword.operator.bitwise.coffee\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"variable.assignment.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.assignment.coffee\\\"}},\\\"match\\\":\\\"([$A-Z_a-z][$\\\\\\\\w]*)?\\\\\\\\s*(=|:(?!:))(?![=>])\\\"},{\\\"match\\\":\\\"--\\\",\\\"name\\\":\\\"keyword.operator.decrement.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\+\\\\\\\\+\\\",\\\"name\\\":\\\"keyword.operator.increment.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\.\\\\\\\\.\\\\\\\\.\\\",\\\"name\\\":\\\"keyword.operator.splat.coffee\\\"},{\\\"match\\\":\\\"\\\\\\\\?\\\",\\\"name\\\":\\\"keyword.operator.existential.coffee\\\"},{\\\"match\\\":\\\"[-%*+/]\\\",\\\"name\\\":\\\"keyword.operator.coffee\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"keyword.operator.logical.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.comparison.coffee\\\"}},\\\"match\\\":\\\"\\\\\\\\b(?<![$.])(?:(and|or|not)|(is(?:|nt)))(?!\\\\\\\\s*:)\\\\\\\\b\\\"}]},\\\"properties\\\":{\\\"patterns\\\":[{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.separator.property.period.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.prototype.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"constant.other.object.property.coffee\\\"}},\\\"match\\\":\\\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*([A-Z][$0-9A-Z_]*\\\\\\\\b\\\\\\\\$*)(?=\\\\\\\\s*\\\\\\\\??(\\\\\\\\.\\\\\\\\s*[$A-Z_a-z]\\\\\\\\w*|::))\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.separator.property.period.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.prototype.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"variable.other.object.property.coffee\\\"}},\\\"match\\\":\\\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*(\\\\\\\\$*[$A-Z_a-z][$\\\\\\\\w]*)(?=\\\\\\\\s*\\\\\\\\??(\\\\\\\\.\\\\\\\\s*[$A-Z_a-z]\\\\\\\\w*|::))\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.separator.property.period.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.prototype.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"constant.other.property.coffee\\\"}},\\\"match\\\":\\\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*([A-Z][$0-9A-Z_]*\\\\\\\\b\\\\\\\\$*)\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.separator.property.period.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.prototype.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"variable.other.property.coffee\\\"}},\\\"match\\\":\\\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*(\\\\\\\\$*[$A-Z_a-z][$\\\\\\\\w]*)\\\"},{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.separator.property.period.coffee\\\"},\\\"2\\\":{\\\"name\\\":\\\"keyword.operator.prototype.coffee\\\"},\\\"3\\\":{\\\"name\\\":\\\"invalid.illegal.identifier.coffee\\\"}},\\\"match\\\":\\\"(?:(\\\\\\\\.)|(::))\\\\\\\\s*([0-9][$\\\\\\\\w]*)\\\"}]},\\\"regex-character-class\\\":{\\\"patterns\\\":[{\\\"match\\\":\\\"\\\\\\\\\\\\\\\\[DSWdsw]|\\\\\\\\.\\\",\\\"name\\\":\\\"constant.character.character-class.regexp\\\"},{\\\"match\\\":\\\"\\\\\\\\\\\\\\\\([0-7]{3}|x\\\\\\\\h{2}|u\\\\\\\\h{4})\\\",\\\"name\\\":\\\"constant.character.numeric.regexp\\\"},{\\\"match\\\":\\\"\\\\\\\\\\\\\\\\c[A-Z]\\\",\\\"name\\\":\\\"constant.character.control.regexp\\\"},{\\\"match\\\":\\\"\\\\\\\\\\\\\\\\.\\\",\\\"name\\\":\\\"constant.character.escape.backslash.regexp\\\"}]},\\\"single_quoted_string\\\":{\\\"patterns\\\":[{\\\"begin\\\":\\\"'\\\",\\\"beginCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.begin.coffee\\\"}},\\\"end\\\":\\\"'\\\",\\\"endCaptures\\\":{\\\"0\\\":{\\\"name\\\":\\\"punctuation.definition.string.end.coffee\\\"}},\\\"name\\\":\\\"string.quoted.single.coffee\\\",\\\"patterns\\\":[{\\\"captures\\\":{\\\"1\\\":{\\\"name\\\":\\\"punctuation.definition.escape.backslash.coffee\\\"}},\\\"match\\\":\\\"(\\\\\\\\\\\\\\\\)(x\\\\\\\\h{2}|[012][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)\\\",\\\"name\\\":\\\"constant.character.escape.backslash.coffee\\\"}]}]}},\\\"scopeName\\\":\\\"source.coffee\\\",\\\"embeddedLangs\\\":[\\\"javascript\\\"],\\\"aliases\\\":[\\\"coffeescript\\\"]}\")), n = [...e, t];\n//#endregion\nexport { n as default };\n\n//# sourceMappingURL=coffee-9O-pYXz5.js.map"],"mappings":"sDAEA,IAAI,EAAI,OAAO,OAAO,KAAK,MAAM,ir1BAA245B,CAAC,EAAG,EAAI,CAAC,GAAGA,EAAG,CAAC"}
@@ -1,3 +1,3 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/patterns-Nc-ycn7Y.js","assets/rolldown-runtime-hePW80VL.js","assets/react-Cvdyeg_0.js","assets/Dialog-B9Ub_gMT-D8Er5PRs.js","assets/loader-circle-CUNkyj3b.js","assets/PortalProvider-CN_81Fy3-Cu7FMqdg.js","assets/jsx-runtime-NZYk81nU.js","assets/index-BDOFEVxB.js","assets/hooks-CGvBGjhq.js","assets/index-DBsf6vDR.css"])))=>i.map(i=>d[i]);
2
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{O as r,s as i}from"./index-BDOFEVxB.js";import{Dn as a,En as o,Fn as s,Ln as c,Ni as l,Nn as u,Oi as d,On as f,Pi as ee,Pn as p,Un as m,Yn as h,bn as g,cr as _,dr as v,fa as y,fi as te,fr as ne,gr as b,ia as re,ir as ie,lr as x,mr as S,oa as ae,qn as oe,sr as C,ta as se,ur as w,ya as ce,yi as le}from"./agent-api-CmrKwleK.js";var T=e(t(),1),E=n(),D=u.check(v(),x(),C(200)).pipe(m(`RelaySelectorId`)),O=p({id:D,label:u.check(v(),x(),C(200))}),k=p({modelId:D,models:g(O).check(_(1)),profileId:D,profiles:g(O).check(_(1))}),A=e=>new Set(e.map(({id:e})=>e)).size===e.length,j=k.check(S(({profiles:e})=>A(e),{expected:`unique Relay profile option identifiers`}),S(({models:e})=>A(e),{expected:`unique Relay model option identifiers`}),S(({profileId:e,profiles:t})=>t.some(({id:t})=>t===e),{expected:`a selected Relay profile present in the profile options`}),S(({modelId:e,models:t})=>t.some(({id:t})=>t===e),{expected:`a selected Relay model present in the model options`})),M=c({collapsed:{},expanded:{}}),ue=p({dock:M,selection:j}),N=class extends s()(`InvalidRelaySelectorState`,{reason:f([`duplicate-model`,`duplicate-profile`,`invalid-input`,`model-not-found`,`profile-not-found`])}){},de=oe(k);te(`RelayProduct.makeInitialRelayState`)(function*(e){let t=yield*de(e).pipe(le(()=>new N({reason:`invalid-input`})));return A(t.profiles)?A(t.models)?t.profiles.some(({id:e})=>e===t.profileId)?t.models.some(({id:e})=>e===t.modelId)?ue.make({dock:M.cases.collapsed.make({}),selection:j.make(t)}):yield*new N({reason:`model-not-found`}):yield*new N({reason:`profile-not-found`}):yield*new N({reason:`duplicate-model`}):yield*new N({reason:`duplicate-profile`})});var P=e=>u.check(v(),x(),C(e)),F=e=>u.check(ne(7),w(/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/u,{expected:`a canonical lowercase UUID v7`})).pipe(m(e)),I=f([`codecommit`,`control-center`]),L=f([`continue-pull-request-conversation`,`locate-pull-request-conversation`]),R=P(200).pipe(m(`RelayPrincipalId`)),z=F(`RelayWorkspaceId`),fe=F(`RelayPluginConnectionId`),pe=F(`RelayEntityId`),B=P(1e3).pipe(m(`RelayRepositoryName`)),V=P(200).pipe(m(`RelayPullRequestId`)),H=P(200).pipe(m(`RelayAccountId`)),U=P(100).pipe(m(`RelayRegion`)),W=u.check(v(),x(),C(4096),w(/^\/(?!\/)/u,{expected:`an application-owned absolute path`}));c({codecommit:{principalId:R},"control-center":{principalId:R,workspaceId:z}});var me=p({accountId:b(H),provider:a(`codecommit`),pullRequestId:V,region:U,repositoryName:B}),G=p({pluginConnectionId:fe,pullRequestId:V,repositoryName:B,workspaceId:z}),K=p({accountId:H,pullRequestId:V,region:U,repositoryName:B}),he=p({entityId:pe,href:W}),ge=p({accountId:H,href:W,pullRequestId:V,routeAccountId:b(H)}),q=c({codecommit:{...K.fields},"control-center":{...G.fields}}),J=c({codecommit:{route:ge,selection:j,thread:K},"control-center":{route:he,selection:j,thread:G}}).check(S(e=>{switch(e._tag){case`codecommit`:return e.route.accountId===e.thread.accountId&&e.route.pullRequestId===e.thread.pullRequestId&&e.route.href===`/accounts/${encodeURIComponent(e.route.routeAccountId??e.route.accountId)}/prs/${encodeURIComponent(e.route.pullRequestId)}`;case`control-center`:return e.route.href===`/w/${e.thread.workspaceId}/items/${e.route.entityId}`}},{expected:`a product-qualified thread paired with its exact pull-request route`})),Y=e=>{switch(e._tag){case`codecommit`:return q.cases.codecommit.make(e.thread);case`control-center`:return q.cases[`control-center`].make(e.thread)}},_e=u.check(v(),x(),C(8e3)).pipe(m(`PullRequestContinuationMessage`)),ve=p({conversation:J,message:_e,selection:j}),ye=P(200).pipe(m(`RelayContinuationMessageId`));p({messageId:ye,thread:q});var be=class extends s()(`RelayAuthenticationRequired`,{operation:L,product:I}){},xe=class extends s()(`RelayAuthorizationDenied`,{operation:L,product:I}){};s()(`RelayAuthenticationUnavailable`,{operation:L,product:I});var Se=class extends s()(`PullRequestConversationNotFound`,{product:I,pullRequestId:V,repositoryName:B}){},Ce=class extends s()(`PullRequestConversationAmbiguous`,{matches:o.check(ie(1)),product:I,pullRequestId:V,repositoryName:B}){},we=class extends s()(`PullRequestConversationLookupFailed`,{product:I}){},Te=class extends s()(`PullRequestConversationRedirectFailed`,{href:W,product:I}){},Ee=class extends s()(`PullRequestConversationContinuationRejected`,{product:I,reason:f([`conversation-busy`,`selection-unavailable`,`thread-not-found`]),thread:q}){},De=class extends s()(`PullRequestConversationContinuationFailed`,{product:I,thread:q}){};s()(`RelayProductAdapterContractError`,{actualProduct:I,expectedProduct:I,operation:L}),s()(`RelayProductContinuationReceiptMismatch`,{actualThread:q,expectedThread:q}),ce()(`@knpkv/relay-product/RelayProduct`);var X=class extends ae(`RelayProductDockInvariantViolation`){},Oe=(0,T.lazy)(async()=>({default:(await r(()=>import(`./patterns-Nc-ycn7Y.js`).then(e=>e.t),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]))).RelayDock})),ke=class extends T.Component{state={failed:!1};static getDerivedStateFromError(e){return{failed:!0}}render(){return this.state.failed?null:this.props.children}},Ae=e=>{switch(e._tag){case`RelayAuthenticationRequired`:return`Authenticate with this product before using its Relay conversations.`;case`RelayAuthorizationDenied`:return`This session cannot use Relay for pull-request conversations.`;case`RelayAuthenticationUnavailable`:return`The product authentication boundary is unavailable.`;case`PullRequestConversationNotFound`:return`No Relay conversation matches ${e.repositoryName} PR #${e.pullRequestId}.`;case`PullRequestConversationAmbiguous`:return`${String(e.matches)} Relay conversations match this pull request; include its account.`;case`PullRequestConversationLookupFailed`:return`Relay could not search the product's pull-request conversations.`;case`PullRequestConversationRedirectFailed`:return`Relay found the conversation but could not open its exact pull-request page.`;case`PullRequestConversationContinuationRejected`:return e.reason===`conversation-busy`?`This pull-request conversation already has a run in progress.`:e.reason===`selection-unavailable`?`The selected Relay profile or model is no longer available.`:`This pull-request conversation no longer exists.`;case`PullRequestConversationContinuationFailed`:return`Relay could not continue this pull-request conversation.`;case`RelayProductAdapterContractError`:return`The active product does not own this pull-request conversation.`;case`RelayProductContinuationReceiptMismatch`:return`Relay returned a continuation receipt for another pull-request conversation.`}},je=e=>{let t=e.reasons.find(se);return t===void 0?`Relay ended unexpectedly. No request was accepted.`:Ae(t.error)},Z=()=>{let[e,t]=(0,T.useState)({description:null,pending:!1}),n=(0,T.useRef)(0);return(0,T.useEffect)(()=>()=>{n.current+=1},[]),[e,(0,T.useCallback)(e=>{n.current+=1;let r=n.current;t({description:null,pending:!0}),d(e).then(e=>{n.current===r&&t(re(e)?{description:null,pending:!1}:{description:je(e.cause),pending:!1})})},[])]},Me=({host:e})=>{let[t,n]=(0,T.useState)(``),[r,i]=(0,T.useState)(``),[a,o]=(0,T.useState)(``),[s,c]=(0,T.useState)(``),[l,u]=(0,T.useState)(null),[d,f]=Z();return(0,E.jsxs)(`form`,{"aria-label":`Find a pull request conversation`,onSubmit:n=>{n.preventDefault();let i=t.trim(),o=i.length===0?{provider:`codecommit`,pullRequestId:r.trim(),region:a.trim(),repositoryName:s.trim()}:{accountId:i,provider:`codecommit`,pullRequestId:r.trim(),region:a.trim(),repositoryName:s.trim()},c=h(me)(o);if(y(c)){u(`Enter a region, repository, and pull-request number.`);return}u(null),f(e.locatePullRequestConversation(c.success))},children:[(0,E.jsx)(`h2`,{children:`Find a pull request conversation`}),(0,E.jsx)(`p`,{children:`Relay opens the exact product page before continuing a PR thread.`}),(0,E.jsxs)(`label`,{children:[(0,E.jsx)(`span`,{children:`Region`}),(0,E.jsx)(`input`,{onChange:e=>o(e.currentTarget.value),value:a})]}),(0,E.jsxs)(`label`,{children:[(0,E.jsx)(`span`,{children:`Repository`}),(0,E.jsx)(`input`,{onChange:e=>c(e.currentTarget.value),value:s})]}),(0,E.jsxs)(`label`,{children:[(0,E.jsx)(`span`,{children:`Pull request`}),(0,E.jsx)(`input`,{inputMode:`numeric`,onChange:e=>i(e.currentTarget.value),value:r})]}),(0,E.jsxs)(`label`,{children:[(0,E.jsx)(`span`,{children:`Account (optional)`}),(0,E.jsx)(`input`,{onChange:e=>n(e.currentTarget.value),value:t})]}),l===null&&d.description===null?null:(0,E.jsx)(`p`,{"aria-live":`assertive`,role:`alert`,children:l??d.description}),(0,E.jsx)(`button`,{disabled:d.pending,type:`submit`,children:d.pending?`Opening PR conversation…`:`Open PR conversation`})]})},Ne=({messages:e})=>e.length===0?(0,E.jsx)(`p`,{children:`No Relay turns yet. The first message starts this PR's durable thread.`}):(0,E.jsx)(`ol`,{"aria-label":`Pull request conversation`,children:e.map(e=>(0,E.jsxs)(`li`,{"data-relay-message-role":e.role,children:[(0,E.jsx)(`strong`,{children:e.role===`relay`?`Relay`:e.role===`operator`?`You`:`System`}),(0,E.jsx)(`p`,{children:e.text})]},e.id))}),Pe=(e,t)=>t.selection.profiles.some(({id:t})=>t===e.profileId)&&t.selection.models.some(({id:t})=>t===e.modelId),Fe=({registration:e,selection:t})=>{let[n,r]=(0,T.useState)(``),[i,a]=(0,T.useState)(null),[o,s]=Z(),c=Pe(t,e);return(0,E.jsxs)(`form`,{"aria-label":`Continue pull request conversation`,onSubmit:i=>{if(i.preventDefault(),!c){a(`Rerun Relay with the selected profile or model before continuing this PR thread.`);return}let o=h(ve)({conversation:e.conversation,message:n.trim(),selection:t});if(y(o)){a(`Enter a pull-request request of 8,000 characters or fewer.`);return}a(null),s(e.continuePullRequestConversation(o.success).pipe(ee(()=>l(()=>r(``)))))},children:[(0,E.jsxs)(`label`,{children:[(0,E.jsx)(`span`,{children:`Continue this PR thread`}),(0,E.jsx)(`textarea`,{maxLength:8e3,onChange:e=>r(e.currentTarget.value),placeholder:`Ask Relay to verify one concrete part of this pull request…`,rows:3,value:n})]}),i===null&&o.description===null?null:(0,E.jsx)(`p`,{"aria-live":`assertive`,role:`alert`,children:i??o.description}),!c&&i===null?(0,E.jsx)(`p`,{"aria-live":`polite`,children:`Rerun Relay with the selected profile or model before continuing this PR thread.`}):null,(0,E.jsx)(`button`,{disabled:o.pending||n.trim().length===0||!c,type:`submit`,children:o.pending?`Continuing on this PR…`:`Continue on this PR`})]})},Ie=(e,t)=>{if(t===null)return{content:(0,E.jsx)(Me,{host:e}),status:`ready`};switch(t.status){case`loading`:return{description:`Loading the durable conversation for this pull request.`,status:`loading`,title:`Loading PR thread`};case`error`:return{description:t.description,status:`error`,title:`PR thread unavailable`};case`unavailable`:return{description:t.description,status:`unavailable`,title:`Relay unavailable for this PR`};case`ready`:return{content:(0,E.jsx)(Ne,{messages:t.messages}),status:`ready`}}},Le=e=>e===null?`host`:JSON.stringify(Y(e.conversation)),Re=e=>JSON.stringify({modelId:e.modelId,models:e.models,profileId:e.profileId,profiles:e.profiles}),ze=({host:e})=>{let t=i(),n=t?.selection??e.selection,r=Le(t),a=Re(n),[o,s]=(0,T.useState)(n);(0,T.useEffect)(()=>s(n),[a,r]);let c=e=>{let t=o.models.find(({id:t})=>t===e);if(t===void 0)return;let n=o.profiles.find(({id:e})=>e===t.id);s(n===void 0?{...o,modelId:t.id}:{...o,modelId:t.id,profileId:n.id})},l=e=>{let t=o.profiles.find(({id:t})=>t===e);if(t===void 0)return;let n=o.models.find(({id:e})=>e===t.id);s(n===void 0?{...o,profileId:t.id}:{...o,modelId:n.id,profileId:t.id})},u=t?.status===`ready`?t:null;return(0,E.jsx)(`div`,{"data-relay-product-dock-chrome":``,style:{insetBlockEnd:`max(var(--rly-space-16), env(safe-area-inset-bottom, 0px))`,insetInlineEnd:`max(var(--rly-space-16), env(safe-area-inset-right, 0px))`,position:`fixed`,zIndex:80},children:(0,E.jsx)(ke,{children:(0,E.jsx)(T.Suspense,{fallback:null,children:(0,E.jsx)(Oe,{context:t?.context??e.context,defaultOpen:!1,footer:u===null?void 0:(0,E.jsx)(Fe,{registration:u,selection:o},r),selection:{model:{onValueChange:c,options:o.models.map(({id:e,label:t})=>({label:t,value:e})),value:o.modelId},profile:{onValueChange:l,options:o.profiles.map(({id:e,label:t})=>({label:t,value:e})),value:o.profileId}},state:Ie(e,t)})})})})},Q=(e,t)=>e.accountLabel===t||e.accountLabel.endsWith(` · AWS ${t}`),$=(e,t)=>{switch(e._tag){case`found`:return t===void 0||Q(e.candidate,t)?[e.candidate]:[];case`ambiguous`:return t===void 0?e.candidates:e.candidates.filter(e=>Q(e,t));case`account-identity-unavailable`:case`not-found`:return[]}},Be=(e,t)=>{let n=$(e,t);return n.length===1?n[0]:void 0},Ve=e=>{let t=h(j)(e);if(y(t))throw new X({boundary:`selector`});return t.success},He=e=>{let t=h(J)(e);if(y(t))throw new X({boundary:`conversation`});return t.success},Ue=Ve({modelId:`configured-default`,models:[{id:`configured-default`,label:`Configured default`}],profileId:`read-only-review`,profiles:[{id:`read-only-review`,label:`Read-only PR review`}]});export{Be as a,De as c,Se as d,Te as f,Y as h,Ve as i,Ee as l,xe as m,Ue as n,ze as o,be as p,He as r,Ce as s,$ as t,we as u};
3
- //# sourceMappingURL=controlCenterRelayDock-CyvFJBSX.js.map
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/patterns-DsePY14f.js","assets/rolldown-runtime-hePW80VL.js","assets/react-Cvdyeg_0.js","assets/Dialog-B9Ub_gMT-D8Er5PRs.js","assets/loader-circle-CUNkyj3b.js","assets/PortalProvider-CN_81Fy3-Cu7FMqdg.js","assets/jsx-runtime-NZYk81nU.js","assets/index-CyCO7dDM.js","assets/hooks-CGvBGjhq.js","assets/index-Dn0IKu62.css"])))=>i.map(i=>d[i]);
2
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{O as r,s as i}from"./index-CyCO7dDM.js";import{Dn as a,En as o,Fn as s,Ln as c,Ni as l,Nn as u,Oi as d,On as f,Pi as ee,Pn as p,Un as m,Yn as h,bn as g,cr as _,dr as v,fa as y,fi as te,fr as ne,gr as b,ia as re,ir as ie,lr as x,mr as S,oa as ae,qn as oe,sr as C,ta as se,ur as w,ya as ce,yi as le}from"./agent-api-CmrKwleK.js";var T=e(t(),1),E=n(),D=u.check(v(),x(),C(200)).pipe(m(`RelaySelectorId`)),O=p({id:D,label:u.check(v(),x(),C(200))}),k=p({modelId:D,models:g(O).check(_(1)),profileId:D,profiles:g(O).check(_(1))}),A=e=>new Set(e.map(({id:e})=>e)).size===e.length,j=k.check(S(({profiles:e})=>A(e),{expected:`unique Relay profile option identifiers`}),S(({models:e})=>A(e),{expected:`unique Relay model option identifiers`}),S(({profileId:e,profiles:t})=>t.some(({id:t})=>t===e),{expected:`a selected Relay profile present in the profile options`}),S(({modelId:e,models:t})=>t.some(({id:t})=>t===e),{expected:`a selected Relay model present in the model options`})),M=c({collapsed:{},expanded:{}}),ue=p({dock:M,selection:j}),N=class extends s()(`InvalidRelaySelectorState`,{reason:f([`duplicate-model`,`duplicate-profile`,`invalid-input`,`model-not-found`,`profile-not-found`])}){},de=oe(k);te(`RelayProduct.makeInitialRelayState`)(function*(e){let t=yield*de(e).pipe(le(()=>new N({reason:`invalid-input`})));return A(t.profiles)?A(t.models)?t.profiles.some(({id:e})=>e===t.profileId)?t.models.some(({id:e})=>e===t.modelId)?ue.make({dock:M.cases.collapsed.make({}),selection:j.make(t)}):yield*new N({reason:`model-not-found`}):yield*new N({reason:`profile-not-found`}):yield*new N({reason:`duplicate-model`}):yield*new N({reason:`duplicate-profile`})});var P=e=>u.check(v(),x(),C(e)),F=e=>u.check(ne(7),w(/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/u,{expected:`a canonical lowercase UUID v7`})).pipe(m(e)),I=f([`codecommit`,`control-center`]),L=f([`continue-pull-request-conversation`,`locate-pull-request-conversation`]),R=P(200).pipe(m(`RelayPrincipalId`)),z=F(`RelayWorkspaceId`),fe=F(`RelayPluginConnectionId`),pe=F(`RelayEntityId`),B=P(1e3).pipe(m(`RelayRepositoryName`)),V=P(200).pipe(m(`RelayPullRequestId`)),H=P(200).pipe(m(`RelayAccountId`)),U=P(100).pipe(m(`RelayRegion`)),W=u.check(v(),x(),C(4096),w(/^\/(?!\/)/u,{expected:`an application-owned absolute path`}));c({codecommit:{principalId:R},"control-center":{principalId:R,workspaceId:z}});var me=p({accountId:b(H),provider:a(`codecommit`),pullRequestId:V,region:U,repositoryName:B}),G=p({pluginConnectionId:fe,pullRequestId:V,repositoryName:B,workspaceId:z}),K=p({accountId:H,pullRequestId:V,region:U,repositoryName:B}),he=p({entityId:pe,href:W}),ge=p({accountId:H,href:W,pullRequestId:V,routeAccountId:b(H)}),q=c({codecommit:{...K.fields},"control-center":{...G.fields}}),J=c({codecommit:{route:ge,selection:j,thread:K},"control-center":{route:he,selection:j,thread:G}}).check(S(e=>{switch(e._tag){case`codecommit`:return e.route.accountId===e.thread.accountId&&e.route.pullRequestId===e.thread.pullRequestId&&e.route.href===`/accounts/${encodeURIComponent(e.route.routeAccountId??e.route.accountId)}/prs/${encodeURIComponent(e.route.pullRequestId)}`;case`control-center`:return e.route.href===`/w/${e.thread.workspaceId}/items/${e.route.entityId}`}},{expected:`a product-qualified thread paired with its exact pull-request route`})),Y=e=>{switch(e._tag){case`codecommit`:return q.cases.codecommit.make(e.thread);case`control-center`:return q.cases[`control-center`].make(e.thread)}},_e=u.check(v(),x(),C(8e3)).pipe(m(`PullRequestContinuationMessage`)),ve=p({conversation:J,message:_e,selection:j}),ye=P(200).pipe(m(`RelayContinuationMessageId`));p({messageId:ye,thread:q});var be=class extends s()(`RelayAuthenticationRequired`,{operation:L,product:I}){},xe=class extends s()(`RelayAuthorizationDenied`,{operation:L,product:I}){};s()(`RelayAuthenticationUnavailable`,{operation:L,product:I});var Se=class extends s()(`PullRequestConversationNotFound`,{product:I,pullRequestId:V,repositoryName:B}){},Ce=class extends s()(`PullRequestConversationAmbiguous`,{matches:o.check(ie(1)),product:I,pullRequestId:V,repositoryName:B}){},we=class extends s()(`PullRequestConversationLookupFailed`,{product:I}){},Te=class extends s()(`PullRequestConversationRedirectFailed`,{href:W,product:I}){},Ee=class extends s()(`PullRequestConversationContinuationRejected`,{product:I,reason:f([`conversation-busy`,`selection-unavailable`,`thread-not-found`]),thread:q}){},De=class extends s()(`PullRequestConversationContinuationFailed`,{product:I,thread:q}){};s()(`RelayProductAdapterContractError`,{actualProduct:I,expectedProduct:I,operation:L}),s()(`RelayProductContinuationReceiptMismatch`,{actualThread:q,expectedThread:q}),ce()(`@knpkv/relay-product/RelayProduct`);var X=class extends ae(`RelayProductDockInvariantViolation`){},Oe=(0,T.lazy)(async()=>({default:(await r(()=>import(`./patterns-DsePY14f.js`).then(e=>e.t),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]))).RelayDock})),ke=class extends T.Component{state={failed:!1};static getDerivedStateFromError(e){return{failed:!0}}render(){return this.state.failed?null:this.props.children}},Ae=e=>{switch(e._tag){case`RelayAuthenticationRequired`:return`Authenticate with this product before using its Relay conversations.`;case`RelayAuthorizationDenied`:return`This session cannot use Relay for pull-request conversations.`;case`RelayAuthenticationUnavailable`:return`The product authentication boundary is unavailable.`;case`PullRequestConversationNotFound`:return`No Relay conversation matches ${e.repositoryName} PR #${e.pullRequestId}.`;case`PullRequestConversationAmbiguous`:return`${String(e.matches)} Relay conversations match this pull request; include its account.`;case`PullRequestConversationLookupFailed`:return`Relay could not search the product's pull-request conversations.`;case`PullRequestConversationRedirectFailed`:return`Relay found the conversation but could not open its exact pull-request page.`;case`PullRequestConversationContinuationRejected`:return e.reason===`conversation-busy`?`This pull-request conversation already has a run in progress.`:e.reason===`selection-unavailable`?`The selected Relay profile or model is no longer available.`:`This pull-request conversation no longer exists.`;case`PullRequestConversationContinuationFailed`:return`Relay could not continue this pull-request conversation.`;case`RelayProductAdapterContractError`:return`The active product does not own this pull-request conversation.`;case`RelayProductContinuationReceiptMismatch`:return`Relay returned a continuation receipt for another pull-request conversation.`}},je=e=>{let t=e.reasons.find(se);return t===void 0?`Relay ended unexpectedly. No request was accepted.`:Ae(t.error)},Z=()=>{let[e,t]=(0,T.useState)({description:null,pending:!1}),n=(0,T.useRef)(0);return(0,T.useEffect)(()=>()=>{n.current+=1},[]),[e,(0,T.useCallback)(e=>{n.current+=1;let r=n.current;t({description:null,pending:!0}),d(e).then(e=>{n.current===r&&t(re(e)?{description:null,pending:!1}:{description:je(e.cause),pending:!1})})},[])]},Me=({host:e})=>{let[t,n]=(0,T.useState)(``),[r,i]=(0,T.useState)(``),[a,o]=(0,T.useState)(``),[s,c]=(0,T.useState)(``),[l,u]=(0,T.useState)(null),[d,f]=Z();return(0,E.jsxs)(`form`,{"aria-label":`Find a pull request conversation`,onSubmit:n=>{n.preventDefault();let i=t.trim(),o=i.length===0?{provider:`codecommit`,pullRequestId:r.trim(),region:a.trim(),repositoryName:s.trim()}:{accountId:i,provider:`codecommit`,pullRequestId:r.trim(),region:a.trim(),repositoryName:s.trim()},c=h(me)(o);if(y(c)){u(`Enter a region, repository, and pull-request number.`);return}u(null),f(e.locatePullRequestConversation(c.success))},children:[(0,E.jsx)(`h2`,{children:`Find a pull request conversation`}),(0,E.jsx)(`p`,{children:`Relay opens the exact product page before continuing a PR thread.`}),(0,E.jsxs)(`label`,{children:[(0,E.jsx)(`span`,{children:`Region`}),(0,E.jsx)(`input`,{onChange:e=>o(e.currentTarget.value),value:a})]}),(0,E.jsxs)(`label`,{children:[(0,E.jsx)(`span`,{children:`Repository`}),(0,E.jsx)(`input`,{onChange:e=>c(e.currentTarget.value),value:s})]}),(0,E.jsxs)(`label`,{children:[(0,E.jsx)(`span`,{children:`Pull request`}),(0,E.jsx)(`input`,{inputMode:`numeric`,onChange:e=>i(e.currentTarget.value),value:r})]}),(0,E.jsxs)(`label`,{children:[(0,E.jsx)(`span`,{children:`Account (optional)`}),(0,E.jsx)(`input`,{onChange:e=>n(e.currentTarget.value),value:t})]}),l===null&&d.description===null?null:(0,E.jsx)(`p`,{"aria-live":`assertive`,role:`alert`,children:l??d.description}),(0,E.jsx)(`button`,{disabled:d.pending,type:`submit`,children:d.pending?`Opening PR conversation…`:`Open PR conversation`})]})},Ne=({messages:e})=>e.length===0?(0,E.jsx)(`p`,{children:`No Relay turns yet. The first message starts this PR's durable thread.`}):(0,E.jsx)(`ol`,{"aria-label":`Pull request conversation`,children:e.map(e=>(0,E.jsxs)(`li`,{"data-relay-message-role":e.role,children:[(0,E.jsx)(`strong`,{children:e.role===`relay`?`Relay`:e.role===`operator`?`You`:`System`}),(0,E.jsx)(`p`,{children:e.text})]},e.id))}),Pe=(e,t)=>t.selection.profiles.some(({id:t})=>t===e.profileId)&&t.selection.models.some(({id:t})=>t===e.modelId),Fe=({registration:e,selection:t})=>{let[n,r]=(0,T.useState)(``),[i,a]=(0,T.useState)(null),[o,s]=Z(),c=Pe(t,e);return(0,E.jsxs)(`form`,{"aria-label":`Continue pull request conversation`,onSubmit:i=>{if(i.preventDefault(),!c){a(`Rerun Relay with the selected profile or model before continuing this PR thread.`);return}let o=h(ve)({conversation:e.conversation,message:n.trim(),selection:t});if(y(o)){a(`Enter a pull-request request of 8,000 characters or fewer.`);return}a(null),s(e.continuePullRequestConversation(o.success).pipe(ee(()=>l(()=>r(``)))))},children:[(0,E.jsxs)(`label`,{children:[(0,E.jsx)(`span`,{children:`Continue this PR thread`}),(0,E.jsx)(`textarea`,{maxLength:8e3,onChange:e=>r(e.currentTarget.value),placeholder:`Ask Relay to verify one concrete part of this pull request…`,rows:3,value:n})]}),i===null&&o.description===null?null:(0,E.jsx)(`p`,{"aria-live":`assertive`,role:`alert`,children:i??o.description}),!c&&i===null?(0,E.jsx)(`p`,{"aria-live":`polite`,children:`Rerun Relay with the selected profile or model before continuing this PR thread.`}):null,(0,E.jsx)(`button`,{disabled:o.pending||n.trim().length===0||!c,type:`submit`,children:o.pending?`Continuing on this PR…`:`Continue on this PR`})]})},Ie=(e,t)=>{if(t===null)return{content:(0,E.jsx)(Me,{host:e}),status:`ready`};switch(t.status){case`loading`:return{description:`Loading the durable conversation for this pull request.`,status:`loading`,title:`Loading PR thread`};case`error`:return{description:t.description,status:`error`,title:`PR thread unavailable`};case`unavailable`:return{description:t.description,status:`unavailable`,title:`Relay unavailable for this PR`};case`ready`:return{content:(0,E.jsx)(Ne,{messages:t.messages}),status:`ready`}}},Le=e=>e===null?`host`:JSON.stringify(Y(e.conversation)),Re=e=>JSON.stringify({modelId:e.modelId,models:e.models,profileId:e.profileId,profiles:e.profiles}),ze=({host:e})=>{let t=i(),n=t?.selection??e.selection,r=Le(t),a=Re(n),[o,s]=(0,T.useState)(n);(0,T.useEffect)(()=>s(n),[a,r]);let c=e=>{let t=o.models.find(({id:t})=>t===e);if(t===void 0)return;let n=o.profiles.find(({id:e})=>e===t.id);s(n===void 0?{...o,modelId:t.id}:{...o,modelId:t.id,profileId:n.id})},l=e=>{let t=o.profiles.find(({id:t})=>t===e);if(t===void 0)return;let n=o.models.find(({id:e})=>e===t.id);s(n===void 0?{...o,profileId:t.id}:{...o,modelId:n.id,profileId:t.id})},u=t?.status===`ready`?t:null;return(0,E.jsx)(`div`,{"data-relay-product-dock-chrome":``,style:{insetBlockEnd:`max(var(--rly-space-16), env(safe-area-inset-bottom, 0px))`,insetInlineEnd:`max(var(--rly-space-16), env(safe-area-inset-right, 0px))`,position:`fixed`,zIndex:80},children:(0,E.jsx)(ke,{children:(0,E.jsx)(T.Suspense,{fallback:null,children:(0,E.jsx)(Oe,{context:t?.context??e.context,defaultOpen:!1,footer:u===null?void 0:(0,E.jsx)(Fe,{registration:u,selection:o},r),selection:{model:{onValueChange:c,options:o.models.map(({id:e,label:t})=>({label:t,value:e})),value:o.modelId},profile:{onValueChange:l,options:o.profiles.map(({id:e,label:t})=>({label:t,value:e})),value:o.profileId}},state:Ie(e,t)})})})})},Q=(e,t)=>e.accountLabel===t||e.accountLabel.endsWith(` · AWS ${t}`),$=(e,t)=>{switch(e._tag){case`found`:return t===void 0||Q(e.candidate,t)?[e.candidate]:[];case`ambiguous`:return t===void 0?e.candidates:e.candidates.filter(e=>Q(e,t));case`account-identity-unavailable`:case`not-found`:return[]}},Be=(e,t)=>{let n=$(e,t);return n.length===1?n[0]:void 0},Ve=e=>{let t=h(j)(e);if(y(t))throw new X({boundary:`selector`});return t.success},He=e=>{let t=h(J)(e);if(y(t))throw new X({boundary:`conversation`});return t.success},Ue=Ve({modelId:`configured-default`,models:[{id:`configured-default`,label:`Configured default`}],profileId:`read-only-review`,profiles:[{id:`read-only-review`,label:`Read-only PR review`}]});export{Be as a,De as c,Se as d,Te as f,Y as h,Ve as i,Ee as l,xe as m,Ue as n,ze as o,be as p,He as r,Ce as s,$ as t,we as u};
3
+ //# sourceMappingURL=controlCenterRelayDock-Duxhij28.js.map
@@ -1 +1 @@
1
- {"version":3,"mappings":"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","names":["SelectorId","String$1","Schema.isTrimmed","Schema.isNonEmpty","Schema.isMaxLength","Schema.brand","RelaySelectorOption","Schema.Struct","RelaySelectorStateInput","Schema.Array","Schema.isMinLength","hasUniqueOptionIds","options","id","RelaySelectorState","Schema.makeFilter","profiles","models","profileId","modelId","RelayDockState","Schema.TaggedUnion","RelayState","InvalidRelaySelectorState","Schema.TaggedError","Schema.Literals","decodeSelectorStateInput","Schema.decodeUnknownEffect","Effect.fn","selection","input","Effect.mapError","trimmedIdentifier","maximumLength","canonicalUuid","Schema.isUUID","Schema.isPattern","brand","AgenticProduct","RelayProductOperation","PrincipalId","WorkspaceId","PluginConnectionId","EntityId","RepositoryName","PullRequestId","AccountId","Region","ProductPath","PullRequestConversationLocator","Schema.optionalKey","Schema.Literal","ControlCenterThreadIdentity","CodeCommitThreadIdentity","ControlCenterPullRequestRoute","CodeCommitPullRequestRoute","PullRequestThreadIdentity","PullRequestConversation","conversation","pullRequestThreadIdentity","PullRequestContinuationMessage","ContinuePullRequestConversationRequest","ContinuationMessageId","RelayAuthenticationRequired","RelayAuthorizationDenied","PullRequestConversationNotFound","PullRequestConversationAmbiguous","Int","Schema.isGreaterThan","PullRequestConversationLookupFailed","PullRequestConversationRedirectFailed","PullRequestConversationContinuationRejected","PullRequestConversationContinuationFailed","Context.Service","RelayProductDockInvariantViolation","Data.TaggedError","LazyRelayDock","lazy","__vitePreload","n","RelayProductDockChromeBoundary","Component","actionFailureDescription","failure","failureFromCause","cause","Cause.isFailReason","useRelayDockAction","state","setState","useState","request","useRef","import_react","useCallback","current","runPromiseExit","effect","Exit.isSuccess","exit","HostConversationLocator","accountId","setAccountId","pullRequestId","setPullRequestId","region","setRegion","repositoryName","setRepositoryName","validation","setValidation","action","runAction","_jsxs","event","account","locatorInput","decoded","Schema.decodeUnknownResult","Result.isFailure","host","_jsx","ThreadMessages","messages","message","relaySelectionMatchesRegistration","registration","PullRequestContinuation","setMessage","selectionMatchesRegistration","Effect.tap","Effect.sync","relayDockState","selectionIdentity","selectorRevision","RelayProductDockChrome","useRelayProductDockRegistration","activeSelection","identity","activeSelectorRevision","setSelection","setModel","option","value","pairedProfile","setProfile","pairedModel","readyRegistration","Suspense","candidateMatchesAccount","candidate","controlCenterRelayCandidatesForAccount","resolution","selectControlCenterRelayCandidate","matches","decodeControlCenterRelaySelector","decodeControlCenterRelayConversation","controlCenterRelayHostSelection"],"ignoreList":[],"sources":["../../../../relay-product/dist/model.js","../../../../relay-product/dist/conversation.js","../../../../relay-product/dist/dock.js","../../../src/client/controlCenterRelayDock.tsx"],"sourcesContent":["import * as Effect from \"effect/Effect\";\nimport * as Schema from \"effect/Schema\";\nconst SelectorId = Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(200)).pipe(Schema.brand(\"RelaySelectorId\"));\nexport const RelaySelectorOption = Schema.Struct({\n id: SelectorId,\n label: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(200))\n});\nconst RelaySelectorStateInput = Schema.Struct({\n modelId: SelectorId,\n models: Schema.Array(RelaySelectorOption).check(Schema.isMinLength(1)),\n profileId: SelectorId,\n profiles: Schema.Array(RelaySelectorOption).check(Schema.isMinLength(1))\n});\nconst hasUniqueOptionIds = (options) => new Set(options.map(({ id }) => id)).size === options.length;\nexport const RelaySelectorState = RelaySelectorStateInput.check(Schema.makeFilter(({ profiles }) => hasUniqueOptionIds(profiles), {\n expected: \"unique Relay profile option identifiers\"\n}), Schema.makeFilter(({ models }) => hasUniqueOptionIds(models), {\n expected: \"unique Relay model option identifiers\"\n}), Schema.makeFilter(({ profileId, profiles }) => profiles.some(({ id }) => id === profileId), {\n expected: \"a selected Relay profile present in the profile options\"\n}), Schema.makeFilter(({ modelId, models }) => models.some(({ id }) => id === modelId), {\n expected: \"a selected Relay model present in the model options\"\n}));\nexport const RelayDockState = Schema.TaggedUnion({\n collapsed: {},\n expanded: {}\n});\nexport const RelayState = Schema.Struct({\n dock: RelayDockState,\n selection: RelaySelectorState\n});\nexport class InvalidRelaySelectorState extends Schema.TaggedError()(\"InvalidRelaySelectorState\", {\n reason: Schema.Literals([\n \"duplicate-model\",\n \"duplicate-profile\",\n \"invalid-input\",\n \"model-not-found\",\n \"profile-not-found\"\n ])\n}) {\n}\nconst decodeSelectorStateInput = Schema.decodeUnknownEffect(RelaySelectorStateInput);\n/** Decode the visible selector state and initialize the product-owned dock as collapsed. */\nexport const makeInitialRelayState = Effect.fn(\"RelayProduct.makeInitialRelayState\")(function* (input) {\n const selection = yield* decodeSelectorStateInput(input).pipe(Effect.mapError(() => new InvalidRelaySelectorState({ reason: \"invalid-input\" })));\n if (!hasUniqueOptionIds(selection.profiles)) {\n return yield* new InvalidRelaySelectorState({ reason: \"duplicate-profile\" });\n }\n if (!hasUniqueOptionIds(selection.models)) {\n return yield* new InvalidRelaySelectorState({ reason: \"duplicate-model\" });\n }\n if (!selection.profiles.some(({ id }) => id === selection.profileId)) {\n return yield* new InvalidRelaySelectorState({ reason: \"profile-not-found\" });\n }\n if (!selection.models.some(({ id }) => id === selection.modelId)) {\n return yield* new InvalidRelaySelectorState({ reason: \"model-not-found\" });\n }\n return RelayState.make({\n dock: RelayDockState.cases.collapsed.make({}),\n selection: RelaySelectorState.make(selection)\n });\n});\n//# sourceMappingURL=model.js.map","import * as Context from \"effect/Context\";\nimport * as Effect from \"effect/Effect\";\nimport * as Layer from \"effect/Layer\";\nimport * as Schema from \"effect/Schema\";\nimport { RelaySelectorState } from \"./model.js\";\nconst trimmedIdentifier = (maximumLength) => Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(maximumLength));\nconst canonicalUuid = (brand) => Schema.String.check(Schema.isUUID(7), Schema.isPattern(/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/u, {\n expected: \"a canonical lowercase UUID v7\"\n})).pipe(Schema.brand(brand));\nexport const AgenticProduct = Schema.Literals([\"codecommit\", \"control-center\"]);\nexport const RelayProductOperation = Schema.Literals([\n \"continue-pull-request-conversation\",\n \"locate-pull-request-conversation\"\n]);\nconst PrincipalId = trimmedIdentifier(200).pipe(Schema.brand(\"RelayPrincipalId\"));\nconst WorkspaceId = canonicalUuid(\"RelayWorkspaceId\");\nconst PluginConnectionId = canonicalUuid(\"RelayPluginConnectionId\");\nconst EntityId = canonicalUuid(\"RelayEntityId\");\nconst RepositoryName = trimmedIdentifier(1_000).pipe(Schema.brand(\"RelayRepositoryName\"));\nconst PullRequestId = trimmedIdentifier(200).pipe(Schema.brand(\"RelayPullRequestId\"));\nconst AccountId = trimmedIdentifier(200).pipe(Schema.brand(\"RelayAccountId\"));\nconst Region = trimmedIdentifier(100).pipe(Schema.brand(\"RelayRegion\"));\nconst ProductPath = Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(4_096), Schema.isPattern(/^\\/(?!\\/)/u, { expected: \"an application-owned absolute path\" }));\nexport const ProductAuthorization = Schema.TaggedUnion({\n codecommit: {\n principalId: PrincipalId\n },\n \"control-center\": {\n principalId: PrincipalId,\n workspaceId: WorkspaceId\n }\n});\n/** Provider identity a host agent may use to find one PR conversation. */\nexport const PullRequestConversationLocator = Schema.Struct({\n accountId: Schema.optionalKey(AccountId),\n provider: Schema.Literal(\"codecommit\"),\n pullRequestId: PullRequestId,\n region: Region,\n repositoryName: RepositoryName\n});\nconst ControlCenterThreadIdentity = Schema.Struct({\n pluginConnectionId: PluginConnectionId,\n pullRequestId: PullRequestId,\n repositoryName: RepositoryName,\n workspaceId: WorkspaceId\n});\nconst CodeCommitThreadIdentity = Schema.Struct({\n accountId: AccountId,\n pullRequestId: PullRequestId,\n region: Region,\n repositoryName: RepositoryName\n});\nconst ControlCenterPullRequestRoute = Schema.Struct({\n entityId: EntityId,\n href: ProductPath\n});\nconst CodeCommitPullRequestRoute = Schema.Struct({\n accountId: AccountId,\n href: ProductPath,\n /** Credential/account alias used by the browser URL; accountId stays canonical. */\n pullRequestId: PullRequestId,\n routeAccountId: Schema.optionalKey(AccountId)\n});\n/** Stable product-qualified identity. Head revisions never participate in thread identity. */\nexport const PullRequestThreadIdentity = Schema.TaggedUnion({\n codecommit: {\n ...CodeCommitThreadIdentity.fields\n },\n \"control-center\": {\n ...ControlCenterThreadIdentity.fields\n }\n});\n/** Durable thread identity, exact product route, and explicit Relay selection for one PR. */\nexport const PullRequestConversation = Schema.TaggedUnion({\n codecommit: {\n route: CodeCommitPullRequestRoute,\n selection: RelaySelectorState,\n thread: CodeCommitThreadIdentity\n },\n \"control-center\": {\n route: ControlCenterPullRequestRoute,\n selection: RelaySelectorState,\n thread: ControlCenterThreadIdentity\n }\n}).check(Schema.makeFilter((conversation) => {\n switch (conversation._tag) {\n case \"codecommit\":\n return (conversation.route.accountId === conversation.thread.accountId &&\n conversation.route.pullRequestId === conversation.thread.pullRequestId &&\n conversation.route.href ===\n `/accounts/${encodeURIComponent(conversation.route.routeAccountId ?? conversation.route.accountId)}/prs/${encodeURIComponent(conversation.route.pullRequestId)}`);\n case \"control-center\":\n return (conversation.route.href ===\n `/w/${conversation.thread.workspaceId}/items/${conversation.route.entityId}`);\n }\n}, { expected: \"a product-qualified thread paired with its exact pull-request route\" }));\nexport const pullRequestThreadIdentity = (conversation) => {\n switch (conversation._tag) {\n case \"codecommit\":\n return PullRequestThreadIdentity.cases.codecommit.make(conversation.thread);\n case \"control-center\":\n return PullRequestThreadIdentity.cases[\"control-center\"].make(conversation.thread);\n }\n};\nexport const PullRequestContinuationMessage = Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(8_000)).pipe(Schema.brand(\"PullRequestContinuationMessage\"));\nexport const ContinuePullRequestConversationRequest = Schema.Struct({\n conversation: PullRequestConversation,\n message: PullRequestContinuationMessage,\n selection: RelaySelectorState\n});\nconst ContinuationMessageId = trimmedIdentifier(200).pipe(Schema.brand(\"RelayContinuationMessageId\"));\nexport const PullRequestConversationContinuation = Schema.Struct({\n messageId: ContinuationMessageId,\n thread: PullRequestThreadIdentity\n});\nexport class RelayAuthenticationRequired extends Schema.TaggedError()(\"RelayAuthenticationRequired\", {\n operation: RelayProductOperation,\n product: AgenticProduct\n}) {\n}\nexport class RelayAuthorizationDenied extends Schema.TaggedError()(\"RelayAuthorizationDenied\", {\n operation: RelayProductOperation,\n product: AgenticProduct\n}) {\n}\nexport class RelayAuthenticationUnavailable extends Schema.TaggedError()(\"RelayAuthenticationUnavailable\", {\n operation: RelayProductOperation,\n product: AgenticProduct\n}) {\n}\nexport class PullRequestConversationNotFound extends Schema.TaggedError()(\"PullRequestConversationNotFound\", {\n product: AgenticProduct,\n pullRequestId: PullRequestId,\n repositoryName: RepositoryName\n}) {\n}\nexport class PullRequestConversationAmbiguous extends Schema.TaggedError()(\"PullRequestConversationAmbiguous\", {\n matches: Schema.Int.check(Schema.isGreaterThan(1)),\n product: AgenticProduct,\n pullRequestId: PullRequestId,\n repositoryName: RepositoryName\n}) {\n}\nexport class PullRequestConversationLookupFailed extends Schema.TaggedError()(\"PullRequestConversationLookupFailed\", {\n product: AgenticProduct\n}) {\n}\nexport class PullRequestConversationRedirectFailed extends Schema.TaggedError()(\"PullRequestConversationRedirectFailed\", {\n href: ProductPath,\n product: AgenticProduct\n}) {\n}\nexport class PullRequestConversationContinuationRejected extends Schema.TaggedError()(\"PullRequestConversationContinuationRejected\", {\n product: AgenticProduct,\n reason: Schema.Literals([\"conversation-busy\", \"selection-unavailable\", \"thread-not-found\"]),\n thread: PullRequestThreadIdentity\n}) {\n}\nexport class PullRequestConversationContinuationFailed extends Schema.TaggedError()(\"PullRequestConversationContinuationFailed\", {\n product: AgenticProduct,\n thread: PullRequestThreadIdentity\n}) {\n}\nexport class RelayProductAdapterContractError extends Schema.TaggedError()(\"RelayProductAdapterContractError\", {\n actualProduct: AgenticProduct,\n expectedProduct: AgenticProduct,\n operation: RelayProductOperation\n}) {\n}\nexport class RelayProductContinuationReceiptMismatch extends Schema.TaggedError()(\"RelayProductContinuationReceiptMismatch\", {\n actualThread: PullRequestThreadIdentity,\n expectedThread: PullRequestThreadIdentity\n}) {\n}\nexport class RelayProduct extends Context.Service()(\"@knpkv/relay-product/RelayProduct\") {\n}\nconst requireProduct = (expectedProduct, actualProduct, operation) => expectedProduct === actualProduct\n ? Effect.void\n : new RelayProductAdapterContractError({ actualProduct, expectedProduct, operation });\nconst samePullRequestThread = (left, right) => {\n if (left._tag !== right._tag)\n return false;\n switch (left._tag) {\n case \"codecommit\":\n return (right._tag === \"codecommit\" &&\n left.accountId === right.accountId &&\n left.pullRequestId === right.pullRequestId &&\n left.region === right.region &&\n left.repositoryName === right.repositoryName);\n case \"control-center\":\n return (right._tag === \"control-center\" &&\n left.pluginConnectionId === right.pluginConnectionId &&\n left.pullRequestId === right.pullRequestId &&\n left.repositoryName === right.repositoryName &&\n left.workspaceId === right.workspaceId);\n }\n};\n/** One orchestration path shared by Control Center and CodeCommit product ports. */\nexport const makeRelayProductAdapter = (port) => {\n const openPullRequestConversation = Effect.fn(\"RelayProduct.openPullRequestConversation\")(function* (locator) {\n const operation = \"locate-pull-request-conversation\";\n const authorization = yield* port.authorize(operation);\n yield* requireProduct(port.product, authorization._tag, operation);\n const conversation = yield* port.locatePullRequestConversation(authorization, locator);\n yield* requireProduct(port.product, conversation._tag, operation);\n yield* port.redirectToPullRequest(conversation);\n return conversation;\n });\n const continuePullRequestConversation = Effect.fn(\"RelayProduct.continuePullRequestConversation\")(function* (request) {\n const operation = \"continue-pull-request-conversation\";\n const authorization = yield* port.authorize(operation);\n yield* requireProduct(port.product, authorization._tag, operation);\n yield* requireProduct(port.product, request.conversation._tag, operation);\n const receipt = yield* port.continuePullRequestConversation(authorization, request);\n const expectedThread = pullRequestThreadIdentity(request.conversation);\n if (!samePullRequestThread(expectedThread, receipt.thread)) {\n return yield* new RelayProductContinuationReceiptMismatch({\n actualThread: receipt.thread,\n expectedThread\n });\n }\n return receipt;\n });\n return RelayProduct.of({ continuePullRequestConversation, openPullRequestConversation });\n};\nexport const layer = (port) => Layer.succeed(RelayProduct, makeRelayProductAdapter(port));\n//# sourceMappingURL=conversation.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as Cause from \"effect/Cause\";\nimport * as Data from \"effect/Data\";\nimport * as Effect from \"effect/Effect\";\nimport * as Exit from \"effect/Exit\";\nimport * as Result from \"effect/Result\";\nimport * as Schema from \"effect/Schema\";\nimport { Component, lazy, Suspense, useCallback, useEffect, useRef, useState } from \"react\";\nimport { ContinuePullRequestConversationRequest, PullRequestConversationLocator, pullRequestThreadIdentity } from \"./conversation.js\";\nimport { RelayProductDockProvider, useRelayProductDockRegistration } from \"./registry.js\";\nexport class RelayProductDockInvariantViolation extends Data.TaggedError(\"RelayProductDockInvariantViolation\") {\n}\nconst LazyRelayDock = lazy(async () => {\n const patterns = await import(\"@knpkv/rly/patterns\");\n return { default: patterns.RelayDock };\n});\n/** Keep routed product content mounted when optional Relay chrome cannot load. */\nexport class RelayProductDockChromeBoundary extends Component {\n state = { failed: false };\n static getDerivedStateFromError(cause) {\n void cause;\n return { failed: true };\n }\n render() {\n return this.state.failed ? null : this.props.children;\n }\n}\nconst actionFailureDescription = (failure) => {\n switch (failure._tag) {\n case \"RelayAuthenticationRequired\":\n return \"Authenticate with this product before using its Relay conversations.\";\n case \"RelayAuthorizationDenied\":\n return \"This session cannot use Relay for pull-request conversations.\";\n case \"RelayAuthenticationUnavailable\":\n return \"The product authentication boundary is unavailable.\";\n case \"PullRequestConversationNotFound\":\n return `No Relay conversation matches ${failure.repositoryName} PR #${failure.pullRequestId}.`;\n case \"PullRequestConversationAmbiguous\":\n return `${String(failure.matches)} Relay conversations match this pull request; include its account.`;\n case \"PullRequestConversationLookupFailed\":\n return \"Relay could not search the product's pull-request conversations.\";\n case \"PullRequestConversationRedirectFailed\":\n return \"Relay found the conversation but could not open its exact pull-request page.\";\n case \"PullRequestConversationContinuationRejected\":\n return failure.reason === \"conversation-busy\"\n ? \"This pull-request conversation already has a run in progress.\"\n : failure.reason === \"selection-unavailable\"\n ? \"The selected Relay profile or model is no longer available.\"\n : \"This pull-request conversation no longer exists.\";\n case \"PullRequestConversationContinuationFailed\":\n return \"Relay could not continue this pull-request conversation.\";\n case \"RelayProductAdapterContractError\":\n return \"The active product does not own this pull-request conversation.\";\n case \"RelayProductContinuationReceiptMismatch\":\n return \"Relay returned a continuation receipt for another pull-request conversation.\";\n }\n};\nconst failureFromCause = (cause) => {\n const failure = cause.reasons.find(Cause.isFailReason);\n return failure === undefined\n ? \"Relay ended unexpectedly. No request was accepted.\"\n : actionFailureDescription(failure.error);\n};\nconst useRelayDockAction = () => {\n const [state, setState] = useState({ description: null, pending: false });\n const request = useRef(0);\n useEffect(() => () => {\n request.current += 1;\n }, []);\n const run = useCallback((effect) => {\n request.current += 1;\n const current = request.current;\n setState({ description: null, pending: true });\n void Effect.runPromiseExit(effect).then((exit) => {\n if (request.current !== current)\n return;\n setState(Exit.isSuccess(exit)\n ? { description: null, pending: false }\n : { description: failureFromCause(exit.cause), pending: false });\n });\n }, []);\n return [state, run];\n};\nconst HostConversationLocator = ({ host }) => {\n const [accountId, setAccountId] = useState(\"\");\n const [pullRequestId, setPullRequestId] = useState(\"\");\n const [region, setRegion] = useState(\"\");\n const [repositoryName, setRepositoryName] = useState(\"\");\n const [validation, setValidation] = useState(null);\n const [action, runAction] = useRelayDockAction();\n const submit = (event) => {\n event.preventDefault();\n const account = accountId.trim();\n const locatorInput = account.length === 0\n ? {\n provider: \"codecommit\",\n pullRequestId: pullRequestId.trim(),\n region: region.trim(),\n repositoryName: repositoryName.trim()\n }\n : {\n accountId: account,\n provider: \"codecommit\",\n pullRequestId: pullRequestId.trim(),\n region: region.trim(),\n repositoryName: repositoryName.trim()\n };\n const decoded = Schema.decodeUnknownResult(PullRequestConversationLocator)(locatorInput);\n if (Result.isFailure(decoded)) {\n setValidation(\"Enter a region, repository, and pull-request number.\");\n return;\n }\n setValidation(null);\n runAction(host.locatePullRequestConversation(decoded.success));\n };\n return (_jsxs(\"form\", { \"aria-label\": \"Find a pull request conversation\", onSubmit: submit, children: [_jsx(\"h2\", { children: \"Find a pull request conversation\" }), _jsx(\"p\", { children: \"Relay opens the exact product page before continuing a PR thread.\" }), _jsxs(\"label\", { children: [_jsx(\"span\", { children: \"Region\" }), _jsx(\"input\", { onChange: (event) => setRegion(event.currentTarget.value), value: region })] }), _jsxs(\"label\", { children: [_jsx(\"span\", { children: \"Repository\" }), _jsx(\"input\", { onChange: (event) => setRepositoryName(event.currentTarget.value), value: repositoryName })] }), _jsxs(\"label\", { children: [_jsx(\"span\", { children: \"Pull request\" }), _jsx(\"input\", { inputMode: \"numeric\", onChange: (event) => setPullRequestId(event.currentTarget.value), value: pullRequestId })] }), _jsxs(\"label\", { children: [_jsx(\"span\", { children: \"Account (optional)\" }), _jsx(\"input\", { onChange: (event) => setAccountId(event.currentTarget.value), value: accountId })] }), validation === null && action.description === null ? null : (_jsx(\"p\", { \"aria-live\": \"assertive\", role: \"alert\", children: validation ?? action.description })), _jsx(\"button\", { disabled: action.pending, type: \"submit\", children: action.pending ? \"Opening PR conversation…\" : \"Open PR conversation\" })] }));\n};\nconst ThreadMessages = ({ messages }) => messages.length === 0 ? (_jsx(\"p\", { children: \"No Relay turns yet. The first message starts this PR's durable thread.\" })) : (_jsx(\"ol\", { \"aria-label\": \"Pull request conversation\", children: messages.map((message) => (_jsxs(\"li\", { \"data-relay-message-role\": message.role, children: [_jsx(\"strong\", { children: message.role === \"relay\" ? \"Relay\" : message.role === \"operator\" ? \"You\" : \"System\" }), _jsx(\"p\", { children: message.text })] }, message.id))) }));\nexport const relaySelectionMatchesRegistration = (selection, registration) => registration.selection.profiles.some(({ id }) => id === selection.profileId) &&\n registration.selection.models.some(({ id }) => id === selection.modelId);\nconst PullRequestContinuation = ({ registration, selection }) => {\n const [message, setMessage] = useState(\"\");\n const [validation, setValidation] = useState(null);\n const [action, runAction] = useRelayDockAction();\n const selectionMatchesRegistration = relaySelectionMatchesRegistration(selection, registration);\n const submit = (event) => {\n event.preventDefault();\n if (!selectionMatchesRegistration) {\n setValidation(\"Rerun Relay with the selected profile or model before continuing this PR thread.\");\n return;\n }\n const decoded = Schema.decodeUnknownResult(ContinuePullRequestConversationRequest)({\n conversation: registration.conversation,\n message: message.trim(),\n selection\n });\n if (Result.isFailure(decoded)) {\n setValidation(\"Enter a pull-request request of 8,000 characters or fewer.\");\n return;\n }\n setValidation(null);\n runAction(registration\n .continuePullRequestConversation(decoded.success)\n .pipe(Effect.tap(() => Effect.sync(() => setMessage(\"\")))));\n };\n return (_jsxs(\"form\", { \"aria-label\": \"Continue pull request conversation\", onSubmit: submit, children: [_jsxs(\"label\", { children: [_jsx(\"span\", { children: \"Continue this PR thread\" }), _jsx(\"textarea\", { maxLength: 8_000, onChange: (event) => setMessage(event.currentTarget.value), placeholder: \"Ask Relay to verify one concrete part of this pull request\\u2026\", rows: 3, value: message })] }), validation === null && action.description === null ? null : (_jsx(\"p\", { \"aria-live\": \"assertive\", role: \"alert\", children: validation ?? action.description })), !selectionMatchesRegistration && validation === null ? (_jsx(\"p\", { \"aria-live\": \"polite\", children: \"Rerun Relay with the selected profile or model before continuing this PR thread.\" })) : null, _jsx(\"button\", { disabled: action.pending || message.trim().length === 0 || !selectionMatchesRegistration, type: \"submit\", children: action.pending ? \"Continuing on this PR…\" : \"Continue on this PR\" })] }));\n};\nconst relayDockState = (host, registration) => {\n if (registration === null) {\n return { content: _jsx(HostConversationLocator, { host: host }), status: \"ready\" };\n }\n switch (registration.status) {\n case \"loading\":\n return {\n description: \"Loading the durable conversation for this pull request.\",\n status: \"loading\",\n title: \"Loading PR thread\"\n };\n case \"error\":\n return { description: registration.description, status: \"error\", title: \"PR thread unavailable\" };\n case \"unavailable\":\n return { description: registration.description, status: \"unavailable\", title: \"Relay unavailable for this PR\" };\n case \"ready\":\n return { content: _jsx(ThreadMessages, { messages: registration.messages }), status: \"ready\" };\n }\n};\nconst selectionIdentity = (registration) => registration === null ? \"host\" : JSON.stringify(pullRequestThreadIdentity(registration.conversation));\nconst selectorRevision = (selection) => JSON.stringify({\n modelId: selection.modelId,\n models: selection.models,\n profileId: selection.profileId,\n profiles: selection.profiles\n});\n/** Own one collapsed Relay dock while application pages register exact PR threads underneath it. */\nexport const RelayProductDock = ({ children, host }) => {\n return (_jsxs(RelayProductDockProvider, { children: [children, _jsx(RelayProductDockChrome, { host: host })] }));\n};\n/** Render the chrome for a registration provider; keep this component lazy at product route boundaries. */\nexport const RelayProductDockChrome = ({ host }) => {\n const registration = useRelayProductDockRegistration();\n const activeSelection = registration?.selection ?? host.selection;\n const identity = selectionIdentity(registration);\n const activeSelectorRevision = selectorRevision(activeSelection);\n const [selection, setSelection] = useState(activeSelection);\n useEffect(() => setSelection(activeSelection), [activeSelectorRevision, identity]);\n const setModel = (value) => {\n const option = selection.models.find(({ id }) => id === value);\n if (option === undefined)\n return;\n const pairedProfile = selection.profiles.find(({ id }) => id === option.id);\n setSelection(pairedProfile === undefined\n ? { ...selection, modelId: option.id }\n : { ...selection, modelId: option.id, profileId: pairedProfile.id });\n };\n const setProfile = (value) => {\n const option = selection.profiles.find(({ id }) => id === value);\n if (option === undefined)\n return;\n const pairedModel = selection.models.find(({ id }) => id === option.id);\n setSelection(pairedModel === undefined\n ? { ...selection, profileId: option.id }\n : { ...selection, modelId: pairedModel.id, profileId: option.id });\n };\n const readyRegistration = registration?.status === \"ready\" ? registration : null;\n return (_jsx(\"div\", { \"data-relay-product-dock-chrome\": \"\", style: {\n insetBlockEnd: \"max(var(--rly-space-16), env(safe-area-inset-bottom, 0px))\",\n insetInlineEnd: \"max(var(--rly-space-16), env(safe-area-inset-right, 0px))\",\n position: \"fixed\",\n zIndex: 80\n }, children: _jsx(RelayProductDockChromeBoundary, { children: _jsx(Suspense, { fallback: null, children: _jsx(LazyRelayDock, { context: registration?.context ?? host.context, defaultOpen: false, footer: readyRegistration === null ? undefined : (_jsx(PullRequestContinuation, { registration: readyRegistration, selection: selection }, identity)), selection: {\n model: {\n onValueChange: setModel,\n options: selection.models.map(({ id, label }) => ({ label, value: id })),\n value: selection.modelId\n },\n profile: {\n onValueChange: setProfile,\n options: selection.profiles.map(({ id, label }) => ({ label, value: id })),\n value: selection.profileId\n }\n }, state: relayDockState(host, registration) }) }) }) }));\n};\nexport { RelayProductDockProvider, RelayProductDockProviderMissing, useRelayProductDockRegistration, useRelayPullRequestDock } from \"./registry.js\";\n//# sourceMappingURL=dock.js.map","import { PullRequestConversation } from \"@knpkv/relay-product/conversation\"\nimport { RelayProductDockInvariantViolation } from \"@knpkv/relay-product\"\nimport { RelaySelectorState } from \"@knpkv/relay-product/model\"\nimport * as Result from \"effect/Result\"\nimport * as Schema from \"effect/Schema\"\n\nimport type { OpenPullRequestCandidate, OpenPullRequestResolution } from \"./openPullRequest/openPullRequest.js\"\n\n/** Enforce an optional browser-safe account label for every resolver outcome. */\nconst candidateMatchesAccount = (candidate: OpenPullRequestCandidate, accountId: string): boolean =>\n candidate.accountLabel === accountId || candidate.accountLabel.endsWith(` · AWS ${accountId}`)\n\n/** Apply the host account constraint before classifying a locator result. */\nexport const controlCenterRelayCandidatesForAccount = (\n resolution: OpenPullRequestResolution,\n accountId: string | undefined\n): ReadonlyArray<OpenPullRequestCandidate> => {\n switch (resolution._tag) {\n case \"found\":\n return accountId === undefined || candidateMatchesAccount(resolution.candidate, accountId)\n ? [resolution.candidate]\n : []\n case \"ambiguous\":\n return accountId === undefined\n ? resolution.candidates\n : resolution.candidates.filter((candidate) => candidateMatchesAccount(candidate, accountId))\n case \"account-identity-unavailable\":\n case \"not-found\":\n return []\n }\n}\n\nexport const selectControlCenterRelayCandidate = (\n resolution: OpenPullRequestResolution,\n accountId: string | undefined\n): OpenPullRequestCandidate | undefined => {\n const matches = controlCenterRelayCandidatesForAccount(resolution, accountId)\n return matches.length === 1 ? matches[0] : undefined\n}\n\nexport const decodeControlCenterRelaySelector = (input: typeof RelaySelectorState.Encoded): RelaySelectorState => {\n const decoded = Schema.decodeUnknownResult(RelaySelectorState)(input)\n if (Result.isFailure(decoded)) throw new RelayProductDockInvariantViolation({ boundary: \"selector\" })\n return decoded.success\n}\n\nexport const decodeControlCenterRelayConversation = (\n input: typeof PullRequestConversation.Encoded\n): PullRequestConversation => {\n const decoded = Schema.decodeUnknownResult(PullRequestConversation)(input)\n if (Result.isFailure(decoded)) throw new RelayProductDockInvariantViolation({ boundary: \"conversation\" })\n return decoded.success\n}\n\nexport const controlCenterRelayHostSelection = decodeControlCenterRelaySelector({\n modelId: \"configured-default\",\n models: [{ id: \"configured-default\", label: \"Configured default\" }],\n profileId: \"read-only-review\",\n profiles: [{ id: \"read-only-review\", label: \"Read-only PR review\" }]\n})\n"],"file":"controlCenterRelayDock-CyvFJBSX.js"}
1
+ {"version":3,"mappings":"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","names":["SelectorId","String$1","Schema.isTrimmed","Schema.isNonEmpty","Schema.isMaxLength","Schema.brand","RelaySelectorOption","Schema.Struct","RelaySelectorStateInput","Schema.Array","Schema.isMinLength","hasUniqueOptionIds","options","id","RelaySelectorState","Schema.makeFilter","profiles","models","profileId","modelId","RelayDockState","Schema.TaggedUnion","RelayState","InvalidRelaySelectorState","Schema.TaggedError","Schema.Literals","decodeSelectorStateInput","Schema.decodeUnknownEffect","Effect.fn","selection","input","Effect.mapError","trimmedIdentifier","maximumLength","canonicalUuid","Schema.isUUID","Schema.isPattern","brand","AgenticProduct","RelayProductOperation","PrincipalId","WorkspaceId","PluginConnectionId","EntityId","RepositoryName","PullRequestId","AccountId","Region","ProductPath","PullRequestConversationLocator","Schema.optionalKey","Schema.Literal","ControlCenterThreadIdentity","CodeCommitThreadIdentity","ControlCenterPullRequestRoute","CodeCommitPullRequestRoute","PullRequestThreadIdentity","PullRequestConversation","conversation","pullRequestThreadIdentity","PullRequestContinuationMessage","ContinuePullRequestConversationRequest","ContinuationMessageId","RelayAuthenticationRequired","RelayAuthorizationDenied","PullRequestConversationNotFound","PullRequestConversationAmbiguous","Int","Schema.isGreaterThan","PullRequestConversationLookupFailed","PullRequestConversationRedirectFailed","PullRequestConversationContinuationRejected","PullRequestConversationContinuationFailed","Context.Service","RelayProductDockInvariantViolation","Data.TaggedError","LazyRelayDock","lazy","__vitePreload","n","RelayProductDockChromeBoundary","Component","actionFailureDescription","failure","failureFromCause","cause","Cause.isFailReason","useRelayDockAction","state","setState","useState","request","useRef","import_react","useCallback","current","runPromiseExit","effect","Exit.isSuccess","exit","HostConversationLocator","accountId","setAccountId","pullRequestId","setPullRequestId","region","setRegion","repositoryName","setRepositoryName","validation","setValidation","action","runAction","_jsxs","event","account","locatorInput","decoded","Schema.decodeUnknownResult","Result.isFailure","host","_jsx","ThreadMessages","messages","message","relaySelectionMatchesRegistration","registration","PullRequestContinuation","setMessage","selectionMatchesRegistration","Effect.tap","Effect.sync","relayDockState","selectionIdentity","selectorRevision","RelayProductDockChrome","useRelayProductDockRegistration","activeSelection","identity","activeSelectorRevision","setSelection","setModel","option","value","pairedProfile","setProfile","pairedModel","readyRegistration","Suspense","candidateMatchesAccount","candidate","controlCenterRelayCandidatesForAccount","resolution","selectControlCenterRelayCandidate","matches","decodeControlCenterRelaySelector","decodeControlCenterRelayConversation","controlCenterRelayHostSelection"],"ignoreList":[],"sources":["../../../../relay-product/dist/model.js","../../../../relay-product/dist/conversation.js","../../../../relay-product/dist/dock.js","../../../src/client/controlCenterRelayDock.tsx"],"sourcesContent":["import * as Effect from \"effect/Effect\";\nimport * as Schema from \"effect/Schema\";\nconst SelectorId = Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(200)).pipe(Schema.brand(\"RelaySelectorId\"));\nexport const RelaySelectorOption = Schema.Struct({\n id: SelectorId,\n label: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(200))\n});\nconst RelaySelectorStateInput = Schema.Struct({\n modelId: SelectorId,\n models: Schema.Array(RelaySelectorOption).check(Schema.isMinLength(1)),\n profileId: SelectorId,\n profiles: Schema.Array(RelaySelectorOption).check(Schema.isMinLength(1))\n});\nconst hasUniqueOptionIds = (options) => new Set(options.map(({ id }) => id)).size === options.length;\nexport const RelaySelectorState = RelaySelectorStateInput.check(Schema.makeFilter(({ profiles }) => hasUniqueOptionIds(profiles), {\n expected: \"unique Relay profile option identifiers\"\n}), Schema.makeFilter(({ models }) => hasUniqueOptionIds(models), {\n expected: \"unique Relay model option identifiers\"\n}), Schema.makeFilter(({ profileId, profiles }) => profiles.some(({ id }) => id === profileId), {\n expected: \"a selected Relay profile present in the profile options\"\n}), Schema.makeFilter(({ modelId, models }) => models.some(({ id }) => id === modelId), {\n expected: \"a selected Relay model present in the model options\"\n}));\nexport const RelayDockState = Schema.TaggedUnion({\n collapsed: {},\n expanded: {}\n});\nexport const RelayState = Schema.Struct({\n dock: RelayDockState,\n selection: RelaySelectorState\n});\nexport class InvalidRelaySelectorState extends Schema.TaggedError()(\"InvalidRelaySelectorState\", {\n reason: Schema.Literals([\n \"duplicate-model\",\n \"duplicate-profile\",\n \"invalid-input\",\n \"model-not-found\",\n \"profile-not-found\"\n ])\n}) {\n}\nconst decodeSelectorStateInput = Schema.decodeUnknownEffect(RelaySelectorStateInput);\n/** Decode the visible selector state and initialize the product-owned dock as collapsed. */\nexport const makeInitialRelayState = Effect.fn(\"RelayProduct.makeInitialRelayState\")(function* (input) {\n const selection = yield* decodeSelectorStateInput(input).pipe(Effect.mapError(() => new InvalidRelaySelectorState({ reason: \"invalid-input\" })));\n if (!hasUniqueOptionIds(selection.profiles)) {\n return yield* new InvalidRelaySelectorState({ reason: \"duplicate-profile\" });\n }\n if (!hasUniqueOptionIds(selection.models)) {\n return yield* new InvalidRelaySelectorState({ reason: \"duplicate-model\" });\n }\n if (!selection.profiles.some(({ id }) => id === selection.profileId)) {\n return yield* new InvalidRelaySelectorState({ reason: \"profile-not-found\" });\n }\n if (!selection.models.some(({ id }) => id === selection.modelId)) {\n return yield* new InvalidRelaySelectorState({ reason: \"model-not-found\" });\n }\n return RelayState.make({\n dock: RelayDockState.cases.collapsed.make({}),\n selection: RelaySelectorState.make(selection)\n });\n});\n//# sourceMappingURL=model.js.map","import * as Context from \"effect/Context\";\nimport * as Effect from \"effect/Effect\";\nimport * as Layer from \"effect/Layer\";\nimport * as Schema from \"effect/Schema\";\nimport { RelaySelectorState } from \"./model.js\";\nconst trimmedIdentifier = (maximumLength) => Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(maximumLength));\nconst canonicalUuid = (brand) => Schema.String.check(Schema.isUUID(7), Schema.isPattern(/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/u, {\n expected: \"a canonical lowercase UUID v7\"\n})).pipe(Schema.brand(brand));\nexport const AgenticProduct = Schema.Literals([\"codecommit\", \"control-center\"]);\nexport const RelayProductOperation = Schema.Literals([\n \"continue-pull-request-conversation\",\n \"locate-pull-request-conversation\"\n]);\nconst PrincipalId = trimmedIdentifier(200).pipe(Schema.brand(\"RelayPrincipalId\"));\nconst WorkspaceId = canonicalUuid(\"RelayWorkspaceId\");\nconst PluginConnectionId = canonicalUuid(\"RelayPluginConnectionId\");\nconst EntityId = canonicalUuid(\"RelayEntityId\");\nconst RepositoryName = trimmedIdentifier(1_000).pipe(Schema.brand(\"RelayRepositoryName\"));\nconst PullRequestId = trimmedIdentifier(200).pipe(Schema.brand(\"RelayPullRequestId\"));\nconst AccountId = trimmedIdentifier(200).pipe(Schema.brand(\"RelayAccountId\"));\nconst Region = trimmedIdentifier(100).pipe(Schema.brand(\"RelayRegion\"));\nconst ProductPath = Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(4_096), Schema.isPattern(/^\\/(?!\\/)/u, { expected: \"an application-owned absolute path\" }));\nexport const ProductAuthorization = Schema.TaggedUnion({\n codecommit: {\n principalId: PrincipalId\n },\n \"control-center\": {\n principalId: PrincipalId,\n workspaceId: WorkspaceId\n }\n});\n/** Provider identity a host agent may use to find one PR conversation. */\nexport const PullRequestConversationLocator = Schema.Struct({\n accountId: Schema.optionalKey(AccountId),\n provider: Schema.Literal(\"codecommit\"),\n pullRequestId: PullRequestId,\n region: Region,\n repositoryName: RepositoryName\n});\nconst ControlCenterThreadIdentity = Schema.Struct({\n pluginConnectionId: PluginConnectionId,\n pullRequestId: PullRequestId,\n repositoryName: RepositoryName,\n workspaceId: WorkspaceId\n});\nconst CodeCommitThreadIdentity = Schema.Struct({\n accountId: AccountId,\n pullRequestId: PullRequestId,\n region: Region,\n repositoryName: RepositoryName\n});\nconst ControlCenterPullRequestRoute = Schema.Struct({\n entityId: EntityId,\n href: ProductPath\n});\nconst CodeCommitPullRequestRoute = Schema.Struct({\n accountId: AccountId,\n href: ProductPath,\n /** Credential/account alias used by the browser URL; accountId stays canonical. */\n pullRequestId: PullRequestId,\n routeAccountId: Schema.optionalKey(AccountId)\n});\n/** Stable product-qualified identity. Head revisions never participate in thread identity. */\nexport const PullRequestThreadIdentity = Schema.TaggedUnion({\n codecommit: {\n ...CodeCommitThreadIdentity.fields\n },\n \"control-center\": {\n ...ControlCenterThreadIdentity.fields\n }\n});\n/** Durable thread identity, exact product route, and explicit Relay selection for one PR. */\nexport const PullRequestConversation = Schema.TaggedUnion({\n codecommit: {\n route: CodeCommitPullRequestRoute,\n selection: RelaySelectorState,\n thread: CodeCommitThreadIdentity\n },\n \"control-center\": {\n route: ControlCenterPullRequestRoute,\n selection: RelaySelectorState,\n thread: ControlCenterThreadIdentity\n }\n}).check(Schema.makeFilter((conversation) => {\n switch (conversation._tag) {\n case \"codecommit\":\n return (conversation.route.accountId === conversation.thread.accountId &&\n conversation.route.pullRequestId === conversation.thread.pullRequestId &&\n conversation.route.href ===\n `/accounts/${encodeURIComponent(conversation.route.routeAccountId ?? conversation.route.accountId)}/prs/${encodeURIComponent(conversation.route.pullRequestId)}`);\n case \"control-center\":\n return (conversation.route.href ===\n `/w/${conversation.thread.workspaceId}/items/${conversation.route.entityId}`);\n }\n}, { expected: \"a product-qualified thread paired with its exact pull-request route\" }));\nexport const pullRequestThreadIdentity = (conversation) => {\n switch (conversation._tag) {\n case \"codecommit\":\n return PullRequestThreadIdentity.cases.codecommit.make(conversation.thread);\n case \"control-center\":\n return PullRequestThreadIdentity.cases[\"control-center\"].make(conversation.thread);\n }\n};\nexport const PullRequestContinuationMessage = Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty(), Schema.isMaxLength(8_000)).pipe(Schema.brand(\"PullRequestContinuationMessage\"));\nexport const ContinuePullRequestConversationRequest = Schema.Struct({\n conversation: PullRequestConversation,\n message: PullRequestContinuationMessage,\n selection: RelaySelectorState\n});\nconst ContinuationMessageId = trimmedIdentifier(200).pipe(Schema.brand(\"RelayContinuationMessageId\"));\nexport const PullRequestConversationContinuation = Schema.Struct({\n messageId: ContinuationMessageId,\n thread: PullRequestThreadIdentity\n});\nexport class RelayAuthenticationRequired extends Schema.TaggedError()(\"RelayAuthenticationRequired\", {\n operation: RelayProductOperation,\n product: AgenticProduct\n}) {\n}\nexport class RelayAuthorizationDenied extends Schema.TaggedError()(\"RelayAuthorizationDenied\", {\n operation: RelayProductOperation,\n product: AgenticProduct\n}) {\n}\nexport class RelayAuthenticationUnavailable extends Schema.TaggedError()(\"RelayAuthenticationUnavailable\", {\n operation: RelayProductOperation,\n product: AgenticProduct\n}) {\n}\nexport class PullRequestConversationNotFound extends Schema.TaggedError()(\"PullRequestConversationNotFound\", {\n product: AgenticProduct,\n pullRequestId: PullRequestId,\n repositoryName: RepositoryName\n}) {\n}\nexport class PullRequestConversationAmbiguous extends Schema.TaggedError()(\"PullRequestConversationAmbiguous\", {\n matches: Schema.Int.check(Schema.isGreaterThan(1)),\n product: AgenticProduct,\n pullRequestId: PullRequestId,\n repositoryName: RepositoryName\n}) {\n}\nexport class PullRequestConversationLookupFailed extends Schema.TaggedError()(\"PullRequestConversationLookupFailed\", {\n product: AgenticProduct\n}) {\n}\nexport class PullRequestConversationRedirectFailed extends Schema.TaggedError()(\"PullRequestConversationRedirectFailed\", {\n href: ProductPath,\n product: AgenticProduct\n}) {\n}\nexport class PullRequestConversationContinuationRejected extends Schema.TaggedError()(\"PullRequestConversationContinuationRejected\", {\n product: AgenticProduct,\n reason: Schema.Literals([\"conversation-busy\", \"selection-unavailable\", \"thread-not-found\"]),\n thread: PullRequestThreadIdentity\n}) {\n}\nexport class PullRequestConversationContinuationFailed extends Schema.TaggedError()(\"PullRequestConversationContinuationFailed\", {\n product: AgenticProduct,\n thread: PullRequestThreadIdentity\n}) {\n}\nexport class RelayProductAdapterContractError extends Schema.TaggedError()(\"RelayProductAdapterContractError\", {\n actualProduct: AgenticProduct,\n expectedProduct: AgenticProduct,\n operation: RelayProductOperation\n}) {\n}\nexport class RelayProductContinuationReceiptMismatch extends Schema.TaggedError()(\"RelayProductContinuationReceiptMismatch\", {\n actualThread: PullRequestThreadIdentity,\n expectedThread: PullRequestThreadIdentity\n}) {\n}\nexport class RelayProduct extends Context.Service()(\"@knpkv/relay-product/RelayProduct\") {\n}\nconst requireProduct = (expectedProduct, actualProduct, operation) => expectedProduct === actualProduct\n ? Effect.void\n : new RelayProductAdapterContractError({ actualProduct, expectedProduct, operation });\nconst samePullRequestThread = (left, right) => {\n if (left._tag !== right._tag)\n return false;\n switch (left._tag) {\n case \"codecommit\":\n return (right._tag === \"codecommit\" &&\n left.accountId === right.accountId &&\n left.pullRequestId === right.pullRequestId &&\n left.region === right.region &&\n left.repositoryName === right.repositoryName);\n case \"control-center\":\n return (right._tag === \"control-center\" &&\n left.pluginConnectionId === right.pluginConnectionId &&\n left.pullRequestId === right.pullRequestId &&\n left.repositoryName === right.repositoryName &&\n left.workspaceId === right.workspaceId);\n }\n};\n/** One orchestration path shared by Control Center and CodeCommit product ports. */\nexport const makeRelayProductAdapter = (port) => {\n const openPullRequestConversation = Effect.fn(\"RelayProduct.openPullRequestConversation\")(function* (locator) {\n const operation = \"locate-pull-request-conversation\";\n const authorization = yield* port.authorize(operation);\n yield* requireProduct(port.product, authorization._tag, operation);\n const conversation = yield* port.locatePullRequestConversation(authorization, locator);\n yield* requireProduct(port.product, conversation._tag, operation);\n yield* port.redirectToPullRequest(conversation);\n return conversation;\n });\n const continuePullRequestConversation = Effect.fn(\"RelayProduct.continuePullRequestConversation\")(function* (request) {\n const operation = \"continue-pull-request-conversation\";\n const authorization = yield* port.authorize(operation);\n yield* requireProduct(port.product, authorization._tag, operation);\n yield* requireProduct(port.product, request.conversation._tag, operation);\n const receipt = yield* port.continuePullRequestConversation(authorization, request);\n const expectedThread = pullRequestThreadIdentity(request.conversation);\n if (!samePullRequestThread(expectedThread, receipt.thread)) {\n return yield* new RelayProductContinuationReceiptMismatch({\n actualThread: receipt.thread,\n expectedThread\n });\n }\n return receipt;\n });\n return RelayProduct.of({ continuePullRequestConversation, openPullRequestConversation });\n};\nexport const layer = (port) => Layer.succeed(RelayProduct, makeRelayProductAdapter(port));\n//# sourceMappingURL=conversation.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as Cause from \"effect/Cause\";\nimport * as Data from \"effect/Data\";\nimport * as Effect from \"effect/Effect\";\nimport * as Exit from \"effect/Exit\";\nimport * as Result from \"effect/Result\";\nimport * as Schema from \"effect/Schema\";\nimport { Component, lazy, Suspense, useCallback, useEffect, useRef, useState } from \"react\";\nimport { ContinuePullRequestConversationRequest, PullRequestConversationLocator, pullRequestThreadIdentity } from \"./conversation.js\";\nimport { RelayProductDockProvider, useRelayProductDockRegistration } from \"./registry.js\";\nexport class RelayProductDockInvariantViolation extends Data.TaggedError(\"RelayProductDockInvariantViolation\") {\n}\nconst LazyRelayDock = lazy(async () => {\n const patterns = await import(\"@knpkv/rly/patterns\");\n return { default: patterns.RelayDock };\n});\n/** Keep routed product content mounted when optional Relay chrome cannot load. */\nexport class RelayProductDockChromeBoundary extends Component {\n state = { failed: false };\n static getDerivedStateFromError(cause) {\n void cause;\n return { failed: true };\n }\n render() {\n return this.state.failed ? null : this.props.children;\n }\n}\nconst actionFailureDescription = (failure) => {\n switch (failure._tag) {\n case \"RelayAuthenticationRequired\":\n return \"Authenticate with this product before using its Relay conversations.\";\n case \"RelayAuthorizationDenied\":\n return \"This session cannot use Relay for pull-request conversations.\";\n case \"RelayAuthenticationUnavailable\":\n return \"The product authentication boundary is unavailable.\";\n case \"PullRequestConversationNotFound\":\n return `No Relay conversation matches ${failure.repositoryName} PR #${failure.pullRequestId}.`;\n case \"PullRequestConversationAmbiguous\":\n return `${String(failure.matches)} Relay conversations match this pull request; include its account.`;\n case \"PullRequestConversationLookupFailed\":\n return \"Relay could not search the product's pull-request conversations.\";\n case \"PullRequestConversationRedirectFailed\":\n return \"Relay found the conversation but could not open its exact pull-request page.\";\n case \"PullRequestConversationContinuationRejected\":\n return failure.reason === \"conversation-busy\"\n ? \"This pull-request conversation already has a run in progress.\"\n : failure.reason === \"selection-unavailable\"\n ? \"The selected Relay profile or model is no longer available.\"\n : \"This pull-request conversation no longer exists.\";\n case \"PullRequestConversationContinuationFailed\":\n return \"Relay could not continue this pull-request conversation.\";\n case \"RelayProductAdapterContractError\":\n return \"The active product does not own this pull-request conversation.\";\n case \"RelayProductContinuationReceiptMismatch\":\n return \"Relay returned a continuation receipt for another pull-request conversation.\";\n }\n};\nconst failureFromCause = (cause) => {\n const failure = cause.reasons.find(Cause.isFailReason);\n return failure === undefined\n ? \"Relay ended unexpectedly. No request was accepted.\"\n : actionFailureDescription(failure.error);\n};\nconst useRelayDockAction = () => {\n const [state, setState] = useState({ description: null, pending: false });\n const request = useRef(0);\n useEffect(() => () => {\n request.current += 1;\n }, []);\n const run = useCallback((effect) => {\n request.current += 1;\n const current = request.current;\n setState({ description: null, pending: true });\n void Effect.runPromiseExit(effect).then((exit) => {\n if (request.current !== current)\n return;\n setState(Exit.isSuccess(exit)\n ? { description: null, pending: false }\n : { description: failureFromCause(exit.cause), pending: false });\n });\n }, []);\n return [state, run];\n};\nconst HostConversationLocator = ({ host }) => {\n const [accountId, setAccountId] = useState(\"\");\n const [pullRequestId, setPullRequestId] = useState(\"\");\n const [region, setRegion] = useState(\"\");\n const [repositoryName, setRepositoryName] = useState(\"\");\n const [validation, setValidation] = useState(null);\n const [action, runAction] = useRelayDockAction();\n const submit = (event) => {\n event.preventDefault();\n const account = accountId.trim();\n const locatorInput = account.length === 0\n ? {\n provider: \"codecommit\",\n pullRequestId: pullRequestId.trim(),\n region: region.trim(),\n repositoryName: repositoryName.trim()\n }\n : {\n accountId: account,\n provider: \"codecommit\",\n pullRequestId: pullRequestId.trim(),\n region: region.trim(),\n repositoryName: repositoryName.trim()\n };\n const decoded = Schema.decodeUnknownResult(PullRequestConversationLocator)(locatorInput);\n if (Result.isFailure(decoded)) {\n setValidation(\"Enter a region, repository, and pull-request number.\");\n return;\n }\n setValidation(null);\n runAction(host.locatePullRequestConversation(decoded.success));\n };\n return (_jsxs(\"form\", { \"aria-label\": \"Find a pull request conversation\", onSubmit: submit, children: [_jsx(\"h2\", { children: \"Find a pull request conversation\" }), _jsx(\"p\", { children: \"Relay opens the exact product page before continuing a PR thread.\" }), _jsxs(\"label\", { children: [_jsx(\"span\", { children: \"Region\" }), _jsx(\"input\", { onChange: (event) => setRegion(event.currentTarget.value), value: region })] }), _jsxs(\"label\", { children: [_jsx(\"span\", { children: \"Repository\" }), _jsx(\"input\", { onChange: (event) => setRepositoryName(event.currentTarget.value), value: repositoryName })] }), _jsxs(\"label\", { children: [_jsx(\"span\", { children: \"Pull request\" }), _jsx(\"input\", { inputMode: \"numeric\", onChange: (event) => setPullRequestId(event.currentTarget.value), value: pullRequestId })] }), _jsxs(\"label\", { children: [_jsx(\"span\", { children: \"Account (optional)\" }), _jsx(\"input\", { onChange: (event) => setAccountId(event.currentTarget.value), value: accountId })] }), validation === null && action.description === null ? null : (_jsx(\"p\", { \"aria-live\": \"assertive\", role: \"alert\", children: validation ?? action.description })), _jsx(\"button\", { disabled: action.pending, type: \"submit\", children: action.pending ? \"Opening PR conversation…\" : \"Open PR conversation\" })] }));\n};\nconst ThreadMessages = ({ messages }) => messages.length === 0 ? (_jsx(\"p\", { children: \"No Relay turns yet. The first message starts this PR's durable thread.\" })) : (_jsx(\"ol\", { \"aria-label\": \"Pull request conversation\", children: messages.map((message) => (_jsxs(\"li\", { \"data-relay-message-role\": message.role, children: [_jsx(\"strong\", { children: message.role === \"relay\" ? \"Relay\" : message.role === \"operator\" ? \"You\" : \"System\" }), _jsx(\"p\", { children: message.text })] }, message.id))) }));\nexport const relaySelectionMatchesRegistration = (selection, registration) => registration.selection.profiles.some(({ id }) => id === selection.profileId) &&\n registration.selection.models.some(({ id }) => id === selection.modelId);\nconst PullRequestContinuation = ({ registration, selection }) => {\n const [message, setMessage] = useState(\"\");\n const [validation, setValidation] = useState(null);\n const [action, runAction] = useRelayDockAction();\n const selectionMatchesRegistration = relaySelectionMatchesRegistration(selection, registration);\n const submit = (event) => {\n event.preventDefault();\n if (!selectionMatchesRegistration) {\n setValidation(\"Rerun Relay with the selected profile or model before continuing this PR thread.\");\n return;\n }\n const decoded = Schema.decodeUnknownResult(ContinuePullRequestConversationRequest)({\n conversation: registration.conversation,\n message: message.trim(),\n selection\n });\n if (Result.isFailure(decoded)) {\n setValidation(\"Enter a pull-request request of 8,000 characters or fewer.\");\n return;\n }\n setValidation(null);\n runAction(registration\n .continuePullRequestConversation(decoded.success)\n .pipe(Effect.tap(() => Effect.sync(() => setMessage(\"\")))));\n };\n return (_jsxs(\"form\", { \"aria-label\": \"Continue pull request conversation\", onSubmit: submit, children: [_jsxs(\"label\", { children: [_jsx(\"span\", { children: \"Continue this PR thread\" }), _jsx(\"textarea\", { maxLength: 8_000, onChange: (event) => setMessage(event.currentTarget.value), placeholder: \"Ask Relay to verify one concrete part of this pull request\\u2026\", rows: 3, value: message })] }), validation === null && action.description === null ? null : (_jsx(\"p\", { \"aria-live\": \"assertive\", role: \"alert\", children: validation ?? action.description })), !selectionMatchesRegistration && validation === null ? (_jsx(\"p\", { \"aria-live\": \"polite\", children: \"Rerun Relay with the selected profile or model before continuing this PR thread.\" })) : null, _jsx(\"button\", { disabled: action.pending || message.trim().length === 0 || !selectionMatchesRegistration, type: \"submit\", children: action.pending ? \"Continuing on this PR…\" : \"Continue on this PR\" })] }));\n};\nconst relayDockState = (host, registration) => {\n if (registration === null) {\n return { content: _jsx(HostConversationLocator, { host: host }), status: \"ready\" };\n }\n switch (registration.status) {\n case \"loading\":\n return {\n description: \"Loading the durable conversation for this pull request.\",\n status: \"loading\",\n title: \"Loading PR thread\"\n };\n case \"error\":\n return { description: registration.description, status: \"error\", title: \"PR thread unavailable\" };\n case \"unavailable\":\n return { description: registration.description, status: \"unavailable\", title: \"Relay unavailable for this PR\" };\n case \"ready\":\n return { content: _jsx(ThreadMessages, { messages: registration.messages }), status: \"ready\" };\n }\n};\nconst selectionIdentity = (registration) => registration === null ? \"host\" : JSON.stringify(pullRequestThreadIdentity(registration.conversation));\nconst selectorRevision = (selection) => JSON.stringify({\n modelId: selection.modelId,\n models: selection.models,\n profileId: selection.profileId,\n profiles: selection.profiles\n});\n/** Own one collapsed Relay dock while application pages register exact PR threads underneath it. */\nexport const RelayProductDock = ({ children, host }) => {\n return (_jsxs(RelayProductDockProvider, { children: [children, _jsx(RelayProductDockChrome, { host: host })] }));\n};\n/** Render the chrome for a registration provider; keep this component lazy at product route boundaries. */\nexport const RelayProductDockChrome = ({ host }) => {\n const registration = useRelayProductDockRegistration();\n const activeSelection = registration?.selection ?? host.selection;\n const identity = selectionIdentity(registration);\n const activeSelectorRevision = selectorRevision(activeSelection);\n const [selection, setSelection] = useState(activeSelection);\n useEffect(() => setSelection(activeSelection), [activeSelectorRevision, identity]);\n const setModel = (value) => {\n const option = selection.models.find(({ id }) => id === value);\n if (option === undefined)\n return;\n const pairedProfile = selection.profiles.find(({ id }) => id === option.id);\n setSelection(pairedProfile === undefined\n ? { ...selection, modelId: option.id }\n : { ...selection, modelId: option.id, profileId: pairedProfile.id });\n };\n const setProfile = (value) => {\n const option = selection.profiles.find(({ id }) => id === value);\n if (option === undefined)\n return;\n const pairedModel = selection.models.find(({ id }) => id === option.id);\n setSelection(pairedModel === undefined\n ? { ...selection, profileId: option.id }\n : { ...selection, modelId: pairedModel.id, profileId: option.id });\n };\n const readyRegistration = registration?.status === \"ready\" ? registration : null;\n return (_jsx(\"div\", { \"data-relay-product-dock-chrome\": \"\", style: {\n insetBlockEnd: \"max(var(--rly-space-16), env(safe-area-inset-bottom, 0px))\",\n insetInlineEnd: \"max(var(--rly-space-16), env(safe-area-inset-right, 0px))\",\n position: \"fixed\",\n zIndex: 80\n }, children: _jsx(RelayProductDockChromeBoundary, { children: _jsx(Suspense, { fallback: null, children: _jsx(LazyRelayDock, { context: registration?.context ?? host.context, defaultOpen: false, footer: readyRegistration === null ? undefined : (_jsx(PullRequestContinuation, { registration: readyRegistration, selection: selection }, identity)), selection: {\n model: {\n onValueChange: setModel,\n options: selection.models.map(({ id, label }) => ({ label, value: id })),\n value: selection.modelId\n },\n profile: {\n onValueChange: setProfile,\n options: selection.profiles.map(({ id, label }) => ({ label, value: id })),\n value: selection.profileId\n }\n }, state: relayDockState(host, registration) }) }) }) }));\n};\nexport { RelayProductDockProvider, RelayProductDockProviderMissing, useRelayProductDockRegistration, useRelayPullRequestDock } from \"./registry.js\";\n//# sourceMappingURL=dock.js.map","import { PullRequestConversation } from \"@knpkv/relay-product/conversation\"\nimport { RelayProductDockInvariantViolation } from \"@knpkv/relay-product\"\nimport { RelaySelectorState } from \"@knpkv/relay-product/model\"\nimport * as Result from \"effect/Result\"\nimport * as Schema from \"effect/Schema\"\n\nimport type { OpenPullRequestCandidate, OpenPullRequestResolution } from \"./openPullRequest/openPullRequest.js\"\n\n/** Enforce an optional browser-safe account label for every resolver outcome. */\nconst candidateMatchesAccount = (candidate: OpenPullRequestCandidate, accountId: string): boolean =>\n candidate.accountLabel === accountId || candidate.accountLabel.endsWith(` · AWS ${accountId}`)\n\n/** Apply the host account constraint before classifying a locator result. */\nexport const controlCenterRelayCandidatesForAccount = (\n resolution: OpenPullRequestResolution,\n accountId: string | undefined\n): ReadonlyArray<OpenPullRequestCandidate> => {\n switch (resolution._tag) {\n case \"found\":\n return accountId === undefined || candidateMatchesAccount(resolution.candidate, accountId)\n ? [resolution.candidate]\n : []\n case \"ambiguous\":\n return accountId === undefined\n ? resolution.candidates\n : resolution.candidates.filter((candidate) => candidateMatchesAccount(candidate, accountId))\n case \"account-identity-unavailable\":\n case \"not-found\":\n return []\n }\n}\n\nexport const selectControlCenterRelayCandidate = (\n resolution: OpenPullRequestResolution,\n accountId: string | undefined\n): OpenPullRequestCandidate | undefined => {\n const matches = controlCenterRelayCandidatesForAccount(resolution, accountId)\n return matches.length === 1 ? matches[0] : undefined\n}\n\nexport const decodeControlCenterRelaySelector = (input: typeof RelaySelectorState.Encoded): RelaySelectorState => {\n const decoded = Schema.decodeUnknownResult(RelaySelectorState)(input)\n if (Result.isFailure(decoded)) throw new RelayProductDockInvariantViolation({ boundary: \"selector\" })\n return decoded.success\n}\n\nexport const decodeControlCenterRelayConversation = (\n input: typeof PullRequestConversation.Encoded\n): PullRequestConversation => {\n const decoded = Schema.decodeUnknownResult(PullRequestConversation)(input)\n if (Result.isFailure(decoded)) throw new RelayProductDockInvariantViolation({ boundary: \"conversation\" })\n return decoded.success\n}\n\nexport const controlCenterRelayHostSelection = decodeControlCenterRelaySelector({\n modelId: \"configured-default\",\n models: [{ id: \"configured-default\", label: \"Configured default\" }],\n profileId: \"read-only-review\",\n profiles: [{ id: \"read-only-review\", label: \"Read-only PR review\" }]\n})\n"],"file":"controlCenterRelayDock-Duxhij28.js"}
@@ -1,3 +1,3 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/openPullRequest-B04zS_eu.js","assets/agent-api-CmrKwleK.js","assets/client-C6yk7c6s.js","assets/Domain-BLDDcNva.js","assets/authenticatedMutationClient-C9CeKwsX.js"])))=>i.map(i=>d[i]);
2
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{u as n}from"./hooks-CGvBGjhq.js";import{t as r}from"./jsx-runtime-NZYk81nU.js";import{O as i,b as a}from"./index-BDOFEVxB.js";import{Fi as o,fi as s,qn as c,yi as l}from"./agent-api-CmrKwleK.js";import{t as u}from"./Domain-BLDDcNva.js";import{n as d}from"./workspaceEntityPaths-xAl2jRFm.js";import{a as f,d as p,f as m,m as h,n as g,o as _,p as v,s as y,t as b,u as x}from"./controlCenterRelayDock-CyvFJBSX.js";var S=e(t(),1),C=r(),w=()=>{let e=a(),t=n(),r=(0,S.useMemo)(()=>({context:[{id:`product`,label:`Product`,value:`Control Center`}],locatePullRequestConversation:s(`ControlCenterRelayDock.locatePullRequestConversation`)(function*(n){if(e.state._tag!==`authenticated`)return yield*new v({operation:`locate-pull-request-conversation`,product:`control-center`});let r=e.state.session;if(r.permission!==`workspace-owner`&&r.permission!==`workspace-approver`)return yield*new h({operation:`locate-pull-request-conversation`,product:`control-center`});let a=yield*c(u)({pullRequestId:n.pullRequestId,region:n.region,repositoryName:n.repositoryName}).pipe(l(()=>new x({product:`control-center`}))),s=yield*o({try:()=>i(()=>import(`./openPullRequest-B04zS_eu.js`),__vite__mapDeps([0,1,2,3,4])),catch:()=>new x({product:`control-center`})}),g=yield*o({try:e=>s.browserOpenPullRequestTransport.resolve(a,e),catch:()=>new x({product:`control-center`})}),_=f(g,n.accountId);if(_!==void 0){let e=d(r.workspaceId,_.entityId);return yield*o({try:async()=>{await t(e)},catch:()=>new m({href:e,product:`control-center`})})}if(g._tag===`ambiguous`){let e=b(g,n.accountId);return n.accountId!==void 0&&e.length===0?yield*new p({product:`control-center`,pullRequestId:n.pullRequestId,repositoryName:n.repositoryName}):yield*new y({matches:e.length,product:`control-center`,pullRequestId:n.pullRequestId,repositoryName:n.repositoryName})}return g._tag===`account-identity-unavailable`?yield*new x({product:`control-center`}):yield*new p({product:`control-center`,pullRequestId:n.pullRequestId,repositoryName:n.repositoryName})}),product:`control-center`,selection:g}),[e.state,t]);return(0,C.jsx)(_,{host:r})};export{w as ControlCenterRelayDockChrome};
3
- //# sourceMappingURL=controlCenterRelayDockChrome-LsVvlXRh.js.map
2
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{u as n}from"./hooks-CGvBGjhq.js";import{t as r}from"./jsx-runtime-NZYk81nU.js";import{O as i,b as a}from"./index-CyCO7dDM.js";import{Fi as o,fi as s,qn as c,yi as l}from"./agent-api-CmrKwleK.js";import{t as u}from"./Domain-BLDDcNva.js";import{n as d}from"./workspaceEntityPaths-xAl2jRFm.js";import{a as f,d as p,f as m,m as h,n as g,o as _,p as v,s as y,t as b,u as x}from"./controlCenterRelayDock-Duxhij28.js";var S=e(t(),1),C=r(),w=()=>{let e=a(),t=n(),r=(0,S.useMemo)(()=>({context:[{id:`product`,label:`Product`,value:`Control Center`}],locatePullRequestConversation:s(`ControlCenterRelayDock.locatePullRequestConversation`)(function*(n){if(e.state._tag!==`authenticated`)return yield*new v({operation:`locate-pull-request-conversation`,product:`control-center`});let r=e.state.session;if(r.permission!==`workspace-owner`&&r.permission!==`workspace-approver`)return yield*new h({operation:`locate-pull-request-conversation`,product:`control-center`});let a=yield*c(u)({pullRequestId:n.pullRequestId,region:n.region,repositoryName:n.repositoryName}).pipe(l(()=>new x({product:`control-center`}))),s=yield*o({try:()=>i(()=>import(`./openPullRequest-B04zS_eu.js`),__vite__mapDeps([0,1,2,3,4])),catch:()=>new x({product:`control-center`})}),g=yield*o({try:e=>s.browserOpenPullRequestTransport.resolve(a,e),catch:()=>new x({product:`control-center`})}),_=f(g,n.accountId);if(_!==void 0){let e=d(r.workspaceId,_.entityId);return yield*o({try:async()=>{await t(e)},catch:()=>new m({href:e,product:`control-center`})})}if(g._tag===`ambiguous`){let e=b(g,n.accountId);return n.accountId!==void 0&&e.length===0?yield*new p({product:`control-center`,pullRequestId:n.pullRequestId,repositoryName:n.repositoryName}):yield*new y({matches:e.length,product:`control-center`,pullRequestId:n.pullRequestId,repositoryName:n.repositoryName})}return g._tag===`account-identity-unavailable`?yield*new x({product:`control-center`}):yield*new p({product:`control-center`,pullRequestId:n.pullRequestId,repositoryName:n.repositoryName})}),product:`control-center`,selection:g}),[e.state,t]);return(0,C.jsx)(_,{host:r})};export{w as ControlCenterRelayDockChrome};
3
+ //# sourceMappingURL=controlCenterRelayDockChrome-8SmLWAq4.js.map