@cardstack/boxel-cli 0.3.2-unstable.61 → 0.4.0-unstable.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-realms/base/card-api.gts +2 -0
- package/bundled-realms/base/components/cards-grid-layout.gts +24 -2
- package/bundled-realms/base/field-component.gts +16 -4
- package/bundled-realms/base/links-to-editor.gts +27 -3
- package/bundled-realms/base/realm-config.gts +18 -1
- package/bundled-test-harness/assets/adapter-unm-Xq4g.js +2 -0
- package/bundled-test-harness/assets/{add-field-to-card-definition-command-test-DkxmkPH6.js → add-field-to-card-definition-command-test-CCaDu5uP.js} +2 -2
- package/bundled-test-harness/assets/{add-workspace-tMjv_Ar4.js → add-workspace-DBDTvtP2.js} +3 -3
- package/bundled-test-harness/assets/{add-workspace-test-BMKxSlaC.js → add-workspace-test-CE21v7jK.js} +3 -3
- package/bundled-test-harness/assets/{ai-assistant-test-C3LjW9Uz.js → ai-assistant-test-DSyMR0hY.js} +8 -7
- package/bundled-test-harness/assets/{ai-function-generation-test-WqD9vlzP.js → ai-function-generation-test-BkTvuCnq.js} +1 -1
- package/bundled-test-harness/assets/{ai-module-creation-test-CeP1V90-.js → ai-module-creation-test-zY83EN93.js} +3 -3
- package/bundled-test-harness/assets/{aibot-message-CiwsV-h8.js → aibot-message-BfRah4Lm.js} +2 -2
- package/bundled-test-harness/assets/{app-C8fZHSIY.js → app-CPRVydcd.js} +321 -33
- package/bundled-test-harness/assets/{apply-markdown-edit-test-VkN9mVg4.js → apply-markdown-edit-test-CpeCS12T.js} +2 -2
- package/bundled-test-harness/assets/{apply-search-replace-block-test-C4GiLUbz.js → apply-search-replace-block-test-Czoi47xr.js} +1 -1
- package/bundled-test-harness/assets/{auth-service-worker-registration-CGUqW_lr.js → auth-service-worker-registration-C3rAs9Yi.js} +1 -1
- package/bundled-test-harness/assets/{auth-service-worker-test-DjVH_n4v.js → auth-service-worker-test-DTHQyoUg.js} +3 -3
- package/bundled-test-harness/assets/{authed-fetch-test-PT9AWQEk.js → authed-fetch-test-BRqybmXe.js} +2 -2
- package/bundled-test-harness/assets/{avif-image-def-test-BMFnvMFY.js → avif-image-def-test-BVwv4Ahc.js} +1 -1
- package/bundled-test-harness/assets/{basic-test-B5EcLZRP.js → basic-test-Dbky79J2.js} +1 -1
- package/bundled-test-harness/assets/{binary-upload-dedupe-test-BvQVNF95.js → binary-upload-dedupe-test-nnaYqiTh.js} +3 -3
- package/bundled-test-harness/assets/{bot-registration-test-Cy1HY7PT.js → bot-registration-test-zrufhFTo.js} +2 -2
- package/bundled-test-harness/assets/{box-test-BTOPLQ3k.js → box-test-B85wfMJn.js} +1 -1
- package/bundled-test-harness/assets/{brand-guide-attachments-test-C4R_z8N5.js → brand-guide-attachments-test-C8-n-naq.js} +2 -2
- package/bundled-test-harness/assets/{brand-guide-custom-css-test-Me-k86li.js → brand-guide-custom-css-test-B2fmvFp4.js} +2 -2
- package/bundled-test-harness/assets/{brand-logo-mark-field-test-DcCSpYJq.js → brand-logo-mark-field-test-CJ4s6jjd.js} +2 -2
- package/bundled-test-harness/assets/{broken-link-template-test-BRD2BX45.js → broken-link-template-test-BHXrPxQ6.js} +2 -2
- package/bundled-test-harness/assets/{can-read-realm-test-_flXUfS4.js → can-read-realm-test-mHnz9-_s.js} +2 -2
- package/bundled-test-harness/assets/{cancel-indexing-job-test-0JyPszPo.js → cancel-indexing-job-test-Drx2ghoA.js} +2 -2
- package/bundled-test-harness/assets/{card-api-test-BpeMpeQ0.js → card-api-test-C0HrvAuC.js} +3 -3
- package/bundled-test-harness/assets/{card-basics-test-C-UCeun-.js → card-basics-test-CvITmKK-.js} +3 -3
- package/bundled-test-harness/assets/{card-catalog-test-4K3_LE47.js → card-catalog-test-CWkfBRuQ.js} +3 -3
- package/bundled-test-harness/assets/{card-copy-test-BFFsV3G-.js → card-copy-test-Co_MPCIJ.js} +3 -3
- package/bundled-test-harness/assets/{card-def-field-def-relationships-test-CRjFV5pq.js → card-def-field-def-relationships-test-7e-g4qJs.js} +3 -3
- package/bundled-test-harness/assets/{card-def-menu-items-test-DQNnU_0P.js → card-def-menu-items-test-DLO6TEhC.js} +1 -1
- package/bundled-test-harness/assets/{card-delete-test-DOyt5y-x.js → card-delete-test-BcOtJYm4.js} +3 -3
- package/bundled-test-harness/assets/{card-error-detail-DuFoktdn.js → card-error-detail-Q7wtuRcv.js} +2 -2
- package/bundled-test-harness/assets/{card-playground-test-CiESzD5-.js → card-playground-test-DxoIBbjx.js} +3 -3
- package/bundled-test-harness/assets/{card-search-adorn-test-DdTUl5RY.js → card-search-adorn-test-CbsnFvDF.js} +2 -2
- package/bundled-test-harness/assets/{card-search-selection-menu-test-BJFUbgA1.js → card-search-selection-menu-test-CY77b1kz.js} +2 -2
- package/bundled-test-harness/assets/{check-correctness-test-B4E7WXSZ.js → check-correctness-test-D0EYMlP7.js} +2 -2
- package/bundled-test-harness/assets/{check-domain-availability-test-BnmsW2P7.js → check-domain-availability-test-BYAkVLGj.js} +2 -2
- package/bundled-test-harness/assets/{code-patches-test-6Lvfhm1l.js → code-patches-test-BDg35i4X.js} +1 -1
- package/bundled-test-harness/assets/{code-ref-test-BWuTdZ2e.js → code-ref-test-BZGL3teK.js} +1 -1
- package/bundled-test-harness/assets/{code-submode-test-DPzE9tKe.js → code-submode-test-DIiXgCRB.js} +3 -3
- package/bundled-test-harness/assets/{codeblocks-test-MV1tHflj.js → codeblocks-test-CFR0u5-j.js} +3 -3
- package/bundled-test-harness/assets/{codemirror-editor-test-SD3gDmHw.js → codemirror-editor-test-e1Yn_b_1.js} +1 -1
- package/bundled-test-harness/assets/{color-field-test-C_7cf4Z2.js → color-field-test-okcvtdsF.js} +2 -2
- package/bundled-test-harness/assets/{commands-DoigkJc8.js → commands-BOwQjc8N.js} +3 -3
- package/bundled-test-harness/assets/{commands-calling-test-Br4sMoMf.js → commands-calling-test-BETL8EWm.js} +2 -2
- package/bundled-test-harness/assets/{commands-test-71b4Fun5.js → commands-test-BpFjXsiC.js} +3 -3
- package/bundled-test-harness/assets/{commands-test-COT9Ck-6.js → commands-test-QSW7zRvO.js} +2 -2
- package/bundled-test-harness/assets/{components-CBfd9MIo.js → components-DYC4nC4r.js} +184 -184
- package/bundled-test-harness/assets/{components-8vaKSlYm.css → components-DgK6vTbM.css} +17 -14
- package/bundled-test-harness/assets/{computed-test-BbCVTMkD.js → computed-test-C2j8r-e_.js} +2 -2
- package/bundled-test-harness/assets/{container-BVdtw4NT.js → container-DRblzvCW.js} +18 -18
- package/bundled-test-harness/assets/{convert-to-class-name-test-DmF3wUKb.js → convert-to-class-name-test-BiCrnGxA.js} +1 -1
- package/bundled-test-harness/assets/{copy-and-edit-test-1xrTe8p1.js → copy-and-edit-test-DqV_dpu_.js} +1 -1
- package/bundled-test-harness/assets/{copy-card-test-D0rXx03h.js → copy-card-test-B4dNP03f.js} +1 -1
- package/bundled-test-harness/assets/{copy-file-to-realm-test-DxW5PABL.js → copy-file-to-realm-test-oGK9EM0P.js} +1 -1
- package/bundled-test-harness/assets/{copy-source-test-Dy83btnV.js → copy-source-test-GtNFw5fv.js} +2 -2
- package/bundled-test-harness/assets/{create-file-modal-BNJHELMz.js → create-file-modal-Cfvn0u5s.js} +4 -4
- package/bundled-test-harness/assets/{create-file-test-DimDxpRl.js → create-file-test-2WPpTJ5F.js} +1 -1
- package/bundled-test-harness/assets/{create-file-test-COppMhde.js → create-file-test-HxkEMHWL.js} +2 -2
- package/bundled-test-harness/assets/{create-listing-modal-test-D57Altg2.js → create-listing-modal-test-W6LuCzaK.js} +4 -4
- package/bundled-test-harness/assets/{create-listing-pr-request-test-HJmFkx_x.js → create-listing-pr-request-test-2ZRF_IBk.js} +2 -2
- package/bundled-test-harness/assets/{create-spec-test-C-4bkoj3.js → create-spec-test-JVOisAUl.js} +1 -1
- package/bundled-test-harness/assets/{csv-file-def-test-GOmD6Ikx.js → csv-file-def-test-DIVp_7a6.js} +1 -1
- package/bundled-test-harness/assets/{date-time-fields-test-BYn57092.js → date-time-fields-test-BWdrrYdj.js} +2 -2
- package/bundled-test-harness/assets/{debug-message-test-CNzx_IFI.js → debug-message-test-CXVfUuec.js} +3 -3
- package/bundled-test-harness/assets/{diffing-test-PA40XPFB.js → diffing-test-JzXF051K.js} +1 -1
- package/bundled-test-harness/assets/{editor-test-Dg1fTno0.js → editor-test-j9znzFxy.js} +2 -2
- package/bundled-test-harness/assets/{email-field-test-rPWkRvgR.js → email-field-test-D4vZ2Qnc.js} +2 -2
- package/bundled-test-harness/assets/{enum-field-test-DjQ-sjAR.js → enum-field-test-DtZ_sOiA.js} +2 -2
- package/bundled-test-harness/assets/{error-display-test-Cp1vgWSg.js → error-display-test-B6I8CYXw.js} +2 -2
- package/bundled-test-harness/assets/{evaluate-module-test-Bm6adsJS.js → evaluate-module-test-C_F1Y9Az.js} +1 -1
- package/bundled-test-harness/assets/{execute-atomic-operations-test-BAB2vv15.js → execute-atomic-operations-test-D_z5eJ6K.js} +2 -2
- package/bundled-test-harness/assets/{externals-C65aJ_7H.js → externals-DiG6hYU9.js} +2 -2
- package/bundled-test-harness/assets/fallback-banner-live-delete-test-Bv_OBmzY.js +209 -0
- package/bundled-test-harness/assets/{fallback-banner-test-Md-3yTpX.js → fallback-banner-test-DSjH5ank.js} +1 -1
- package/bundled-test-harness/assets/{fallback-banner-test-DpCz2idU.js → fallback-banner-test-TL8jNe4f.js} +3 -3
- package/bundled-test-harness/assets/{fallback-models-test-DcB9u65l.js → fallback-models-test-DEhvKsfY.js} +3 -3
- package/bundled-test-harness/assets/{fetch-card-json-test-CPHdklsi.js → fetch-card-json-test-BPfTOr4N.js} +2 -2
- package/bundled-test-harness/assets/{field-configuration-test-Da5xu3ar.js → field-configuration-test-CH1Kc0iA.js} +2 -2
- package/bundled-test-harness/assets/{field-markdown-domain-test-7aY4gMQ3.js → field-markdown-domain-test-COaJBBzN.js} +2 -2
- package/bundled-test-harness/assets/{field-markdown-primitives-test-B8UurS_m.js → field-markdown-primitives-test-C52WikZw.js} +2 -2
- package/bundled-test-harness/assets/{field-markdown-specialized-test-CHiWEV2t.js → field-markdown-specialized-test-Cmq-3t4u.js} +2 -2
- package/bundled-test-harness/assets/{field-playground-test-DBVHB2_g.js → field-playground-test-DbXri11f.js} +3 -3
- package/bundled-test-harness/assets/{field-support-predicates-test-i8LXzh_P.js → field-support-predicates-test-ni5pZ9sU.js} +1 -1
- package/bundled-test-harness/assets/{field-test-helpers-F8iX3xAt.js → field-test-helpers-BLApZo43.js} +1 -1
- package/bundled-test-harness/assets/{file-DUbLArQi.js → file-D8hnXC1_.js} +8 -2
- package/bundled-test-harness/assets/{file-attachment-test-yfZsKhWQ.js → file-attachment-test-CkL6IaWf.js} +3 -3
- package/bundled-test-harness/assets/{file-chooser-test-JOvGg1N8.js → file-chooser-test-M1rOgltw.js} +2 -2
- package/bundled-test-harness/assets/{file-def-live-reload-test-B_XsrkaB.js → file-def-live-reload-test--L4MvUj5.js} +1 -1
- package/bundled-test-harness/assets/{file-def-menu-items-test-CkZrFXrK.js → file-def-menu-items-test-B_dVulF7.js} +1 -1
- package/bundled-test-harness/assets/{file-def-navigation-test-CyO27adK.js → file-def-navigation-test-B4_pzEXy.js} +1 -1
- package/bundled-test-harness/assets/{file-def-serialization-test-1XrP63F8.js → file-def-serialization-test-IoGIzKST.js} +1 -1
- package/bundled-test-harness/assets/{file-def-test-BJEhQN1c.js → file-def-test-CT8jTLQy.js} +1 -1
- package/bundled-test-harness/assets/{file-tree-test-DQSPDeb2.js → file-tree-test-DQNSRISM.js} +2 -2
- package/bundled-test-harness/assets/{flac-audio-def-test-CeyxsGOr.js → flac-audio-def-test-CEt7tShK.js} +1 -1
- package/bundled-test-harness/assets/{formatted-aibot-message-test-D09eSldQ.js → formatted-aibot-message-test-CNk1lVYO.js} +3 -3
- package/bundled-test-harness/assets/{formatted-user-message-test-DmX95kEo.js → formatted-user-message-test-By3DTUBk.js} +2 -2
- package/bundled-test-harness/assets/{freestyle-test-KaFCs8l2.js → freestyle-test-BOVAHn_7.js} +1 -1
- package/bundled-test-harness/assets/{full-reindex-realm-test-BCUSPZuX.js → full-reindex-realm-test-BQji9QK_.js} +2 -2
- package/bundled-test-harness/assets/{garbage-collection-test-BJmgY3IQ.js → garbage-collection-test-bPtmt69E.js} +1 -1
- package/bundled-test-harness/assets/{general-test-B5RcCakW.js → general-test-B_QwZC0y.js} +3 -3
- package/bundled-test-harness/assets/{generate-example-cards-one-shot-test-Bh9_GXLK.js → generate-example-cards-one-shot-test-DtYqN3qW.js} +1 -1
- package/bundled-test-harness/assets/{get-available-realm-identifiers-test-C18mJr3L.js → get-available-realm-identifiers-test-BiHIbpFc.js} +2 -2
- package/bundled-test-harness/assets/{get-catalog-realm-identifiers-test-vDnl-arI.js → get-catalog-realm-identifiers-test-B4EVfXvp.js} +2 -2
- package/bundled-test-harness/assets/{get-default-writable-realm-test-Co4F_EH-.js → get-default-writable-realm-test-C2izRfTp.js} +2 -2
- package/bundled-test-harness/assets/{get-published-realms-test-D6auThJu.js → get-published-realms-test-CJlYS6SA.js} +1 -1
- package/bundled-test-harness/assets/{get-realm-of-resource-identifier-test-BeVoQztL.js → get-realm-of-resource-identifier-test-DZG0gROs.js} +2 -2
- package/bundled-test-harness/assets/{get-relationship-membership-state-test-Cm_VeTXw.js → get-relationship-membership-state-test-wOVStpnA.js} +1 -1
- package/bundled-test-harness/assets/{get-user-system-card-test-CAc-Ainy.js → get-user-system-card-test-Bf_il1b_.js} +2 -2
- package/bundled-test-harness/assets/{gif-image-def-test-Co2Woq8R.js → gif-image-def-test-DD4BOFUq.js} +1 -1
- package/bundled-test-harness/assets/{gts-file-def-test-DMhWqyxZ.js → gts-file-def-test-KrlOMcTY.js} +1 -1
- package/bundled-test-harness/assets/{head-format-preview-test-DPOjt1cu.js → head-format-preview-test-CGzx-i_Q.js} +2 -2
- package/bundled-test-harness/assets/{helpers-BIQP26gX.js → helpers-CR-27yCL.js} +1 -1
- package/bundled-test-harness/assets/{host-mode-service-BYjO5JXT.js → host-mode-service-BPYfmILw.js} +1 -1
- package/bundled-test-harness/assets/{host-mode-test-D9kRy5kW.js → host-mode-test-sjKqSasU.js} +3 -3
- package/bundled-test-harness/assets/{host-submode-test-Zy7-q9vh.js → host-submode-test-CvezMbrv.js} +1 -1
- package/bundled-test-harness/assets/{hydratable-card-test-DvgHojHD.js → hydratable-card-test-Ds6x3mv5.js} +1 -1
- package/bundled-test-harness/assets/{index-query-engine-test-Bk52a889.js → index-query-engine-test-x77vbwML.js} +2 -2
- package/bundled-test-harness/assets/{index-writer-test-DNeo1Uod.js → index-writer-test-BMajX3Mj.js} +1 -1
- package/bundled-test-harness/assets/{inspector-test-OaFEP4S0.js → inspector-test-CtCAKlpG.js} +42 -5
- package/bundled-test-harness/assets/{instance-filter-matcher-test-PeeLVGMO.js → instance-filter-matcher-test-YKzjZAa3.js} +2 -2
- package/bundled-test-harness/assets/{instantiate-card-test-C0Y8FG7w.js → instantiate-card-test-Ba3rd5Zn.js} +1 -1
- package/bundled-test-harness/assets/{interact-submode-creation-and-permissions-test-Cp3YiIQG.js → interact-submode-creation-and-permissions-test-2_4tHla6.js} +4 -4
- package/bundled-test-harness/assets/{interact-submode-setup-CtFp9kvB.js → interact-submode-setup-DI2HM3S-.js} +2 -2
- package/bundled-test-harness/assets/{interact-submode-test-B_JqGk2t.js → interact-submode-test-BUKZnm-y.js} +2 -2
- package/bundled-test-harness/assets/{invalidate-realm-identifiers-test-Dpa0TzwS.js → invalidate-realm-identifiers-test-Bl1RP3Kp.js} +2 -2
- package/bundled-test-harness/assets/{invite-user-to-room-test-DXzTeCgP.js → invite-user-to-room-test-Q26QQwvj.js} +2 -2
- package/bundled-test-harness/assets/{isolated-render-test-DVzQEdsY.js → isolated-render-test-Bc2ASFB1.js} +1 -1
- package/bundled-test-harness/assets/{item-button-CAhhwhRh.js → item-button-CepLHUN-.js} +1 -1
- package/bundled-test-harness/assets/{job-priority-header-test-J8emfVrj.js → job-priority-header-test-CDDfX3mF.js} +1 -1
- package/bundled-test-harness/assets/{jpg-image-def-test-D7txmQ4U.js → jpg-image-def-test-DGjpMEj5.js} +1 -1
- package/bundled-test-harness/assets/{json-file-def-test-C3W6amHE.js → json-file-def-test-8NlQ7NyF.js} +1 -1
- package/bundled-test-harness/assets/{linksto-broken-link-placeholder-test-nZIKEYDd.js → linksto-broken-link-placeholder-test-OPR5aao3.js} +2 -2
- package/bundled-test-harness/assets/{linksto-error-sentinel-test-E5UdAPkR.js → linksto-error-sentinel-test-DNEi2-4f.js} +1 -1
- package/bundled-test-harness/assets/{linksto-many-broken-link-placeholder-test-D5lhE5y-.js → linksto-many-broken-link-placeholder-test-Bl3-UMZt.js} +2 -2
- package/bundled-test-harness/assets/{linksto-many-per-slot-access-test-uONh3sy8.js → linksto-many-per-slot-access-test-Cv88sT3k.js} +1 -1
- package/bundled-test-harness/assets/{linksto-sentinel-roundtrip-test-CUbMHhoz.js → linksto-sentinel-roundtrip-test-DDrNtJgY.js} +1 -1
- package/bundled-test-harness/assets/{linksto-singular-js-access-contract-test-Doycge43.js → linksto-singular-js-access-contract-test-CMOxHvSS.js} +1 -1
- package/bundled-test-harness/assets/{live-prerendered-search-kxxMxyHS.js → live-prerendered-search-DiFs_MHd.js} +1 -1
- package/bundled-test-harness/assets/{live-test-pbHzyWf7.js → live-test-BfSJ7dPf.js} +6 -6
- package/bundled-test-harness/assets/live-test-CfcRApCW.js +2 -0
- package/bundled-test-harness/assets/{loader-parallel-prefetch-test-cfEJV65W.js → loader-parallel-prefetch-test-DchEbilk.js} +1 -1
- package/bundled-test-harness/assets/{loader-test-DZX-dw3F.js → loader-test-LyM1F2ON.js} +1 -1
- package/bundled-test-harness/assets/{loading-test-PwEVbSuF.js → loading-test-DrK02DRI.js} +2 -2
- package/bundled-test-harness/assets/{local-storage-keys-Do9I1BSV.js → local-storage-keys-C0jyxDKn.js} +4 -1
- package/bundled-test-harness/assets/{login-ou9E1DG9.js → login-DWNfbapF.js} +1 -1
- package/bundled-test-harness/assets/{login-error-text-test-BGvtn9op.js → login-error-text-test-3lQ69Gme.js} +1 -1
- package/bundled-test-harness/assets/{m4a-audio-def-test-Dkbh40DD.js → m4a-audio-def-test-B1PZDu-M.js} +1 -1
- package/bundled-test-harness/assets/{main-CE7KR5Ht.js → main-CDat3XsY.js} +1 -1
- package/bundled-test-harness/assets/{markdown-fallback-test-BHejXXnE.js → markdown-fallback-test-D32xPo5m.js} +2 -2
- package/bundled-test-harness/assets/{markdown-file-def-test-BOvu8beB.js → markdown-file-def-test-2_0tc-pT.js} +1 -1
- package/bundled-test-harness/assets/{markdown-helpers-test-Be9UUlnA.js → markdown-helpers-test-D6Ty5K6K.js} +1 -1
- package/bundled-test-harness/assets/{markdown-highlighting-test-D-jxOaxc.js → markdown-highlighting-test-CD22pEyx.js} +2 -2
- package/bundled-test-harness/assets/{markdown-preview-CKlpPkbc.js → markdown-preview-o2AI98EN.js} +1 -1
- package/bundled-test-harness/assets/{markdown-preview-test-D2kl56R1.js → markdown-preview-test-D2YoXqUY.js} +3 -3
- package/bundled-test-harness/assets/{matrix-service-sliding-sync-test-Cl1D6ID4.js → matrix-service-sliding-sync-test-Co9EhDYF.js} +1 -1
- package/bundled-test-harness/assets/{message-service-subscription-test-OvYUTr8V.js → message-service-subscription-test-BK3W9wng.js} +2 -2
- package/bundled-test-harness/assets/{mock-matrix-CD6YHaHR.js → mock-matrix-Bkfl9ACG.js} +6 -2
- package/bundled-test-harness/assets/{mock-matrix-Dt4s2hUe.js → mock-matrix-DbxVPkSl.js} +1 -1
- package/bundled-test-harness/assets/{modal-container-wzIBYeE_.js → modal-container-BzEkpeIx.js} +1 -1
- package/bundled-test-harness/assets/{module-transpile-cache-test-Bj11UbQJ.js → module-transpile-cache-test-BFmN6_si.js} +1 -1
- package/bundled-test-harness/assets/{mp3-audio-def-test-C6tzxO6X.js → mp3-audio-def-test-DorbFtva.js} +1 -1
- package/bundled-test-harness/assets/{number-field-test-l5WRd3N9.js → number-field-test-C9F_sOf8.js} +2 -2
- package/bundled-test-harness/assets/{ogg-audio-def-test-CQ04xrfS.js → ogg-audio-def-test-DRXLSBVQ.js} +1 -1
- package/bundled-test-harness/assets/{on-key-CpWVcRaS.js → on-key-C8yMINOQ.js} +1 -1
- package/bundled-test-harness/assets/{open-create-listing-modal-test-VxITHH84.js → open-create-listing-modal-test-Yp6EOMGK.js} +1 -1
- package/bundled-test-harness/assets/open-image-in-new-tab-test-3iRCTOjd.js +52 -0
- package/bundled-test-harness/assets/{open-workspace-test-goAg_TVx.js → open-workspace-test-DrkNS6zm.js} +1 -1
- package/bundled-test-harness/assets/{operator-mode-acceptance-test-DO3lt95I.js → operator-mode-acceptance-test-DoQ5Klyi.js} +7 -7
- package/bundled-test-harness/assets/{operator-mode-card-catalog-test-C3e1--M7.js → operator-mode-card-catalog-test-Came_pKy.js} +4 -4
- package/bundled-test-harness/assets/{operator-mode-links-test-AWhMhHM2.js → operator-mode-links-test-DoTvJvpI.js} +4 -4
- package/bundled-test-harness/assets/{operator-mode-state-service-test-BICXMa5O.js → operator-mode-state-service-test-cwdudDwm.js} +2 -2
- package/bundled-test-harness/assets/{operator-mode-test-DMyFaXHK.js → operator-mode-test-DeUtV1XR.js} +4 -4
- package/bundled-test-harness/assets/{operator-mode-ui-test-z2SU5ozt.js → operator-mode-ui-test-DTUMZBlw.js} +4 -4
- package/bundled-test-harness/assets/{overlay-menu-items-test-Dkulmtpn.js → overlay-menu-items-test-DhPIUwmz.js} +3 -3
- package/bundled-test-harness/assets/{panel-BXXk_P7h.js → panel-DcMU_CGT.js} +55 -31
- package/bundled-test-harness/assets/{past-sessions-test-gKLwZO61.js → past-sessions-test-BrdqlYxe.js} +3 -3
- package/bundled-test-harness/assets/{patch-code-ClPL6B_d.js → patch-code-F_7JKtTQ.js} +1 -1
- package/bundled-test-harness/assets/{patch-code-test-CIdB45Nv.js → patch-code-test-O5_p8vp4.js} +4 -4
- package/bundled-test-harness/assets/{patch-fields-test-CBGnqUme.js → patch-fields-test-D1aSP1q_.js} +1 -1
- package/bundled-test-harness/assets/{patch-instance-test-DmDpfS3p.js → patch-instance-test-DHBeFzYI.js} +1 -1
- package/bundled-test-harness/assets/{persist-module-inspector-view-test-D6vpSfX4.js → persist-module-inspector-view-test-DDYttEKD.js} +2 -2
- package/bundled-test-harness/assets/{phone-number-field-test-DogtMkDx.js → phone-number-field-test-CUY1miSH.js} +2 -2
- package/bundled-test-harness/assets/{playground-CMnQXTzR.js → playground-DFwsIC-9.js} +2 -2
- package/bundled-test-harness/assets/{png-image-def-test-BzfrYGhY.js → png-image-def-test-C9COAyWm.js} +1 -1
- package/bundled-test-harness/assets/{prerender-file-extract-test-C-1R1B32.js → prerender-file-extract-test-B76NnPJt.js} +1 -1
- package/bundled-test-harness/assets/{prerender-html-test-1XGnbGuQ.js → prerender-html-test-ImXJjrpR.js} +1 -1
- package/bundled-test-harness/assets/{prerender-meta-test-B02oGS-5.js → prerender-meta-test-xIFFdF1X.js} +1 -1
- package/bundled-test-harness/assets/{prerender-module-test-CSKywVQA.js → prerender-module-test-CoxYOMro.js} +1 -1
- package/bundled-test-harness/assets/{prerendered-card-search-test-Cf_Hvr4P.js → prerendered-card-search-test-DLYUamOp.js} +2 -2
- package/bundled-test-harness/assets/{preview-format-Bb5FIkOY.js → preview-format-BqY_j3zZ.js} +1 -1
- package/bundled-test-harness/assets/{preview-format-test-DBKtwgvo.js → preview-format-test-CublqRWy.js} +4 -4
- package/bundled-test-harness/assets/{preview-test-dgbtaeLg.js → preview-test-CcGZEu6Y.js} +2 -2
- package/bundled-test-harness/assets/{publish-realm-test-B4c6TqTI.js → publish-realm-test-Cqq_X3L4.js} +2 -2
- package/bundled-test-harness/assets/{query-field-barrier-test-DytVxOcd.js → query-field-barrier-test-CeDBxTwq.js} +2 -2
- package/bundled-test-harness/assets/{query-field-error-sentinel-test-Cs2wXQuL.js → query-field-error-sentinel-test-CwOzGgRw.js} +2 -2
- package/bundled-test-harness/assets/{query-field-schema-test-ByfKD-mO.js → query-field-schema-test-CXt4ktVo.js} +1 -1
- package/bundled-test-harness/assets/{query-fields-test-SlJNtzM3.js → query-fields-test-CrsGkXWE.js} +1 -1
- package/bundled-test-harness/assets/{read-card-for-ai-assistant-test-BzThkf4s.js → read-card-for-ai-assistant-test-DORLxJXd.js} +2 -2
- package/bundled-test-harness/assets/{read-file-for-ai-assistant-test-CV5PoqSP.js → read-file-for-ai-assistant-test-DyyCSmMv.js} +2 -2
- package/bundled-test-harness/assets/{read-source-test-jfWyZkQO.js → read-source-test-hAUdteMO.js} +2 -2
- package/bundled-test-harness/assets/{read-text-file-test-Kg6tx07O.js → read-text-file-test-juQ-OJET.js} +2 -2
- package/bundled-test-harness/assets/{realm-oWsFVfdH.js → realm-CxU8jc8l.js} +2 -2
- package/bundled-test-harness/assets/{realm-config-routing-rule-edit-test-VyMT__jT.js → realm-config-routing-rule-edit-test-T8S_2Lwq.js} +47 -4
- package/bundled-test-harness/assets/{realm-field-test-CBmQY3Va.js → realm-field-test-wqNbmdgM.js} +2 -2
- package/bundled-test-harness/assets/{realm-indexing-test-CQ29IEno.js → realm-indexing-test-DTuwfnZZ.js} +1 -1
- package/bundled-test-harness/assets/{realm-querying-test-PR_91CCq.js → realm-querying-test-ojIOXC3n.js} +1 -1
- package/bundled-test-harness/assets/{realm-test-C6Kw7gWx.js → realm-test-MgXPmHwc.js} +1 -1
- package/bundled-test-harness/assets/{reasoning-test-M4JuH0RZ.js → reasoning-test-DcQkF04r.js} +3 -3
- package/bundled-test-harness/assets/{recent-files-cards-D845sggD.js → recent-files-cards-BICbCMhW.js} +1 -1
- package/bundled-test-harness/assets/{recent-files-test-Du5oiGDf.js → recent-files-test-Df_1aE3G.js} +2 -2
- package/bundled-test-harness/assets/{reindex-realm-test-BrgFBbOc.js → reindex-realm-test-DDYvNGWh.js} +2 -2
- package/bundled-test-harness/assets/{relationship-loading-state-test-CnCYYtmY.js → relationship-loading-state-test-C2EialRQ.js} +1 -1
- package/bundled-test-harness/assets/{render-component-BJwKMGDa.js → render-component-DLXpC-Bc.js} +1 -1
- package/bundled-test-harness/assets/{rendered-markdown-test-BvQ96-0V.js → rendered-markdown-test-DblOECt_.js} +2 -2
- package/bundled-test-harness/assets/{rich-markdown-field-test-neZFxfcc.js → rich-markdown-field-test-B34TJAq8.js} +2 -2
- package/bundled-test-harness/assets/{room-message-test-DWEcr5le.js → room-message-test-DuSkABnU.js} +3 -3
- package/bundled-test-harness/assets/{sanitize-module-list-test-B4VjLVx_.js → sanitize-module-list-test-BTFw8-Do.js} +2 -2
- package/bundled-test-harness/assets/{schema-editor-test-CHeST1JD.js → schema-editor-test-w7ANspy0.js} +1 -1
- package/bundled-test-harness/assets/{schema-generation-test-G4ZL90Sn.js → schema-generation-test-z90uBA7r.js} +3 -3
- package/bundled-test-harness/assets/{scrolling-test-D3Asc3Yr.js → scrolling-test-jCKormjp.js} +4 -4
- package/bundled-test-harness/assets/{search-and-choose-test-DMB-Nv1z.js → search-and-choose-test-BhIWdkFp.js} +2 -2
- package/bundled-test-harness/assets/{search-command-test-BNZzENdS.js → search-command-test-BlTBufTS.js} +1 -1
- package/bundled-test-harness/assets/{search-correlation-id-test-tM-SfbrA.js → search-correlation-id-test-BR7bFNCy.js} +1 -1
- package/bundled-test-harness/assets/{search-data-test-CYrjasBZ.js → search-data-test-bc2foKLa.js} +2 -2
- package/bundled-test-harness/assets/{search-google-images-test-DzFbLWZE.js → search-google-images-test-C96iDOxU.js} +1 -1
- package/bundled-test-harness/assets/{search-result-header-5VQHm_Ev.js → search-result-header-Ch7TKEzn.js} +1 -1
- package/bundled-test-harness/assets/{search-test-CBH8l5JD.js → search-test-iR0wammw.js} +2 -2
- package/bundled-test-harness/assets/{send-ai-assistant-message-test-CAlK3x0a.js → send-ai-assistant-message-test-BmJdWdzI.js} +2 -2
- package/bundled-test-harness/assets/{send-bot-trigger-event-test-CwI4Rkf8.js → send-bot-trigger-event-test-CJCAf2db.js} +2 -2
- package/bundled-test-harness/assets/{send-request-via-proxy-test-BRuk6sv0.js → send-request-via-proxy-test-DSdZppno.js} +2 -2
- package/bundled-test-harness/assets/{sending-test-BA2F7Hfk.js → sending-test-Bocu5vf9.js} +270 -12
- package/bundled-test-harness/assets/{serialization-test-DHTHfzsn.js → serialization-test-CE3TeQ4Z.js} +2 -2
- package/bundled-test-harness/assets/{set-user-system-card-test-Ct8xegEY.js → set-user-system-card-test-JZW2LcIA.js} +2 -2
- package/bundled-test-harness/assets/{setup-v4v1a2Qc.js → setup-C5QslpqI.js} +1 -1
- package/bundled-test-harness/assets/{setup-BfvQ1zfD.js → setup-CN-HHlT_.js} +2 -2
- package/bundled-test-harness/assets/{show-card-test-7VGIdTJh.js → show-card-test-B41I3EWZ.js} +3 -3
- package/bundled-test-harness/assets/{skills-test-NKDA1G9S.js → skills-test-Cut0gpNU.js} +3 -3
- package/bundled-test-harness/assets/{spec-test-61E0gdIB.js → spec-test-DytzFxZb.js} +3 -3
- package/bundled-test-harness/assets/{store-BM5pUF94.js → store-CbIxTljQ.js} +30 -0
- package/bundled-test-harness/assets/{store-add-test-mRtjroP0.js → store-add-test-ulvv9A3X.js} +2 -2
- package/bundled-test-harness/assets/{store-test-CVHw6LMN.js → store-test-C747NJ3O.js} +77 -4
- package/bundled-test-harness/assets/{submode-switcher-Popj4iN5.js → submode-switcher-iR4m0GzD.js} +1 -1
- package/bundled-test-harness/assets/{summarize-session-test-UZOGVM_F.js → summarize-session-test-BcXrj1r3.js} +2 -2
- package/bundled-test-harness/assets/{svg-image-def-test-Dqjy84jw.js → svg-image-def-test-DW1rtFSA.js} +1 -1
- package/bundled-test-harness/assets/{switch-submode-DOdRs5QD.js → switch-submode--ZVbWG3S.js} +1 -1
- package/bundled-test-harness/assets/{switch-submode-test-MWnyo759.js → switch-submode-test--Ncx8g_l.js} +3 -3
- package/bundled-test-harness/assets/{test-support-BfonQA4V.js → test-support-CCargU9V.js} +1 -1
- package/bundled-test-harness/assets/{tests-DQLSvmHe.js → tests-Dw_agY8k.js} +265 -263
- package/bundled-test-harness/assets/{text-file-def-test-DlyCDiM4.js → text-file-def-test-Bl2R6NO8.js} +1 -1
- package/bundled-test-harness/assets/{text-input-validator-test-Ccx-4gLo.js → text-input-validator-test-CAlDivoV.js} +3 -3
- package/bundled-test-harness/assets/{text-suggestion-test-mIvJOTS7.js → text-suggestion-test-CbJWk97Q.js} +1 -1
- package/bundled-test-harness/assets/{theme-card-test-Bs3Q034n.js → theme-card-test-Q5eP-lEF.js} +3 -3
- package/bundled-test-harness/assets/{transform-cards-test-BsTtRP0g.js → transform-cards-test-3PsuM2Sv.js} +2 -2
- package/bundled-test-harness/assets/{ts-file-def-test-DtWzgXkt.js → ts-file-def-test-BoXA3RgL.js} +1 -1
- package/bundled-test-harness/assets/{unpublish-realm-test-BFJEMQL7.js → unpublish-realm-test-CgiIcZ6j.js} +2 -2
- package/bundled-test-harness/assets/{update-room-skills-test-BrFhA3El.js → update-room-skills-test-B-BI7daL.js} +3 -3
- package/bundled-test-harness/assets/{use-ai-assistant-test-BsyBY6-a.js → use-ai-assistant-test-BEiEjFOH.js} +2 -2
- package/bundled-test-harness/assets/user-message-Bbw4pQmd.css +22 -0
- package/bundled-test-harness/assets/{user-message-BFN7dtqK.js → user-message-CVG3cgJq.js} +2 -2
- package/bundled-test-harness/assets/{validate-realm-test-DQlQ-pWZ.js → validate-realm-test-DBx-3YG9.js} +2 -2
- package/bundled-test-harness/assets/{wav-audio-def-test-BZ0oLTT1.js → wav-audio-def-test-CPJl6Hpr.js} +1 -1
- package/bundled-test-harness/assets/{webp-image-def-test-tuOTQeTt.js → webp-image-def-test-Bh3SOpDa.js} +1 -1
- package/bundled-test-harness/assets/{workspace-DvhB0Ltb.js → workspace-PBphyb9N.js} +2 -2
- package/bundled-test-harness/assets/{workspace-chooser-delete-test-D_Gp78-R.js → workspace-chooser-delete-test-1n1lqK_X.js} +3 -3
- package/bundled-test-harness/assets/{workspace-chooser-test-CuJ4pgJh.js → workspace-chooser-test-wcKYsTgx.js} +1 -1
- package/bundled-test-harness/assets/{workspace-delete-multiple-test-BUmKPHGp.js → workspace-delete-multiple-test-DlXWFVK1.js} +1 -1
- package/bundled-test-harness/assets/{workspace-delete-summary-test-B8qyNd7w.js → workspace-delete-summary-test-iqD1ae55.js} +1 -1
- package/bundled-test-harness/assets/{write-binary-file-test-D1h4TED_.js → write-binary-file-test-BkADCn85.js} +2 -2
- package/bundled-test-harness/assets/{write-text-file-test-DKA9TpIm.js → write-text-file-test-C9K0doTU.js} +2 -2
- package/bundled-test-harness/boxel-ui-checksum.txt +1 -1
- package/bundled-test-harness/index.html +33 -33
- package/bundled-test-harness/tests/index.html +36 -36
- package/bundled-types/base/field-component.d.ts +15 -4
- package/bundled-types/base/links-to-editor.d.ts +9 -0
- package/bundled-types/boxel-ui/components/filter-list/index.gts +4 -1
- package/bundled-types/host-app/components/ai-assistant/chat-input/index.gts +2 -1
- package/bundled-types/host-app/components/ai-assistant/message/user-message.gts +6 -2
- package/bundled-types/host-app/components/matrix/room.gts +115 -44
- package/bundled-types/host-app/lib/matrix-classes/message-builder.ts +13 -0
- package/bundled-types/host-app/services/local-persistence-service.ts +179 -0
- package/bundled-types/host-app/services/matrix-service.ts +372 -1
- package/bundled-types/host-app/services/store.ts +70 -0
- package/bundled-types/host-app/utils/local-storage-keys.ts +2 -0
- package/bundled-types/host-tests/helpers/mock-matrix/_client.ts +3 -0
- package/bundled-types/host-tests/helpers/mock-matrix/_utils.ts +3 -0
- package/bundled-types/host-tests/helpers/mock-matrix.ts +1 -0
- package/dist/index.js +257 -253
- package/package.json +3 -3
- package/src/commands/realm/index.ts +2 -0
- package/src/commands/realm/ingest-card.ts +567 -0
- package/src/commands/realm/publish.ts +87 -16
- package/src/commands/realm/pull.ts +9 -13
- package/src/commands/realm/push.ts +10 -14
- package/src/commands/realm/status.ts +14 -18
- package/src/commands/realm/sync.ts +9 -13
- package/src/commands/realm/unpublish.ts +11 -0
- package/src/lib/auth-resolver.ts +15 -2
- package/bundled-test-harness/assets/adapter-Dk9jvNQb.js +0 -2
- package/bundled-test-harness/assets/live-test-B7uB4aVp.js +0 -2
- package/bundled-test-harness/assets/user-message-B8olA3Ml.css +0 -18
- /package/bundled-test-harness/assets/{ai-assistant-panel-service-test-B2pqk_1r.js → ai-assistant-panel-service-test-DEeul-zv.js} +0 -0
- /package/bundled-test-harness/assets/{amd-transpile-test-ftXbwnFz.js → amd-transpile-test-DmEkMdCo.js} +0 -0
- /package/bundled-test-harness/assets/{apply-boxel-formatting-test-BSzr4sNI.js → apply-boxel-formatting-test-RixVcq5N.js} +0 -0
- /package/bundled-test-harness/assets/{auth-error-guard-test-BxIq12aN.js → auth-error-guard-test-beazl6s5.js} +0 -0
- /package/bundled-test-harness/assets/{bfm-card-references-test-6aAhfBzH.js → bfm-card-references-test-IEbg0jo-.js} +0 -0
- /package/bundled-test-harness/assets/{cached-fetch-test-CPr-eiq_.js → cached-fetch-test-DlnnpQGz.js} +0 -0
- /package/bundled-test-harness/assets/{card-directory-name-test-BS8WD3oH.js → card-directory-name-test-QKl1Ykz6.js} +0 -0
- /package/bundled-test-harness/assets/{card-search-query-builder-test-zp6muUB1.js → card-search-query-builder-test-BWc5lDv3.js} +0 -0
- /package/bundled-test-harness/assets/{code-patching-test-BZPvPsMr.js → code-patching-test-BRNMumI6.js} +0 -0
- /package/bundled-test-harness/assets/{code-semantics-service-test-BBjJ3EF3.js → code-semantics-service-test-CJOSUAQH.js} +0 -0
- /package/bundled-test-harness/assets/{command-definitions-test-BcMJzIBM.js → command-definitions-test-De0BMqHI.js} +0 -0
- /package/bundled-test-harness/assets/{extract-css-variables-test-FIZxFxaL.js → extract-css-variables-test-Di5CFXG-.js} +0 -0
- /package/bundled-test-harness/assets/{fetcher-test-g2cjjXxV.js → fetcher-test-Cb8cS9JN.js} +0 -0
- /package/bundled-test-harness/assets/{field-path-parser-test-DkY-DFQN.js → field-path-parser-test-Db4kG7EB.js} +0 -0
- /package/bundled-test-harness/assets/{file-def-manager-canonicalize-test-Dlf4HlLX.js → file-def-manager-canonicalize-test-Cq5B5KN4.js} +0 -0
- /package/bundled-test-harness/assets/{generate-css-variables-test-De4LPdBt.js → generate-css-variables-test-BahavIHR.js} +0 -0
- /package/bundled-test-harness/assets/{get-type-refs-from-filter-test-DmDF_dTY.js → get-type-refs-from-filter-test-CH5flf8B.js} +0 -0
- /package/bundled-test-harness/assets/{last-modified-date-test-C2hEJ3xU.js → last-modified-date-test-C_jV0b05.js} +0 -0
- /package/bundled-test-harness/assets/{limited-set-test-SLbA1cwS.js → limited-set-test-CcpIJCrn.js} +0 -0
- /package/bundled-test-harness/assets/{loader-icon-error-test-DTo5t1OQ.js → loader-icon-error-test-Bc_L-0Zb.js} +0 -0
- /package/bundled-test-harness/assets/{loader-retry-test-CPFmHSUN.js → loader-retry-test-DQ0E0a0N.js} +0 -0
- /package/bundled-test-harness/assets/{marked-sync-test-CaZYJo4x.js → marked-sync-test-JSqOc6hu.js} +0 -0
- /package/bundled-test-harness/assets/{mutex-test-p2qp1xRj.js → mutex-test-BDkeJutn.js} +0 -0
- /package/bundled-test-harness/assets/{plan-install-test-CrYUs1-G.js → plan-install-test-fUZIttPZ.js} +0 -0
- /package/bundled-test-harness/assets/{qs-test-DEH8SHFS.js → qs-test-CminVD53.js} +0 -0
- /package/bundled-test-harness/assets/{query-field-normalization-test-DrqBkUxD.js → query-field-normalization-test-B9alzE_u.js} +0 -0
- /package/bundled-test-harness/assets/{queue-test-CS3aOeHM.js → queue-test-BvWT6K7Z.js} +0 -0
- /package/bundled-test-harness/assets/{realm-index-card-id-test-FV_gOG_K.js → realm-index-card-id-test-hvCyEpGZ.js} +0 -0
- /package/bundled-test-harness/assets/{realm-paths-test-CvXB4BUZ.js → realm-paths-test-DrwpPXyh.js} +0 -0
- /package/bundled-test-harness/assets/{render-component-BabSF5nE.js → render-component-DY19erxA.js} +0 -0
- /package/bundled-test-harness/assets/{render-error-test-CvMDARjN.js → render-error-test-BC4QmstW.js} +0 -0
- /package/bundled-test-harness/assets/{render-service-test-DRCvv7lo.js → render-service-test-BkCkB3a2.js} +0 -0
- /package/bundled-test-harness/assets/{render-timer-stub-test-CVa_rjXp.js → render-timer-stub-test-cnMPidgA.js} +0 -0
- /package/bundled-test-harness/assets/{search-cache-key-test-r83Xl6Io.js → search-cache-key-test-DI0DKzU5.js} +0 -0
- /package/bundled-test-harness/assets/{search-in-flight-key-test-BmqFzX6o.js → search-in-flight-key-test-DyRDbEX1.js} +0 -0
- /package/bundled-test-harness/assets/{unified-search-results-test-D9v-CCog.js → unified-search-results-test-BF8Dps_j.js} +0 -0
- /package/bundled-test-harness/assets/{url-test-DtekKUme.js → url-test-DkEL_mbR.js} +0 -0
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import type { Command } from 'commander';
|
|
2
2
|
import { ensureTrailingSlash } from '@cardstack/runtime-common/paths';
|
|
3
3
|
import {
|
|
4
|
+
fetchPublishabilityReport,
|
|
4
5
|
publishRealm as publishRealmOperation,
|
|
5
6
|
type PublishRealmOutput,
|
|
6
7
|
RealmOperationError,
|
|
7
8
|
waitForReady,
|
|
8
9
|
} from '@cardstack/runtime-common/realm-operations';
|
|
10
|
+
import type { PublishabilityViolation } from '@cardstack/runtime-common/publishability';
|
|
9
11
|
import { buildCliRealmClient } from '../../lib/realm-client.ts';
|
|
10
12
|
import {
|
|
11
13
|
getProfileManager,
|
|
12
14
|
type ProfileManager,
|
|
13
15
|
} from '../../lib/profile-manager.ts';
|
|
14
16
|
import { unpublishRealm } from './unpublish.ts';
|
|
17
|
+
import { cliLog } from '../../lib/cli-log.ts';
|
|
15
18
|
import { FG_CYAN, FG_GREEN, FG_RED, RESET } from '../../lib/colors.ts';
|
|
16
19
|
|
|
17
20
|
const DEFAULT_TIMEOUT_MS = 300_000;
|
|
@@ -26,6 +29,11 @@ export interface PublishOptions {
|
|
|
26
29
|
* unpublish the target URL first and retry once. Default: true.
|
|
27
30
|
*/
|
|
28
31
|
republish?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Skip the publishability gate (private-dependency / error-document check).
|
|
34
|
+
* Default: false — the gate runs and blocks publishing on violations.
|
|
35
|
+
*/
|
|
36
|
+
force?: boolean;
|
|
29
37
|
profileManager?: ProfileManager;
|
|
30
38
|
}
|
|
31
39
|
|
|
@@ -39,7 +47,9 @@ export interface PublishRealmResult {
|
|
|
39
47
|
/**
|
|
40
48
|
* Publish a source realm to a published-realm URL.
|
|
41
49
|
*
|
|
42
|
-
*
|
|
50
|
+
* Before publishing, runs the publishability gate (private-dependency /
|
|
51
|
+
* error-document check) and refuses to publish on violations unless `force`
|
|
52
|
+
* is set. Then speaks the contract documented at
|
|
43
53
|
* `packages/realm-server/handlers/handle-publish-realm.ts`: the server
|
|
44
54
|
* accepts the publish, returns `202 Accepted` with `status: "pending"`,
|
|
45
55
|
* and the client polls `/<publishedRealmURL>/_readiness-check` until
|
|
@@ -57,6 +67,18 @@ export async function publishRealm(
|
|
|
57
67
|
let normalizedSource = ensureTrailingSlash(sourceRealmURL);
|
|
58
68
|
let normalizedPublished = ensureTrailingSlash(publishedRealmURL);
|
|
59
69
|
|
|
70
|
+
// Pre-publish gate: refuse to publish a realm with private-dependency or
|
|
71
|
+
// error-document violations (which would break the published site) unless
|
|
72
|
+
// the caller forces it.
|
|
73
|
+
if (!options.force) {
|
|
74
|
+
let report = await fetchPublishabilityReport(client, {
|
|
75
|
+
realmURL: normalizedSource,
|
|
76
|
+
});
|
|
77
|
+
if (!report.publishable) {
|
|
78
|
+
throw new Error(describeViolations(report.violations));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
60
82
|
let output: PublishRealmOutput;
|
|
61
83
|
try {
|
|
62
84
|
output = await publishRealmOperation(client, {
|
|
@@ -71,7 +93,9 @@ export async function publishRealm(
|
|
|
71
93
|
(err.status === 400 || err.status === 409) &&
|
|
72
94
|
options.republish !== false
|
|
73
95
|
) {
|
|
74
|
-
|
|
96
|
+
// Progress, not payload: route to stderr via cliLog.info so it never
|
|
97
|
+
// corrupts stdout when the caller passed --json (stdout is JSON-only).
|
|
98
|
+
cliLog.info(
|
|
75
99
|
`Publish returned ${err.status} (${(err.body ?? '').slice(0, 200)}). Unpublishing and retrying.`,
|
|
76
100
|
);
|
|
77
101
|
let unpublishResult = await unpublishRealm(normalizedPublished, {
|
|
@@ -118,6 +142,8 @@ export interface PublishCliOptions {
|
|
|
118
142
|
wait?: boolean;
|
|
119
143
|
timeout?: number;
|
|
120
144
|
republish?: boolean;
|
|
145
|
+
force?: boolean;
|
|
146
|
+
json?: boolean;
|
|
121
147
|
}
|
|
122
148
|
|
|
123
149
|
export function publishCliOptsToOptions(
|
|
@@ -127,6 +153,7 @@ export function publishCliOptsToOptions(
|
|
|
127
153
|
waitForReady: opts.wait !== false,
|
|
128
154
|
timeoutMs: opts.timeout,
|
|
129
155
|
republish: opts.republish !== false,
|
|
156
|
+
force: opts.force === true,
|
|
130
157
|
};
|
|
131
158
|
}
|
|
132
159
|
|
|
@@ -134,7 +161,7 @@ export function registerPublishCommand(realm: Command): void {
|
|
|
134
161
|
realm
|
|
135
162
|
.command('publish')
|
|
136
163
|
.description(
|
|
137
|
-
'Publish a source realm to a published-realm URL,
|
|
164
|
+
'Publish a source realm to a published-realm URL: runs the publishability gate (use --force to skip), then polls readiness until ready',
|
|
138
165
|
)
|
|
139
166
|
.argument('<source-realm-url>', 'URL of the source realm to publish')
|
|
140
167
|
.argument(
|
|
@@ -151,6 +178,11 @@ export function registerPublishCommand(realm: Command): void {
|
|
|
151
178
|
'--no-republish',
|
|
152
179
|
'Do not auto-unpublish + retry when the server returns 400/409',
|
|
153
180
|
)
|
|
181
|
+
.option(
|
|
182
|
+
'--force',
|
|
183
|
+
'Publish even if the realm has publishability violations (skips the gate)',
|
|
184
|
+
)
|
|
185
|
+
.option('--json', 'Output the result as JSON')
|
|
154
186
|
.action(
|
|
155
187
|
async (
|
|
156
188
|
sourceRealmURL: string,
|
|
@@ -163,20 +195,27 @@ export function registerPublishCommand(realm: Command): void {
|
|
|
163
195
|
publishedRealmURL,
|
|
164
196
|
publishCliOptsToOptions(opts),
|
|
165
197
|
);
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
198
|
+
if (opts.json) {
|
|
199
|
+
cliLog.output(JSON.stringify(result, null, 2));
|
|
200
|
+
} else {
|
|
201
|
+
console.log(
|
|
202
|
+
`${FG_GREEN}Published:${RESET} ${FG_CYAN}${result.publishedRealmURL}${RESET}`,
|
|
203
|
+
);
|
|
204
|
+
}
|
|
169
205
|
} catch (err) {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
206
|
+
let message = err instanceof Error ? err.message : String(err);
|
|
207
|
+
if (opts.json) {
|
|
208
|
+
cliLog.output(JSON.stringify({ error: message }, null, 2));
|
|
209
|
+
} else {
|
|
210
|
+
console.error(`${FG_RED}Error:${RESET} ${message}`);
|
|
211
|
+
// Node's fetch surfaces the actual transport error (ECONNRESET,
|
|
212
|
+
// TLS failure, undici socket error, etc.) on `error.cause`. Print
|
|
213
|
+
// it so opaque "fetch failed" messages don't strand the caller.
|
|
214
|
+
// `!= null` rather than a truthy check so we don't drop
|
|
215
|
+
// falsy-but-defined causes (`''`, `0`, `false`, `NaN`).
|
|
216
|
+
if (err instanceof Error && err.cause != null) {
|
|
217
|
+
console.error(`${FG_RED}Caused by:${RESET}`, err.cause);
|
|
218
|
+
}
|
|
180
219
|
}
|
|
181
220
|
process.exit(1);
|
|
182
221
|
}
|
|
@@ -184,6 +223,38 @@ export function registerPublishCommand(realm: Command): void {
|
|
|
184
223
|
);
|
|
185
224
|
}
|
|
186
225
|
|
|
226
|
+
// Summarizes publishability violations into a single actionable error message.
|
|
227
|
+
// Mirrors the host PublishRealmCommand's gate messaging.
|
|
228
|
+
export function describeViolations(
|
|
229
|
+
violations: PublishabilityViolation[],
|
|
230
|
+
): string {
|
|
231
|
+
let privateCount = violations.filter(
|
|
232
|
+
(v) => v.kind === 'private-dependency',
|
|
233
|
+
).length;
|
|
234
|
+
let errorCount = violations.filter((v) => v.kind === 'error-document').length;
|
|
235
|
+
|
|
236
|
+
let parts: string[] = [];
|
|
237
|
+
if (privateCount) {
|
|
238
|
+
parts.push(`${privateCount} private-dependency violation(s)`);
|
|
239
|
+
}
|
|
240
|
+
if (errorCount) {
|
|
241
|
+
parts.push(`${errorCount} error-document violation(s)`);
|
|
242
|
+
}
|
|
243
|
+
let summary = parts.length
|
|
244
|
+
? parts.join(', ')
|
|
245
|
+
: `${violations.length} violation(s)`;
|
|
246
|
+
|
|
247
|
+
let resources = violations
|
|
248
|
+
.map((v) => v.resource)
|
|
249
|
+
.filter(Boolean)
|
|
250
|
+
.slice(0, 5)
|
|
251
|
+
.join(', ');
|
|
252
|
+
|
|
253
|
+
return `Realm is not publishable (${summary}). Resolve them or pass --force to override.${
|
|
254
|
+
resources ? ` Affected: ${resources}` : ''
|
|
255
|
+
}`;
|
|
256
|
+
}
|
|
257
|
+
|
|
187
258
|
function parseTimeoutOption(value: string): number {
|
|
188
259
|
let n = Number.parseInt(value, 10);
|
|
189
260
|
if (!Number.isFinite(n) || n < 0 || String(n) !== value.trim()) {
|
|
@@ -232,20 +232,16 @@ export async function pull(
|
|
|
232
232
|
localDir: string,
|
|
233
233
|
options: PullCommandOptions,
|
|
234
234
|
): Promise<{ files: string[]; error?: string }> {
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
});
|
|
244
|
-
if (!resolution.ok) {
|
|
245
|
-
return { files: [], error: resolution.error };
|
|
246
|
-
}
|
|
247
|
-
authenticator = resolution.authenticator;
|
|
235
|
+
const resolution = resolveRealmAuthenticator({
|
|
236
|
+
realmUrl,
|
|
237
|
+
realmSecretSeed: options.realmSecretSeed,
|
|
238
|
+
profileManager: options.profileManager,
|
|
239
|
+
authenticator: options.authenticator,
|
|
240
|
+
});
|
|
241
|
+
if (!resolution.ok) {
|
|
242
|
+
return { files: [], error: resolution.error };
|
|
248
243
|
}
|
|
244
|
+
const authenticator = resolution.authenticator;
|
|
249
245
|
|
|
250
246
|
try {
|
|
251
247
|
const puller = new RealmPuller(
|
|
@@ -393,21 +393,17 @@ export async function pushCommand(
|
|
|
393
393
|
realmUrl: string,
|
|
394
394
|
options: PushCommandOptions,
|
|
395
395
|
): Promise<void> {
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
if (!resolution.ok) {
|
|
406
|
-
console.error(`Error: ${resolution.error}`);
|
|
407
|
-
process.exit(1);
|
|
408
|
-
}
|
|
409
|
-
authenticator = resolution.authenticator;
|
|
396
|
+
const resolution = resolveRealmAuthenticator({
|
|
397
|
+
realmUrl,
|
|
398
|
+
realmSecretSeed: options.realmSecretSeed,
|
|
399
|
+
profileManager: options.profileManager,
|
|
400
|
+
authenticator: options.authenticator,
|
|
401
|
+
});
|
|
402
|
+
if (!resolution.ok) {
|
|
403
|
+
console.error(`Error: ${resolution.error}`);
|
|
404
|
+
process.exit(1);
|
|
410
405
|
}
|
|
406
|
+
const authenticator = resolution.authenticator;
|
|
411
407
|
|
|
412
408
|
if (!(await pathExists(localDir))) {
|
|
413
409
|
console.error(`Local directory does not exist: ${localDir}`);
|
|
@@ -303,26 +303,22 @@ export async function status(
|
|
|
303
303
|
// best-effort only
|
|
304
304
|
}
|
|
305
305
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
306
|
+
const resolution = resolveRealmAuthenticator({
|
|
307
|
+
realmUrl: manifest.realmUrl,
|
|
308
|
+
realmSecretSeed: options.realmSecretSeed,
|
|
309
|
+
profileManager: options.profileManager,
|
|
310
|
+
authenticator: options.authenticator,
|
|
311
|
+
});
|
|
312
|
+
if (!resolution.ok) {
|
|
313
|
+
return {
|
|
314
|
+
...baseResult,
|
|
311
315
|
realmUrl: manifest.realmUrl,
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
return {
|
|
317
|
-
...baseResult,
|
|
318
|
-
realmUrl: manifest.realmUrl,
|
|
319
|
-
manifestMtime,
|
|
320
|
-
hasError: true,
|
|
321
|
-
error: resolution.error,
|
|
322
|
-
};
|
|
323
|
-
}
|
|
324
|
-
authenticator = resolution.authenticator;
|
|
316
|
+
manifestMtime,
|
|
317
|
+
hasError: true,
|
|
318
|
+
error: resolution.error,
|
|
319
|
+
};
|
|
325
320
|
}
|
|
321
|
+
const authenticator = resolution.authenticator;
|
|
326
322
|
|
|
327
323
|
const inspector = new RealmStatusInspector(
|
|
328
324
|
{
|
|
@@ -619,20 +619,16 @@ export async function sync(
|
|
|
619
619
|
realmUrl: string,
|
|
620
620
|
options: SyncCommandOptions,
|
|
621
621
|
): Promise<SyncResult> {
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
});
|
|
631
|
-
if (!resolution.ok) {
|
|
632
|
-
return emptyResult({ error: resolution.error });
|
|
633
|
-
}
|
|
634
|
-
authenticator = resolution.authenticator;
|
|
622
|
+
const resolution = resolveRealmAuthenticator({
|
|
623
|
+
realmUrl,
|
|
624
|
+
realmSecretSeed: options.realmSecretSeed,
|
|
625
|
+
profileManager: options.profileManager,
|
|
626
|
+
authenticator: options.authenticator,
|
|
627
|
+
});
|
|
628
|
+
if (!resolution.ok) {
|
|
629
|
+
return emptyResult({ error: resolution.error });
|
|
635
630
|
}
|
|
631
|
+
const authenticator = resolution.authenticator;
|
|
636
632
|
|
|
637
633
|
const strategies = [
|
|
638
634
|
options.preferLocal,
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
NO_ACTIVE_PROFILE_ERROR,
|
|
11
11
|
type ProfileManager,
|
|
12
12
|
} from '../../lib/profile-manager.ts';
|
|
13
|
+
import { cliLog } from '../../lib/cli-log.ts';
|
|
13
14
|
import { FG_CYAN, FG_GREEN, FG_RED, RESET } from '../../lib/colors.ts';
|
|
14
15
|
import { describeFetchError } from '../../lib/describe-fetch-error.ts';
|
|
15
16
|
|
|
@@ -99,6 +100,7 @@ export async function unpublishRealm(
|
|
|
99
100
|
|
|
100
101
|
interface UnpublishCliOptions {
|
|
101
102
|
tolerateMissing?: boolean;
|
|
103
|
+
json?: boolean;
|
|
102
104
|
}
|
|
103
105
|
|
|
104
106
|
export function registerUnpublishCommand(realm: Command): void {
|
|
@@ -110,11 +112,20 @@ export function registerUnpublishCommand(realm: Command): void {
|
|
|
110
112
|
'--tolerate-missing',
|
|
111
113
|
'Exit successfully when the realm is already unpublished',
|
|
112
114
|
)
|
|
115
|
+
.option('--json', 'Output the result as JSON')
|
|
113
116
|
.action(async (publishedRealmURL: string, opts: UnpublishCliOptions) => {
|
|
114
117
|
let result = await unpublishRealm(publishedRealmURL, {
|
|
115
118
|
tolerateMissing: opts.tolerateMissing === true,
|
|
116
119
|
});
|
|
117
120
|
|
|
121
|
+
if (opts.json) {
|
|
122
|
+
cliLog.output(JSON.stringify(result, null, 2));
|
|
123
|
+
if (result.error) {
|
|
124
|
+
process.exit(1);
|
|
125
|
+
}
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
|
|
118
129
|
if (result.error) {
|
|
119
130
|
console.error(`${FG_RED}Error:${RESET} ${result.error}`);
|
|
120
131
|
process.exit(1);
|
package/src/lib/auth-resolver.ts
CHANGED
|
@@ -16,15 +16,25 @@ export interface AuthResolverOptions {
|
|
|
16
16
|
realmSecretSeed?: string;
|
|
17
17
|
/** Override the ProfileManager (tests). When seed mode is active we won't touch it. */
|
|
18
18
|
profileManager?: ProfileManager;
|
|
19
|
+
/**
|
|
20
|
+
* Already-constructed authenticator (the commands' `@internal` test hook).
|
|
21
|
+
* Takes precedence over both seed and profile resolution.
|
|
22
|
+
*/
|
|
23
|
+
authenticator?: RealmAuthenticator;
|
|
19
24
|
}
|
|
20
25
|
|
|
21
26
|
export type AuthResolution =
|
|
22
|
-
| {
|
|
27
|
+
| {
|
|
28
|
+
ok: true;
|
|
29
|
+
authenticator: RealmAuthenticator;
|
|
30
|
+
mode: 'injected' | 'seed' | 'profile';
|
|
31
|
+
}
|
|
23
32
|
| { ok: false; error: string };
|
|
24
33
|
|
|
25
34
|
/**
|
|
26
|
-
* Pick
|
|
35
|
+
* Pick the authenticator for a realm command.
|
|
27
36
|
*
|
|
37
|
+
* - If `authenticator` is supplied (test hook), use it as-is.
|
|
28
38
|
* - If `realmSecretSeed` is present, use `SeedAuthenticator`. We do NOT
|
|
29
39
|
* require a profile in this mode — operators using the seed typically
|
|
30
40
|
* don't have a Matrix account configured.
|
|
@@ -33,6 +43,9 @@ export type AuthResolution =
|
|
|
33
43
|
export function resolveRealmAuthenticator(
|
|
34
44
|
options: AuthResolverOptions,
|
|
35
45
|
): AuthResolution {
|
|
46
|
+
if (options.authenticator) {
|
|
47
|
+
return { ok: true, authenticator: options.authenticator, mode: 'injected' };
|
|
48
|
+
}
|
|
36
49
|
if (options.realmSecretSeed) {
|
|
37
50
|
// registerRealmUrl throws on a malformed realm URL; surface that as a
|
|
38
51
|
// resolver error so pull/push/sync keep their friendly CLI error path.
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
.user-message-bubble[data-scopedcss-7eb12e1519-cac362804b] {
|
|
3
|
-
padding: var(--boxel-sp-sm);
|
|
4
|
-
background-color: var(--boxel-light);
|
|
5
|
-
color: var(--boxel-dark);
|
|
6
|
-
border-radius: var(--boxel-border-radius-xxl);
|
|
7
|
-
border-top-left-radius: var(--boxel-border-radius-xs);
|
|
8
|
-
}
|
|
9
|
-
.is-pending[data-scopedcss-7eb12e1519-cac362804b] {
|
|
10
|
-
--pill-background-color: var(--boxel-200);
|
|
11
|
-
--pill-font-color: var(--boxel-500);
|
|
12
|
-
background-color: var(--boxel-200);
|
|
13
|
-
color: var(--boxel-500);
|
|
14
|
-
}
|
|
15
|
-
[data-scopedcss-7eb12e1519-cac362804b] a:hover {
|
|
16
|
-
/* use this highlight text color on light-background */
|
|
17
|
-
color: var(--boxel-highlight-hover);
|
|
18
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/bundled-test-harness/assets/{cached-fetch-test-CPr-eiq_.js → cached-fetch-test-DlnnpQGz.js}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/bundled-test-harness/assets/{limited-set-test-SLbA1cwS.js → limited-set-test-CcpIJCrn.js}
RENAMED
|
File without changes
|
|
File without changes
|
/package/bundled-test-harness/assets/{loader-retry-test-CPFmHSUN.js → loader-retry-test-DQ0E0a0N.js}
RENAMED
|
File without changes
|
/package/bundled-test-harness/assets/{marked-sync-test-CaZYJo4x.js → marked-sync-test-JSqOc6hu.js}
RENAMED
|
File without changes
|
|
File without changes
|
/package/bundled-test-harness/assets/{plan-install-test-CrYUs1-G.js → plan-install-test-fUZIttPZ.js}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/bundled-test-harness/assets/{realm-paths-test-CvXB4BUZ.js → realm-paths-test-DrwpPXyh.js}
RENAMED
|
File without changes
|
/package/bundled-test-harness/assets/{render-component-BabSF5nE.js → render-component-DY19erxA.js}
RENAMED
|
File without changes
|
/package/bundled-test-harness/assets/{render-error-test-CvMDARjN.js → render-error-test-BC4QmstW.js}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|