@aeolus-fleet/gateway 0.37.2 → 0.37.3

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 (225) hide show
  1. package/dist/adapters/fleet/active-ships.js +24 -1
  2. package/dist/adapters/fleet/active-ships.js.map +1 -1
  3. package/package.json +1 -1
  4. package/web/.next/BUILD_ID +1 -1
  5. package/web/.next/build-manifest.json +3 -3
  6. package/web/.next/diagnostics/route-bundle-stats.json +72 -72
  7. package/web/.next/fallback-build-manifest.json +3 -3
  8. package/web/.next/prerender-manifest.json +3 -3
  9. package/web/.next/server/app/(bridge)/bridge/basket/page/server-reference-manifest.json +10 -10
  10. package/web/.next/server/app/(bridge)/bridge/basket/page.js.nft.json +1 -1
  11. package/web/.next/server/app/(bridge)/bridge/basket/page_client-reference-manifest.js +1 -1
  12. package/web/.next/server/app/(bridge)/bridge/done/page/server-reference-manifest.json +4 -4
  13. package/web/.next/server/app/(bridge)/bridge/done/page.js.nft.json +1 -1
  14. package/web/.next/server/app/(bridge)/bridge/done/page_client-reference-manifest.js +1 -1
  15. package/web/.next/server/app/(bridge)/bridge/fleet/page/server-reference-manifest.json +3 -3
  16. package/web/.next/server/app/(bridge)/bridge/fleet/page.js.nft.json +1 -1
  17. package/web/.next/server/app/(bridge)/bridge/fleet/page_client-reference-manifest.js +1 -1
  18. package/web/.next/server/app/(bridge)/bridge/page/server-reference-manifest.json +9 -9
  19. package/web/.next/server/app/(bridge)/bridge/page.js.nft.json +1 -1
  20. package/web/.next/server/app/(bridge)/bridge/page_client-reference-manifest.js +1 -1
  21. package/web/.next/server/app/(bridge)/bridge/settings/page/server-reference-manifest.json +3 -3
  22. package/web/.next/server/app/(bridge)/bridge/settings/page.js.nft.json +1 -1
  23. package/web/.next/server/app/(bridge)/bridge/settings/page_client-reference-manifest.js +1 -1
  24. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page/server-reference-manifest.json +4 -4
  25. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page.js.nft.json +1 -1
  26. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page_client-reference-manifest.js +1 -1
  27. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/server-reference-manifest.json +7 -7
  28. package/web/.next/server/app/(bridge)/bridge/settings/routing/page.js.nft.json +1 -1
  29. package/web/.next/server/app/(bridge)/bridge/settings/routing/page_client-reference-manifest.js +1 -1
  30. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/server-reference-manifest.json +9 -9
  31. package/web/.next/server/app/(bridge)/bridge/stay-aware/page.js.nft.json +1 -1
  32. package/web/.next/server/app/(bridge)/bridge/stay-aware/page_client-reference-manifest.js +1 -1
  33. package/web/.next/server/app/(bridge)/outside-parties/[name]/change/page/server-reference-manifest.json +17 -17
  34. package/web/.next/server/app/(bridge)/outside-parties/[name]/change/page.js.nft.json +1 -1
  35. package/web/.next/server/app/(bridge)/outside-parties/[name]/change/page_client-reference-manifest.js +1 -1
  36. package/web/.next/server/app/(bridge)/outside-parties/[name]/page/server-reference-manifest.json +10 -10
  37. package/web/.next/server/app/(bridge)/outside-parties/[name]/page.js.nft.json +1 -1
  38. package/web/.next/server/app/(bridge)/outside-parties/[name]/page_client-reference-manifest.js +1 -1
  39. package/web/.next/server/app/(bridge)/outside-parties/[name]/retire/page/server-reference-manifest.json +17 -17
  40. package/web/.next/server/app/(bridge)/outside-parties/[name]/retire/page.js.nft.json +1 -1
  41. package/web/.next/server/app/(bridge)/outside-parties/[name]/retire/page_client-reference-manifest.js +1 -1
  42. package/web/.next/server/app/(bridge)/outside-parties/add/page/server-reference-manifest.json +12 -12
  43. package/web/.next/server/app/(bridge)/outside-parties/add/page.js.nft.json +1 -1
  44. package/web/.next/server/app/(bridge)/outside-parties/add/page_client-reference-manifest.js +1 -1
  45. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-agent/page/server-reference-manifest.json +4 -4
  46. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-agent/page.js.nft.json +1 -1
  47. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-agent/page_client-reference-manifest.js +1 -1
  48. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-client/page/server-reference-manifest.json +4 -4
  49. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-client/page.js.nft.json +1 -1
  50. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-client/page_client-reference-manifest.js +1 -1
  51. package/web/.next/server/app/(bridge)/outside-parties/page/server-reference-manifest.json +4 -4
  52. package/web/.next/server/app/(bridge)/outside-parties/page.js.nft.json +1 -1
  53. package/web/.next/server/app/(bridge)/outside-parties/page_client-reference-manifest.js +1 -1
  54. package/web/.next/server/app/(console)/gateway-off/page/server-reference-manifest.json +1 -1
  55. package/web/.next/server/app/(console)/gateway-off/page.js.nft.json +1 -1
  56. package/web/.next/server/app/(console)/gateway-off/page_client-reference-manifest.js +1 -1
  57. package/web/.next/server/app/(console)/meetings/[meetingId]/page/server-reference-manifest.json +3 -3
  58. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.nft.json +1 -1
  59. package/web/.next/server/app/(console)/meetings/[meetingId]/page_client-reference-manifest.js +1 -1
  60. package/web/.next/server/app/(console)/parties/page/server-reference-manifest.json +9 -9
  61. package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -1
  62. package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +1 -1
  63. package/web/.next/server/app/(console)/sign-in/failed/page/server-reference-manifest.json +1 -1
  64. package/web/.next/server/app/(console)/sign-in/failed/page.js.nft.json +1 -1
  65. package/web/.next/server/app/(console)/sign-in/failed/page_client-reference-manifest.js +1 -1
  66. package/web/.next/server/app/(console)/slack/disconnect/page/server-reference-manifest.json +11 -11
  67. package/web/.next/server/app/(console)/slack/disconnect/page.js.nft.json +1 -1
  68. package/web/.next/server/app/(console)/slack/disconnect/page_client-reference-manifest.js +1 -1
  69. package/web/.next/server/app/(console)/slack/expose/page/server-reference-manifest.json +11 -11
  70. package/web/.next/server/app/(console)/slack/expose/page.js.nft.json +1 -1
  71. package/web/.next/server/app/(console)/slack/expose/page_client-reference-manifest.js +1 -1
  72. package/web/.next/server/app/(console)/slack/page/server-reference-manifest.json +11 -11
  73. package/web/.next/server/app/(console)/slack/page.js.nft.json +1 -1
  74. package/web/.next/server/app/(console)/slack/page_client-reference-manifest.js +1 -1
  75. package/web/.next/server/app/(console)/slack/remove/page/server-reference-manifest.json +11 -11
  76. package/web/.next/server/app/(console)/slack/remove/page.js.nft.json +1 -1
  77. package/web/.next/server/app/(console)/slack/remove/page_client-reference-manifest.js +1 -1
  78. package/web/.next/server/app/_global-error.html +1 -1
  79. package/web/.next/server/app/_global-error.rsc +1 -1
  80. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  81. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  82. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  83. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  84. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  85. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  86. package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +1 -1
  87. package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -1
  88. package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +1 -1
  89. package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +1 -1
  90. package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -1
  91. package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +1 -1
  92. package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +1 -1
  93. package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -1
  94. package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +1 -1
  95. package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js +1 -1
  96. package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js.map +1 -1
  97. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_settings_page_actions_0_te6h-2xxp7l.js +1 -1
  98. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_settings_page_actions_0_te6h-2xxp7l.js.map +1 -1
  99. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js +1 -1
  100. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js.map +1 -1
  101. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js +1 -1
  102. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js.map +1 -1
  103. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_change_page_actions_1is-kjq5bubl4.js +1 -1
  104. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_change_page_actions_1is-kjq5bubl4.js.map +1 -1
  105. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_page_actions_1mctxtlzsa7xi.js +1 -1
  106. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_page_actions_1mctxtlzsa7xi.js.map +1 -1
  107. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_retire_page_actions_0xh6ok1un7s9k.js +1 -1
  108. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_retire_page_actions_0xh6ok1un7s9k.js.map +1 -1
  109. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_add-a2a-agent_page_actions_1w1q5eavo_loo.js +1 -1
  110. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_add-a2a-agent_page_actions_1w1q5eavo_loo.js.map +1 -1
  111. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_add_page_actions_0urcbg_r0lo7j.js +1 -1
  112. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_add_page_actions_0urcbg_r0lo7j.js.map +1 -1
  113. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ipo8r1s1ntds._.js +1 -1
  114. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ovcg5tg3nh49._.js +1 -1
  115. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ovcg5tg3nh49._.js.map +1 -1
  116. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ro-majrw7piv._.js +1 -1
  117. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ro-majrw7piv._.js.map +1 -1
  118. package/web/.next/server/chunks/ssr/[root-of-the-server]__0xurmpdv5uqfl._.js +1 -1
  119. package/web/.next/server/chunks/ssr/[root-of-the-server]__0zz6fx0keti4r._.js +1 -1
  120. package/web/.next/server/chunks/ssr/[root-of-the-server]__0zz6fx0keti4r._.js.map +1 -1
  121. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js +1 -1
  122. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js.map +1 -1
  123. package/web/.next/server/chunks/ssr/[root-of-the-server]__19p4g16n2nh0b._.js +1 -1
  124. package/web/.next/server/chunks/ssr/[root-of-the-server]__19p4g16n2nh0b._.js.map +1 -1
  125. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ncn4wx-1i09m._.js +1 -1
  126. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ncn4wx-1i09m._.js.map +1 -1
  127. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +1 -1
  128. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -1
  129. package/web/.next/server/chunks/ssr/_0_nfv33ug5g31._.js +1 -1
  130. package/web/.next/server/chunks/ssr/_0_nfv33ug5g31._.js.map +1 -1
  131. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js +1 -1
  132. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js.map +1 -1
  133. package/web/.next/server/chunks/ssr/{_0-9rlwz3ujd0r._.js → _0phqji_8-1g8r._.js} +2 -2
  134. package/web/.next/server/chunks/ssr/{_1ag569itedbet._.js.map → _0phqji_8-1g8r._.js.map} +1 -1
  135. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js +1 -1
  136. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js.map +1 -1
  137. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +1 -1
  138. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -1
  139. package/web/.next/server/chunks/ssr/{_1ag569itedbet._.js → _0yt_0nnqp7qsf._.js} +2 -2
  140. package/web/.next/server/chunks/ssr/{_0-9rlwz3ujd0r._.js.map → _0yt_0nnqp7qsf._.js.map} +1 -1
  141. package/web/.next/server/chunks/ssr/{_15yv_08kq3cgn._.js → _12yl1q5vpvmnf._.js} +2 -2
  142. package/web/.next/server/chunks/ssr/{_1m4bmxzmjr-8s._.js.map → _12yl1q5vpvmnf._.js.map} +1 -1
  143. package/web/.next/server/chunks/ssr/{_1m4bmxzmjr-8s._.js → _15oq7v7za6xc0._.js} +2 -2
  144. package/web/.next/server/chunks/ssr/{_15yv_08kq3cgn._.js.map → _15oq7v7za6xc0._.js.map} +1 -1
  145. package/web/.next/server/chunks/ssr/_19gyfcgdw7y22._.js +57 -0
  146. package/web/.next/server/chunks/ssr/_19gyfcgdw7y22._.js.map +1 -0
  147. package/web/.next/server/chunks/ssr/_1cs_0d0h7mhw0._.js +1 -1
  148. package/web/.next/server/chunks/ssr/_1cs_0d0h7mhw0._.js.map +1 -1
  149. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +1 -1
  150. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -1
  151. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +1 -1
  152. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -1
  153. package/web/.next/server/chunks/ssr/_1whn-m68y_cvc._.js +57 -0
  154. package/web/.next/server/chunks/ssr/_1whn-m68y_cvc._.js.map +1 -0
  155. package/web/.next/server/chunks/ssr/web_0a9n7acgjrk5c._.js +1 -1
  156. package/web/.next/server/chunks/ssr/web_0a9n7acgjrk5c._.js.map +1 -1
  157. package/web/.next/server/chunks/ssr/web_1vvrekkq5mirt._.js +1 -1
  158. package/web/.next/server/chunks/ssr/web_1vvrekkq5mirt._.js.map +1 -1
  159. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js +1 -1
  160. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js.map +1 -1
  161. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js +1 -1
  162. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js.map +1 -1
  163. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_fleet_page_actions_19wmo6phgvqfk.js +1 -1
  164. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_fleet_page_actions_19wmo6phgvqfk.js.map +1 -1
  165. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js +1 -1
  166. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js.map +1 -1
  167. package/web/.next/server/chunks/ssr/{web_features_16z82ve7t15n5._.js → web_features_05tyk8t8uz71m._.js} +2 -2
  168. package/web/.next/server/chunks/ssr/{web_features_16z82ve7t15n5._.js.map → web_features_05tyk8t8uz71m._.js.map} +1 -1
  169. package/web/.next/server/chunks/ssr/{web_features_1e7_lwq7351pm._.js → web_features_0hnjtl8jg_qhq._.js} +2 -2
  170. package/web/.next/server/chunks/ssr/{web_features_1e7_lwq7351pm._.js.map → web_features_0hnjtl8jg_qhq._.js.map} +1 -1
  171. package/web/.next/server/chunks/ssr/{web_features_1wo7gr7bxvsi-._.js → web_features_1_648zpxn76jp._.js} +2 -2
  172. package/web/.next/server/chunks/ssr/{web_features_1wo7gr7bxvsi-._.js.map → web_features_1_648zpxn76jp._.js.map} +1 -1
  173. package/web/.next/server/chunks/ssr/{web_features_1fzx-ctm4ru39._.js → web_features_1uzz6jypukhkx._.js} +2 -2
  174. package/web/.next/server/chunks/ssr/{web_features_1fzx-ctm4ru39._.js.map → web_features_1uzz6jypukhkx._.js.map} +1 -1
  175. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js +1 -1
  176. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js.map +1 -1
  177. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js +1 -1
  178. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js.map +1 -1
  179. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +1 -1
  180. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -1
  181. package/web/.next/server/chunks/ssr/{web_features_bridge_0qdb9pmm6338t._.js → web_features_bridge_0ldot9q_-xh4o._.js} +2 -2
  182. package/web/.next/server/chunks/ssr/{web_features_bridge_0qdb9pmm6338t._.js.map → web_features_bridge_0ldot9q_-xh4o._.js.map} +1 -1
  183. package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js +1 -1
  184. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js +1 -1
  185. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js.map +1 -1
  186. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js +1 -1
  187. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js.map +1 -1
  188. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js +1 -1
  189. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js.map +1 -1
  190. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js +1 -1
  191. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js.map +1 -1
  192. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +1 -1
  193. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -1
  194. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +1 -1
  195. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +1 -1
  196. package/web/.next/server/chunks/ssr/web_features_slack_actions_ts_1l3yg9vl20_vu._.js +1 -1
  197. package/web/.next/server/middleware-build-manifest.js +3 -3
  198. package/web/.next/server/pages/500.html +1 -1
  199. package/web/.next/server/preview-props.json +3 -3
  200. package/web/.next/server/server-reference-manifest.js +1 -1
  201. package/web/.next/server/server-reference-manifest.json +51 -51
  202. package/web/.next/static/chunks/{3ik7w8wf5u23q.js → 037n80h9g7uj9.js} +1 -1
  203. package/web/.next/static/chunks/{1lq70vpqz6u1c.js → 07m-_glbqp-37.js} +1 -1
  204. package/web/.next/static/chunks/{2v-0k1odkn9cu.js → 0aa4uzjjhyqka.js} +1 -1
  205. package/web/.next/static/chunks/{1edk_zyv9lbyy.js → 10irrhgnj6fen.js} +1 -1
  206. package/web/.next/static/chunks/{3ban8s8z3ah0y.js → 13wwvyhf3sngt.js} +1 -1
  207. package/web/.next/static/chunks/{17akrnci0j_nn.js → 15n0w5axo2pz9.js} +1 -1
  208. package/web/.next/static/chunks/{1zqkns-nn-wz0.js → 1zz_y28tujbue.js} +4 -4
  209. package/web/.next/static/chunks/{1_f6w3i1t1svg.js → 2bdw63_s9xtu_.js} +1 -1
  210. package/web/.next/static/chunks/{2_ayfyj3csc8m.js → 2v9rmbrsi3gic.js} +1 -1
  211. package/web/.next/static/chunks/{07km754q38z4c.js → 3-1jjh1cn7c8-.js} +1 -1
  212. package/web/.next/static/chunks/{0ev65_p1z_ll0.js → 37he-4csbzq66.js} +1 -1
  213. package/web/.next/static/chunks/{2490rbe6dmnwe.js → 3ce0mcxr613x9.js} +1 -1
  214. package/web/.next/static/chunks/{1e5_kej4hnnf_.js → 3q96u74uhyutq.js} +1 -1
  215. package/web/.next/static/chunks/{2v4z6cjtqu95k.js → 3qdxrlqdxsqgz.js} +1 -1
  216. package/web/.next/static/chunks/{27tnlhw9cxgul.js → 3tjpz6bq80t74.js} +1 -1
  217. package/web/.next/trace +1 -1
  218. package/web/.next/trace-build +1 -1
  219. package/web/.next/server/chunks/ssr/_1x3tv4gu7i2sy._.js +0 -57
  220. package/web/.next/server/chunks/ssr/_1x3tv4gu7i2sy._.js.map +0 -1
  221. package/web/.next/server/chunks/ssr/_1zcbk6s3j_jfy._.js +0 -57
  222. package/web/.next/server/chunks/ssr/_1zcbk6s3j_jfy._.js.map +0 -1
  223. /package/web/.next/static/{yJHYTb3NO7GRc3o3RS0f0 → LxcgnSJuKSN0rA6kJgwr6}/_buildManifest.js +0 -0
  224. /package/web/.next/static/{yJHYTb3NO7GRc3o3RS0f0 → LxcgnSJuKSN0rA6kJgwr6}/_clientMiddlewareManifest.js +0 -0
  225. /package/web/.next/static/{yJHYTb3NO7GRc3o3RS0f0 → LxcgnSJuKSN0rA6kJgwr6}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../web/.next-internal/server/app/%28console%29/meetings/%5BmeetingId%5D/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/meeting/hooks/meeting-actions.ts","../../../../../web/features/frame/actions.ts","../../../../../web/features/meeting/paths.ts","../../../../../web/features/meeting/services/meeting.ts"],"sourcesContent":["// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","export {setTheme as '40d3155c2275216a9e48f8dfb030e0e9db8aa9ad40'} from 'ACTIONS_MODULE0'\nexport {changeMic as '4022e2173a0de3f2bde0a0d2a095ecf8e5f7c0e2ae'} from 'ACTIONS_MODULE1'\nexport {contribute as '40eceea36d09c66186e2e22846958f0580ef0847ad'} from 'ACTIONS_MODULE1'\n","'use server';\n/**\n * The meeting page's actions, each one call of the gateway's API as the\n * signed-in account, on the server (0033): contributing, and the person's\n * own mic calls. The fleet decides each; a refusal comes back in its own\n * words for the page to say by the control. A sign-in that ended sends the\n * person to sign in again, back to the meeting.\n */\nimport { revalidatePath } from 'next/cache';\nimport { redirect } from 'next/navigation';\n\nimport { refusalCodeOf, refusalMessageOf, requestApi } from '../../../lib/gateway-api/page-api';\nimport type { ActionOutcome } from '../../bridge/hooks/bridge-actions';\nimport { contributionOf } from '../services/meeting';\nimport { MEETINGS_PATH, meetingPathOf } from '../paths';\n\n/** What an action says when the gateway gave no answer of its own. */\nconst NO_ANSWER = 'The gateway did not answer: try again in a moment';\n\n/** A person's own mic call on the page. */\nexport type OwnMicChange = 'request' | 'withdraw' | 'release';\n\nasync function attempt(meeting: { fleet: string; meetingId: string }, run: (api: Awaited<ReturnType<typeof requestApi>>) => Promise<unknown>): Promise<ActionOutcome<undefined>> {\n try {\n await run(await requestApi(meeting.fleet));\n } catch (error) {\n const code = refusalCodeOf(error);\n if (code === 'UNAUTHORIZED') {\n return redirect(`/sign-in/start?${new URLSearchParams({ return_to: meetingPathOf({ fleetId: meeting.fleet, meetingId: meeting.meetingId }) }).toString()}`);\n }\n return { isOk: false, message: code === undefined ? NO_ANSWER : refusalMessageOf(error) };\n }\n revalidatePath(`${MEETINGS_PATH}/${meeting.meetingId}`);\n return { isOk: true, value: undefined };\n}\n\n/** Contributes the person's text to the meeting, once under the key the page holds for this draft. */\nexport async function contribute(input: { fleet: string; meetingId: string; text: string; idempotencyKey: string }): Promise<ActionOutcome<undefined>> {\n const contribution = contributionOf(input.text);\n if (!contribution.isOk) {\n return contribution;\n }\n return attempt(input, (api) => api.people.contribute.mutate({ meetingId: input.meetingId, payload: contribution.value, idempotencyKey: input.idempotencyKey }));\n}\n\nexport async function changeMic(input: { fleet: string; meetingId: string; change: OwnMicChange }): Promise<ActionOutcome<undefined>> {\n return attempt(input, (api) => api.people.mic.mutate({ meetingId: input.meetingId, change: input.change }));\n}\n","'use server';\n\n/** The header's theme choice, kept for this browser for a year. */\nimport { cookies } from 'next/headers';\n\nimport { isTheme, THEME_COOKIE } from './theme';\n\nconst YEAR_SECONDS = 365 * 24 * 60 * 60;\n\nexport async function setTheme(theme: unknown): Promise<void> {\n if (!isTheme(theme)) {\n return;\n }\n (await cookies()).set(THEME_COOKIE, theme, { path: '/', sameSite: 'lax', maxAge: YEAR_SECONDS });\n}\n","/** Where a meeting's page is, for server and client code alike. */\n\n/** The meeting page's address, before the meeting's id. */\nexport const MEETINGS_PATH = '/meetings';\n\n/** The address of a meeting's page in a fleet, at the page of contributions after the cursor, if one is given. */\nexport function meetingPathOf(meeting: { fleetId: string; meetingId: string; cursor?: string }): string {\n const query = new URLSearchParams({ fleet: meeting.fleetId, ...(meeting.cursor === undefined ? {} : { cursor: meeting.cursor }) });\n return `${MEETINGS_PATH}/${encodeURIComponent(meeting.meetingId)}?${query.toString()}`;\n}\n","/**\n * A meeting as its page shows it to a participant, and what the page offers\n * them by where they stand on its mic (decision 0061, M7 to M10, M19): pure\n * view logic, no React and no API client. The fleet decides every call; the\n * page only offers what can go.\n */\nimport type { inferRouterOutputs } from '@trpc/server';\n\nimport type { GatewayRouter } from '../../../../src/adapters/trpc/router.js';\n\n/** A meeting as the API reads it to the person. */\nexport type MeetingView = inferRouterOutputs<GatewayRouter>['people']['meeting'];\n\n/** What the page lets the person do: contribute, or one of their own mic calls. */\nexport type MeetingControl = 'contribute' | 'request' | 'withdraw' | 'release';\n\n/** The controls the page shows the person, and the line that says why. */\nexport function standingOf(meeting: MeetingView): { controls: MeetingControl[]; said: string } {\n if (meeting.endedAt !== null) {\n return { controls: [], said: `This meeting ended on ${new Date(meeting.endedAt).toUTCString()}.` };\n }\n const mic = meeting.yourMic;\n switch (mic.kind) {\n case 'moderating':\n return { controls: ['contribute'], said: 'You moderate: you contribute without the mic.' };\n case 'holding':\n return { controls: ['contribute', 'release'], said: 'You hold the mic: contribute, then release it once you are done.' };\n case 'requested':\n return { controls: ['withdraw'], said: `You are number ${String(mic.place)} in line for the mic.` };\n case 'none':\n return { controls: ['request'], said: 'Request the mic to contribute.' };\n }\n}\n\n/** Who holds the mic, and how it passes when it is free (M9). */\nexport function micLineOf(meeting: MeetingView): string {\n const holds = meeting.mic.holder === null ? 'The mic is free' : `${meeting.mic.holder.name} holds the mic`;\n const passes = meeting.mic.pattern === 'fifo' ? 'it goes to the first in line' : 'the moderator gives it';\n return `${holds}; ${passes}.`;\n}\n\n/** The text a contribution sends, trimmed; none is sent empty. */\nexport function contributionOf(text: string): { isOk: true; value: string } | { isOk: false; message: string } {\n const value = text.trim();\n return value === '' ? { isOk: false, message: 'Write your contribution first' } : { isOk: true, value };\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","NO_ANSWER","attempt","meeting","run","fleet","error","code","URLSearchParams","return_to","fleetId","meetingId","toString","isOk","message","undefined","value","contribute","input","contribution","text","api","people","mutate","payload","idempotencyKey","changeMic","mic","change","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge","MEETINGS_PATH","meetingPathOf","query","cursor","encodeURIComponent","standingOf","endedAt","controls","said","Date","toUTCString","yourMic","kind","String","place","micLineOf","holds","holder","name","passes","pattern","contributionOf","trim"],"mappings":"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","ignoreList":[0,1]}
