@cardstack/boxel-cli 0.3.2-unstable.59 → 0.3.2-unstable.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (921) hide show
  1. package/api.ts +3 -3
  2. package/bundled-realms/base/command.gts +73 -0
  3. package/bundled-test-harness/assets/adapter-TgpmkD23.js +2 -0
  4. package/bundled-test-harness/assets/add-field-to-card-definition-command-test-BVVD6_Wq.js +111 -0
  5. package/bundled-test-harness/assets/add-workspace-test-BvvYJ2Fk.js +71 -0
  6. package/bundled-test-harness/assets/ai-assistant-Ba_RBqf6.js +129 -0
  7. package/bundled-test-harness/assets/ai-assistant-panel-service-test-DK87n1hh.js +95 -0
  8. package/bundled-test-harness/assets/ai-assistant-test-CZATBlJS.js +2137 -0
  9. package/bundled-test-harness/assets/ai-function-generation-test-e58MHziu.js +996 -0
  10. package/bundled-test-harness/assets/ai-module-creation-test-CEieL3Fa.js +150 -0
  11. package/bundled-test-harness/assets/aibot-message-DhTbAqNk.js +1185 -0
  12. package/bundled-test-harness/assets/amd-transpile-test-CSk5COu7.js +425 -0
  13. package/bundled-test-harness/assets/app-Btfy4HWI.js +21464 -0
  14. package/bundled-test-harness/assets/apply-boxel-formatting-test-BHTP9NBp.js +134 -0
  15. package/bundled-test-harness/assets/apply-markdown-edit-test-BETCndeK.js +230 -0
  16. package/bundled-test-harness/assets/apply-search-replace-block-test-KNolar0-.js +630 -0
  17. package/bundled-test-harness/assets/arc-CA8yZ0zo.js +199 -0
  18. package/bundled-test-harness/assets/architecture-7EHR7CIX-C5JFMGdb.js +3 -0
  19. package/bundled-test-harness/assets/architectureDiagram-3BPJPVTR-CmVPjKgm.js +7400 -0
  20. package/bundled-test-harness/assets/auth-error-guard-test-D0rKESg_.js +30 -0
  21. package/bundled-test-harness/assets/auth-service-worker-test-DGg_vbKo.js +538 -0
  22. package/bundled-test-harness/assets/authed-fetch-test-CHF3eh_H.js +75 -0
  23. package/bundled-test-harness/assets/avif-image-def-test-p9tiyh4_.js +186 -0
  24. package/bundled-test-harness/assets/base-realm-Chjzrp6m.js +2 -0
  25. package/bundled-test-harness/assets/base-realm-DpSTsZxD.js +140 -0
  26. package/bundled-test-harness/assets/basic-test-D7qEz4hw.js +128 -0
  27. package/bundled-test-harness/assets/bfm-card-references-test-D-m1YnL8.js +577 -0
  28. package/bundled-test-harness/assets/binary-upload-dedupe-test-8RKK73EG.js +308 -0
  29. package/bundled-test-harness/assets/blockDiagram-GPEHLZMM-BdVFTa2C.js +4355 -0
  30. package/bundled-test-harness/assets/bot-registration-test-9zYny2wR.js +99 -0
  31. package/bundled-test-harness/assets/box-test-0T92xi3A.js +51 -0
  32. package/bundled-test-harness/assets/brand-guide-attachments-test-5ZtPn4cC.js +87 -0
  33. package/bundled-test-harness/assets/brand-guide-custom-css-test-CKKSgKyp.js +135 -0
  34. package/bundled-test-harness/assets/brand-logo-mark-field-test-nlNNQ3rw.js +87 -0
  35. package/bundled-test-harness/assets/broken-link-template-test-BGIExVof.js +345 -0
  36. package/bundled-test-harness/assets/browser-index-BaR-gTqG.js +3 -0
  37. package/bundled-test-harness/assets/browser-index-G4NKYBAj.js +8802 -0
  38. package/bundled-test-harness/assets/c4Diagram-AAUBKEIU-DyugX7zz.js +3764 -0
  39. package/bundled-test-harness/assets/cached-fetch-test-MtqvDphJ.js +93 -0
  40. package/bundled-test-harness/assets/can-read-realm-test-BZmwIOqS.js +58 -0
  41. package/bundled-test-harness/assets/cancel-indexing-job-test-BsQtQbDu.js +71 -0
  42. package/bundled-test-harness/assets/card-api-test-BxQ8f0-c.js +196 -0
  43. package/bundled-test-harness/assets/card-basics-test-B-uBZ8o4.js +4895 -0
  44. package/bundled-test-harness/assets/card-catalog-test-YmwmyIKf.js +377 -0
  45. package/bundled-test-harness/assets/card-copy-test-LoqdH1CQ.js +777 -0
  46. package/bundled-test-harness/assets/card-def-field-def-relationships-test-DvtBA1jv.js +560 -0
  47. package/bundled-test-harness/assets/card-def-menu-items-test-DHnd0LuM.js +182 -0
  48. package/bundled-test-harness/assets/card-delete-test-vKF0Jf1X.js +412 -0
  49. package/bundled-test-harness/assets/card-directory-name-test-CbCuPwSz.js +71 -0
  50. package/bundled-test-harness/assets/card-playground-test-CRIP3b5-.js +1497 -0
  51. package/bundled-test-harness/assets/card-prerender-ClYlSOBU.js +12661 -0
  52. package/bundled-test-harness/assets/card-search-adorn-test-Mggk5ZgY.js +128 -0
  53. package/bundled-test-harness/assets/card-search-query-builder-test-Cdl12s50.js +88 -0
  54. package/bundled-test-harness/assets/card-search-selection-menu-test-CtuCCLoB.js +108 -0
  55. package/bundled-test-harness/assets/channel-BKUMepxs.js +8 -0
  56. package/bundled-test-harness/assets/check-correctness-test-DBh8DT_f.js +252 -0
  57. package/bundled-test-harness/assets/chunk-2J33WTMH-ClrRoNQU.js +31 -0
  58. package/bundled-test-harness/assets/chunk-3OPIFGDE-g_0Oh8jN.js +5548 -0
  59. package/bundled-test-harness/assets/chunk-4BX2VUAB-D2LCc7Y9.js +11 -0
  60. package/bundled-test-harness/assets/chunk-4EGX6M5U-D8vRS5IG.js +44 -0
  61. package/bundled-test-harness/assets/chunk-55IACEB6-C5j4VAmb.js +10 -0
  62. package/bundled-test-harness/assets/chunk-5DO6E6H7-CPb3jsP0.js +27 -0
  63. package/bundled-test-harness/assets/chunk-5ZQYHXKU-BlVb7vgG.js +1767 -0
  64. package/bundled-test-harness/assets/chunk-727SXJPM-C_NVCDMC.js +3877 -0
  65. package/bundled-test-harness/assets/chunk-AQP2D5EJ-CpwrMix_.js +2622 -0
  66. package/bundled-test-harness/assets/chunk-BR22UD5L-AF0NWdjT.js +85 -0
  67. package/bundled-test-harness/assets/chunk-BSJP7CBP-Dgun5vYb.js +114 -0
  68. package/bundled-test-harness/assets/chunk-CSCIHK7Q-D7nFiAZ-.js +6144 -0
  69. package/bundled-test-harness/assets/chunk-FHYWG6QK-2nuXS9PL.js +27 -0
  70. package/bundled-test-harness/assets/chunk-FMBD7UC4-O-Y8VK1S.js +20 -0
  71. package/bundled-test-harness/assets/chunk-KSCS5N6A-Du5-DprU.js +871 -0
  72. package/bundled-test-harness/assets/chunk-L5ZTLDWV-C2lDtkix.js +43 -0
  73. package/bundled-test-harness/assets/chunk-LZXEDZCA-qAMsMZkF.js +65 -0
  74. package/bundled-test-harness/assets/chunk-MPE355IW-DcT_60Oq.js +27 -0
  75. package/bundled-test-harness/assets/chunk-MZUSXYTE-BsH_YmnC.js +36 -0
  76. package/bundled-test-harness/assets/chunk-N66VUXT2-DMyMHgoS.js +70 -0
  77. package/bundled-test-harness/assets/chunk-ND2GUHAM-DO1Znn8O.js +93 -0
  78. package/bundled-test-harness/assets/chunk-NZK2D7GU-B1YWBxHm.js +89 -0
  79. package/bundled-test-harness/assets/chunk-O5CBEL6O-CZVSBsRq.js +2395 -0
  80. package/bundled-test-harness/assets/chunk-PUPMXCY4-DzOK-Vbt.js +27 -0
  81. package/bundled-test-harness/assets/chunk-QZHKN3VN-DJFnRn99.js +20 -0
  82. package/bundled-test-harness/assets/chunk-UIBZB4QT-5KIxBxjk.js +27 -0
  83. package/bundled-test-harness/assets/chunk-WCWK7LTN-BsQwhliq.js +36 -0
  84. package/bundled-test-harness/assets/chunk-WU5MYG2G-DUVb5MAo.js +12 -0
  85. package/bundled-test-harness/assets/chunk-XPW4576I-DLaJYAOU.js +2341 -0
  86. package/bundled-test-harness/assets/classDiagram-4FO5ZUOK-DjP2uozG.js +31 -0
  87. package/bundled-test-harness/assets/classDiagram-v2-Q7XG4LA2-Dt6ps5uz.js +31 -0
  88. package/bundled-test-harness/assets/code-equality-assertion-BBezFT13.js +474 -0
  89. package/bundled-test-harness/assets/code-patches-test-DzoQGARM.js +1128 -0
  90. package/bundled-test-harness/assets/code-patching-test-D8r-pJ5w.js +114 -0
  91. package/bundled-test-harness/assets/code-ref-test-DU3HChNz.js +138 -0
  92. package/bundled-test-harness/assets/code-semantics-service-test-DArUotKy.js +65 -0
  93. package/bundled-test-harness/assets/code-submode-test-h5wWKsz2.js +1762 -0
  94. package/bundled-test-harness/assets/codeblocks-test-FbuwTy5v.js +492 -0
  95. package/bundled-test-harness/assets/codemirror-context-DVlC9C78.js +2 -0
  96. package/bundled-test-harness/assets/codemirror-editor-test-JDT9uwqM.js +1176 -0
  97. package/bundled-test-harness/assets/color-field-test-BssRlQAX.js +213 -0
  98. package/bundled-test-harness/assets/command-definitions-test-J21kOxBs.js +72 -0
  99. package/bundled-test-harness/assets/commands-DAo0DgCX.js +1379 -0
  100. package/bundled-test-harness/assets/commands-calling-test-C3deVvv_.js +200 -0
  101. package/bundled-test-harness/assets/commands-test--0zViqs2.js +1041 -0
  102. package/bundled-test-harness/assets/commands-test-BwNn2npL.js +1145 -0
  103. package/bundled-test-harness/assets/computed-test-BD_KrZmc.js +882 -0
  104. package/bundled-test-harness/assets/container-C8gu0I0Q.js +14605 -0
  105. package/bundled-test-harness/assets/convert-to-class-name-test-CX21VRzM.js +17 -0
  106. package/bundled-test-harness/assets/copy-and-edit-test-BUy_o8XJ.js +291 -0
  107. package/bundled-test-harness/assets/copy-card-test-LWbugEPe.js +156 -0
  108. package/bundled-test-harness/assets/copy-file-to-realm-test-BS25EUGV.js +99 -0
  109. package/bundled-test-harness/assets/copy-source-test-Dh33cqM8.js +56 -0
  110. package/bundled-test-harness/assets/cose-bilkent-S5V4N54A-CjAFDdpS.js +4275 -0
  111. package/bundled-test-harness/assets/create-file-test-DOc3YYij.js +963 -0
  112. package/bundled-test-harness/assets/create-file-test-DgUya7-i.js +397 -0
  113. package/bundled-test-harness/assets/create-listing-modal-test-DZxZBYS7.js +194 -0
  114. package/bundled-test-harness/assets/create-listing-pr-request-Aw0ms76l.js +64 -0
  115. package/bundled-test-harness/assets/create-listing-pr-request-test-CFvqkgky.js +117 -0
  116. package/bundled-test-harness/assets/create-spec-test-BTRt8oe8.js +239 -0
  117. package/bundled-test-harness/assets/csv-file-def-test-BVffg8wL.js +101 -0
  118. package/bundled-test-harness/assets/dagre-BM42HDAG-GoRrN65x.js +606 -0
  119. package/bundled-test-harness/assets/dagre-ByxOOmYM.js +4195 -0
  120. package/bundled-test-harness/assets/date-time-fields-test-BEcfCqgB.js +322 -0
  121. package/bundled-test-harness/assets/debug-message-test-CAxbe6x2.js +119 -0
  122. package/bundled-test-harness/assets/diagram-2AECGRRQ-B6-pvp9H.js +279 -0
  123. package/bundled-test-harness/assets/diagram-5GNKFQAL-C9M7hXIc.js +142 -0
  124. package/bundled-test-harness/assets/diagram-KO2AKTUF-BNJvCLGK.js +551 -0
  125. package/bundled-test-harness/assets/diagram-LMA3HP47-hlJyTtqP.js +184 -0
  126. package/bundled-test-harness/assets/diagram-OG6HWLK6-BvPoB3IH.js +857 -0
  127. package/bundled-test-harness/assets/diffing-test-De9Ev_Fr.js +210 -0
  128. package/bundled-test-harness/assets/dist-BsEojs3T.js +232 -0
  129. package/bundled-test-harness/assets/dist-CY3T64Hs.js +105 -0
  130. package/bundled-test-harness/assets/dist-q2xz8RMj.js +2 -0
  131. package/bundled-test-harness/assets/editor-test-DOI_TvWQ.js +551 -0
  132. package/bundled-test-harness/assets/editor.main-CpuM6HrX.js +43566 -0
  133. package/bundled-test-harness/assets/editor.main-DkMgS1qm.js +3 -0
  134. package/bundled-test-harness/assets/email-field-test-t-80Z94b.js +74 -0
  135. package/bundled-test-harness/assets/enum-field-test-DVp-2pip.js +909 -0
  136. package/bundled-test-harness/assets/erDiagram-TEJ5UH35-CYniRkua.js +2041 -0
  137. package/bundled-test-harness/assets/error-display-test-IuRxKyLz.js +343 -0
  138. package/bundled-test-harness/assets/evaluate-module-test-DdnfbFp-.js +66 -0
  139. package/bundled-test-harness/assets/eventmodeling-FCH6USID-BO089-Cs.js +3 -0
  140. package/bundled-test-harness/assets/execute-atomic-operations-test-CgbvrBlu.js +75 -0
  141. package/bundled-test-harness/assets/externals-5atxeNU4.js +5533 -0
  142. package/bundled-test-harness/assets/extract-css-variables-test-Cii-CYfc.js +169 -0
  143. package/bundled-test-harness/assets/fallback-banner-test-CUUd-Wuu.js +227 -0
  144. package/bundled-test-harness/assets/fallback-banner-test-D4NWyahM.js +53 -0
  145. package/bundled-test-harness/assets/fallback-models-test-2MJ1jAs8.js +163 -0
  146. package/bundled-test-harness/assets/fetch-card-json-test-Cruqsq6S.js +63 -0
  147. package/bundled-test-harness/assets/fetcher-test-CkHlbTzz.js +85 -0
  148. package/bundled-test-harness/assets/field-configuration-test-CqwsGNib.js +535 -0
  149. package/bundled-test-harness/assets/field-markdown-domain-test-DPjz8i4Y.js +615 -0
  150. package/bundled-test-harness/assets/field-markdown-primitives-test-Dw07UtT7.js +362 -0
  151. package/bundled-test-harness/assets/field-markdown-specialized-test-C-t34PAw.js +527 -0
  152. package/bundled-test-harness/assets/field-path-parser-test-BeNjacPu.js +387 -0
  153. package/bundled-test-harness/assets/field-playground-test-BILTGxqr.js +902 -0
  154. package/bundled-test-harness/assets/field-support-predicates-test-Df24w0Wa.js +170 -0
  155. package/bundled-test-harness/assets/field-test-helpers-P22hxBNz.js +45 -0
  156. package/bundled-test-harness/assets/file-attachment-test-Cjg4NBeM.js +635 -0
  157. package/bundled-test-harness/assets/file-chooser-test-Cl0XujPT.js +439 -0
  158. package/bundled-test-harness/assets/file-def-live-reload-test-D4Obzi12.js +50 -0
  159. package/bundled-test-harness/assets/file-def-manager-DUgR-gjs.js +470 -0
  160. package/bundled-test-harness/assets/file-def-manager-canonicalize-test-D_LWVsvz.js +451 -0
  161. package/bundled-test-harness/assets/file-def-menu-items-test-xvsUTOK4.js +114 -0
  162. package/bundled-test-harness/assets/file-def-navigation-test-DxPceB7E.js +109 -0
  163. package/bundled-test-harness/assets/file-def-serialization-test-CpwbDb8p.js +87 -0
  164. package/bundled-test-harness/assets/file-def-test-CEnKcvW9.js +219 -0
  165. package/bundled-test-harness/assets/file-tree-test-DE2aH6iq.js +773 -0
  166. package/bundled-test-harness/assets/flac-audio-def-test-BCg7LnR6.js +138 -0
  167. package/bundled-test-harness/assets/flowDiagram-I6XJVG4X-Xv8-LIxQ.js +4883 -0
  168. package/bundled-test-harness/assets/formatted-aibot-message-test-CsxFn62P.js +366 -0
  169. package/bundled-test-harness/assets/formatted-user-message-test-DjZc8qnA.js +43 -0
  170. package/bundled-test-harness/assets/freestyle-test-QEZaZCNJ.js +17 -0
  171. package/bundled-test-harness/assets/full-reindex-realm-test-C_c2OTTD.js +103 -0
  172. package/bundled-test-harness/assets/ganttDiagram-6RSMTGT7-DmvkzS5w.js +4060 -0
  173. package/bundled-test-harness/assets/garbage-collection-test-BVuvfidI.js +373 -0
  174. package/bundled-test-harness/assets/general-test-Ydis4jEq.js +926 -0
  175. package/bundled-test-harness/assets/generate-css-variables-test-CZCmgTAO.js +88 -0
  176. package/bundled-test-harness/assets/generate-example-cards-one-shot-test-x_szhkSN.js +67 -0
  177. package/bundled-test-harness/assets/get-available-realm-identifiers-test-DvRnwCHR.js +49 -0
  178. package/bundled-test-harness/assets/get-catalog-realm-identifiers-test-46TE-XA0.js +49 -0
  179. package/bundled-test-harness/assets/get-default-writable-realm-test-DaAkxTNh.js +56 -0
  180. package/bundled-test-harness/assets/get-realm-of-resource-identifier-test-9XEGHVOV.js +55 -0
  181. package/bundled-test-harness/assets/get-relationship-membership-state-test-BY4gk5JZ.js +1306 -0
  182. package/bundled-test-harness/assets/get-type-refs-from-filter-test-BynlX0JE.js +136 -0
  183. package/bundled-test-harness/assets/get-user-system-card-test-D98Xxn1k.js +52 -0
  184. package/bundled-test-harness/assets/gif-image-def-test-FwKGFGWw.js +161 -0
  185. package/bundled-test-harness/assets/gitGraph-WXDBUCRP-Bmn0Z_Xi.js +3 -0
  186. package/bundled-test-harness/assets/gitGraphDiagram-PVQCEYII-BAo0G82W.js +1150 -0
  187. package/bundled-test-harness/assets/gts-file-def-test-ivEk8Muv.js +99 -0
  188. package/bundled-test-harness/assets/head-format-preview-test-CNhvk724.js +156 -0
  189. package/bundled-test-harness/assets/helpers-BH4Yfo_2.js +5 -0
  190. package/bundled-test-harness/assets/host-mode-test-BRNndb2h.js +391 -0
  191. package/bundled-test-harness/assets/host-submode-test-DHd0x-6x.js +904 -0
  192. package/bundled-test-harness/assets/index-query-engine-test-7Fzc09fG.js +2548 -0
  193. package/bundled-test-harness/assets/index-writer-test-D3cL2q2N.js +1842 -0
  194. package/bundled-test-harness/assets/indexeddb-crypto-store-C09Shau-.js +49434 -0
  195. package/bundled-test-harness/assets/info-J43DQDTF-Dz5b1Xgc.js +3 -0
  196. package/bundled-test-harness/assets/infoDiagram-5YYISTIA-Dl8XvIfi.js +23 -0
  197. package/bundled-test-harness/assets/inspector-test-CVZVQdIJ.js +1776 -0
  198. package/bundled-test-harness/assets/instance-filter-matcher-test-C-4z6qUt.js +564 -0
  199. package/bundled-test-harness/assets/instantiate-card-test-eQ22Vt_m.js +104 -0
  200. package/bundled-test-harness/assets/interact-submode-creation-and-permissions-test-hXPsRPMU.js +497 -0
  201. package/bundled-test-harness/assets/interact-submode-setup-D55IIVc5.js +558 -0
  202. package/bundled-test-harness/assets/interact-submode-test-BwrtFe2m.js +725 -0
  203. package/bundled-test-harness/assets/invalidate-realm-identifiers-test-BMk7yd-D.js +101 -0
  204. package/bundled-test-harness/assets/invite-user-to-room-test-B5B0umJQ.js +67 -0
  205. package/bundled-test-harness/assets/ishikawaDiagram-YF4QCWOH-BrO7NAng.js +1009 -0
  206. package/bundled-test-harness/assets/isolated-render-test-DX1wdHoS.js +51 -0
  207. package/bundled-test-harness/assets/item-button-QkVr-FW0.js +203 -0
  208. package/bundled-test-harness/assets/javascript-BWNQhcCY.js +75 -0
  209. package/bundled-test-harness/assets/job-priority-header-test-CuBZloLK.js +81 -0
  210. package/bundled-test-harness/assets/journeyDiagram-JHISSGLW-B7BT66v0.js +1256 -0
  211. package/bundled-test-harness/assets/jpg-image-def-test-DEx462nY.js +430 -0
  212. package/bundled-test-harness/assets/json-file-def-test-Cray6ly6.js +92 -0
  213. package/bundled-test-harness/assets/kanban-definition-UN3LZRKU-C0E5Vmr_.js +1284 -0
  214. package/bundled-test-harness/assets/last-modified-date-test-BzE25NOB.js +18 -0
  215. package/bundled-test-harness/assets/limited-set-test-NwGNoXKc.js +123 -0
  216. package/bundled-test-harness/assets/line-BbGOk93s.js +55 -0
  217. package/bundled-test-harness/assets/linear-CHTo-YQl.js +417 -0
  218. package/bundled-test-harness/assets/linksto-broken-link-placeholder-test-CZdgRM1b.js +315 -0
  219. package/bundled-test-harness/assets/linksto-error-sentinel-test-DhsHO7Xs.js +236 -0
  220. package/bundled-test-harness/assets/linksto-many-broken-link-placeholder-test-mt-RrRta.js +303 -0
  221. package/bundled-test-harness/assets/linksto-many-per-slot-access-test-CdGUXZsi.js +301 -0
  222. package/bundled-test-harness/assets/linksto-sentinel-roundtrip-test-DOJ_6Gwf.js +258 -0
  223. package/bundled-test-harness/assets/linksto-singular-js-access-contract-test-BZC-gslF.js +194 -0
  224. package/bundled-test-harness/assets/live-prerendered-search-BSkwf5AH.js +639 -0
  225. package/bundled-test-harness/assets/live-test-DTfxZnsy.js +100 -0
  226. package/bundled-test-harness/assets/live-test-WOMYpc1I.js +2 -0
  227. package/bundled-test-harness/assets/loader-icon-error-test-F_ukQytn.js +62 -0
  228. package/bundled-test-harness/assets/loader-parallel-prefetch-test-DpNaFnhc.js +257 -0
  229. package/bundled-test-harness/assets/loader-retry-test-EQ2X0bFS.js +173 -0
  230. package/bundled-test-harness/assets/loader-test-BYkWAwc4.js +245 -0
  231. package/bundled-test-harness/assets/loading-test-jfWH_OpH.js +63 -0
  232. package/bundled-test-harness/assets/login-error-text-test-Cldr1X6h.js +51 -0
  233. package/bundled-test-harness/assets/m4a-audio-def-test-BQ1WKApD.js +185 -0
  234. package/bundled-test-harness/assets/main-ByAsLO_g.js +5 -0
  235. package/bundled-test-harness/assets/markdown-fallback-test-dtTaGP1s.js +316 -0
  236. package/bundled-test-harness/assets/markdown-file-def-test-shW9Xxd1.js +286 -0
  237. package/bundled-test-harness/assets/markdown-helpers-test-B6H7p4ay.js +183 -0
  238. package/bundled-test-harness/assets/markdown-highlighting-test-ZIrFNHRe.js +244 -0
  239. package/bundled-test-harness/assets/markdown-preview-KII3nJ2M.js +69 -0
  240. package/bundled-test-harness/assets/markdown-preview-test-De-IaUbK.js +237 -0
  241. package/bundled-test-harness/assets/marked-sync-CGSehq4u.js +2 -0
  242. package/bundled-test-harness/assets/marked-sync-DenC7QgC.js +2561 -0
  243. package/bundled-test-harness/assets/marked-sync-test-jZBr20Hq.js +146 -0
  244. package/bundled-test-harness/assets/matrix-service-sliding-sync-test-Ax4kyAMt.js +33 -0
  245. package/bundled-test-harness/assets/mermaid-parser.core-B_3tzKUl.js +114 -0
  246. package/bundled-test-harness/assets/mermaid.core-D2hqA7Hq.js +1700 -0
  247. package/bundled-test-harness/assets/message-service-subscription-test-B42KnJ91.js +113 -0
  248. package/bundled-test-harness/assets/mindmap-definition-RKZ34NQL-IZz7Qpd0.js +1347 -0
  249. package/bundled-test-harness/assets/mock-matrix-BhFWlMMr.js +14292 -0
  250. package/bundled-test-harness/assets/mock-matrix-CrtMntcN.js +2 -0
  251. package/bundled-test-harness/assets/module-transpile-cache-test-BtWN4OiM.js +66 -0
  252. package/bundled-test-harness/assets/monaco.contribution-B1hOUP3w.js +2 -0
  253. package/bundled-test-harness/assets/monaco.contribution-DhNsYtZe.js +2 -0
  254. package/bundled-test-harness/assets/monaco.contribution-DvJDImx2.js +103 -0
  255. package/bundled-test-harness/assets/monaco.contribution-yXcOyzue.js +243 -0
  256. package/bundled-test-harness/assets/mp3-audio-def-test-D365TuA7.js +129 -0
  257. package/bundled-test-harness/assets/mutex-test-DY09HLvv.js +71 -0
  258. package/bundled-test-harness/assets/number-field-test-wYaQjnzA.js +153 -0
  259. package/bundled-test-harness/assets/ogg-audio-def-test-Dl01PP31.js +191 -0
  260. package/bundled-test-harness/assets/open-create-listing-modal-test-D8C2PUFv.js +117 -0
  261. package/bundled-test-harness/assets/open-workspace-test-DN2n8IkC.js +48 -0
  262. package/bundled-test-harness/assets/operator-mode-acceptance-test-B_hzJZo4.js +1044 -0
  263. package/bundled-test-harness/assets/operator-mode-card-catalog-test-Hrrnkdt9.js +989 -0
  264. package/bundled-test-harness/assets/operator-mode-links-test-DC6sc9TZ.js +797 -0
  265. package/bundled-test-harness/assets/operator-mode-state-service-test-Aqz9_v0U.js +122 -0
  266. package/bundled-test-harness/assets/operator-mode-test-CLgpZGEM.js +617 -0
  267. package/bundled-test-harness/assets/operator-mode-ui-test-CDRrORfC.js +985 -0
  268. package/bundled-test-harness/assets/ordinal-BIRuJQBH.js +85 -0
  269. package/bundled-test-harness/assets/overlay-menu-items-test-of24KuXp.js +316 -0
  270. package/bundled-test-harness/assets/packet-YPE3B663-hs92geQG.js +3 -0
  271. package/bundled-test-harness/assets/panel-rIdTMDfK.js +3371 -0
  272. package/bundled-test-harness/assets/past-sessions-test-ZKr4ACF0.js +321 -0
  273. package/bundled-test-harness/assets/patch-code-test-BZa-Itrt.js +203 -0
  274. package/bundled-test-harness/assets/patch-fields-test-BkaHs-zo.js +992 -0
  275. package/bundled-test-harness/assets/patch-instance-test-CRMgg52p.js +287 -0
  276. package/bundled-test-harness/assets/persist-module-inspector-view-test-CqNy2RXR.js +62 -0
  277. package/bundled-test-harness/assets/phone-number-field-test-CV6gntON.js +72 -0
  278. package/bundled-test-harness/assets/pie-LRSECV5Y-DcM5pWE3.js +3 -0
  279. package/bundled-test-harness/assets/pieDiagram-4H26LBE5-CtO8RHpU.js +253 -0
  280. package/bundled-test-harness/assets/plan-install-test-lfBTuWXU.js +417 -0
  281. package/bundled-test-harness/assets/playground-VscW9KdT.js +57 -0
  282. package/bundled-test-harness/assets/png-image-def-test-CRspcIHP.js +222 -0
  283. package/bundled-test-harness/assets/prerender-file-extract-test-D3SpxfMI.js +176 -0
  284. package/bundled-test-harness/assets/prerender-html-test-WWptGXJ0.js +615 -0
  285. package/bundled-test-harness/assets/prerender-meta-test-DwQEGN6j.js +388 -0
  286. package/bundled-test-harness/assets/prerender-module-test-BM1AOwRF.js +195 -0
  287. package/bundled-test-harness/assets/prerendered-card-search-test-BVJ8IHLe.js +708 -0
  288. package/bundled-test-harness/assets/preview-format-test-DDpiXDN_.js +103 -0
  289. package/bundled-test-harness/assets/preview-test-D2UV1C5D.js +455 -0
  290. package/bundled-test-harness/assets/published-realm-url-DUIZzAJ5.js +52 -0
  291. package/bundled-test-harness/assets/published-realm-url-test-CIgSf4Ub.js +137 -0
  292. package/bundled-test-harness/assets/qs-test-Bi679H5w.js +36 -0
  293. package/bundled-test-harness/assets/quadrantDiagram-W4KKPZXB-GOTAKsCo.js +2324 -0
  294. package/bundled-test-harness/assets/query-field-barrier-test-BlOuVxdS.js +118 -0
  295. package/bundled-test-harness/assets/query-field-error-sentinel-test-BsB76iUQ.js +202 -0
  296. package/bundled-test-harness/assets/query-field-normalization-test-B2YodJCr.js +271 -0
  297. package/bundled-test-harness/assets/query-field-schema-test-CQhJASFx.js +231 -0
  298. package/bundled-test-harness/assets/query-fields-test-CaZ19leM.js +535 -0
  299. package/bundled-test-harness/assets/queue-test-DrSip6mJ.js +216 -0
  300. package/bundled-test-harness/assets/radar-GUYGQ44K-BkAe1nkp.js +3 -0
  301. package/bundled-test-harness/assets/read-card-for-ai-assistant-test-D8yB-OL9.js +91 -0
  302. package/bundled-test-harness/assets/read-file-for-ai-assistant-test-K3M0-lBD.js +45 -0
  303. package/bundled-test-harness/assets/read-source-test-CKlb0ORb.js +67 -0
  304. package/bundled-test-harness/assets/read-text-file-test-CJdasDDU.js +124 -0
  305. package/bundled-test-harness/assets/realm-DhUCLR5r.js +884 -0
  306. package/bundled-test-harness/assets/realm-field-test-kFgxphDI.js +101 -0
  307. package/bundled-test-harness/assets/realm-index-card-id-test-DAnMAqw4.js +18 -0
  308. package/bundled-test-harness/assets/realm-indexing-test-BQkX-Dat.js +4018 -0
  309. package/bundled-test-harness/assets/realm-paths-test-CmEi9rzu.js +33 -0
  310. package/bundled-test-harness/assets/realm-querying-test-eq3qSXLu.js +1062 -0
  311. package/bundled-test-harness/assets/realm-test-DLQAtdMt.js +2409 -0
  312. package/bundled-test-harness/assets/reasoning-test-CwTfyDlj.js +234 -0
  313. package/bundled-test-harness/assets/recent-files-test-MVIGLp8S.js +449 -0
  314. package/bundled-test-harness/assets/reindex-realm-test-BwLgJeB3.js +119 -0
  315. package/bundled-test-harness/assets/relationship-loading-state-test-B4Ca43yD.js +289 -0
  316. package/bundled-test-harness/assets/render-component-BKEihV4U.js +2 -0
  317. package/bundled-test-harness/assets/render-error-test-DWD6tfNe.js +22 -0
  318. package/bundled-test-harness/assets/render-service-test-BjuoVrUK.js +87 -0
  319. package/bundled-test-harness/assets/render-timer-stub-test-BgUY5u3X.js +84 -0
  320. package/bundled-test-harness/assets/rendered-markdown-DOP-s6fW.js +211 -0
  321. package/bundled-test-harness/assets/rendered-markdown-test-CD02UYwA.js +360 -0
  322. package/bundled-test-harness/assets/requirementDiagram-4Y6WPE33-DJIy7eR9.js +2550 -0
  323. package/bundled-test-harness/assets/rich-markdown-field-test-BJeQx1tL.js +806 -0
  324. package/bundled-test-harness/assets/room-message-test-CjD7FlPD.js +171 -0
  325. package/bundled-test-harness/assets/rust-crypto-GS0FFZ7H.js +16141 -0
  326. package/bundled-test-harness/assets/sanitize-module-list-test-gi0pcqSy.js +68 -0
  327. package/bundled-test-harness/assets/sankeyDiagram-5OEKKPKP-wBsbt1Mr.js +1357 -0
  328. package/bundled-test-harness/assets/schema-editor-test-BSqu8W3e.js +784 -0
  329. package/bundled-test-harness/assets/schema-generation-test-DVFuSsLl.js +28 -0
  330. package/bundled-test-harness/assets/scrolling-test-CpzkRiBS.js +292 -0
  331. package/bundled-test-harness/assets/search-and-choose-test-DVWX4XRb.js +156 -0
  332. package/bundled-test-harness/assets/search-cache-key-test-BMnYM4a5.js +79 -0
  333. package/bundled-test-harness/assets/search-command-test-kEfT0AO7.js +135 -0
  334. package/bundled-test-harness/assets/search-correlation-id-test-D08FtVUZ.js +101 -0
  335. package/bundled-test-harness/assets/search-data-test-CTrBEc1m.js +243 -0
  336. package/bundled-test-harness/assets/search-google-images-test-UnKG8qCp.js +168 -0
  337. package/bundled-test-harness/assets/search-in-flight-key-test-9Va-JXFz.js +79 -0
  338. package/bundled-test-harness/assets/search-test-COlO2lZi.js +847 -0
  339. package/bundled-test-harness/assets/send-ai-assistant-message-test-BPjOjt2R.js +52 -0
  340. package/bundled-test-harness/assets/send-bot-trigger-event-test-BB4lHbB_.js +56 -0
  341. package/bundled-test-harness/assets/send-request-via-proxy-test-U8frmHZA.js +333 -0
  342. package/bundled-test-harness/assets/sending-test-DjEzksEX.js +317 -0
  343. package/bundled-test-harness/assets/sequenceDiagram-3UESZ5HK-QAEjhoay.js +5551 -0
  344. package/bundled-test-harness/assets/serialization-test-DHdLriC8.js +8283 -0
  345. package/bundled-test-harness/assets/set-user-system-card-test-C8I1lDBh.js +59 -0
  346. package/bundled-test-harness/assets/setup-BkuybBki.js +769 -0
  347. package/bundled-test-harness/assets/setup-gxkWJKID.js +2 -0
  348. package/bundled-test-harness/assets/show-card-test-DHKQ6AI4.js +362 -0
  349. package/bundled-test-harness/assets/skills-test-DlMgZrPV.js +568 -0
  350. package/bundled-test-harness/assets/spec-test-s9Zj7x2E.js +1012 -0
  351. package/bundled-test-harness/assets/stateDiagram-AJRCARHV-nEhf3efZ.js +363 -0
  352. package/bundled-test-harness/assets/stateDiagram-v2-BHNVJYJU-tZz_3w-7.js +29 -0
  353. package/bundled-test-harness/assets/store-add-test-D44FWRl3.js +52 -0
  354. package/bundled-test-harness/assets/store-test-TTmNBs5v.js +1562 -0
  355. package/bundled-test-harness/assets/summarize-session-test-DHAuNb5K.js +169 -0
  356. package/bundled-test-harness/assets/svg-image-def-test-C2_GGzR6.js +164 -0
  357. package/bundled-test-harness/assets/switch-submode-test-CfGaoxVe.js +168 -0
  358. package/bundled-test-harness/assets/test-realm-service-worker-C21o7yvW.js +73 -0
  359. package/bundled-test-harness/assets/tests-BSt6h9iC.js +2771 -0
  360. package/bundled-test-harness/assets/text-file-def-test-CR4QO7e_.js +93 -0
  361. package/bundled-test-harness/assets/text-input-validator-test-DYS3mFj9.js +155 -0
  362. package/bundled-test-harness/assets/text-suggestion-test-GUxJ7WtF.js +339 -0
  363. package/bundled-test-harness/assets/theme-card-test-Ba2KqFB8.js +573 -0
  364. package/bundled-test-harness/assets/timeline-definition-PNZ67QCA-BQYyTIei.js +1545 -0
  365. package/bundled-test-harness/assets/transform-cards-test-DyA8eCom.js +341 -0
  366. package/bundled-test-harness/assets/treeView-BLDUP644-Z4ezSvef.js +3 -0
  367. package/bundled-test-harness/assets/treemap-LRROVOQU-Bf5rk_He.js +3 -0
  368. package/bundled-test-harness/assets/ts-file-def-test-Cxnc6H74.js +90 -0
  369. package/bundled-test-harness/assets/tsMode-oJEHe-CR.js +968 -0
  370. package/bundled-test-harness/assets/typescript-DLbb7q56.js +2 -0
  371. package/bundled-test-harness/assets/update-room-skills-test-B7VLHU3-.js +197 -0
  372. package/bundled-test-harness/assets/url-test-w-69Zycf.js +103 -0
  373. package/bundled-test-harness/assets/use-ai-assistant-test-DJkFz7_b.js +330 -0
  374. package/bundled-test-harness/assets/validate-realm-test-BioLutB8.js +53 -0
  375. package/bundled-test-harness/assets/vennDiagram-CIIHVFJN-9eLwsQET.js +2833 -0
  376. package/bundled-test-harness/assets/wardley-L42UT6IY-qNP5_917.js +3 -0
  377. package/bundled-test-harness/assets/wardleyDiagram-YWT4CUSO-DZhEm4N4.js +872 -0
  378. package/bundled-test-harness/assets/wav-audio-def-test-DqsTEBw8.js +155 -0
  379. package/bundled-test-harness/assets/webp-image-def-test-23wOLPMu.js +225 -0
  380. package/bundled-test-harness/assets/workspace-chooser-delete-test-Q6S_nGDT.js +189 -0
  381. package/bundled-test-harness/assets/workspace-chooser-test-CzsvY1v_.js +235 -0
  382. package/bundled-test-harness/assets/workspace-delete-multiple-test-BNFHkJpQ.js +213 -0
  383. package/bundled-test-harness/assets/workspace-delete-summary-test-DLzNdjvC.js +63 -0
  384. package/bundled-test-harness/assets/write-binary-file-test-PHHt9fVI.js +100 -0
  385. package/bundled-test-harness/assets/write-text-file-test-DuHe6tR5.js +172 -0
  386. package/bundled-test-harness/assets/xychartDiagram-2RQKCTM6-bflHQbEv.js +2551 -0
  387. package/bundled-test-harness/index.html +24 -23
  388. package/bundled-test-harness/tests/index.html +31 -30
  389. package/bundled-types/base/command.d.ts +48 -0
  390. package/bundled-types/host-app/components/operator-mode/publish-realm-modal.gts +17 -26
  391. package/bundled-types/host-app/lib/published-realm-url.ts +135 -0
  392. package/package.json +2 -2
  393. package/src/build-program.ts +12 -12
  394. package/src/commands/consolidate-workspaces.ts +1 -1
  395. package/src/commands/file/delete.ts +4 -4
  396. package/src/commands/file/index.ts +6 -6
  397. package/src/commands/file/lint.ts +4 -4
  398. package/src/commands/file/list.ts +3 -3
  399. package/src/commands/file/read.ts +3 -3
  400. package/src/commands/file/touch.ts +6 -6
  401. package/src/commands/file/write.ts +3 -3
  402. package/src/commands/lint.ts +6 -6
  403. package/src/commands/parse.ts +6 -6
  404. package/src/commands/profile.ts +4 -4
  405. package/src/commands/read-transpiled.ts +6 -3
  406. package/src/commands/realm/cancel-indexing.ts +3 -3
  407. package/src/commands/realm/create.ts +2 -2
  408. package/src/commands/realm/history.ts +4 -4
  409. package/src/commands/realm/index.ts +15 -15
  410. package/src/commands/realm/indexing-errors.ts +3 -3
  411. package/src/commands/realm/list.ts +2 -2
  412. package/src/commands/realm/milestone.ts +4 -4
  413. package/src/commands/realm/publish.ts +4 -4
  414. package/src/commands/realm/pull.ts +6 -6
  415. package/src/commands/realm/push.ts +7 -7
  416. package/src/commands/realm/remove.ts +3 -3
  417. package/src/commands/realm/status.ts +8 -8
  418. package/src/commands/realm/sync.ts +9 -9
  419. package/src/commands/realm/unpublish.ts +3 -3
  420. package/src/commands/realm/wait-for-ready.ts +2 -2
  421. package/src/commands/realm/watch/index.ts +2 -2
  422. package/src/commands/realm/watch/start.ts +13 -10
  423. package/src/commands/realm/watch/stop.ts +2 -2
  424. package/src/commands/run-command.ts +6 -3
  425. package/src/commands/search.ts +3 -3
  426. package/src/commands/test.ts +5 -5
  427. package/src/index.ts +2 -2
  428. package/src/lib/auth-resolver.ts +3 -3
  429. package/src/lib/boxel-cli-client.ts +18 -15
  430. package/src/lib/checkpoint-manager.ts +1 -1
  431. package/src/lib/find-checkpoint.ts +1 -1
  432. package/src/lib/profile-manager.ts +4 -4
  433. package/src/lib/realm-local-paths.ts +1 -1
  434. package/src/lib/realm-sync-base.ts +1 -1
  435. package/src/lib/seed-auth.ts +1 -1
  436. package/src/lib/sync-logic.ts +1 -1
  437. package/src/lib/watch-process-registry.ts +1 -1
  438. package/bundled-test-harness/assets/adapter-C8oDflNN.js +0 -2
  439. package/bundled-test-harness/assets/add-field-to-card-definition-command-test-Cs670972.js +0 -111
  440. package/bundled-test-harness/assets/add-workspace-test-BviDAUBK.js +0 -71
  441. package/bundled-test-harness/assets/ai-assistant-B5fp2iOz.js +0 -129
  442. package/bundled-test-harness/assets/ai-assistant-panel-service-test-NpHZzZAz.js +0 -95
  443. package/bundled-test-harness/assets/ai-assistant-test-jPV29jEw.js +0 -2137
  444. package/bundled-test-harness/assets/ai-function-generation-test-QRPcE9tQ.js +0 -996
  445. package/bundled-test-harness/assets/ai-module-creation-test-DyuyfnkY.js +0 -150
  446. package/bundled-test-harness/assets/aibot-message-Dwxp5hTW.js +0 -1185
  447. package/bundled-test-harness/assets/amd-transpile-test-CF7Lkbif.js +0 -425
  448. package/bundled-test-harness/assets/app-CgP2IpNG.js +0 -21464
  449. package/bundled-test-harness/assets/apply-boxel-formatting-test-BXyZ3z0I.js +0 -134
  450. package/bundled-test-harness/assets/apply-markdown-edit-test-C6bcaj3a.js +0 -230
  451. package/bundled-test-harness/assets/apply-search-replace-block-test-BSwC4J9g.js +0 -630
  452. package/bundled-test-harness/assets/arc-DNRb_8LA.js +0 -199
  453. package/bundled-test-harness/assets/architecture-7EHR7CIX-BtVh_LBJ.js +0 -3
  454. package/bundled-test-harness/assets/architectureDiagram-3BPJPVTR-D9UYbaKj.js +0 -7400
  455. package/bundled-test-harness/assets/auth-error-guard-test-Bvu8E7Wy.js +0 -30
  456. package/bundled-test-harness/assets/auth-service-worker-test-CC6DzdfK.js +0 -538
  457. package/bundled-test-harness/assets/authed-fetch-test-CfF-IBHI.js +0 -75
  458. package/bundled-test-harness/assets/avif-image-def-test-B9L2z0nR.js +0 -186
  459. package/bundled-test-harness/assets/base-realm-43wjttN2.js +0 -140
  460. package/bundled-test-harness/assets/base-realm-CJ5x9iyX.js +0 -2
  461. package/bundled-test-harness/assets/basic-test-B64a5zCK.js +0 -128
  462. package/bundled-test-harness/assets/bfm-card-references-test-cLQVLpth.js +0 -577
  463. package/bundled-test-harness/assets/binary-upload-dedupe-test-By7Y1iQ3.js +0 -308
  464. package/bundled-test-harness/assets/blockDiagram-GPEHLZMM-LgOorG2O.js +0 -4355
  465. package/bundled-test-harness/assets/bot-registration-test-DOjf0P1R.js +0 -99
  466. package/bundled-test-harness/assets/box-test-Cd1-RcXg.js +0 -51
  467. package/bundled-test-harness/assets/brand-guide-attachments-test-DxRqP8fo.js +0 -87
  468. package/bundled-test-harness/assets/brand-guide-custom-css-test-DBpZiHzJ.js +0 -135
  469. package/bundled-test-harness/assets/brand-logo-mark-field-test-61k4e5Om.js +0 -87
  470. package/bundled-test-harness/assets/broken-link-template-test-A1P4flQ5.js +0 -345
  471. package/bundled-test-harness/assets/browser-index-Bzhpucwe.js +0 -3
  472. package/bundled-test-harness/assets/browser-index-D0mzSWYV.js +0 -8802
  473. package/bundled-test-harness/assets/c4Diagram-AAUBKEIU-1iq94vGa.js +0 -3764
  474. package/bundled-test-harness/assets/cached-fetch-test-ByQ-5OQI.js +0 -93
  475. package/bundled-test-harness/assets/can-read-realm-test-VFLHJdEv.js +0 -58
  476. package/bundled-test-harness/assets/cancel-indexing-job-test-n3Os4ZaX.js +0 -71
  477. package/bundled-test-harness/assets/card-api-test-DvNfLv3V.js +0 -196
  478. package/bundled-test-harness/assets/card-basics-test-CKzZuFdw.js +0 -4895
  479. package/bundled-test-harness/assets/card-catalog-test-JFvkVHED.js +0 -377
  480. package/bundled-test-harness/assets/card-copy-test-iwrFA72s.js +0 -777
  481. package/bundled-test-harness/assets/card-def-field-def-relationships-test-D5s2RH5t.js +0 -560
  482. package/bundled-test-harness/assets/card-def-menu-items-test-XcmkT4NF.js +0 -182
  483. package/bundled-test-harness/assets/card-delete-test-jtAOHk1Y.js +0 -412
  484. package/bundled-test-harness/assets/card-directory-name-test-veQEp5FJ.js +0 -71
  485. package/bundled-test-harness/assets/card-playground-test-P7Ed0tO4.js +0 -1497
  486. package/bundled-test-harness/assets/card-prerender-DXG8cQEv.js +0 -12661
  487. package/bundled-test-harness/assets/card-search-adorn-test-BX0-IJHB.js +0 -128
  488. package/bundled-test-harness/assets/card-search-query-builder-test-D01uixke.js +0 -88
  489. package/bundled-test-harness/assets/card-search-selection-menu-test-DMTeZFmW.js +0 -108
  490. package/bundled-test-harness/assets/channel-BvoW_rbI.js +0 -8
  491. package/bundled-test-harness/assets/check-correctness-test-D7QB1GTo.js +0 -252
  492. package/bundled-test-harness/assets/chunk-2J33WTMH-BbxCvOlt.js +0 -31
  493. package/bundled-test-harness/assets/chunk-3OPIFGDE-DHY3s0oT.js +0 -5548
  494. package/bundled-test-harness/assets/chunk-4BX2VUAB-CRivrLQ6.js +0 -11
  495. package/bundled-test-harness/assets/chunk-4EGX6M5U-qWzlMeqd.js +0 -44
  496. package/bundled-test-harness/assets/chunk-55IACEB6-DOl6NECJ.js +0 -10
  497. package/bundled-test-harness/assets/chunk-5DO6E6H7-scwNnzDb.js +0 -27
  498. package/bundled-test-harness/assets/chunk-5ZQYHXKU-BeETnugr.js +0 -1767
  499. package/bundled-test-harness/assets/chunk-727SXJPM-BlycTxFE.js +0 -3877
  500. package/bundled-test-harness/assets/chunk-AQP2D5EJ-BE3Clw-g.js +0 -2622
  501. package/bundled-test-harness/assets/chunk-BR22UD5L-BTPKlhWA.js +0 -85
  502. package/bundled-test-harness/assets/chunk-BSJP7CBP-BIhtUfvc.js +0 -114
  503. package/bundled-test-harness/assets/chunk-CSCIHK7Q-DnRAp6Bv.js +0 -6144
  504. package/bundled-test-harness/assets/chunk-FHYWG6QK-DpIXIGDC.js +0 -27
  505. package/bundled-test-harness/assets/chunk-FMBD7UC4-B36w3LIg.js +0 -20
  506. package/bundled-test-harness/assets/chunk-KSCS5N6A-gbz9p9BU.js +0 -871
  507. package/bundled-test-harness/assets/chunk-L5ZTLDWV-HNfH9U8K.js +0 -43
  508. package/bundled-test-harness/assets/chunk-LZXEDZCA-CbKHJfzx.js +0 -65
  509. package/bundled-test-harness/assets/chunk-MPE355IW-BGVbCTZH.js +0 -27
  510. package/bundled-test-harness/assets/chunk-MZUSXYTE-DoCjuxcJ.js +0 -36
  511. package/bundled-test-harness/assets/chunk-N66VUXT2-BX17MI-i.js +0 -70
  512. package/bundled-test-harness/assets/chunk-ND2GUHAM-IpeiJZYz.js +0 -93
  513. package/bundled-test-harness/assets/chunk-NZK2D7GU-CH-Gg7qc.js +0 -89
  514. package/bundled-test-harness/assets/chunk-O5CBEL6O-D2JbLgI8.js +0 -2395
  515. package/bundled-test-harness/assets/chunk-PUPMXCY4-DS4ZxM2V.js +0 -27
  516. package/bundled-test-harness/assets/chunk-QZHKN3VN-WLHeRUJ3.js +0 -20
  517. package/bundled-test-harness/assets/chunk-UIBZB4QT-DNIJBpkq.js +0 -27
  518. package/bundled-test-harness/assets/chunk-WCWK7LTN-CqRJ3WOy.js +0 -36
  519. package/bundled-test-harness/assets/chunk-WU5MYG2G-CtItCLbE.js +0 -12
  520. package/bundled-test-harness/assets/chunk-XPW4576I-D2Q7Qo8n.js +0 -2341
  521. package/bundled-test-harness/assets/classDiagram-4FO5ZUOK-CnNFReKQ.js +0 -31
  522. package/bundled-test-harness/assets/classDiagram-v2-Q7XG4LA2-BlhpbohY.js +0 -31
  523. package/bundled-test-harness/assets/code-equality-assertion-C-2g5YGf.js +0 -474
  524. package/bundled-test-harness/assets/code-patches-test-DaV4Mon_.js +0 -1128
  525. package/bundled-test-harness/assets/code-patching-test-CcbWlImN.js +0 -114
  526. package/bundled-test-harness/assets/code-ref-test-8Yj8gbww.js +0 -138
  527. package/bundled-test-harness/assets/code-semantics-service-test-C3srTfDz.js +0 -65
  528. package/bundled-test-harness/assets/code-submode-test-BUhjvWtB.js +0 -1762
  529. package/bundled-test-harness/assets/codeblocks-test-3zAp0_GA.js +0 -492
  530. package/bundled-test-harness/assets/codemirror-context-C7KmSAyy.js +0 -2
  531. package/bundled-test-harness/assets/codemirror-editor-test-WojU4k2h.js +0 -1176
  532. package/bundled-test-harness/assets/color-field-test-yESUakoE.js +0 -213
  533. package/bundled-test-harness/assets/command-definitions-test-UsXsAhn7.js +0 -72
  534. package/bundled-test-harness/assets/commands-CBDBujm_.js +0 -1379
  535. package/bundled-test-harness/assets/commands-calling-test-DJTl0EbL.js +0 -200
  536. package/bundled-test-harness/assets/commands-test-DW2gupNS.js +0 -1041
  537. package/bundled-test-harness/assets/commands-test-DjLnuojW.js +0 -1145
  538. package/bundled-test-harness/assets/computed-test-0n5g8Ez5.js +0 -882
  539. package/bundled-test-harness/assets/container-D8y7fmir.js +0 -14602
  540. package/bundled-test-harness/assets/convert-to-class-name-test-DSIflIV2.js +0 -17
  541. package/bundled-test-harness/assets/copy-and-edit-test-BuK1ZHr-.js +0 -291
  542. package/bundled-test-harness/assets/copy-card-test-DnDC4_7J.js +0 -156
  543. package/bundled-test-harness/assets/copy-file-to-realm-test-CFd_3Iff.js +0 -99
  544. package/bundled-test-harness/assets/copy-source-test-38yUGJor.js +0 -56
  545. package/bundled-test-harness/assets/cose-bilkent-S5V4N54A-DXA1S87S.js +0 -4275
  546. package/bundled-test-harness/assets/create-file-test-B2oem0-V.js +0 -963
  547. package/bundled-test-harness/assets/create-file-test-BHk00RtD.js +0 -397
  548. package/bundled-test-harness/assets/create-listing-modal-test-L-71-Uo2.js +0 -194
  549. package/bundled-test-harness/assets/create-listing-pr-request-CZaLsHhE.js +0 -64
  550. package/bundled-test-harness/assets/create-listing-pr-request-test-OGzk4Q2E.js +0 -117
  551. package/bundled-test-harness/assets/create-spec-test-BsM7VKuH.js +0 -239
  552. package/bundled-test-harness/assets/csv-file-def-test-BhJalhE-.js +0 -101
  553. package/bundled-test-harness/assets/dagre-BIk_r1iU.js +0 -4195
  554. package/bundled-test-harness/assets/dagre-BM42HDAG-FaUWeGOj.js +0 -606
  555. package/bundled-test-harness/assets/date-time-fields-test-Cs5T6Xk1.js +0 -322
  556. package/bundled-test-harness/assets/debug-message-test-WlHe7pJF.js +0 -119
  557. package/bundled-test-harness/assets/diagram-2AECGRRQ-DLve-IVM.js +0 -279
  558. package/bundled-test-harness/assets/diagram-5GNKFQAL-CJG1RTLk.js +0 -142
  559. package/bundled-test-harness/assets/diagram-KO2AKTUF-DYGDq3dD.js +0 -551
  560. package/bundled-test-harness/assets/diagram-LMA3HP47-BNRYdpMl.js +0 -184
  561. package/bundled-test-harness/assets/diagram-OG6HWLK6-BlJH5g83.js +0 -857
  562. package/bundled-test-harness/assets/diffing-test-DO54USSm.js +0 -210
  563. package/bundled-test-harness/assets/dist-BDRmXkWl.js +0 -232
  564. package/bundled-test-harness/assets/dist-BfNSLd0O.js +0 -105
  565. package/bundled-test-harness/assets/dist-BoireClP.js +0 -2
  566. package/bundled-test-harness/assets/editor-test-DChC9LuR.js +0 -551
  567. package/bundled-test-harness/assets/editor.main-BiohyrHK.js +0 -3
  568. package/bundled-test-harness/assets/editor.main-CMU_0pR1.js +0 -43566
  569. package/bundled-test-harness/assets/email-field-test-DWIFSfZ-.js +0 -74
  570. package/bundled-test-harness/assets/enum-field-test-BUc6l4us.js +0 -909
  571. package/bundled-test-harness/assets/erDiagram-TEJ5UH35-pOJ2novh.js +0 -2041
  572. package/bundled-test-harness/assets/error-display-test-CHSE6h6Z.js +0 -343
  573. package/bundled-test-harness/assets/evaluate-module-test-Caa5n0B9.js +0 -66
  574. package/bundled-test-harness/assets/eventmodeling-FCH6USID-B6XXU7R3.js +0 -3
  575. package/bundled-test-harness/assets/execute-atomic-operations-test-CT060oDk.js +0 -75
  576. package/bundled-test-harness/assets/externals-Do1fVZ4j.js +0 -5533
  577. package/bundled-test-harness/assets/extract-css-variables-test-DzjAsMgg.js +0 -169
  578. package/bundled-test-harness/assets/fallback-banner-test-CmxysrDn.js +0 -227
  579. package/bundled-test-harness/assets/fallback-banner-test-DJ4cO8PB.js +0 -53
  580. package/bundled-test-harness/assets/fallback-models-test-r5upJFeA.js +0 -163
  581. package/bundled-test-harness/assets/fetch-card-json-test-Di1wmvy5.js +0 -63
  582. package/bundled-test-harness/assets/fetcher-test-DjzNl_7F.js +0 -85
  583. package/bundled-test-harness/assets/field-configuration-test-C3vr-HhG.js +0 -535
  584. package/bundled-test-harness/assets/field-markdown-domain-test-DG2U4qIm.js +0 -615
  585. package/bundled-test-harness/assets/field-markdown-primitives-test-Bay2v8nT.js +0 -362
  586. package/bundled-test-harness/assets/field-markdown-specialized-test-Bl0Sl4sc.js +0 -527
  587. package/bundled-test-harness/assets/field-path-parser-test-bxxwUjcm.js +0 -387
  588. package/bundled-test-harness/assets/field-playground-test-Bcjfws4m.js +0 -902
  589. package/bundled-test-harness/assets/field-support-predicates-test-DYTqOGvv.js +0 -170
  590. package/bundled-test-harness/assets/field-test-helpers-DYSfSGdh.js +0 -45
  591. package/bundled-test-harness/assets/file-attachment-test-6ypDRDS7.js +0 -635
  592. package/bundled-test-harness/assets/file-chooser-test-mtmcHTFP.js +0 -439
  593. package/bundled-test-harness/assets/file-def-live-reload-test-CX1-lOv6.js +0 -50
  594. package/bundled-test-harness/assets/file-def-manager-DNHII2oj.js +0 -470
  595. package/bundled-test-harness/assets/file-def-manager-canonicalize-test-i_7UVakF.js +0 -451
  596. package/bundled-test-harness/assets/file-def-menu-items-test-Dw458iku.js +0 -114
  597. package/bundled-test-harness/assets/file-def-navigation-test-B3Ztr1Rd.js +0 -109
  598. package/bundled-test-harness/assets/file-def-serialization-test-C_gV8AkU.js +0 -87
  599. package/bundled-test-harness/assets/file-def-test-vXXJmtxX.js +0 -219
  600. package/bundled-test-harness/assets/file-tree-test-BJCiw9jm.js +0 -773
  601. package/bundled-test-harness/assets/flac-audio-def-test-BX3SE1vW.js +0 -138
  602. package/bundled-test-harness/assets/flowDiagram-I6XJVG4X-7Q5ROn4X.js +0 -4883
  603. package/bundled-test-harness/assets/formatted-aibot-message-test-DyqUz2nt.js +0 -366
  604. package/bundled-test-harness/assets/formatted-user-message-test-aqAzqvBP.js +0 -43
  605. package/bundled-test-harness/assets/freestyle-test-CLRrZkAE.js +0 -17
  606. package/bundled-test-harness/assets/full-reindex-realm-test-ClqPVQ0c.js +0 -103
  607. package/bundled-test-harness/assets/ganttDiagram-6RSMTGT7-BkDoIAAE.js +0 -4060
  608. package/bundled-test-harness/assets/garbage-collection-test-Ba2dD3qS.js +0 -373
  609. package/bundled-test-harness/assets/general-test-D0zhs14K.js +0 -926
  610. package/bundled-test-harness/assets/generate-css-variables-test-CKrXSlHs.js +0 -88
  611. package/bundled-test-harness/assets/generate-example-cards-one-shot-test-fSAdGJeT.js +0 -67
  612. package/bundled-test-harness/assets/get-available-realm-identifiers-test-BXMUW65I.js +0 -49
  613. package/bundled-test-harness/assets/get-catalog-realm-identifiers-test-DKEq6Zcq.js +0 -49
  614. package/bundled-test-harness/assets/get-default-writable-realm-test-Dp4nBIRP.js +0 -56
  615. package/bundled-test-harness/assets/get-realm-of-resource-identifier-test-DYNnMgD-.js +0 -55
  616. package/bundled-test-harness/assets/get-relationship-membership-state-test-k9EUNWeq.js +0 -1306
  617. package/bundled-test-harness/assets/get-type-refs-from-filter-test-BPuivF-v.js +0 -136
  618. package/bundled-test-harness/assets/get-user-system-card-test-DSHv00O7.js +0 -52
  619. package/bundled-test-harness/assets/gif-image-def-test-LuDSr5Kz.js +0 -161
  620. package/bundled-test-harness/assets/gitGraph-WXDBUCRP-BrG_LYEh.js +0 -3
  621. package/bundled-test-harness/assets/gitGraphDiagram-PVQCEYII-QJjQcX4J.js +0 -1150
  622. package/bundled-test-harness/assets/gts-file-def-test-bS3ML062.js +0 -99
  623. package/bundled-test-harness/assets/head-format-preview-test-B8IPh71E.js +0 -156
  624. package/bundled-test-harness/assets/helpers-wSIq-bau.js +0 -5
  625. package/bundled-test-harness/assets/host-mode-test-D44nXoQZ.js +0 -391
  626. package/bundled-test-harness/assets/host-submode-test-CefkXg9F.js +0 -904
  627. package/bundled-test-harness/assets/index-query-engine-test-DJnDqmfK.js +0 -2548
  628. package/bundled-test-harness/assets/index-writer-test-BcrCMj37.js +0 -1842
  629. package/bundled-test-harness/assets/indexeddb-crypto-store-RTTNdynf.js +0 -49434
  630. package/bundled-test-harness/assets/info-J43DQDTF-DhDzvz9k.js +0 -3
  631. package/bundled-test-harness/assets/infoDiagram-5YYISTIA-8TmRFIRz.js +0 -23
  632. package/bundled-test-harness/assets/inspector-test-D4iMBlbL.js +0 -1776
  633. package/bundled-test-harness/assets/instance-filter-matcher-test-CYT6N3hN.js +0 -564
  634. package/bundled-test-harness/assets/instantiate-card-test-j1JS5lDe.js +0 -104
  635. package/bundled-test-harness/assets/interact-submode-creation-and-permissions-test-B-aXzOh6.js +0 -497
  636. package/bundled-test-harness/assets/interact-submode-setup-VMwOUl3u.js +0 -558
  637. package/bundled-test-harness/assets/interact-submode-test-D5lNNXdq.js +0 -725
  638. package/bundled-test-harness/assets/invalidate-realm-identifiers-test-71Ze8eGV.js +0 -101
  639. package/bundled-test-harness/assets/invite-user-to-room-test-UfjsvwVp.js +0 -67
  640. package/bundled-test-harness/assets/ishikawaDiagram-YF4QCWOH-7UALIGwM.js +0 -1009
  641. package/bundled-test-harness/assets/isolated-render-test-C2IL-Fz3.js +0 -51
  642. package/bundled-test-harness/assets/item-button-6g7XYj56.js +0 -203
  643. package/bundled-test-harness/assets/javascript-BwLQ7_Nc.js +0 -75
  644. package/bundled-test-harness/assets/job-priority-header-test-C3FfKLPP.js +0 -81
  645. package/bundled-test-harness/assets/journeyDiagram-JHISSGLW-t4gEZYup.js +0 -1256
  646. package/bundled-test-harness/assets/jpg-image-def-test-BTBk9lk5.js +0 -430
  647. package/bundled-test-harness/assets/json-file-def-test-BpU_Eidn.js +0 -92
  648. package/bundled-test-harness/assets/kanban-definition-UN3LZRKU-C_KHB3_r.js +0 -1284
  649. package/bundled-test-harness/assets/last-modified-date-test-fE7IP0q0.js +0 -18
  650. package/bundled-test-harness/assets/limited-set-test-uu2vX1Sv.js +0 -123
  651. package/bundled-test-harness/assets/line-BiZHXOjs.js +0 -55
  652. package/bundled-test-harness/assets/linear-DUaMMmmA.js +0 -417
  653. package/bundled-test-harness/assets/linksto-broken-link-placeholder-test-qZeqQ1gt.js +0 -315
  654. package/bundled-test-harness/assets/linksto-error-sentinel-test-BaV3I8Xx.js +0 -236
  655. package/bundled-test-harness/assets/linksto-many-broken-link-placeholder-test-BvJi1vCb.js +0 -303
  656. package/bundled-test-harness/assets/linksto-many-per-slot-access-test-CK60Cugk.js +0 -301
  657. package/bundled-test-harness/assets/linksto-sentinel-roundtrip-test-BWxdEO9D.js +0 -258
  658. package/bundled-test-harness/assets/linksto-singular-js-access-contract-test-CIsLhqR2.js +0 -194
  659. package/bundled-test-harness/assets/live-prerendered-search-jZe3I16p.js +0 -639
  660. package/bundled-test-harness/assets/live-test-CF_R5WGr.js +0 -2
  661. package/bundled-test-harness/assets/live-test-jO7lXuyB.js +0 -100
  662. package/bundled-test-harness/assets/loader-icon-error-test-N4JYZuTx.js +0 -62
  663. package/bundled-test-harness/assets/loader-parallel-prefetch-test-DteeG7mU.js +0 -257
  664. package/bundled-test-harness/assets/loader-retry-test-DYVgpS_I.js +0 -173
  665. package/bundled-test-harness/assets/loader-test-DLI8JIx-.js +0 -245
  666. package/bundled-test-harness/assets/loading-test-D4ZBtRYf.js +0 -63
  667. package/bundled-test-harness/assets/login-error-text-test-Dcq7q3EY.js +0 -51
  668. package/bundled-test-harness/assets/m4a-audio-def-test-BKqGO-CW.js +0 -185
  669. package/bundled-test-harness/assets/main-BjBdsiQT.js +0 -5
  670. package/bundled-test-harness/assets/markdown-fallback-test-BBj80dZZ.js +0 -316
  671. package/bundled-test-harness/assets/markdown-file-def-test-BnMF5rQF.js +0 -286
  672. package/bundled-test-harness/assets/markdown-helpers-test-DnuuSLfS.js +0 -183
  673. package/bundled-test-harness/assets/markdown-highlighting-test-CWRp2Rce.js +0 -244
  674. package/bundled-test-harness/assets/markdown-preview-test-Bf5OqKGf.js +0 -237
  675. package/bundled-test-harness/assets/markdown-preview-yYHtwNeI.js +0 -69
  676. package/bundled-test-harness/assets/marked-sync-2EfimW4i.js +0 -2
  677. package/bundled-test-harness/assets/marked-sync-DZOVFLjK.js +0 -2561
  678. package/bundled-test-harness/assets/marked-sync-test-BaaYbZNF.js +0 -146
  679. package/bundled-test-harness/assets/matrix-service-sliding-sync-test-CdEy3ASW.js +0 -33
  680. package/bundled-test-harness/assets/mermaid-parser.core-CKNAdXJW.js +0 -114
  681. package/bundled-test-harness/assets/mermaid.core-C0mfwy8A.js +0 -1700
  682. package/bundled-test-harness/assets/message-service-subscription-test-pGz_7rz3.js +0 -113
  683. package/bundled-test-harness/assets/mindmap-definition-RKZ34NQL-ClcHxkdY.js +0 -1347
  684. package/bundled-test-harness/assets/mock-matrix-D7JHfFtT.js +0 -2
  685. package/bundled-test-harness/assets/mock-matrix-DqDbNhEj.js +0 -14292
  686. package/bundled-test-harness/assets/module-transpile-cache-test-D0M-fPxs.js +0 -66
  687. package/bundled-test-harness/assets/monaco.contribution-BEs3qwfd.js +0 -103
  688. package/bundled-test-harness/assets/monaco.contribution-Dpx8UiPl.js +0 -2
  689. package/bundled-test-harness/assets/monaco.contribution-RF_qxJYG.js +0 -2
  690. package/bundled-test-harness/assets/monaco.contribution-jPVrF29f.js +0 -243
  691. package/bundled-test-harness/assets/mp3-audio-def-test-CxeRk1bl.js +0 -129
  692. package/bundled-test-harness/assets/mutex-test-D1xyxTj2.js +0 -71
  693. package/bundled-test-harness/assets/number-field-test-gjAGDy6P.js +0 -153
  694. package/bundled-test-harness/assets/ogg-audio-def-test-B6Ww3Ixr.js +0 -191
  695. package/bundled-test-harness/assets/open-create-listing-modal-test-uN58T3rI.js +0 -117
  696. package/bundled-test-harness/assets/open-workspace-test-DXVsvBFJ.js +0 -48
  697. package/bundled-test-harness/assets/operator-mode-acceptance-test-BxIq2xSS.js +0 -1044
  698. package/bundled-test-harness/assets/operator-mode-card-catalog-test-xFYx9_ng.js +0 -989
  699. package/bundled-test-harness/assets/operator-mode-links-test-qhXWmz-S.js +0 -797
  700. package/bundled-test-harness/assets/operator-mode-state-service-test-BdA_uvaY.js +0 -122
  701. package/bundled-test-harness/assets/operator-mode-test-D3EyTwq3.js +0 -617
  702. package/bundled-test-harness/assets/operator-mode-ui-test-CSrk6Q0A.js +0 -985
  703. package/bundled-test-harness/assets/ordinal-DO1mUmjg.js +0 -85
  704. package/bundled-test-harness/assets/overlay-menu-items-test-CuqqLsQT.js +0 -316
  705. package/bundled-test-harness/assets/packet-YPE3B663--JkMNy78.js +0 -3
  706. package/bundled-test-harness/assets/panel-C2rtbx32.js +0 -3371
  707. package/bundled-test-harness/assets/past-sessions-test-B9SCbbXz.js +0 -316
  708. package/bundled-test-harness/assets/patch-code-test-CcFr9pDb.js +0 -203
  709. package/bundled-test-harness/assets/patch-fields-test-BW1gzcJM.js +0 -992
  710. package/bundled-test-harness/assets/patch-instance-test-DKqA9gQ6.js +0 -287
  711. package/bundled-test-harness/assets/persist-module-inspector-view-test-D1eKBUkt.js +0 -62
  712. package/bundled-test-harness/assets/phone-number-field-test-D1is5RWv.js +0 -72
  713. package/bundled-test-harness/assets/pie-LRSECV5Y-BDVv8Wdy.js +0 -3
  714. package/bundled-test-harness/assets/pieDiagram-4H26LBE5-CSYI-nMz.js +0 -253
  715. package/bundled-test-harness/assets/plan-install-test-DB-PrjPR.js +0 -417
  716. package/bundled-test-harness/assets/playground-B0iQV7dU.js +0 -57
  717. package/bundled-test-harness/assets/png-image-def-test-DnOsJGs6.js +0 -222
  718. package/bundled-test-harness/assets/prerender-file-extract-test-DhOLozj2.js +0 -176
  719. package/bundled-test-harness/assets/prerender-html-test-DKVhQZA9.js +0 -615
  720. package/bundled-test-harness/assets/prerender-meta-test-CnRNyqSz.js +0 -388
  721. package/bundled-test-harness/assets/prerender-module-test-D163QcrZ.js +0 -195
  722. package/bundled-test-harness/assets/prerendered-card-search-test-DX-8yabJ.js +0 -708
  723. package/bundled-test-harness/assets/preview-format-test-H7bnpdlC.js +0 -103
  724. package/bundled-test-harness/assets/preview-test-B7u6uWJR.js +0 -455
  725. package/bundled-test-harness/assets/qs-test-COb0mre6.js +0 -36
  726. package/bundled-test-harness/assets/quadrantDiagram-W4KKPZXB-2Y2ben29.js +0 -2324
  727. package/bundled-test-harness/assets/query-field-barrier-test-Cypj-MhK.js +0 -118
  728. package/bundled-test-harness/assets/query-field-error-sentinel-test-Dnqn8TdN.js +0 -202
  729. package/bundled-test-harness/assets/query-field-normalization-test-B7D8SHBP.js +0 -271
  730. package/bundled-test-harness/assets/query-field-schema-test-DIYY3-c8.js +0 -231
  731. package/bundled-test-harness/assets/query-fields-test-k-VBF9PE.js +0 -535
  732. package/bundled-test-harness/assets/queue-test-B_74vXZE.js +0 -216
  733. package/bundled-test-harness/assets/radar-GUYGQ44K-Cn2A0VBR.js +0 -3
  734. package/bundled-test-harness/assets/read-card-for-ai-assistant-test-SyL9F_La.js +0 -91
  735. package/bundled-test-harness/assets/read-file-for-ai-assistant-test-nLPp49U2.js +0 -45
  736. package/bundled-test-harness/assets/read-source-test-DBELJkhN.js +0 -67
  737. package/bundled-test-harness/assets/read-text-file-test-CP1JuWlX.js +0 -124
  738. package/bundled-test-harness/assets/realm-Dr4iygv_.js +0 -884
  739. package/bundled-test-harness/assets/realm-field-test-Cice2mYk.js +0 -101
  740. package/bundled-test-harness/assets/realm-index-card-id-test-BzpozdWc.js +0 -18
  741. package/bundled-test-harness/assets/realm-indexing-test-C0YSXziR.js +0 -4018
  742. package/bundled-test-harness/assets/realm-paths-test-DV_g07rF.js +0 -33
  743. package/bundled-test-harness/assets/realm-querying-test-B526abM0.js +0 -1062
  744. package/bundled-test-harness/assets/realm-test-D8UN5X-w.js +0 -2409
  745. package/bundled-test-harness/assets/reasoning-test-ClIOvdkX.js +0 -234
  746. package/bundled-test-harness/assets/recent-files-test-C2J_dJUD.js +0 -449
  747. package/bundled-test-harness/assets/reindex-realm-test-DMphy1g6.js +0 -119
  748. package/bundled-test-harness/assets/relationship-loading-state-test-BWrZdLlZ.js +0 -289
  749. package/bundled-test-harness/assets/render-component-BII_KnyK.js +0 -2
  750. package/bundled-test-harness/assets/render-error-test-BUAJJlUi.js +0 -22
  751. package/bundled-test-harness/assets/render-service-test-BKkCjErY.js +0 -87
  752. package/bundled-test-harness/assets/render-timer-stub-test-TUDMWJ8v.js +0 -84
  753. package/bundled-test-harness/assets/rendered-markdown-ColekGTF.js +0 -211
  754. package/bundled-test-harness/assets/rendered-markdown-test-B4CWIo02.js +0 -360
  755. package/bundled-test-harness/assets/requirementDiagram-4Y6WPE33-CTICatxk.js +0 -2550
  756. package/bundled-test-harness/assets/rich-markdown-field-test-B5u6D3Nk.js +0 -806
  757. package/bundled-test-harness/assets/room-message-test-0eJSqQfu.js +0 -171
  758. package/bundled-test-harness/assets/rust-crypto-B0m3j_yZ.js +0 -16141
  759. package/bundled-test-harness/assets/sanitize-module-list-test-rH6OqjKh.js +0 -68
  760. package/bundled-test-harness/assets/sankeyDiagram-5OEKKPKP-hBIg6-LP.js +0 -1357
  761. package/bundled-test-harness/assets/schema-editor-test-DH4MLFCD.js +0 -784
  762. package/bundled-test-harness/assets/schema-generation-test-BZMkX7VA.js +0 -28
  763. package/bundled-test-harness/assets/scrolling-test-CFTyLG8X.js +0 -292
  764. package/bundled-test-harness/assets/search-and-choose-test-CcbVyp4c.js +0 -156
  765. package/bundled-test-harness/assets/search-cache-key-test-BYt46iNT.js +0 -79
  766. package/bundled-test-harness/assets/search-command-test-BRIJPr54.js +0 -135
  767. package/bundled-test-harness/assets/search-correlation-id-test-B298Tfux.js +0 -101
  768. package/bundled-test-harness/assets/search-data-test-DHV2Fd4S.js +0 -243
  769. package/bundled-test-harness/assets/search-google-images-test-CNrazllP.js +0 -168
  770. package/bundled-test-harness/assets/search-in-flight-key-test-Dy3bU2c1.js +0 -79
  771. package/bundled-test-harness/assets/search-test-DL1-gD-G.js +0 -847
  772. package/bundled-test-harness/assets/send-ai-assistant-message-test-CyEkQ5pD.js +0 -52
  773. package/bundled-test-harness/assets/send-bot-trigger-event-test-CAsK28m-.js +0 -56
  774. package/bundled-test-harness/assets/send-request-via-proxy-test-DpMlRvPv.js +0 -333
  775. package/bundled-test-harness/assets/sending-test-BOeGYcTU.js +0 -317
  776. package/bundled-test-harness/assets/sequenceDiagram-3UESZ5HK-DQMiI040.js +0 -5551
  777. package/bundled-test-harness/assets/serialization-test-gY2QQVxS.js +0 -8283
  778. package/bundled-test-harness/assets/set-user-system-card-test-BE3y5GNK.js +0 -59
  779. package/bundled-test-harness/assets/setup-B8O9JQKq.js +0 -769
  780. package/bundled-test-harness/assets/setup-BMqGUBDK.js +0 -2
  781. package/bundled-test-harness/assets/show-card-test-BfJNnWMy.js +0 -362
  782. package/bundled-test-harness/assets/skills-test-CqhnZxBi.js +0 -568
  783. package/bundled-test-harness/assets/spec-test-BUKNn_1q.js +0 -1012
  784. package/bundled-test-harness/assets/stateDiagram-AJRCARHV-BoOij2yt.js +0 -363
  785. package/bundled-test-harness/assets/stateDiagram-v2-BHNVJYJU-Dosil5p2.js +0 -29
  786. package/bundled-test-harness/assets/store-add-test-BR1M-IDR.js +0 -52
  787. package/bundled-test-harness/assets/store-test-DaqI-HRh.js +0 -1562
  788. package/bundled-test-harness/assets/summarize-session-test-BMg54JGF.js +0 -169
  789. package/bundled-test-harness/assets/svg-image-def-test-xNyIKRPV.js +0 -164
  790. package/bundled-test-harness/assets/switch-submode-test-BKvpODUD.js +0 -168
  791. package/bundled-test-harness/assets/test-realm-service-worker-DK4SmTM5.js +0 -73
  792. package/bundled-test-harness/assets/tests-x4_eRjiT.js +0 -2770
  793. package/bundled-test-harness/assets/text-file-def-test-CsXiyVfI.js +0 -93
  794. package/bundled-test-harness/assets/text-input-validator-test-D4s_laO7.js +0 -155
  795. package/bundled-test-harness/assets/text-suggestion-test-CkLf1xuS.js +0 -339
  796. package/bundled-test-harness/assets/theme-card-test-D-6L6OfD.js +0 -573
  797. package/bundled-test-harness/assets/timeline-definition-PNZ67QCA-DD2d81uJ.js +0 -1545
  798. package/bundled-test-harness/assets/transform-cards-test-CRZF2gqZ.js +0 -341
  799. package/bundled-test-harness/assets/treeView-BLDUP644-CUm8wuM-.js +0 -3
  800. package/bundled-test-harness/assets/treemap-LRROVOQU-lbLrY2PE.js +0 -3
  801. package/bundled-test-harness/assets/ts-file-def-test-CDo6ojCf.js +0 -90
  802. package/bundled-test-harness/assets/tsMode-BPQoRibc.js +0 -968
  803. package/bundled-test-harness/assets/typescript-BaU6yDhK.js +0 -2
  804. package/bundled-test-harness/assets/update-room-skills-test-BnSgVFwT.js +0 -197
  805. package/bundled-test-harness/assets/url-test-CK-HB0qu.js +0 -103
  806. package/bundled-test-harness/assets/use-ai-assistant-test-BuJXEP8H.js +0 -330
  807. package/bundled-test-harness/assets/validate-realm-test-Cx7MOtS8.js +0 -53
  808. package/bundled-test-harness/assets/vennDiagram-CIIHVFJN-DtXtzGwZ.js +0 -2833
  809. package/bundled-test-harness/assets/wardley-L42UT6IY-D8aCp_Ox.js +0 -3
  810. package/bundled-test-harness/assets/wardleyDiagram-YWT4CUSO-D-73g3bB.js +0 -872
  811. package/bundled-test-harness/assets/wav-audio-def-test-DIo2GzQL.js +0 -155
  812. package/bundled-test-harness/assets/webp-image-def-test-BQsV0_De.js +0 -225
  813. package/bundled-test-harness/assets/workspace-chooser-delete-test-peDXmnQf.js +0 -189
  814. package/bundled-test-harness/assets/workspace-chooser-test-DS2RtTEF.js +0 -235
  815. package/bundled-test-harness/assets/workspace-delete-multiple-test-DTbjRSzN.js +0 -213
  816. package/bundled-test-harness/assets/workspace-delete-summary-test-B--ink4m.js +0 -63
  817. package/bundled-test-harness/assets/write-binary-file-test-A3TQ5lFn.js +0 -100
  818. package/bundled-test-harness/assets/write-text-file-test-D_rjNDsT.js +0 -172
  819. package/bundled-test-harness/assets/xychartDiagram-2RQKCTM6-D1aoqDp-.js +0 -2551
  820. /package/bundled-test-harness/assets/{abap-CLdVBGqB.js → abap-FZAuBTMl.js} +0 -0
  821. /package/bundled-test-harness/assets/{apex-DV8eHjgQ.js → apex-CAO3qFTc.js} +0 -0
  822. /package/bundled-test-harness/assets/{array-DsDWWqmW.js → array-CRfHnEm4.js} +0 -0
  823. /package/bundled-test-harness/assets/{azcli-C4pZYsiJ.js → azcli-Bnu7jG0Y.js} +0 -0
  824. /package/bundled-test-harness/assets/{bat-DBoaeFpB.js → bat-DdE54Pqq.js} +0 -0
  825. /package/bundled-test-harness/assets/{bicep-VlrJhbeK.js → bicep-Dp4vFp3K.js} +0 -0
  826. /package/bundled-test-harness/assets/{cameligo-jyzrvLUm.js → cameligo-Cym4x98m.js} +0 -0
  827. /package/bundled-test-harness/assets/{chunk-NNHCCRGN-Be15HUz2.js → chunk-NNHCCRGN-PWOfDYpb.js} +0 -0
  828. /package/bundled-test-harness/assets/{clojure-bzahmEtz.js → clojure-B47IJ25u.js} +0 -0
  829. /package/bundled-test-harness/assets/{codemirror-context-BauLYUNt.js → codemirror-context-oJy03XqC.js} +0 -0
  830. /package/bundled-test-harness/assets/{coffee-CMADdzOH.js → coffee-CZlkBXT8.js} +0 -0
  831. /package/bundled-test-harness/assets/{cpp-CEJwzcLE.js → cpp-mX4KaA7p.js} +0 -0
  832. /package/bundled-test-harness/assets/{csharp-XYqm0UE0.js → csharp-C-OeDGwk.js} +0 -0
  833. /package/bundled-test-harness/assets/{csp-82fNWQc2.js → csp-AS2OEE8R.js} +0 -0
  834. /package/bundled-test-harness/assets/{css-B5b0ooFS.js → css-C-TQxhWe.js} +0 -0
  835. /package/bundled-test-harness/assets/{cssMode-DTKuqAkO.js → cssMode-C87GnEsk.js} +0 -0
  836. /package/bundled-test-harness/assets/{cypher-Df9GkdDY.js → cypher-T6F_0eIM.js} +0 -0
  837. /package/bundled-test-harness/assets/{cytoscape.esm-D0iwZ9Jj.js → cytoscape.esm-Bc2V-MhP.js} +0 -0
  838. /package/bundled-test-harness/assets/{dart-C4JY9dMc.js → dart-DzVesk0n.js} +0 -0
  839. /package/bundled-test-harness/assets/{defaultLocale-BtLxQtxy.js → defaultLocale-CAoL4lzt.js} +0 -0
  840. /package/bundled-test-harness/assets/{dist-D-PuK2H3.js → dist-BZ5MfZEJ.js} +0 -0
  841. /package/bundled-test-harness/assets/{dockerfile-Ck0tNttO.js → dockerfile-BH0_bQxC.js} +0 -0
  842. /package/bundled-test-harness/assets/{ecl-BpeXqJR_.js → ecl-KIxjxrJo.js} +0 -0
  843. /package/bundled-test-harness/assets/{elixir-HmBzrXaX.js → elixir-CPPdtCW1.js} +0 -0
  844. /package/bundled-test-harness/assets/{flow9-DhsfsDhH.js → flow9-Dxho7Ldf.js} +0 -0
  845. /package/bundled-test-harness/assets/{freemarker2-D3Yd6nGl.js → freemarker2-DP1aOr3_.js} +0 -0
  846. /package/bundled-test-harness/assets/{fsharp-D56OprHc.js → fsharp-ozN53Joe.js} +0 -0
  847. /package/bundled-test-harness/assets/{go-BITsFLfX.js → go-DPj6Rbqe.js} +0 -0
  848. /package/bundled-test-harness/assets/{graphlib-qkaQhadO.js → graphlib-DOITgaas.js} +0 -0
  849. /package/bundled-test-harness/assets/{graphql-CJJVsEX1.js → graphql-C8_-AnBG.js} +0 -0
  850. /package/bundled-test-harness/assets/{handlebars-Dvw6QbL7.js → handlebars-B2gYBZpU.js} +0 -0
  851. /package/bundled-test-harness/assets/{hcl-DSTZcJuq.js → hcl-r3d7BhXB.js} +0 -0
  852. /package/bundled-test-harness/assets/{helpers-D_JZYUOQ.js → helpers-CItTycq2.js} +0 -0
  853. /package/bundled-test-harness/assets/{html-Bik3qLmc.js → html-DhN1Nxr0.js} +0 -0
  854. /package/bundled-test-harness/assets/{htmlMode-DPCaR3Ab.js → htmlMode-BnBg5hCh.js} +0 -0
  855. /package/bundled-test-harness/assets/{ini-li-kC8ZU.js → ini-CzzRigmS.js} +0 -0
  856. /package/bundled-test-harness/assets/{init-Bq7IGMcH.js → init-Bd2YUhsG.js} +0 -0
  857. /package/bundled-test-harness/assets/{java-CETpuNN7.js → java-BgeDsIoV.js} +0 -0
  858. /package/bundled-test-harness/assets/{jsonMode-CZ3hOG-W.js → jsonMode-sRb0gsB8.js} +0 -0
  859. /package/bundled-test-harness/assets/{julia-hgihs1aN.js → julia-u3K1H5Ts.js} +0 -0
  860. /package/bundled-test-harness/assets/{katex-DqhsSYO4.js → katex-CHY7BUZt.js} +0 -0
  861. /package/bundled-test-harness/assets/{kotlin-CKfyb82K.js → kotlin-DfqmlJ10.js} +0 -0
  862. /package/bundled-test-harness/assets/{less-xB5yXbw8.js → less-CSzH7DPY.js} +0 -0
  863. /package/bundled-test-harness/assets/{lexon-BLwrXVrI.js → lexon-DwPTpxXt.js} +0 -0
  864. /package/bundled-test-harness/assets/{liquid-Bf2lpknJ.js → liquid-95J9g5Vk.js} +0 -0
  865. /package/bundled-test-harness/assets/{lua-Ch5i3IrF.js → lua-CGw6zbeh.js} +0 -0
  866. /package/bundled-test-harness/assets/{m3-D5tNlhaF.js → m3-BfgwloGF.js} +0 -0
  867. /package/bundled-test-harness/assets/{markdown-Dzc9uMky.js → markdown-RZRK7Mc9.js} +0 -0
  868. /package/bundled-test-harness/assets/{mdx-xsI4TJrf.js → mdx-BYD-W2sn.js} +0 -0
  869. /package/bundled-test-harness/assets/{mips-CmdzHkQm.js → mips-DAySN5Lp.js} +0 -0
  870. /package/bundled-test-harness/assets/{msdax-CAZvxB9E.js → msdax-Cy0COjTJ.js} +0 -0
  871. /package/bundled-test-harness/assets/{mysql-CyVS-z5H.js → mysql-CfGw9jyw.js} +0 -0
  872. /package/bundled-test-harness/assets/{objective-c-CCG8cTc_.js → objective-c-B4uU-8T-.js} +0 -0
  873. /package/bundled-test-harness/assets/{pascal-c8B45FOC.js → pascal-CGDuZzXi.js} +0 -0
  874. /package/bundled-test-harness/assets/{pascaligo-CCqwSqBv.js → pascaligo-eg02k4VJ.js} +0 -0
  875. /package/bundled-test-harness/assets/{path-CsS38UoK.js → path-Dxiz9G2t.js} +0 -0
  876. /package/bundled-test-harness/assets/{perl-JUICYbO2.js → perl-BiT-JJJw.js} +0 -0
  877. /package/bundled-test-harness/assets/{pgsql-aNRiL0Cg.js → pgsql-DAMjrVBF.js} +0 -0
  878. /package/bundled-test-harness/assets/{php-B0YZj_Vw.js → php-kOSUYQyc.js} +0 -0
  879. /package/bundled-test-harness/assets/{pla-D3Zb3KCn.js → pla-BShYV-HC.js} +0 -0
  880. /package/bundled-test-harness/assets/{postiats-ks1KABlA.js → postiats-9Xamd4W2.js} +0 -0
  881. /package/bundled-test-harness/assets/{powerquery-D35K_osc.js → powerquery-l2Nw525Q.js} +0 -0
  882. /package/bundled-test-harness/assets/{powershell-DXQo6KTk.js → powershell-B5rdEn86.js} +0 -0
  883. /package/bundled-test-harness/assets/{protobuf-CFDvn49_.js → protobuf-DjFcruCV.js} +0 -0
  884. /package/bundled-test-harness/assets/{pug-CGdWzJm1.js → pug-d79Nz4-Z.js} +0 -0
  885. /package/bundled-test-harness/assets/{python-BHLYjYlP.js → python-d8oxFZIM.js} +0 -0
  886. /package/bundled-test-harness/assets/{qsharp-BIq3i63T.js → qsharp-CeTlfxZW.js} +0 -0
  887. /package/bundled-test-harness/assets/{qunit-2hoQyeAZ.js → qunit-Cqwmt9Vl.js} +0 -0
  888. /package/bundled-test-harness/assets/{r-CBvzvDSA.js → r-BOu7JTro.js} +0 -0
  889. /package/bundled-test-harness/assets/{razor-JQ0RiIvo.js → razor-ZatoG_Is.js} +0 -0
  890. /package/bundled-test-harness/assets/{recent-files-cards-BQMviQb1.js → recent-files-cards-C3vIjaKb.js} +0 -0
  891. /package/bundled-test-harness/assets/{redis-BmSHTqTU.js → redis-DdXYPyQE.js} +0 -0
  892. /package/bundled-test-harness/assets/{redshift-B1NmQEH7.js → redshift-DswnW-YX.js} +0 -0
  893. /package/bundled-test-harness/assets/{render-component-g_fhz2dX.js → render-component-Bs21y6iv.js} +0 -0
  894. /package/bundled-test-harness/assets/{restructuredtext-Br9BtTbk.js → restructuredtext-C75vUmvX.js} +0 -0
  895. /package/bundled-test-harness/assets/{rough.esm-D8VnzNsL.js → rough.esm-B83ARgx6.js} +0 -0
  896. /package/bundled-test-harness/assets/{ruby-D9_-y1I3.js → ruby-D77950a-.js} +0 -0
  897. /package/bundled-test-harness/assets/{rust-1Jjr1EOs.js → rust-C_G4PKsG.js} +0 -0
  898. /package/bundled-test-harness/assets/{sb-X2JE4zEr.js → sb-Cz3P8_Gp.js} +0 -0
  899. /package/bundled-test-harness/assets/{scala-qFJERKkR.js → scala-DYqUg04P.js} +0 -0
  900. /package/bundled-test-harness/assets/{scheme-D-WJPStO.js → scheme-B31XEGu5.js} +0 -0
  901. /package/bundled-test-harness/assets/{scss-DysfZiXA.js → scss-CtvB8On5.js} +0 -0
  902. /package/bundled-test-harness/assets/{shell-C0Iu3NNJ.js → shell-C2QqpcPN.js} +0 -0
  903. /package/bundled-test-harness/assets/{solidity-Bato3Qrk.js → solidity-FHrhZFd-.js} +0 -0
  904. /package/bundled-test-harness/assets/{sophia-DI0cKdK8.js → sophia-Cxv5FOXb.js} +0 -0
  905. /package/bundled-test-harness/assets/{sparql-BTJMtwoD.js → sparql-CgGkGeQB.js} +0 -0
  906. /package/bundled-test-harness/assets/{sql-R6uHqFYU.js → sql-S6Dos2P0.js} +0 -0
  907. /package/bundled-test-harness/assets/{src-CdPyB7gY.js → src-CvuaVSsl.js} +0 -0
  908. /package/bundled-test-harness/assets/{st-CoyBvq37.js → st-Bfa7LAWp.js} +0 -0
  909. /package/bundled-test-harness/assets/{swift-Bj-haAlF.js → swift-BQD5Ef-A.js} +0 -0
  910. /package/bundled-test-harness/assets/{systemverilog-B-x1NEFI.js → systemverilog-DaNkPux4.js} +0 -0
  911. /package/bundled-test-harness/assets/{tcl-DAUdSQgz.js → tcl-gOPgCDyb.js} +0 -0
  912. /package/bundled-test-harness/assets/{test-support-BHjxBpDK.js → test-support-BEQX5x9U.js} +0 -0
  913. /package/bundled-test-harness/assets/{test-support-yKvYEh-u.js → test-support-BL4XKobD.js} +0 -0
  914. /package/bundled-test-harness/assets/{twig-B0sJ-GzS.js → twig-Bk4gPn5b.js} +0 -0
  915. /package/bundled-test-harness/assets/{typescript-DTMIM5Gl.js → typescript-pPYlxWzr.js} +0 -0
  916. /package/bundled-test-harness/assets/{typespec-6yo9VQxY.js → typespec-D9Zz743B.js} +0 -0
  917. /package/bundled-test-harness/assets/{vb-Bh2IfdtJ.js → vb-ziqHIsJV.js} +0 -0
  918. /package/bundled-test-harness/assets/{view-card-demo-U_AOj-RK.js → view-card-demo-CSIVYD3T.js} +0 -0
  919. /package/bundled-test-harness/assets/{wgsl-DsvJnCCt.js → wgsl-BXiwkiJL.js} +0 -0
  920. /package/bundled-test-harness/assets/{xml-CisPXcjD.js → xml-a_tUOik-.js} +0 -0
  921. /package/bundled-test-harness/assets/{yaml-DkHUoYI5.js → yaml-B3H8LDzK.js} +0 -0
