@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,20 +1,20 @@
|
|
|
1
1
|
import { s as __toESM } from "./chunk-CGdGNDIi.js";
|
|
2
2
|
import { r as initializeDeferredDecorator, t as decorateFieldV2 } from "./runtime-CYyqkz5q-z3Y1hsJm.js";
|
|
3
|
-
import { Si as baseRealm, Zn as testRealmURL } from "./runtime-common-BY5dBG5N.js";
|
|
3
|
+
import { Si as baseRealm, Zn as testRealmURL, _a as Deferred } from "./runtime-common-BY5dBG5N.js";
|
|
4
4
|
import { or as setComponentTemplate } from "./service-BaBMSYir.js";
|
|
5
5
|
import { H as templateFactory } from "./index-DaCZcoCY-Bfb0Qdzr.js";
|
|
6
|
-
import { n as Submodes } from "./submode-switcher-
|
|
6
|
+
import { n as Submodes } from "./submode-switcher-iR4m0GzD.js";
|
|
7
7
|
import "./component-CqcrwY5l.js";
|
|
8
8
|
import { t as Component } from "./dist-CE2G0-tp.js";
|
|
9
9
|
import "./template-factory-CigcGcbz.js";
|
|
10
|
-
import { t as AiAssistantMessageDrafts,
|
|
11
|
-
import { t as OperatorModeContainer } from "./container-
|
|
10
|
+
import { i as AiAssistantPendingSends, t as AiAssistantMessageDrafts, y as src_default } from "./local-storage-keys-C0jyxDKn.js";
|
|
11
|
+
import { t as OperatorModeContainer } from "./container-DRblzvCW.js";
|
|
12
12
|
import { A as settled, I as waitUntil, d as click, l as triggerEvent, o as waitFor, s as fillIn } from "./dist-CWCoBB72.js";
|
|
13
13
|
import { t as require_qunit } from "./qunit-DZc8vxH_.js";
|
|
14
14
|
import { r as getService } from "./dist-5hbdxMR8.js";
|
|
15
|
-
import { A as setupIntegrationTestRealm, M as setupOnSave, N as setupRealmCacheTeardown, O as setupCardLogs, et as setupOperatorModeStateCleanup, j as setupLocalIndexing, pt as percySnapshot, q as withCachedRealmSetup, rt as setupRenderingTest, t as setupMockMatrix, w as realmConfigCardJSON } from "./mock-matrix-
|
|
15
|
+
import { A as setupIntegrationTestRealm, M as setupOnSave, N as setupRealmCacheTeardown, O as setupCardLogs, et as setupOperatorModeStateCleanup, j as setupLocalIndexing, pt as percySnapshot, q as withCachedRealmSetup, rt as setupRenderingTest, t as setupMockMatrix, w as realmConfigCardJSON } from "./mock-matrix-Bkfl9ACG.js";
|
|
16
16
|
import { G as contains, I as StringField, Q as field, a as CardDef, d as Component$1, mt as setupBaseRealm } from "./base-realm-Dw9jVsHl.js";
|
|
17
|
-
import { n as renderComponent } from "./render-component-
|
|
17
|
+
import { n as renderComponent } from "./render-component-DY19erxA.js";
|
|
18
18
|
//#region tests/integration/components/ai-assistant-panel/sending-test.gts
|
|
19
19
|
var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
|
|
20
20
|
(0, import_qunit.module)("Integration | ai-assistant-panel | sending", function(hooks) {
|
|
@@ -103,7 +103,7 @@ var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
|
|
|
103
103
|
if (!roomId) throw new Error("Expected a room ID");
|
|
104
104
|
return roomId;
|
|
105
105
|
}
|
|
106
|
-
(0, import_qunit.test)("
|
|
106
|
+
(0, import_qunit.test)("renders the optimistic bubble + clears the input at click-time", async function(assert) {
|
|
107
107
|
setCardInOperatorModeState(`${testRealmURL}Person/fadhlan`);
|
|
108
108
|
await renderComponent(class TestDriver extends Component {
|
|
109
109
|
static {
|
|
@@ -133,7 +133,7 @@ var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
|
|
|
133
133
|
assert.dom("[data-test-ai-assistant-message]").exists({ count: 1 });
|
|
134
134
|
assert.dom("[data-test-user-message]").hasNoClass("is-pending");
|
|
135
135
|
});
|
|
136
|
-
(0, import_qunit.test)("
|
|
136
|
+
(0, import_qunit.test)("failed bubble surfaces the retry alert and reuses the same bubble on retry", async function(assert) {
|
|
137
137
|
setCardInOperatorModeState(`${testRealmURL}Person/fadhlan`);
|
|
138
138
|
await renderComponent(class TestDriver extends Component {
|
|
139
139
|
static {
|
|
@@ -146,7 +146,7 @@ var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
|
|
|
146
146
|
}), this);
|
|
147
147
|
}
|
|
148
148
|
});
|
|
149
|
-
|
|
149
|
+
await openAiAssistant();
|
|
150
150
|
const failingMessage = "This is a magic message with a SENDING_DELAY_THEN_FAILURE!";
|
|
151
151
|
await fillIn("[data-test-message-field]", failingMessage);
|
|
152
152
|
assert.dom("[data-test-message-field]").hasValue(failingMessage);
|
|
@@ -159,17 +159,80 @@ var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
|
|
|
159
159
|
assert.dom("[data-test-ai-assistant-message]").exists({ count: 1 });
|
|
160
160
|
assert.dom("[data-test-user-message]").hasClass("is-pending");
|
|
161
161
|
await waitFor("[data-test-boxel-alert=\"error\"]");
|
|
162
|
-
assert.dom("[data-test-message-field]").hasValue(failingMessage, "prompt is not lost after sending failed");
|
|
163
162
|
await settled();
|
|
163
|
+
assert.dom("[data-test-message-field]").hasValue("");
|
|
164
|
+
assert.dom("[data-test-ai-assistant-message]").exists({ count: 1 }, "failed bubble stays in the transcript");
|
|
164
165
|
assert.dom("[data-test-card-error]").containsText("Failed to send");
|
|
165
166
|
assert.dom("[data-test-alert-action-button=\"Retry\"]").exists();
|
|
166
|
-
assert.dom(`[data-test-message-field="${roomId}"]`).hasValue(failingMessage);
|
|
167
167
|
await percySnapshot(assert);
|
|
168
168
|
click("[data-test-alert-action-button=\"Retry\"]");
|
|
169
169
|
await waitFor("[data-test-ai-assistant-message-pending]");
|
|
170
170
|
assert.dom("[data-test-ai-assistant-message]").exists({ count: 1 });
|
|
171
171
|
await settled();
|
|
172
|
-
assert.dom("[data-test-message-field]").hasValue(
|
|
172
|
+
assert.dom("[data-test-message-field]").hasValue("", "input stays empty after retry — text is in the bubble");
|
|
173
|
+
});
|
|
174
|
+
(0, import_qunit.test)("shows the pending bubble immediately and clears the input while uploads are in flight", async function(assert) {
|
|
175
|
+
setCardInOperatorModeState(`${testRealmURL}Person/fadhlan`);
|
|
176
|
+
await renderComponent(class TestDriver extends Component {
|
|
177
|
+
static {
|
|
178
|
+
setComponentTemplate(templateFactory({
|
|
179
|
+
"id": "ouXqEoim",
|
|
180
|
+
"block": "[[[8,[32,0],null,[[\"@onClose\"],[[32,1]]],null]],[],[]]",
|
|
181
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/ai-assistant-panel/sending-test.gts",
|
|
182
|
+
"scope": () => [OperatorModeContainer, noop],
|
|
183
|
+
"isStrictMode": true
|
|
184
|
+
}), this);
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
await openAiAssistant();
|
|
188
|
+
let releaseUpload;
|
|
189
|
+
let uploadGate = new Promise((resolve) => {
|
|
190
|
+
releaseUpload = resolve;
|
|
191
|
+
});
|
|
192
|
+
mockMatrixUtils.setUploadContentInterceptor(async () => {
|
|
193
|
+
mockMatrixUtils.setUploadContentInterceptor(void 0);
|
|
194
|
+
await uploadGate;
|
|
195
|
+
});
|
|
196
|
+
await fillIn("[data-test-message-field]", "Slow-upload test message");
|
|
197
|
+
click("[data-test-send-message-btn]");
|
|
198
|
+
await waitFor("[data-test-ai-assistant-message-pending]");
|
|
199
|
+
assert.dom("[data-test-message-field]").hasValue("", "input clears in the same render the bubble appears");
|
|
200
|
+
assert.dom("[data-test-ai-assistant-message]").exists({ count: 1 }, "optimistic bubble exists before uploads complete");
|
|
201
|
+
assert.dom("[data-test-user-message]").hasClass("is-pending");
|
|
202
|
+
assert.dom("[data-test-send-message-btn]").isDisabled();
|
|
203
|
+
assert.dom("[data-test-stop-generating]").doesNotExist("no generating-results banner on the user pending bubble");
|
|
204
|
+
releaseUpload();
|
|
205
|
+
await waitFor("[data-test-user-message]:not(.is-pending)");
|
|
206
|
+
await waitUntil(() => !document.querySelector("[data-test-send-message-btn]").disabled);
|
|
207
|
+
assert.dom("[data-test-message-field]").isNotDisabled();
|
|
208
|
+
});
|
|
209
|
+
(0, import_qunit.test)("leaves a failed bubble + retry alert when pre-send fails", async function(assert) {
|
|
210
|
+
setCardInOperatorModeState(`${testRealmURL}Person/fadhlan`);
|
|
211
|
+
await renderComponent(class TestDriver extends Component {
|
|
212
|
+
static {
|
|
213
|
+
setComponentTemplate(templateFactory({
|
|
214
|
+
"id": "ouXqEoim",
|
|
215
|
+
"block": "[[[8,[32,0],null,[[\"@onClose\"],[[32,1]]],null]],[],[]]",
|
|
216
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/ai-assistant-panel/sending-test.gts",
|
|
217
|
+
"scope": () => [OperatorModeContainer, noop],
|
|
218
|
+
"isStrictMode": true
|
|
219
|
+
}), this);
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
await openAiAssistant();
|
|
223
|
+
mockMatrixUtils.setUploadContentInterceptor(async () => {
|
|
224
|
+
mockMatrixUtils.setUploadContentInterceptor(void 0);
|
|
225
|
+
throw new Error("Simulated pre-send upload failure");
|
|
226
|
+
});
|
|
227
|
+
await fillIn("[data-test-message-field]", "Pre-send failure test message");
|
|
228
|
+
await click("[data-test-send-message-btn]");
|
|
229
|
+
await waitFor("[data-test-boxel-alert=\"error\"]");
|
|
230
|
+
await settled();
|
|
231
|
+
assert.dom("[data-test-ai-assistant-message]").exists({ count: 1 }, "failed bubble stays in the transcript");
|
|
232
|
+
assert.dom("[data-test-user-message]").exists({ count: 1 });
|
|
233
|
+
assert.dom("[data-test-card-error]").containsText("Failed to send");
|
|
234
|
+
assert.dom("[data-test-alert-action-button=\"Retry\"]").exists();
|
|
235
|
+
assert.dom("[data-test-message-field]").hasValue("");
|
|
173
236
|
});
|
|
174
237
|
(0, import_qunit.test)("it enlarges the input box when entering/pasting lots of text", async function(assert) {
|
|
175
238
|
setCardInOperatorModeState();
|
|
@@ -313,5 +376,200 @@ var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
|
|
|
313
376
|
assert.dom("[data-test-type-picker] [data-test-boxel-picker-selected-item=\"Person\"]").doesNotExist("Person type is deselected after clicking remove");
|
|
314
377
|
assert.dom(`[data-test-card-catalog-item="${testRealmURL}Person/fadhlan"]`).exists("Person/fadhlan still appears in search results under Any Type");
|
|
315
378
|
});
|
|
379
|
+
(0, import_qunit.test)("persisted pending message re-appears as a failed bubble on reload", async function(assert) {
|
|
380
|
+
src_default.localStorage.removeItem(AiAssistantPendingSends);
|
|
381
|
+
setCardInOperatorModeState(`${testRealmURL}Person/fadhlan`);
|
|
382
|
+
await renderComponent(class TestDriver extends Component {
|
|
383
|
+
static {
|
|
384
|
+
setComponentTemplate(templateFactory({
|
|
385
|
+
"id": "ouXqEoim",
|
|
386
|
+
"block": "[[[8,[32,0],null,[[\"@onClose\"],[[32,1]]],null]],[],[]]",
|
|
387
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/ai-assistant-panel/sending-test.gts",
|
|
388
|
+
"scope": () => [OperatorModeContainer, noop],
|
|
389
|
+
"isStrictMode": true
|
|
390
|
+
}), this);
|
|
391
|
+
}
|
|
392
|
+
});
|
|
393
|
+
let roomId = await openAiAssistant();
|
|
394
|
+
let pending = {
|
|
395
|
+
clientGeneratedId: "persisted-cgi-abc",
|
|
396
|
+
body: "Persisted failed message",
|
|
397
|
+
attachedCardIds: [],
|
|
398
|
+
attachedFiles: [],
|
|
399
|
+
createdAt: Date.now() - 5e3,
|
|
400
|
+
status: "not_sent",
|
|
401
|
+
errorMessage: "Failed to send"
|
|
402
|
+
};
|
|
403
|
+
src_default.localStorage.setItem(AiAssistantPendingSends, JSON.stringify({ [roomId]: [pending] }));
|
|
404
|
+
let matrixService = getService("matrix-service");
|
|
405
|
+
matrixService.hydratedPendingSendRooms.delete(roomId);
|
|
406
|
+
matrixService.ensurePendingSendsHydrated(roomId);
|
|
407
|
+
await waitFor("[data-test-user-message]");
|
|
408
|
+
assert.dom("[data-test-ai-assistant-message]").exists({ count: 1 });
|
|
409
|
+
assert.dom("[data-test-alert-action-button=\"Retry\"]").exists();
|
|
410
|
+
});
|
|
411
|
+
(0, import_qunit.test)("cgi bridge dedupes synthetic and real echo so events do not double-count", async function(assert) {
|
|
412
|
+
setCardInOperatorModeState(`${testRealmURL}Person/fadhlan`);
|
|
413
|
+
await renderComponent(class TestDriver extends Component {
|
|
414
|
+
static {
|
|
415
|
+
setComponentTemplate(templateFactory({
|
|
416
|
+
"id": "ouXqEoim",
|
|
417
|
+
"block": "[[[8,[32,0],null,[[\"@onClose\"],[[32,1]]],null]],[],[]]",
|
|
418
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/ai-assistant-panel/sending-test.gts",
|
|
419
|
+
"scope": () => [OperatorModeContainer, noop],
|
|
420
|
+
"isStrictMode": true
|
|
421
|
+
}), this);
|
|
422
|
+
}
|
|
423
|
+
});
|
|
424
|
+
let roomId = await openAiAssistant();
|
|
425
|
+
let matrixService = getService("matrix-service");
|
|
426
|
+
await fillIn("[data-test-message-field]", "Bridge dedup test");
|
|
427
|
+
let sendGate = new Deferred();
|
|
428
|
+
mockMatrixUtils.setSendEventInterceptor(() => sendGate.promise);
|
|
429
|
+
click("[data-test-send-message-btn]");
|
|
430
|
+
await waitFor("[data-test-ai-assistant-message-pending]");
|
|
431
|
+
mockMatrixUtils.setSendEventInterceptor(void 0);
|
|
432
|
+
sendGate.fulfill();
|
|
433
|
+
await waitFor("[data-test-user-message]:not(.is-pending)");
|
|
434
|
+
await settled();
|
|
435
|
+
let userMessages = (matrixService.getRoomData(roomId)?.events ?? []).filter((e) => e.type === "m.room.message" && e.sender === matrixService.userId && typeof e.content?.clientGeneratedId === "string");
|
|
436
|
+
assert.strictEqual(userMessages.length, 1, "exactly one user-message event remains after reconciliation");
|
|
437
|
+
assert.dom("[data-test-ai-assistant-message]").exists({ count: 1 }, "a single bubble renders for the cgi");
|
|
438
|
+
});
|
|
439
|
+
(0, import_qunit.test)("inverse delivery race — bubble stays sending when sendEvent succeeded", async function(assert) {
|
|
440
|
+
setCardInOperatorModeState(`${testRealmURL}Person/fadhlan`);
|
|
441
|
+
await renderComponent(class TestDriver extends Component {
|
|
442
|
+
static {
|
|
443
|
+
setComponentTemplate(templateFactory({
|
|
444
|
+
"id": "ouXqEoim",
|
|
445
|
+
"block": "[[[8,[32,0],null,[[\"@onClose\"],[[32,1]]],null]],[],[]]",
|
|
446
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/ai-assistant-panel/sending-test.gts",
|
|
447
|
+
"scope": () => [OperatorModeContainer, noop],
|
|
448
|
+
"isStrictMode": true
|
|
449
|
+
}), this);
|
|
450
|
+
}
|
|
451
|
+
});
|
|
452
|
+
let roomId = await openAiAssistant();
|
|
453
|
+
let matrixService = getService("matrix-service");
|
|
454
|
+
let cgi = "inverse-race-cgi";
|
|
455
|
+
await matrixService.addOptimisticEvent(roomId, {
|
|
456
|
+
body: "Inverse race test",
|
|
457
|
+
clientGeneratedId: cgi,
|
|
458
|
+
attachedCardIds: [],
|
|
459
|
+
attachedFiles: []
|
|
460
|
+
});
|
|
461
|
+
matrixService.patchPendingSend(roomId, cgi, { status: "sending" });
|
|
462
|
+
let beforeStatus = matrixService.findPendingMatrixEventStatus(roomId, "non-existent-cgi");
|
|
463
|
+
assert.strictEqual(beforeStatus, void 0, "unknown cgi has no matrix EventStatus");
|
|
464
|
+
let stillPending = (matrixService.getRoomData(roomId)?.events ?? []).some((e) => e.content?.clientGeneratedId === cgi && (e.status === "sending" || e.status === null));
|
|
465
|
+
assert.true(stillPending, "optimistic event remains in sending state after addOptimisticEvent");
|
|
466
|
+
});
|
|
467
|
+
(0, import_qunit.test)("back-to-back sends do not block the input on the prior bubble awaiting echo", async function(assert) {
|
|
468
|
+
setCardInOperatorModeState(`${testRealmURL}Person/fadhlan`);
|
|
469
|
+
await renderComponent(class TestDriver extends Component {
|
|
470
|
+
static {
|
|
471
|
+
setComponentTemplate(templateFactory({
|
|
472
|
+
"id": "ouXqEoim",
|
|
473
|
+
"block": "[[[8,[32,0],null,[[\"@onClose\"],[[32,1]]],null]],[],[]]",
|
|
474
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/ai-assistant-panel/sending-test.gts",
|
|
475
|
+
"scope": () => [OperatorModeContainer, noop],
|
|
476
|
+
"isStrictMode": true
|
|
477
|
+
}), this);
|
|
478
|
+
}
|
|
479
|
+
});
|
|
480
|
+
await openAiAssistant();
|
|
481
|
+
await fillIn("[data-test-message-field]", "first message");
|
|
482
|
+
await click("[data-test-send-message-btn]");
|
|
483
|
+
await waitFor("[data-test-ai-assistant-message]");
|
|
484
|
+
await waitUntil(() => !document.querySelector("[data-test-send-message-btn]").disabled, { timeout: 5e3 });
|
|
485
|
+
await fillIn("[data-test-message-field]", "second message");
|
|
486
|
+
assert.dom("[data-test-send-message-btn]").isEnabled();
|
|
487
|
+
await click("[data-test-send-message-btn]");
|
|
488
|
+
assert.dom("[data-test-ai-assistant-message]").exists({ count: 2 }, "both bubbles rendered");
|
|
489
|
+
});
|
|
490
|
+
(0, import_qunit.test)("a failed bubble keeps the send button disabled until retried", async function(assert) {
|
|
491
|
+
setCardInOperatorModeState(`${testRealmURL}Person/fadhlan`);
|
|
492
|
+
await renderComponent(class TestDriver extends Component {
|
|
493
|
+
static {
|
|
494
|
+
setComponentTemplate(templateFactory({
|
|
495
|
+
"id": "ouXqEoim",
|
|
496
|
+
"block": "[[[8,[32,0],null,[[\"@onClose\"],[[32,1]]],null]],[],[]]",
|
|
497
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/ai-assistant-panel/sending-test.gts",
|
|
498
|
+
"scope": () => [OperatorModeContainer, noop],
|
|
499
|
+
"isStrictMode": true
|
|
500
|
+
}), this);
|
|
501
|
+
}
|
|
502
|
+
});
|
|
503
|
+
await openAiAssistant();
|
|
504
|
+
await fillIn("[data-test-message-field]", "This is a magic message with a SENDING_DELAY_THEN_FAILURE!");
|
|
505
|
+
await click("[data-test-send-message-btn]");
|
|
506
|
+
await waitFor("[data-test-boxel-alert=\"error\"]");
|
|
507
|
+
await settled();
|
|
508
|
+
await fillIn("[data-test-message-field]", "try to send a new one");
|
|
509
|
+
assert.dom("[data-test-send-message-btn]").isDisabled("failed user bubble still blocks new sends");
|
|
510
|
+
});
|
|
511
|
+
(0, import_qunit.test)("orphaned sending persisted entries hydrate as not_sent", async function(assert) {
|
|
512
|
+
src_default.localStorage.removeItem(AiAssistantPendingSends);
|
|
513
|
+
setCardInOperatorModeState(`${testRealmURL}Person/fadhlan`);
|
|
514
|
+
await renderComponent(class TestDriver extends Component {
|
|
515
|
+
static {
|
|
516
|
+
setComponentTemplate(templateFactory({
|
|
517
|
+
"id": "ouXqEoim",
|
|
518
|
+
"block": "[[[8,[32,0],null,[[\"@onClose\"],[[32,1]]],null]],[],[]]",
|
|
519
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/ai-assistant-panel/sending-test.gts",
|
|
520
|
+
"scope": () => [OperatorModeContainer, noop],
|
|
521
|
+
"isStrictMode": true
|
|
522
|
+
}), this);
|
|
523
|
+
}
|
|
524
|
+
});
|
|
525
|
+
let roomId = await openAiAssistant();
|
|
526
|
+
let orphaned = {
|
|
527
|
+
clientGeneratedId: "orphaned-sending-cgi",
|
|
528
|
+
body: "Send interrupted by reload",
|
|
529
|
+
attachedCardIds: [],
|
|
530
|
+
attachedFiles: [],
|
|
531
|
+
createdAt: Date.now() - 5e3,
|
|
532
|
+
status: "sending"
|
|
533
|
+
};
|
|
534
|
+
src_default.localStorage.setItem(AiAssistantPendingSends, JSON.stringify({ [roomId]: [orphaned] }));
|
|
535
|
+
let matrixService = getService("matrix-service");
|
|
536
|
+
matrixService.hydratedPendingSendRooms.delete(roomId);
|
|
537
|
+
matrixService.ensurePendingSendsHydrated(roomId);
|
|
538
|
+
await waitFor("[data-test-user-message]");
|
|
539
|
+
assert.dom("[data-test-alert-action-button=\"Retry\"]").exists("orphaned sending surfaces a retry alert");
|
|
540
|
+
let raw = src_default.localStorage.getItem(AiAssistantPendingSends);
|
|
541
|
+
let entry = (raw ? JSON.parse(raw) : {})?.[roomId]?.[0];
|
|
542
|
+
assert.strictEqual(entry?.status, "not_sent", "persisted entry rewritten to not_sent on hydration");
|
|
543
|
+
});
|
|
544
|
+
(0, import_qunit.test)("persisted entry stays until matrix finalizes the send", async function(assert) {
|
|
545
|
+
setCardInOperatorModeState(`${testRealmURL}Person/fadhlan`);
|
|
546
|
+
await renderComponent(class TestDriver extends Component {
|
|
547
|
+
static {
|
|
548
|
+
setComponentTemplate(templateFactory({
|
|
549
|
+
"id": "ouXqEoim",
|
|
550
|
+
"block": "[[[8,[32,0],null,[[\"@onClose\"],[[32,1]]],null]],[],[]]",
|
|
551
|
+
"moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/components/ai-assistant-panel/sending-test.gts",
|
|
552
|
+
"scope": () => [OperatorModeContainer, noop],
|
|
553
|
+
"isStrictMode": true
|
|
554
|
+
}), this);
|
|
555
|
+
}
|
|
556
|
+
});
|
|
557
|
+
let roomId = await openAiAssistant();
|
|
558
|
+
let sendGate = new Deferred();
|
|
559
|
+
mockMatrixUtils.setSendEventInterceptor(() => sendGate.promise);
|
|
560
|
+
await fillIn("[data-test-message-field]", "persistence-lifecycle test");
|
|
561
|
+
click("[data-test-send-message-btn]");
|
|
562
|
+
await waitFor("[data-test-ai-assistant-message-pending]");
|
|
563
|
+
let raw = src_default.localStorage.getItem(AiAssistantPendingSends);
|
|
564
|
+
let inFlight = JSON.parse(raw ?? "{}")?.[roomId]?.[0];
|
|
565
|
+
assert.ok(inFlight?.clientGeneratedId, "pending entry is persisted while the matrix send is still in flight");
|
|
566
|
+
mockMatrixUtils.setSendEventInterceptor(void 0);
|
|
567
|
+
sendGate.fulfill();
|
|
568
|
+
await waitFor("[data-test-user-message]:not(.is-pending)");
|
|
569
|
+
await settled();
|
|
570
|
+
let after = src_default.localStorage.getItem(AiAssistantPendingSends);
|
|
571
|
+
let parsed = after ? JSON.parse(after) : {};
|
|
572
|
+
assert.notOk(parsed?.[roomId]?.length, "persisted entry is removed once matrix finalizes the send");
|
|
573
|
+
});
|
|
316
574
|
});
|
|
317
575
|
//#endregion
|
|
@@ -10,10 +10,10 @@ import "./template-factory-CigcGcbz.js";
|
|
|
10
10
|
import { s as fillIn } from "./dist-CWCoBB72.js";
|
|
11
11
|
import { t as require_qunit } from "./qunit-DZc8vxH_.js";
|
|
12
12
|
import { r as getService } from "./dist-5hbdxMR8.js";
|
|
13
|
-
import { A as setupIntegrationTestRealm, O as setupCardLogs, T as saveCard, X as provide, d as cardInfo, f as cleanWhiteSpace, j as setupLocalIndexing, rt as setupRenderingTest, t as setupMockMatrix } from "./mock-matrix-
|
|
13
|
+
import { A as setupIntegrationTestRealm, O as setupCardLogs, T as saveCard, X as provide, d as cardInfo, f as cleanWhiteSpace, j as setupLocalIndexing, rt as setupRenderingTest, t as setupMockMatrix } from "./mock-matrix-Bkfl9ACG.js";
|
|
14
14
|
import { t as p } from "./helpers-D2duENdj.js";
|
|
15
15
|
import { G as contains, I as StringField, K as containsMany, O as NumberField, P as RichMarkdownField, Q as field, _t as updateFromSerialized, a as CardDef, at as getRelationshipMembershipState, b as FieldDef, c as CodeRefField, ct as isSaved, d as Component, f as DateField, ft as serializeCard, it as getQueryableValue, lt as linksTo, m as DateTimeField, mt as setupBaseRealm, n as BigIntegerField, o as CardInfoField, q as createFromSerialized, rt as getFields, t as Base64ImageField, ut as linksToMany, y as EthereumAddressField, z as Theme } from "./base-realm-Dw9jVsHl.js";
|
|
16
|
-
import { t as renderCard } from "./render-component-
|
|
16
|
+
import { t as renderCard } from "./render-component-DY19erxA.js";
|
|
17
17
|
//#region tests/integration/components/serialization-test.gts
|
|
18
18
|
var import_lib = /* @__PURE__ */ __toESM(require_lib());
|
|
19
19
|
var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
|
|
@@ -2,10 +2,10 @@ import { s as __toESM } from "./chunk-CGdGNDIi.js";
|
|
|
2
2
|
import { Xn as testRealmInfo, Zn as testRealmURL } from "./runtime-common-BY5dBG5N.js";
|
|
3
3
|
import { t as getOwner } from "./owner-CqZ4C0QN.js";
|
|
4
4
|
import { t as SetUserSystemCardCommand } from "./set-user-system-card-NmJn-CZG.js";
|
|
5
|
-
import { t as RealmService } from "./realm-
|
|
5
|
+
import { t as RealmService } from "./realm-CxU8jc8l.js";
|
|
6
6
|
import { t as require_qunit } from "./qunit-DZc8vxH_.js";
|
|
7
7
|
import { r as getService } from "./dist-5hbdxMR8.js";
|
|
8
|
-
import { A as setupIntegrationTestRealm, N as setupRealmCacheTeardown, j as setupLocalIndexing, q as withCachedRealmSetup, rt as setupRenderingTest, t as setupMockMatrix } from "./mock-matrix-
|
|
8
|
+
import { A as setupIntegrationTestRealm, N as setupRealmCacheTeardown, j as setupLocalIndexing, q as withCachedRealmSetup, rt as setupRenderingTest, t as setupMockMatrix } from "./mock-matrix-Bkfl9ACG.js";
|
|
9
9
|
//#region tests/integration/commands/set-user-system-card-test.gts
|
|
10
10
|
var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
|
|
11
11
|
var StubRealmService = class extends RealmService {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { nt as setupApplicationTest, rt as setupRenderingTest } from "./mock-matrix-
|
|
1
|
+
import { nt as setupApplicationTest, rt as setupRenderingTest } from "./mock-matrix-Bkfl9ACG.js";
|
|
2
2
|
export { setupApplicationTest, setupRenderingTest };
|
|
@@ -5,9 +5,9 @@ import { or as setComponentTemplate } from "./service-BaBMSYir.js";
|
|
|
5
5
|
import { H as templateFactory } from "./index-DaCZcoCY-Bfb0Qdzr.js";
|
|
6
6
|
import "./component-CqcrwY5l.js";
|
|
7
7
|
import "./template-factory-CigcGcbz.js";
|
|
8
|
-
import { p as FieldContainer } from "./components-
|
|
8
|
+
import { p as FieldContainer } from "./components-DYC4nC4r.js";
|
|
9
9
|
import { r as getService } from "./dist-5hbdxMR8.js";
|
|
10
|
-
import { A as setupIntegrationTestRealm, M as setupOnSave, O as setupCardLogs, et as setupOperatorModeStateCleanup, j as setupLocalIndexing, rt as setupRenderingTest, t as setupMockMatrix, w as realmConfigCardJSON } from "./mock-matrix-
|
|
10
|
+
import { A as setupIntegrationTestRealm, M as setupOnSave, O as setupCardLogs, et as setupOperatorModeStateCleanup, j as setupLocalIndexing, rt as setupRenderingTest, t as setupMockMatrix, w as realmConfigCardJSON } from "./mock-matrix-Bkfl9ACG.js";
|
|
11
11
|
//#region tests/integration/components/operator-mode/setup.gts
|
|
12
12
|
function setupOperatorModeTests(hooks) {
|
|
13
13
|
setupRenderingTest(hooks);
|
package/bundled-test-harness/assets/{show-card-test-7VGIdTJh.js → show-card-test-B41I3EWZ.js}
RENAMED
|
@@ -6,11 +6,11 @@ import { t as Service } from "./service-BaBMSYir.js";
|
|
|
6
6
|
import { n as tracked } from "./tracking-CPe6fHfT.js";
|
|
7
7
|
import { t as ShowCardCommand } from "./show-card-CkZcK1lD.js";
|
|
8
8
|
import { t as StackItem } from "./stack-item-B42VVKmV.js";
|
|
9
|
-
import { t as RealmService } from "./realm-
|
|
9
|
+
import { t as RealmService } from "./realm-CxU8jc8l.js";
|
|
10
10
|
import { t as require_qunit } from "./qunit-DZc8vxH_.js";
|
|
11
11
|
import { r as getService } from "./dist-5hbdxMR8.js";
|
|
12
|
-
import { A as setupIntegrationTestRealm, M as setupOnSave, N as setupRealmCacheTeardown, O as setupCardLogs, j as setupLocalIndexing, q as withCachedRealmSetup, rt as setupRenderingTest, t as setupMockMatrix, w as realmConfigCardJSON } from "./mock-matrix-
|
|
13
|
-
import { t as setupWindowMock } from "./test-support-
|
|
12
|
+
import { A as setupIntegrationTestRealm, M as setupOnSave, N as setupRealmCacheTeardown, O as setupCardLogs, j as setupLocalIndexing, q as withCachedRealmSetup, rt as setupRenderingTest, t as setupMockMatrix, w as realmConfigCardJSON } from "./mock-matrix-Bkfl9ACG.js";
|
|
13
|
+
import { t as setupWindowMock } from "./test-support-CCargU9V.js";
|
|
14
14
|
//#region tests/integration/commands/show-card-test.gts
|
|
15
15
|
var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
|
|
16
16
|
var StubRealmService = class extends RealmService {
|
|
@@ -7,13 +7,13 @@ import { i as envSkillId } from "./utils-BXcPbdVS.js";
|
|
|
7
7
|
import "./component-CqcrwY5l.js";
|
|
8
8
|
import { t as Component } from "./dist-CE2G0-tp.js";
|
|
9
9
|
import "./template-factory-CigcGcbz.js";
|
|
10
|
-
import { t as OperatorModeContainer } from "./container-
|
|
10
|
+
import { t as OperatorModeContainer } from "./container-DRblzvCW.js";
|
|
11
11
|
import { A as settled, I as waitUntil, d as click, o as waitFor, s as fillIn } from "./dist-CWCoBB72.js";
|
|
12
12
|
import { t as require_qunit } from "./qunit-DZc8vxH_.js";
|
|
13
13
|
import { r as getService } from "./dist-5hbdxMR8.js";
|
|
14
|
-
import { A as setupIntegrationTestRealm, E as setMonacoContent, M as setupOnSave, O as setupCardLogs, b as getMonacoContent, et as setupOperatorModeStateCleanup, j as setupLocalIndexing, o as addSkillToAiAssistant, rt as setupRenderingTest, t as setupMockMatrix, w as realmConfigCardJSON } from "./mock-matrix-
|
|
14
|
+
import { A as setupIntegrationTestRealm, E as setMonacoContent, M as setupOnSave, O as setupCardLogs, b as getMonacoContent, et as setupOperatorModeStateCleanup, j as setupLocalIndexing, o as addSkillToAiAssistant, rt as setupRenderingTest, t as setupMockMatrix, w as realmConfigCardJSON } from "./mock-matrix-Bkfl9ACG.js";
|
|
15
15
|
import { G as contains, I as StringField, Q as field, a as CardDef, b as FieldDef, d as Component$1, lt as linksTo, mt as setupBaseRealm, s as CardsGrid, ut as linksToMany } from "./base-realm-Dw9jVsHl.js";
|
|
16
|
-
import { n as renderComponent } from "./render-component-
|
|
16
|
+
import { n as renderComponent } from "./render-component-DY19erxA.js";
|
|
17
17
|
//#region tests/integration/components/ai-assistant-panel/skills-test.gts
|
|
18
18
|
var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
|
|
19
19
|
(0, import_qunit.module)("Integration | ai-assistant-panel | skills", function(hooks) {
|
|
@@ -3,9 +3,9 @@ import { Si as baseRealm, Zn as testRealmURL, _a as Deferred, ya as rri } from "
|
|
|
3
3
|
import { A as settled, a as find, d as click, l as triggerEvent, o as waitFor, s as fillIn } from "./dist-CWCoBB72.js";
|
|
4
4
|
import { t as require_qunit } from "./qunit-DZc8vxH_.js";
|
|
5
5
|
import { r as getService } from "./dist-5hbdxMR8.js";
|
|
6
|
-
import { D as setupAcceptanceTestRealm, F as setupUserSubscription, M as setupOnSave, N as setupRealmCacheTeardown, P as setupRealmServerEndpoints, a as SYSTEM_CARD_FIXTURE_CONTENTS, at as setupAuthEndpoints, j as setupLocalIndexing, nt as setupApplicationTest, pt as percySnapshot, q as withCachedRealmSetup, t as setupMockMatrix, tt as visitOperatorMode, w as realmConfigCardJSON } from "./mock-matrix-
|
|
7
|
-
import { a as getPlaygroundSelections, c as removeSpecSelection, l as selectDeclaration, t as assertCardExists } from "./playground-
|
|
8
|
-
import { r as getRecentFiles } from "./recent-files-cards-
|
|
6
|
+
import { D as setupAcceptanceTestRealm, F as setupUserSubscription, M as setupOnSave, N as setupRealmCacheTeardown, P as setupRealmServerEndpoints, a as SYSTEM_CARD_FIXTURE_CONTENTS, at as setupAuthEndpoints, j as setupLocalIndexing, nt as setupApplicationTest, pt as percySnapshot, q as withCachedRealmSetup, t as setupMockMatrix, tt as visitOperatorMode, w as realmConfigCardJSON } from "./mock-matrix-Bkfl9ACG.js";
|
|
7
|
+
import { a as getPlaygroundSelections, c as removeSpecSelection, l as selectDeclaration, t as assertCardExists } from "./playground-DFwsIC-9.js";
|
|
8
|
+
import { r as getRecentFiles } from "./recent-files-cards-BICbCMhW.js";
|
|
9
9
|
import "./code-equality-assertion-Bdj0Z0Ut.js";
|
|
10
10
|
//#region tests/acceptance/code-submode/spec-test.gts
|
|
11
11
|
var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
|
|
@@ -102,6 +102,7 @@ var StoreService = class extends Service {
|
|
|
102
102
|
this.#operatorModeStateService = (initializeDeferredDecorator(this, "operatorModeStateService"), void 0);
|
|
103
103
|
this.#realmServer = (initializeDeferredDecorator(this, "realmServer"), void 0);
|
|
104
104
|
this.subscriptions = /* @__PURE__ */ new Map();
|
|
105
|
+
this.cardInvalidationSubscribers = /* @__PURE__ */ new Map();
|
|
105
106
|
this.referenceCount = /* @__PURE__ */ new Map();
|
|
106
107
|
this.newReferencePromises = [];
|
|
107
108
|
this.autoSaveStates = new TrackedMap();
|
|
@@ -219,6 +220,7 @@ var StoreService = class extends Service {
|
|
|
219
220
|
let consumers = this.store.consumersOf(api, instance);
|
|
220
221
|
this.store.delete(instance.id);
|
|
221
222
|
for (let consumer of consumers) api.notifyLinksToTargetDeleted(consumer, instance.id);
|
|
223
|
+
this.notifyCardInvalidationSubscribers(instance.id);
|
|
222
224
|
}
|
|
223
225
|
} finally {
|
|
224
226
|
this.finishTrackingCardLoad(instance.id, reloadTracker);
|
|
@@ -266,6 +268,7 @@ var StoreService = class extends Service {
|
|
|
266
268
|
resetState() {
|
|
267
269
|
clearInterval(this.gcInterval);
|
|
268
270
|
this.subscriptions = /* @__PURE__ */ new Map();
|
|
271
|
+
this.cardInvalidationSubscribers = /* @__PURE__ */ new Map();
|
|
269
272
|
this.onSaveSubscriber = void 0;
|
|
270
273
|
this.referenceCount = /* @__PURE__ */ new Map();
|
|
271
274
|
this.newReferencePromises = [];
|
|
@@ -318,6 +321,32 @@ var StoreService = class extends Service {
|
|
|
318
321
|
this.store.reset();
|
|
319
322
|
this.reestablishReferences.perform();
|
|
320
323
|
}
|
|
324
|
+
subscribeToCardInvalidation(id, cb) {
|
|
325
|
+
let normalizedId = asURL(id, this.network.virtualNetwork);
|
|
326
|
+
let subscribers = this.cardInvalidationSubscribers.get(normalizedId);
|
|
327
|
+
if (!subscribers) {
|
|
328
|
+
subscribers = /* @__PURE__ */ new Set();
|
|
329
|
+
this.cardInvalidationSubscribers.set(normalizedId, subscribers);
|
|
330
|
+
}
|
|
331
|
+
subscribers.add(cb);
|
|
332
|
+
return () => {
|
|
333
|
+
let current = this.cardInvalidationSubscribers.get(normalizedId);
|
|
334
|
+
if (!current) return;
|
|
335
|
+
current.delete(cb);
|
|
336
|
+
if (current.size === 0) this.cardInvalidationSubscribers.delete(normalizedId);
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
notifyCardInvalidationSubscribers(id) {
|
|
340
|
+
let normalizedId = asURL(id, this.network.virtualNetwork);
|
|
341
|
+
let subscribers = this.cardInvalidationSubscribers.get(normalizedId);
|
|
342
|
+
if (!subscribers) return;
|
|
343
|
+
for (let cb of [...subscribers]) try {
|
|
344
|
+
let maybePromise = cb();
|
|
345
|
+
if (maybePromise && typeof maybePromise.then === "function") maybePromise.catch((err) => console.error(`card invalidation subscriber for ${normalizedId} rejected`, err));
|
|
346
|
+
} catch (err) {
|
|
347
|
+
console.error(`card invalidation subscriber for ${normalizedId} threw`, err);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
321
350
|
dropReference(id) {
|
|
322
351
|
if (!id) return;
|
|
323
352
|
id = asURL(id, this.network.virtualNetwork);
|
|
@@ -492,6 +521,7 @@ var StoreService = class extends Service {
|
|
|
492
521
|
this.store.delete(id);
|
|
493
522
|
if (api) for (let consumer of consumers) api.notifyLinksToTargetDeleted(consumer, id);
|
|
494
523
|
await this.cardService.fetchJSON(id, { method: "DELETE" });
|
|
524
|
+
this.notifyCardInvalidationSubscribers(id);
|
|
495
525
|
}
|
|
496
526
|
async patch(id, patch, opts) {
|
|
497
527
|
if (this.renderContextBlocksPersistence()) return;
|
package/bundled-test-harness/assets/{store-add-test-mRtjroP0.js → store-add-test-ulvv9A3X.js}
RENAMED
|
@@ -2,10 +2,10 @@ import { s as __toESM } from "./chunk-CGdGNDIi.js";
|
|
|
2
2
|
import { Xn as testRealmInfo, Zn as testRealmURL } from "./runtime-common-BY5dBG5N.js";
|
|
3
3
|
import { t as getOwner } from "./owner-CqZ4C0QN.js";
|
|
4
4
|
import { t as StoreAddCommand } from "./store-add-DYE1fMQN.js";
|
|
5
|
-
import { t as RealmService } from "./realm-
|
|
5
|
+
import { t as RealmService } from "./realm-CxU8jc8l.js";
|
|
6
6
|
import { t as require_qunit } from "./qunit-DZc8vxH_.js";
|
|
7
7
|
import { r as getService } from "./dist-5hbdxMR8.js";
|
|
8
|
-
import { A as setupIntegrationTestRealm, N as setupRealmCacheTeardown, j as setupLocalIndexing, q as withCachedRealmSetup, rt as setupRenderingTest, t as setupMockMatrix } from "./mock-matrix-
|
|
8
|
+
import { A as setupIntegrationTestRealm, N as setupRealmCacheTeardown, j as setupLocalIndexing, q as withCachedRealmSetup, rt as setupRenderingTest, t as setupMockMatrix } from "./mock-matrix-Bkfl9ACG.js";
|
|
9
9
|
import { mt as setupBaseRealm } from "./base-realm-Dw9jVsHl.js";
|
|
10
10
|
//#region tests/integration/commands/store-add-test.gts
|
|
11
11
|
var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
|
|
@@ -7,15 +7,15 @@ import { n as tracked, t as cached } from "./tracking-CPe6fHfT.js";
|
|
|
7
7
|
import "./component-CqcrwY5l.js";
|
|
8
8
|
import { t as Component } from "./dist-CE2G0-tp.js";
|
|
9
9
|
import "./template-factory-CigcGcbz.js";
|
|
10
|
-
import { y as getCardCollection } from "./panel-
|
|
10
|
+
import { y as getCardCollection } from "./panel-DcMU_CGT.js";
|
|
11
11
|
import { n as getCard } from "./card-resource-Dww3okhN.js";
|
|
12
|
-
import { t as OperatorModeContainer } from "./container-
|
|
12
|
+
import { t as OperatorModeContainer } from "./container-DRblzvCW.js";
|
|
13
13
|
import { A as settled, I as waitUntil, d as click, o as waitFor, r as typeIn } from "./dist-CWCoBB72.js";
|
|
14
14
|
import { t as require_qunit } from "./qunit-DZc8vxH_.js";
|
|
15
15
|
import { r as getService } from "./dist-5hbdxMR8.js";
|
|
16
|
-
import { A as setupIntegrationTestRealm, J as withSlowSave, M as setupOnSave, O as setupCardLogs, et as setupOperatorModeStateCleanup, j as setupLocalIndexing, ot as registerDefaultRoutes, rt as setupRenderingTest, st as registerRealmServerRoute, t as setupMockMatrix } from "./mock-matrix-
|
|
16
|
+
import { A as setupIntegrationTestRealm, J as withSlowSave, M as setupOnSave, O as setupCardLogs, et as setupOperatorModeStateCleanup, j as setupLocalIndexing, ot as registerDefaultRoutes, rt as setupRenderingTest, st as registerRealmServerRoute, t as setupMockMatrix } from "./mock-matrix-Bkfl9ACG.js";
|
|
17
17
|
import { G as contains, I as StringField, Q as field, a as CardDef, d as Component$1, lt as linksTo, mt as setupBaseRealm, r as BooleanField, ut as linksToMany, x as FileDef } from "./base-realm-Dw9jVsHl.js";
|
|
18
|
-
import { n as renderComponent } from "./render-component-
|
|
18
|
+
import { n as renderComponent } from "./render-component-DY19erxA.js";
|
|
19
19
|
//#region tests/integration/store-test.gts
|
|
20
20
|
var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
|
|
21
21
|
(0, import_qunit.module)("Integration | Store", function(hooks) {
|
|
@@ -691,6 +691,79 @@ var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
|
|
|
691
691
|
let file = await testRealmAdapter.openFile(`Person/boris.json`);
|
|
692
692
|
assert.strictEqual(file, void 0, "file no longer exists");
|
|
693
693
|
});
|
|
694
|
+
(0, import_qunit.test)("subscribeToCardInvalidation fires the callback when the card is deleted", async function(assert) {
|
|
695
|
+
storeService.addReference(`${testRealmURL}Person/boris`);
|
|
696
|
+
await storeService.flush();
|
|
697
|
+
let fired = 0;
|
|
698
|
+
let unsubscribe = storeService.subscribeToCardInvalidation(`${testRealmURL}Person/boris`, () => {
|
|
699
|
+
fired += 1;
|
|
700
|
+
});
|
|
701
|
+
await storeService.delete(`${testRealmURL}Person/boris`);
|
|
702
|
+
assert.strictEqual(fired, 1, "the invalidation subscriber fires exactly once on delete");
|
|
703
|
+
unsubscribe();
|
|
704
|
+
});
|
|
705
|
+
(0, import_qunit.test)("subscribeToCardInvalidation unsubscribe stops firing the callback", async function(assert) {
|
|
706
|
+
storeService.addReference(`${testRealmURL}Person/boris`);
|
|
707
|
+
await storeService.flush();
|
|
708
|
+
let fired = 0;
|
|
709
|
+
storeService.subscribeToCardInvalidation(`${testRealmURL}Person/boris`, () => {
|
|
710
|
+
fired += 1;
|
|
711
|
+
})();
|
|
712
|
+
await storeService.delete(`${testRealmURL}Person/boris`);
|
|
713
|
+
assert.strictEqual(fired, 0, "no callbacks fire after unsubscribe");
|
|
714
|
+
});
|
|
715
|
+
(0, import_qunit.test)("a synchronously throwing invalidation subscriber does not break siblings", async function(assert) {
|
|
716
|
+
storeService.addReference(`${testRealmURL}Person/boris`);
|
|
717
|
+
await storeService.flush();
|
|
718
|
+
let originalError = console.error;
|
|
719
|
+
let captured = [];
|
|
720
|
+
console.error = (...args) => {
|
|
721
|
+
captured.push(args);
|
|
722
|
+
};
|
|
723
|
+
let secondFired = 0;
|
|
724
|
+
let unsubscribeA = storeService.subscribeToCardInvalidation(`${testRealmURL}Person/boris`, () => {
|
|
725
|
+
throw new Error("intentional sync throw from invalidation subscriber");
|
|
726
|
+
});
|
|
727
|
+
let unsubscribeB = storeService.subscribeToCardInvalidation(`${testRealmURL}Person/boris`, () => {
|
|
728
|
+
secondFired += 1;
|
|
729
|
+
});
|
|
730
|
+
try {
|
|
731
|
+
await storeService.delete(`${testRealmURL}Person/boris`);
|
|
732
|
+
assert.strictEqual(secondFired, 1, "the second subscriber still runs after the first one throws");
|
|
733
|
+
assert.strictEqual(captured.length, 1, "the synchronous throw is reported via console.error exactly once");
|
|
734
|
+
} finally {
|
|
735
|
+
unsubscribeA();
|
|
736
|
+
unsubscribeB();
|
|
737
|
+
console.error = originalError;
|
|
738
|
+
}
|
|
739
|
+
});
|
|
740
|
+
(0, import_qunit.test)("an async-rejecting invalidation subscriber does not break siblings and does not surface as an unhandled rejection", async function(assert) {
|
|
741
|
+
storeService.addReference(`${testRealmURL}Person/boris`);
|
|
742
|
+
await storeService.flush();
|
|
743
|
+
let originalError = console.error;
|
|
744
|
+
let captured = [];
|
|
745
|
+
console.error = (...args) => {
|
|
746
|
+
captured.push(args);
|
|
747
|
+
};
|
|
748
|
+
let secondFired = 0;
|
|
749
|
+
let unsubscribeA = storeService.subscribeToCardInvalidation(`${testRealmURL}Person/boris`, async () => {
|
|
750
|
+
await Promise.resolve();
|
|
751
|
+
throw new Error("intentional async rejection from invalidation subscriber");
|
|
752
|
+
});
|
|
753
|
+
let unsubscribeB = storeService.subscribeToCardInvalidation(`${testRealmURL}Person/boris`, () => {
|
|
754
|
+
secondFired += 1;
|
|
755
|
+
});
|
|
756
|
+
try {
|
|
757
|
+
await storeService.delete(`${testRealmURL}Person/boris`);
|
|
758
|
+
await settled();
|
|
759
|
+
assert.strictEqual(secondFired, 1, "the second subscriber still runs alongside the async-rejecting one");
|
|
760
|
+
assert.strictEqual(captured.length, 1, "the async rejection is reported via console.error exactly once");
|
|
761
|
+
} finally {
|
|
762
|
+
unsubscribeA();
|
|
763
|
+
unsubscribeB();
|
|
764
|
+
console.error = originalError;
|
|
765
|
+
}
|
|
766
|
+
});
|
|
694
767
|
(0, import_qunit.test)("can patch an instance", async function(assert) {
|
|
695
768
|
let instance = await storeService.patch(`${testRealmURL}Person/hassan`, {
|
|
696
769
|
attributes: { name: "Hassan Updated" },
|
package/bundled-test-harness/assets/{submode-switcher-Popj4iN5.js → submode-switcher-iR4m0GzD.js}
RENAMED
|
@@ -8,7 +8,7 @@ import { i as templateOnly } from "./dist-BHeMAIJN.js";
|
|
|
8
8
|
import "./component-CqcrwY5l.js";
|
|
9
9
|
import { t as Component } from "./dist-CE2G0-tp.js";
|
|
10
10
|
import "./template-factory-CigcGcbz.js";
|
|
11
|
-
import { M as Tooltip, i as BoxelDropdown, s as ButtonComponent, x as Menu } from "./components-
|
|
11
|
+
import { M as Tooltip, i as BoxelDropdown, s as ButtonComponent, x as Menu } from "./components-DYC4nC4r.js";
|
|
12
12
|
import { D as cn, V as menuItemFunc } from "./helpers-BGEPA06U.js";
|
|
13
13
|
import { E as IconComponent$A, V as IconComponent$P, q as IconComponent$V } from "./warning-CY8WOyKw-BjT-7Nrv.js";
|
|
14
14
|
import "./icons-DpXEIwY6.js";
|