1
+ {"version":3,"sources":["../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../web/.next-internal/server/app/%28console%29/meetings/%5BmeetingId%5D/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/meeting/hooks/meeting-actions.ts","../../../../../web/features/frame/actions.ts","../../../../../web/features/meeting/paths.ts","../../../../../web/features/meeting/services/meeting.ts"],"sourcesContent":["// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","export {setTheme as '4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be'} from 'ACTIONS_MODULE0'\nexport {changeMic as '400a167596537c1d4356c79e2370ce70ba2addb829'} from 'ACTIONS_MODULE1'\nexport {contribute as '40d10b0cadcf824ce92234cbd2d3d3c65b107b0230'} from 'ACTIONS_MODULE1'\n","'use server';\n/**\n * The meeting page's actions, each one call of the gateway's API as the\n * signed-in account, on the server (0033): contributing, and the person's\n * own mic calls. The fleet decides each; a refusal comes back in its own\n * words for the page to say by the control. A sign-in that ended sends the\n * person to sign in again, back to the meeting.\n */\nimport { revalidatePath } from 'next/cache';\nimport { redirect } from 'next/navigation';\n\nimport { refusalCodeOf, refusalMessageOf, requestApi } from '../../../lib/gateway-api/page-api';\nimport type { ActionOutcome } from '../../bridge/hooks/bridge-actions';\nimport { contributionOf } from '../services/meeting';\nimport { MEETINGS_PATH, meetingPathOf } from '../paths';\n\n/** What an action says when the gateway gave no answer of its own. */\nconst NO_ANSWER = 'The gateway did not answer: try again in a moment';\n\n/** A person's own mic call on the page. */\nexport type OwnMicChange = 'request' | 'withdraw' | 'release';\n\nasync function attempt(meeting: { fleet: string; meetingId: string }, run: (api: Awaited<ReturnType<typeof requestApi>>) => Promise<unknown>): Promise<ActionOutcome<undefined>> {\n try {\n await run(await requestApi(meeting.fleet));\n } catch (error) {\n const code = refusalCodeOf(error);\n if (code === 'UNAUTHORIZED') {\n return redirect(`/sign-in/start?${new URLSearchParams({ return_to: meetingPathOf({ fleetId: meeting.fleet, meetingId: meeting.meetingId }) }).toString()}`);\n }\n return { isOk: false, message: code === undefined ? NO_ANSWER : refusalMessageOf(error) };\n }\n revalidatePath(`${MEETINGS_PATH}/${meeting.meetingId}`);\n return { isOk: true, value: undefined };\n}\n\n/** Contributes the person's text to the meeting, once under the key the page holds for this draft. */\nexport async function contribute(input: { fleet: string; meetingId: string; text: string; idempotencyKey: string }): Promise<ActionOutcome<undefined>> {\n const contribution = contributionOf(input.text);\n if (!contribution.isOk) {\n return contribution;\n }\n return attempt(input, (api) => api.people.contribute.mutate({ meetingId: input.meetingId, payload: contribution.value, idempotencyKey: input.idempotencyKey }));\n}\n\nexport async function changeMic(input: { fleet: string; meetingId: string; change: OwnMicChange }): Promise<ActionOutcome<undefined>> {\n return attempt(input, (api) => api.people.mic.mutate({ meetingId: input.meetingId, change: input.change }));\n}\n","'use server';\n\n/** The header's theme choice, kept for this browser for a year. */\nimport { cookies } from 'next/headers';\n\nimport { isTheme, THEME_COOKIE } from './theme';\n\nconst YEAR_SECONDS = 365 * 24 * 60 * 60;\n\nexport async function setTheme(theme: unknown): Promise<void> {\n if (!isTheme(theme)) {\n return;\n }\n (await cookies()).set(THEME_COOKIE, theme, { path: '/', sameSite: 'lax', maxAge: YEAR_SECONDS });\n}\n","/** Where a meeting's page is, for server and client code alike. */\n\n/** The meeting page's address, before the meeting's id. */\nexport const MEETINGS_PATH = '/meetings';\n\n/** The address of a meeting's page in a fleet, at the page of contributions after the cursor, if one is given. */\nexport function meetingPathOf(meeting: { fleetId: string; meetingId: string; cursor?: string }): string {\n const query = new URLSearchParams({ fleet: meeting.fleetId, ...(meeting.cursor === undefined ? {} : { cursor: meeting.cursor }) });\n return `${MEETINGS_PATH}/${encodeURIComponent(meeting.meetingId)}?${query.toString()}`;\n}\n","/**\n * A meeting as its page shows it to a participant, and what the page offers\n * them by where they stand on its mic (decision 0061, M7 to M10, M19): pure\n * view logic, no React and no API client. The fleet decides every call; the\n * page only offers what can go.\n */\nimport type { inferRouterOutputs } from '@trpc/server';\n\nimport type { GatewayRouter } from '../../../../src/adapters/trpc/router.js';\n\n/** A meeting as the API reads it to the person. */\nexport type MeetingView = inferRouterOutputs<GatewayRouter>['people']['meeting'];\n\n/** What the page lets the person do: contribute, or one of their own mic calls. */\nexport type MeetingControl = 'contribute' | 'request' | 'withdraw' | 'release';\n\n/** The controls the page shows the person, and the line that says why. */\nexport function standingOf(meeting: MeetingView): { controls: MeetingControl[]; said: string } {\n if (meeting.endedAt !== null) {\n return { controls: [], said: `This meeting ended on ${new Date(meeting.endedAt).toUTCString()}.` };\n }\n const mic = meeting.yourMic;\n switch (mic.kind) {\n case 'moderating':\n return { controls: ['contribute'], said: 'You moderate: you contribute without the mic.' };\n case 'holding':\n return { controls: ['contribute', 'release'], said: 'You hold the mic: contribute, then release it once you are done.' };\n case 'requested':\n return { controls: ['withdraw'], said: `You are number ${String(mic.place)} in line for the mic.` };\n case 'none':\n return { controls: ['request'], said: 'Request the mic to contribute.' };\n }\n}\n\n/** Who holds the mic, and how it passes when it is free (M9). */\nexport function micLineOf(meeting: MeetingView): string {\n const holds = meeting.mic.holder === null ? 'The mic is free' : `${meeting.mic.holder.name} holds the mic`;\n const passes = meeting.mic.pattern === 'fifo' ? 'it goes to the first in line' : 'the moderator gives it';\n return `${holds}; ${passes}.`;\n}\n\n/** The text a contribution sends, trimmed; none is sent empty. */\nexport function contributionOf(text: string): { isOk: true; value: string } | { isOk: false; message: string } {\n const value = text.trim();\n return value === '' ? { isOk: false, message: 'Write your contribution first' } : { isOk: true, value };\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","NO_ANSWER","attempt","meeting","run","fleet","error","code","URLSearchParams","return_to","fleetId","meetingId","toString","isOk","message","undefined","value","contribute","input","contribution","text","api","people","mutate","payload","idempotencyKey","changeMic","mic","change","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge","MEETINGS_PATH","meetingPathOf","query","cursor","encodeURIComponent","standingOf","endedAt","controls","said","Date","toUTCString","yourMic","kind","String","place","micLineOf","holds","holder","name","passes","pattern","contributionOf","trim"],"mappings":"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","ignoreList":[0,1]}
@@ -1,4 +1,4 @@
1
1
  module.exports=[[13095,(a,b,c)=>{function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},12784,a=>{var b=a.i(70043),c=a.i(5901);a.S([b,"40d3155c2275216a9e48f8dfb030e0e9db8aa9ad40,f",0,c,"603fa2767277d89ec35f28fd0d408540f861cf59c2,p,60470ede939643e063182d06bb88420a88ffe93eda,g,6064913802aa3319e8b2c6eeeda972177c46b0fab1,L,60770e895a98943ce4237e1e295bccea369c7753a2,P"],12784)},1324,a=>{a.s(["H",0,"fleet","v",0,function(a,b){let c=a.get(b);return"string"==typeof c?c:""},"O",0,function(a){return Object.fromEntries([...a.entries()].flatMap(([a,b])=>"string"==typeof b?[[a,b]]:[]))}])},29493,a=>{let b=[{kind:"none",label:"No credential"},{kind:"bearer",label:"Bearer token"},{kind:"clientCredentials",label:"OAuth client credentials"}],c={kind:"personSignIn",label:"Each person signs in"},d=[...b,c];function e(a){var c;let d=(c=a.credentialKind,b.find(({kind:a})=>a===c)?.kind??"bearer");switch(d){case"none":return{kind:d};case"bearer":return{kind:d,token:a.token};case"clientCredentials":return{kind:d,clientId:a.clientId,clientSecret:a.clientSecret,issuer:a.issuer,...""===a.scope?{}:{scope:a.scope}}}}a.s(["a",0,d,"x",0,b,"m",0,c,"G",0,function(a){var b;return(b=a.credentialKind,(d.find(({kind:a})=>a===b)?.kind??"bearer")===c.kind)?{kind:c.kind}:e(a)},"y",0,e])},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"40d3155c2275216a9e48f8dfb030e0e9db8aa9ad40",null),a.s(["f",0,e])}],81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))}];
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},12784,a=>{var b=a.i(70043),c=a.i(5901);a.S([b,"4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be,f",0,c,"6065ff1db872e492d1821dd43f6eafd397534413f6,g,608eb43413b6dcc7d1292fb41018ecc5776c5f2854,L,60ce1352441d94840e494a24562e9f9720ab0e1c4c,P,60fcc2b5c486d749b474cd42583cc4dced8e834006,p"],12784)},1324,a=>{a.s(["H",0,"fleet","v",0,function(a,b){let c=a.get(b);return"string"==typeof c?c:""},"O",0,function(a){return Object.fromEntries([...a.entries()].flatMap(([a,b])=>"string"==typeof b?[[a,b]]:[]))}])},29493,a=>{let b=[{kind:"none",label:"No credential"},{kind:"bearer",label:"Bearer token"},{kind:"clientCredentials",label:"OAuth client credentials"}],c={kind:"personSignIn",label:"Each person signs in"},d=[...b,c];function e(a){var c;let d=(c=a.credentialKind,b.find(({kind:a})=>a===c)?.kind??"bearer");switch(d){case"none":return{kind:d};case"bearer":return{kind:d,token:a.token};case"clientCredentials":return{kind:d,clientId:a.clientId,clientSecret:a.clientSecret,issuer:a.issuer,...""===a.scope?{}:{scope:a.scope}}}}a.s(["a",0,d,"x",0,b,"m",0,c,"G",0,function(a){var b;return(b=a.credentialKind,(d.find(({kind:a})=>a===b)?.kind??"bearer")===c.kind)?{kind:c.kind}:e(a)},"y",0,e])},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be",null),a.s(["f",0,e])}],81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))}];
3
3
 