@@ -0,0 +1,1562 @@
1
+ import { s as __toESM } from "./chunk-CGdGNDIi.js";
2
+ import { n as decorateMethodV2, r as initializeDeferredDecorator, t as decorateFieldV2 } from "./runtime-CYyqkz5q-z3Y1hsJm.js";
3
+ import { Ai as realmURL, Di as localId, Sr as isCardInstance, Yn as testRRI, Zn as testRealmURL, ca as Deferred, mi as baseCardRef, vi as baseRealm } from "./runtime-common-C7uLt5dN.js";
4
+ import { $n as setComponentTemplate, r as service } from "./service-DJ87xpDt.js";
5
+ import { V as templateFactory } from "./index-DaCZcoCY-D2gI_aMw.js";
6
+ import { n as tracked, t as cached } from "./tracking-Dv1Q4IKh.js";
7
+ import { o as Component } from "./dist-CXaz7pMY.js";
8
+ import "./template-D3TMIrc1.js";
9
+ import "./template-factory-DMEv2kVd.js";
10
+ import { x as getCardCollection, y as getCard } from "./panel-rIdTMDfK.js";
11
+ import { t as OperatorModeContainer } from "./container-C8gu0I0Q.js";
12
+ import { A as settled, I as waitUntil, d as click, o as waitFor, r as typeIn } from "./dist-D1U_uSwt.js";
13
+ import { t as require_qunit } from "./qunit-Cqwmt9Vl.js";
14
+ import { r as getService } from "./dist-CY3T64Hs.js";
15
+ import { A as setupIntegrationTestRealm, J as withSlowSave, M as setupOnSave, O as setupCardLogs, et as setupOperatorModeStateCleanup, j as setupLocalIndexing, rt as setupRenderingTest, t as setupMockMatrix } from "./mock-matrix-BhFWlMMr.js";
16
+ 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-DpSTsZxD.js";
17
+ import { n as renderComponent } from "./render-component-Bs21y6iv.js";
18
+ //#region tests/integration/store-test.gts
19
+ var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
20
+ (0, import_qunit.module)("Integration | Store", function(hooks) {
21
+ setupRenderingTest(hooks);
22
+ setupOperatorModeStateCleanup(hooks);
23
+ setupBaseRealm(hooks);
24
+ let api;
25
+ let loader;
26
+ let loaderService;
27
+ let testRealm;
28
+ let testRealmAdapter;
29
+ let storeService;
30
+ let operatorModeStateService;
31
+ let cardStore;
32
+ let PersonDef;
33
+ let BoomPersonDef;
34
+ let realmService;
35
+ setupLocalIndexing(hooks);
36
+ setupOnSave(hooks);
37
+ setupCardLogs(hooks, async () => await loader.import(`${baseRealm.url}card-api`));
38
+ let mockMatrixUtils = setupMockMatrix(hooks, {
39
+ loggedInAs: "@testuser:localhost",
40
+ activeRealms: [testRealmURL],
41
+ autostart: true
42
+ });
43
+ function forceGC() {
44
+ cardStore.sweep(api);
45
+ cardStore.sweep(api);
46
+ }
47
+ function setCardInOperatorModeState(cardURL, format = "isolated") {
48
+ operatorModeStateService.restore({ stacks: cardURL ? [[{
49
+ id: cardURL,
50
+ format
51
+ }]] : [[]] });
52
+ }
53
+ const noop = () => {};
54
+ hooks.beforeEach(async function() {
55
+ class Person extends CardDef {
56
+ static {
57
+ decorateFieldV2(this.prototype, "name", [field], function() {
58
+ return contains(StringField);
59
+ });
60
+ }
61
+ #name = (initializeDeferredDecorator(this, "name"), void 0);
62
+ static {
63
+ decorateFieldV2(this.prototype, "hasError", [field], function() {
64
+ return contains(BooleanField);
65
+ });
66
+ }
67
+ #hasError = (initializeDeferredDecorator(this, "hasError"), void 0);
68
+ static {
69
+ decorateFieldV2(this.prototype, "bestFriend", [field], function() {
70
+ return linksTo(() => Person);
71
+ });
72
+ }
73
+ #bestFriend = (initializeDeferredDecorator(this, "bestFriend"), void 0);
74
+ static {
75
+ decorateFieldV2(this.prototype, "friends", [field], function() {
76
+ return linksToMany(() => Person);
77
+ });
78
+ }
79
+ #friends = (initializeDeferredDecorator(this, "friends"), void 0);
80
+ static {
81
+ decorateFieldV2(this.prototype, "boom", [field], function() {
82
+ return contains(StringField, { computeVia: function() {
83
+ if (this.hasError) throw new Error("intentional error thrown");
84
+ return "boom";
85
+ } });
86
+ });
87
+ }
88
+ #boom = (initializeDeferredDecorator(this, "boom"), void 0);
89
+ }
90
+ PersonDef = Person;
91
+ class BoomPerson extends CardDef {
92
+ static displayName = "Boom Person";
93
+ static {
94
+ decorateFieldV2(this.prototype, "name", [field], function() {
95
+ return contains(StringField);
96
+ });
97
+ }
98
+ #name = (initializeDeferredDecorator(this, "name"), void 0);
99
+ static isolated = class Isolated extends Component$1 {
100
+ static {
101
+ setComponentTemplate(templateFactory({
102
+ "id": "I6b4/CsV",
103
+ "block": "[[[1,\"Hello\\n\"],[8,[30,1,[\"name\"]],null,null,null],[1,\"!\\n\"],[1,[30,0,[\"boom\"]]]],[\"@fields\"],[]]",
104
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
105
+ "isStrictMode": true
106
+ }), this);
107
+ }
108
+ boom = () => intentionallyNotDefined();
109
+ };
110
+ }
111
+ BoomPersonDef = BoomPerson;
112
+ loaderService = getService("loader-service");
113
+ loader = loaderService.loader;
114
+ api = await loader.import(`${baseRealm.url}card-api`);
115
+ storeService = getService("store");
116
+ operatorModeStateService = getService("operator-mode-state-service");
117
+ cardStore = storeService.store;
118
+ realmService = getService("realm");
119
+ ({adapter: testRealmAdapter, realm: testRealm} = await setupIntegrationTestRealm({
120
+ mockMatrixUtils,
121
+ contents: {
122
+ "person.gts": { Person },
123
+ "boom-person.gts": { BoomPerson },
124
+ "Person/hassan.json": new Person({ name: "Hassan" }),
125
+ "Person/jade.json": new Person({ name: "Jade" }),
126
+ "Person/queenzy.json": new Person({ name: "Queenzy" }),
127
+ "Person/germaine.json": new Person({ name: "Germaine" }),
128
+ "Person/boris.json": new Person({ name: "Boris" })
129
+ }
130
+ }));
131
+ await realmService.login(testRealmURL);
132
+ });
133
+ hooks.afterEach(function() {
134
+ getService("network").virtualNetwork.removeRealmMapping("@test-prefix/");
135
+ });
136
+ (0, import_qunit.test)("can peek a card instance", async function(assert) {
137
+ storeService.addReference(`${testRealmURL}Person/hassan`);
138
+ await storeService.flush();
139
+ let instance = storeService.peek(`${testRealmURL}Person/hassan`);
140
+ assert.true(isCardInstance(instance), "peeked item is a card instance");
141
+ });
142
+ (0, import_qunit.test)("can peek a card by local id", async function(assert) {
143
+ storeService.addReference(`${testRealmURL}Person/hassan`);
144
+ await storeService.flush();
145
+ let instanceA = storeService.peek(`${testRealmURL}Person/hassan`);
146
+ let instanceB = storeService.peek(instanceA[localId]);
147
+ assert.true(isCardInstance(instanceB), "peeked item is a card instance");
148
+ assert.strictEqual(instanceA, instanceB, "the same instance is returned by both remote ID and local ID");
149
+ });
150
+ (0, import_qunit.test)("can peek a card error when no stale instance exists", async function(assert) {
151
+ await testRealm.write("Person/hassan.json", JSON.stringify({ data: {
152
+ attributes: {
153
+ name: "Hassan",
154
+ hasError: true
155
+ },
156
+ meta: { adoptsFrom: {
157
+ module: testRRI("person"),
158
+ name: "Person"
159
+ } }
160
+ } }));
161
+ storeService.addReference(`${testRealmURL}Person/hassan`);
162
+ await storeService.flush();
163
+ let error = storeService.peek(`${testRealmURL}Person/hassan`);
164
+ assert.false(isCardInstance(error), "error is not a card instance");
165
+ assert.ok(error.message.includes("intentional error thrown"), "error message is correct");
166
+ });
167
+ (0, import_qunit.test)("peek returns a stale instance when the server state reflects an error", async function(assert) {
168
+ storeService.addReference(`${testRealmURL}Person/hassan`);
169
+ await storeService.flush();
170
+ await testRealm.write("Person/hassan.json", JSON.stringify({ data: {
171
+ attributes: {
172
+ name: "Hassan",
173
+ hasError: true
174
+ },
175
+ meta: { adoptsFrom: {
176
+ module: testRRI("person"),
177
+ name: "Person"
178
+ } }
179
+ } }));
180
+ await waitUntil(() => storeService.peekError(`${testRealmURL}Person/hassan`));
181
+ let staleInstance = storeService.peek(`${testRealmURL}Person/hassan`);
182
+ assert.true(isCardInstance(staleInstance), "the peek-ed instance is not an error");
183
+ });
184
+ (0, import_qunit.test)("peek for an uncached returns undefined", async function(assert) {
185
+ let instance = storeService.peek(`${testRealmURL}Person/does-not-exist`);
186
+ assert.strictEqual(instance, void 0, "instance is undefined");
187
+ });
188
+ (0, import_qunit.test)("can use registered prefix ids across store APIs", async function(assert) {
189
+ getService("network").virtualNetwork.addRealmMapping("@test-prefix/", testRealmURL);
190
+ storeService.addReference("@test-prefix/Person/hassan");
191
+ await storeService.flush();
192
+ let byPrefix = storeService.peek("@test-prefix/Person/hassan");
193
+ let byUrl = storeService.peek(`${testRealmURL}Person/hassan`);
194
+ assert.true(isCardInstance(byPrefix), "prefix id resolves to a card");
195
+ assert.strictEqual(byPrefix, byUrl, "prefix id and resolved URL return the same instance");
196
+ assert.strictEqual(storeService.getReferenceCount("@test-prefix/Person/hassan"), 1, "prefix id and resolved URL share a single reference count");
197
+ assert.strictEqual(storeService.getReferenceCount(`${testRealmURL}Person/hassan`), 1, "resolved URL sees the same reference count");
198
+ storeService.dropReference("@test-prefix/Person/hassan");
199
+ assert.strictEqual(storeService.getReferenceCount(`${testRealmURL}Person/hassan`), 0, "dropping a prefix reference clears the resolved URL reference count");
200
+ let saveFinished = new Deferred();
201
+ this.onSave((url) => {
202
+ if (url.href === `http://test-realm/test/Person/hassan`) {
203
+ assert.strictEqual(url.href, `${testRealmURL}Person/hassan`);
204
+ assert.strictEqual(storeService.getReferenceCount(`${testRealmURL}Person/hassan`), 0, "save() does not create a separate resolved-url reference count");
205
+ assert.strictEqual(storeService.getReferenceCount("@test-prefix/Person/hassan"), 0, "save() does not create a separate prefix reference count");
206
+ saveFinished.fulfill();
207
+ }
208
+ });
209
+ storeService.save("@test-prefix/Person/hassan");
210
+ await saveFinished;
211
+ storeService.addReference("@test-prefix/Person/boris");
212
+ await storeService.flush();
213
+ await storeService.delete("@test-prefix/Person/boris");
214
+ assert.strictEqual(storeService.peek("@test-prefix/Person/boris"), void 0, "delete() clears the prefix-form card identity from the store");
215
+ assert.strictEqual(storeService.peek(`${testRealmURL}Person/boris`), void 0, "delete() clears the resolved card identity from the store");
216
+ let file = await testRealmAdapter.openFile(`Person/boris.json`);
217
+ assert.strictEqual(file, void 0, "delete() removes the remote card");
218
+ });
219
+ (0, import_qunit.test)("deleting a linked target rewrites a loaded consumer linksTo slot to a broken-link sentinel", async function(assert) {
220
+ storeService.addReference(`${testRealmURL}Person/hassan`);
221
+ storeService.addReference(`${testRealmURL}Person/boris`);
222
+ await storeService.flush();
223
+ let hassan = storeService.peek(`${testRealmURL}Person/hassan`);
224
+ hassan.bestFriend = storeService.peek(`${testRealmURL}Person/boris`);
225
+ await settled();
226
+ assert.strictEqual(api.getRelationshipMembershipState(hassan, "bestFriend").membership[0].kind, "present", "the consumer link resolves to the target before the delete");
227
+ await storeService.delete(`${testRealmURL}Person/boris`);
228
+ let after = api.getRelationshipMembershipState(hassan, "bestFriend").membership[0];
229
+ assert.strictEqual(after.kind, "not-found", "deleting the target rewrites the consumer slot to a broken-link sentinel without a reload");
230
+ assert.strictEqual(after.reference, `${testRealmURL}Person/boris`, "the sentinel preserves the deleted target reference for the placeholder");
231
+ });
232
+ (0, import_qunit.test)("deleting a linked target rewrites only the matching element of a loaded consumer linksToMany slot", async function(assert) {
233
+ storeService.addReference(`${testRealmURL}Person/hassan`);
234
+ storeService.addReference(`${testRealmURL}Person/boris`);
235
+ storeService.addReference(`${testRealmURL}Person/jade`);
236
+ await storeService.flush();
237
+ let hassan = storeService.peek(`${testRealmURL}Person/hassan`);
238
+ let boris = storeService.peek(`${testRealmURL}Person/boris`);
239
+ hassan.friends = [storeService.peek(`${testRealmURL}Person/jade`), boris];
240
+ await settled();
241
+ let before = api.getRelationshipMembershipState(hassan, "friends").membership;
242
+ assert.deepEqual(before.map((s) => s.kind), ["present", "present"], "both linksToMany elements resolve before the delete");
243
+ await storeService.delete(`${testRealmURL}Person/boris`);
244
+ let after = api.getRelationshipMembershipState(hassan, "friends").membership;
245
+ let borisEntry = after.find((s) => s.reference === `${testRealmURL}Person/boris`);
246
+ let jadeEntry = after.find((s) => s.reference === `${testRealmURL}Person/jade`);
247
+ assert.strictEqual(borisEntry?.kind, "not-found", "the deleted element becomes a broken-link sentinel");
248
+ assert.strictEqual(jadeEntry?.kind, "present", "the surviving element is left untouched");
249
+ });
250
+ (0, import_qunit.test)("peekError returns the server state error when a stale instance exists", async function(assert) {
251
+ storeService.addReference(`${testRealmURL}Person/hassan`);
252
+ await storeService.flush();
253
+ await testRealm.write("Person/hassan.json", JSON.stringify({ data: {
254
+ attributes: {
255
+ name: "Hassan",
256
+ hasError: true
257
+ },
258
+ meta: { adoptsFrom: {
259
+ module: testRRI("person"),
260
+ name: "Person"
261
+ } }
262
+ } }));
263
+ await waitUntil(() => storeService.peekError(`${testRealmURL}Person/hassan`));
264
+ let error = storeService.peekError(`${testRealmURL}Person/hassan`);
265
+ assert.false(isCardInstance(error), "error is not a card instance");
266
+ assert.ok(error.message.includes("intentional error thrown"), "error message is correct");
267
+ });
268
+ (0, import_qunit.test)("can add reference to a card url", async function(assert) {
269
+ let instance = storeService.peek(`${testRealmURL}hassan`);
270
+ assert.strictEqual(instance, void 0, "instance is not in store yet");
271
+ storeService.addReference(`${testRealmURL}Person/hassan`);
272
+ await storeService.flush();
273
+ instance = storeService.peek(`${testRealmURL}Person/hassan`);
274
+ if (isCardInstance(instance)) assert.strictEqual(instance.name, "Hassan", "instance is cached in store");
275
+ else assert.ok(false, `expected instance to be a card:${JSON.stringify(instance, null, 2)}`);
276
+ forceGC();
277
+ instance = storeService.peek(`${testRealmURL}Person/hassan`);
278
+ if (isCardInstance(instance)) assert.strictEqual(instance.name, "Hassan", "instance is cached in store after GC");
279
+ else assert.ok(false, `expected instance to be a card:${JSON.stringify(instance, null, 2)} after GC`);
280
+ });
281
+ (0, import_qunit.test)("can add reference to a local id", async function(assert) {
282
+ let instance = new PersonDef({ name: "Andrea" });
283
+ await storeService.add(instance, { doNotPersist: true });
284
+ storeService.addReference(instance[localId]);
285
+ forceGC();
286
+ let peekedInstance = storeService.peek(instance[localId]);
287
+ assert.strictEqual(peekedInstance, instance, "instance is not garbage collected");
288
+ });
289
+ (0, import_qunit.test)("can drop reference to a card url", async function(assert) {
290
+ storeService.addReference(`${testRealmURL}Person/hassan`);
291
+ await storeService.flush();
292
+ let instance = storeService.peek(`${testRealmURL}Person/hassan`);
293
+ assert.ok(instance, "instance is in store");
294
+ storeService.dropReference(`${testRealmURL}Person/hassan`);
295
+ forceGC();
296
+ assert.strictEqual(storeService.peek(`${testRealmURL}Person/hassan`), void 0, "instance has been garbage collected from the store");
297
+ });
298
+ (0, import_qunit.test)("can drop reference to a local id", async function(assert) {
299
+ let instance = new PersonDef({ name: "Andrea" });
300
+ await storeService.add(instance, { doNotPersist: true });
301
+ storeService.addReference(instance[localId]);
302
+ storeService.dropReference(instance[localId]);
303
+ forceGC();
304
+ let peekedInstance = storeService.peek(instance[localId]);
305
+ assert.strictEqual(peekedInstance, void 0, "instance is garbage collected");
306
+ });
307
+ (0, import_qunit.test)("file-meta instance is retained when referenced", async function(assert) {
308
+ await testRealm.write("hero.png", "mock hero image");
309
+ let fileUrl = `${testRealmURL}hero.png`;
310
+ let fileInstance = await storeService.get(fileUrl, { type: "file-meta" });
311
+ assert.ok(fileInstance, "file meta instance is loaded");
312
+ assert.ok(fileInstance.constructor?.isFileDef, "file meta instance is a FileDef");
313
+ storeService.addReference(fileUrl);
314
+ forceGC();
315
+ let peekedInstance = cardStore.getFileMeta(fileUrl);
316
+ assert.strictEqual(peekedInstance, fileInstance, "file meta instance is retained after GC with reference");
317
+ });
318
+ (0, import_qunit.test)("file-meta instance is garbage collected when references drop", async function(assert) {
319
+ await testRealm.write("hero.png", "mock hero image");
320
+ let fileUrl = `${testRealmURL}hero.png`;
321
+ await storeService.get(fileUrl, { type: "file-meta" });
322
+ storeService.addReference(fileUrl);
323
+ storeService.dropReference(fileUrl);
324
+ forceGC();
325
+ assert.strictEqual(cardStore.getFileMeta(fileUrl), void 0, "file meta instance is garbage collected after reference drop");
326
+ });
327
+ (0, import_qunit.test)("realm subscription is removed when file-meta reference count drops to zero", async function(assert) {
328
+ await testRealm.write("hero.png", "mock hero image");
329
+ let fileUrl = `${testRealmURL}hero.png`;
330
+ let subscriptions = storeService.subscriptions;
331
+ assert.false(subscriptions.has(testRealmURL), "realm is not subscribed before adding file-meta reference");
332
+ storeService.addReference(fileUrl, { type: "file-meta" });
333
+ assert.true(subscriptions.has(testRealmURL), "realm subscription is created for file-meta reference");
334
+ storeService.dropReference(fileUrl);
335
+ assert.false(subscriptions.has(testRealmURL), "realm subscription is removed when file-meta reference reaches zero");
336
+ });
337
+ (0, import_qunit.test)("add stores FileDef dependencies", async function(assert) {
338
+ class FileCard extends CardDef {
339
+ static {
340
+ decorateFieldV2(this.prototype, "attachment", [field], function() {
341
+ return linksTo(FileDef);
342
+ });
343
+ }
344
+ #attachment = (initializeDeferredDecorator(this, "attachment"), void 0);
345
+ }
346
+ let fileUrl = `${testRealmURL}hero.png`;
347
+ let fileDef = new FileDef({
348
+ id: fileUrl,
349
+ sourceUrl: fileUrl,
350
+ url: fileUrl,
351
+ name: "hero.png",
352
+ contentType: "image/png"
353
+ });
354
+ let card = new FileCard({ attachment: fileDef });
355
+ await storeService.add(card, { doNotPersist: true });
356
+ assert.strictEqual(storeService.peek(fileUrl, { type: "file-meta" }), fileDef, "file meta dependency is cached in file-meta store");
357
+ });
358
+ (0, import_qunit.test)("card read of a binary file URL is rerouted to file-meta", async function(assert) {
359
+ await testRealm.write("hero.png", "mock hero image");
360
+ let fileUrl = `${testRealmURL}hero.png`;
361
+ let result = await storeService.get(fileUrl);
362
+ assert.ok(result.constructor?.isFileDef, "card read returns a FileDef via the safety-net reroute");
363
+ let fileInstance = await storeService.get(fileUrl, { type: "file-meta" });
364
+ assert.ok(fileInstance.constructor?.isFileDef, "file-meta read returns a FileDef");
365
+ assert.strictEqual(storeService.peekError(fileUrl), void 0, "no error cached on the card bucket");
366
+ assert.strictEqual(storeService.peekError(fileUrl, { type: "file-meta" }), void 0, "no error cached on the file-meta bucket");
367
+ });
368
+ (0, import_qunit.test)("garbage collects cards that only consume each other", async function(assert) {
369
+ let alpha = new PersonDef({ name: "Alpha" });
370
+ let beta = new PersonDef({ name: "Beta" });
371
+ alpha.bestFriend = beta;
372
+ beta.bestFriend = alpha;
373
+ await storeService.add(alpha, { doNotPersist: true });
374
+ await storeService.add(beta, { doNotPersist: true });
375
+ assert.strictEqual(storeService.peek(alpha[localId]), alpha, "alpha is present before GC");
376
+ assert.strictEqual(storeService.peek(beta[localId]), beta, "beta is present before GC");
377
+ forceGC();
378
+ assert.strictEqual(storeService.peek(alpha[localId]), void 0, "alpha is garbage collected");
379
+ assert.strictEqual(storeService.peek(beta[localId]), void 0, "beta is garbage collected");
380
+ });
381
+ (0, import_qunit.test)("can manually save an instance", async function(assert) {
382
+ assert.expect(2);
383
+ storeService.addReference(`${testRealmURL}Person/hassan`);
384
+ await storeService.flush();
385
+ this.onSave((url, doc) => {
386
+ assert.strictEqual(url.href, `${testRealmURL}Person/hassan`, "the saved card id is correct");
387
+ assert.strictEqual(doc.data.attributes?.name, "Hassan", "save data is correct");
388
+ });
389
+ storeService.save(`${testRealmURL}Person/hassan`);
390
+ });
391
+ (0, import_qunit.test)("can create an instance", async function(assert) {
392
+ let url = await storeService.create({ data: {
393
+ attributes: { name: "Andrea" },
394
+ meta: { adoptsFrom: {
395
+ module: testRRI("person"),
396
+ name: "Person"
397
+ } }
398
+ } });
399
+ assert.strictEqual(typeof url, "string", "received a url for new instance");
400
+ let instance = storeService.peek(url);
401
+ assert.strictEqual(instance.id, url);
402
+ assert.strictEqual(instance.name, "Andrea");
403
+ let file = await testRealmAdapter.openFile(`${instance.id.substring(testRealmURL.length)}.json`);
404
+ assert.ok(file, "file exists");
405
+ let fileJSON = JSON.parse(file.content);
406
+ assert.strictEqual(fileJSON.data.attributes.name, "Andrea", "file exists");
407
+ });
408
+ (0, import_qunit.test)("can handle card error when creating an instance", async function(assert) {
409
+ let error = await storeService.create({ data: {
410
+ attributes: {
411
+ name: "Andrea",
412
+ hasError: true
413
+ },
414
+ meta: { adoptsFrom: {
415
+ module: testRRI("person"),
416
+ name: "Person"
417
+ } }
418
+ } });
419
+ assert.strictEqual(typeof error, "object", "received a error for new instance");
420
+ assert.ok(error.message.includes("intentional error thrown", "the error message is correct"));
421
+ });
422
+ (0, import_qunit.test)("can handle a rendering card error when creating an instance", async function(assert) {
423
+ let instance = new BoomPersonDef({ name: "Andrea" });
424
+ let error = await storeService.add(instance, { realm: testRealmURL });
425
+ storeService.addReference(instance[localId]);
426
+ await storeService.flush();
427
+ let stale = storeService.peek(instance[localId]);
428
+ if (isCardInstance(stale)) assert.strictEqual(stale.name, "Andrea", "the stale card state is correct");
429
+ else assert.ok(false, `expected an instance but got a card error: "${stale.message}"`);
430
+ let peekedError = storeService.peekError(instance[localId]);
431
+ assert.strictEqual(peekedError, error, "the output of store.add is the peek-ed error");
432
+ if (!isCardInstance(error)) {
433
+ assert.strictEqual(error.id, instance[localId], "the error doc id is the local id of the instance");
434
+ assert.ok(error.message.includes("intentionallyNotDefined is not defined"));
435
+ loaderService.resetLoader();
436
+ await testRealm.write(`boom-person.gts`, `
437
+ import { contains, field, CardDef, Component, StringField } from 'https://cardstack.com/base/card-api';
438
+
439
+ export class BoomPerson extends CardDef {
440
+ static displayName = 'Boom Person';
441
+ @field name = contains(StringField);
442
+ static isolated = class Isolated extends Component<typeof this> {
443
+ <template>
444
+ Hello
445
+ <@fields.firstName />!
446
+ </template>
447
+ };
448
+ }
449
+ `.trim());
450
+ await waitUntil(() => !storeService.peekError(instance[localId]), { timeout: 5e3 });
451
+ await waitUntil(() => {
452
+ let card = storeService.peek(instance[localId]);
453
+ return Boolean(card && isCardInstance(card));
454
+ }, { timeout: 5e3 });
455
+ let peek = storeService.peek(instance[localId]);
456
+ assert.strictEqual(peek.name, "Andrea", "peek-ed value has been updated to be the fixed card instance");
457
+ } else assert.ok(false, "expected a card error but got a running instance");
458
+ });
459
+ (0, import_qunit.test)("can add a running instance to the store", async function(assert) {
460
+ assert.expect(5);
461
+ this.onSave((_, doc) => {
462
+ assert.strictEqual(doc.data.attributes?.name, "Andrea", "card data is correct");
463
+ });
464
+ let instance = new PersonDef({ name: "Andrea" });
465
+ await storeService.add(instance);
466
+ assert.ok(instance.id, "instance has been assigned remote id");
467
+ let peekedInstance = storeService.peek(instance.id);
468
+ assert.strictEqual(instance, peekedInstance, "instance is the same");
469
+ let file = await testRealmAdapter.openFile(`${instance.id.substring(testRealmURL.length)}.json`);
470
+ assert.ok(file, "file exists");
471
+ let fileJSON = JSON.parse(file.content);
472
+ assert.strictEqual(fileJSON.data.attributes.name, "Andrea", "file exists");
473
+ });
474
+ (0, import_qunit.test)("can add a serialized instance to the store", async function(assert) {
475
+ assert.expect(6);
476
+ this.onSave((_, doc) => {
477
+ assert.strictEqual(doc.data.attributes?.name, "Andrea", "card data is correct");
478
+ });
479
+ let instance = await storeService.add({ data: {
480
+ attributes: { name: "Andrea" },
481
+ meta: { adoptsFrom: {
482
+ module: testRRI("person"),
483
+ name: "Person"
484
+ } }
485
+ } });
486
+ assert.ok(instance.id, "instance has been assigned remote id");
487
+ let peekedInstance = storeService.peek(instance.id);
488
+ assert.strictEqual(instance, peekedInstance, "instance is the same");
489
+ assert.strictEqual(instance.name, "Andrea", "instance data is correct");
490
+ let file = await testRealmAdapter.openFile(`${instance.id.substring(testRealmURL.length)}.json`);
491
+ assert.ok(file, "file exists");
492
+ let fileJSON = JSON.parse(file.content);
493
+ assert.strictEqual(fileJSON.data.attributes.name, "Andrea", "file exists");
494
+ });
495
+ (0, import_qunit.test)("can skip saving when adding to the store", async function(assert) {
496
+ assert.expect(3);
497
+ this.onSave(() => {
498
+ assert.ok(false, "save should not happen");
499
+ });
500
+ let instance = await storeService.add({ data: {
501
+ attributes: { name: "Andrea" },
502
+ meta: { adoptsFrom: {
503
+ module: testRRI("person"),
504
+ name: "Person"
505
+ } }
506
+ } }, { doNotPersist: true });
507
+ assert.strictEqual(instance.id, void 0, "instance has NOT been assigned remote id");
508
+ let peekedInstance = storeService.peek(instance[localId]);
509
+ assert.strictEqual(instance, peekedInstance, "instance is the same");
510
+ assert.strictEqual(instance.name, "Andrea", "instance data is correct");
511
+ });
512
+ (0, import_qunit.test)("can skip waiting for the save when adding to the store", async function(assert) {
513
+ assert.expect(6);
514
+ let didSave = false;
515
+ this.onSave((_, doc) => {
516
+ didSave = true;
517
+ assert.strictEqual(doc.data.attributes?.name, "Andrea", "card data is correct");
518
+ });
519
+ let instance = new PersonDef({ name: "Andrea" });
520
+ await storeService.add(instance, { doNotWaitForPersist: true });
521
+ assert.false(didSave, "the instance has not saved yet");
522
+ await waitUntil(() => didSave, { timeout: 1e4 });
523
+ assert.ok(instance.id, "instance has been assigned remote id");
524
+ let peekedInstance = storeService.peek(instance.id);
525
+ assert.strictEqual(instance, peekedInstance, "instance is the same");
526
+ let file = await testRealmAdapter.openFile(`${instance.id.substring(testRealmURL.length)}.json`);
527
+ assert.ok(file, "file exists");
528
+ let fileJSON = JSON.parse(file.content);
529
+ assert.strictEqual(fileJSON.data.attributes.name, "Andrea", "file exists");
530
+ });
531
+ (0, import_qunit.test)("can set realmURL when adding to the store", async function(assert) {
532
+ let instance = new PersonDef({ name: "Andrea" });
533
+ assert.strictEqual(instance[realmURL]?.href, void 0, "realmURL meta is not set on the instance");
534
+ await storeService.add(instance, {
535
+ doNotPersist: true,
536
+ realm: testRealmURL
537
+ });
538
+ assert.strictEqual(instance[realmURL]?.href, testRealmURL, "realmURL meta was set on the instance");
539
+ });
540
+ (0, import_qunit.test)("can add linked cards to the store when adding a card", async function(assert) {
541
+ let wu = new PersonDef({ name: "Wu" });
542
+ let michael = new PersonDef({ name: "Michael" });
543
+ let lin = new PersonDef({
544
+ name: "Lin",
545
+ bestFriend: wu,
546
+ friends: [michael]
547
+ });
548
+ await storeService.add(lin, { doNotPersist: true });
549
+ let peekedMichael = storeService.peek(michael[localId]);
550
+ assert.strictEqual(peekedMichael, michael, "michael instance added to store");
551
+ let peekedWu = storeService.peek(wu[localId]);
552
+ assert.strictEqual(peekedWu, wu, "wu instance added to store");
553
+ });
554
+ (0, import_qunit.test)("can reject a card added to the store that has a conflicting local ID for a given URL", async function(assert) {
555
+ storeService.addReference(`${testRealmURL}Person/hassan`);
556
+ await storeService.flush();
557
+ let doc = { data: {
558
+ type: "card",
559
+ id: testRRI("Person/hassan"),
560
+ attributes: { name: "Hassan" },
561
+ meta: { adoptsFrom: {
562
+ module: testRRI("person"),
563
+ name: "Person"
564
+ } }
565
+ } };
566
+ let conflictingInstance = await api.createFromSerialized(doc.data, doc, void 0);
567
+ try {
568
+ await storeService.add(conflictingInstance, { doNotPersist: true });
569
+ throw new Error("expected exception to be thrown");
570
+ } catch (err) {
571
+ assert.ok(err.message.includes("has conflicting instance id in store"), "the expected error was thrown");
572
+ }
573
+ });
574
+ (0, import_qunit.test)("added instance that was previously not saved will begin to auto save after being added", async function(assert) {
575
+ assert.expect(2);
576
+ let instance = new PersonDef({ name: "Andrea" });
577
+ await storeService.add(instance);
578
+ this.onSave((url, doc) => {
579
+ assert.strictEqual(url.href, instance.id, "the instance URL is correct");
580
+ assert.strictEqual(doc.data.attributes?.name, "Air", "card data is correct");
581
+ });
582
+ instance.name = "Air";
583
+ });
584
+ (0, import_qunit.test)("an instance will auto save when its data changes", async function(assert) {
585
+ assert.expect(2);
586
+ let instance = await storeService.get(`${testRealmURL}Person/hassan`);
587
+ this.onSave((url, doc) => {
588
+ assert.strictEqual(url.href, instance.id, "the instance URL is correct");
589
+ assert.strictEqual(doc.data.attributes?.name, "Paper", "card data is correct");
590
+ });
591
+ instance.name = "Paper";
592
+ });
593
+ (0, import_qunit.test)("an unsaved instance will auto save when its data changes", async function(assert) {
594
+ assert.expect(2);
595
+ let instance = new PersonDef({ name: "Andrea" });
596
+ await storeService.add(instance, { doNotPersist: true });
597
+ this.onSave((url, doc) => {
598
+ assert.strictEqual(url.href.split("/").pop(), instance[localId], "the new card url ends with the local id");
599
+ assert.strictEqual(doc.data.attributes?.name, "Air", "card data is correct");
600
+ });
601
+ instance.name = "Air";
602
+ });
603
+ (0, import_qunit.test)("an instance will NOT auto save when its data changes, if the user does not have write permissions", async function(assert) {
604
+ storeService.realm.permissions = () => ({
605
+ get canRead() {
606
+ return true;
607
+ },
608
+ get canWrite() {
609
+ return false;
610
+ }
611
+ });
612
+ let instance = await storeService.get(`${testRealmURL}Person/hassan`);
613
+ this.onSave(() => {
614
+ assert.ok(false, "should not save");
615
+ });
616
+ instance.name = "Paper";
617
+ assert.strictEqual(instance.name, "Paper");
618
+ let id = instance.id;
619
+ assert.deepEqual(storeService.getSaveState(id), {
620
+ hasUnsavedChanges: true,
621
+ isSaving: false,
622
+ lastSaveError: void 0,
623
+ lastSaved: void 0,
624
+ lastSavedErrorMsg: void 0
625
+ });
626
+ });
627
+ (0, import_qunit.test)("an instance can debounce auto saves", async function(assert) {
628
+ assert.expect(5);
629
+ setCardInOperatorModeState(`${testRealmURL}Person/hassan`, "edit");
630
+ await renderComponent(class TestDriver extends Component {
631
+ static {
632
+ setComponentTemplate(templateFactory({
633
+ "id": "ZD1xwmB+",
634
+ "block": "[[[8,[32,0],null,[[\"@onClose\"],[[32,1]]],null]],[],[]]",
635
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
636
+ "scope": () => [OperatorModeContainer, noop],
637
+ "isStrictMode": true
638
+ }), this);
639
+ }
640
+ });
641
+ let saveCount = 0;
642
+ this.onSave((url, doc) => {
643
+ saveCount++;
644
+ assert.strictEqual(url.href, `${testRealmURL}Person/hassan`, "correct document is saved");
645
+ switch (saveCount) {
646
+ case 1:
647
+ assert.strictEqual(doc.data?.attributes?.name, "Hassan ", "the initial instance mutation event is saved");
648
+ break;
649
+ case 2:
650
+ assert.strictEqual(doc.data?.attributes?.name, "Hassan Paper", "the final instance mutation event is saved");
651
+ break;
652
+ default: assert.ok(false, `unexpected number of saves: ${saveCount}`);
653
+ }
654
+ });
655
+ await withSlowSave(1e3, async () => {
656
+ await typeIn(`[data-test-stack-card="${testRealmURL}Person/hassan"] [data-test-field="name"] input`, " Paper");
657
+ assert.strictEqual(saveCount, 2, "the number of auto-saves is correct");
658
+ });
659
+ });
660
+ (0, import_qunit.test)("getSaveState works for initially unsaved instance", async function(assert) {
661
+ let instance = new PersonDef({ name: "Andrea" });
662
+ await storeService.add(instance, { doNotPersist: true });
663
+ assert.strictEqual(storeService.getSaveState(instance[localId]), void 0, "save state is undefined");
664
+ instance.name = "Air";
665
+ assert.true(storeService.getSaveState(instance[localId])?.isSaving, "isSaving state is correct");
666
+ await waitUntil(() => storeService.getSaveState(instance[localId])?.lastSaved, { timeout: 1e4 });
667
+ assert.false(storeService.getSaveState(instance[localId])?.isSaving, "isSaving state is correct");
668
+ assert.false(storeService.getSaveState(instance.id)?.isSaving, "isSaving state is correct (by remote id)");
669
+ assert.ok(storeService.getSaveState(instance.id)?.lastSaved, "lastSaved state is correct (by remote id)");
670
+ });
671
+ (0, import_qunit.test)("can capture error when auto saving", async function(assert) {
672
+ let instance = await storeService.get(`${testRealmURL}Person/hassan`);
673
+ try {
674
+ globalThis.__emulateServerPatchFailure = true;
675
+ instance.hasError = true;
676
+ await waitUntil(() => storeService.getSaveState(`${testRealmURL}Person/hassan`)?.lastSaveError, { timeout: 1e4 });
677
+ let saveState = storeService.getSaveState(`${testRealmURL}Person/hassan`);
678
+ assert.ok(saveState.lastSavedErrorMsg?.includes("intentional error thrown"), "error message is correct");
679
+ } finally {
680
+ delete globalThis.__emulateServerPatchFailure;
681
+ }
682
+ });
683
+ (0, import_qunit.test)("can delete card from the store", async function(assert) {
684
+ storeService.addReference(`${testRealmURL}Person/boris`);
685
+ await storeService.flush();
686
+ let instance = storeService.peek(`${testRealmURL}Person/boris`);
687
+ await storeService.delete(`${testRealmURL}Person/boris`);
688
+ assert.strictEqual(storeService.peek(instance.id), void 0, "the instance is no longer in the store");
689
+ assert.strictEqual(storeService.peek(instance[localId]), void 0, "the instance is no longer in the store (via local id)");
690
+ let file = await testRealmAdapter.openFile(`Person/boris.json`);
691
+ assert.strictEqual(file, void 0, "file no longer exists");
692
+ });
693
+ (0, import_qunit.test)("can patch an instance", async function(assert) {
694
+ let instance = await storeService.patch(`${testRealmURL}Person/hassan`, {
695
+ attributes: { name: "Hassan Updated" },
696
+ relationships: {
697
+ bestFriend: { links: { self: `${testRealmURL}Person/jade` } },
698
+ "friends.0": { links: { self: `${testRealmURL}Person/germaine` } }
699
+ }
700
+ });
701
+ let peekedInstance = storeService.peek(`${testRealmURL}Person/hassan`);
702
+ let jade = storeService.peek(`${testRealmURL}Person/jade`);
703
+ let germaine = storeService.peek(`${testRealmURL}Person/germaine`);
704
+ assert.strictEqual(peekedInstance, instance, "the patched instance is in the store");
705
+ assert.ok(isCardInstance(jade), "jade is in the store");
706
+ assert.ok(isCardInstance(germaine), "germaine is in the store");
707
+ assert.strictEqual(instance.name, "Hassan Updated", "the contains field was patched");
708
+ assert.strictEqual(instance.bestFriend, jade, "the linksTo field was patched");
709
+ assert.deepEqual(instance.friends, [germaine], "the linksToMany field was patched");
710
+ });
711
+ (0, import_qunit.test)("loads FileDef links from included resources", async function(assert) {
712
+ await testRealm.writeMany(new Map([
713
+ ["gallery.gts", `
714
+ import { CardDef, field, linksTo, linksToMany } from "https://cardstack.com/base/card-api";
715
+ import { FileDef } from "https://cardstack.com/base/file-api";
716
+
717
+ export class Gallery extends CardDef {
718
+ @field hero = linksTo(FileDef);
719
+ @field attachments = linksToMany(FileDef);
720
+ }
721
+ `],
722
+ ["Gallery/hero.json", JSON.stringify({
723
+ data: {
724
+ attributes: { cardInfo: {} },
725
+ relationships: {
726
+ hero: {
727
+ links: { self: `${testRealmURL}hero.png` },
728
+ data: {
729
+ type: "file-meta",
730
+ id: `${testRealmURL}hero.png`
731
+ }
732
+ },
733
+ "attachments.0": {
734
+ links: { self: `${testRealmURL}first.png` },
735
+ data: {
736
+ type: "file-meta",
737
+ id: `${testRealmURL}first.png`
738
+ }
739
+ },
740
+ "attachments.1": {
741
+ links: { self: `${testRealmURL}second.png` },
742
+ data: {
743
+ type: "file-meta",
744
+ id: `${testRealmURL}second.png`
745
+ }
746
+ }
747
+ },
748
+ meta: { adoptsFrom: {
749
+ module: testRRI("gallery"),
750
+ name: "Gallery"
751
+ } }
752
+ },
753
+ included: [
754
+ {
755
+ type: "file-meta",
756
+ id: `${testRealmURL}hero.png`,
757
+ attributes: {
758
+ name: "hero.png",
759
+ url: `${testRealmURL}hero.png`,
760
+ sourceUrl: `${testRealmURL}hero.png`,
761
+ contentType: "image/png"
762
+ },
763
+ meta: { adoptsFrom: {
764
+ module: "https://cardstack.com/base/card-api",
765
+ name: "FileDef"
766
+ } }
767
+ },
768
+ {
769
+ type: "file-meta",
770
+ id: `${testRealmURL}first.png`,
771
+ attributes: {
772
+ name: "first.png",
773
+ url: `${testRealmURL}first.png`,
774
+ sourceUrl: `${testRealmURL}first.png`,
775
+ contentType: "image/png"
776
+ },
777
+ meta: { adoptsFrom: {
778
+ module: "https://cardstack.com/base/card-api",
779
+ name: "FileDef"
780
+ } }
781
+ },
782
+ {
783
+ type: "file-meta",
784
+ id: `${testRealmURL}second.png`,
785
+ attributes: {
786
+ name: "second.png",
787
+ url: `${testRealmURL}second.png`,
788
+ sourceUrl: `${testRealmURL}second.png`,
789
+ contentType: "image/png"
790
+ },
791
+ meta: { adoptsFrom: {
792
+ module: "https://cardstack.com/base/card-api",
793
+ name: "FileDef"
794
+ } }
795
+ }
796
+ ]
797
+ })],
798
+ ["hero.png", "mock hero image"],
799
+ ["first.png", "mock first image"],
800
+ ["second.png", "mock second image"]
801
+ ]));
802
+ let gallery = await storeService.get(`${testRealmURL}Gallery/hero`);
803
+ assert.ok(gallery.hero, "hero is loaded from included resources");
804
+ assert.strictEqual(gallery.hero?.id, `${testRealmURL}hero.png`, "hero FileDef has id set from file meta");
805
+ assert.strictEqual(gallery.hero?.name, "hero.png", "hero FileDef uses file meta name");
806
+ assert.strictEqual(gallery.hero?.url, `${testRealmURL}hero.png`, "hero FileDef uses file meta url");
807
+ let attachments = gallery.attachments ?? [];
808
+ assert.strictEqual(attachments.length, 2, "attachments are loaded from included resources");
809
+ assert.strictEqual(attachments[0]?.id, `${testRealmURL}first.png`, "first attachment has id set from file meta");
810
+ assert.strictEqual(attachments[0]?.name, "first.png", "first attachment uses file meta name");
811
+ assert.strictEqual(attachments[1]?.id, `${testRealmURL}second.png`, "second attachment has id set from file meta");
812
+ assert.strictEqual(attachments[1]?.name, "second.png", "second attachment uses file meta name");
813
+ });
814
+ (0, import_qunit.test)("uses cached FileDef for links.self when field expects FileDef", async function(assert) {
815
+ await testRealm.writeMany(new Map([
816
+ ["gallery.gts", `
817
+ import { CardDef, field, linksTo } from "https://cardstack.com/base/card-api";
818
+ import { FileDef } from "https://cardstack.com/base/file-api";
819
+
820
+ export class Gallery extends CardDef {
821
+ @field hero = linksTo(FileDef);
822
+ }
823
+ `],
824
+ ["Gallery/cached.json", JSON.stringify({ data: {
825
+ attributes: { cardInfo: {} },
826
+ relationships: { hero: {
827
+ links: { self: `${testRealmURL}hero.png` },
828
+ data: {
829
+ type: "file-meta",
830
+ id: `${testRealmURL}hero.png`
831
+ }
832
+ } },
833
+ meta: { adoptsFrom: {
834
+ module: testRRI("gallery"),
835
+ name: "Gallery"
836
+ } }
837
+ } })],
838
+ ["hero.png", "mock hero image"]
839
+ ]));
840
+ let cachedFile = await storeService.get(`${testRealmURL}hero.png`, { type: "file-meta" });
841
+ let gallery = await storeService.get(`${testRealmURL}Gallery/cached`);
842
+ assert.strictEqual(gallery.hero, cachedFile, "links.self resolves to cached FileDef for FileDef fields");
843
+ });
844
+ (0, import_qunit.test)("can skip waiting for the save when patching an instance", async function(assert) {
845
+ assert.expect(4);
846
+ let targetId = `${testRealmURL}Person/hassan`;
847
+ let instance = await storeService.get(targetId);
848
+ let didSave = false;
849
+ this.onSave((url, doc) => {
850
+ if (url.href === targetId) {
851
+ didSave = true;
852
+ assert.strictEqual(doc.data.attributes?.name, "Hassan Updated", "patched data is persisted");
853
+ }
854
+ });
855
+ await storeService.patch(targetId, { attributes: { name: "Hassan Updated" } }, { doNotWaitForPersist: true });
856
+ assert.strictEqual(instance.name, "Hassan Updated", "local instance updated immediately");
857
+ assert.false(didSave, "instance has not been persisted yet");
858
+ await waitUntil(() => didSave);
859
+ let file = await testRealmAdapter.openFile("Person/hassan.json");
860
+ assert.strictEqual(JSON.parse(file.content).data.attributes.name, "Hassan Updated", "remote document reflects patch after persistence completes");
861
+ });
862
+ (0, import_qunit.test)("can patch an unsaved instance", async function(assert) {
863
+ let instance = new PersonDef({ name: "Andrea" });
864
+ await storeService.add(instance, {
865
+ doNotPersist: true,
866
+ realm: testRealmURL
867
+ });
868
+ await storeService.patch(instance[localId], {
869
+ attributes: { name: "Andrea Updated" },
870
+ relationships: {
871
+ bestFriend: { links: { self: `${testRealmURL}Person/queenzy` } },
872
+ "friends.0": { links: { self: `${testRealmURL}Person/germaine` } }
873
+ }
874
+ });
875
+ let peekedInstance = storeService.peek(instance[localId]);
876
+ let queenzy = storeService.peek(`${testRealmURL}Person/queenzy`);
877
+ let germaine = storeService.peek(`${testRealmURL}Person/germaine`);
878
+ assert.strictEqual(peekedInstance, instance, "the patched instance is in the store");
879
+ assert.ok(isCardInstance(queenzy), "queenzy is in the store");
880
+ assert.ok(isCardInstance(germaine), "germaine is in the store");
881
+ assert.strictEqual(instance[realmURL]?.href, testRealmURL, "the realm config on the instance is preserved");
882
+ assert.strictEqual(instance.name, "Andrea Updated", "the contains field was patched");
883
+ assert.strictEqual(instance.bestFriend, queenzy, "the linksTo field was patched");
884
+ assert.deepEqual(instance.friends, [germaine], "the linksToMany field was patched");
885
+ await waitUntil(() => instance.id, { timeoutMessage: "waiting for instance to get assigned an id" });
886
+ assert.ok(instance.id, "instance was assigned a remote id");
887
+ });
888
+ (0, import_qunit.test)("can skip save when patching an instance", async function(assert) {
889
+ this.onSave(() => {
890
+ assert.ok(false, "should not save");
891
+ });
892
+ let instance = await storeService.patch(`${testRealmURL}Person/hassan`, {
893
+ attributes: { name: "Hassan Updated" },
894
+ relationships: {
895
+ bestFriend: { links: { self: `${testRealmURL}Person/jade` } },
896
+ "friends.0": { links: { self: `${testRealmURL}Person/germaine` } }
897
+ }
898
+ }, { doNotPersist: true });
899
+ let peekedInstance = storeService.peek(`${testRealmURL}Person/hassan`);
900
+ let jade = storeService.peek(`${testRealmURL}Person/jade`);
901
+ let germaine = storeService.peek(`${testRealmURL}Person/germaine`);
902
+ assert.strictEqual(peekedInstance, instance, "the patched instance is in the store");
903
+ assert.ok(isCardInstance(jade), "jade is in the store");
904
+ assert.ok(isCardInstance(germaine), "germaine is in the store");
905
+ assert.strictEqual(instance.name, "Hassan Updated", "the contains field was patched");
906
+ assert.strictEqual(instance.bestFriend, jade, "the linksTo field was patched");
907
+ assert.deepEqual(instance.friends, [germaine], "the linksToMany field was patched");
908
+ });
909
+ (0, import_qunit.test)("can search", async function(assert) {
910
+ let results = await storeService.search({ filter: {
911
+ on: {
912
+ module: testRRI("person"),
913
+ name: "Person"
914
+ },
915
+ eq: { name: "Hassan" }
916
+ } }, [testRealmURL]);
917
+ assert.strictEqual(results.length, 1, "the correct number of results are returned");
918
+ assert.strictEqual(results[0].id, `${testRealmURL}Person/hassan`, "the result is correct");
919
+ });
920
+ (0, import_qunit.test)("an instance live updates from indexing events for an instance update", async function(assert) {
921
+ assert.expect(2);
922
+ let didSave = false;
923
+ this.onSave(() => {
924
+ didSave = true;
925
+ });
926
+ setCardInOperatorModeState(`${testRealmURL}Person/hassan`);
927
+ await renderComponent(class TestDriver extends Component {
928
+ static {
929
+ setComponentTemplate(templateFactory({
930
+ "id": "ZD1xwmB+",
931
+ "block": "[[[8,[32,0],null,[[\"@onClose\"],[[32,1]]],null]],[],[]]",
932
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
933
+ "scope": () => [OperatorModeContainer, noop],
934
+ "isStrictMode": true
935
+ }), this);
936
+ }
937
+ });
938
+ await testRealm.write("Person/hassan.json", JSON.stringify({ data: {
939
+ attributes: { name: "Hassan updated" },
940
+ meta: { adoptsFrom: {
941
+ module: testRRI("person"),
942
+ name: "Person"
943
+ } }
944
+ } }));
945
+ await waitUntil(() => storeService.peek(`${testRealmURL}Person/hassan`)?.name === "Hassan updated");
946
+ await storeService.flushSaves();
947
+ assert.dom("[data-test-stack-card] [data-test-field=\"name\"]").containsText("Hassan updated", "card live updated");
948
+ assert.false(didSave, "indexing updates do not auto save instances");
949
+ });
950
+ (0, import_qunit.test)("an instance live updates from indexing events for a code update", async function(assert) {
951
+ setCardInOperatorModeState(`${testRealmURL}Person/hassan`);
952
+ await renderComponent(class TestDriver extends Component {
953
+ static {
954
+ setComponentTemplate(templateFactory({
955
+ "id": "ZD1xwmB+",
956
+ "block": "[[[8,[32,0],null,[[\"@onClose\"],[[32,1]]],null]],[],[]]",
957
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
958
+ "scope": () => [OperatorModeContainer, noop],
959
+ "isStrictMode": true
960
+ }), this);
961
+ }
962
+ });
963
+ let instance = await storeService.get(`${testRealmURL}Person/hassan`);
964
+ await testRealm.write(`person.gts`, `
965
+ import { contains, field, Component, CardDef, } from 'https://cardstack.com/base/card-api';
966
+ import StringField from 'https://cardstack.com/base/string';
967
+
968
+ export class Person extends CardDef {
969
+ @field name = contains(StringField);
970
+ static isolated = class Isolated extends Component<typeof this> {
971
+ <template>
972
+ <div test-update>Hello</div>
973
+ <@fields.firstName />
974
+ </template>
975
+ };
976
+ }`.trim());
977
+ await waitFor("[test-update]", { timeout: 5e3 });
978
+ assert.dom("[test-update]").containsText("Hello", "the instance rendered with the new code");
979
+ let newInstance = storeService.peek(`${testRealmURL}Person/hassan`);
980
+ assert.notStrictEqual(instance[localId], newInstance[localId], "the updated instance is a different object than the original instance");
981
+ });
982
+ (0, import_qunit.test)("an instance can live update thru an error state", async function(assert) {
983
+ setCardInOperatorModeState(`${testRealmURL}Person/hassan`);
984
+ await renderComponent(class TestDriver extends Component {
985
+ static {
986
+ setComponentTemplate(templateFactory({
987
+ "id": "ZD1xwmB+",
988
+ "block": "[[[8,[32,0],null,[[\"@onClose\"],[[32,1]]],null]],[],[]]",
989
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
990
+ "scope": () => [OperatorModeContainer, noop],
991
+ "isStrictMode": true
992
+ }), this);
993
+ }
994
+ });
995
+ await testRealm.write("Person/hassan.json", JSON.stringify({ data: {
996
+ attributes: {
997
+ name: "Hassan",
998
+ hasError: true
999
+ },
1000
+ meta: { adoptsFrom: {
1001
+ module: testRRI("person"),
1002
+ name: "Person"
1003
+ } }
1004
+ } }));
1005
+ await waitFor("[data-test-card-error]");
1006
+ assert.dom("[data-test-error-message]").containsText("intentional error thrown");
1007
+ await click("[data-test-toggle-details]");
1008
+ assert.dom("[data-test-error-details]").includesText("Stack trace: Error: Encountered error rendering HTML");
1009
+ await testRealm.write("Person/hassan.json", JSON.stringify({ data: {
1010
+ attributes: {
1011
+ name: "Hassan",
1012
+ hasError: false
1013
+ },
1014
+ meta: { adoptsFrom: {
1015
+ module: testRRI("person"),
1016
+ name: "Person"
1017
+ } }
1018
+ } }));
1019
+ await waitFor("[data-test-card-error]", { count: 0 });
1020
+ assert.dom("[data-test-card-error]").doesNotExist("the error is dismissed");
1021
+ assert.dom("[data-test-stack-card] [data-test-field=\"name\"]").containsText("Hassan", "card is still rendered");
1022
+ });
1023
+ (0, import_qunit.test)("an instance can be restored after a loader reset", async function(assert) {
1024
+ setCardInOperatorModeState(`${testRealmURL}Person/hassan`);
1025
+ await renderComponent(class TestDriver extends Component {
1026
+ static {
1027
+ setComponentTemplate(templateFactory({
1028
+ "id": "ZD1xwmB+",
1029
+ "block": "[[[8,[32,0],null,[[\"@onClose\"],[[32,1]]],null]],[],[]]",
1030
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
1031
+ "scope": () => [OperatorModeContainer, noop],
1032
+ "isStrictMode": true
1033
+ }), this);
1034
+ }
1035
+ });
1036
+ assert.dom(`[data-stack-card="${testRealmURL}Person/hassan"] [data-test-field="name"]`).containsText("Hassan", "the card data is correct");
1037
+ await testRealm.write(`foo.gts`, `
1038
+ import { contains, CardDef } from 'https://cardstack.com/base/card-api';
1039
+ export class Foo extends CardDef {}
1040
+ `.trim());
1041
+ await waitFor("[data-test-stack-item-loading-card]", {
1042
+ count: 0,
1043
+ timeout: 5e3
1044
+ });
1045
+ assert.dom("[data-test-stack-item-loading-card]").doesNotExist("loading state is not displayed");
1046
+ assert.dom(`[data-stack-card="${testRealmURL}Person/hassan"] [data-test-field="name"]`).containsText("Hassan", "the card data is correct");
1047
+ });
1048
+ (0, import_qunit.test)("an instance that started out with a local ID can be restored after a loader reset", async function(assert) {
1049
+ let newInstance = new PersonDef({ name: "Andrea" });
1050
+ await storeService.add(newInstance, { realm: testRealmURL });
1051
+ setCardInOperatorModeState(newInstance[localId]);
1052
+ await renderComponent(class TestDriver extends Component {
1053
+ static {
1054
+ setComponentTemplate(templateFactory({
1055
+ "id": "ZD1xwmB+",
1056
+ "block": "[[[8,[32,0],null,[[\"@onClose\"],[[32,1]]],null]],[],[]]",
1057
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
1058
+ "scope": () => [OperatorModeContainer, noop],
1059
+ "isStrictMode": true
1060
+ }), this);
1061
+ }
1062
+ });
1063
+ assert.dom(`[data-stack-card="${newInstance.id}"] [data-test-field="name"]`).containsText("Andrea", "the card data is correct");
1064
+ await testRealm.write(`foo.gts`, `
1065
+ import { contains, CardDef } from 'https://cardstack.com/base/card-api';
1066
+ export class Foo extends CardDef {}
1067
+ `.trim());
1068
+ await waitFor("[data-test-stack-item-loading-card]", {
1069
+ count: 0,
1070
+ timeout: 5e3
1071
+ });
1072
+ assert.dom("[data-test-stack-item-loading-card]").doesNotExist("loading state is not displayed");
1073
+ assert.dom(`[data-stack-card="${newInstance.id}"] [data-test-field="name"]`).containsText("Andrea", "the card data is correct");
1074
+ });
1075
+ (0, import_qunit.test)("an unsaved instance live updates when realm event matching local ID is received", async function(assert) {
1076
+ let newInstance = new PersonDef({ name: "Andrea" });
1077
+ await storeService.add(newInstance, { doNotPersist: true });
1078
+ storeService.addReference(`${testRealmURL}Person/hassan`);
1079
+ await storeService.flush();
1080
+ let instance = storeService.peek(`${testRealmURL}Person/hassan`);
1081
+ instance.friends = [newInstance];
1082
+ await waitUntil(() => newInstance.id, { timeout: 5e3 });
1083
+ assert.strictEqual(newInstance.id.split("/").pop(), newInstance[localId], "the new instance was live updated with a remote id");
1084
+ });
1085
+ (0, import_qunit.test)("an unsaved instance will auto save after it has been assigned a remote ID", async function(assert) {
1086
+ assert.expect(2);
1087
+ let newInstance = new PersonDef({ name: "Andrea" });
1088
+ await storeService.add(newInstance, { doNotPersist: true });
1089
+ storeService.addReference(`${testRealmURL}Person/hassan`);
1090
+ await storeService.flush();
1091
+ let instance = storeService.peek(`${testRealmURL}Person/hassan`);
1092
+ instance.friends = [newInstance];
1093
+ await waitUntil(() => newInstance.id, { timeout: 5e3 });
1094
+ this.onSave((url, doc) => {
1095
+ if (url.href === newInstance.id) {
1096
+ assert.strictEqual(url.href, newInstance.id, "the save url is correct");
1097
+ assert.strictEqual(doc.data.attributes?.name, "Air", "card data is correct");
1098
+ }
1099
+ });
1100
+ newInstance.name = "Air";
1101
+ });
1102
+ (0, import_qunit.test)("reference count is balanced when used with CardResource that is destroyed", async function(assert) {
1103
+ class Driver {
1104
+ static {
1105
+ decorateFieldV2(this.prototype, "showComponent", [tracked], function() {
1106
+ return false;
1107
+ });
1108
+ }
1109
+ #showComponent = (initializeDeferredDecorator(this, "showComponent"), void 0);
1110
+ static {
1111
+ decorateFieldV2(this.prototype, "id", [tracked]);
1112
+ }
1113
+ #id = (initializeDeferredDecorator(this, "id"), void 0);
1114
+ }
1115
+ let driver = new Driver();
1116
+ class ResourceConsumer extends Component {
1117
+ resource = getCard(this, () => driver.id);
1118
+ get renderedCard() {
1119
+ return this.resource.card?.constructor.getComponent(this.resource.card);
1120
+ }
1121
+ static {
1122
+ setComponentTemplate(templateFactory({
1123
+ "id": "XWrL4bCI",
1124
+ "block": "[[[41,[30,0,[\"resource\",\"card\"]],[[[1,\" \"],[8,[30,0,[\"renderedCard\"]],[[16,\"data-test-rendered-card\",[30,0,[\"resource\",\"id\"]]]],null,null],[1,\"\\n\"]],[]],null]],[],[\"if\"]]",
1125
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
1126
+ "isStrictMode": true
1127
+ }), this);
1128
+ }
1129
+ }
1130
+ await renderComponent(class TestDriver extends Component {
1131
+ static {
1132
+ setComponentTemplate(templateFactory({
1133
+ "id": "hNRtWalG",
1134
+ "block": "[[[41,[32,0,[\"showComponent\"]],[[[1,\" \"],[8,[32,1],null,null,null],[1,\"\\n\"]],[]],null]],[],[\"if\"]]",
1135
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
1136
+ "scope": () => [driver, ResourceConsumer],
1137
+ "isStrictMode": true
1138
+ }), this);
1139
+ }
1140
+ });
1141
+ driver.showComponent = true;
1142
+ let jade = `${testRealmURL}Person/jade`;
1143
+ let hassan = `${testRealmURL}Person/hassan`;
1144
+ driver.id = hassan;
1145
+ await waitFor(`[data-test-rendered-card="${hassan}"]`);
1146
+ assert.strictEqual(storeService.getReferenceCount(jade), 0, `reference count for ${jade} is 0`);
1147
+ assert.strictEqual(storeService.getReferenceCount(hassan), 1, `reference count for ${hassan} is 1`);
1148
+ driver.id = jade;
1149
+ await waitFor(`[data-test-rendered-card="${jade}"]`);
1150
+ assert.strictEqual(storeService.getReferenceCount(jade), 1, `reference count for ${jade} is 1`);
1151
+ assert.strictEqual(storeService.getReferenceCount(hassan), 0, `reference count for ${hassan} is 0`);
1152
+ driver.showComponent = false;
1153
+ await waitFor(`[data-test-rendered-card]`, { count: 0 });
1154
+ assert.strictEqual(storeService.getReferenceCount(jade), 0, `reference count for ${jade} is 0`);
1155
+ assert.strictEqual(storeService.getReferenceCount(hassan), 0, `reference count for ${hassan} is 0`);
1156
+ });
1157
+ (0, import_qunit.test)("reference count is balanced when used with CardResource for file-meta that is destroyed", async function(assert) {
1158
+ class Driver {
1159
+ static {
1160
+ decorateFieldV2(this.prototype, "showComponent", [tracked], function() {
1161
+ return false;
1162
+ });
1163
+ }
1164
+ #showComponent = (initializeDeferredDecorator(this, "showComponent"), void 0);
1165
+ static {
1166
+ decorateFieldV2(this.prototype, "id", [tracked]);
1167
+ }
1168
+ #id = (initializeDeferredDecorator(this, "id"), void 0);
1169
+ }
1170
+ let driver = new Driver();
1171
+ let firstFile = `${testRealmURL}notes.txt`;
1172
+ let secondFile = `${testRealmURL}README.txt`;
1173
+ await testRealm.write("notes.txt", "notes");
1174
+ await testRealm.write("README.txt", "readme");
1175
+ class ResourceConsumer extends Component {
1176
+ resource = getCard(this, () => driver.id, { type: "file-meta" });
1177
+ static {
1178
+ setComponentTemplate(templateFactory({
1179
+ "id": "5jWS7tbo",
1180
+ "block": "[[[41,[30,0,[\"resource\",\"card\"]],[[[1,\" \"],[10,0],[15,\"data-test-rendered-file\",[30,0,[\"resource\",\"id\"]]],[12],[13],[1,\"\\n\"]],[]],null]],[],[\"if\"]]",
1181
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
1182
+ "isStrictMode": true
1183
+ }), this);
1184
+ }
1185
+ }
1186
+ await renderComponent(class TestDriver extends Component {
1187
+ static {
1188
+ setComponentTemplate(templateFactory({
1189
+ "id": "hNRtWalG",
1190
+ "block": "[[[41,[32,0,[\"showComponent\"]],[[[1,\" \"],[8,[32,1],null,null,null],[1,\"\\n\"]],[]],null]],[],[\"if\"]]",
1191
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
1192
+ "scope": () => [driver, ResourceConsumer],
1193
+ "isStrictMode": true
1194
+ }), this);
1195
+ }
1196
+ });
1197
+ driver.showComponent = true;
1198
+ driver.id = firstFile;
1199
+ await waitFor(`[data-test-rendered-file="${firstFile}"]`);
1200
+ assert.strictEqual(storeService.getReferenceCount(firstFile), 1, `reference count for ${firstFile} is 1`);
1201
+ assert.strictEqual(storeService.getReferenceCount(secondFile), 0, `reference count for ${secondFile} is 0`);
1202
+ driver.id = secondFile;
1203
+ await waitFor(`[data-test-rendered-file="${secondFile}"]`);
1204
+ assert.strictEqual(storeService.getReferenceCount(firstFile), 0, `reference count for ${firstFile} is 0`);
1205
+ assert.strictEqual(storeService.getReferenceCount(secondFile), 1, `reference count for ${secondFile} is 1`);
1206
+ driver.showComponent = false;
1207
+ await waitFor(`[data-test-rendered-file]`, { count: 0 });
1208
+ assert.strictEqual(storeService.getReferenceCount(firstFile), 0, `reference count for ${firstFile} is 0`);
1209
+ assert.strictEqual(storeService.getReferenceCount(secondFile), 0, `reference count for ${secondFile} is 0`);
1210
+ });
1211
+ (0, import_qunit.test)("reference count is balanced during auto saving", async function(assert) {
1212
+ let hassan = `${testRealmURL}Person/hassan`;
1213
+ setCardInOperatorModeState(hassan, "edit");
1214
+ await renderComponent(class TestDriver extends Component {
1215
+ static {
1216
+ setComponentTemplate(templateFactory({
1217
+ "id": "ZD1xwmB+",
1218
+ "block": "[[[8,[32,0],null,[[\"@onClose\"],[[32,1]]],null]],[],[]]",
1219
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
1220
+ "scope": () => [OperatorModeContainer, noop],
1221
+ "isStrictMode": true
1222
+ }), this);
1223
+ }
1224
+ });
1225
+ assert.strictEqual(storeService.getReferenceCount(hassan), 1, `reference count for ${hassan} is 1`);
1226
+ await withSlowSave(1e3, async () => {
1227
+ await typeIn(`[data-test-stack-card="${testRealmURL}Person/hassan"] [data-test-field="name"] input`, " Paper");
1228
+ assert.strictEqual(storeService.getReferenceCount(hassan), 1, `reference count for ${hassan} is 1`);
1229
+ });
1230
+ assert.strictEqual(storeService.getReferenceCount(hassan), 1, `reference count for ${hassan} is 1`);
1231
+ });
1232
+ (0, import_qunit.test)("reference count is balanced when used with CardCollectionResource that is destroyed", async function(assert) {
1233
+ class Driver {
1234
+ static {
1235
+ decorateFieldV2(this.prototype, "showComponent", [tracked], function() {
1236
+ return false;
1237
+ });
1238
+ }
1239
+ #showComponent = (initializeDeferredDecorator(this, "showComponent"), void 0);
1240
+ static {
1241
+ decorateFieldV2(this.prototype, "id", [tracked]);
1242
+ }
1243
+ #id = (initializeDeferredDecorator(this, "id"), void 0);
1244
+ }
1245
+ let driver = new Driver();
1246
+ class ResourceConsumer extends Component {
1247
+ resource = getCardCollection(this, () => driver.id ? [driver.id] : []);
1248
+ get card() {
1249
+ return this.resource.cards[0];
1250
+ }
1251
+ get renderedCard() {
1252
+ return this.card?.constructor.getComponent(this.card);
1253
+ }
1254
+ static {
1255
+ setComponentTemplate(templateFactory({
1256
+ "id": "99aOV2w7",
1257
+ "block": "[[[41,[30,0,[\"card\"]],[[[1,\" \"],[8,[30,0,[\"renderedCard\"]],[[16,\"data-test-rendered-card\",[30,0,[\"card\",\"id\"]]]],null,null],[1,\"\\n\"]],[]],null]],[],[\"if\"]]",
1258
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
1259
+ "isStrictMode": true
1260
+ }), this);
1261
+ }
1262
+ }
1263
+ await renderComponent(class TestDriver extends Component {
1264
+ static {
1265
+ setComponentTemplate(templateFactory({
1266
+ "id": "hNRtWalG",
1267
+ "block": "[[[41,[32,0,[\"showComponent\"]],[[[1,\" \"],[8,[32,1],null,null,null],[1,\"\\n\"]],[]],null]],[],[\"if\"]]",
1268
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
1269
+ "scope": () => [driver, ResourceConsumer],
1270
+ "isStrictMode": true
1271
+ }), this);
1272
+ }
1273
+ });
1274
+ driver.showComponent = true;
1275
+ let jade = `${testRealmURL}Person/jade`;
1276
+ let hassan = `${testRealmURL}Person/hassan`;
1277
+ driver.id = hassan;
1278
+ await waitFor(`[data-test-rendered-card="${hassan}"]`);
1279
+ assert.strictEqual(storeService.getReferenceCount(jade), 0, `reference count for ${jade} is 0`);
1280
+ assert.strictEqual(storeService.getReferenceCount(hassan), 1, `reference count for ${hassan} is 1`);
1281
+ driver.id = jade;
1282
+ await waitFor(`[data-test-rendered-card="${jade}"]`);
1283
+ assert.strictEqual(storeService.getReferenceCount(jade), 1, `reference count for ${jade} is 1`);
1284
+ assert.strictEqual(storeService.getReferenceCount(hassan), 0, `reference count for ${hassan} is 0`);
1285
+ driver.showComponent = false;
1286
+ await waitFor(`[data-test-rendered-card]`, { count: 0 });
1287
+ assert.strictEqual(storeService.getReferenceCount(jade), 0, `reference count for ${jade} is 0`);
1288
+ assert.strictEqual(storeService.getReferenceCount(hassan), 0, `reference count for ${hassan} is 0`);
1289
+ });
1290
+ (0, import_qunit.test)("reference count is balanced when used with SearchResource that is destroyed", async function(assert) {
1291
+ class Driver {
1292
+ static {
1293
+ decorateFieldV2(this.prototype, "showComponent", [tracked], function() {
1294
+ return false;
1295
+ });
1296
+ }
1297
+ #showComponent = (initializeDeferredDecorator(this, "showComponent"), void 0);
1298
+ static {
1299
+ decorateFieldV2(this.prototype, "id", [tracked]);
1300
+ }
1301
+ #id = (initializeDeferredDecorator(this, "id"), void 0);
1302
+ }
1303
+ let driver = new Driver();
1304
+ class ResourceConsumer extends Component {
1305
+ static {
1306
+ decorateFieldV2(this.prototype, "store", [service]);
1307
+ }
1308
+ #store = (initializeDeferredDecorator(this, "store"), void 0);
1309
+ get resource() {
1310
+ return this.store.getSearchResource(this, () => driver.id ? { filter: {
1311
+ on: baseCardRef,
1312
+ eq: { id: driver.id }
1313
+ } } : void 0);
1314
+ }
1315
+ static {
1316
+ decorateMethodV2(this.prototype, "resource", [cached]);
1317
+ }
1318
+ get card() {
1319
+ return this.resource.instances[0];
1320
+ }
1321
+ static {
1322
+ setComponentTemplate(templateFactory({
1323
+ "id": "F3i58yQO",
1324
+ "block": "[[[41,[30,0,[\"card\"]],[[[1,\" \"],[10,0],[15,\"data-test-rendered-card\",[30,0,[\"card\",\"id\"]]],[12],[1,\"\\n \"],[1,[30,0,[\"card\",\"id\"]]],[1,\"\\n \"],[13],[1,\"\\n\"]],[]],null]],[],[\"if\"]]",
1325
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
1326
+ "isStrictMode": true
1327
+ }), this);
1328
+ }
1329
+ }
1330
+ await renderComponent(class TestDriver extends Component {
1331
+ static {
1332
+ setComponentTemplate(templateFactory({
1333
+ "id": "hNRtWalG",
1334
+ "block": "[[[41,[32,0,[\"showComponent\"]],[[[1,\" \"],[8,[32,1],null,null,null],[1,\"\\n\"]],[]],null]],[],[\"if\"]]",
1335
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
1336
+ "scope": () => [driver, ResourceConsumer],
1337
+ "isStrictMode": true
1338
+ }), this);
1339
+ }
1340
+ });
1341
+ driver.showComponent = true;
1342
+ let jade = `${testRealmURL}Person/jade`;
1343
+ let hassan = `${testRealmURL}Person/hassan`;
1344
+ driver.id = hassan;
1345
+ await waitUntil(() => storeService.getReferenceCount(hassan) === 1 && storeService.getReferenceCount(jade) === 0, { timeout: 1e4 });
1346
+ assert.strictEqual(storeService.getReferenceCount(jade), 0, `reference count for ${jade} is 0`);
1347
+ assert.strictEqual(storeService.getReferenceCount(hassan), 1, `reference count for ${hassan} is 1`);
1348
+ driver.id = jade;
1349
+ await waitUntil(() => storeService.getReferenceCount(jade) === 1 && storeService.getReferenceCount(hassan) === 0, { timeout: 1e4 });
1350
+ assert.strictEqual(storeService.getReferenceCount(jade), 1, `reference count for ${jade} is 1`);
1351
+ assert.strictEqual(storeService.getReferenceCount(hassan), 0, `reference count for ${hassan} is 0`);
1352
+ driver.showComponent = false;
1353
+ await waitUntil(() => storeService.getReferenceCount(jade) === 0 && storeService.getReferenceCount(hassan) === 0, { timeout: 1e4 });
1354
+ assert.strictEqual(storeService.getReferenceCount(jade), 0, `reference count for ${jade} is 0`);
1355
+ assert.strictEqual(storeService.getReferenceCount(hassan), 0, `reference count for ${hassan} is 0`);
1356
+ });
1357
+ (0, import_qunit.test)("reference count is balanced when used with SearchResource that live updates when there is a index event", async function(assert) {
1358
+ class Driver {
1359
+ static {
1360
+ decorateFieldV2(this.prototype, "id", [tracked]);
1361
+ }
1362
+ #id = (initializeDeferredDecorator(this, "id"), void 0);
1363
+ }
1364
+ let driver = new Driver();
1365
+ class ResourceConsumer extends Component {
1366
+ static {
1367
+ decorateFieldV2(this.prototype, "store", [service]);
1368
+ }
1369
+ #store = (initializeDeferredDecorator(this, "store"), void 0);
1370
+ get resource() {
1371
+ return this.store.getSearchResource(this, () => driver.id ? { filter: {
1372
+ on: baseCardRef,
1373
+ eq: { id: driver.id }
1374
+ } } : void 0, void 0, { isLive: true });
1375
+ }
1376
+ static {
1377
+ decorateMethodV2(this.prototype, "resource", [cached]);
1378
+ }
1379
+ get card() {
1380
+ return this.resource.instances[0];
1381
+ }
1382
+ get renderedCard() {
1383
+ return this.card?.constructor.getComponent(this.card);
1384
+ }
1385
+ static {
1386
+ setComponentTemplate(templateFactory({
1387
+ "id": "99aOV2w7",
1388
+ "block": "[[[41,[30,0,[\"card\"]],[[[1,\" \"],[8,[30,0,[\"renderedCard\"]],[[16,\"data-test-rendered-card\",[30,0,[\"card\",\"id\"]]]],null,null],[1,\"\\n\"]],[]],null]],[],[\"if\"]]",
1389
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
1390
+ "isStrictMode": true
1391
+ }), this);
1392
+ }
1393
+ }
1394
+ await renderComponent(class TestDriver extends Component {
1395
+ static {
1396
+ setComponentTemplate(templateFactory({
1397
+ "id": "HtmuKyv7",
1398
+ "block": "[[[8,[32,0],null,null,null]],[],[]]",
1399
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
1400
+ "scope": () => [ResourceConsumer],
1401
+ "isStrictMode": true
1402
+ }), this);
1403
+ }
1404
+ });
1405
+ let jade = `${testRealmURL}Person/jade`;
1406
+ driver.id = jade;
1407
+ await waitFor(`[data-test-rendered-card="${jade}"]`, { timeout: 5e3 });
1408
+ assert.strictEqual(storeService.getReferenceCount(jade), 1, `reference count for ${jade} is 1`);
1409
+ let deferred = new Deferred();
1410
+ let unsubscribe = getService("message-service").subscribe(testRealmURL, (ev) => {
1411
+ if (ev.eventName === "index" && ev.indexType === "incremental") {
1412
+ unsubscribe();
1413
+ deferred.fulfill();
1414
+ }
1415
+ });
1416
+ await testRealm.write("Person/hassan.json", JSON.stringify({ data: {
1417
+ attributes: { name: "Paper" },
1418
+ meta: { adoptsFrom: {
1419
+ module: testRRI("person"),
1420
+ name: "Person"
1421
+ } }
1422
+ } }));
1423
+ await deferred.promise;
1424
+ deferred = new Deferred();
1425
+ await testRealm.write("Person/hassan.json", JSON.stringify({ data: {
1426
+ attributes: { name: "Paper" },
1427
+ meta: { adoptsFrom: {
1428
+ module: testRRI("person"),
1429
+ name: "Person"
1430
+ } }
1431
+ } }));
1432
+ assert.strictEqual(storeService.getReferenceCount(jade), 1, `reference count for ${jade} is 1`);
1433
+ });
1434
+ (0, import_qunit.test)("reference count is balanced when used with CardCollectionResource when there is a index event", async function(assert) {
1435
+ class Driver {
1436
+ static {
1437
+ decorateFieldV2(this.prototype, "id", [tracked]);
1438
+ }
1439
+ #id = (initializeDeferredDecorator(this, "id"), void 0);
1440
+ }
1441
+ let driver = new Driver();
1442
+ class ResourceConsumer extends Component {
1443
+ resource = getCardCollection(this, () => driver.id ? [driver.id] : []);
1444
+ get card() {
1445
+ return this.resource.cards[0];
1446
+ }
1447
+ get renderedCard() {
1448
+ return this.card?.constructor.getComponent(this.card);
1449
+ }
1450
+ static {
1451
+ setComponentTemplate(templateFactory({
1452
+ "id": "99aOV2w7",
1453
+ "block": "[[[41,[30,0,[\"card\"]],[[[1,\" \"],[8,[30,0,[\"renderedCard\"]],[[16,\"data-test-rendered-card\",[30,0,[\"card\",\"id\"]]]],null,null],[1,\"\\n\"]],[]],null]],[],[\"if\"]]",
1454
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
1455
+ "isStrictMode": true
1456
+ }), this);
1457
+ }
1458
+ }
1459
+ await renderComponent(class TestDriver extends Component {
1460
+ static {
1461
+ setComponentTemplate(templateFactory({
1462
+ "id": "HtmuKyv7",
1463
+ "block": "[[[8,[32,0],null,null,null]],[],[]]",
1464
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
1465
+ "scope": () => [ResourceConsumer],
1466
+ "isStrictMode": true
1467
+ }), this);
1468
+ }
1469
+ });
1470
+ let jade = `${testRealmURL}Person/jade`;
1471
+ driver.id = jade;
1472
+ await waitFor(`[data-test-rendered-card="${jade}"]`, { timeout: 5e3 });
1473
+ assert.strictEqual(storeService.getReferenceCount(jade), 1, `reference count for ${jade} is 1`);
1474
+ let deferred = new Deferred();
1475
+ let unsubscribe = getService("message-service").subscribe(testRealmURL, (ev) => {
1476
+ if (ev.eventName === "index" && ev.indexType === "incremental") {
1477
+ unsubscribe();
1478
+ deferred.fulfill();
1479
+ }
1480
+ });
1481
+ await testRealm.write("Person/hassan.json", JSON.stringify({ data: {
1482
+ attributes: { name: "Paper" },
1483
+ meta: { adoptsFrom: {
1484
+ module: testRRI("person"),
1485
+ name: "Person"
1486
+ } }
1487
+ } }));
1488
+ await deferred.promise;
1489
+ deferred = new Deferred();
1490
+ await testRealm.write("Person/hassan.json", JSON.stringify({ data: {
1491
+ attributes: { name: "Paper" },
1492
+ meta: { adoptsFrom: {
1493
+ module: testRRI("person"),
1494
+ name: "Person"
1495
+ } }
1496
+ } }));
1497
+ assert.strictEqual(storeService.getReferenceCount(jade), 1, `reference count for ${jade} is 1`);
1498
+ });
1499
+ (0, import_qunit.test)("reference count is balanced when used with CardResource when there is a index event", async function(assert) {
1500
+ class Driver {
1501
+ static {
1502
+ decorateFieldV2(this.prototype, "id", [tracked]);
1503
+ }
1504
+ #id = (initializeDeferredDecorator(this, "id"), void 0);
1505
+ }
1506
+ let driver = new Driver();
1507
+ class ResourceConsumer extends Component {
1508
+ resource = getCard(this, () => driver.id);
1509
+ get renderedCard() {
1510
+ return this.resource.card?.constructor.getComponent(this.resource.card);
1511
+ }
1512
+ static {
1513
+ setComponentTemplate(templateFactory({
1514
+ "id": "XWrL4bCI",
1515
+ "block": "[[[41,[30,0,[\"resource\",\"card\"]],[[[1,\" \"],[8,[30,0,[\"renderedCard\"]],[[16,\"data-test-rendered-card\",[30,0,[\"resource\",\"id\"]]]],null,null],[1,\"\\n\"]],[]],null]],[],[\"if\"]]",
1516
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
1517
+ "isStrictMode": true
1518
+ }), this);
1519
+ }
1520
+ }
1521
+ await renderComponent(class TestDriver extends Component {
1522
+ static {
1523
+ setComponentTemplate(templateFactory({
1524
+ "id": "HtmuKyv7",
1525
+ "block": "[[[8,[32,0],null,null,null]],[],[]]",
1526
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/store-test.gts",
1527
+ "scope": () => [ResourceConsumer],
1528
+ "isStrictMode": true
1529
+ }), this);
1530
+ }
1531
+ });
1532
+ let jade = `${testRealmURL}Person/jade`;
1533
+ driver.id = jade;
1534
+ await waitFor(`[data-test-rendered-card="${jade}"]`, { timeout: 5e3 });
1535
+ assert.strictEqual(storeService.getReferenceCount(jade), 1, `reference count for ${jade} is 1`);
1536
+ let deferred = new Deferred();
1537
+ let unsubscribe = getService("message-service").subscribe(testRealmURL, (ev) => {
1538
+ if (ev.eventName === "index" && ev.indexType === "incremental") {
1539
+ unsubscribe();
1540
+ deferred.fulfill();
1541
+ }
1542
+ });
1543
+ await testRealm.write("Person/hassan.json", JSON.stringify({ data: {
1544
+ attributes: { name: "Paper" },
1545
+ meta: { adoptsFrom: {
1546
+ module: testRRI("person"),
1547
+ name: "Person"
1548
+ } }
1549
+ } }));
1550
+ await deferred.promise;
1551
+ deferred = new Deferred();
1552
+ await testRealm.write("Person/hassan.json", JSON.stringify({ data: {
1553
+ attributes: { name: "Paper" },
1554
+ meta: { adoptsFrom: {
1555
+ module: testRRI("person"),
1556
+ name: "Person"
1557
+ } }
1558
+ } }));
1559
+ assert.strictEqual(storeService.getReferenceCount(jade), 1, `reference count for ${jade} is 1`);
1560
+ });
1561
+ });
1562
+ //#endregion