@knpkv/control-center 0.9.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/README.md +3 -2
  2. package/dist/client/.vite/manifest.json +430 -430
  3. package/dist/client/assets/{ActiveWorkPage-Upg00yYW.js → ActiveWorkPage-zWJnB-Cc.js} +2 -2
  4. package/dist/client/assets/{ActiveWorkPage-Upg00yYW.js.map → ActiveWorkPage-zWJnB-Cc.js.map} +1 -1
  5. package/dist/client/assets/{AgentPage-BCtDk8yR.js → AgentPage-DCrGAe9-.js} +2 -2
  6. package/dist/client/assets/{AgentPage-BCtDk8yR.js.map → AgentPage-DCrGAe9-.js.map} +1 -1
  7. package/dist/client/assets/{AtlassianOAuthCallbackPage-ChTCY_Un.js → AtlassianOAuthCallbackPage-DiYS-wZV.js} +2 -2
  8. package/dist/client/assets/{AtlassianOAuthCallbackPage-ChTCY_Un.js.map → AtlassianOAuthCallbackPage-DiYS-wZV.js.map} +1 -1
  9. package/dist/client/assets/{AuthorizedSharePage-BEk1V9hS.js → AuthorizedSharePage-D69hX3jN.js} +2 -2
  10. package/dist/client/assets/{AuthorizedSharePage-BEk1V9hS.js.map → AuthorizedSharePage-D69hX3jN.js.map} +1 -1
  11. package/dist/client/assets/{BrowserSessionHydrator-CB9DxOnS.js → BrowserSessionHydrator-DuScelRj.js} +2 -2
  12. package/dist/client/assets/{BrowserSessionHydrator-CB9DxOnS.js.map → BrowserSessionHydrator-DuScelRj.js.map} +1 -1
  13. package/dist/client/assets/{CommandSearch-ZtucgGqT.js → CommandSearch-BxhhZB25.js} +2 -2
  14. package/dist/client/assets/{CommandSearch-ZtucgGqT.js.map → CommandSearch-BxhhZB25.js.map} +1 -1
  15. package/dist/client/assets/{Dialog-CplGpe1F-DvPHUaxb.js → Dialog-CplGpe1F-DeMJtg-H.js} +2 -2
  16. package/dist/client/assets/{Dialog-CplGpe1F-DvPHUaxb.js.map → Dialog-CplGpe1F-DeMJtg-H.js.map} +1 -1
  17. package/dist/client/assets/{ItemsPage-rWXr2AYt.js → ItemsPage-BoSTawlJ.js} +2 -2
  18. package/dist/client/assets/{ItemsPage-rWXr2AYt.js.map → ItemsPage-BoSTawlJ.js.map} +1 -1
  19. package/dist/client/assets/{OpenPullRequestPage-C7Uo5MRd.js → OpenPullRequestPage-BfzPMfn_.js} +2 -2
  20. package/dist/client/assets/{OpenPullRequestPage-C7Uo5MRd.js.map → OpenPullRequestPage-BfzPMfn_.js.map} +1 -1
  21. package/dist/client/assets/{Pages-D2qsa2F2.js → Pages-DGc7_0RQ.js} +2 -2
  22. package/dist/client/assets/{Pages-D2qsa2F2.js.map → Pages-DGc7_0RQ.js.map} +1 -1
  23. package/dist/client/assets/{PairPage-DhpqcT8c.js → PairPage-DCNv3CTt.js} +2 -2
  24. package/dist/client/assets/{PairPage-DhpqcT8c.js.map → PairPage-DCNv3CTt.js.map} +1 -1
  25. package/dist/client/assets/{PortfolioOverview-mX6k5nL-.js → PortfolioOverview-Cnnxhgpt.js} +2 -2
  26. package/dist/client/assets/{PortfolioOverview-mX6k5nL-.js.map → PortfolioOverview-Cnnxhgpt.js.map} +1 -1
  27. package/dist/client/assets/{PullRequestReviewPanel-DoI2jcWK.js → PullRequestReviewPanel-Blbjn1Ns.js} +4 -4
  28. package/dist/client/assets/{PullRequestReviewPanel-DoI2jcWK.js.map → PullRequestReviewPanel-Blbjn1Ns.js.map} +1 -1
  29. package/dist/client/assets/{ReleaseRoute-C80uadO-.js → ReleaseRoute-0QrCZbE4.js} +2 -2
  30. package/dist/client/assets/{ReleaseRoute-C80uadO-.js.map → ReleaseRoute-0QrCZbE4.js.map} +1 -1
  31. package/dist/client/assets/{ReleaseWorkset-D2Q-pMv0.js → ReleaseWorkset-DxZ0mgJC.js} +2 -2
  32. package/dist/client/assets/{ReleaseWorkset-D2Q-pMv0.js.map → ReleaseWorkset-DxZ0mgJC.js.map} +1 -1
  33. package/dist/client/assets/{ReviewSuggestionOverview-BMy26AXn.js → ReviewSuggestionOverview-CZyq_yfx.js} +2 -2
  34. package/dist/client/assets/{ReviewSuggestionOverview-BMy26AXn.js.map → ReviewSuggestionOverview-CZyq_yfx.js.map} +1 -1
  35. package/dist/client/assets/{ReviewSuggestionPublicationSurface-CRWl9aYb.js → ReviewSuggestionPublicationSurface-B6b8PzT8.js} +2 -2
  36. package/dist/client/assets/{ReviewSuggestionPublicationSurface-CRWl9aYb.js.map → ReviewSuggestionPublicationSurface-B6b8PzT8.js.map} +1 -1
  37. package/dist/client/assets/{ServicesPage-Bfr3sYg7.js → ServicesPage-zCaWYAK6.js} +2 -2
  38. package/dist/client/assets/{ServicesPage-Bfr3sYg7.js.map → ServicesPage-zCaWYAK6.js.map} +1 -1
  39. package/dist/client/assets/{TimelinePage-52RmwoTM.js → TimelinePage-5cMSPV9K.js} +2 -2
  40. package/dist/client/assets/{TimelinePage-52RmwoTM.js.map → TimelinePage-5cMSPV9K.js.map} +1 -1
  41. package/dist/client/assets/{WorkspaceEntityLink-DwxZwXwT.js → WorkspaceEntityLink-CW3XgIHd.js} +2 -2
  42. package/dist/client/assets/{WorkspaceEntityLink-DwxZwXwT.js.map → WorkspaceEntityLink-CW3XgIHd.js.map} +1 -1
  43. package/dist/client/assets/{WorkspaceEntityRoute-BWvMo9IK.js → WorkspaceEntityRoute-HlXUP8jk.js} +4 -4
  44. package/dist/client/assets/{WorkspaceEntityRoute-BWvMo9IK.js.map → WorkspaceEntityRoute-HlXUP8jk.js.map} +1 -1
  45. package/dist/client/assets/WorkspaceHomeLink-Bkd98CxT.js +2 -0
  46. package/dist/client/assets/{WorkspaceHomeLink-Vs72lXwi.js.map → WorkspaceHomeLink-Bkd98CxT.js.map} +1 -1
  47. package/dist/client/assets/{WorkspacePullRequestDetails-yNQRd79F.js → WorkspacePullRequestDetails-mIv0fssg.js} +3 -3
  48. package/dist/client/assets/{WorkspacePullRequestDetails-yNQRd79F.js.map → WorkspacePullRequestDetails-mIv0fssg.js.map} +1 -1
  49. package/dist/client/assets/{WorkspaceReleaseLayout-Ci-HsUIO.js → WorkspaceReleaseLayout-D2RrmuSp.js} +2 -2
  50. package/dist/client/assets/{WorkspaceReleaseLayout-Ci-HsUIO.js.map → WorkspaceReleaseLayout-D2RrmuSp.js.map} +1 -1
  51. package/dist/client/assets/{WorkspaceSettingsPage-CiQKaJv2.js → WorkspaceSettingsPage-CiVpUW2n.js} +2 -2
  52. package/dist/client/assets/{WorkspaceSettingsPage-CiQKaJv2.js.map → WorkspaceSettingsPage-CiVpUW2n.js.map} +1 -1
  53. package/dist/client/assets/{angular-html-B-gwpVlh-Cq4vjMyj.js → angular-html-B-gwpVlh-Cymx1bgk.js} +2 -2
  54. package/dist/client/assets/{angular-html-B-gwpVlh-Cq4vjMyj.js.map → angular-html-B-gwpVlh-Cymx1bgk.js.map} +1 -1
  55. package/dist/client/assets/{angular-ts-BdaH9qH_-e9JuDelg.js → angular-ts-BdaH9qH_-DfV0rlVi.js} +2 -2
  56. package/dist/client/assets/{angular-ts-BdaH9qH_-e9JuDelg.js.map → angular-ts-BdaH9qH_-DfV0rlVi.js.map} +1 -1
  57. package/dist/client/assets/{apl-BLTDDucx-BzhLkVBd.js → apl-BLTDDucx-QGqL8Zyu.js} +2 -2
  58. package/dist/client/assets/{apl-BLTDDucx-BzhLkVBd.js.map → apl-BLTDDucx-QGqL8Zyu.js.map} +1 -1
  59. package/dist/client/assets/{astro-CM3EIsEH-Ow1Hk5_H.js → astro-CM3EIsEH-UPw08TJg.js} +2 -2
  60. package/dist/client/assets/{astro-CM3EIsEH-Ow1Hk5_H.js.map → astro-CM3EIsEH-UPw08TJg.js.map} +1 -1
  61. package/dist/client/assets/{blade-BuLZ1b4i-BEq2hRPF.js → blade-BuLZ1b4i-DveZJd7d.js} +2 -2
  62. package/dist/client/assets/{blade-BuLZ1b4i-BEq2hRPF.js.map → blade-BuLZ1b4i-DveZJd7d.js.map} +1 -1
  63. package/dist/client/assets/{c-BOe7FNWg-b0CPmvGq.js → c-BOe7FNWg-C6rvzF2w.js} +2 -2
  64. package/dist/client/assets/{c-BOe7FNWg-b0CPmvGq.js.map → c-BOe7FNWg-C6rvzF2w.js.map} +1 -1
  65. package/dist/client/assets/{chapel-DS426I0C-Bdl9gjGU.js → chapel-DS426I0C-CyMEywxj.js} +2 -2
  66. package/dist/client/assets/{chapel-DS426I0C-Bdl9gjGU.js.map → chapel-DS426I0C-CyMEywxj.js.map} +1 -1
  67. package/dist/client/assets/{cobol-D88xw2SU-B-tWRYTQ.js → cobol-D88xw2SU-CJdybb9y.js} +2 -2
  68. package/dist/client/assets/{cobol-D88xw2SU-B-tWRYTQ.js.map → cobol-D88xw2SU-CJdybb9y.js.map} +1 -1
  69. package/dist/client/assets/{coffee-9O-pYXz5-CIYW8apR.js → coffee-9O-pYXz5-CwYHswTW.js} +2 -2
  70. package/dist/client/assets/{coffee-9O-pYXz5-CIYW8apR.js.map → coffee-9O-pYXz5-CwYHswTW.js.map} +1 -1
  71. package/dist/client/assets/{controlCenterRelayDock-zaVoWYIC.js → controlCenterRelayDock-BJGzwNRb.js} +3 -3
  72. package/dist/client/assets/{controlCenterRelayDock-zaVoWYIC.js.map → controlCenterRelayDock-BJGzwNRb.js.map} +1 -1
  73. package/dist/client/assets/{controlCenterRelayDockChrome-BYmBsXTg.js → controlCenterRelayDockChrome-NY7Yy3Wd.js} +2 -2
  74. package/dist/client/assets/{controlCenterRelayDockChrome-BYmBsXTg.js.map → controlCenterRelayDockChrome-NY7Yy3Wd.js.map} +1 -1
  75. package/dist/client/assets/{cpp-CPk7VU6o-BaDGXMSE.js → cpp-CPk7VU6o-meCcDOMv.js} +2 -2
  76. package/dist/client/assets/{cpp-CPk7VU6o-BaDGXMSE.js.map → cpp-CPk7VU6o-meCcDOMv.js.map} +1 -1
  77. package/dist/client/assets/{crystal-CRftOMVe-DHnKmVfR.js → crystal-CRftOMVe-BqF5ZH9X.js} +2 -2
  78. package/dist/client/assets/{crystal-CRftOMVe-DHnKmVfR.js.map → crystal-CRftOMVe-BqF5ZH9X.js.map} +1 -1
  79. package/dist/client/assets/{css-DKjIhbA_-CHqfnemG.js → css-DKjIhbA_-bArDG2fj.js} +2 -2
  80. package/dist/client/assets/{css-DKjIhbA_-CHqfnemG.js.map → css-DKjIhbA_-bArDG2fj.js.map} +1 -1
  81. package/dist/client/assets/{diff-BeVL1ItO.js → diff-BwuHSQEv.js} +3 -3
  82. package/dist/client/assets/{diff-BeVL1ItO.js.map → diff-BwuHSQEv.js.map} +1 -1
  83. package/dist/client/assets/{edge-CZci3foK-BGBPQtXV.js → edge-CZci3foK-Baej4bS3.js} +2 -2
  84. package/dist/client/assets/{edge-CZci3foK-BGBPQtXV.js.map → edge-CZci3foK-Baej4bS3.js.map} +1 -1
  85. package/dist/client/assets/{elixir-BFbWRTPN-D8ufalD-.js → elixir-BFbWRTPN-BWJLR11U.js} +2 -2
  86. package/dist/client/assets/{elixir-BFbWRTPN-D8ufalD-.js.map → elixir-BFbWRTPN-BWJLR11U.js.map} +1 -1
  87. package/dist/client/assets/{elm-BFCSOEGh-BWI2TEHg.js → elm-BFCSOEGh-CpyI6Neq.js} +2 -2
  88. package/dist/client/assets/{elm-BFCSOEGh-BWI2TEHg.js.map → elm-BFCSOEGh-CpyI6Neq.js.map} +1 -1
  89. package/dist/client/assets/{erb-C0EkZJvn-CGeW6FLC.js → erb-C0EkZJvn-Beo0qNuA.js} +2 -2
  90. package/dist/client/assets/{erb-C0EkZJvn-CGeW6FLC.js.map → erb-C0EkZJvn-Beo0qNuA.js.map} +1 -1
  91. package/dist/client/assets/{git-rebase-DBDs07B2-C__RuUYe.js → git-rebase-DBDs07B2-Br9li6by.js} +2 -2
  92. package/dist/client/assets/{git-rebase-DBDs07B2-C__RuUYe.js.map → git-rebase-DBDs07B2-Br9li6by.js.map} +1 -1
  93. package/dist/client/assets/{glimmer-js-oqYt1Bty-vrJ7QEYA.js → glimmer-js-oqYt1Bty-CI97juJO.js} +2 -2
  94. package/dist/client/assets/{glimmer-js-oqYt1Bty-vrJ7QEYA.js.map → glimmer-js-oqYt1Bty-CI97juJO.js.map} +1 -1
  95. package/dist/client/assets/{glimmer-ts-CjmgbZTn-CZyNz47e.js → glimmer-ts-CjmgbZTn-CFc8doTi.js} +2 -2
  96. package/dist/client/assets/{glimmer-ts-CjmgbZTn-CZyNz47e.js.map → glimmer-ts-CjmgbZTn-CFc8doTi.js.map} +1 -1
  97. package/dist/client/assets/{glsl-BqUMGrwT-BZCkTWpI.js → glsl-BqUMGrwT-BVf1nX6P.js} +2 -2
  98. package/dist/client/assets/{glsl-BqUMGrwT-BZCkTWpI.js.map → glsl-BqUMGrwT-BVf1nX6P.js.map} +1 -1
  99. package/dist/client/assets/{graphql-CEJryLGF-DDeR3BFq.js → graphql-CEJryLGF-CfFuHqok.js} +2 -2
  100. package/dist/client/assets/{graphql-CEJryLGF-DDeR3BFq.js.map → graphql-CEJryLGF-CfFuHqok.js.map} +1 -1
  101. package/dist/client/assets/{hack-DwBIwaGr-BeH7XNPv.js → hack-DwBIwaGr-BPMqrtdG.js} +2 -2
  102. package/dist/client/assets/{hack-DwBIwaGr-BeH7XNPv.js.map → hack-DwBIwaGr-BPMqrtdG.js.map} +1 -1
  103. package/dist/client/assets/{haml-BgD6GFV2-CCEflW5Z.js → haml-BgD6GFV2-Di-RgCFS.js} +2 -2
  104. package/dist/client/assets/{haml-BgD6GFV2-CCEflW5Z.js.map → haml-BgD6GFV2-Di-RgCFS.js.map} +1 -1
  105. package/dist/client/assets/{handlebars-DAEAtsmp-Dqwx0Kwh.js → handlebars-DAEAtsmp-BpuAuOPs.js} +2 -2
  106. package/dist/client/assets/{handlebars-DAEAtsmp-Dqwx0Kwh.js.map → handlebars-DAEAtsmp-BpuAuOPs.js.map} +1 -1
  107. package/dist/client/assets/{html-B63qAdeQ-BjlpEcyt.js → html-B63qAdeQ-Bp_oaeLi.js} +2 -2
  108. package/dist/client/assets/{html-B63qAdeQ-BjlpEcyt.js.map → html-B63qAdeQ-Bp_oaeLi.js.map} +1 -1
  109. package/dist/client/assets/{html-derivative-DliF0Izh-Dq9RKlA8.js → html-derivative-DliF0Izh-Bw81poXH.js} +2 -2
  110. package/dist/client/assets/{html-derivative-DliF0Izh-Dq9RKlA8.js.map → html-derivative-DliF0Izh-Bw81poXH.js.map} +1 -1
  111. package/dist/client/assets/{http-BPdteiK2-Cj-CMxKK.js → http-BPdteiK2-BBjGiW6O.js} +2 -2
  112. package/dist/client/assets/{http-BPdteiK2-Cj-CMxKK.js.map → http-BPdteiK2-BBjGiW6O.js.map} +1 -1
  113. package/dist/client/assets/{hurl-y6bQoMbn-DeXMgrrh.js → hurl-y6bQoMbn-CGKICVmL.js} +2 -2
  114. package/dist/client/assets/{hurl-y6bQoMbn-DeXMgrrh.js.map → hurl-y6bQoMbn-CGKICVmL.js.map} +1 -1
  115. package/dist/client/assets/{index-E-cqUXMY.js → index-fW9vMAFR.js} +3 -3
  116. package/dist/client/assets/{index-E-cqUXMY.js.map → index-fW9vMAFR.js.map} +1 -1
  117. package/dist/client/assets/{java-HDTZqoJ--BO-Jj0c5.js → java-HDTZqoJ--BeIYdX-t.js} +2 -2
  118. package/dist/client/assets/{java-HDTZqoJ--BO-Jj0c5.js.map → java-HDTZqoJ--BeIYdX-t.js.map} +1 -1
  119. package/dist/client/assets/{javascript-B8-PXjxO-CNlEZ_U-.js → javascript-B8-PXjxO-C4s21pIs.js} +2 -2
  120. package/dist/client/assets/{javascript-B8-PXjxO-CNlEZ_U-.js.map → javascript-B8-PXjxO-C4s21pIs.js.map} +1 -1
  121. package/dist/client/assets/{jinja-Li2helwk-CViXQJpU.js → jinja-Li2helwk-BCopqVIq.js} +2 -2
  122. package/dist/client/assets/{jinja-Li2helwk-CViXQJpU.js.map → jinja-Li2helwk-BCopqVIq.js.map} +1 -1
  123. package/dist/client/assets/{jison-D4pd2L4r-BoCbGSBL.js → jison-D4pd2L4r-CTDGIVzo.js} +2 -2
  124. package/dist/client/assets/{jison-D4pd2L4r-BoCbGSBL.js.map → jison-D4pd2L4r-CTDGIVzo.js.map} +1 -1
  125. package/dist/client/assets/{json-CHeq_08V-B5PDP4--.js → json-CHeq_08V-CdHymei0.js} +2 -2
  126. package/dist/client/assets/{json-CHeq_08V-B5PDP4--.js.map → json-CHeq_08V-CdHymei0.js.map} +1 -1
  127. package/dist/client/assets/{jsx-CTDAtxCE-YPyPyysB.js → jsx-CTDAtxCE-BKJFk7NT.js} +2 -2
  128. package/dist/client/assets/{jsx-CTDAtxCE-YPyPyysB.js.map → jsx-CTDAtxCE-BKJFk7NT.js.map} +1 -1
  129. package/dist/client/assets/{julia-B8HGxjvO-B7cty-kU.js → julia-B8HGxjvO-DbZcmZnq.js} +2 -2
  130. package/dist/client/assets/{julia-B8HGxjvO-B7cty-kU.js.map → julia-B8HGxjvO-DbZcmZnq.js.map} +1 -1
  131. package/dist/client/assets/{just-C1IY8eCo-BHAYLNfG.js → just-C1IY8eCo-DnzjlI44.js} +2 -2
  132. package/dist/client/assets/{just-C1IY8eCo-BHAYLNfG.js.map → just-C1IY8eCo-DnzjlI44.js.map} +1 -1
  133. package/dist/client/assets/{latex-CWjLpLhK-D7HTZDbj.js → latex-CWjLpLhK-BRJ7QYc1.js} +2 -2
  134. package/dist/client/assets/{latex-CWjLpLhK-D7HTZDbj.js.map → latex-CWjLpLhK-BRJ7QYc1.js.map} +1 -1
  135. package/dist/client/assets/{liquid-DO0vm52w-lvCobhXx.js → liquid-DO0vm52w-COb7GO7S.js} +2 -2
  136. package/dist/client/assets/{liquid-DO0vm52w-lvCobhXx.js.map → liquid-DO0vm52w-COb7GO7S.js.map} +1 -1
  137. package/dist/client/assets/{lua-rOZn354j-ODMkPdxs.js → lua-rOZn354j-B2CBXdd4.js} +2 -2
  138. package/dist/client/assets/{lua-rOZn354j-ODMkPdxs.js.map → lua-rOZn354j-B2CBXdd4.js.map} +1 -1
  139. package/dist/client/assets/{marko-CiZdnOV9-D9_XzPtX.js → marko-CiZdnOV9-CrlbLtbs.js} +2 -2
  140. package/dist/client/assets/{marko-CiZdnOV9-D9_XzPtX.js.map → marko-CiZdnOV9-CrlbLtbs.js.map} +1 -1
  141. package/dist/client/assets/{mdc-D1ADfxGi-B9kHGPaY.js → mdc-D1ADfxGi-5tloi5Ku.js} +2 -2
  142. package/dist/client/assets/{mdc-D1ADfxGi-B9kHGPaY.js.map → mdc-D1ADfxGi-5tloi5Ku.js.map} +1 -1
  143. package/dist/client/assets/{nginx-8KXIzHX2-8svBtm3U.js → nginx-8KXIzHX2-Y9gA2lux.js} +2 -2
  144. package/dist/client/assets/{nginx-8KXIzHX2-8svBtm3U.js.map → nginx-8KXIzHX2-Y9gA2lux.js.map} +1 -1
  145. package/dist/client/assets/{nim-CbBDSJf5-Ba_yd7rp.js → nim-CbBDSJf5-1Pnbq29n.js} +2 -2
  146. package/dist/client/assets/{nim-CbBDSJf5-Ba_yd7rp.js.map → nim-CbBDSJf5-1Pnbq29n.js.map} +1 -1
  147. package/dist/client/assets/{org-BlnOvN6p-Dvs9aaDc.js → org-BlnOvN6p-CUznrYZp.js} +2 -2
  148. package/dist/client/assets/{org-BlnOvN6p-Dvs9aaDc.js.map → org-BlnOvN6p-CUznrYZp.js.map} +1 -1
  149. package/dist/client/assets/{patterns-C3f2OP8b.js → patterns-Bc4kz9tn.js} +2 -2
  150. package/dist/client/assets/{patterns-C3f2OP8b.js.map → patterns-Bc4kz9tn.js.map} +1 -1
  151. package/dist/client/assets/{perl-CntHWu4k-2uoQgsvj.js → perl-CntHWu4k-BhS1nQNx.js} +2 -2
  152. package/dist/client/assets/{perl-CntHWu4k-2uoQgsvj.js.map → perl-CntHWu4k-BhS1nQNx.js.map} +1 -1
  153. package/dist/client/assets/{php-VF06KE26-Cy5BNgCu.js → php-VF06KE26-DTPzSju2.js} +2 -2
  154. package/dist/client/assets/{php-VF06KE26-Cy5BNgCu.js.map → php-VF06KE26-DTPzSju2.js.map} +1 -1
  155. package/dist/client/assets/{primitives-BnTwQBvt-Wa0KbeR5.js → primitives-BXWPLy2C-mP10m9L8.js} +2 -2
  156. package/dist/client/assets/{primitives-BnTwQBvt-Wa0KbeR5.js.map → primitives-BXWPLy2C-mP10m9L8.js.map} +1 -1
  157. package/dist/client/assets/{pug-DeZwH1tK-sFeyNqLq.js → pug-DeZwH1tK-B9No4pnM.js} +2 -2
  158. package/dist/client/assets/{pug-DeZwH1tK-sFeyNqLq.js.map → pug-DeZwH1tK-B9No4pnM.js.map} +1 -1
  159. package/dist/client/assets/{pullRequestReviewThreadReplay-CZK0ojth.js → pullRequestReviewThreadReplay-GsJkHDmp.js} +2 -2
  160. package/dist/client/assets/{pullRequestReviewThreadReplay-CZK0ojth.js.map → pullRequestReviewThreadReplay-GsJkHDmp.js.map} +1 -1
  161. package/dist/client/assets/{qml-CQhAR2tt-ghxlEb6L.js → qml-CQhAR2tt-XfN_XeIY.js} +2 -2
  162. package/dist/client/assets/{qml-CQhAR2tt-ghxlEb6L.js.map → qml-CQhAR2tt-XfN_XeIY.js.map} +1 -1
  163. package/dist/client/assets/{r-CGShpgkr-BnDtomVK.js → r-CGShpgkr-CSPdymwb.js} +2 -2
  164. package/dist/client/assets/{r-CGShpgkr-BnDtomVK.js.map → r-CGShpgkr-CSPdymwb.js.map} +1 -1
  165. package/dist/client/assets/{razor-CgB2QCs6-Du0sH0Qv.js → razor-CgB2QCs6-CpnEe0o4.js} +2 -2
  166. package/dist/client/assets/{razor-CgB2QCs6-Du0sH0Qv.js.map → razor-CgB2QCs6-CpnEe0o4.js.map} +1 -1
  167. package/dist/client/assets/{regexp-go_CdRjx-DZsiR-xj.js → regexp-go_CdRjx-CygQCdLU.js} +2 -2
  168. package/dist/client/assets/{regexp-go_CdRjx-DZsiR-xj.js.map → regexp-go_CdRjx-CygQCdLU.js.map} +1 -1
  169. package/dist/client/assets/{releaseRoutes-DLfDmfqe.js → releaseRoutes-Dk8MT0in.js} +2 -2
  170. package/dist/client/assets/{releaseRoutes-DLfDmfqe.js.map → releaseRoutes-Dk8MT0in.js.map} +1 -1
  171. package/dist/client/assets/{rst-CbWMI8ou-frdHzckK.js → rst-CbWMI8ou-GxcerOld.js} +2 -2
  172. package/dist/client/assets/{rst-CbWMI8ou-frdHzckK.js.map → rst-CbWMI8ou-GxcerOld.js.map} +1 -1
  173. package/dist/client/assets/{ruby-DsGwIs06-DFbM8woV.js → ruby-DsGwIs06-DFlD6ccB.js} +2 -2
  174. package/dist/client/assets/{ruby-DsGwIs06-DFbM8woV.js.map → ruby-DsGwIs06-DFlD6ccB.js.map} +1 -1
  175. package/dist/client/assets/{sas-DjxN8J4Z-Fo0Jhar_.js → sas-DjxN8J4Z-O-nhpylU.js} +2 -2
  176. package/dist/client/assets/{sas-DjxN8J4Z-Fo0Jhar_.js.map → sas-DjxN8J4Z-O-nhpylU.js.map} +1 -1
  177. package/dist/client/assets/{scss-bkiiULjK-jVZWZBbu.js → scss-bkiiULjK-BCCx5Vl_.js} +2 -2
  178. package/dist/client/assets/{scss-bkiiULjK-jVZWZBbu.js.map → scss-bkiiULjK-BCCx5Vl_.js.map} +1 -1
  179. package/dist/client/assets/{shellscript-Cuh1SIPr-Dbirzu6D.js → shellscript-Cuh1SIPr-CHsx4a67.js} +2 -2
  180. package/dist/client/assets/{shellscript-Cuh1SIPr-Dbirzu6D.js.map → shellscript-Cuh1SIPr-CHsx4a67.js.map} +1 -1
  181. package/dist/client/assets/{shellsession-C4UOwxb7-7CJWgYuy.js → shellsession-C4UOwxb7-D6bkncqE.js} +2 -2
  182. package/dist/client/assets/{shellsession-C4UOwxb7-7CJWgYuy.js.map → shellsession-C4UOwxb7-D6bkncqE.js.map} +1 -1
  183. package/dist/client/assets/{soy-CeGFXpLT-D9dc77z6.js → soy-CeGFXpLT-9HOh-Ygc.js} +2 -2
  184. package/dist/client/assets/{soy-CeGFXpLT-D9dc77z6.js.map → soy-CeGFXpLT-9HOh-Ygc.js.map} +1 -1
  185. package/dist/client/assets/{sql-qDYmMTO1-uEsSySDj.js → sql-qDYmMTO1-CEdQ0v3n.js} +2 -2
  186. package/dist/client/assets/{sql-qDYmMTO1-uEsSySDj.js.map → sql-qDYmMTO1-CEdQ0v3n.js.map} +1 -1
  187. package/dist/client/assets/{stata-Dzus_rwP-BH7vam06.js → stata-Dzus_rwP-BuG1u1jJ.js} +2 -2
  188. package/dist/client/assets/{stata-Dzus_rwP-BH7vam06.js.map → stata-Dzus_rwP-BuG1u1jJ.js.map} +1 -1
  189. package/dist/client/assets/{surrealql-DmTrf8uR-CWkOYJpX.js → surrealql-DmTrf8uR-CSBOHXCO.js} +2 -2
  190. package/dist/client/assets/{surrealql-DmTrf8uR-CWkOYJpX.js.map → surrealql-DmTrf8uR-CSBOHXCO.js.map} +1 -1
  191. package/dist/client/assets/{svelte-CWlRonoS-BlW_D3qk.js → svelte-CWlRonoS-DgXWzKbz.js} +2 -2
  192. package/dist/client/assets/{svelte-CWlRonoS-BlW_D3qk.js.map → svelte-CWlRonoS-DgXWzKbz.js.map} +1 -1
  193. package/dist/client/assets/{templ-EuFg1gKs-BPpn997C.js → templ-EuFg1gKs-Gm_jX91q.js} +2 -2
  194. package/dist/client/assets/{templ-EuFg1gKs-BPpn997C.js.map → templ-EuFg1gKs-Gm_jX91q.js.map} +1 -1
  195. package/dist/client/assets/{tex-Cbbx1SXS-BYnCXVUj.js → tex-Cbbx1SXS-UHGl4s7W.js} +2 -2
  196. package/dist/client/assets/{tex-Cbbx1SXS-BYnCXVUj.js.map → tex-Cbbx1SXS-UHGl4s7W.js.map} +1 -1
  197. package/dist/client/assets/{ts-tags-DOHpIWV2-DGGUehb1.js → ts-tags-DOHpIWV2-BFeQ2_qS.js} +2 -2
  198. package/dist/client/assets/{ts-tags-DOHpIWV2-DGGUehb1.js.map → ts-tags-DOHpIWV2-BFeQ2_qS.js.map} +1 -1
  199. package/dist/client/assets/{tsx-DmRL3u_2-BuphZRb1.js → tsx-DmRL3u_2-XbmtCpCA.js} +2 -2
  200. package/dist/client/assets/{tsx-DmRL3u_2-BuphZRb1.js.map → tsx-DmRL3u_2-XbmtCpCA.js.map} +1 -1
  201. package/dist/client/assets/{twig-BzcHspK1-BHSYcxkL.js → twig-BzcHspK1-taTu1Drs.js} +2 -2
  202. package/dist/client/assets/{twig-BzcHspK1-BHSYcxkL.js.map → twig-BzcHspK1-taTu1Drs.js.map} +1 -1
  203. package/dist/client/assets/{typescript-BYTx4UxO-BWghQV1V.js → typescript-BYTx4UxO-kK2df6yp.js} +2 -2
  204. package/dist/client/assets/{typescript-BYTx4UxO-BWghQV1V.js.map → typescript-BYTx4UxO-kK2df6yp.js.map} +1 -1
  205. package/dist/client/assets/{typst-BrfC91e7-D-qhUyZC.js → typst-BrfC91e7-D77xpI_O.js} +2 -2
  206. package/dist/client/assets/{typst-BrfC91e7-D-qhUyZC.js.map → typst-BrfC91e7-D77xpI_O.js.map} +1 -1
  207. package/dist/client/assets/{useWorkspaceDefaultLanding-DaE2YGNd.js → useWorkspaceDefaultLanding-CHavgP2x.js} +2 -2
  208. package/dist/client/assets/{useWorkspaceDefaultLanding-DaE2YGNd.js.map → useWorkspaceDefaultLanding-CHavgP2x.js.map} +1 -1
  209. package/dist/client/assets/{vue-B92PIQFm-CoGWLOqg.js → vue-B92PIQFm-CxfWUGFO.js} +2 -2
  210. package/dist/client/assets/{vue-B92PIQFm-CoGWLOqg.js.map → vue-B92PIQFm-CxfWUGFO.js.map} +1 -1
  211. package/dist/client/assets/{vue-html-EDHI-aeE-CC2k9uRQ.js → vue-html-EDHI-aeE-uPrIvgh4.js} +2 -2
  212. package/dist/client/assets/{vue-html-EDHI-aeE-CC2k9uRQ.js.map → vue-html-EDHI-aeE-uPrIvgh4.js.map} +1 -1
  213. package/dist/client/assets/{vue-vine-CmMdgoEY-_zZ7pZf1.js → vue-vine-CmMdgoEY-eCdJx6AS.js} +2 -2
  214. package/dist/client/assets/{vue-vine-CmMdgoEY-_zZ7pZf1.js.map → vue-vine-CmMdgoEY-eCdJx6AS.js.map} +1 -1
  215. package/dist/client/assets/{workspaceEntityRoutes-BUuMTdMr.js → workspaceEntityRoutes-DeWAeNbF.js} +2 -2
  216. package/dist/client/assets/{workspaceEntityRoutes-BUuMTdMr.js.map → workspaceEntityRoutes-DeWAeNbF.js.map} +1 -1
  217. package/dist/client/assets/{workspaceScrollCapture-DllLzjf8.js → workspaceScrollCapture-Cr6uBq-z.js} +2 -2
  218. package/dist/client/assets/{workspaceScrollCapture-DllLzjf8.js.map → workspaceScrollCapture-Cr6uBq-z.js.map} +1 -1
  219. package/dist/client/assets/{xml-Bz9Nzp99-B0ZZBRFq.js → xml-Bz9Nzp99-DniaQ-4l.js} +2 -2
  220. package/dist/client/assets/{xml-Bz9Nzp99-B0ZZBRFq.js.map → xml-Bz9Nzp99-DniaQ-4l.js.map} +1 -1
  221. package/dist/client/assets/{xsl-D0pOnfMq-DJSuRtxm.js → xsl-D0pOnfMq-DIsX5RIx.js} +2 -2
  222. package/dist/client/assets/{xsl-D0pOnfMq-DJSuRtxm.js.map → xsl-D0pOnfMq-DIsX5RIx.js.map} +1 -1
  223. package/dist/client/assets/{yaml-DKDHNCIP-CkHFy1FE.js → yaml-DKDHNCIP-DZpgjsVZ.js} +2 -2
  224. package/dist/client/assets/{yaml-DKDHNCIP-CkHFy1FE.js.map → yaml-DKDHNCIP-DZpgjsVZ.js.map} +1 -1
  225. package/dist/client/index.html +1 -1
  226. package/package.json +8 -8
  227. package/dist/client/assets/WorkspaceHomeLink-Vs72lXwi.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"coffee-9O-pYXz5-CIYW8apR.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-CwYHswTW.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-C3f2OP8b.js","assets/react-DB-4Zxce.js","assets/Dialog-CplGpe1F-DvPHUaxb.js","assets/loader-circle-jB2HJevy.js","assets/index-E-cqUXMY.js","assets/hooks-D2zmMoSa.js","assets/index-AkByQyEh.css"])))=>i.map(i=>d[i]);