4
4
  //# sourceMappingURL=%5Broot-of-the-server%5D__19p4g16n2nh0b._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../web/.next-internal/server/app/%28console%29/parties/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/forms/form-state.ts","../../../../../web/features/forms/server-credential.ts","../../../../../web/features/frame/actions.ts"],"sourcesContent":["// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","export {setTheme as '40d3155c2275216a9e48f8dfb030e0e9db8aa9ad40'} from 'ACTIONS_MODULE0'\nexport {markTool as '603fa2767277d89ec35f28fd0d408540f861cf59c2'} from 'ACTIONS_MODULE1'\nexport {stateParty as '60470ede939643e063182d06bb88420a88ffe93eda'} from 'ACTIONS_MODULE1'\nexport {approveParty as '6064913802aa3319e8b2c6eeeda972177c46b0fab1'} from 'ACTIONS_MODULE1'\nexport {crewParty as '60770e895a98943ce4237e1e295bccea369c7753a2'} from 'ACTIONS_MODULE1'\n","/**\n * What a page's form (a server action) answers the browser: nothing yet,\n * done with what changed, or refused with why, as the API said it. The\n * open network's warning asks for a confirm (interop I-3).\n */\nexport type FormState =\n | { kind: 'idle' }\n | { kind: 'done'; message: string }\n | { kind: 'refused'; message: string }\n | { kind: 'openNetwork'; message: string };\n\nexport const IDLE: FormState = { kind: 'idle' };\n\n/** A form's text field, empty when it was not sent. */\nexport function fieldOf(form: FormData, name: string): string {\n const value = form.get(name);\n return typeof value === 'string' ? value : '';\n}\n\n/** The form's fields as text, files left out. */\nexport function fieldsOf(form: FormData): Record<string, string> {\n return Object.fromEntries([...form.entries()].flatMap(([name, value]) => (typeof value === 'string' ? [[name, value]] : [])));\n}\n\n/** The fleet a page's form names: the page's own, sent in a hidden field. */\nexport const FLEET_FIELD = 'fleet';\n","/**\n * An outside MCP server's credential, as the add, Parties and decision forms\n * take it: none for a server reached only on a private network, a static\n * bearer, or OAuth client credentials. A server being added may instead\n * have each person sign in to it for themselves (decision 0067).\n */\n\n/** The credential kinds a form offers, with the words it shows. */\nexport const CREDENTIAL_KINDS = [\n { kind: 'none', label: 'No credential' },\n { kind: 'bearer', label: 'Bearer token' },\n { kind: 'clientCredentials', label: 'OAuth client credentials' },\n] as const;\n\nexport type CredentialKind = (typeof CREDENTIAL_KINDS)[number]['kind'];\n\nexport type ServerCredential =\n | { kind: 'none' }\n | { kind: 'bearer'; token: string }\n | { kind: 'clientCredentials'; clientId: string; clientSecret: string; issuer: string; scope?: string };\n\n/** The kind only adding a server offers: the gateway registers the party's client, and each person signs in (decision 0067). */\nexport const SIGN_IN_CREDENTIAL = { kind: 'personSignIn', label: 'Each person signs in' } as const;\n\n/** The credential kinds the add page offers, with the words it shows. */\nexport const ADDED_CREDENTIAL_KINDS = [...CREDENTIAL_KINDS, SIGN_IN_CREDENTIAL] as const;\n\nexport type AddedCredentialKind = (typeof ADDED_CREDENTIAL_KINDS)[number]['kind'];\n\nexport type AddedServerCredential = ServerCredential | { kind: typeof SIGN_IN_CREDENTIAL.kind };\n\n/** The kind a form sent, a bearer when it sent none it knows. */\nexport function credentialKindOf(sent: string): CredentialKind {\n return CREDENTIAL_KINDS.find(({ kind }) => kind === sent)?.kind ?? 'bearer';\n}\n\n/** The credential the fields name: only the fields of its kind are read. */\nexport function serverCredentialOf(fields: { credentialKind: string; token: string; clientId: string; clientSecret: string; issuer: string; scope: string }): ServerCredential {\n const kind = credentialKindOf(fields.credentialKind);\n switch (kind) {\n case 'none':\n return { kind };\n case 'bearer':\n return { kind, token: fields.token };\n case 'clientCredentials':\n return { kind, clientId: fields.clientId, clientSecret: fields.clientSecret, issuer: fields.issuer, ...(fields.scope === '' ? {} : { scope: fields.scope }) };\n }\n}\n\n/** The kind the add page sent, a bearer when it sent none it knows. */\nexport function addedCredentialKindOf(sent: string): AddedCredentialKind {\n return ADDED_CREDENTIAL_KINDS.find(({ kind }) => kind === sent)?.kind ?? 'bearer';\n}\n\n/** The credential the add page's fields name: each person signing in takes no field. */\nexport function addedServerCredentialOf(fields: Parameters<typeof serverCredentialOf>[0]): AddedServerCredential {\n return addedCredentialKindOf(fields.credentialKind) === SIGN_IN_CREDENTIAL.kind ? { kind: SIGN_IN_CREDENTIAL.kind } : serverCredentialOf(fields);\n}\n","'use server';\n\n/** The header's theme choice, kept for this browser for a year. */\nimport { cookies } from 'next/headers';\n\nimport { isTheme, THEME_COOKIE } from './theme';\n\nconst YEAR_SECONDS = 365 * 24 * 60 * 60;\n\nexport async function setTheme(theme: unknown): Promise<void> {\n if (!isTheme(theme)) {\n return;\n }\n (await cookies()).set(THEME_COOKIE, theme, { path: '/', sameSite: 'lax', maxAge: YEAR_SECONDS });\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","IDLE","kind","fieldOf","form","name","value","get","fieldsOf","Object","fromEntries","entries","flatMap","FLEET_FIELD","CREDENTIAL_KINDS","label","SIGN_IN_CREDENTIAL","ADDED_CREDENTIAL_KINDS","credentialKindOf","sent","find","serverCredentialOf","fields","credentialKind","token","clientId","clientSecret","issuer","scope","addedCredentialKindOf","addedServerCredentialOf","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge"],"mappings":"iCAGO,SAASA,EAAyBC,CAAc,EACrD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,MAAM,CAAED,IAAK,CACvC,IAAME,EAASH,CAAO,CAACC,EAAE,CACzB,GAAsB,YAAY,AAA9B,OAAOE,EACT,MAAM,AAAIC,MACR,CAAC,2DAA2D,EAAE,OAAOD,EAAO;AAAA,oEAAuE,CAAC,CAG1J,CACF,0EATgBJ,2BAAAA,qCAAAA,sBCHoC,OAAA,cAAA,CAAA,EAAA,aAAA,oCAC3CM,0BAAAA,qCAAAA,EAAAA,uBAAuB,YAAQ,CAAA,CAAA,IAAA,cCDxC,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,mRCwB2B,cAXpB,SAASG,AAAQC,CAAc,CAAEC,CAAY,EAClD,IAAMC,EAAQF,EAAKG,GAAG,CAACF,GACvB,MAAwB,UAAjB,OAAOC,EAAqBA,EAAQ,EAC7C,QAGO,SAASE,AAASJ,CAAc,EACrC,OAAOK,OAAOC,WAAW,CAAC,IAAIN,EAAKO,OAAO,GAAG,CAACC,OAAO,CAAC,CAAC,CAACP,EAAMC,EAAM,GAAM,AAAiB,iBAAVA,EAAqB,CAAC,CAACD,EAAMC,EAAM,CAAC,CAAG,EAAE,EAC5H,eCdO,IAAMQ,EAAmB,CAC9B,CAAEZ,KAAM,OAAQa,MAAO,eAAgB,EACvC,CAAEb,KAAM,SAAUa,MAAO,cAAe,EACxC,CAAEb,KAAM,oBAAqBa,MAAO,0BAA2B,EAChE,CAUYC,EAAqB,CAAEd,KAAM,eAAgBa,MAAO,sBAAuB,EAG3EE,EAAyB,IAAIH,EAAkBE,EAAmB,CAYxE,SAASK,EAAmBC,CAAwH,QACzJ,IAAMpB,GANyBiB,EAMDG,EANa,AAM9BJ,AAAwBK,cAAc,CAL5CT,EAAiBM,IAAI,CAAC,CAAC,MAAElB,CAAI,CAAE,GAAKA,IAASiB,IAAOjB,MAAQ,UAMnE,OAAQA,GACN,IAAK,OACH,MAAO,MAAEA,CAAK,CAChB,KAAK,SACH,MAAO,MAAEA,EAAMsB,MAAOF,EAAOE,KAAK,AAAC,CACrC,KAAK,oBACH,MAAO,MAAEtB,EAAMuB,SAAUH,EAAOG,QAAQ,CAAEC,aAAcJ,EAAOI,YAAY,CAAEC,OAAQL,EAAOK,MAAM,CAAE,GAAqB,KAAjBL,EAAOM,KAAK,CAAU,CAAC,EAAI,CAAEA,MAAON,EAAOM,KAAK,AAAC,CAAC,AAAE,CAChK,CACF,oCAQO,SAASE,AAAwBR,CAAgD,QACtF,OANoCH,AAM7BU,EAAsBP,EANmB,AAMZC,cAAc,EAL3CN,EAAuBG,IAAI,CAAC,CAAC,MAAElB,CAAI,CAAE,GAAKA,IAASiB,IAAOjB,MAAQ,QAAA,IAKjBc,EAAmBd,IAAAA,AAAI,EAAG,CAAEA,KAAMc,EAAmBd,IAAI,AAAC,EAAImB,EAAmBC,EAC3I,wCCtDA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OAIO,eAAeU,EAASC,CAAc,EACtC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACA,IAGb,CAAC,GAHoB,GAGd,CAAA,EAAA,EAAA,OAAO,AAAP,GAAO,CAAE,CAAEC,GAAG,CAAC,EAAA,CAAY,CAAED,EAAO,CAAEE,KAAM,IAAKC,SAAU,MAAOC,OANtD,CAM8DN,KANxD,CAMqE,EAChG,EAPgC,KAAK,mCAEfC,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA","ignoreList":[0,1]}
1
+ {"version":3,"sources":["../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../web/.next-internal/server/app/%28console%29/parties/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/forms/form-state.ts","../../../../../web/features/forms/server-credential.ts","../../../../../web/features/frame/actions.ts"],"sourcesContent":["// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","export {setTheme as '4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be'} from 'ACTIONS_MODULE0'\nexport {stateParty as '6065ff1db872e492d1821dd43f6eafd397534413f6'} from 'ACTIONS_MODULE1'\nexport {approveParty as '608eb43413b6dcc7d1292fb41018ecc5776c5f2854'} from 'ACTIONS_MODULE1'\nexport {crewParty as '60ce1352441d94840e494a24562e9f9720ab0e1c4c'} from 'ACTIONS_MODULE1'\nexport {markTool as '60fcc2b5c486d749b474cd42583cc4dced8e834006'} from 'ACTIONS_MODULE1'\n","/**\n * What a page's form (a server action) answers the browser: nothing yet,\n * done with what changed, or refused with why, as the API said it. The\n * open network's warning asks for a confirm (interop I-3).\n */\nexport type FormState =\n | { kind: 'idle' }\n | { kind: 'done'; message: string }\n | { kind: 'refused'; message: string }\n | { kind: 'openNetwork'; message: string };\n\nexport const IDLE: FormState = { kind: 'idle' };\n\n/** A form's text field, empty when it was not sent. */\nexport function fieldOf(form: FormData, name: string): string {\n const value = form.get(name);\n return typeof value === 'string' ? value : '';\n}\n\n/** The form's fields as text, files left out. */\nexport function fieldsOf(form: FormData): Record<string, string> {\n return Object.fromEntries([...form.entries()].flatMap(([name, value]) => (typeof value === 'string' ? [[name, value]] : [])));\n}\n\n/** The fleet a page's form names: the page's own, sent in a hidden field. */\nexport const FLEET_FIELD = 'fleet';\n","/**\n * An outside MCP server's credential, as the add, Parties and decision forms\n * take it: none for a server reached only on a private network, a static\n * bearer, or OAuth client credentials. A server being added may instead\n * have each person sign in to it for themselves (decision 0067).\n */\n\n/** The credential kinds a form offers, with the words it shows. */\nexport const CREDENTIAL_KINDS = [\n { kind: 'none', label: 'No credential' },\n { kind: 'bearer', label: 'Bearer token' },\n { kind: 'clientCredentials', label: 'OAuth client credentials' },\n] as const;\n\nexport type CredentialKind = (typeof CREDENTIAL_KINDS)[number]['kind'];\n\nexport type ServerCredential =\n | { kind: 'none' }\n | { kind: 'bearer'; token: string }\n | { kind: 'clientCredentials'; clientId: string; clientSecret: string; issuer: string; scope?: string };\n\n/** The kind only adding a server offers: the gateway registers the party's client, and each person signs in (decision 0067). */\nexport const SIGN_IN_CREDENTIAL = { kind: 'personSignIn', label: 'Each person signs in' } as const;\n\n/** The credential kinds the add page offers, with the words it shows. */\nexport const ADDED_CREDENTIAL_KINDS = [...CREDENTIAL_KINDS, SIGN_IN_CREDENTIAL] as const;\n\nexport type AddedCredentialKind = (typeof ADDED_CREDENTIAL_KINDS)[number]['kind'];\n\nexport type AddedServerCredential = ServerCredential | { kind: typeof SIGN_IN_CREDENTIAL.kind };\n\n/** The kind a form sent, a bearer when it sent none it knows. */\nexport function credentialKindOf(sent: string): CredentialKind {\n return CREDENTIAL_KINDS.find(({ kind }) => kind === sent)?.kind ?? 'bearer';\n}\n\n/** The credential the fields name: only the fields of its kind are read. */\nexport function serverCredentialOf(fields: { credentialKind: string; token: string; clientId: string; clientSecret: string; issuer: string; scope: string }): ServerCredential {\n const kind = credentialKindOf(fields.credentialKind);\n switch (kind) {\n case 'none':\n return { kind };\n case 'bearer':\n return { kind, token: fields.token };\n case 'clientCredentials':\n return { kind, clientId: fields.clientId, clientSecret: fields.clientSecret, issuer: fields.issuer, ...(fields.scope === '' ? {} : { scope: fields.scope }) };\n }\n}\n\n/** The kind the add page sent, a bearer when it sent none it knows. */\nexport function addedCredentialKindOf(sent: string): AddedCredentialKind {\n return ADDED_CREDENTIAL_KINDS.find(({ kind }) => kind === sent)?.kind ?? 'bearer';\n}\n\n/** The credential the add page's fields name: each person signing in takes no field. */\nexport function addedServerCredentialOf(fields: Parameters<typeof serverCredentialOf>[0]): AddedServerCredential {\n return addedCredentialKindOf(fields.credentialKind) === SIGN_IN_CREDENTIAL.kind ? { kind: SIGN_IN_CREDENTIAL.kind } : serverCredentialOf(fields);\n}\n","'use server';\n\n/** The header's theme choice, kept for this browser for a year. */\nimport { cookies } from 'next/headers';\n\nimport { isTheme, THEME_COOKIE } from './theme';\n\nconst YEAR_SECONDS = 365 * 24 * 60 * 60;\n\nexport async function setTheme(theme: unknown): Promise<void> {\n if (!isTheme(theme)) {\n return;\n }\n (await cookies()).set(THEME_COOKIE, theme, { path: '/', sameSite: 'lax', maxAge: YEAR_SECONDS });\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","IDLE","kind","fieldOf","form","name","value","get","fieldsOf","Object","fromEntries","entries","flatMap","FLEET_FIELD","CREDENTIAL_KINDS","label","SIGN_IN_CREDENTIAL","ADDED_CREDENTIAL_KINDS","credentialKindOf","sent","find","serverCredentialOf","fields","credentialKind","token","clientId","clientSecret","issuer","scope","addedCredentialKindOf","addedServerCredentialOf","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge"],"mappings":"iCAGO,SAASA,EAAyBC,CAAc,EACrD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,MAAM,CAAED,IAAK,CACvC,IAAME,EAASH,CAAO,CAACC,EAAE,CACzB,GAAsB,YAAY,AAA9B,OAAOE,EACT,MAAM,AAAIC,MACR,CAAC,2DAA2D,EAAE,OAAOD,EAAO;AAAA,oEAAuE,CAAC,CAG1J,CACF,0EATgBJ,2BAAAA,qCAAAA,sBCHoC,OAAA,cAAA,CAAA,EAAA,aAAA,oCAC3CM,0BAAAA,qCAAAA,EAAAA,uBAAuB,YAAQ,CAAA,CAAA,IAAA,cCDxC,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,mRCwB2B,cAXpB,SAASG,AAAQC,CAAc,CAAEC,CAAY,EAClD,IAAMC,EAAQF,EAAKG,GAAG,CAACF,GACvB,MAAwB,UAAjB,OAAOC,EAAqBA,EAAQ,EAC7C,QAGO,SAASE,AAASJ,CAAc,EACrC,OAAOK,OAAOC,WAAW,CAAC,IAAIN,EAAKO,OAAO,GAAG,CAACC,OAAO,CAAC,CAAC,CAACP,EAAMC,EAAM,GAAM,AAAiB,iBAAVA,EAAqB,CAAC,CAACD,EAAMC,EAAM,CAAC,CAAG,EAAE,EAC5H,eCdO,IAAMQ,EAAmB,CAC9B,CAAEZ,KAAM,OAAQa,MAAO,eAAgB,EACvC,CAAEb,KAAM,SAAUa,MAAO,cAAe,EACxC,CAAEb,KAAM,oBAAqBa,MAAO,0BAA2B,EAChE,CAUYC,EAAqB,CAAEd,KAAM,eAAgBa,MAAO,sBAAuB,EAG3EE,EAAyB,IAAIH,EAAkBE,EAAmB,CAYxE,SAASK,EAAmBC,CAAwH,QACzJ,IAAMpB,GANyBiB,EAMDG,EANa,AAM9BJ,AAAwBK,cAAc,CAL5CT,EAAiBM,IAAI,CAAC,CAAC,MAAElB,CAAI,CAAE,GAAKA,IAASiB,IAAOjB,MAAQ,UAMnE,OAAQA,GACN,IAAK,OACH,MAAO,MAAEA,CAAK,CAChB,KAAK,SACH,MAAO,MAAEA,EAAMsB,MAAOF,EAAOE,KAAK,AAAC,CACrC,KAAK,oBACH,MAAO,MAAEtB,EAAMuB,SAAUH,EAAOG,QAAQ,CAAEC,aAAcJ,EAAOI,YAAY,CAAEC,OAAQL,EAAOK,MAAM,CAAE,GAAqB,KAAjBL,EAAOM,KAAK,CAAU,CAAC,EAAI,CAAEA,MAAON,EAAOM,KAAK,AAAC,CAAC,AAAE,CAChK,CACF,oCAQO,SAASE,AAAwBR,CAAgD,QACtF,OANoCH,AAM7BU,EAAsBP,EANmB,AAMZC,cAAc,EAL3CN,EAAuBG,IAAI,CAAC,CAAC,MAAElB,CAAI,CAAE,GAAKA,IAASiB,IAAOjB,MAAQ,QAAA,IAKjBc,EAAmBd,IAAAA,AAAI,EAAG,CAAEA,KAAMc,EAAmBd,IAAI,AAAC,EAAImB,EAAmBC,EAC3I,wCCtDA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OAIO,eAAeU,EAASC,CAAc,EACtC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACA,IAGb,CAAC,GAHoB,GAGd,CAAA,EAAA,EAAA,OAAO,AAAP,GAAO,CAAE,CAAEC,GAAG,CAAC,EAAA,CAAY,CAAED,EAAO,CAAEE,KAAM,IAAKC,SAAU,MAAOC,OANtD,CAM8DN,KANxD,CAMqE,EAChG,EAPgC,KAAK,mCAEfC,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA","ignoreList":[0,1]}
@@ -1,4 +1,4 @@
1
1
  module.exports=[[13095,(a,b,c)=>{function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},11528,a=>{var b=a.i(70043),c=a.i(434);a.S([b,"40d3155c2275216a9e48f8dfb030e0e9db8aa9ad40,f",0,c,"60000936ef3bb52310f3e7417efc593cc8cad9410e,M,60378c55c94091d50cd00f4e7b1a27626a916de383,c,605616e78e5e46e20bc13998d4e802796ce274de09,d,60e79e94ef85937c34c897d09c23f64df58027e6ee,N,60f778db2269044a452fa9019cd452b6eeb0a91d98,K"],11528)},1324,a=>{a.s(["H",0,"fleet","v",0,function(a,b){let c=a.get(b);return"string"==typeof c?c:""},"O",0,function(a){return Object.fromEntries([...a.entries()].flatMap(([a,b])=>"string"==typeof b?[[a,b]]:[]))}])},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"40d3155c2275216a9e48f8dfb030e0e9db8aa9ad40",null),a.s(["f",0,e])}],81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))}];
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},11528,a=>{var b=a.i(70043),c=a.i(434);a.S([b,"4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be,f",0,c,"60193849d75d68c4eebfcc031f47505e0872597228,c,605f767dc338f214376a3487166bd7750ea02aae7b,M,607190a9647c4da3ed3070220fc5d167d3a218f5ef,K,60f52e5cb4fb33a5d7957558bf5378b92c175cf4af,d,60ff95b485a7e78a160dda50844dce06ca5ee8ad5c,N"],11528)},1324,a=>{a.s(["H",0,"fleet","v",0,function(a,b){let c=a.get(b);return"string"==typeof c?c:""},"O",0,function(a){return Object.fromEntries([...a.entries()].flatMap(([a,b])=>"string"==typeof b?[[a,b]]:[]))}])},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be",null),a.s(["f",0,e])}],81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))}];
3
3
 