2
- import{i as e,t}from"./react-DB-4Zxce.js";import{I as n,k as r,s as i}from"./index-E-cqUXMY.js";import{Di as a,Dn as o,En as s,Hn as c,In as l,Jn as u,Kn as d,Mi as f,Mn as p,Ni as ee,Nn as m,On as h,Pn as g,aa as te,bn as ne,cr as _,da as v,di as re,dr as ie,ea as ae,hr as y,lr as b,or as x,pr as S,ra as oe,rr as se,sr as C,ur as w,va as ce,vi as le}from"./agent-api-D_ViR39X.js";var T=e(t(),1),E=r(),D=p.check(w(),_(),x(200)).pipe(c(`RelaySelectorId`)),O=m({id:D,label:p.check(w(),_(),x(200))}),k=m({modelId:D,models:ne(O).check(C(1)),profileId:D,profiles:ne(O).check(C(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=l({collapsed:{},expanded:{}}),ue=m({dock:M,selection:j}),N=class extends g()(`InvalidRelaySelectorState`,{reason:h([`duplicate-model`,`duplicate-profile`,`invalid-input`,`model-not-found`,`profile-not-found`])}){},de=d(k);re(`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=>p.check(w(),_(),x(e)),F=e=>p.check(ie(7),b(/^[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(c(e)),I=h([`codecommit`,`control-center`]),L=h([`continue-pull-request-conversation`,`locate-pull-request-conversation`]),R=P(200).pipe(c(`RelayPrincipalId`)),z=F(`RelayWorkspaceId`),fe=F(`RelayPluginConnectionId`),pe=F(`RelayEntityId`),B=P(1e3).pipe(c(`RelayRepositoryName`)),V=P(200).pipe(c(`RelayPullRequestId`)),H=P(200).pipe(c(`RelayAccountId`)),U=P(100).pipe(c(`RelayRegion`)),W=p.check(w(),_(),x(4096),b(/^\/(?!\/)/u,{expected:`an application-owned absolute path`}));l({codecommit:{principalId:R},"control-center":{principalId:R,workspaceId:z}});var me=m({accountId:y(H),provider:o(`codecommit`),pullRequestId:V,region:U,repositoryName:B}),G=m({pluginConnectionId:fe,pullRequestId:V,repositoryName:B,workspaceId:z}),K=m({accountId:H,pullRequestId:V,region:U,repositoryName:B}),he=m({entityId:pe,href:W}),ge=m({accountId:H,href:W,pullRequestId:V,routeAccountId:y(H)}),q=l({codecommit:{...K.fields},"control-center":{...G.fields}}),J=l({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=p.check(w(),_(),x(8e3)).pipe(c(`PullRequestContinuationMessage`)),ve=m({conversation:J,message:_e,selection:j}),ye=P(200).pipe(c(`RelayContinuationMessageId`));m({messageId:ye,thread:q});var be=class extends g()(`RelayAuthenticationRequired`,{operation:L,product:I}){},xe=class extends g()(`RelayAuthorizationDenied`,{operation:L,product:I}){};g()(`RelayAuthenticationUnavailable`,{operation:L,product:I});var Se=class extends g()(`PullRequestConversationNotFound`,{product:I,pullRequestId:V,repositoryName:B}){},Ce=class extends g()(`PullRequestConversationAmbiguous`,{matches:s.check(se(1)),product:I,pullRequestId:V,repositoryName:B}){},we=class extends g()(`PullRequestConversationLookupFailed`,{product:I}){},Te=class extends g()(`PullRequestConversationRedirectFailed`,{href:W,product:I}){},Ee=class extends g()(`PullRequestConversationContinuationRejected`,{product:I,reason:h([`conversation-busy`,`selection-unavailable`,`thread-not-found`]),thread:q}){},De=class extends g()(`PullRequestConversationContinuationFailed`,{product:I,thread:q}){};g()(`RelayProductAdapterContractError`,{actualProduct:I,expectedProduct:I,operation:L}),g()(`RelayProductContinuationReceiptMismatch`,{actualThread:q,expectedThread:q}),ce()(`@knpkv/relay-product/RelayProduct`);var X=class extends te(`RelayProductDockInvariantViolation`){},Oe=(0,T.lazy)(async()=>({default:(await n(()=>import(`./patterns-C3f2OP8b.js`).then(e=>e.t),__vite__mapDeps([0,1,2,3,4,5,6]))).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(ae);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}),a(e).then(e=>{n.current===r&&t(oe(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,d]=(0,T.useState)(null),[f,p]=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=u(me)(o);if(v(c)){d(`Enter a region, repository, and pull-request number.`);return}d(null),p(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&&f.description===null?null:(0,E.jsx)(`p`,{"aria-live":`assertive`,role:`alert`,children:l??f.description}),(0,E.jsx)(`button`,{disabled:f.pending,type:`submit`,children:f.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=u(ve)({conversation:e.conversation,message:n.trim(),selection:t});if(v(o)){a(`Enter a pull-request request of 8,000 characters or fewer.`);return}a(null),s(e.continuePullRequestConversation(o.success).pipe(ee(()=>f(()=>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=u(j)(e);if(v(t))throw new X({boundary:`selector`});return t.success},He=e=>{let t=u(J)(e);if(v(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-zaVoWYIC.js.map
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/patterns-Bc4kz9tn.js","assets/react-DB-4Zxce.js","assets/Dialog-CplGpe1F-DeMJtg-H.js","assets/loader-circle-jB2HJevy.js","assets/index-fW9vMAFR.js","assets/hooks-D2zmMoSa.js","assets/index-AkByQyEh.css"])))=>i.map(i=>d[i]);
2
+ import{i as e,t}from"./react-DB-4Zxce.js";import{I as n,k as r,s as i}from"./index-fW9vMAFR.js";import{Di as a,Dn as o,En as s,Hn as c,In as l,Jn as u,Kn as d,Mi as f,Mn as p,Ni as ee,Nn as m,On as h,Pn as g,aa as te,bn as ne,cr as _,da as v,di as re,dr as ie,ea as ae,hr as y,lr as b,or as x,pr as S,ra as oe,rr as se,sr as C,ur as w,va as ce,vi as le}from"./agent-api-D_ViR39X.js";var T=e(t(),1),E=r(),D=p.check(w(),_(),x(200)).pipe(c(`RelaySelectorId`)),O=m({id:D,label:p.check(w(),_(),x(200))}),k=m({modelId:D,models:ne(O).check(C(1)),profileId:D,profiles:ne(O).check(C(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=l({collapsed:{},expanded:{}}),ue=m({dock:M,selection:j}),N=class extends g()(`InvalidRelaySelectorState`,{reason:h([`duplicate-model`,`duplicate-profile`,`invalid-input`,`model-not-found`,`profile-not-found`])}){},de=d(k);re(`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=>p.check(w(),_(),x(e)),F=e=>p.check(ie(7),b(/^[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(c(e)),I=h([`codecommit`,`control-center`]),L=h([`continue-pull-request-conversation`,`locate-pull-request-conversation`]),R=P(200).pipe(c(`RelayPrincipalId`)),z=F(`RelayWorkspaceId`),fe=F(`RelayPluginConnectionId`),pe=F(`RelayEntityId`),B=P(1e3).pipe(c(`RelayRepositoryName`)),V=P(200).pipe(c(`RelayPullRequestId`)),H=P(200).pipe(c(`RelayAccountId`)),U=P(100).pipe(c(`RelayRegion`)),W=p.check(w(),_(),x(4096),b(/^\/(?!\/)/u,{expected:`an application-owned absolute path`}));l({codecommit:{principalId:R},"control-center":{principalId:R,workspaceId:z}});var me=m({accountId:y(H),provider:o(`codecommit`),pullRequestId:V,region:U,repositoryName:B}),G=m({pluginConnectionId:fe,pullRequestId:V,repositoryName:B,workspaceId:z}),K=m({accountId:H,pullRequestId:V,region:U,repositoryName:B}),he=m({entityId:pe,href:W}),ge=m({accountId:H,href:W,pullRequestId:V,routeAccountId:y(H)}),q=l({codecommit:{...K.fields},"control-center":{...G.fields}}),J=l({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=p.check(w(),_(),x(8e3)).pipe(c(`PullRequestContinuationMessage`)),ve=m({conversation:J,message:_e,selection:j}),ye=P(200).pipe(c(`RelayContinuationMessageId`));m({messageId:ye,thread:q});var be=class extends g()(`RelayAuthenticationRequired`,{operation:L,product:I}){},xe=class extends g()(`RelayAuthorizationDenied`,{operation:L,product:I}){};g()(`RelayAuthenticationUnavailable`,{operation:L,product:I});var Se=class extends g()(`PullRequestConversationNotFound`,{product:I,pullRequestId:V,repositoryName:B}){},Ce=class extends g()(`PullRequestConversationAmbiguous`,{matches:s.check(se(1)),product:I,pullRequestId:V,repositoryName:B}){},we=class extends g()(`PullRequestConversationLookupFailed`,{product:I}){},Te=class extends g()(`PullRequestConversationRedirectFailed`,{href:W,product:I}){},Ee=class extends g()(`PullRequestConversationContinuationRejected`,{product:I,reason:h([`conversation-busy`,`selection-unavailable`,`thread-not-found`]),thread:q}){},De=class extends g()(`PullRequestConversationContinuationFailed`,{product:I,thread:q}){};g()(`RelayProductAdapterContractError`,{actualProduct:I,expectedProduct:I,operation:L}),g()(`RelayProductContinuationReceiptMismatch`,{actualThread:q,expectedThread:q}),ce()(`@knpkv/relay-product/RelayProduct`);var X=class extends te(`RelayProductDockInvariantViolation`){},Oe=(0,T.lazy)(async()=>({default:(await n(()=>import(`./patterns-Bc4kz9tn.js`).then(e=>e.t),__vite__mapDeps([0,1,2,3,4,5,6]))).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(ae);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}),a(e).then(e=>{n.current===r&&t(oe(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,d]=(0,T.useState)(null),[f,p]=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=u(me)(o);if(v(c)){d(`Enter a region, repository, and pull-request number.`);return}d(null),p(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&&f.description===null?null:(0,E.jsx)(`p`,{"aria-live":`assertive`,role:`alert`,children:l??f.description}),(0,E.jsx)(`button`,{disabled:f.pending,type:`submit`,children:f.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=u(ve)({conversation:e.conversation,message:n.trim(),selection:t});if(v(o)){a(`Enter a pull-request request of 8,000 characters or fewer.`);return}a(null),s(e.continuePullRequestConversation(o.success).pipe(ee(()=>f(()=>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=u(j)(e);if(v(t))throw new X({boundary:`selector`});return t.success},He=e=>{let t=u(J)(e);if(v(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-BJGzwNRb.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-zaVoWYIC.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-BJGzwNRb.js"}
@@ -1,3 +1,3 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/openPullRequest-Cz2VTisN.js","assets/agent-api-D_ViR39X.js","assets/client-DWkZYpso.js","assets/Domain-1poJRF0p.js","assets/authenticatedMutationClient-D_5YP1Kc.js"])))=>i.map(i=>d[i]);
2
- import{i as e,t}from"./react-DB-4Zxce.js";import{u as n}from"./hooks-D2zmMoSa.js";import{I as r,b as i,k as a}from"./index-E-cqUXMY.js";import{Kn as o,Pi as s,di as c,vi as l}from"./agent-api-D_ViR39X.js";import{t as u}from"./Domain-1poJRF0p.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-zaVoWYIC.js";var S=e(t(),1),C=a(),w=()=>{let e=i(),t=n(),a=(0,S.useMemo)(()=>({context:[{id:`product`,label:`Product`,value:`Control Center`}],locatePullRequestConversation:c(`ControlCenterRelayDock.locatePullRequestConversation`)(function*(n){if(e.state._tag!==`authenticated`)return yield*new v({operation:`locate-pull-request-conversation`,product:`control-center`});let i=e.state.session;if(i.permission!==`workspace-owner`&&i.permission!==`workspace-approver`)return yield*new h({operation:`locate-pull-request-conversation`,product:`control-center`});let a=yield*o(u)({pullRequestId:n.pullRequestId,region:n.region,repositoryName:n.repositoryName}).pipe(l(()=>new x({product:`control-center`}))),c=yield*s({try:()=>r(()=>import(`./openPullRequest-Cz2VTisN.js`),__vite__mapDeps([0,1,2,3,4])),catch:()=>new x({product:`control-center`})}),g=yield*s({try:e=>c.browserOpenPullRequestTransport.resolve(a,e),catch:()=>new x({product:`control-center`})}),_=f(g,n.accountId);if(_!==void 0){let e=d(i.workspaceId,_.entityId);return yield*s({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:a})};export{w as ControlCenterRelayDockChrome};
3
- //# sourceMappingURL=controlCenterRelayDockChrome-BYmBsXTg.js.map
2
+ import{i as e,t}from"./react-DB-4Zxce.js";import{u as n}from"./hooks-D2zmMoSa.js";import{I as r,b as i,k as a}from"./index-fW9vMAFR.js";import{Kn as o,Pi as s,di as c,vi as l}from"./agent-api-D_ViR39X.js";import{t as u}from"./Domain-1poJRF0p.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-BJGzwNRb.js";var S=e(t(),1),C=a(),w=()=>{let e=i(),t=n(),a=(0,S.useMemo)(()=>({context:[{id:`product`,label:`Product`,value:`Control Center`}],locatePullRequestConversation:c(`ControlCenterRelayDock.locatePullRequestConversation`)(function*(n){if(e.state._tag!==`authenticated`)return yield*new v({operation:`locate-pull-request-conversation`,product:`control-center`});let i=e.state.session;if(i.permission!==`workspace-owner`&&i.permission!==`workspace-approver`)return yield*new h({operation:`locate-pull-request-conversation`,product:`control-center`});let a=yield*o(u)({pullRequestId:n.pullRequestId,region:n.region,repositoryName:n.repositoryName}).pipe(l(()=>new x({product:`control-center`}))),c=yield*s({try:()=>r(()=>import(`./openPullRequest-Cz2VTisN.js`),__vite__mapDeps([0,1,2,3,4])),catch:()=>new x({product:`control-center`})}),g=yield*s({try:e=>c.browserOpenPullRequestTransport.resolve(a,e),catch:()=>new x({product:`control-center`})}),_=f(g,n.accountId);if(_!==void 0){let e=d(i.workspaceId,_.entityId);return yield*s({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:a})};export{w as ControlCenterRelayDockChrome};
3
+ //# sourceMappingURL=controlCenterRelayDockChrome-NY7Yy3Wd.js.map