4
4
  //# sourceMappingURL=%5Broot-of-the-server%5D__1ncn4wx-1i09m._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../web/.next-internal/server/app/%28console%29/slack/remove/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/forms/form-state.ts","../../../../../web/features/frame/actions.ts"],"sourcesContent":["// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","export {setTheme as '40d3155c2275216a9e48f8dfb030e0e9db8aa9ad40'} from 'ACTIONS_MODULE0'\nexport {installBot as '60000936ef3bb52310f3e7417efc593cc8cad9410e'} from 'ACTIONS_MODULE1'\nexport {disconnectSlack as '60378c55c94091d50cd00f4e7b1a27626a916de383'} from 'ACTIONS_MODULE1'\nexport {removeBot as '605616e78e5e46e20bc13998d4e802796ce274de09'} from 'ACTIONS_MODULE1'\nexport {connectSlack as '60e79e94ef85937c34c897d09c23f64df58027e6ee'} from 'ACTIONS_MODULE1'\nexport {exposeShip as '60f778db2269044a452fa9019cd452b6eeb0a91d98'} from 'ACTIONS_MODULE1'\n","/**\n * What a page's form (a server action) answers the browser: nothing yet,\n * done with what changed, or refused with why, as the API said it. The\n * open network's warning asks for a confirm (interop I-3).\n */\nexport type FormState =\n | { kind: 'idle' }\n | { kind: 'done'; message: string }\n | { kind: 'refused'; message: string }\n | { kind: 'openNetwork'; message: string };\n\nexport const IDLE: FormState = { kind: 'idle' };\n\n/** A form's text field, empty when it was not sent. */\nexport function fieldOf(form: FormData, name: string): string {\n const value = form.get(name);\n return typeof value === 'string' ? value : '';\n}\n\n/** The form's fields as text, files left out. */\nexport function fieldsOf(form: FormData): Record<string, string> {\n return Object.fromEntries([...form.entries()].flatMap(([name, value]) => (typeof value === 'string' ? [[name, value]] : [])));\n}\n\n/** The fleet a page's form names: the page's own, sent in a hidden field. */\nexport const FLEET_FIELD = 'fleet';\n","'use server';\n\n/** The header's theme choice, kept for this browser for a year. */\nimport { cookies } from 'next/headers';\n\nimport { isTheme, THEME_COOKIE } from './theme';\n\nconst YEAR_SECONDS = 365 * 24 * 60 * 60;\n\nexport async function setTheme(theme: unknown): Promise<void> {\n if (!isTheme(theme)) {\n return;\n }\n (await cookies()).set(THEME_COOKIE, theme, { path: '/', sameSite: 'lax', maxAge: YEAR_SECONDS });\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","IDLE","kind","fieldOf","form","name","value","get","fieldsOf","Object","fromEntries","entries","flatMap","FLEET_FIELD","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge"],"mappings":"iCAGO,SAASA,EAAyBC,CAAc,EACrD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,MAAM,CAAED,IAAK,CACvC,IAAME,EAASH,CAAO,CAACC,EAAE,CACzB,GAAsB,YAAlB,AAA8B,OAAvBE,EACT,MAAM,AAAIC,MACR,CAAC,2DAA2D,EAAE,OAAOD,EAAO;AAAA,oEAAuE,CAAC,CAG1J,CACF,0EATgBJ,2BAAAA,qCAAAA,sBCHoC,OAAA,cAAA,CAAA,EAAA,aAAA,oCAC3CM,0BAAAA,qCAAAA,EAAAA,uBAAuB,YAAQ,CAAA,CAAA,IAAA,cCDxC,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,+TCwB2B,cAXpB,SAASG,AAAQC,CAAc,CAAEC,CAAY,EAClD,IAAMC,EAAQF,EAAKG,GAAG,CAACF,GACvB,MAAwB,UAAjB,OAAOC,EAAqBA,EAAQ,EAC7C,QAGO,SAASE,AAASJ,CAAc,EACrC,OAAOK,OAAOC,WAAW,CAAC,IAAIN,EAAKO,OAAO,GAAG,CAACC,OAAO,CAAC,CAAC,CAACP,EAAMC,EAAM,GAAuB,UAAjB,OAAOA,EAAqB,CAAC,CAACD,EAAMC,EAAM,CAAC,CAAG,EAAE,EAC5H,gCCnBA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OAIO,eAAeS,EAASC,CAAc,EACtC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACA,IAGb,CAAC,GAHoB,GAGd,CAAA,EAAA,EAAA,OAAA,AAAO,GAAA,CAAE,CAAEC,GAAG,CAAC,EAAA,CAAY,CAAED,EAAO,CAAEE,KAAM,IAAKC,SAAU,MAAOC,OANtD,CAM8DN,KANxD,CAMqE,EAChG,EAPgC,KAAK,mCAEfC,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA","ignoreList":[0,1]}
1
+ {"version":3,"sources":["../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../web/.next-internal/server/app/%28console%29/slack/remove/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/forms/form-state.ts","../../../../../web/features/frame/actions.ts"],"sourcesContent":["// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","export {setTheme as '4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be'} from 'ACTIONS_MODULE0'\nexport {disconnectSlack as '60193849d75d68c4eebfcc031f47505e0872597228'} from 'ACTIONS_MODULE1'\nexport {installBot as '605f767dc338f214376a3487166bd7750ea02aae7b'} from 'ACTIONS_MODULE1'\nexport {exposeShip as '607190a9647c4da3ed3070220fc5d167d3a218f5ef'} from 'ACTIONS_MODULE1'\nexport {removeBot as '60f52e5cb4fb33a5d7957558bf5378b92c175cf4af'} from 'ACTIONS_MODULE1'\nexport {connectSlack as '60ff95b485a7e78a160dda50844dce06ca5ee8ad5c'} from 'ACTIONS_MODULE1'\n","/**\n * What a page's form (a server action) answers the browser: nothing yet,\n * done with what changed, or refused with why, as the API said it. The\n * open network's warning asks for a confirm (interop I-3).\n */\nexport type FormState =\n | { kind: 'idle' }\n | { kind: 'done'; message: string }\n | { kind: 'refused'; message: string }\n | { kind: 'openNetwork'; message: string };\n\nexport const IDLE: FormState = { kind: 'idle' };\n\n/** A form's text field, empty when it was not sent. */\nexport function fieldOf(form: FormData, name: string): string {\n const value = form.get(name);\n return typeof value === 'string' ? value : '';\n}\n\n/** The form's fields as text, files left out. */\nexport function fieldsOf(form: FormData): Record<string, string> {\n return Object.fromEntries([...form.entries()].flatMap(([name, value]) => (typeof value === 'string' ? [[name, value]] : [])));\n}\n\n/** The fleet a page's form names: the page's own, sent in a hidden field. */\nexport const FLEET_FIELD = 'fleet';\n","'use server';\n\n/** The header's theme choice, kept for this browser for a year. */\nimport { cookies } from 'next/headers';\n\nimport { isTheme, THEME_COOKIE } from './theme';\n\nconst YEAR_SECONDS = 365 * 24 * 60 * 60;\n\nexport async function setTheme(theme: unknown): Promise<void> {\n if (!isTheme(theme)) {\n return;\n }\n (await cookies()).set(THEME_COOKIE, theme, { path: '/', sameSite: 'lax', maxAge: YEAR_SECONDS });\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","IDLE","kind","fieldOf","form","name","value","get","fieldsOf","Object","fromEntries","entries","flatMap","FLEET_FIELD","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge"],"mappings":"iCAGO,SAASA,EAAyBC,CAAc,EACrD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,MAAM,CAAED,IAAK,CACvC,IAAME,EAASH,CAAO,CAACC,EAAE,CACzB,GAAsB,YAAlB,AAA8B,OAAvBE,EACT,MAAM,AAAIC,MACR,CAAC,2DAA2D,EAAE,OAAOD,EAAO;AAAA,oEAAuE,CAAC,CAG1J,CACF,0EATgBJ,2BAAAA,qCAAAA,sBCHoC,OAAA,cAAA,CAAA,EAAA,aAAA,oCAC3CM,0BAAAA,qCAAAA,EAAAA,uBAAuB,YAAQ,CAAA,CAAA,IAAA,cCDxC,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,+TCwB2B,cAXpB,SAASG,AAAQC,CAAc,CAAEC,CAAY,EAClD,IAAMC,EAAQF,EAAKG,GAAG,CAACF,GACvB,MAAwB,UAAjB,OAAOC,EAAqBA,EAAQ,EAC7C,QAGO,SAASE,AAASJ,CAAc,EACrC,OAAOK,OAAOC,WAAW,CAAC,IAAIN,EAAKO,OAAO,GAAG,CAACC,OAAO,CAAC,CAAC,CAACP,EAAMC,EAAM,GAAuB,UAAjB,OAAOA,EAAqB,CAAC,CAACD,EAAMC,EAAM,CAAC,CAAG,EAAE,EAC5H,gCCnBA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OAIO,eAAeS,EAASC,CAAc,EACtC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACA,IAGb,CAAC,GAHoB,GAGd,CAAA,EAAA,EAAA,OAAA,AAAO,GAAA,CAAE,CAAEC,GAAG,CAAC,EAAA,CAAY,CAAED,EAAO,CAAEE,KAAM,IAAKC,SAAU,MAAOC,OANtD,CAM8DN,KANxD,CAMqE,EAChG,EAPgC,KAAK,mCAEfC,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA","ignoreList":[0,1]}
@@ -1,4 +1,4 @@
1
1
  (()=>{"use strict";module.exports=[13095,(a,b,c)=>{function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},49166,a=>{var b=a.i(70043);a.S([b,"40d3155c2275216a9e48f8dfb030e0e9db8aa9ad40,f"],49166)},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"40d3155c2275216a9e48f8dfb030e0e9db8aa9ad40",null),a.s(["f",0,e])}]})();
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},49166,a=>{var b=a.i(70043);a.S([b,"4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be,f"],49166)},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be",null),a.s(["f",0,e])}]})();
3
3
 
4
4
  //# sourceMappingURL=_00hfzlqn1og18._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../web/.next-internal/server/app/authorize/failed/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/frame/actions.ts"],"sourcesContent":["// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","export {setTheme as '40d3155c2275216a9e48f8dfb030e0e9db8aa9ad40'} from 'ACTIONS_MODULE0'\n","'use server';\n\n/** The header's theme choice, kept for this browser for a year. */\nimport { cookies } from 'next/headers';\n\nimport { isTheme, THEME_COOKIE } from './theme';\n\nconst YEAR_SECONDS = 365 * 24 * 60 * 60;\n\nexport async function setTheme(theme: unknown): Promise<void> {\n if (!isTheme(theme)) {\n return;\n }\n (await cookies()).set(THEME_COOKIE, theme, { path: '/', sameSite: 'lax', maxAge: YEAR_SECONDS });\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge"],"mappings":"mDAGO,SAASA,EAAyBC,CAAc,EACrD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,MAAM,CAAED,IAAK,CACvC,IAAME,EAASH,CAAO,CAACC,EAAE,CACzB,GAAsB,YAAlB,AAA8B,OAAvBE,EACT,MAAUC,AAAJ,MACJ,CAAC,2DAA2D,EAAE,OAAOD,EAAO;AAAA,oEAAuE,CAAC,CAG1J,CACF,0EATgBJ,2BAAAA,qCAAAA,sBCHoC,OAAA,cAAA,CAAA,EAAA,aAAA,oCAC3CM,0BAAAA,qCAAAA,EAAAA,uBAAuB,YAAQ,CAAA,CAAA,IAAA,cCDxC,IAAA,EAAA,EAAA,CAAA,CAAA,iGCGA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OAIO,eAAeE,EAASC,CAAc,EACtC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACA,IAGb,CAAC,GAHoB,GAGd,CAAA,EAAA,EAAA,OAAA,AAAO,GAAA,CAAE,CAAEC,GAAG,CAAC,EAAA,CAAY,CAAED,EAAO,CAAEE,KAAM,IAAKC,SAAU,MAAOC,OANtD,CAM8DN,KANxD,CAMqE,EAChG,EAPgC,KAAK,mCAEfC,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA","ignoreList":[0,1]}
1
+ {"version":3,"sources":["../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../web/.next-internal/server/app/authorize/failed/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/frame/actions.ts"],"sourcesContent":["// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","export {setTheme as '4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be'} from 'ACTIONS_MODULE0'\n","'use server';\n\n/** The header's theme choice, kept for this browser for a year. */\nimport { cookies } from 'next/headers';\n\nimport { isTheme, THEME_COOKIE } from './theme';\n\nconst YEAR_SECONDS = 365 * 24 * 60 * 60;\n\nexport async function setTheme(theme: unknown): Promise<void> {\n if (!isTheme(theme)) {\n return;\n }\n (await cookies()).set(THEME_COOKIE, theme, { path: '/', sameSite: 'lax', maxAge: YEAR_SECONDS });\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge"],"mappings":"mDAGO,SAASA,EAAyBC,CAAc,EACrD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,MAAM,CAAED,IAAK,CACvC,IAAME,EAASH,CAAO,CAACC,EAAE,CACzB,GAAsB,YAAlB,AAA8B,OAAvBE,EACT,MAAUC,AAAJ,MACJ,CAAC,2DAA2D,EAAE,OAAOD,EAAO;AAAA,oEAAuE,CAAC,CAG1J,CACF,0EATgBJ,2BAAAA,qCAAAA,sBCHoC,OAAA,cAAA,CAAA,EAAA,aAAA,oCAC3CM,0BAAAA,qCAAAA,EAAAA,uBAAuB,YAAQ,CAAA,CAAA,IAAA,cCDxC,IAAA,EAAA,EAAA,CAAA,CAAA,iGCGA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OAIO,eAAeE,EAASC,CAAc,EACtC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACA,IAGb,CAAC,GAHoB,GAGd,CAAA,EAAA,EAAA,OAAA,AAAO,GAAA,CAAE,CAAEC,GAAG,CAAC,EAAA,CAAY,CAAED,EAAO,CAAEE,KAAM,IAAKC,SAAU,MAAOC,OANtD,CAM8DN,KANxD,CAMqE,EAChG,EAPgC,KAAK,mCAEfC,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA","ignoreList":[0,1]}
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[33540,a=>{var b=a.i(64831);let c={name:"search",size:24,node:[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]};c.node;let d=(0,b.f)(c);a.s(["f",0,d],33540)},69789,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0});var d={actionAsyncStorage:function(){return f.actionAsyncStorage},workAsyncStorage:function(){return g.workAsyncStorage},workUnitAsyncStorage:function(){return h.workUnitAsyncStorage}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20635),g=a.r(56704),h=a.r(32319);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},919,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(5050);let e=(0,d.createServerReference)("40d3155c2275216a9e48f8dfb030e0e9db8aa9ad40",d.callServer,void 0,d.findSourceMapURL,"setTheme"),f=["light","dark","system"];a.s(["f",0,function({email:a,accountUrl:d,theme:g,entries:h=[]}){let[i,j]=(0,c.useState)(g),[k,l]=(0,c.useState)(!1),m=(0,c.useRef)(null);return{account:{name:a,signedInAs:"account",accountUrl:d,theme:i,themes:f,hasTheme:!0,onThemeChange:a=>{let b;j(a),document.documentElement.dataset.theme=a,b="dark"===a||"system"===a&&window.matchMedia("(prefers-color-scheme: dark)").matches,document.documentElement.classList.toggle("dark",b),e(a)},shortcuts:[],helpUrl:"https://github.com/ThomasHendrickx/aeolus-fleet",onSignOut:()=>{l(!0),m.current?.requestSubmit()},isSigningOut:k,entries:h},signOutForm:(0,b.jsx)("form",{ref:m,method:"post",action:"/sign-in/end",hidden:!0})}}],919)},25959,a=>{a.s(["f",0,function(a,b){let[c="",d=""]=a.split("?"),e=new URLSearchParams(d);return e.set("fleet",b),`${c}?${e.toString()}`}])}]})();
1
+ (()=>{"use strict";module.exports=[33540,a=>{var b=a.i(64831);let c={name:"search",size:24,node:[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]};c.node;let d=(0,b.f)(c);a.s(["f",0,d],33540)},69789,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0});var d={actionAsyncStorage:function(){return f.actionAsyncStorage},workAsyncStorage:function(){return g.workAsyncStorage},workUnitAsyncStorage:function(){return h.workUnitAsyncStorage}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20635),g=a.r(56704),h=a.r(32319);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},919,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(5050);let e=(0,d.createServerReference)("4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be",d.callServer,void 0,d.findSourceMapURL,"setTheme"),f=["light","dark","system"];a.s(["f",0,function({email:a,accountUrl:d,theme:g,entries:h=[]}){let[i,j]=(0,c.useState)(g),[k,l]=(0,c.useState)(!1),m=(0,c.useRef)(null);return{account:{name:a,signedInAs:"account",accountUrl:d,theme:i,themes:f,hasTheme:!0,onThemeChange:a=>{let b;j(a),document.documentElement.dataset.theme=a,b="dark"===a||"system"===a&&window.matchMedia("(prefers-color-scheme: dark)").matches,document.documentElement.classList.toggle("dark",b),e(a)},shortcuts:[],helpUrl:"https://github.com/ThomasHendrickx/aeolus-fleet",onSignOut:()=>{l(!0),m.current?.requestSubmit()},isSigningOut:k,entries:h},signOutForm:(0,b.jsx)("form",{ref:m,method:"post",action:"/sign-in/end",hidden:!0})}}],919)},25959,a=>{a.s(["f",0,function(a,b){let[c="",d=""]=a.split("?"),e=new URLSearchParams(d);return e.set("fleet",b),`${c}?${e.toString()}`}])}]})();
2
2
 
3
3
  //# sourceMappingURL=_0_nfv33ug5g31._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../node_modules/lucide-react/src/icons/search.ts","../../../../../node_modules/next/src/client/components/server-async-storage.ts","../../../../../web/features/frame/hooks/use-account-menu.tsx","../../../../../web/features/frame/data%3A8fa816%20%3Ctext/javascript%3E","../../../../../web/features/frame/theme.ts","../../../../../web/lib/gateway-api/page-account.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'search',\n size: 24,\n node: [\n ['path', { d: 'm21 21-4.34-4.34', key: '14j7rj' }],\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMjEtNC4zNC00LjM0IiAvPgogIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon(__iconData);\n\nexport default Search;\n","// Client-safe access to the server-only async-storage singletons. On the\n// server these re-export the real storages; in the browser bundle this module\n// is aliased to `./server-async-storage.browser` (see\n// scripts/generate-browser-variant-aliases.mjs), which exports `undefined`\n// stubs so the AsyncLocalStorage modules are never bundled into the client.\n// Consumers must guard usage so the stubs are not dereferenced in the browser.\nexport { actionAsyncStorage } from '../../server/app-render/action-async-storage.external'\nexport { workAsyncStorage } from '../../server/app-render/work-async-storage.external'\nexport { workUnitAsyncStorage } from '../../server/app-render/work-unit-async-storage.external'\n","'use client';\n\nimport type { Theme } from '@aeolus-fleet/common';\nimport type { AvatarMenuEntry, AvatarMenuProps } from '@aeolus-fleet/ui';\nimport { useRef, useState, type ReactNode } from 'react';\n\nimport { setTheme } from '../actions';\nimport { THEMES } from '../theme';\n\n/** Where the avatar menu's Help leads, as in the console. */\nconst HELP_URL = 'https://github.com/ThomasHendrickx/aeolus-fleet';\n\n/** The gateway's server ends the shared sign-in here, in every app at once, for a form sent from its own pages. */\nconst SIGN_OUT_PATH = '/sign-in/end';\n\n/** Applies a theme at once, as the root layout's script does on the next load. */\nfunction applyTheme(theme: Theme): void {\n document.documentElement.dataset.theme = theme;\n const isDark = theme === 'dark' || (theme === 'system' && window.matchMedia('(prefers-color-scheme: dark)').matches);\n document.documentElement.classList.toggle('dark', isDark);\n}\n\nexport interface AccountMenuOf {\n readonly email: string;\n /** Account's address, for the avatar menu's Your account, Your rights and Email updates. */\n readonly accountUrl: string | undefined;\n readonly theme: Theme;\n /** The page's own entries, such as the phone's for what its tab bar lacks. */\n readonly entries?: readonly AvatarMenuEntry[];\n}\n\n/**\n * The avatar menu of the account signed in (header design H8): its theme,\n * applied at once and kept, and sign out, which ends the shared sign-in in\n * every app and says \"Signing out\" until the page leaves. The form that\n * signs out goes on the page beside the menu.\n */\nexport function useAccountMenu({ email, accountUrl, theme, entries = [] }: AccountMenuOf): { account: AvatarMenuProps; signOutForm: ReactNode } {\n const [shownTheme, setShownTheme] = useState(theme);\n const [isSigningOut, setIsSigningOut] = useState(false);\n const form = useRef<HTMLFormElement>(null);\n const account: AvatarMenuProps = {\n name: email,\n signedInAs: 'account',\n accountUrl,\n theme: shownTheme,\n themes: THEMES,\n hasTheme: true,\n onThemeChange: (next) => {\n setShownTheme(next);\n applyTheme(next);\n void setTheme(next);\n },\n shortcuts: [],\n helpUrl: HELP_URL,\n onSignOut: () => {\n setIsSigningOut(true);\n form.current?.requestSubmit();\n },\n isSigningOut,\n entries,\n };\n return { account, signOutForm: <form ref={form} method=\"post\" action={SIGN_OUT_PATH} hidden /> };\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"40d3155c2275216a9e48f8dfb030e0e9db8aa9ad40\":{\"name\":\"setTheme\"}},\"web/features/frame/actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40d3155c2275216a9e48f8dfb030e0e9db8aa9ad40\",callServer,void 0,findSourceMapURL,\"setTheme\");export{$$RSC_SERVER_ACTION_0 as setTheme};","/**\n * The theme this browser chose for the gateway's pages (header design H13:\n * each app keeps its own), System until chosen.\n */\nimport type { Theme } from '@aeolus-fleet/common';\n\n/** The themes, as common names them: written here so the header's browser code loads no schema (decision 0033). */\nexport const THEMES: readonly Theme[] = ['light', 'dark', 'system'];\n\n/** The cookie that keeps it. */\nexport const THEME_COOKIE = 'aeolus_gateway_theme';\n\nexport function isTheme(value: unknown): value is Theme {\n return THEMES.some((theme) => theme === value);\n}\n\n/** The theme a cookie names, or System. */\nexport function themeFrom(value: string | undefined): Theme {\n return isTheme(value) ? value : 'system';\n}\n","/**\n * What a page of the web app does with the API's account.inView (header\n * design H5, H9): show its fleet as the account signed in, or send the\n * browser where it may go: the same page in the fleet the account may open,\n * the app it may open there, or sign-in and back to the page. Where the\n * gateway is off for the account's fleet, the page says so instead.\n */\n\n/** The API's answer to account.inView. */\nexport type InView =\n | { kind: 'signedIn'; fleetId: string; accountId: string; scopes: string[] }\n | { kind: 'goTo'; fleetId: string }\n | { kind: 'off'; fleetName: string; accountUrl: string }\n | { kind: 'elsewhere'; url: string };\n\n/** The API's refusals of account.inView a page answers: signed in to no account, and no shared sign-in at this gateway. */\nexport type InViewRefusal = 'UNAUTHORIZED' | 'NOT_FOUND';\n\nexport type PageAccount =\n | { kind: 'signedIn'; fleetId: string; scopes: readonly string[] }\n | { kind: 'goTo'; location: string }\n | { kind: 'off'; fleetName: string; accountUrl: string }\n | { kind: 'noSignIn' };\n\nconst SIGN_IN_START = '/sign-in/start';\n\n/** The parameter a page names its fleet by. */\nexport const FLEET_PARAMETER = 'fleet';\n\n/** A page of the web app in a fleet: every link keeps the fleet in its address. */\nexport function inFleet(page: string, fleetId: string): string {\n const [path = '', query = ''] = page.split('?');\n const parameters = new URLSearchParams(query);\n parameters.set(FLEET_PARAMETER, fleetId);\n return `${path}?${parameters.toString()}`;\n}\n\n/** Reads the answer for the page asked for, its path and query as the browser sent them. */\nexport function pageAccountOf(read: { inView: InView } | { refusal: InViewRefusal }, page: string): PageAccount {\n if ('refusal' in read) {\n return read.refusal === 'UNAUTHORIZED' ? { kind: 'goTo', location: `${SIGN_IN_START}?${new URLSearchParams({ return_to: page }).toString()}` } : { kind: 'noSignIn' };\n }\n const { inView } = read;\n switch (inView.kind) {\n case 'signedIn':\n return { kind: 'signedIn', fleetId: inView.fleetId, scopes: inView.scopes };\n case 'goTo':\n return { kind: 'goTo', location: inFleet(page, inView.fleetId) };\n case 'off':\n return inView;\n case 'elsewhere':\n return { kind: 'goTo', location: inView.url };\n }\n}\n"],"names":["actionAsyncStorage","workAsyncStorage","workUnitAsyncStorage","$$RSC_SERVER_ACTION_0","SIGN_IN_START","FLEET_PARAMETER","inFleet","page","fleetId","path","query","split","parameters","URLSearchParams","set","toString","pageAccountOf","read","refusal","kind","location","return_to","inView","scopes","url"],"mappings":"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","ignoreList":[0,1]}
1
+ {"version":3,"sources":["../../../../../node_modules/lucide-react/src/icons/search.ts","../../../../../node_modules/next/src/client/components/server-async-storage.ts","../../../../../web/features/frame/hooks/use-account-menu.tsx","../../../../../web/features/frame/data%3A64880f%20%3Ctext/javascript%3E","../../../../../web/features/frame/theme.ts","../../../../../web/lib/gateway-api/page-account.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'search',\n size: 24,\n node: [\n ['path', { d: 'm21 21-4.34-4.34', key: '14j7rj' }],\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMjEtNC4zNC00LjM0IiAvPgogIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon(__iconData);\n\nexport default Search;\n","// Client-safe access to the server-only async-storage singletons. On the\n// server these re-export the real storages; in the browser bundle this module\n// is aliased to `./server-async-storage.browser` (see\n// scripts/generate-browser-variant-aliases.mjs), which exports `undefined`\n// stubs so the AsyncLocalStorage modules are never bundled into the client.\n// Consumers must guard usage so the stubs are not dereferenced in the browser.\nexport { actionAsyncStorage } from '../../server/app-render/action-async-storage.external'\nexport { workAsyncStorage } from '../../server/app-render/work-async-storage.external'\nexport { workUnitAsyncStorage } from '../../server/app-render/work-unit-async-storage.external'\n","'use client';\n\nimport type { Theme } from '@aeolus-fleet/common';\nimport type { AvatarMenuEntry, AvatarMenuProps } from '@aeolus-fleet/ui';\nimport { useRef, useState, type ReactNode } from 'react';\n\nimport { setTheme } from '../actions';\nimport { THEMES } from '../theme';\n\n/** Where the avatar menu's Help leads, as in the console. */\nconst HELP_URL = 'https://github.com/ThomasHendrickx/aeolus-fleet';\n\n/** The gateway's server ends the shared sign-in here, in every app at once, for a form sent from its own pages. */\nconst SIGN_OUT_PATH = '/sign-in/end';\n\n/** Applies a theme at once, as the root layout's script does on the next load. */\nfunction applyTheme(theme: Theme): void {\n document.documentElement.dataset.theme = theme;\n const isDark = theme === 'dark' || (theme === 'system' && window.matchMedia('(prefers-color-scheme: dark)').matches);\n document.documentElement.classList.toggle('dark', isDark);\n}\n\nexport interface AccountMenuOf {\n readonly email: string;\n /** Account's address, for the avatar menu's Your account, Your rights and Email updates. */\n readonly accountUrl: string | undefined;\n readonly theme: Theme;\n /** The page's own entries, such as the phone's for what its tab bar lacks. */\n readonly entries?: readonly AvatarMenuEntry[];\n}\n\n/**\n * The avatar menu of the account signed in (header design H8): its theme,\n * applied at once and kept, and sign out, which ends the shared sign-in in\n * every app and says \"Signing out\" until the page leaves. The form that\n * signs out goes on the page beside the menu.\n */\nexport function useAccountMenu({ email, accountUrl, theme, entries = [] }: AccountMenuOf): { account: AvatarMenuProps; signOutForm: ReactNode } {\n const [shownTheme, setShownTheme] = useState(theme);\n const [isSigningOut, setIsSigningOut] = useState(false);\n const form = useRef<HTMLFormElement>(null);\n const account: AvatarMenuProps = {\n name: email,\n signedInAs: 'account',\n accountUrl,\n theme: shownTheme,\n themes: THEMES,\n hasTheme: true,\n onThemeChange: (next) => {\n setShownTheme(next);\n applyTheme(next);\n void setTheme(next);\n },\n shortcuts: [],\n helpUrl: HELP_URL,\n onSignOut: () => {\n setIsSigningOut(true);\n form.current?.requestSubmit();\n },\n isSigningOut,\n entries,\n };\n return { account, signOutForm: <form ref={form} method=\"post\" action={SIGN_OUT_PATH} hidden /> };\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be\":{\"name\":\"setTheme\"}},\"web/features/frame/actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be\",callServer,void 0,findSourceMapURL,\"setTheme\");export{$$RSC_SERVER_ACTION_0 as setTheme};","/**\n * The theme this browser chose for the gateway's pages (header design H13:\n * each app keeps its own), System until chosen.\n */\nimport type { Theme } from '@aeolus-fleet/common';\n\n/** The themes, as common names them: written here so the header's browser code loads no schema (decision 0033). */\nexport const THEMES: readonly Theme[] = ['light', 'dark', 'system'];\n\n/** The cookie that keeps it. */\nexport const THEME_COOKIE = 'aeolus_gateway_theme';\n\nexport function isTheme(value: unknown): value is Theme {\n return THEMES.some((theme) => theme === value);\n}\n\n/** The theme a cookie names, or System. */\nexport function themeFrom(value: string | undefined): Theme {\n return isTheme(value) ? value : 'system';\n}\n","/**\n * What a page of the web app does with the API's account.inView (header\n * design H5, H9): show its fleet as the account signed in, or send the\n * browser where it may go: the same page in the fleet the account may open,\n * the app it may open there, or sign-in and back to the page. Where the\n * gateway is off for the account's fleet, the page says so instead.\n */\n\n/** The API's answer to account.inView. */\nexport type InView =\n | { kind: 'signedIn'; fleetId: string; accountId: string; scopes: string[] }\n | { kind: 'goTo'; fleetId: string }\n | { kind: 'off'; fleetName: string; accountUrl: string }\n | { kind: 'elsewhere'; url: string };\n\n/** The API's refusals of account.inView a page answers: signed in to no account, and no shared sign-in at this gateway. */\nexport type InViewRefusal = 'UNAUTHORIZED' | 'NOT_FOUND';\n\nexport type PageAccount =\n | { kind: 'signedIn'; fleetId: string; scopes: readonly string[] }\n | { kind: 'goTo'; location: string }\n | { kind: 'off'; fleetName: string; accountUrl: string }\n | { kind: 'noSignIn' };\n\nconst SIGN_IN_START = '/sign-in/start';\n\n/** The parameter a page names its fleet by. */\nexport const FLEET_PARAMETER = 'fleet';\n\n/** A page of the web app in a fleet: every link keeps the fleet in its address. */\nexport function inFleet(page: string, fleetId: string): string {\n const [path = '', query = ''] = page.split('?');\n const parameters = new URLSearchParams(query);\n parameters.set(FLEET_PARAMETER, fleetId);\n return `${path}?${parameters.toString()}`;\n}\n\n/** Reads the answer for the page asked for, its path and query as the browser sent them. */\nexport function pageAccountOf(read: { inView: InView } | { refusal: InViewRefusal }, page: string): PageAccount {\n if ('refusal' in read) {\n return read.refusal === 'UNAUTHORIZED' ? { kind: 'goTo', location: `${SIGN_IN_START}?${new URLSearchParams({ return_to: page }).toString()}` } : { kind: 'noSignIn' };\n }\n const { inView } = read;\n switch (inView.kind) {\n case 'signedIn':\n return { kind: 'signedIn', fleetId: inView.fleetId, scopes: inView.scopes };\n case 'goTo':\n return { kind: 'goTo', location: inFleet(page, inView.fleetId) };\n case 'off':\n return inView;\n case 'elsewhere':\n return { kind: 'goTo', location: inView.url };\n }\n}\n"],"names":["actionAsyncStorage","workAsyncStorage","workUnitAsyncStorage","$$RSC_SERVER_ACTION_0","SIGN_IN_START","FLEET_PARAMETER","inFleet","page","fleetId","path","query","split","parameters","URLSearchParams","set","toString","pageAccountOf","read","refusal","kind","location","return_to","inView","scopes","url"],"mappings":"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","ignoreList":[0,1]}
@@ -1,4 +1,4 @@
1
1
  (()=>{"use strict";module.exports=[13095,(a,b,c)=>{function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},71965,a=>{var b=a.i(70043);a.S([b,"40d3155c2275216a9e48f8dfb030e0e9db8aa9ad40,f"],71965)},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"40d3155c2275216a9e48f8dfb030e0e9db8aa9ad40",null),a.s(["f",0,e])}]})();
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},71965,a=>{var b=a.i(70043);a.S([b,"4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be,f"],71965)},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be",null),a.s(["f",0,e])}]})();
3
3
 
4
4
  //# sourceMappingURL=_0ka_9elusb800._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../web/.next-internal/server/app/%28console%29/gateway-off/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/frame/actions.ts"],"sourcesContent":["// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","export {setTheme as '40d3155c2275216a9e48f8dfb030e0e9db8aa9ad40'} from 'ACTIONS_MODULE0'\n","'use server';\n\n/** The header's theme choice, kept for this browser for a year. */\nimport { cookies } from 'next/headers';\n\nimport { isTheme, THEME_COOKIE } from './theme';\n\nconst YEAR_SECONDS = 365 * 24 * 60 * 60;\n\nexport async function setTheme(theme: unknown): Promise<void> {\n if (!isTheme(theme)) {\n return;\n }\n (await cookies()).set(THEME_COOKIE, theme, { path: '/', sameSite: 'lax', maxAge: YEAR_SECONDS });\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge"],"mappings":"mDAGO,SAASA,EAAyBC,CAAc,EACrD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,MAAM,CAAED,IAAK,CACvC,IAAME,EAASH,CAAO,CAACC,EAAE,CACzB,GAAsB,YAAlB,AAA8B,OAAvBE,EACT,MAAUC,AAAJ,MACJ,CAAC,2DAA2D,EAAE,OAAOD,EAAO;AAAA,oEAAuE,CAAC,CAG1J,CACF,0EATgBJ,2BAAAA,qCAAAA,sBCHoC,OAAA,cAAA,CAAA,EAAA,aAAA,oCAC3CM,0BAAAA,qCAAAA,EAAAA,uBAAuB,YAAQ,CAAA,CAAA,IAAA,cCDxC,IAAA,EAAA,EAAA,CAAA,CAAA,iGCGA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OAIO,eAAeE,EAASC,CAAc,EACtC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACA,IAGb,CAAC,GAHoB,GAGd,CAAA,EAAA,EAAA,OAAA,AAAO,GAAA,CAAE,CAAEC,GAAG,CAAC,EAAA,CAAY,CAAED,EAAO,CAAEE,KAAM,IAAKC,SAAU,MAAOC,OANtD,CAM8DN,KANxD,CAMqE,EAChG,EAPgC,KAAK,mCAEfC,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA","ignoreList":[0,1]}
1
+ {"version":3,"sources":["../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../web/.next-internal/server/app/%28console%29/gateway-off/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/frame/actions.ts"],"sourcesContent":["// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","export {setTheme as '4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be'} from 'ACTIONS_MODULE0'\n","'use server';\n\n/** The header's theme choice, kept for this browser for a year. */\nimport { cookies } from 'next/headers';\n\nimport { isTheme, THEME_COOKIE } from './theme';\n\nconst YEAR_SECONDS = 365 * 24 * 60 * 60;\n\nexport async function setTheme(theme: unknown): Promise<void> {\n if (!isTheme(theme)) {\n return;\n }\n (await cookies()).set(THEME_COOKIE, theme, { path: '/', sameSite: 'lax', maxAge: YEAR_SECONDS });\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge"],"mappings":"mDAGO,SAASA,EAAyBC,CAAc,EACrD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,MAAM,CAAED,IAAK,CACvC,IAAME,EAASH,CAAO,CAACC,EAAE,CACzB,GAAsB,YAAlB,AAA8B,OAAvBE,EACT,MAAUC,AAAJ,MACJ,CAAC,2DAA2D,EAAE,OAAOD,EAAO;AAAA,oEAAuE,CAAC,CAG1J,CACF,0EATgBJ,2BAAAA,qCAAAA,sBCHoC,OAAA,cAAA,CAAA,EAAA,aAAA,oCAC3CM,0BAAAA,qCAAAA,EAAAA,uBAAuB,YAAQ,CAAA,CAAA,IAAA,cCDxC,IAAA,EAAA,EAAA,CAAA,CAAA,iGCGA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OAIO,eAAeE,EAASC,CAAc,EACtC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACA,IAGb,CAAC,GAHoB,GAGd,CAAA,EAAA,EAAA,OAAA,AAAO,GAAA,CAAE,CAAEC,GAAG,CAAC,EAAA,CAAY,CAAED,EAAO,CAAEE,KAAM,IAAKC,SAAU,MAAOC,OANtD,CAM8DN,KANxD,CAMqE,EAChG,EAPgC,KAAK,mCAEfC,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA","ignoreList":[0,1]}