@cardstack/boxel-cli 0.13.0-unstable.4 → 0.13.0-unstable.6

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 (1058) hide show
  1. package/bundled-realms/pretui/components/doc-report.gts +2 -2
  2. package/bundled-realms/pretui/components/doc-report.usage.gts +3 -3
  3. package/bundled-realms/pretui/components/form-field.md +1 -1
  4. package/bundled-realms/pretui/components/icon-button.md +1 -1
  5. package/bundled-realms/pretui/components/popup.md +1 -1
  6. package/bundled-realms/pretui/components/switch.gts +13 -0
  7. package/bundled-realms/pretui/components/switch.md +5 -3
  8. package/bundled-realms/pretui/components/theme-frame.gts +49 -22
  9. package/bundled-realms/pretui/components/tooltip.gts +141 -42
  10. package/bundled-realms/pretui/components/tooltip.md +10 -12
  11. package/bundled-realms/pretui/components/tooltip.usage.gts +3 -5
  12. package/bundled-realms/pretui/docs/structure.md +1 -1
  13. package/bundled-realms/pretui/internal/overlay.gts +4 -2
  14. package/bundled-realms/pretui/pretui-css.gts +6 -2
  15. package/bundled-realms/pretui/theme-scoped-css.gts +262 -0
  16. package/bundled-test-harness/assets/account-switch-failed-test-DwAZq6Sc.js +45 -0
  17. package/bundled-test-harness/assets/adapter-C_6pnsx1.js +2 -0
  18. package/bundled-test-harness/assets/add-field-to-card-definition-tool-test-zMYtJWBv.js +112 -0
  19. package/bundled-test-harness/assets/ai-assistant-create-workspace-test-CwhAV-Ow.js +130 -0
  20. package/bundled-test-harness/assets/ai-assistant-panel-relogin-test-DNgclkGJ.js +46 -0
  21. package/bundled-test-harness/assets/ai-assistant-test-DGYFiRTb.js +2223 -0
  22. package/bundled-test-harness/assets/ai-function-generation-test-Dj6WzKkh.js +1176 -0
  23. package/bundled-test-harness/assets/ai-module-creation-test-C4zhhxaZ.js +151 -0
  24. package/bundled-test-harness/assets/aibot-message-BShcljQ9.js +1312 -0
  25. package/bundled-test-harness/assets/app-DiEYqT6T.js +14146 -0
  26. package/bundled-test-harness/assets/apply-markdown-edit-test-CPhfeg1i.js +230 -0
  27. package/bundled-test-harness/assets/ask-user-picker-NVRkhKwt.js +370 -0
  28. package/bundled-test-harness/assets/ask-user-picker-test-SsZqFm9W.js +39 -0
  29. package/bundled-test-harness/assets/assistant-transcript-test-DesuBCIB.js +57 -0
  30. package/bundled-test-harness/assets/audio-metadata-extractor-test-8JM6oZXG.js +1176 -0
  31. package/bundled-test-harness/assets/authed-fetch-test-yPTMe-9V.js +73 -0
  32. package/bundled-test-harness/assets/avif-image-def-test-Kyknj908.js +187 -0
  33. package/bundled-test-harness/assets/basic-test-D9OrrMaq.js +139 -0
  34. package/bundled-test-harness/assets/binary-upload-dedupe-test-C0RFmHma.js +308 -0
  35. package/bundled-test-harness/assets/bot-registration-test-Bk2lTaCW.js +97 -0
  36. package/bundled-test-harness/assets/box-test-BbV9sMyU.js +50 -0
  37. package/bundled-test-harness/assets/brand-guide-attachments-test-z4wTsKbI.js +84 -0
  38. package/bundled-test-harness/assets/brand-guide-custom-css-test-BlSJE8xo.js +196 -0
  39. package/bundled-test-harness/assets/brand-guide-edit-test-DJ1OQ6IB.js +140 -0
  40. package/bundled-test-harness/assets/brand-logo-mark-field-test-ux7eetkO.js +86 -0
  41. package/bundled-test-harness/assets/broken-link-template-test-CqB3MWyw.js +192 -0
  42. package/bundled-test-harness/assets/bundled-base-modules-test-B2oNLZSJ.js +54 -0
  43. package/bundled-test-harness/assets/bundled-base-oracle-test-DelPfFjn.js +37 -0
  44. package/bundled-test-harness/assets/buried-stack-item-scroll-test-Ixsl1tS0.js +236 -0
  45. package/bundled-test-harness/assets/button-BvYQm_A1.js +141 -0
  46. package/bundled-test-harness/assets/bxl-cyclic-graph-test-p23WCLRW.js +47 -0
  47. package/bundled-test-harness/assets/bxl-expression-test-CVTQYT_C.js +250 -0
  48. package/bundled-test-harness/assets/bxl-indexing-test-D_A7X2sr.js +212 -0
  49. package/bundled-test-harness/assets/bxl-platform-module-test-Cltfyybp.js +71 -0
  50. package/bundled-test-harness/assets/can-invoke-test-CVfE1l1V.js +455 -0
  51. package/bundled-test-harness/assets/can-read-realm-test-CIz6WX_K.js +56 -0
  52. package/bundled-test-harness/assets/cancel-indexing-job-test-0LlrOgYK.js +69 -0
  53. package/bundled-test-harness/assets/capture-test-diHIWmh0.js +360 -0
  54. package/bundled-test-harness/assets/card-api-test-Ci9b0ghP.js +198 -0
  55. package/bundled-test-harness/assets/card-basics-test-RKQoQWZD.js +5364 -0
  56. package/bundled-test-harness/assets/card-chooser-paging-test-BN21sDpP.js +235 -0
  57. package/bundled-test-harness/assets/card-chooser-test-C9jDiIgM.js +393 -0
  58. package/bundled-test-harness/assets/card-context-search-results-KmkXJbmC.js +30 -0
  59. package/bundled-test-harness/assets/card-context-search-results-test-CpMr8OlX.js +184 -0
  60. package/bundled-test-harness/assets/card-def-field-def-relationships-test-D_30xak6.js +562 -0
  61. package/bundled-test-harness/assets/card-def-menu-items-test-ohuHc0b4.js +228 -0
  62. package/bundled-test-harness/assets/card-delete-test-BlsD9Xw4.js +466 -0
  63. package/bundled-test-harness/assets/card-error-3q1o3i0e.js +72 -0
  64. package/bundled-test-harness/assets/card-error-awaiting-index-test-DPgYKfbF.js +53 -0
  65. package/bundled-test-harness/assets/card-info-thumbnail-picker-test-CVfeJyjt.js +219 -0
  66. package/bundled-test-harness/assets/card-playground-test-D-7bi4PQ.js +1491 -0
  67. package/bundled-test-harness/assets/card-prerender-DemTfK_a.js +12939 -0
  68. package/bundled-test-harness/assets/card-thunk-error-test-DCBh1vRT.js +48 -0
  69. package/bundled-test-harness/assets/card-type-service-test-DXPrfVYk.js +161 -0
  70. package/bundled-test-harness/assets/check-correctness-test-DjE7r1X2.js +1093 -0
  71. package/bundled-test-harness/assets/check-domain-availability-test-U10xSKbY.js +98 -0
  72. package/bundled-test-harness/assets/chip-0r_r9SC8.js +44 -0
  73. package/bundled-test-harness/assets/choreo-CZUXQKjf.js +1110 -0
  74. package/bundled-test-harness/assets/choreo-D8RcLuoq.js +2 -0
  75. package/bundled-test-harness/assets/choreo-feature-reel-test-DRGloCAJ.js +155 -0
  76. package/bundled-test-harness/assets/choreo-gallery-build-order-test-BR-r7gaw.js +436 -0
  77. package/bundled-test-harness/assets/choreo-gallery-compositor-test-CWRLfcNT.js +399 -0
  78. package/bundled-test-harness/assets/choreo-gallery-cover-test-BT05gNKC.js +214 -0
  79. package/bundled-test-harness/assets/choreo-gallery-crossing-stage-test-WJ7FmjYi.js +133 -0
  80. package/bundled-test-harness/assets/choreo-gallery-demos-alive-test-C-yxdVT_.js +42 -0
  81. package/bundled-test-harness/assets/choreo-gallery-drift-test-HX1mK3od.js +620 -0
  82. package/bundled-test-harness/assets/choreo-gallery-escort-test-jZEVk_V4.js +187 -0
  83. package/bundled-test-harness/assets/choreo-gallery-films-test-DLDQzsxb.js +140 -0
  84. package/bundled-test-harness/assets/choreo-gallery-filter-test-BJv8KEeP.js +46 -0
  85. package/bundled-test-harness/assets/choreo-gallery-fold-test-BssKC8A8.js +180 -0
  86. package/bundled-test-harness/assets/choreo-gallery-guide-pages-test-DS41eNNV.js +114 -0
  87. package/bundled-test-harness/assets/choreo-gallery-guides-test-DTj7yEKp.js +321 -0
  88. package/bundled-test-harness/assets/choreo-gallery-hang-test-BqJLmeFF.js +426 -0
  89. package/bundled-test-harness/assets/choreo-gallery-highlight-test-B1Q7-ICm.js +60 -0
  90. package/bundled-test-harness/assets/choreo-gallery-inline-edit-test-7My9lVam.js +370 -0
  91. package/bundled-test-harness/assets/choreo-gallery-interruption-test-BlIAaGrw.js +176 -0
  92. package/bundled-test-harness/assets/choreo-gallery-lone-stack-test-C9NnYIP8.js +104 -0
  93. package/bundled-test-harness/assets/choreo-gallery-navigation-test-CWzXkvbW.js +193 -0
  94. package/bundled-test-harness/assets/choreo-gallery-playhead-transport-test-CwdiZWeI.js +111 -0
  95. package/bundled-test-harness/assets/choreo-gallery-poplayout-subtree-test-D55fxwTn.js +127 -0
  96. package/bundled-test-harness/assets/choreo-gallery-presence-modes-test-D8Wxv0lb.js +100 -0
  97. package/bundled-test-harness/assets/choreo-gallery-presentation-test-BLoWfp6G.js +157 -0
  98. package/bundled-test-harness/assets/choreo-gallery-reduced-motion-test-D5XxTBDS.js +145 -0
  99. package/bundled-test-harness/assets/choreo-gallery-sheet-standalone-test-DrHTTvss.js +89 -0
  100. package/bundled-test-harness/assets/choreo-gallery-sheet-test-BFVdnM_b.js +48 -0
  101. package/bundled-test-harness/assets/choreo-gallery-site-test-BhEBHdvI.js +237 -0
  102. package/bundled-test-harness/assets/choreo-gallery-stage-DcKKsdcu.js +256 -0
  103. package/bundled-test-harness/assets/choreo-gallery-stage-keyboard-test-Fcc6SC3F.js +102 -0
  104. package/bundled-test-harness/assets/choreo-gallery-stages-test-Cb-ADpxK.js +35 -0
  105. package/bundled-test-harness/assets/choreo-gallery-subdivision-test-DMJ6C9FW.js +138 -0
  106. package/bundled-test-harness/assets/choreo-gallery-table-plan-test-CAjSUdLJ.js +144 -0
  107. package/bundled-test-harness/assets/choreo-gallery-theater-test-B-3IZMj9.js +252 -0
  108. package/bundled-test-harness/assets/choreo-gallery-tuning-test-BVxK5Ry_.js +95 -0
  109. package/bundled-test-harness/assets/choreo-gallery-widget-room-test-uWBH1EKE.js +88 -0
  110. package/bundled-test-harness/assets/choreo-gallery-wires-test-Bo4Sd1Vn.js +148 -0
  111. package/bundled-test-harness/assets/client-telemetry-test-DFM4mML2.js +340 -0
  112. package/bundled-test-harness/assets/clip-DY6N6K67.js +92 -0
  113. package/bundled-test-harness/assets/clip-DzXoPdp-.js +2 -0
  114. package/bundled-test-harness/assets/code-block-DRE8KQZQ.js +502 -0
  115. package/bundled-test-harness/assets/code-ref-test-CDcqE8_C.js +163 -0
  116. package/bundled-test-harness/assets/code-submode-availability-test-DPTqZYYm.js +198 -0
  117. package/bundled-test-harness/assets/code-submode-test-AHV4mzJ4.js +1839 -0
  118. package/bundled-test-harness/assets/codeblocks-test-D6ijVvEL.js +418 -0
  119. package/bundled-test-harness/assets/codemirror-editor-test-BeAMVivu.js +1512 -0
  120. package/bundled-test-harness/assets/codemirror-embed-toolbar-test-Bnb7_KUT.js +366 -0
  121. package/bundled-test-harness/assets/color-field-test-CR6gGEqE.js +212 -0
  122. package/bundled-test-harness/assets/compaction-test-CjEsY0uG.js +150 -0
  123. package/bundled-test-harness/assets/computed-test-DtyZGgdc.js +1320 -0
  124. package/bundled-test-harness/assets/container-BYGZImLU.css +5101 -0
  125. package/bundled-test-harness/assets/container-CBZZ8uFw.js +10925 -0
  126. package/bundled-test-harness/assets/content-preview-components-test-BztI4fz-.js +462 -0
  127. package/bundled-test-harness/assets/copy-and-edit-test-Cqw7kcur.js +292 -0
  128. package/bundled-test-harness/assets/copy-card-test-D5m3eVEH.js +218 -0
  129. package/bundled-test-harness/assets/copy-file-to-realm-test-FPY-6Ddm.js +148 -0
  130. package/bundled-test-harness/assets/copy-source-test-9pJD-qey.js +56 -0
  131. package/bundled-test-harness/assets/create-file-test-DjMf88u_.js +1086 -0
  132. package/bundled-test-harness/assets/create-file-test-XbgOqg38.js +464 -0
  133. package/bundled-test-harness/assets/create-listing-modal-test-De7b4vu3.js +273 -0
  134. package/bundled-test-harness/assets/create-listing-pr-request-test-CBtIV0Z8.js +117 -0
  135. package/bundled-test-harness/assets/create-spec-test-4xR0gM7E.js +256 -0
  136. package/bundled-test-harness/assets/create-submission-workflow-test-DQpWrpGT.js +132 -0
  137. package/bundled-test-harness/assets/create-workspace-test-BQAudgpS.js +104 -0
  138. package/bundled-test-harness/assets/credential-fields-test-DXKBdbZD.js +200 -0
  139. package/bundled-test-harness/assets/csv-file-def-test-Cnp4y834.js +102 -0
  140. package/bundled-test-harness/assets/dashboard-CmuOhIYC.js +3628 -0
  141. package/bundled-test-harness/assets/dashboard-CzN49x74.css +2400 -0
  142. package/bundled-test-harness/assets/dashboard-add-workspace-test-T32hWB-g.js +50 -0
  143. package/bundled-test-harness/assets/dashboard-agents-test-BN5maCgQ.js +334 -0
  144. package/bundled-test-harness/assets/dashboard-archive-test-BzwUte_Z.js +128 -0
  145. package/bundled-test-harness/assets/dashboard-delete-test-D2Gcp81V.js +163 -0
  146. package/bundled-test-harness/assets/dashboard-duplicate-offer-test-BgKNIr35.js +71 -0
  147. package/bundled-test-harness/assets/dashboard-duplicate-test-D7JEWylc.js +222 -0
  148. package/bundled-test-harness/assets/dashboard-get-started-test-DOGPzGoA.js +374 -0
  149. package/bundled-test-harness/assets/dashboard-ir2bakJS.js +142 -0
  150. package/bundled-test-harness/assets/dashboard-pinned-cards-test-Bn_P9xJU.js +220 -0
  151. package/bundled-test-harness/assets/dashboard-publish-test-64sGQ0nG.js +70 -0
  152. package/bundled-test-harness/assets/dashboard-reindex-test-DJjYq1ct.js +115 -0
  153. package/bundled-test-harness/assets/dashboard-section-rail-test-ZkAhWu5V.js +169 -0
  154. package/bundled-test-harness/assets/dashboard-state-test-BbkpPB5L.js +162 -0
  155. package/bundled-test-harness/assets/dashboard-test-CBLdPrSt.js +545 -0
  156. package/bundled-test-harness/assets/dashboard-unreachable-notice-test-DFT3R1Zx.js +62 -0
  157. package/bundled-test-harness/assets/dashboard-workspace-test-DqBdCFo2.js +537 -0
  158. package/bundled-test-harness/assets/dashboard-workspaces-section-test-CH1HDfxR.js +410 -0
  159. package/bundled-test-harness/assets/data-file-def-preview-test-CNsZwQEJ.js +155 -0
  160. package/bundled-test-harness/assets/date-time-fields-test-CEFaZTnF.js +359 -0
  161. package/bundled-test-harness/assets/debug-message-test-Ck3BfFv3.js +117 -0
  162. package/bundled-test-harness/assets/declared-captures-test-C-0yPRU7.js +879 -0
  163. package/bundled-test-harness/assets/delete-workspace-test-CZOwGy78.js +102 -0
  164. package/bundled-test-harness/assets/diffing-test-BEKI905O.js +210 -0
  165. package/bundled-test-harness/assets/download-file-to-realm-test-C1kAGDll.js +119 -0
  166. package/bundled-test-harness/assets/editor-test-C9x5ZY6g.js +688 -0
  167. package/bundled-test-harness/assets/edits-D76-aanh.js +651 -0
  168. package/bundled-test-harness/assets/email-field-test-LGkrB_2B.js +75 -0
  169. package/bundled-test-harness/assets/enum-field-test-CPyV1J-m.js +935 -0
  170. package/bundled-test-harness/assets/error-display-test-bWuUtfIG.js +343 -0
  171. package/bundled-test-harness/assets/evaluate-module-test-CbS5h8t3.js +91 -0
  172. package/bundled-test-harness/assets/execute-atomic-operations-test-B4Kfco0k.js +113 -0
  173. package/bundled-test-harness/assets/externals-k-2ZBepK.js +4393 -0
  174. package/bundled-test-harness/assets/fallback-banner-live-delete-test-CuFiH1D8.js +207 -0
  175. package/bundled-test-harness/assets/fallback-banner-test-CqSRN7D8.js +225 -0
  176. package/bundled-test-harness/assets/fallback-banner-test-DQkrFE4-.js +53 -0
  177. package/bundled-test-harness/assets/fallback-models-test-BWekNxC0.js +161 -0
  178. package/bundled-test-harness/assets/fetch-card-json-test-DULUqUEu.js +61 -0
  179. package/bundled-test-harness/assets/field-configuration-test-BXZq28xa.js +551 -0
  180. package/bundled-test-harness/assets/field-markdown-domain-test-DdXCifs6.js +616 -0
  181. package/bundled-test-harness/assets/field-markdown-oversize-test-DouPPTHX.js +88 -0
  182. package/bundled-test-harness/assets/field-markdown-primitives-test-DSRGJeyl.js +365 -0
  183. package/bundled-test-harness/assets/field-markdown-specialized-test-DlTYLl_s.js +534 -0
  184. package/bundled-test-harness/assets/field-playground-test-NhS4VvoN.js +894 -0
  185. package/bundled-test-harness/assets/field-support-predicates-test-DWpyT1Qf.js +167 -0
  186. package/bundled-test-harness/assets/file-attachment-test-LwZf-BSY.js +796 -0
  187. package/bundled-test-harness/assets/file-chooser-panel-test-DuAqD9bn.js +153 -0
  188. package/bundled-test-harness/assets/file-chooser-test-CjaXXwpT.js +504 -0
  189. package/bundled-test-harness/assets/file-def-format-templates-test-BDs4OmHq.js +380 -0
  190. package/bundled-test-harness/assets/file-def-live-reload-test-BqTdnq-W.js +124 -0
  191. package/bundled-test-harness/assets/file-def-menu-items-test-DqdINXsD.js +138 -0
  192. package/bundled-test-harness/assets/file-def-navigation-test-BPGr0SQy.js +109 -0
  193. package/bundled-test-harness/assets/file-def-serialization-test-CvjW-FlC.js +89 -0
  194. package/bundled-test-harness/assets/file-def-test-C-Yv_NjS.js +216 -0
  195. package/bundled-test-harness/assets/file-preview-live-reload-test-MzwGwasU.js +310 -0
  196. package/bundled-test-harness/assets/file-resource-primitives-test-D3GmfqNs.js +255 -0
  197. package/bundled-test-harness/assets/file-tree-from-index-test-CfldnUgm.js +96 -0
  198. package/bundled-test-harness/assets/file-tree-test--0ZCPRe9.js +851 -0
  199. package/bundled-test-harness/assets/file-view-model-test-BDIAeBV8.js +346 -0
  200. package/bundled-test-harness/assets/filedef-export-shape-test-B2tgU404.js +61 -0
  201. package/bundled-test-harness/assets/film-Bf73ypzi.js +4074 -0
  202. package/bundled-test-harness/assets/film-C54lhaiU.js +2 -0
  203. package/bundled-test-harness/assets/film-DPcMEHYu.js +13 -0
  204. package/bundled-test-harness/assets/flac-audio-def-test-ByoXMoQ1.js +143 -0
  205. package/bundled-test-harness/assets/font-metadata-extractor-test-hawLTDTG.js +415 -0
  206. package/bundled-test-harness/assets/formatted-aibot-message-test-BahBj3x8.js +109 -0
  207. package/bundled-test-harness/assets/formatted-user-message-test-CodbrU3t.js +43 -0
  208. package/bundled-test-harness/assets/freestyle-test-faQhSciz.js +17 -0
  209. package/bundled-test-harness/assets/full-reindex-realm-test-CE5RJTIC.js +101 -0
  210. package/bundled-test-harness/assets/garbage-collection-test-v-3sev77.js +403 -0
  211. package/bundled-test-harness/assets/general-test-DKZPBtSb.js +923 -0
  212. package/bundled-test-harness/assets/generate-example-cards-one-shot-test-CucWyrkH.js +65 -0
  213. package/bundled-test-harness/assets/generic-file-def-preview-test-_EDRsebi.js +71 -0
  214. package/bundled-test-harness/assets/get-available-realm-identifiers-test-CV023yek.js +47 -0
  215. package/bundled-test-harness/assets/get-catalog-realm-identifiers-test--DOu3DyV.js +47 -0
  216. package/bundled-test-harness/assets/get-default-writable-realm-test-Bic8jl6R.js +54 -0
  217. package/bundled-test-harness/assets/get-published-realms-test-DrA5YcFN.js +71 -0
  218. package/bundled-test-harness/assets/get-realm-of-resource-identifier-test-jfU6SIWn.js +54 -0
  219. package/bundled-test-harness/assets/get-relationship-membership-state-test-Ccy2Z7MN.js +1308 -0
  220. package/bundled-test-harness/assets/get-user-system-card-test-Bmq2lmWv.js +67 -0
  221. package/bundled-test-harness/assets/gif-image-def-test-N1mMQC-X.js +188 -0
  222. package/bundled-test-harness/assets/glimmer-motion-and-choreo-in-cards-test-BkUDjiTs.js +160 -0
  223. package/bundled-test-harness/assets/glimmer-motion-and-choreo-test-DsFWCzTs.js +74 -0
  224. package/bundled-test-harness/assets/gts-file-def-test-BL1jpQ9J.js +100 -0
  225. package/bundled-test-harness/assets/head-format-preview-test-BVCaPQqc.js +158 -0
  226. package/bundled-test-harness/assets/helpers-Ds68JxHe.js +5 -0
  227. package/bundled-test-harness/assets/host-mode-service-B4bisRdR.js +262 -0
  228. package/bundled-test-harness/assets/host-mode-test-BmkN2PCJ.js +831 -0
  229. package/bundled-test-harness/assets/host-submode-test-C6SxQ796.js +1392 -0
  230. package/bundled-test-harness/assets/html-component-test-CNQ9wF0Q.js +65 -0
  231. package/bundled-test-harness/assets/html-def-test-BcaCVVQq.js +160 -0
  232. package/bundled-test-harness/assets/html-meta-extractor-test-BU1hjkTp.js +60 -0
  233. package/bundled-test-harness/assets/hydratable-card-test-CX6MWiti.js +426 -0
  234. package/bundled-test-harness/assets/icon-button-C1zH38Nc.js +67 -0
  235. package/bundled-test-harness/assets/image-metadata-extractor-test-CakSBPZ_.js +1109 -0
  236. package/bundled-test-harness/assets/index-changes-test-D8RtgfyG.js +367 -0
  237. package/bundled-test-harness/assets/index-query-engine-test-BETfoYOK.js +2593 -0
  238. package/bundled-test-harness/assets/index-writer-test-B_bR2fjw.js +3040 -0
  239. package/bundled-test-harness/assets/inspector-test-BwPXJj1S.js +2058 -0
  240. package/bundled-test-harness/assets/instance-filter-matcher-test-BSVCg59b.js +788 -0
  241. package/bundled-test-harness/assets/instantiate-card-test-BVQhZjpq.js +164 -0
  242. package/bundled-test-harness/assets/interact-submode-creation-and-permissions-test-DzQLG41H.js +475 -0
  243. package/bundled-test-harness/assets/interact-submode-setup-C5bKXq73.js +566 -0
  244. package/bundled-test-harness/assets/invalidate-realm-identifiers-test-Cd3dpjhB.js +99 -0
  245. package/bundled-test-harness/assets/invite-user-to-room-test-Brabz1tt.js +142 -0
  246. package/bundled-test-harness/assets/invoke-card-operation-test-C1Q1FUf4.js +333 -0
  247. package/bundled-test-harness/assets/isolated-render-test-BLJfS7BU.js +51 -0
  248. package/bundled-test-harness/assets/job-scoped-doc-cache-test-Bgv5woaB.js +181 -0
  249. package/bundled-test-harness/assets/job-scoped-instance-residency-test-C_bB6KpR.js +103 -0
  250. package/bundled-test-harness/assets/jpg-image-def-test-gdLIKocD.js +697 -0
  251. package/bundled-test-harness/assets/json-file-def-test-CPYMRBY-.js +95 -0
  252. package/bundled-test-harness/assets/key-notices-badge-test-DemslfLw.js +155 -0
  253. package/bundled-test-harness/assets/key-readiness-test-5tq5JycL.js +190 -0
  254. package/bundled-test-harness/assets/linksto-broken-link-placeholder-test-BbhDZ2PH.js +398 -0
  255. package/bundled-test-harness/assets/linksto-error-sentinel-test-C2t7fFPi.js +238 -0
  256. package/bundled-test-harness/assets/linksto-many-broken-link-placeholder-test--U_UvUty.js +354 -0
  257. package/bundled-test-harness/assets/linksto-many-per-slot-access-test-Dj3Xy0ZF.js +303 -0
  258. package/bundled-test-harness/assets/linksto-sentinel-reload-test-D0dK4Jjs.js +197 -0
  259. package/bundled-test-harness/assets/linksto-sentinel-roundtrip-test---IYiXok.js +260 -0
  260. package/bundled-test-harness/assets/linksto-singular-js-access-contract-test-CT04MhES.js +196 -0
  261. package/bundled-test-harness/assets/lint-and-fix-test-aadgx7rX.js +51 -0
  262. package/bundled-test-harness/assets/live-test-BGij_vuc.js +100 -0
  263. package/bundled-test-harness/assets/live-test-CppvValf.js +2 -0
  264. package/bundled-test-harness/assets/load-default-skills-test-Cp2m_ebp.js +74 -0
  265. package/bundled-test-harness/assets/loader-parallel-prefetch-test-vU_26Jqu.js +257 -0
  266. package/bundled-test-harness/assets/loader-test-CTaw8K_B.js +482 -0
  267. package/bundled-test-harness/assets/loading-test-DGGt4qZZ.js +63 -0
  268. package/bundled-test-harness/assets/m4a-audio-def-test-DAiReOXH.js +190 -0
  269. package/bundled-test-harness/assets/main-bXHwJ0CN.js +5 -0
  270. package/bundled-test-harness/assets/markdown-embed-chooser-modal-test-CIXq9FqR.js +470 -0
  271. package/bundled-test-harness/assets/markdown-embed-chooser-test-zFGh9WfP.js +334 -0
  272. package/bundled-test-harness/assets/markdown-embed-preview-pane-test-Byn_WFwY.js +447 -0
  273. package/bundled-test-harness/assets/markdown-embed-preview-test-Y3iFMttg.js +368 -0
  274. package/bundled-test-harness/assets/markdown-fallback-test-Br1TPkLZ.js +316 -0
  275. package/bundled-test-harness/assets/markdown-file-def-test-Crm2MAnq.js +380 -0
  276. package/bundled-test-harness/assets/markdown-helpers-test-CZ9Vvywc.js +188 -0
  277. package/bundled-test-harness/assets/markdown-highlighting-test-CFMkoVDl.js +244 -0
  278. package/bundled-test-harness/assets/markdown-preview-lOh-MyqF.js +72 -0
  279. package/bundled-test-harness/assets/markdown-preview-test-B8w0fFIy.js +238 -0
  280. package/bundled-test-harness/assets/markdown-skill-frontmatter-test-aH6HQly1.js +146 -0
  281. package/bundled-test-harness/assets/markdown-skill-search-test-CiNLQs-5.js +80 -0
  282. package/bundled-test-harness/assets/matrix-service-account-switch-sessions-test-DaA8w1Jj.js +63 -0
  283. package/bundled-test-harness/assets/matrix-service-boot-assembly-test-21GIlf55.js +300 -0
  284. package/bundled-test-harness/assets/matrix-service-personal-realm-test-jn9DUENm.js +125 -0
  285. package/bundled-test-harness/assets/matrix-service-realm-servers-test-eNZVJakl.js +55 -0
  286. package/bundled-test-harness/assets/matrix-service-realms-list-updated-test-Cabm8_dY.js +132 -0
  287. package/bundled-test-harness/assets/matrix-service-relogin-test-C77EFgjc.js +59 -0
  288. package/bundled-test-harness/assets/matrix-service-sliding-sync-test-BgM0fPiO.js +35 -0
  289. package/bundled-test-harness/assets/menu-Cl50TSFe.js +3561 -0
  290. package/bundled-test-harness/assets/message-service-subscription-test-CfEqH2jP.js +110 -0
  291. package/bundled-test-harness/assets/message-service-test-DsTzH1In.js +144 -0
  292. package/bundled-test-harness/assets/message-tool-test-C5xVfTtj.js +33 -0
  293. package/bundled-test-harness/assets/midi-audio-def-test-goLRCNCZ.js +182 -0
  294. package/bundled-test-harness/assets/migrate-skill-test-yPCbVfxG.js +161 -0
  295. package/bundled-test-harness/assets/mini-YXjrY_tH.js +1404 -0
  296. package/bundled-test-harness/assets/mini-card-chooser-test-DrllikHB.js +272 -0
  297. package/bundled-test-harness/assets/mini-file-chooser-test-BfqayhmI.js +201 -0
  298. package/bundled-test-harness/assets/mock-matrix-C7BrPS6S.js +2 -0
  299. package/bundled-test-harness/assets/mock-matrix-FjsXmU7-.js +15107 -0
  300. package/bundled-test-harness/assets/modal-BgaZavcs.js +322 -0
  301. package/bundled-test-harness/assets/model-cost-tier-test-BGg-sJML.js +174 -0
  302. package/bundled-test-harness/assets/model-file-extract-test-CjEBupY5.js +206 -0
  303. package/bundled-test-harness/assets/module-transpile-cache-test-XW6DDsmz.js +67 -0
  304. package/bundled-test-harness/assets/monaco-test-DkoRuFiQ.js +100 -0
  305. package/bundled-test-harness/assets/mp3-audio-def-test-v369NNsQ.js +133 -0
  306. package/bundled-test-harness/assets/multiple-stacks-test-CJpYPWdM.js +208 -0
  307. package/bundled-test-harness/assets/nested-query-field-render-test-CfDrBcUN.js +249 -0
  308. package/bundled-test-harness/assets/no-stacks-test-MmsJeLpz.js +48 -0
  309. package/bundled-test-harness/assets/number-field-test-A7B2r0M5.js +184 -0
  310. package/bundled-test-harness/assets/office-file-def-test-BNRvFmCB.js +263 -0
  311. package/bundled-test-harness/assets/office-metadata-extractor-test-zlDoEIEp.js +218 -0
  312. package/bundled-test-harness/assets/office-poster-capture-test-DdFEaOxR.js +203 -0
  313. package/bundled-test-harness/assets/ogg-audio-def-test-kk91BzQY.js +196 -0
  314. package/bundled-test-harness/assets/open-create-listing-modal-test-D1Dl1pov.js +131 -0
  315. package/bundled-test-harness/assets/open-image-in-new-tab-test-DyCmdMyO.js +52 -0
  316. package/bundled-test-harness/assets/open-secure-window-test-dz1vPudF.js +253 -0
  317. package/bundled-test-harness/assets/open-workspace-test-BvTcskzP.js +46 -0
  318. package/bundled-test-harness/assets/operation-lowering-test-omU66bkJ.js +2957 -0
  319. package/bundled-test-harness/assets/operations-invocation-test-BMj42rQe.js +523 -0
  320. package/bundled-test-harness/assets/operations-optimistic-test-KJLyzT8v.js +203 -0
  321. package/bundled-test-harness/assets/operations-query-test-J3HcnaoK.js +459 -0
  322. package/bundled-test-harness/assets/operations-store-reconciliation-test-CkbGBMBQ.js +406 -0
  323. package/bundled-test-harness/assets/operations-test-C7zXXpRW.js +2518 -0
  324. package/bundled-test-harness/assets/operator-mode-acceptance-test-BPolI_RD.js +1195 -0
  325. package/bundled-test-harness/assets/operator-mode-card-chooser-test-DjTQgizt.js +1036 -0
  326. package/bundled-test-harness/assets/operator-mode-links-test-DSEqy5Db.js +797 -0
  327. package/bundled-test-harness/assets/operator-mode-test-CB7BNDNE.js +696 -0
  328. package/bundled-test-harness/assets/operator-mode-ui-test-C1OhF1il.js +1045 -0
  329. package/bundled-test-harness/assets/overlay-D2rQi8lJ.js +427 -0
  330. package/bundled-test-harness/assets/overlay-menu-items-test-CPN31yBJ.js +331 -0
  331. package/bundled-test-harness/assets/overlays-B-qMEPhY.js +2 -0
  332. package/bundled-test-harness/assets/overlays-DSf2je0c.js +75 -0
  333. package/bundled-test-harness/assets/overlays-detached-element-test-C73nMXes.js +56 -0
  334. package/bundled-test-harness/assets/panel-DjrC7DxA.js +15124 -0
  335. package/bundled-test-harness/assets/past-sessions-test-BSIS2Hlq.js +321 -0
  336. package/bundled-test-harness/assets/patch-fields-test-Bp2IE0Jw.js +1014 -0
  337. package/bundled-test-harness/assets/patch-instance-test-DssuRGKP.js +348 -0
  338. package/bundled-test-harness/assets/pdf-file-def-test-Barj9ffD.js +111 -0
  339. package/bundled-test-harness/assets/pdf-metadata-extractor-test-B7KnXcIm.js +130 -0
  340. package/bundled-test-harness/assets/permission-checking-realm-test-BD4O0nen.js +306 -0
  341. package/bundled-test-harness/assets/persist-module-inspector-view-test-BIdbkdPr.js +60 -0
  342. package/bundled-test-harness/assets/persist-scroll-position-test-Bhb7wJiy.js +254 -0
  343. package/bundled-test-harness/assets/phone-number-field-test-C2yuCrXY.js +73 -0
  344. package/bundled-test-harness/assets/pill-menu-test-BIp91YXi.js +60 -0
  345. package/bundled-test-harness/assets/plate-CJq1veVA.js +41 -0
  346. package/bundled-test-harness/assets/plate-CwAvOUfL.js +2 -0
  347. package/bundled-test-harness/assets/player-Digk7omr.js +2 -0
  348. package/bundled-test-harness/assets/player-vsjosoN_.js +82 -0
  349. package/bundled-test-harness/assets/playground-B02e8uqB.js +58 -0
  350. package/bundled-test-harness/assets/plural-field-components-test-C1acuN-A.js +198 -0
  351. package/bundled-test-harness/assets/png-image-def-test-B9QeVo1f.js +266 -0
  352. package/bundled-test-harness/assets/policy-audit-confirmation-test-CeVquvc_.js +155 -0
  353. package/bundled-test-harness/assets/policy-scoped-search-test-SFPiIqR3.js +339 -0
  354. package/bundled-test-harness/assets/prerender-file-extract-test-HSJKAHyO.js +346 -0
  355. package/bundled-test-harness/assets/prerender-html-test-BTAcFCme.js +670 -0
  356. package/bundled-test-harness/assets/prerender-meta-test-Csyz2b21.js +614 -0
  357. package/bundled-test-harness/assets/prerender-module-test-DpTYAbmI.js +409 -0
  358. package/bundled-test-harness/assets/prerender-persistence-block-test-BhIt-7kK.js +124 -0
  359. package/bundled-test-harness/assets/prerender-pre-model-error-test-DxKPQKqx.js +61 -0
  360. package/bundled-test-harness/assets/prerender-serialize-cycle-test-C8V5YWQO.js +134 -0
  361. package/bundled-test-harness/assets/prerendered-html-read-test-Cq7JVGwg.js +191 -0
  362. package/bundled-test-harness/assets/pretui-components-test-Ducr9fLT.css +743 -0
  363. package/bundled-test-harness/assets/pretui-components-test-Hs0uyIUQ.js +992 -0
  364. package/bundled-test-harness/assets/pretui-primitives-CRs8NRm0.js +69 -0
  365. package/bundled-test-harness/assets/preview-format-test-cCqLrfdY.js +103 -0
  366. package/bundled-test-harness/assets/preview-test-BMqJSoR1.js +474 -0
  367. package/bundled-test-harness/assets/process-card-test-578tfDvr.js +94 -0
  368. package/bundled-test-harness/assets/profile-settings-modal-CVnNl7Yu.js +990 -0
  369. package/bundled-test-harness/assets/publish-realm-COoeWexp.js +82 -0
  370. package/bundled-test-harness/assets/publish-realm-test-a5nkx0Ov.js +210 -0
  371. package/bundled-test-harness/assets/query-field-barrier-test-qX3xVPfk.js +113 -0
  372. package/bundled-test-harness/assets/query-field-error-sentinel-test-V6JDPFLX.js +201 -0
  373. package/bundled-test-harness/assets/query-field-membership-status-test-CK7eDf-K.js +323 -0
  374. package/bundled-test-harness/assets/query-field-page-optin-test-B5YBHUvU.js +126 -0
  375. package/bundled-test-harness/assets/query-field-schema-test-D4SjOGlK.js +231 -0
  376. package/bundled-test-harness/assets/query-field-search-throttle-test-BVkm1-D8.js +154 -0
  377. package/bundled-test-harness/assets/query-field-stale-prerender-test-9g7hcD91.js +152 -0
  378. package/bundled-test-harness/assets/query-fields-test-CQYqhzpN.js +535 -0
  379. package/bundled-test-harness/assets/quick-look-test-CE0o6lJ4.js +139 -0
  380. package/bundled-test-harness/assets/read-card-for-ai-assistant-test-D0mJorwH.js +91 -0
  381. package/bundled-test-harness/assets/read-file-for-ai-assistant-test-B_F_2GEB.js +45 -0
  382. package/bundled-test-harness/assets/read-source-test-BgJV4B4F.js +67 -0
  383. package/bundled-test-harness/assets/read-text-file-test-DaeLzg4u.js +124 -0
  384. package/bundled-test-harness/assets/realm-C_a9su1j.js +2858 -0
  385. package/bundled-test-harness/assets/realm-api-keys-D5USFOoS.js +2 -0
  386. package/bundled-test-harness/assets/realm-api-keys-m_VOcixC.js +578 -0
  387. package/bundled-test-harness/assets/realm-api-keys-test-BVs7f5Dz.js +109 -0
  388. package/bundled-test-harness/assets/realm-api-keys-test-C_uZnTmq.js +588 -0
  389. package/bundled-test-harness/assets/realm-config-m5eccPW8.js +833 -0
  390. package/bundled-test-harness/assets/realm-config-policy-standing-test-Ber-IXpc.js +290 -0
  391. package/bundled-test-harness/assets/realm-config-routing-rule-edit-test-3Xqt5VlM.js +274 -0
  392. package/bundled-test-harness/assets/realm-config-settings-test-CkalhbDF.js +187 -0
  393. package/bundled-test-harness/assets/realm-field-test-B_PUoqnk.js +100 -0
  394. package/bundled-test-harness/assets/realm-indexing-test-8iLjeV_e.js +4380 -0
  395. package/bundled-test-harness/assets/realm-policy-fitted-test-Bptvra0U.js +206 -0
  396. package/bundled-test-harness/assets/realm-policy-test-DwG0qqXE.js +1141 -0
  397. package/bundled-test-harness/assets/realm-querying-test-Dvw26A6Q.js +1067 -0
  398. package/bundled-test-harness/assets/realm-server-form-agnostic-test-DrXQH0UP.js +96 -0
  399. package/bundled-test-harness/assets/realm-server-subscriber-test-Dkj23vQK.js +46 -0
  400. package/bundled-test-harness/assets/realm-service-info-test-CdRlDhj-.js +67 -0
  401. package/bundled-test-harness/assets/realm-test-DGYN48Qx.js +2364 -0
  402. package/bundled-test-harness/assets/realm-token-refresh-test-CEWATL9h.js +153 -0
  403. package/bundled-test-harness/assets/realm-url-tooltip-test-8ZjTNPuy.js +78 -0
  404. package/bundled-test-harness/assets/reasoning-test-BV49AYg2.js +221 -0
  405. package/bundled-test-harness/assets/recent-files-test-Dc6L6Dm4.js +450 -0
  406. package/bundled-test-harness/assets/reindex-realm-test-CFRSt39u.js +117 -0
  407. package/bundled-test-harness/assets/relationship-loading-state-test-FKbtOFUr.js +290 -0
  408. package/bundled-test-harness/assets/remix-card-test-CKGC_Sgq.js +58 -0
  409. package/bundled-test-harness/assets/rendered-markdown-DXiDN91F.js +292 -0
  410. package/bundled-test-harness/assets/rendered-markdown-test-n3MlXmmu.js +587 -0
  411. package/bundled-test-harness/assets/resident-instance-reuse-test-BjdhE6CM.js +82 -0
  412. package/bundled-test-harness/assets/result-tile-o6dtjgX4.js +144 -0
  413. package/bundled-test-harness/assets/rich-markdown-field-test-VXr6l20h.js +1647 -0
  414. package/bundled-test-harness/assets/room-message-test-BrjJ2wMs.js +484 -0
  415. package/bundled-test-harness/assets/run-P_7TsreC.js +4017 -0
  416. package/bundled-test-harness/assets/run-realm-code-DsBUf1si.js +2964 -0
  417. package/bundled-test-harness/assets/run-realm-code-test-cS0DzaKo.js +3844 -0
  418. package/bundled-test-harness/assets/sanitize-module-list-test-CvuOOiUY.js +85 -0
  419. package/bundled-test-harness/assets/save-card-skip-index-wait-test-fpJ1eq32.js +89 -0
  420. package/bundled-test-harness/assets/schema-editor-test-NkKjCgyf.js +785 -0
  421. package/bundled-test-harness/assets/schema-generation-test-Dmg3lWl7.js +28 -0
  422. package/bundled-test-harness/assets/scrolling-test-B0GNYGYc.js +412 -0
  423. package/bundled-test-harness/assets/search-adorn-test-CZebk7_y.js +136 -0
  424. package/bundled-test-harness/assets/search-and-choose-test-Bd4NZUup.js +154 -0
  425. package/bundled-test-harness/assets/search-correlation-id-test-DXKlEO55.js +139 -0
  426. package/bundled-test-harness/assets/search-entries-result-test-QQawA8Fm.js +234 -0
  427. package/bundled-test-harness/assets/search-entries-test-3DlqGPQq.js +1486 -0
  428. package/bundled-test-harness/assets/search-entries-tool-test-D1TvDE9D.js +504 -0
  429. package/bundled-test-harness/assets/search-google-images-test-DqsoQGr1.js +166 -0
  430. package/bundled-test-harness/assets/search-results-DGrNaPxh.js +266 -0
  431. package/bundled-test-harness/assets/search-results-test-CqVHYNRt.js +578 -0
  432. package/bundled-test-harness/assets/search-selection-menu-test-D6bIjKiH.js +108 -0
  433. package/bundled-test-harness/assets/search-sheet-files-test-Bf37TQXo.js +126 -0
  434. package/bundled-test-harness/assets/search-sheet-persistence-test-CV4_XdxR.js +131 -0
  435. package/bundled-test-harness/assets/search-test-Dlb-wg3a.js +2249 -0
  436. package/bundled-test-harness/assets/search-tool-test-BJLgVMoL.js +156 -0
  437. package/bundled-test-harness/assets/searchable-option-test-CcbfMqIL.js +322 -0
  438. package/bundled-test-harness/assets/searchable-search-doc-test-yH9fLGNS.js +1271 -0
  439. package/bundled-test-harness/assets/section-rail-CNFCebtT.js +113 -0
  440. package/bundled-test-harness/assets/section-rail-test-KNJAWWl6.js +256 -0
  441. package/bundled-test-harness/assets/secure-sign-in-Dyljp0Th.js +174 -0
  442. package/bundled-test-harness/assets/secure-sign-in-test-QnqNuTP3.js +373 -0
  443. package/bundled-test-harness/assets/segmented-control-DxJdoJ4Z.js +173 -0
  444. package/bundled-test-harness/assets/select-BiQTg2ts.js +175 -0
  445. package/bundled-test-harness/assets/send-ai-assistant-message-test-CAn7M2dZ.js +52 -0
  446. package/bundled-test-harness/assets/send-bot-trigger-event-test-qBu5E_jy.js +56 -0
  447. package/bundled-test-harness/assets/send-request-via-proxy-test-CLuwLBq_.js +380 -0
  448. package/bundled-test-harness/assets/sending-test-H0AaBSgi.js +659 -0
  449. package/bundled-test-harness/assets/serialization-rri-form-audit-test-hMJukiKt.js +136 -0
  450. package/bundled-test-harness/assets/serialization-test-W5e3wKbz.js +8758 -0
  451. package/bundled-test-harness/assets/set-user-system-card-test-CjgWLkNV.js +59 -0
  452. package/bundled-test-harness/assets/setup-CssMNvui.js +772 -0
  453. package/bundled-test-harness/assets/setup-D8YXvK-p.js +2 -0
  454. package/bundled-test-harness/assets/shared-link-target-reuse-test-D42UO8DC.js +207 -0
  455. package/bundled-test-harness/assets/show-card-test-CHEaS514.js +365 -0
  456. package/bundled-test-harness/assets/signed-capture-link-test-BgEu0F-S.js +132 -0
  457. package/bundled-test-harness/assets/single-stack-test-DYcu_v7Z.js +652 -0
  458. package/bundled-test-harness/assets/skills-test-ChmKhADX.js +648 -0
  459. package/bundled-test-harness/assets/skip-boot-index-guard-test-BzRIncDN.js +46 -0
  460. package/bundled-test-harness/assets/spec-test-BYvFR6Xb.js +1077 -0
  461. package/bundled-test-harness/assets/spinner-Bx9x55NA.js +49 -0
  462. package/bundled-test-harness/assets/src-C1hYFgVl.js +216 -0
  463. package/bundled-test-harness/assets/src-CIlLx7Lu.js +5 -0
  464. package/bundled-test-harness/assets/stick-to-bottom-resize-test-DMHsAG0v.js +56 -0
  465. package/bundled-test-harness/assets/store-add-test-D_9IHQjZ.js +50 -0
  466. package/bundled-test-harness/assets/store-module-rebuild-test-BRGZoLRV.js +454 -0
  467. package/bundled-test-harness/assets/store-search-test-3G8JHuj2.js +175 -0
  468. package/bundled-test-harness/assets/store-test-BiKKDqqW.js +3672 -0
  469. package/bundled-test-harness/assets/structured-theme-test-11TNsgUW.js +377 -0
  470. package/bundled-test-harness/assets/summarize-session-test-CwzD_ZbD.js +172 -0
  471. package/bundled-test-harness/assets/svg-image-def-test-zV6aMK9q.js +167 -0
  472. package/bundled-test-harness/assets/switch-submode-test-DQU2cP5_.js +168 -0
  473. package/bundled-test-harness/assets/sync-openrouter-models-test-xrXVaC2H.js +97 -0
  474. package/bundled-test-harness/assets/test-support-BGl3rthw.js +3 -0
  475. package/bundled-test-harness/assets/test-support-BcBv__98.js +99 -0
  476. package/bundled-test-harness/assets/tests-CmM9imwB.js +3598 -0
  477. package/bundled-test-harness/assets/text-file-def-test-Cyq78UFY.js +94 -0
  478. package/bundled-test-harness/assets/text-input-validator-test-DBj7TaM_.js +156 -0
  479. package/bundled-test-harness/assets/text-suggestion-test-C4XAqWqY.js +340 -0
  480. package/bundled-test-harness/assets/theme-card-test-dVNz4tgU.js +621 -0
  481. package/bundled-test-harness/assets/theme-dashboard-nav-test-DYSn5pqo.js +196 -0
  482. package/bundled-test-harness/assets/theme-scheme-island-test-C1WpkfEP.js +264 -0
  483. package/bundled-test-harness/assets/theme-scoped-css-parity-test-BVluppsE.js +176 -0
  484. package/bundled-test-harness/assets/titles-DCvAhECF.js +52 -0
  485. package/bundled-test-harness/assets/titles-ZPeArtS1.js +2 -0
  486. package/bundled-test-harness/assets/to-device-streaming-test-BJ4J1cXe.js +163 -0
  487. package/bundled-test-harness/assets/token-usage-test-WUf4r4fQ.js +160 -0
  488. package/bundled-test-harness/assets/tools-J_Knr_W6.js +774 -0
  489. package/bundled-test-harness/assets/tools-calling-test-CfqZX0Ed.js +200 -0
  490. package/bundled-test-harness/assets/tools-test-B4x58ZmI.js +1624 -0
  491. package/bundled-test-harness/assets/tools-test-Cvau5219.js +3204 -0
  492. package/bundled-test-harness/assets/tooltip-B0rEgyMW.css +66 -0
  493. package/bundled-test-harness/assets/tooltip-DvUMUgVX.js +195 -0
  494. package/bundled-test-harness/assets/transform-cards-test-CYQbZeD9.js +341 -0
  495. package/bundled-test-harness/assets/ts-file-def-preview-test-m39f8Zio.js +95 -0
  496. package/bundled-test-harness/assets/ts-file-def-test-xIcL5xWe.js +92 -0
  497. package/bundled-test-harness/assets/ttf-font-def-test-ClQ2SzFF.js +206 -0
  498. package/bundled-test-harness/assets/turn-settling-test-DZoL2mRT.js +160 -0
  499. package/bundled-test-harness/assets/turn-summary-Bmt7ZxTS.js +1039 -0
  500. package/bundled-test-harness/assets/unpublish-realm-test-0ToTJczx.js +102 -0
  501. package/bundled-test-harness/assets/update-room-skills-test-o_j8NOUV.js +240 -0
  502. package/bundled-test-harness/assets/use-ai-assistant-test-D7HFpxKJ.js +384 -0
  503. package/bundled-test-harness/assets/user-message-BAOt1hS3.js +262 -0
  504. package/bundled-test-harness/assets/validate-realm-test-e3xIbNLB.js +67 -0
  505. package/bundled-test-harness/assets/video-metadata-extractor-test-D8naLSlg.js +520 -0
  506. package/bundled-test-harness/assets/view-visually-test-BuhGau5E.js +335 -0
  507. package/bundled-test-harness/assets/virtual-network-reset-test-CgaFNGPi.js +96 -0
  508. package/bundled-test-harness/assets/wav-audio-def-test-CWG_UdCh.js +160 -0
  509. package/bundled-test-harness/assets/webp-image-def-test-sN4yw8Zu.js +226 -0
  510. package/bundled-test-harness/assets/workspace-0LfPqbYB.js +445 -0
  511. package/bundled-test-harness/assets/workspace-a11y-test-DQxYDRAP.js +197 -0
  512. package/bundled-test-harness/assets/workspace-actions-jGJSfl8M.js +588 -0
  513. package/bundled-test-harness/assets/workspace-behavior-test-BnF-bmBN.js +338 -0
  514. package/bundled-test-harness/assets/workspace-delete-multiple-test-D-rxPDuT.js +212 -0
  515. package/bundled-test-harness/assets/workspace-delete-summary-test-C2-Mve5R.js +63 -0
  516. package/bundled-test-harness/assets/workspace-hosting-test-BvDKdlOb.js +138 -0
  517. package/bundled-test-harness/assets/workspace-indexing-test-B34T3kqD.js +71 -0
  518. package/bundled-test-harness/assets/workspace-test-CJivgv-m.js +51 -0
  519. package/bundled-test-harness/assets/workspace-test-CuSRpPnQ.js +385 -0
  520. package/bundled-test-harness/assets/workspace-timestamp-labels-test-aWgjdbCp.js +68 -0
  521. package/bundled-test-harness/assets/workspace-unit-test-DHMUf2KT.js +122 -0
  522. package/bundled-test-harness/assets/write-binary-file-test-P-hVQuin.js +124 -0
  523. package/bundled-test-harness/assets/write-text-file-test-fXvJueDd.js +191 -0
  524. package/bundled-test-harness/assets/zip-archive-test-C2P5CUSR.js +285 -0
  525. package/bundled-test-harness/assets/zip-file-def-test-BfJZAmGt.js +164 -0
  526. package/bundled-test-harness/boxel-ui-checksum.txt +1 -1
  527. package/bundled-test-harness/index.html +48 -48
  528. package/bundled-test-harness/tests/index.html +50 -50
  529. package/bundled-types/boxel-ui/helpers/theme-scoped-css.ts +4 -0
  530. package/bundled-types/choreo/choreo.gts +58 -2
  531. package/bundled-types/choreo/compile.ts +5 -0
  532. package/bundled-types/choreo/layout-probe.ts +100 -0
  533. package/bundled-types/choreo/run.ts +99 -4
  534. package/bundled-types/host-app/components/operator-mode/dashboard/get-started.gts +152 -7
  535. package/bundled-types/host-app/components/operator-mode/dashboard/index.gts +2 -0
  536. package/bundled-types/host-app/components/operator-mode/dashboard/workspace.gts +5 -3
  537. package/bundled-types/host-app/components/operator-mode/dashboard-modals/workspace-modals.gts +5 -22
  538. package/bundled-types/host-app/components/operator-mode/host-submode/publishing-realm-popover.gts +1 -1
  539. package/bundled-types/host-app/components/operator-mode/host-submode.gts +111 -37
  540. package/bundled-types/host-app/components/operator-mode/motion/stack-motion.gts +92 -33
  541. package/bundled-types/host-app/components/operator-mode/publish-realm-modal.gts +1 -0
  542. package/bundled-types/host-app/components/operator-mode/stack-item.gts +2 -2
  543. package/bundled-types/host-app/components/operator-mode/stack.gts +36 -25
  544. package/bundled-types/host-app/components/operator-mode/submode-layout.gts +2 -2
  545. package/bundled-types/host-app/lib/modal-focus-trap.ts +33 -0
  546. package/bundled-types/host-app/lib/workspace-actions.ts +21 -0
  547. package/bundled-types/host-app/services/host-mode-service.ts +39 -0
  548. package/bundled-types/host-app/services/realm.ts +14 -0
  549. package/bundled-types/host-tests/helpers/dashboard.ts +67 -0
  550. package/package.json +1 -1
  551. package/bundled-test-harness/assets/account-switch-failed-test-FytUFiPO.js +0 -45
  552. package/bundled-test-harness/assets/adapter-DvmPwSZv.js +0 -2
  553. package/bundled-test-harness/assets/add-field-to-card-definition-tool-test-DN525jiY.js +0 -112
  554. package/bundled-test-harness/assets/ai-assistant-create-workspace-test-q3tKqVJQ.js +0 -130
  555. package/bundled-test-harness/assets/ai-assistant-panel-relogin-test-DgeXcCyi.js +0 -46
  556. package/bundled-test-harness/assets/ai-assistant-test-lDIGPKFP.js +0 -2223
  557. package/bundled-test-harness/assets/ai-function-generation-test-D5GbLyvL.js +0 -1176
  558. package/bundled-test-harness/assets/ai-module-creation-test-I3-j2beD.js +0 -151
  559. package/bundled-test-harness/assets/aibot-message-Dmsjifs6.js +0 -1312
  560. package/bundled-test-harness/assets/app-BS9_-DhN.js +0 -14146
  561. package/bundled-test-harness/assets/apply-markdown-edit-test-4zlwt0Db.js +0 -230
  562. package/bundled-test-harness/assets/ask-user-picker-Dr-0qpNr.js +0 -370
  563. package/bundled-test-harness/assets/ask-user-picker-test-633AFdmS.js +0 -39
  564. package/bundled-test-harness/assets/assistant-transcript-test-BgRnLvMg.js +0 -57
  565. package/bundled-test-harness/assets/audio-metadata-extractor-test-4xsQqL-0.js +0 -1176
  566. package/bundled-test-harness/assets/authed-fetch-test-663mT5_N.js +0 -73
  567. package/bundled-test-harness/assets/avif-image-def-test-h01BPIJy.js +0 -187
  568. package/bundled-test-harness/assets/basic-test-DiD6T-8Q.js +0 -139
  569. package/bundled-test-harness/assets/binary-upload-dedupe-test-CkjMPO_e.js +0 -308
  570. package/bundled-test-harness/assets/bot-registration-test-CFZHpwdj.js +0 -97
  571. package/bundled-test-harness/assets/box-test-C3pSy5ED.js +0 -50
  572. package/bundled-test-harness/assets/brand-guide-attachments-test-EoC_u7Vc.js +0 -84
  573. package/bundled-test-harness/assets/brand-guide-custom-css-test-Dn3fvblr.js +0 -196
  574. package/bundled-test-harness/assets/brand-guide-edit-test-NeiT3MyK.js +0 -140
  575. package/bundled-test-harness/assets/brand-logo-mark-field-test-C2A1EnBB.js +0 -86
  576. package/bundled-test-harness/assets/broken-link-template-test-CWn6V5zZ.js +0 -192
  577. package/bundled-test-harness/assets/bundled-base-modules-test-D7mLzpsw.js +0 -54
  578. package/bundled-test-harness/assets/bundled-base-oracle-test-I7xCId_k.js +0 -37
  579. package/bundled-test-harness/assets/buried-stack-item-scroll-test-DFBev0h-.js +0 -236
  580. package/bundled-test-harness/assets/button-BeSuhveJ.js +0 -207
  581. package/bundled-test-harness/assets/bxl-cyclic-graph-test-DPykwvvx.js +0 -47
  582. package/bundled-test-harness/assets/bxl-expression-test-LBWJiFb9.js +0 -250
  583. package/bundled-test-harness/assets/bxl-indexing-test-BuZmLk7y.js +0 -212
  584. package/bundled-test-harness/assets/bxl-platform-module-test-BNIvlkCM.js +0 -71
  585. package/bundled-test-harness/assets/can-invoke-test-t-bFIIeX.js +0 -455
  586. package/bundled-test-harness/assets/can-read-realm-test-2Q_MzRT9.js +0 -56
  587. package/bundled-test-harness/assets/cancel-indexing-job-test-QeYxEukn.js +0 -69
  588. package/bundled-test-harness/assets/capture-test-CJmJG8YR.js +0 -360
  589. package/bundled-test-harness/assets/card-api-test-B43I510H.js +0 -198
  590. package/bundled-test-harness/assets/card-basics-test-CBClzP2y.js +0 -5364
  591. package/bundled-test-harness/assets/card-chooser-paging-test-HEVzf6pR.js +0 -235
  592. package/bundled-test-harness/assets/card-chooser-test-GfjBRPFI.js +0 -393
  593. package/bundled-test-harness/assets/card-context-search-results-CoSr4EdS.js +0 -30
  594. package/bundled-test-harness/assets/card-context-search-results-test-BLMlZu9t.js +0 -184
  595. package/bundled-test-harness/assets/card-def-field-def-relationships-test-DEBOzKan.js +0 -562
  596. package/bundled-test-harness/assets/card-def-menu-items-test-88_h8o0D.js +0 -228
  597. package/bundled-test-harness/assets/card-delete-test-DKom1phy.js +0 -466
  598. package/bundled-test-harness/assets/card-error-awaiting-index-test-DEwgFZMP.js +0 -53
  599. package/bundled-test-harness/assets/card-error-r6_cXst9.js +0 -72
  600. package/bundled-test-harness/assets/card-info-thumbnail-picker-test-B7LiY15e.js +0 -219
  601. package/bundled-test-harness/assets/card-playground-test-CgyIJHui.js +0 -1491
  602. package/bundled-test-harness/assets/card-prerender-rPfzpIOU.js +0 -12939
  603. package/bundled-test-harness/assets/card-thunk-error-test-L0pvg4Ce.js +0 -48
  604. package/bundled-test-harness/assets/card-type-service-test-B2dhqxSD.js +0 -161
  605. package/bundled-test-harness/assets/check-correctness-test-DgqaLlCW.js +0 -1093
  606. package/bundled-test-harness/assets/check-domain-availability-test-B0hJHY5l.js +0 -98
  607. package/bundled-test-harness/assets/chip-D01NW3WH.js +0 -44
  608. package/bundled-test-harness/assets/choreo-D2Jl79RU.js +0 -1019
  609. package/bundled-test-harness/assets/choreo-_E8SOEe-.js +0 -2
  610. package/bundled-test-harness/assets/choreo-feature-reel-test-WLjsZDmS.js +0 -155
  611. package/bundled-test-harness/assets/choreo-gallery-build-order-test-6jnS8PsS.js +0 -436
  612. package/bundled-test-harness/assets/choreo-gallery-compositor-test-CbUZsVB6.js +0 -399
  613. package/bundled-test-harness/assets/choreo-gallery-cover-test-CbvAStgk.js +0 -214
  614. package/bundled-test-harness/assets/choreo-gallery-crossing-stage-test-tdjvUSa6.js +0 -133
  615. package/bundled-test-harness/assets/choreo-gallery-demos-alive-test-CsnM3hQK.js +0 -42
  616. package/bundled-test-harness/assets/choreo-gallery-drift-test-DG2LQTa7.js +0 -620
  617. package/bundled-test-harness/assets/choreo-gallery-escort-test-mn3-qXP1.js +0 -187
  618. package/bundled-test-harness/assets/choreo-gallery-films-test-BuktaC0D.js +0 -140
  619. package/bundled-test-harness/assets/choreo-gallery-filter-test-Dd-zpps0.js +0 -46
  620. package/bundled-test-harness/assets/choreo-gallery-fold-test-CWc1ijGc.js +0 -180
  621. package/bundled-test-harness/assets/choreo-gallery-guide-pages-test-tk2QmYPU.js +0 -114
  622. package/bundled-test-harness/assets/choreo-gallery-guides-test-DVbf1zM4.js +0 -321
  623. package/bundled-test-harness/assets/choreo-gallery-hang-test-B7EFp2dx.js +0 -426
  624. package/bundled-test-harness/assets/choreo-gallery-highlight-test-BFgbdesP.js +0 -60
  625. package/bundled-test-harness/assets/choreo-gallery-inline-edit-test-DJb8FC5R.js +0 -370
  626. package/bundled-test-harness/assets/choreo-gallery-interruption-test-DWyMXo5D.js +0 -176
  627. package/bundled-test-harness/assets/choreo-gallery-lone-stack-test-D3b8LsJ6.js +0 -104
  628. package/bundled-test-harness/assets/choreo-gallery-navigation-test-CjjU6Rvn.js +0 -193
  629. package/bundled-test-harness/assets/choreo-gallery-playhead-transport-test-Le_h3QWU.js +0 -111
  630. package/bundled-test-harness/assets/choreo-gallery-poplayout-subtree-test-Cp-DlWj4.js +0 -127
  631. package/bundled-test-harness/assets/choreo-gallery-presence-modes-test-DayS4GCJ.js +0 -100
  632. package/bundled-test-harness/assets/choreo-gallery-presentation-test-DeAfuFS7.js +0 -157
  633. package/bundled-test-harness/assets/choreo-gallery-reduced-motion-test-BgPWpggq.js +0 -145
  634. package/bundled-test-harness/assets/choreo-gallery-sheet-standalone-test-PzyoMNYv.js +0 -89
  635. package/bundled-test-harness/assets/choreo-gallery-sheet-test-CxaiNBkL.js +0 -48
  636. package/bundled-test-harness/assets/choreo-gallery-site-test-6xtSntS5.js +0 -237
  637. package/bundled-test-harness/assets/choreo-gallery-stage-E6Q5r-zU.js +0 -256
  638. package/bundled-test-harness/assets/choreo-gallery-stage-keyboard-test-C7aWMr9a.js +0 -102
  639. package/bundled-test-harness/assets/choreo-gallery-stages-test-CDWWgC61.js +0 -35
  640. package/bundled-test-harness/assets/choreo-gallery-subdivision-test-Bkp15XJv.js +0 -138
  641. package/bundled-test-harness/assets/choreo-gallery-table-plan-test-CcGRi_3O.js +0 -144
  642. package/bundled-test-harness/assets/choreo-gallery-theater-test-Qph5pLT_.js +0 -252
  643. package/bundled-test-harness/assets/choreo-gallery-tuning-test-C4DhFLVA.js +0 -95
  644. package/bundled-test-harness/assets/choreo-gallery-widget-room-test-LK493r1M.js +0 -88
  645. package/bundled-test-harness/assets/choreo-gallery-wires-test-B7SeUCc8.js +0 -148
  646. package/bundled-test-harness/assets/client-telemetry-test-DGmHzAFx.js +0 -340
  647. package/bundled-test-harness/assets/clip-BpYQPVz_.js +0 -2
  648. package/bundled-test-harness/assets/clip-CNaYbIwL.js +0 -92
  649. package/bundled-test-harness/assets/code-block-Cp2CJo5-.js +0 -502
  650. package/bundled-test-harness/assets/code-ref-test-C8JBHDb-.js +0 -163
  651. package/bundled-test-harness/assets/code-submode-availability-test-CzG1Tv6L.js +0 -198
  652. package/bundled-test-harness/assets/code-submode-test-BclVWjm5.js +0 -1839
  653. package/bundled-test-harness/assets/codeblocks-test-CmQlyxN7.js +0 -418
  654. package/bundled-test-harness/assets/codemirror-editor-test-B74H_yn8.js +0 -1512
  655. package/bundled-test-harness/assets/codemirror-embed-toolbar-test-Bz6VEysU.js +0 -366
  656. package/bundled-test-harness/assets/color-field-test-DMCPQKIP.js +0 -212
  657. package/bundled-test-harness/assets/compaction-test-saQCLBrQ.js +0 -150
  658. package/bundled-test-harness/assets/computed-test-C05HliJC.js +0 -1320
  659. package/bundled-test-harness/assets/container-Cqcwrd-m.js +0 -10857
  660. package/bundled-test-harness/assets/container-h3Wc26qn.css +0 -5097
  661. package/bundled-test-harness/assets/content-preview-components-test-DZPj4_CU.js +0 -462
  662. package/bundled-test-harness/assets/copy-and-edit-test-DiXTQNTF.js +0 -292
  663. package/bundled-test-harness/assets/copy-card-test-ys7GquUY.js +0 -218
  664. package/bundled-test-harness/assets/copy-file-to-realm-test-Gn0Wn4vT.js +0 -148
  665. package/bundled-test-harness/assets/copy-source-test-BTLrOmPm.js +0 -56
  666. package/bundled-test-harness/assets/create-file-test-BCeIW-Rt.js +0 -464
  667. package/bundled-test-harness/assets/create-file-test-DbHQ5JsS.js +0 -1086
  668. package/bundled-test-harness/assets/create-listing-modal-test-CeHc4ter.js +0 -273
  669. package/bundled-test-harness/assets/create-listing-pr-request-test-DXbJNfMh.js +0 -117
  670. package/bundled-test-harness/assets/create-spec-test-BDIZoyHT.js +0 -256
  671. package/bundled-test-harness/assets/create-submission-workflow-test-Bix5J-3A.js +0 -132
  672. package/bundled-test-harness/assets/create-workspace-test-BmNnLHwC.js +0 -104
  673. package/bundled-test-harness/assets/credential-fields-test-NK1F4QWn.js +0 -200
  674. package/bundled-test-harness/assets/csv-file-def-test-BSfs4TTP.js +0 -102
  675. package/bundled-test-harness/assets/dashboard-C4T7ffKY.js +0 -3576
  676. package/bundled-test-harness/assets/dashboard-CFeHuP5-.js +0 -81
  677. package/bundled-test-harness/assets/dashboard-DQlpW-ux.css +0 -2392
  678. package/bundled-test-harness/assets/dashboard-add-workspace-test--rr6objf.js +0 -50
  679. package/bundled-test-harness/assets/dashboard-agents-test-D1y8H4xH.js +0 -334
  680. package/bundled-test-harness/assets/dashboard-archive-test-bN4EQaXv.js +0 -128
  681. package/bundled-test-harness/assets/dashboard-delete-test-BvsASb8B.js +0 -163
  682. package/bundled-test-harness/assets/dashboard-duplicate-offer-test-DEsd5ZzZ.js +0 -71
  683. package/bundled-test-harness/assets/dashboard-duplicate-test-BnR0sTgB.js +0 -222
  684. package/bundled-test-harness/assets/dashboard-get-started-test-DG4uUXLv.js +0 -246
  685. package/bundled-test-harness/assets/dashboard-pinned-cards-test-AoGGVRAS.js +0 -220
  686. package/bundled-test-harness/assets/dashboard-reindex-test-BN9a96Xp.js +0 -115
  687. package/bundled-test-harness/assets/dashboard-section-rail-test-B3OT9V2T.js +0 -169
  688. package/bundled-test-harness/assets/dashboard-state-test-BY0Zqrmj.js +0 -162
  689. package/bundled-test-harness/assets/dashboard-test-C13oNpWt.js +0 -545
  690. package/bundled-test-harness/assets/dashboard-unreachable-notice-test-DZIV4x5j.js +0 -62
  691. package/bundled-test-harness/assets/dashboard-workspace-test-CBnOQViI.js +0 -537
  692. package/bundled-test-harness/assets/dashboard-workspaces-section-test-KU8ZVOYp.js +0 -396
  693. package/bundled-test-harness/assets/data-file-def-preview-test-CI5gcdtK.js +0 -155
  694. package/bundled-test-harness/assets/date-time-fields-test-D2CpR_Pb.js +0 -359
  695. package/bundled-test-harness/assets/debug-message-test-Df1kHesw.js +0 -117
  696. package/bundled-test-harness/assets/declared-captures-test-hQ43zuox.js +0 -879
  697. package/bundled-test-harness/assets/delete-workspace-test-BhfMKsix.js +0 -102
  698. package/bundled-test-harness/assets/diffing-test-CHRh55mC.js +0 -210
  699. package/bundled-test-harness/assets/download-file-to-realm-test-CC1HURCi.js +0 -119
  700. package/bundled-test-harness/assets/editor-test-DkeCv28f.js +0 -688
  701. package/bundled-test-harness/assets/edits-BSJqtUXM.js +0 -651
  702. package/bundled-test-harness/assets/email-field-test-DihK0suO.js +0 -75
  703. package/bundled-test-harness/assets/enum-field-test-Gja3bzt5.js +0 -935
  704. package/bundled-test-harness/assets/error-display-test-GhYZu7cp.js +0 -343
  705. package/bundled-test-harness/assets/evaluate-module-test-D_t4CiUq.js +0 -91
  706. package/bundled-test-harness/assets/execute-atomic-operations-test-xtou8Zeg.js +0 -113
  707. package/bundled-test-harness/assets/externals-B02-sD_L.js +0 -4393
  708. package/bundled-test-harness/assets/fallback-banner-live-delete-test-DtxzNXdE.js +0 -207
  709. package/bundled-test-harness/assets/fallback-banner-test-BfmiQ_68.js +0 -53
  710. package/bundled-test-harness/assets/fallback-banner-test-DLtTdmvn.js +0 -225
  711. package/bundled-test-harness/assets/fallback-models-test-BxNJxhfd.js +0 -161
  712. package/bundled-test-harness/assets/fetch-card-json-test-DofKbzvC.js +0 -61
  713. package/bundled-test-harness/assets/field-configuration-test-SUoPaXWy.js +0 -551
  714. package/bundled-test-harness/assets/field-markdown-domain-test-BwtR0dPP.js +0 -616
  715. package/bundled-test-harness/assets/field-markdown-oversize-test-D8UJcBc3.js +0 -88
  716. package/bundled-test-harness/assets/field-markdown-primitives-test-D5_ZdoDO.js +0 -365
  717. package/bundled-test-harness/assets/field-markdown-specialized-test-Dpd5hs04.js +0 -534
  718. package/bundled-test-harness/assets/field-playground-test-CzhYzKGv.js +0 -894
  719. package/bundled-test-harness/assets/field-support-predicates-test-BSvVOFth.js +0 -167
  720. package/bundled-test-harness/assets/file-attachment-test-fM-yFedm.js +0 -796
  721. package/bundled-test-harness/assets/file-chooser-panel-test-CKj8YTdY.js +0 -153
  722. package/bundled-test-harness/assets/file-chooser-test-Bs8jFXqa.js +0 -504
  723. package/bundled-test-harness/assets/file-def-format-templates-test-CxrRoWoD.js +0 -380
  724. package/bundled-test-harness/assets/file-def-live-reload-test-X_8YEkve.js +0 -124
  725. package/bundled-test-harness/assets/file-def-menu-items-test-Dx879o_o.js +0 -138
  726. package/bundled-test-harness/assets/file-def-navigation-test-MMI_EEO1.js +0 -109
  727. package/bundled-test-harness/assets/file-def-serialization-test-B5lguBQD.js +0 -89
  728. package/bundled-test-harness/assets/file-def-test-Di9QWcrj.js +0 -216
  729. package/bundled-test-harness/assets/file-preview-live-reload-test-aqx93A7c.js +0 -310
  730. package/bundled-test-harness/assets/file-resource-primitives-test-a5abpcSB.js +0 -255
  731. package/bundled-test-harness/assets/file-tree-from-index-test-CnruGxJ8.js +0 -96
  732. package/bundled-test-harness/assets/file-tree-test-BCyWDdSE.js +0 -851
  733. package/bundled-test-harness/assets/file-view-model-test-BfpLa01Y.js +0 -346
  734. package/bundled-test-harness/assets/filedef-export-shape-test-CQ9XbrzS.js +0 -61
  735. package/bundled-test-harness/assets/film-CL1zj_bJ.js +0 -2
  736. package/bundled-test-harness/assets/film-Dq_quZ31.js +0 -13
  737. package/bundled-test-harness/assets/film-xbkQa060.js +0 -4074
  738. package/bundled-test-harness/assets/flac-audio-def-test-BmVp9dMx.js +0 -143
  739. package/bundled-test-harness/assets/focus-Dm4wkM72.js +0 -306
  740. package/bundled-test-harness/assets/font-metadata-extractor-test-OWEh9_MS.js +0 -415
  741. package/bundled-test-harness/assets/formatted-aibot-message-test-BpHsWpuV.js +0 -109
  742. package/bundled-test-harness/assets/formatted-user-message-test-DZW5TAr0.js +0 -43
  743. package/bundled-test-harness/assets/freestyle-test-D_uaPU_3.js +0 -17
  744. package/bundled-test-harness/assets/full-reindex-realm-test-C6vHL5kC.js +0 -101
  745. package/bundled-test-harness/assets/garbage-collection-test-D-Ao4t2n.js +0 -403
  746. package/bundled-test-harness/assets/general-test-PSGI8W0z.js +0 -923
  747. package/bundled-test-harness/assets/generate-example-cards-one-shot-test-J-m-0E6W.js +0 -65
  748. package/bundled-test-harness/assets/generic-file-def-preview-test-BAsOhTYU.js +0 -71
  749. package/bundled-test-harness/assets/get-available-realm-identifiers-test-D5PBOr97.js +0 -47
  750. package/bundled-test-harness/assets/get-catalog-realm-identifiers-test-NM9UURHE.js +0 -47
  751. package/bundled-test-harness/assets/get-default-writable-realm-test-BxXc9a3J.js +0 -54
  752. package/bundled-test-harness/assets/get-published-realms-test-C8TJEc4-.js +0 -71
  753. package/bundled-test-harness/assets/get-realm-of-resource-identifier-test-Dt8CB6lS.js +0 -54
  754. package/bundled-test-harness/assets/get-relationship-membership-state-test-9_8x3myJ.js +0 -1308
  755. package/bundled-test-harness/assets/get-user-system-card-test-k0UO-uba.js +0 -67
  756. package/bundled-test-harness/assets/gif-image-def-test-BWrqPGDX.js +0 -188
  757. package/bundled-test-harness/assets/glimmer-motion-and-choreo-in-cards-test-BgG8QI9E.js +0 -160
  758. package/bundled-test-harness/assets/glimmer-motion-and-choreo-test-BKOvNyCN.js +0 -74
  759. package/bundled-test-harness/assets/gts-file-def-test-BCRHwDeZ.js +0 -100
  760. package/bundled-test-harness/assets/head-format-preview-test-DnfUhniI.js +0 -158
  761. package/bundled-test-harness/assets/helpers-DklkegO_.js +0 -5
  762. package/bundled-test-harness/assets/host-mode-service-vOfN0smp.js +0 -232
  763. package/bundled-test-harness/assets/host-mode-test-CCCJFz6_.js +0 -831
  764. package/bundled-test-harness/assets/host-submode-test-CtCfbuPA.js +0 -1342
  765. package/bundled-test-harness/assets/html-component-test-CWyhb5ZX.js +0 -65
  766. package/bundled-test-harness/assets/html-def-test-Cb8C2lUx.js +0 -160
  767. package/bundled-test-harness/assets/html-meta-extractor-test-BHT9Rtir.js +0 -60
  768. package/bundled-test-harness/assets/hydratable-card-test-DpgpdesD.js +0 -426
  769. package/bundled-test-harness/assets/icon-button-ABCGVF3C.js +0 -67
  770. package/bundled-test-harness/assets/image-metadata-extractor-test-ClhPTouq.js +0 -1109
  771. package/bundled-test-harness/assets/index-changes-test-CgnVr3LH.js +0 -367
  772. package/bundled-test-harness/assets/index-query-engine-test-CQTwju5_.js +0 -2593
  773. package/bundled-test-harness/assets/index-writer-test-IoVOoZT2.js +0 -3040
  774. package/bundled-test-harness/assets/inspector-test-BN2Ieb77.js +0 -2058
  775. package/bundled-test-harness/assets/instance-filter-matcher-test-Bq-_Sy89.js +0 -788
  776. package/bundled-test-harness/assets/instantiate-card-test-DEeDTzFV.js +0 -164
  777. package/bundled-test-harness/assets/interact-submode-creation-and-permissions-test-DP6kOyJS.js +0 -475
  778. package/bundled-test-harness/assets/interact-submode-setup-B0_cHqH-.js +0 -566
  779. package/bundled-test-harness/assets/invalidate-realm-identifiers-test-9uUD91Pw.js +0 -99
  780. package/bundled-test-harness/assets/invite-user-to-room-test-CcDA45Ac.js +0 -142
  781. package/bundled-test-harness/assets/invoke-card-operation-test-DmUtgueM.js +0 -333
  782. package/bundled-test-harness/assets/isolated-render-test-B2eXNHu6.js +0 -51
  783. package/bundled-test-harness/assets/job-scoped-doc-cache-test-DF9D7cOc.js +0 -181
  784. package/bundled-test-harness/assets/job-scoped-instance-residency-test-CSS8xUU5.js +0 -103
  785. package/bundled-test-harness/assets/jpg-image-def-test-voECMTht.js +0 -697
  786. package/bundled-test-harness/assets/json-file-def-test-8Y4KLjUC.js +0 -95
  787. package/bundled-test-harness/assets/key-notices-badge-test-d1mYqx0e.js +0 -155
  788. package/bundled-test-harness/assets/key-readiness-test-BtCg7PCk.js +0 -190
  789. package/bundled-test-harness/assets/linksto-broken-link-placeholder-test-CyCMbJnN.js +0 -398
  790. package/bundled-test-harness/assets/linksto-error-sentinel-test-BDW572-v.js +0 -238
  791. package/bundled-test-harness/assets/linksto-many-broken-link-placeholder-test-B4wM97hD.js +0 -354
  792. package/bundled-test-harness/assets/linksto-many-per-slot-access-test-BhJmtJ0_.js +0 -303
  793. package/bundled-test-harness/assets/linksto-sentinel-reload-test-BpBQ5V_i.js +0 -197
  794. package/bundled-test-harness/assets/linksto-sentinel-roundtrip-test-pkBBl4e9.js +0 -260
  795. package/bundled-test-harness/assets/linksto-singular-js-access-contract-test-Bb6wjUdD.js +0 -196
  796. package/bundled-test-harness/assets/lint-and-fix-test-CcMLn-co.js +0 -51
  797. package/bundled-test-harness/assets/live-test-AyBnq7BX.js +0 -2
  798. package/bundled-test-harness/assets/live-test-CgnAcIDw.js +0 -100
  799. package/bundled-test-harness/assets/load-default-skills-test-BIOwtx0Y.js +0 -74
  800. package/bundled-test-harness/assets/loader-parallel-prefetch-test-D5_oRSER.js +0 -257
  801. package/bundled-test-harness/assets/loader-test-DSc_jR1c.js +0 -482
  802. package/bundled-test-harness/assets/loading-test-8pldx7S-.js +0 -63
  803. package/bundled-test-harness/assets/m4a-audio-def-test-BDI5apzM.js +0 -190
  804. package/bundled-test-harness/assets/main-5kHyCkdm.js +0 -5
  805. package/bundled-test-harness/assets/markdown-embed-chooser-modal-test-Wud0s7WZ.js +0 -470
  806. package/bundled-test-harness/assets/markdown-embed-chooser-test-DVzzS-0C.js +0 -334
  807. package/bundled-test-harness/assets/markdown-embed-preview-pane-test-B5W_iqsi.js +0 -447
  808. package/bundled-test-harness/assets/markdown-embed-preview-test-CZF_s0fB.js +0 -368
  809. package/bundled-test-harness/assets/markdown-fallback-test-fT6BS4W7.js +0 -316
  810. package/bundled-test-harness/assets/markdown-file-def-test-B1aTzazR.js +0 -380
  811. package/bundled-test-harness/assets/markdown-helpers-test-gNKZf7Mw.js +0 -188
  812. package/bundled-test-harness/assets/markdown-highlighting-test-Du5_CQmD.js +0 -244
  813. package/bundled-test-harness/assets/markdown-preview-h-_aJhRc.js +0 -72
  814. package/bundled-test-harness/assets/markdown-preview-test-DJvoVsXw.js +0 -238
  815. package/bundled-test-harness/assets/markdown-skill-frontmatter-test-VwJi3Paj.js +0 -146
  816. package/bundled-test-harness/assets/markdown-skill-search-test-ysCdf0xM.js +0 -80
  817. package/bundled-test-harness/assets/matrix-service-account-switch-sessions-test-K2JuMy36.js +0 -63
  818. package/bundled-test-harness/assets/matrix-service-boot-assembly-test-CkdL_-os.js +0 -300
  819. package/bundled-test-harness/assets/matrix-service-personal-realm-test-Dy1DultK.js +0 -125
  820. package/bundled-test-harness/assets/matrix-service-realm-servers-test-DHDDKuEg.js +0 -55
  821. package/bundled-test-harness/assets/matrix-service-realms-list-updated-test-DcTbZpMl.js +0 -132
  822. package/bundled-test-harness/assets/matrix-service-relogin-test-D3NQktoa.js +0 -59
  823. package/bundled-test-harness/assets/matrix-service-sliding-sync-test-6CAflWOA.js +0 -35
  824. package/bundled-test-harness/assets/menu-kUSaJIPq.js +0 -3562
  825. package/bundled-test-harness/assets/message-service-subscription-test-DaQdgDWi.js +0 -110
  826. package/bundled-test-harness/assets/message-service-test-BsGEgM_m.js +0 -144
  827. package/bundled-test-harness/assets/message-tool-test-BB_4kw1V.js +0 -33
  828. package/bundled-test-harness/assets/midi-audio-def-test-BbbkFjqf.js +0 -182
  829. package/bundled-test-harness/assets/migrate-skill-test-X9xImDuq.js +0 -161
  830. package/bundled-test-harness/assets/mini-AwF31elJ.js +0 -1404
  831. package/bundled-test-harness/assets/mini-card-chooser-test-BZtrEiWu.js +0 -272
  832. package/bundled-test-harness/assets/mini-file-chooser-test-MIHW3kCI.js +0 -201
  833. package/bundled-test-harness/assets/mock-matrix-Dd8k0DNa.js +0 -15107
  834. package/bundled-test-harness/assets/mock-matrix-DhPN_34j.js +0 -2
  835. package/bundled-test-harness/assets/modal-LTh3_oHK.js +0 -322
  836. package/bundled-test-harness/assets/model-cost-tier-test-h1IkU9mp.js +0 -174
  837. package/bundled-test-harness/assets/model-file-extract-test-ntSo0wZF.js +0 -206
  838. package/bundled-test-harness/assets/module-transpile-cache-test-CDeRaaeP.js +0 -67
  839. package/bundled-test-harness/assets/monaco-test-C0Fa744D.js +0 -100
  840. package/bundled-test-harness/assets/mp3-audio-def-test-B4j4qR9H.js +0 -133
  841. package/bundled-test-harness/assets/multiple-stacks-test-BhA25ywL.js +0 -208
  842. package/bundled-test-harness/assets/nested-query-field-render-test-S9Y8YNKB.js +0 -249
  843. package/bundled-test-harness/assets/no-stacks-test-B7VciWyg.js +0 -48
  844. package/bundled-test-harness/assets/number-field-test-CS74lDPN.js +0 -184
  845. package/bundled-test-harness/assets/office-file-def-test-2cKc1pmd.js +0 -263
  846. package/bundled-test-harness/assets/office-metadata-extractor-test-DC8Fo-OW.js +0 -218
  847. package/bundled-test-harness/assets/office-poster-capture-test-Ba0_5UrT.js +0 -203
  848. package/bundled-test-harness/assets/ogg-audio-def-test-CIPQ1d4w.js +0 -196
  849. package/bundled-test-harness/assets/open-create-listing-modal-test-bmQkY5Zl.js +0 -131
  850. package/bundled-test-harness/assets/open-image-in-new-tab-test-DBD7_vMH.js +0 -52
  851. package/bundled-test-harness/assets/open-secure-window-test-BgeuYAqz.js +0 -253
  852. package/bundled-test-harness/assets/open-workspace-test-DRHGljV0.js +0 -46
  853. package/bundled-test-harness/assets/operation-lowering-test-CH1c0pSH.js +0 -2957
  854. package/bundled-test-harness/assets/operations-invocation-test-B1YkCLrv.js +0 -523
  855. package/bundled-test-harness/assets/operations-optimistic-test-DAbtOwsC.js +0 -203
  856. package/bundled-test-harness/assets/operations-query-test-9p1ZIDe-.js +0 -459
  857. package/bundled-test-harness/assets/operations-store-reconciliation-test-D0EQh3w2.js +0 -406
  858. package/bundled-test-harness/assets/operations-test-BQhlrfe3.js +0 -2518
  859. package/bundled-test-harness/assets/operator-mode-acceptance-test-DtHnonEb.js +0 -1195
  860. package/bundled-test-harness/assets/operator-mode-card-chooser-test-DQUxZxaq.js +0 -1036
  861. package/bundled-test-harness/assets/operator-mode-links-test-BJ26HllS.js +0 -797
  862. package/bundled-test-harness/assets/operator-mode-test-DIPDI0qt.js +0 -696
  863. package/bundled-test-harness/assets/operator-mode-ui-test-CfA-fAh4.js +0 -1045
  864. package/bundled-test-harness/assets/overlay-DecPh3nt.js +0 -123
  865. package/bundled-test-harness/assets/overlay-menu-items-test-C6XqjLtu.js +0 -331
  866. package/bundled-test-harness/assets/overlays-Ctp8ePzZ.js +0 -75
  867. package/bundled-test-harness/assets/overlays-CzWpSg5T.js +0 -2
  868. package/bundled-test-harness/assets/overlays-detached-element-test-DvL_8Bb5.js +0 -56
  869. package/bundled-test-harness/assets/panel-CImumikB.js +0 -15124
  870. package/bundled-test-harness/assets/past-sessions-test-N6riGN_I.js +0 -321
  871. package/bundled-test-harness/assets/patch-fields-test-D30_-KwQ.js +0 -1014
  872. package/bundled-test-harness/assets/patch-instance-test-C5rGscZq.js +0 -348
  873. package/bundled-test-harness/assets/pdf-file-def-test-DtiqGRvZ.js +0 -111
  874. package/bundled-test-harness/assets/pdf-metadata-extractor-test-FU02KmdV.js +0 -130
  875. package/bundled-test-harness/assets/permission-checking-realm-test-DqdNJDwU.js +0 -306
  876. package/bundled-test-harness/assets/persist-module-inspector-view-test-BHOAgPVy.js +0 -60
  877. package/bundled-test-harness/assets/persist-scroll-position-test-qtmS518r.js +0 -254
  878. package/bundled-test-harness/assets/phone-number-field-test-DhdaM7uL.js +0 -73
  879. package/bundled-test-harness/assets/pill-menu-test-C9Mrrepl.js +0 -60
  880. package/bundled-test-harness/assets/plate-9n-sXyCw.js +0 -41
  881. package/bundled-test-harness/assets/plate-BnZcAk-_.js +0 -2
  882. package/bundled-test-harness/assets/player-Cu5b4LEJ.js +0 -82
  883. package/bundled-test-harness/assets/player-unk2mkxV.js +0 -2
  884. package/bundled-test-harness/assets/playground-BwA8wFGK.js +0 -58
  885. package/bundled-test-harness/assets/plural-field-components-test-CFNQKETg.js +0 -198
  886. package/bundled-test-harness/assets/png-image-def-test-DG5Vhlqb.js +0 -266
  887. package/bundled-test-harness/assets/policy-audit-confirmation-test-yfKU47LR.js +0 -155
  888. package/bundled-test-harness/assets/policy-scoped-search-test-BjQRDYqR.js +0 -339
  889. package/bundled-test-harness/assets/prerender-file-extract-test-CEU4SaAZ.js +0 -346
  890. package/bundled-test-harness/assets/prerender-html-test-CGB3ClCS.js +0 -670
  891. package/bundled-test-harness/assets/prerender-meta-test-xqc4fW_0.js +0 -614
  892. package/bundled-test-harness/assets/prerender-module-test-CI1TmZw-.js +0 -409
  893. package/bundled-test-harness/assets/prerender-persistence-block-test-Da0dJO_N.js +0 -124
  894. package/bundled-test-harness/assets/prerender-pre-model-error-test-BVLyhk8R.js +0 -61
  895. package/bundled-test-harness/assets/prerender-serialize-cycle-test-glJFfxHU.js +0 -134
  896. package/bundled-test-harness/assets/prerendered-html-read-test-Mp4L0VHQ.js +0 -191
  897. package/bundled-test-harness/assets/pretui-components-test-BBpA9UnA.js +0 -991
  898. package/bundled-test-harness/assets/pretui-components-test-BqFq7rw_.css +0 -730
  899. package/bundled-test-harness/assets/preview-format-test-C55Bwcur.js +0 -103
  900. package/bundled-test-harness/assets/preview-test-CTAhRGU8.js +0 -474
  901. package/bundled-test-harness/assets/process-card-test-UjqpuxB7.js +0 -94
  902. package/bundled-test-harness/assets/profile-settings-modal-C8bCgTMK.js +0 -989
  903. package/bundled-test-harness/assets/publish-realm-ixUB4FPK.js +0 -82
  904. package/bundled-test-harness/assets/publish-realm-test-CrrsdL4W.js +0 -210
  905. package/bundled-test-harness/assets/query-field-barrier-test-DjivFE93.js +0 -113
  906. package/bundled-test-harness/assets/query-field-error-sentinel-test-0HwnV4Mw.js +0 -201
  907. package/bundled-test-harness/assets/query-field-membership-status-test-C8yTTBkc.js +0 -323
  908. package/bundled-test-harness/assets/query-field-page-optin-test-D4l_GcII.js +0 -126
  909. package/bundled-test-harness/assets/query-field-schema-test-DDbcNNm5.js +0 -231
  910. package/bundled-test-harness/assets/query-field-search-throttle-test-CXp50Ax0.js +0 -154
  911. package/bundled-test-harness/assets/query-field-stale-prerender-test-DErzt-Cv.js +0 -152
  912. package/bundled-test-harness/assets/query-fields-test-Dz67fdSl.js +0 -535
  913. package/bundled-test-harness/assets/quick-look-test-B1ijDsh_.js +0 -139
  914. package/bundled-test-harness/assets/read-card-for-ai-assistant-test-DJxZ16H_.js +0 -91
  915. package/bundled-test-harness/assets/read-file-for-ai-assistant-test-BoRQkZ8c.js +0 -45
  916. package/bundled-test-harness/assets/read-source-test-Bl-NjchO.js +0 -67
  917. package/bundled-test-harness/assets/read-text-file-test-CP37CZoo.js +0 -124
  918. package/bundled-test-harness/assets/realm-CaK5mkT-.js +0 -2852
  919. package/bundled-test-harness/assets/realm-api-keys-BNUFWbGR.js +0 -579
  920. package/bundled-test-harness/assets/realm-api-keys-CkshxhXC.js +0 -2
  921. package/bundled-test-harness/assets/realm-api-keys-test-BP8xifjn.js +0 -109
  922. package/bundled-test-harness/assets/realm-api-keys-test-CwdK9YXp.js +0 -588
  923. package/bundled-test-harness/assets/realm-config-iKwE3Htp.js +0 -833
  924. package/bundled-test-harness/assets/realm-config-policy-standing-test-BgVEIDnB.js +0 -290
  925. package/bundled-test-harness/assets/realm-config-routing-rule-edit-test-BoJoKzmX.js +0 -274
  926. package/bundled-test-harness/assets/realm-config-settings-test-Kxw-GHye.js +0 -187
  927. package/bundled-test-harness/assets/realm-field-test-CdGOxrFb.js +0 -100
  928. package/bundled-test-harness/assets/realm-indexing-test-CHtsBV2b.js +0 -4380
  929. package/bundled-test-harness/assets/realm-policy-fitted-test--DhNZSdC.js +0 -206
  930. package/bundled-test-harness/assets/realm-policy-test-D7714iVa.js +0 -1141
  931. package/bundled-test-harness/assets/realm-querying-test-Cj1ekZ0H.js +0 -1067
  932. package/bundled-test-harness/assets/realm-server-form-agnostic-test-CZFPNJfD.js +0 -96
  933. package/bundled-test-harness/assets/realm-server-subscriber-test-C86WmBp0.js +0 -46
  934. package/bundled-test-harness/assets/realm-service-info-test-CdgcwKDR.js +0 -67
  935. package/bundled-test-harness/assets/realm-test-DPoLsvKz.js +0 -2364
  936. package/bundled-test-harness/assets/realm-token-refresh-test-Ch35Siwi.js +0 -153
  937. package/bundled-test-harness/assets/realm-url-tooltip-test-x8xWOENK.js +0 -78
  938. package/bundled-test-harness/assets/reasoning-test-BxpE8Jvf.js +0 -221
  939. package/bundled-test-harness/assets/recent-files-test-DTmEzPLq.js +0 -450
  940. package/bundled-test-harness/assets/reindex-realm-test-BQ8KULn4.js +0 -117
  941. package/bundled-test-harness/assets/relationship-loading-state-test-BJoArPWf.js +0 -290
  942. package/bundled-test-harness/assets/remix-card-test-DsTA1KoG.js +0 -58
  943. package/bundled-test-harness/assets/rendered-markdown-DvukulDO.js +0 -292
  944. package/bundled-test-harness/assets/rendered-markdown-test-DxGptXSV.js +0 -587
  945. package/bundled-test-harness/assets/resident-instance-reuse-test-ZWnVu8uj.js +0 -82
  946. package/bundled-test-harness/assets/result-tile-CPyI6Vmv.js +0 -144
  947. package/bundled-test-harness/assets/rich-markdown-field-test-CdygoXIO.js +0 -1647
  948. package/bundled-test-harness/assets/room-message-test-D3NfMqH0.js +0 -484
  949. package/bundled-test-harness/assets/run-D_Px28eF.js +0 -3956
  950. package/bundled-test-harness/assets/run-realm-code-qWCZxmJ7.js +0 -2964
  951. package/bundled-test-harness/assets/run-realm-code-test-UzyeEJq6.js +0 -3844
  952. package/bundled-test-harness/assets/sanitize-module-list-test-Babq44bP.js +0 -85
  953. package/bundled-test-harness/assets/save-card-skip-index-wait-test-BcELXlQ_.js +0 -89
  954. package/bundled-test-harness/assets/schema-editor-test-CEvruZbt.js +0 -785
  955. package/bundled-test-harness/assets/schema-generation-test-hYAMdCrn.js +0 -28
  956. package/bundled-test-harness/assets/scrolling-test-DVIsh-_1.js +0 -412
  957. package/bundled-test-harness/assets/search-adorn-test-CkVhqFd0.js +0 -136
  958. package/bundled-test-harness/assets/search-and-choose-test-DUhOB3FV.js +0 -154
  959. package/bundled-test-harness/assets/search-correlation-id-test-Drn4r26N.js +0 -139
  960. package/bundled-test-harness/assets/search-entries-result-test-DTCRJ_wc.js +0 -234
  961. package/bundled-test-harness/assets/search-entries-test-CE0B47pw.js +0 -1486
  962. package/bundled-test-harness/assets/search-entries-tool-test-C4aG0ckM.js +0 -504
  963. package/bundled-test-harness/assets/search-google-images-test-LyhcB2f3.js +0 -166
  964. package/bundled-test-harness/assets/search-results-D4pSne0x.js +0 -266
  965. package/bundled-test-harness/assets/search-results-test-CRZHhqhn.js +0 -578
  966. package/bundled-test-harness/assets/search-selection-menu-test-B7Y3E_nj.js +0 -108
  967. package/bundled-test-harness/assets/search-sheet-files-test-C2y534g8.js +0 -126
  968. package/bundled-test-harness/assets/search-sheet-persistence-test-DePC59Bk.js +0 -131
  969. package/bundled-test-harness/assets/search-test-Dy8NxFkU.js +0 -2249
  970. package/bundled-test-harness/assets/search-tool-test-lctDaMH3.js +0 -156
  971. package/bundled-test-harness/assets/searchable-option-test-CE64M8oM.js +0 -322
  972. package/bundled-test-harness/assets/searchable-search-doc-test-C6u3mVvT.js +0 -1271
  973. package/bundled-test-harness/assets/section-rail-B_UQX00B.js +0 -113
  974. package/bundled-test-harness/assets/section-rail-test-DIda7MIw.js +0 -256
  975. package/bundled-test-harness/assets/secure-sign-in-CqqqfQG8.js +0 -174
  976. package/bundled-test-harness/assets/secure-sign-in-test-DimbVr_W.js +0 -373
  977. package/bundled-test-harness/assets/segmented-control-iePxSdTS.js +0 -173
  978. package/bundled-test-harness/assets/select-tNs6_xwW.js +0 -175
  979. package/bundled-test-harness/assets/send-ai-assistant-message-test-2GVrMF9Z.js +0 -52
  980. package/bundled-test-harness/assets/send-bot-trigger-event-test-B_3dKfGN.js +0 -56
  981. package/bundled-test-harness/assets/send-request-via-proxy-test-_clNWyYc.js +0 -380
  982. package/bundled-test-harness/assets/sending-test-DCPFXUVg.js +0 -659
  983. package/bundled-test-harness/assets/serialization-rri-form-audit-test-BI0zCs8Y.js +0 -136
  984. package/bundled-test-harness/assets/serialization-test-bjdtVlZL.js +0 -8758
  985. package/bundled-test-harness/assets/set-user-system-card-test-BUv1vL08.js +0 -59
  986. package/bundled-test-harness/assets/setup-BW1mmC7C.js +0 -772
  987. package/bundled-test-harness/assets/setup-DsIcFT-T.js +0 -2
  988. package/bundled-test-harness/assets/shared-link-target-reuse-test-9NeJEjkb.js +0 -207
  989. package/bundled-test-harness/assets/show-card-test-mfyLwusD.js +0 -365
  990. package/bundled-test-harness/assets/signed-capture-link-test-BOtKNCAM.js +0 -132
  991. package/bundled-test-harness/assets/single-stack-test-B4MGjaLk.js +0 -652
  992. package/bundled-test-harness/assets/skills-test-BuP-Yzk1.js +0 -648
  993. package/bundled-test-harness/assets/skip-boot-index-guard-test-Cmrx2-K7.js +0 -46
  994. package/bundled-test-harness/assets/spec-test-BhZDdhVQ.js +0 -1077
  995. package/bundled-test-harness/assets/spinner-CpIBUG9m.js +0 -49
  996. package/bundled-test-harness/assets/src-DGHttmW-.js +0 -216
  997. package/bundled-test-harness/assets/src-DaNDSbp7.js +0 -5
  998. package/bundled-test-harness/assets/stick-to-bottom-resize-test-Dpy3OVum.js +0 -56
  999. package/bundled-test-harness/assets/store-add-test-_IYS8o74.js +0 -50
  1000. package/bundled-test-harness/assets/store-module-rebuild-test-B5VMaICy.js +0 -454
  1001. package/bundled-test-harness/assets/store-search-test-C2VZabrH.js +0 -175
  1002. package/bundled-test-harness/assets/store-test-D6PObxoD.js +0 -3672
  1003. package/bundled-test-harness/assets/structured-theme-test-BHjVeMf-.js +0 -377
  1004. package/bundled-test-harness/assets/summarize-session-test-BFtTuhe0.js +0 -172
  1005. package/bundled-test-harness/assets/svg-image-def-test-BL6lkWUX.js +0 -167
  1006. package/bundled-test-harness/assets/switch-submode-test-6Uv3bZMl.js +0 -168
  1007. package/bundled-test-harness/assets/sync-openrouter-models-test-Dp9E05tL.js +0 -97
  1008. package/bundled-test-harness/assets/test-support-DYm8XZ0E.js +0 -3
  1009. package/bundled-test-harness/assets/test-support-DfnhiIMV.js +0 -99
  1010. package/bundled-test-harness/assets/tests-CZk0Iag2.js +0 -3596
  1011. package/bundled-test-harness/assets/text-file-def-test-CHdC0yIU.js +0 -94
  1012. package/bundled-test-harness/assets/text-input-validator-test-B9ZR8XPU.js +0 -156
  1013. package/bundled-test-harness/assets/text-suggestion-test-CGLspKFQ.js +0 -340
  1014. package/bundled-test-harness/assets/theme-card-test-CXZvSEvG.js +0 -621
  1015. package/bundled-test-harness/assets/theme-dashboard-nav-test-CkEE0ILk.js +0 -196
  1016. package/bundled-test-harness/assets/theme-scheme-island-test-URXTjipF.js +0 -264
  1017. package/bundled-test-harness/assets/titles-C6enAdIv.js +0 -2
  1018. package/bundled-test-harness/assets/titles-Dft1HoUT.js +0 -52
  1019. package/bundled-test-harness/assets/to-device-streaming-test-D33ZOc9o.js +0 -163
  1020. package/bundled-test-harness/assets/token-usage-test-BHQlU4J4.js +0 -160
  1021. package/bundled-test-harness/assets/tools-CrudqfS3.js +0 -774
  1022. package/bundled-test-harness/assets/tools-calling-test-jo7IREau.js +0 -200
  1023. package/bundled-test-harness/assets/tools-test-D1wMfUa0.js +0 -1624
  1024. package/bundled-test-harness/assets/tools-test-Dn1LYsXp.js +0 -3204
  1025. package/bundled-test-harness/assets/tooltip-8Wyz4IIn.css +0 -68
  1026. package/bundled-test-harness/assets/tooltip-CqwLzRz5.js +0 -134
  1027. package/bundled-test-harness/assets/transform-cards-test-BPhwPFtp.js +0 -341
  1028. package/bundled-test-harness/assets/ts-file-def-preview-test-Bq3zTgw8.js +0 -95
  1029. package/bundled-test-harness/assets/ts-file-def-test-GLswMl7O.js +0 -92
  1030. package/bundled-test-harness/assets/ttf-font-def-test-DQulvUWs.js +0 -206
  1031. package/bundled-test-harness/assets/turn-settling-test-BspmOUQP.js +0 -160
  1032. package/bundled-test-harness/assets/turn-summary-9A8nvC0-.js +0 -1039
  1033. package/bundled-test-harness/assets/unpublish-realm-test-SkYPEhDz.js +0 -102
  1034. package/bundled-test-harness/assets/update-room-skills-test-cTxb-WU6.js +0 -240
  1035. package/bundled-test-harness/assets/use-ai-assistant-test-uaqW1T_A.js +0 -384
  1036. package/bundled-test-harness/assets/user-message-BudkIP-3.js +0 -262
  1037. package/bundled-test-harness/assets/validate-realm-test-DxrGgH9n.js +0 -67
  1038. package/bundled-test-harness/assets/video-metadata-extractor-test-B2pe-Iqa.js +0 -520
  1039. package/bundled-test-harness/assets/view-visually-test-PNon6fUo.js +0 -335
  1040. package/bundled-test-harness/assets/virtual-network-reset-test-uYJLaQHf.js +0 -96
  1041. package/bundled-test-harness/assets/wav-audio-def-test-F4OrFFR4.js +0 -160
  1042. package/bundled-test-harness/assets/webp-image-def-test-B0a_-Vya.js +0 -226
  1043. package/bundled-test-harness/assets/workspace-Cyftysy9.js +0 -440
  1044. package/bundled-test-harness/assets/workspace-a11y-test-sKiPDcbl.js +0 -197
  1045. package/bundled-test-harness/assets/workspace-actions-BuawjFmZ.js +0 -561
  1046. package/bundled-test-harness/assets/workspace-behavior-test-CKa-pb3T.js +0 -338
  1047. package/bundled-test-harness/assets/workspace-delete-multiple-test-Dt2weG5R.js +0 -212
  1048. package/bundled-test-harness/assets/workspace-delete-summary-test-CkqgFqZ8.js +0 -63
  1049. package/bundled-test-harness/assets/workspace-hosting-test-Ci7EEtHP.js +0 -138
  1050. package/bundled-test-harness/assets/workspace-indexing-test-BPVxxY6W.js +0 -71
  1051. package/bundled-test-harness/assets/workspace-test-CWr7vFbg.js +0 -385
  1052. package/bundled-test-harness/assets/workspace-test-INNpQovc.js +0 -51
  1053. package/bundled-test-harness/assets/workspace-timestamp-labels-test-CigQb5wr.js +0 -68
  1054. package/bundled-test-harness/assets/workspace-unit-test-BwVKpuXT.js +0 -122
  1055. package/bundled-test-harness/assets/write-binary-file-test-BKP3gv1k.js +0 -124
  1056. package/bundled-test-harness/assets/write-text-file-test-B6ijTKTa.js +0 -191
  1057. package/bundled-test-harness/assets/zip-archive-test-C-PBzkTn.js +0 -285
  1058. package/bundled-test-harness/assets/zip-file-def-test-FyCzJT-9.js +0 -164
@@ -0,0 +1,2364 @@
1
+ import { s as __toESM } from "./chunk-Rp0pCe6z.js";
2
+ import { r as initializeDeferredDecorator, t as decorateFieldV2 } from "./runtime--fcdnjmJ-BoCBNIsz.js";
3
+ import { Br as testRealmURL, Rr as testRealmInfo, ha as searchEntryWireQueryFromQuery, vs as isSingleCardDocument } from "./runtime-common-BTaLJEw-.js";
4
+ import { T as rri } from "./paths-C9-NYXnM.js";
5
+ import { it as baseRealmRRI, w as baseCardRef } from "./constants-Icc0nFW-.js";
6
+ import { l as validate } from "./esm-browser-CIYLo70w.js";
7
+ import { wt as setComponentTemplate } from "./cache-DtDz7X5V-Wn8jRDfL.js";
8
+ import { H as templateFactory } from "./index-DaCZcoCY-CgzbilMy.js";
9
+ import "./component-BJO47HTh.js";
10
+ import "./template-factory-ds9s0u8l.js";
11
+ import { t as require_qunit } from "./qunit-C-Foo4Nd.js";
12
+ import { D as realmConfigCardJSON, F as setupLocalIndexing, H as testModuleRealm, M as setupCardLogs, P as setupIntegrationTestRealm, d as cardInfo, lt as setupRenderingTest, t as setupMockMatrix, x as getFileCreatedAt } from "./mock-matrix-FjsXmU7-.js";
13
+ import { r as getService } from "./dist-CPfIHBla.js";
14
+ import { A as field, H as linksTo, T as containsMany, U as linksToMany, a as CardDef, l as FieldDef, s as Component, w as contains } from "./card-api-Cc8uZunB.js";
15
+ import { t as string_default } from "./string-5IAMEUit.js";
16
+ import { t as searchCardsForTest } from "./search-cards-DxcB56HL.js";
17
+ import "./code-equality-assertion-Dco7Q4O6.js";
18
+ //#region ../runtime-common/etc/test-fixtures.ts
19
+ var import_qunit = /* @__PURE__ */ __toESM(require_qunit());
20
+ var cardSrc = `
21
+ import {
22
+ contains,
23
+ field,
24
+ Component,
25
+ CardDef,
26
+ } from '@cardstack/base/card-api';
27
+ import StringField from '@cardstack/base/string';
28
+
29
+ export class Person extends CardDef {
30
+ static displayName = 'Person';
31
+ @field firstName = contains(StringField);
32
+ @field cardTitle = contains(StringField, {
33
+ computeVia: function (this: Person) {
34
+ return this.firstName;
35
+ },
36
+ });
37
+ static isolated = class Isolated extends Component<typeof this> {
38
+ <template>
39
+ <h1 data-test-card><@fields.firstName /></h1>
40
+ </template>
41
+ };
42
+ }
43
+
44
+ export let counter = 0;
45
+ export function increment() {
46
+ counter++;
47
+ }
48
+ `.trim();
49
+ function compiledCard(id, moduleName, moduleIdentifier) {
50
+ return `
51
+ import { contains, field, Component, CardDef } from '@cardstack/base/card-api';
52
+ import StringField from '@cardstack/base/string';
53
+ import { setComponentTemplate } from "@ember/component";
54
+ import { createTemplateFactory } from "@ember/template-factory";
55
+ export class Person extends CardDef {
56
+ static [Symbol.for("cardstack-ident")] = [${JSON.stringify(moduleIdentifier)}, "Person"];
57
+ static displayName = 'Person';
58
+ static {
59
+ dt7948.g(this.prototype, "firstName", [field], function () {
60
+ return contains(StringField);
61
+ });
62
+ }
63
+ #firstName = (dt7948.i(this, "firstName"), void 0);
64
+ static {
65
+ dt7948.g(this.prototype, "cardTitle", [field], function () {
66
+ return contains(StringField, {
67
+ computeVia: function () {
68
+ return this.firstName;
69
+ }
70
+ });
71
+ });
72
+ }
73
+ #cardTitle = (dt7948.i(this, "cardTitle"), void 0);
74
+ static isolated = class Isolated extends Component {
75
+ static {
76
+ setComponentTemplate(createTemplateFactory(
77
+ /*
78
+ <h1 data-test-card><@fields.firstName /></h1>
79
+ */
80
+ {
81
+ "id": ${id},
82
+ "block": "[[[10,\\"h1\\"],[14,\\"data-test-card\\",\\"\\"],[12],[8,[30,1,[\\"firstName\\"]],null,null,null],[13]],[\\"@fields\\"],[]]",
83
+ "moduleName": "${moduleName}",
84
+ "isStrictMode": true
85
+ }), this);
86
+ }
87
+ };}
88
+ export let counter = 0;
89
+ export function increment() {
90
+ counter++;
91
+ }`.trim();
92
+ }
93
+ //#endregion
94
+ //#region ../runtime-common/helpers/strip-scoped-css-glimmer-attributes.ts
95
+ function stripScopedCSSGlimmerAttributes(compiledTemplateString) {
96
+ let attributeArray = `\\[(14|24),\\\\"data\\-scopedcss\\-[0-9a-f]{10}\\-[0-9a-f]{10}\\\\",\\\\"\\\\"\\]`;
97
+ let double = new RegExp(`\\[${attributeArray}\\]`, "g");
98
+ let single = new RegExp(`${attributeArray},`, "g");
99
+ return compiledTemplateString.replace(double, "null").replace(single, "");
100
+ }
101
+ //#endregion
102
+ //#region tests/integration/realm-test.gts
103
+ var loader;
104
+ (0, import_qunit.module)("Integration | realm", function(hooks) {
105
+ setupRenderingTest(hooks);
106
+ hooks.beforeEach(function() {
107
+ loader = getService("loader-service").loader;
108
+ });
109
+ let mockMatrixUtils = setupMockMatrix(hooks);
110
+ setupLocalIndexing(hooks);
111
+ setupCardLogs(hooks, async () => await loader.import("@cardstack/base/card-api"));
112
+ async function handle(realm, ...args) {
113
+ let result = await realm.handle(...args);
114
+ if (!result) throw new Error(`realm didn't handle request`);
115
+ return result;
116
+ }
117
+ (0, import_qunit.test)("realm can serve readiness checks without a server-side job queue", async function(assert) {
118
+ let { realm } = await setupIntegrationTestRealm({
119
+ mockMatrixUtils,
120
+ contents: {}
121
+ });
122
+ let response = await handle(realm, new Request(`${testRealmURL}_readiness-check`, { headers: { Accept: "application/vnd.api+json" } }));
123
+ assert.strictEqual(response.status, 200, "reports ready");
124
+ });
125
+ (0, import_qunit.test)("realm can serve GET card requests", async function(assert) {
126
+ let { realm, adapter } = await setupIntegrationTestRealm({
127
+ mockMatrixUtils,
128
+ contents: { "dir/empty.json": { data: { meta: { adoptsFrom: {
129
+ module: "@cardstack/base/card-api",
130
+ name: "CardDef"
131
+ } } } } }
132
+ });
133
+ let response = await handle(realm, new Request(`${testRealmURL}dir/empty`, { headers: { Accept: "application/vnd.card+json" } }));
134
+ assert.strictEqual(response.status, 200, "successful http status");
135
+ let json = await response.json();
136
+ let resourceCreatedAt = await getFileCreatedAt(realm, "dir/empty.json");
137
+ delete json.data.meta.generation;
138
+ delete json.data.meta.version;
139
+ assert.deepEqual(json, { data: {
140
+ type: "card",
141
+ id: `${testRealmURL}dir/empty`,
142
+ attributes: {
143
+ cardInfo,
144
+ cardDescription: null,
145
+ cardThumbnailURL: null,
146
+ cardTitle: "Untitled Card"
147
+ },
148
+ meta: {
149
+ adoptsFrom: {
150
+ module: "@cardstack/base/card-api",
151
+ name: "CardDef"
152
+ },
153
+ lastModified: adapter.lastModifiedMap.get(`${testRealmURL}dir/empty.json`),
154
+ resourceCreatedAt,
155
+ realmInfo: testRealmInfo,
156
+ realmURL: testRealmURL
157
+ },
158
+ links: { self: `${testRealmURL}dir/empty` }
159
+ } });
160
+ assert.ok(json.data.meta.lastModified, "lastModified is populated");
161
+ });
162
+ (0, import_qunit.test)("realm serves instance ids in canonical RRI form for a prefix-mapped realm", async function(assert) {
163
+ let { realm } = await setupIntegrationTestRealm({
164
+ mockMatrixUtils,
165
+ contents: { "dir/empty.json": { data: { meta: { adoptsFrom: {
166
+ module: "@cardstack/base/card-api",
167
+ name: "CardDef"
168
+ } } } } }
169
+ });
170
+ let urlDoc = await (await handle(realm, new Request(`${testRealmURL}dir/empty`, { headers: { Accept: "application/vnd.card+json" } }))).json();
171
+ assert.strictEqual(urlDoc.data.id, `${testRealmURL}dir/empty`, "an unmapped realm serves the instance id in URL form");
172
+ let virtualNetwork = getService("network").virtualNetwork;
173
+ virtualNetwork.addRealmMapping("@test-prefix/", testRealmURL);
174
+ try {
175
+ let rriDoc = await (await handle(realm, new Request(`${testRealmURL}dir/empty`, { headers: { Accept: "application/vnd.card+json" } }))).json();
176
+ assert.strictEqual(rriDoc.data.id, "@test-prefix/dir/empty", "a prefix-mapped realm serves the instance id in canonical RRI form");
177
+ assert.strictEqual(rriDoc.data.links.self, "@test-prefix/dir/empty", "links.self is served in canonical RRI form too");
178
+ } finally {
179
+ virtualNetwork.removeRealmMapping("@test-prefix/");
180
+ }
181
+ });
182
+ (0, import_qunit.test)("realm can serve GET card requests with linksTo relationships", async function(assert) {
183
+ let { realm, adapter } = await setupIntegrationTestRealm({
184
+ mockMatrixUtils,
185
+ contents: {
186
+ "dir/owner.json": { data: {
187
+ id: `${testRealmURL}dir/owner`,
188
+ attributes: {
189
+ firstName: "Hassan",
190
+ lastName: "Abdel-Rahman",
191
+ cardInfo,
192
+ cardDescription: null,
193
+ cardThumbnailURL: null
194
+ },
195
+ meta: { adoptsFrom: {
196
+ module: `${testModuleRealm}person`,
197
+ name: "Person"
198
+ } }
199
+ } },
200
+ "dir/mango.json": { data: {
201
+ id: `${testRealmURL}dir/mango`,
202
+ attributes: {
203
+ firstName: "Mango",
204
+ cardInfo,
205
+ cardDescription: null,
206
+ cardThumbnailURL: null
207
+ },
208
+ relationships: { owner: { links: { self: `${testRealmURL}dir/owner` } } },
209
+ meta: { adoptsFrom: {
210
+ module: `${testModuleRealm}pet`,
211
+ name: "Pet"
212
+ } }
213
+ } }
214
+ }
215
+ });
216
+ let response = await handle(realm, new Request(`${testRealmURL}dir/mango`, { headers: { Accept: "application/vnd.card+json" } }));
217
+ assert.strictEqual(response.status, 200, "successful http status");
218
+ let json = await response.json();
219
+ let mangoCreatedAt = await getFileCreatedAt(realm, "dir/mango.json");
220
+ let ownerCreatedAt = await getFileCreatedAt(realm, "dir/owner.json");
221
+ delete json.data.meta.generation;
222
+ delete json.data.meta.version;
223
+ assert.deepEqual(json, {
224
+ data: {
225
+ type: "card",
226
+ id: `${testRealmURL}dir/mango`,
227
+ attributes: {
228
+ firstName: "Mango",
229
+ cardTitle: "Mango",
230
+ cardInfo,
231
+ cardDescription: null,
232
+ cardThumbnailURL: null
233
+ },
234
+ relationships: { owner: {
235
+ links: { self: `./owner` },
236
+ data: {
237
+ type: "card",
238
+ id: `${testRealmURL}dir/owner`
239
+ }
240
+ } },
241
+ meta: {
242
+ adoptsFrom: {
243
+ module: `${testModuleRealm}pet`,
244
+ name: "Pet"
245
+ },
246
+ lastModified: adapter.lastModifiedMap.get(`${testRealmURL}dir/mango.json`),
247
+ resourceCreatedAt: mangoCreatedAt,
248
+ realmInfo: testRealmInfo,
249
+ realmURL: testRealmURL
250
+ },
251
+ links: { self: `${testRealmURL}dir/mango` }
252
+ },
253
+ included: [{
254
+ type: "card",
255
+ id: `${testRealmURL}dir/owner`,
256
+ attributes: {
257
+ cardDescription: "Person",
258
+ email: null,
259
+ posts: null,
260
+ cardThumbnailURL: null,
261
+ firstName: "Hassan",
262
+ lastName: "Abdel-Rahman",
263
+ cardTitle: "Hassan Abdel-Rahman",
264
+ fullName: "Hassan Abdel-Rahman",
265
+ cardInfo
266
+ },
267
+ meta: {
268
+ adoptsFrom: {
269
+ module: `${testModuleRealm}person`,
270
+ name: "Person"
271
+ },
272
+ lastModified: adapter.lastModifiedMap.get(`${testRealmURL}dir/owner.json`),
273
+ resourceCreatedAt: ownerCreatedAt,
274
+ realmInfo: testRealmInfo,
275
+ realmURL: testRealmURL
276
+ },
277
+ links: { self: `./owner` }
278
+ }]
279
+ });
280
+ });
281
+ (0, import_qunit.test)("realm can serve GET card requests with linksTo relationships to other realms", async function(assert) {
282
+ let { realm, adapter } = await setupIntegrationTestRealm({
283
+ mockMatrixUtils,
284
+ contents: { "dir/mango.json": { data: {
285
+ id: `${testRealmURL}dir/mango`,
286
+ attributes: {
287
+ cardDescription: null,
288
+ cardThumbnailURL: null,
289
+ firstName: "Mango"
290
+ },
291
+ relationships: { owner: { links: { self: `${testModuleRealm}hassan` } } },
292
+ meta: { adoptsFrom: {
293
+ module: `${testModuleRealm}pet`,
294
+ name: "Pet"
295
+ } }
296
+ } } }
297
+ });
298
+ let response = await handle(realm, new Request(`${testRealmURL}dir/mango`, { headers: { Accept: "application/vnd.card+json" } }));
299
+ assert.strictEqual(response.status, 200, "successful http status");
300
+ let json = await response.json();
301
+ let { included = [] } = json;
302
+ delete included[0]?.meta.lastModified;
303
+ delete included[0]?.meta.resourceCreatedAt;
304
+ let resourceCreatedAt = await getFileCreatedAt(realm, "dir/mango.json");
305
+ assert.strictEqual(json.data.id, `${testRealmURL}dir/mango`, "mango id");
306
+ assert.strictEqual(json.data.attributes.firstName, "Mango", "mango firstName");
307
+ assert.strictEqual(json.data.relationships.owner.links.self, `${testModuleRealm}hassan`, "owner self link points to other realm");
308
+ assert.strictEqual(json.data.relationships.owner.data.id, `${testModuleRealm}hassan`, "owner data id points to other realm");
309
+ assert.strictEqual(json.data.meta.lastModified, adapter.lastModifiedMap.get(`${testRealmURL}dir/mango.json`), "mango lastModified");
310
+ assert.strictEqual(json.data.meta.resourceCreatedAt, resourceCreatedAt, "mango resourceCreatedAt");
311
+ assert.strictEqual(included.length, 1, "one included card");
312
+ let hassan = included[0];
313
+ assert.strictEqual(hassan.id, `${testModuleRealm}hassan`, "included hassan id");
314
+ });
315
+ (0, import_qunit.test)("realm can route requests correctly when mounted in the origin's subdir", async function(assert) {
316
+ let { realm } = await setupIntegrationTestRealm({
317
+ mockMatrixUtils,
318
+ contents: { "dir/empty.json": { data: { meta: { adoptsFrom: {
319
+ module: "@cardstack/base/card-api",
320
+ name: "CardDef"
321
+ } } } } },
322
+ realmURL: `${testRealmURL}root/`
323
+ });
324
+ {
325
+ let response = await handle(realm, new Request(`${testRealmURL}root/dir/empty`, { headers: { Accept: "application/vnd.card+json" } }));
326
+ assert.strictEqual(response.status, 200, "successful http status");
327
+ let json = await response.json();
328
+ assert.strictEqual(json.data.id, `${testRealmURL}root/dir/empty`, "card ID is correct");
329
+ }
330
+ {
331
+ let json = await (await handle(realm, new Request(`${testRealmURL}root/_search`, {
332
+ method: "QUERY",
333
+ headers: {
334
+ Accept: "application/vnd.card+json",
335
+ "Content-Type": "application/json"
336
+ },
337
+ body: JSON.stringify(searchEntryWireQueryFromQuery({ filter: { type: baseCardRef } }, { fields: ["item"] }))
338
+ }))).json();
339
+ assert.strictEqual(json.data.length, 1, "the card is returned in the search results");
340
+ assert.strictEqual(json.data[0].id, `${testRealmURL}root/dir/empty`, "card ID is correct");
341
+ }
342
+ });
343
+ (0, import_qunit.test)("realm can serve create card requests", async function(assert) {
344
+ let { realm, adapter } = await setupIntegrationTestRealm({
345
+ mockMatrixUtils,
346
+ contents: {}
347
+ });
348
+ let json = await (await handle(realm, new Request(testRealmURL, {
349
+ method: "POST",
350
+ headers: { Accept: "application/vnd.card+json" },
351
+ body: JSON.stringify({ data: {
352
+ type: "card",
353
+ meta: { adoptsFrom: {
354
+ module: "@cardstack/base/card-api",
355
+ name: "CardDef"
356
+ } }
357
+ } }, null, 2)
358
+ }))).json();
359
+ let id;
360
+ if (isSingleCardDocument(json)) {
361
+ id = json.data.id.split("/").pop();
362
+ assert.true(validate(id), "card ID is a UUID");
363
+ assert.strictEqual(json.data.id, `${testRealmURL}CardDef/${id}`, "the card URL is correct");
364
+ assert.ok((await adapter.openFile(`CardDef/${id}.json`))?.content, "file contents exist");
365
+ let createdAt = await getFileCreatedAt(realm, `CardDef/${id}.json`);
366
+ assert.ok(json.data.meta?.resourceCreatedAt, "resourceCreatedAt meta exists on created card");
367
+ assert.strictEqual(json.data.meta?.resourceCreatedAt, createdAt, "resourceCreatedAt matches file created time");
368
+ } else assert.ok(false, "response body is not a card document");
369
+ if (!id) assert.ok(false, "card document is missing an ID");
370
+ let result = await realm.realmIndexQueryEngine.cardDocument(new URL(json.data.links.self));
371
+ if (result?.type === "error") throw new Error(`unexpected error when getting card from index: ${result.error.errorDetail.message}`);
372
+ assert.strictEqual(result?.doc.data.id, `${testRealmURL}CardDef/${id}`, "found card in index");
373
+ });
374
+ (0, import_qunit.test)("realm cannot create card request which is NOT directory", async function(assert) {
375
+ let { realm } = await setupIntegrationTestRealm({
376
+ mockMatrixUtils,
377
+ contents: {}
378
+ });
379
+ let notDirPath = `${testRealmURL}SomeDirectory`;
380
+ let notFoundResponse = await handle(realm, new Request(notDirPath, {
381
+ method: "POST",
382
+ headers: { Accept: "application/vnd.card+json" },
383
+ body: JSON.stringify({ data: {
384
+ type: "card",
385
+ meta: { adoptsFrom: {
386
+ module: "@cardstack/base/card-api",
387
+ name: "CardDef"
388
+ } }
389
+ } }, null, 2)
390
+ }));
391
+ let notFoundJson = await notFoundResponse.json();
392
+ assert.strictEqual(notFoundJson.errors[0].status, 404);
393
+ assert.strictEqual(notFoundResponse.status, 404);
394
+ });
395
+ (0, import_qunit.test)("realm allows create card requests into directories of the realm", async function(assert) {
396
+ let { realm, adapter } = await setupIntegrationTestRealm({
397
+ mockMatrixUtils,
398
+ contents: {}
399
+ });
400
+ let dirName = "SomeDirectory";
401
+ let dirPath = `${testRealmURL}${dirName}/`;
402
+ let json = await (await handle(realm, new Request(dirPath, {
403
+ method: "POST",
404
+ headers: { Accept: "application/vnd.card+json" },
405
+ body: JSON.stringify({ data: {
406
+ type: "card",
407
+ meta: { adoptsFrom: {
408
+ module: "@cardstack/base/card-api",
409
+ name: "CardDef"
410
+ } }
411
+ } }, null, 2)
412
+ }))).json();
413
+ let id;
414
+ if (isSingleCardDocument(json)) {
415
+ id = json.data.id.split("/").pop();
416
+ assert.true(validate(id), "card ID is a UUID");
417
+ assert.strictEqual(json.data.id, `${dirPath}CardDef/${id}`, "the card URL is correct");
418
+ assert.ok((await adapter.openFile(`${dirName}/CardDef/${id}.json`))?.content, "file contents exist");
419
+ let createdAt = await getFileCreatedAt(realm, `${dirName}/CardDef/${id}.json`);
420
+ assert.ok(json.data.meta?.resourceCreatedAt, "resourceCreatedAt meta exists on created card in directory");
421
+ assert.strictEqual(json.data.meta?.resourceCreatedAt, createdAt, "resourceCreatedAt matches file created time (directory)");
422
+ } else assert.ok(false, "response body is not a card document");
423
+ if (!id) assert.ok(false, "card document is missing an ID");
424
+ let result = await realm.realmIndexQueryEngine.cardDocument(new URL(json.data.links.self));
425
+ if (result?.type === "error") throw new Error(`unexpected error when getting card from index: ${result.error.errorDetail.message}`);
426
+ assert.strictEqual(result?.doc.data.id, `${testRealmURL}${dirName}/CardDef/${id}`, "found card in index");
427
+ });
428
+ (0, import_qunit.test)("realm can serve POST requests that include linksTo fields", async function(assert) {
429
+ let { realm, adapter } = await setupIntegrationTestRealm({
430
+ mockMatrixUtils,
431
+ contents: { "dir/owner.json": { data: {
432
+ id: `${testRealmURL}dir/owner`,
433
+ attributes: {
434
+ firstName: "Hassan",
435
+ lastName: "Abdel-Rahman"
436
+ },
437
+ meta: { adoptsFrom: {
438
+ module: `${testModuleRealm}person`,
439
+ name: "Person"
440
+ } }
441
+ } } }
442
+ });
443
+ let response = await handle(realm, new Request(testRealmURL, {
444
+ method: "POST",
445
+ headers: { Accept: "application/vnd.card+json" },
446
+ body: JSON.stringify({ data: {
447
+ attributes: { firstName: "Mango" },
448
+ relationships: { owner: { links: { self: `${testRealmURL}dir/owner` } } },
449
+ meta: { adoptsFrom: {
450
+ module: `${testModuleRealm}pet`,
451
+ name: "Pet"
452
+ } }
453
+ } }, null, 2)
454
+ }));
455
+ assert.strictEqual(response.status, 201, "successful http status");
456
+ let json = await response.json();
457
+ let id = json.data.id.split("/").pop();
458
+ let petCreatedAt = await getFileCreatedAt(realm, `Pet/${id}.json`);
459
+ assert.ok(validate(id), "card ID is a UUID");
460
+ assert.strictEqual(typeof json.data.meta.version, "string", "the write response carries the stored file version");
461
+ delete json.data.meta.version;
462
+ assert.deepEqual(json, { data: {
463
+ type: "card",
464
+ id: `${testRealmURL}Pet/${id}`,
465
+ attributes: {
466
+ firstName: "Mango",
467
+ cardTitle: "Mango",
468
+ cardDescription: null,
469
+ cardThumbnailURL: null,
470
+ cardInfo
471
+ },
472
+ relationships: { owner: { links: { self: `../dir/owner` } } },
473
+ meta: {
474
+ adoptsFrom: {
475
+ module: `${testModuleRealm}pet`,
476
+ name: "Pet"
477
+ },
478
+ lastModified: adapter.lastModifiedMap.get(`${testRealmURL}Pet/${id}.json`),
479
+ resourceCreatedAt: petCreatedAt,
480
+ realmInfo: testRealmInfo,
481
+ realmURL: testRealmURL
482
+ },
483
+ links: { self: `${testRealmURL}Pet/${id}` }
484
+ } });
485
+ let fileRef = await adapter.openFile(`Pet/${id}.json`);
486
+ if (!fileRef) throw new Error("file not found");
487
+ assert.deepEqual(JSON.parse(fileRef.content), { data: {
488
+ type: "card",
489
+ attributes: { firstName: "Mango" },
490
+ relationships: { owner: { links: { self: `../dir/owner` } } },
491
+ meta: { adoptsFrom: {
492
+ module: `${testModuleRealm}pet`,
493
+ name: "Pet"
494
+ } }
495
+ } }, "file contents are correct");
496
+ });
497
+ (0, import_qunit.test)("realm returns 500 error for POST requests that set the value of a polymorphic field to an incompatible type", async function(assert) {
498
+ class Person extends FieldDef {
499
+ static {
500
+ decorateFieldV2(this.prototype, "firstName", [field], function() {
501
+ return contains(string_default);
502
+ });
503
+ }
504
+ #firstName = (initializeDeferredDecorator(this, "firstName"), void 0);
505
+ }
506
+ class Car extends FieldDef {
507
+ static {
508
+ decorateFieldV2(this.prototype, "make", [field], function() {
509
+ return contains(string_default);
510
+ });
511
+ }
512
+ #make = (initializeDeferredDecorator(this, "make"), void 0);
513
+ static {
514
+ decorateFieldV2(this.prototype, "model", [field], function() {
515
+ return contains(string_default);
516
+ });
517
+ }
518
+ #model = (initializeDeferredDecorator(this, "model"), void 0);
519
+ static {
520
+ decorateFieldV2(this.prototype, "year", [field], function() {
521
+ return contains(string_default);
522
+ });
523
+ }
524
+ #year = (initializeDeferredDecorator(this, "year"), void 0);
525
+ }
526
+ class Driver extends CardDef {
527
+ static {
528
+ decorateFieldV2(this.prototype, "card", [field], function() {
529
+ return contains(Person);
530
+ });
531
+ }
532
+ #card = (initializeDeferredDecorator(this, "card"), void 0);
533
+ }
534
+ let { realm } = await setupIntegrationTestRealm({
535
+ mockMatrixUtils,
536
+ contents: {
537
+ "driver.gts": { Driver },
538
+ "person.gts": { Person },
539
+ "car.gts": { Car }
540
+ }
541
+ });
542
+ let response = await handle(realm, new Request(testRealmURL, {
543
+ method: "POST",
544
+ headers: { Accept: "application/vnd.card+json" },
545
+ body: JSON.stringify({ data: {
546
+ type: "card",
547
+ attributes: { card: {
548
+ firstName: null,
549
+ make: "Mercedes Benz",
550
+ model: "C300",
551
+ year: "2024"
552
+ } },
553
+ meta: {
554
+ adoptsFrom: {
555
+ module: `${testRealmURL}driver`,
556
+ name: "Driver"
557
+ },
558
+ fields: { card: { adoptsFrom: {
559
+ module: `${testRealmURL}car`,
560
+ name: "Car"
561
+ } } }
562
+ }
563
+ } }, null, 2)
564
+ }));
565
+ assert.strictEqual(response.status, 500, "500 server error");
566
+ let json = await response.json();
567
+ assert.strictEqual(json.errors[0].additionalErrors[0].errorDetail.message, "field validation error: tried set instance of Car as field 'card' but it is not an instance of Person");
568
+ });
569
+ (0, import_qunit.test)("realm can serve patch card requests", async function(assert) {
570
+ let { realm, adapter } = await setupIntegrationTestRealm({
571
+ mockMatrixUtils,
572
+ contents: { "dir/card.json": { data: {
573
+ attributes: {
574
+ firstName: "Mango",
575
+ lastName: "Abdel-Rahman"
576
+ },
577
+ meta: { adoptsFrom: {
578
+ module: `${testModuleRealm}person`,
579
+ name: "Person"
580
+ } }
581
+ } } }
582
+ });
583
+ let response = await handle(realm, new Request(`${testRealmURL}dir/card`, {
584
+ method: "PATCH",
585
+ headers: { Accept: "application/vnd.card+json" },
586
+ body: JSON.stringify({ data: {
587
+ type: "card",
588
+ attributes: { firstName: "Van Gogh" },
589
+ meta: { adoptsFrom: {
590
+ module: `${testModuleRealm}person`,
591
+ name: "Person"
592
+ } }
593
+ } }, null, 2)
594
+ }));
595
+ await realm.flushUpdateEvents();
596
+ assert.strictEqual(response.status, 200, "successful http status");
597
+ let json = await response.json();
598
+ if (isSingleCardDocument(json)) {
599
+ assert.strictEqual(json.data.id, `${testRealmURL}dir/card`, "the id is correct");
600
+ assert.strictEqual(json.data.attributes?.firstName, "Van Gogh", "field value is correct");
601
+ assert.strictEqual(json.data.attributes?.lastName, "Abdel-Rahman", "field value is correct");
602
+ assert.strictEqual(json.data.meta.lastModified, adapter.lastModifiedMap.get(`${testRealmURL}dir/card.json`), "lastModified is correct");
603
+ let fileRef = await adapter.openFile("dir/card.json");
604
+ if (!fileRef) throw new Error("file not found");
605
+ assert.deepEqual(JSON.parse(fileRef.content), { data: {
606
+ type: "card",
607
+ attributes: {
608
+ firstName: "Van Gogh",
609
+ lastName: "Abdel-Rahman"
610
+ },
611
+ meta: { adoptsFrom: {
612
+ module: `${testModuleRealm}person`,
613
+ name: "Person"
614
+ } }
615
+ } }, "file contents are correct");
616
+ } else assert.ok(false, "response body is not a card document");
617
+ let queryEngine = realm.realmIndexQueryEngine;
618
+ let result = await queryEngine.cardDocument(new URL(json.data.links.self));
619
+ if (result?.type === "error") throw new Error(`unexpected error when getting card from index: ${result.error.errorDetail.message}`);
620
+ assert.strictEqual(result?.doc.data.id, `${testRealmURL}dir/card`, "found card in index");
621
+ assert.strictEqual(result?.doc.data.attributes?.firstName, "Van Gogh", "field value is correct");
622
+ assert.strictEqual(result?.doc.data.attributes?.lastName, "Abdel-Rahman", "field value is correct");
623
+ let { data: cards } = await searchCardsForTest(queryEngine, { filter: {
624
+ on: {
625
+ module: rri(`${testModuleRealm}person`),
626
+ name: "Person"
627
+ },
628
+ eq: { firstName: "Van Gogh" }
629
+ } });
630
+ assert.strictEqual(cards.length, 1, "search finds updated value");
631
+ });
632
+ (0, import_qunit.test)("realm can remove item from containsMany field via PATCH request", async function(assert) {
633
+ let { realm, adapter } = await setupIntegrationTestRealm({
634
+ mockMatrixUtils,
635
+ contents: { "ski-trip.json": { data: {
636
+ attributes: {
637
+ cardTitle: "Gore Mountain Ski Trip",
638
+ venue: "Gore Mountain",
639
+ startTime: "2023-02-18T10:00:00.000Z",
640
+ endTime: "2023-02-19T02:00:00.000Z",
641
+ hosts: [{ firstName: "Hassan" }, { firstName: "Mango" }],
642
+ sponsors: ["Burton", "Spy Optics"],
643
+ posts: []
644
+ },
645
+ meta: { adoptsFrom: {
646
+ module: `${testModuleRealm}booking`,
647
+ name: "Booking"
648
+ } }
649
+ } } }
650
+ });
651
+ let resourceCreatedAt = await getFileCreatedAt(realm, "ski-trip.json");
652
+ let response = await handle(realm, new Request(`${testRealmURL}ski-trip`, {
653
+ method: "PATCH",
654
+ headers: { Accept: "application/vnd.card+json" },
655
+ body: JSON.stringify({ data: {
656
+ type: "card",
657
+ attributes: {
658
+ hosts: [{
659
+ firstName: "Hassan",
660
+ lastName: null
661
+ }],
662
+ sponsors: ["Burton"]
663
+ },
664
+ meta: { adoptsFrom: {
665
+ module: `${testModuleRealm}booking`,
666
+ name: "Booking"
667
+ } }
668
+ } }, null, 2)
669
+ }));
670
+ assert.strictEqual(response.status, 200, "successful http status");
671
+ let json = await response.json();
672
+ assert.strictEqual(typeof json.data.meta.version, "string", "the write response carries the stored file version");
673
+ delete json.data.meta.version;
674
+ assert.deepEqual(json, { data: {
675
+ type: "card",
676
+ id: `${testRealmURL}ski-trip`,
677
+ links: { self: `${testRealmURL}ski-trip` },
678
+ attributes: {
679
+ cardTitle: "Gore Mountain Ski Trip",
680
+ venue: "Gore Mountain",
681
+ startTime: "2023-02-18T10:00:00.000Z",
682
+ endTime: "2023-02-19T02:00:00.000Z",
683
+ hosts: [{
684
+ cardDescription: "Person",
685
+ firstName: "Hassan",
686
+ lastName: null,
687
+ fullName: "Hassan ",
688
+ cardTitle: "Hassan ",
689
+ email: null,
690
+ posts: null
691
+ }],
692
+ sponsors: ["Burton"],
693
+ posts: [],
694
+ cardDescription: "Gore Mountain",
695
+ cardThumbnailURL: null,
696
+ cardInfo
697
+ },
698
+ meta: {
699
+ adoptsFrom: {
700
+ module: `${testModuleRealm}booking`,
701
+ name: "Booking"
702
+ },
703
+ lastModified: adapter.lastModifiedMap.get(`${testRealmURL}ski-trip.json`),
704
+ resourceCreatedAt,
705
+ realmInfo: testRealmInfo,
706
+ realmURL: testRealmURL
707
+ }
708
+ } });
709
+ let fileRef = await adapter.openFile("ski-trip.json");
710
+ if (!fileRef) throw new Error("file not found");
711
+ assert.deepEqual(JSON.parse(fileRef.content), { data: {
712
+ type: "card",
713
+ attributes: {
714
+ cardTitle: "Gore Mountain Ski Trip",
715
+ venue: "Gore Mountain",
716
+ startTime: "2023-02-18T10:00:00.000Z",
717
+ endTime: "2023-02-19T02:00:00.000Z",
718
+ hosts: [{
719
+ firstName: "Hassan",
720
+ lastName: null
721
+ }],
722
+ sponsors: ["Burton"],
723
+ posts: []
724
+ },
725
+ meta: { adoptsFrom: {
726
+ module: `${testModuleRealm}booking`,
727
+ name: "Booking"
728
+ } }
729
+ } }, "file contents are correct");
730
+ });
731
+ (0, import_qunit.test)("realm PATCH replaces a primitive field holding an object rather than merging into it", async function(assert) {
732
+ let { realm, adapter } = await setupIntegrationTestRealm({
733
+ mockMatrixUtils,
734
+ contents: { "realm.json": { data: {
735
+ type: "card",
736
+ attributes: {
737
+ cardInfo: {
738
+ name: "Settings Workspace",
739
+ summary: "Kept"
740
+ },
741
+ config: {
742
+ approver: "@mae:localhost",
743
+ retired: true
744
+ }
745
+ },
746
+ meta: { adoptsFrom: {
747
+ module: "@cardstack/base/realm-config",
748
+ name: "RealmConfig"
749
+ } }
750
+ } } }
751
+ });
752
+ let response = await handle(realm, new Request(`${testRealmURL}realm`, {
753
+ method: "PATCH",
754
+ headers: { Accept: "application/vnd.card+json" },
755
+ body: JSON.stringify({ data: {
756
+ type: "card",
757
+ attributes: {
758
+ cardInfo: { name: "Renamed Workspace" },
759
+ config: { approvers: "@mae:localhost" }
760
+ },
761
+ meta: { adoptsFrom: {
762
+ module: "@cardstack/base/realm-config",
763
+ name: "RealmConfig"
764
+ } }
765
+ } })
766
+ }));
767
+ assert.strictEqual(response.status, 200, "successful http status");
768
+ let fileRef = await adapter.openFile("realm.json");
769
+ if (!fileRef) throw new Error("file not found");
770
+ let { attributes } = JSON.parse(fileRef.content).data;
771
+ assert.deepEqual(attributes.config, { approvers: "@mae:localhost" }, "the stored map is the one the patch sent, with the renamed and dropped keys gone");
772
+ assert.strictEqual(attributes.cardInfo.name, "Renamed Workspace", "the compound field takes the nested value the patch names");
773
+ assert.strictEqual(attributes.cardInfo.summary, "Kept", "and keeps the nested value the patch leaves out");
774
+ });
775
+ (0, import_qunit.test)("realm PATCH replaces a primitive inside a compound field, by the type the card names for it", async function(assert) {
776
+ let { JsonField } = await loader.import("@cardstack/base/json-field");
777
+ class Settings extends FieldDef {
778
+ static {
779
+ decorateFieldV2(this.prototype, "label", [field], function() {
780
+ return contains(string_default);
781
+ });
782
+ }
783
+ #label = (initializeDeferredDecorator(this, "label"), void 0);
784
+ static {
785
+ decorateFieldV2(this.prototype, "values", [field], function() {
786
+ return contains(JsonField);
787
+ });
788
+ }
789
+ #values = (initializeDeferredDecorator(this, "values"), void 0);
790
+ }
791
+ class SpecialSettings extends Settings {
792
+ static {
793
+ decorateFieldV2(this.prototype, "extra", [field], function() {
794
+ return contains(JsonField);
795
+ });
796
+ }
797
+ #extra = (initializeDeferredDecorator(this, "extra"), void 0);
798
+ }
799
+ class Holder extends CardDef {
800
+ static {
801
+ decorateFieldV2(this.prototype, "settings", [field], function() {
802
+ return contains(Settings);
803
+ });
804
+ }
805
+ #settings = (initializeDeferredDecorator(this, "settings"), void 0);
806
+ static {
807
+ decorateFieldV2(this.prototype, "special", [field], function() {
808
+ return contains(Settings);
809
+ });
810
+ }
811
+ #special = (initializeDeferredDecorator(this, "special"), void 0);
812
+ }
813
+ let { realm, adapter } = await setupIntegrationTestRealm({
814
+ mockMatrixUtils,
815
+ contents: {
816
+ "holder.gts": {
817
+ Holder,
818
+ Settings,
819
+ SpecialSettings
820
+ },
821
+ "holder-1.json": { data: {
822
+ type: "card",
823
+ attributes: {
824
+ settings: {
825
+ label: "Kept",
826
+ values: {
827
+ a: 1,
828
+ b: 2
829
+ }
830
+ },
831
+ special: {
832
+ label: "Special",
833
+ extra: {
834
+ a: 1,
835
+ b: 2
836
+ }
837
+ }
838
+ },
839
+ meta: {
840
+ adoptsFrom: {
841
+ module: `${testRealmURL}holder`,
842
+ name: "Holder"
843
+ },
844
+ fields: { special: { adoptsFrom: {
845
+ module: `${testRealmURL}holder`,
846
+ name: "SpecialSettings"
847
+ } } }
848
+ }
849
+ } }
850
+ }
851
+ });
852
+ let response = await handle(realm, new Request(`${testRealmURL}holder-1`, {
853
+ method: "PATCH",
854
+ headers: { Accept: "application/vnd.card+json" },
855
+ body: JSON.stringify({ data: {
856
+ type: "card",
857
+ attributes: {
858
+ settings: { values: { a: 1 } },
859
+ special: { extra: { a: 1 } }
860
+ },
861
+ meta: { adoptsFrom: {
862
+ module: `${testRealmURL}holder`,
863
+ name: "Holder"
864
+ } }
865
+ } })
866
+ }));
867
+ assert.strictEqual(response.status, 200, "successful http status");
868
+ let fileRef = await adapter.openFile("holder-1.json");
869
+ if (!fileRef) throw new Error("file not found");
870
+ let { attributes } = JSON.parse(fileRef.content).data;
871
+ assert.deepEqual(attributes.settings.values, { a: 1 }, "the primitive inside the compound field is replaced");
872
+ assert.strictEqual(attributes.settings.label, "Kept", "while the compound field keeps the nested value the patch leaves out");
873
+ assert.deepEqual(attributes.special.extra, { a: 1 }, "a primitive the polymorphic type declares is replaced too");
874
+ });
875
+ (0, import_qunit.test)("realm can remove item from linksToMany field via PATCH request", async function(assert) {
876
+ let { realm, adapter } = await setupIntegrationTestRealm({
877
+ mockMatrixUtils,
878
+ contents: {
879
+ "dir/van-gogh.json": { data: {
880
+ id: `${testRealmURL}dir/van-gogh`,
881
+ attributes: { firstName: "Van Gogh" },
882
+ relationships: { owner: { links: { self: null } } },
883
+ meta: { adoptsFrom: {
884
+ module: `${testModuleRealm}pet`,
885
+ name: "Pet"
886
+ } }
887
+ } },
888
+ "dir/mango.json": { data: {
889
+ id: `${testRealmURL}dir/mango`,
890
+ attributes: { firstName: "Mango" },
891
+ relationships: { owner: { links: { self: null } } },
892
+ meta: { adoptsFrom: {
893
+ module: `${testModuleRealm}pet`,
894
+ name: "Pet"
895
+ } }
896
+ } },
897
+ "dir/friend.json": { data: {
898
+ id: `${testRealmURL}dir/friend`,
899
+ attributes: {
900
+ firstName: "Hassan",
901
+ lastName: "Abdel-Rahman"
902
+ },
903
+ meta: { adoptsFrom: {
904
+ module: `${testModuleRealm}person`,
905
+ name: "Person"
906
+ } }
907
+ } },
908
+ "jackie.json": { data: {
909
+ id: `${testRealmURL}jackie`,
910
+ attributes: { firstName: "Jackie" },
911
+ relationships: {
912
+ "pets.0": { links: { self: `${testRealmURL}dir/van-gogh` } },
913
+ "pets.1": { links: { self: `${testRealmURL}dir/mango` } },
914
+ friend: { links: { self: `${testRealmURL}dir/friend` } }
915
+ },
916
+ meta: { adoptsFrom: {
917
+ module: `${testModuleRealm}pet-person`,
918
+ name: "PetPerson"
919
+ } }
920
+ } }
921
+ }
922
+ });
923
+ let resourceCreatedAt = await getFileCreatedAt(realm, "jackie.json");
924
+ let response = await handle(realm, new Request(`${testRealmURL}jackie`, {
925
+ method: "PATCH",
926
+ headers: { Accept: "application/vnd.card+json" },
927
+ body: JSON.stringify({ data: {
928
+ type: "card",
929
+ relationships: { "pets.0": { links: { self: `${testRealmURL}dir/van-gogh` } } },
930
+ meta: { adoptsFrom: {
931
+ module: `${testModuleRealm}pet-person`,
932
+ name: "PetPerson"
933
+ } }
934
+ } }, null, 2)
935
+ }));
936
+ assert.strictEqual(response.status, 200, "successful http status");
937
+ let json = await response.json();
938
+ assert.strictEqual(typeof json.data.meta.version, "string", "the write response carries the stored file version");
939
+ delete json.data.meta.version;
940
+ assert.deepEqual(json, { data: {
941
+ type: "card",
942
+ id: `${testRealmURL}jackie`,
943
+ links: { self: `${testRealmURL}jackie` },
944
+ attributes: {
945
+ firstName: "Jackie",
946
+ cardTitle: "Jackie Pet Person",
947
+ cardDescription: "A person with pets",
948
+ cardThumbnailURL: null,
949
+ cardInfo
950
+ },
951
+ relationships: {
952
+ "pets.0": { links: { self: `./dir/van-gogh` } },
953
+ friend: { links: { self: `./dir/friend` } }
954
+ },
955
+ meta: {
956
+ adoptsFrom: {
957
+ module: `${testModuleRealm}pet-person`,
958
+ name: "PetPerson"
959
+ },
960
+ realmInfo: testRealmInfo,
961
+ realmURL: testRealmURL,
962
+ lastModified: adapter.lastModifiedMap.get(`${testRealmURL}jackie.json`),
963
+ resourceCreatedAt
964
+ }
965
+ } });
966
+ let fileRef = await adapter.openFile("jackie.json");
967
+ if (!fileRef) throw new Error("file not found");
968
+ assert.deepEqual(JSON.parse(fileRef.content), { data: {
969
+ type: "card",
970
+ attributes: { firstName: "Jackie" },
971
+ relationships: {
972
+ "pets.0": { links: { self: `./dir/van-gogh` } },
973
+ friend: { links: { self: `./dir/friend` } }
974
+ },
975
+ meta: { adoptsFrom: {
976
+ module: `${testModuleRealm}pet-person`,
977
+ name: "PetPerson"
978
+ } }
979
+ } }, "file contents are correct");
980
+ });
981
+ (0, import_qunit.test)("realm can add an item to linksToMany relationships via PATCH request", async function(assert) {
982
+ let { realm, adapter } = await setupIntegrationTestRealm({
983
+ mockMatrixUtils,
984
+ contents: {
985
+ "dir/van-gogh.json": { data: {
986
+ id: `${testRealmURL}dir/van-gogh`,
987
+ attributes: { firstName: "Van Gogh" },
988
+ relationships: { owner: { links: { self: null } } },
989
+ meta: { adoptsFrom: {
990
+ module: `${testModuleRealm}pet`,
991
+ name: "Pet"
992
+ } }
993
+ } },
994
+ "dir/mango.json": { data: {
995
+ id: `${testRealmURL}dir/mango`,
996
+ attributes: { firstName: "Mango" },
997
+ relationships: { owner: { links: { self: null } } },
998
+ meta: { adoptsFrom: {
999
+ module: `${testModuleRealm}pet`,
1000
+ name: "Pet"
1001
+ } }
1002
+ } },
1003
+ "dir/friend.json": { data: {
1004
+ id: `${testRealmURL}dir/friend`,
1005
+ attributes: {
1006
+ firstName: "Hassan",
1007
+ lastName: "Abdel-Rahman"
1008
+ },
1009
+ meta: { adoptsFrom: {
1010
+ module: `${testModuleRealm}person`,
1011
+ name: "Person"
1012
+ } }
1013
+ } },
1014
+ "jackie.json": { data: {
1015
+ id: `${testRealmURL}jackie`,
1016
+ attributes: { firstName: "Jackie" },
1017
+ relationships: {
1018
+ "pets.0": { links: { self: `${testRealmURL}dir/van-gogh` } },
1019
+ friend: { links: { self: `${testRealmURL}dir/friend` } }
1020
+ },
1021
+ meta: { adoptsFrom: {
1022
+ module: `${testModuleRealm}pet-person`,
1023
+ name: "PetPerson"
1024
+ } }
1025
+ } }
1026
+ }
1027
+ });
1028
+ let resourceCreatedAt = await getFileCreatedAt(realm, "jackie.json");
1029
+ let response = await handle(realm, new Request(`${testRealmURL}jackie`, {
1030
+ method: "PATCH",
1031
+ headers: { Accept: "application/vnd.card+json" },
1032
+ body: JSON.stringify({ data: {
1033
+ type: "card",
1034
+ relationships: {
1035
+ "pets.0": { links: { self: `${testRealmURL}dir/mango` } },
1036
+ "pets.1": { links: { self: `${testRealmURL}dir/van-gogh` } }
1037
+ },
1038
+ meta: { adoptsFrom: {
1039
+ module: `${testModuleRealm}pet-person`,
1040
+ name: "PetPerson"
1041
+ } }
1042
+ } }, null, 2)
1043
+ }));
1044
+ assert.strictEqual(response.status, 200, "successful http status");
1045
+ let json = await response.json();
1046
+ assert.strictEqual(typeof json.data.meta.version, "string", "the write response carries the stored file version");
1047
+ delete json.data.meta.version;
1048
+ assert.deepEqual(json.data, {
1049
+ type: "card",
1050
+ id: `${testRealmURL}jackie`,
1051
+ links: { self: `${testRealmURL}jackie` },
1052
+ attributes: {
1053
+ firstName: "Jackie",
1054
+ cardTitle: "Jackie Pet Person",
1055
+ cardDescription: "A person with pets",
1056
+ cardThumbnailURL: null,
1057
+ cardInfo
1058
+ },
1059
+ relationships: {
1060
+ "pets.0": { links: { self: `./dir/mango` } },
1061
+ "pets.1": { links: { self: `./dir/van-gogh` } },
1062
+ friend: { links: { self: `./dir/friend` } }
1063
+ },
1064
+ meta: {
1065
+ adoptsFrom: {
1066
+ module: `${testModuleRealm}pet-person`,
1067
+ name: "PetPerson"
1068
+ },
1069
+ lastModified: adapter.lastModifiedMap.get(`${testRealmURL}jackie.json`),
1070
+ resourceCreatedAt,
1071
+ realmInfo: testRealmInfo,
1072
+ realmURL: testRealmURL
1073
+ }
1074
+ });
1075
+ });
1076
+ (0, import_qunit.test)("realm can add items to null linksToMany relationship via PATCH request", async function(assert) {
1077
+ let { realm, adapter } = await setupIntegrationTestRealm({
1078
+ mockMatrixUtils,
1079
+ contents: {
1080
+ "dir/van-gogh.json": { data: {
1081
+ id: `${testRealmURL}dir/van-gogh`,
1082
+ attributes: { firstName: "Van Gogh" },
1083
+ relationships: { owner: { links: { self: null } } },
1084
+ meta: { adoptsFrom: {
1085
+ module: `${testModuleRealm}pet`,
1086
+ name: "Pet"
1087
+ } }
1088
+ } },
1089
+ "dir/mango.json": { data: {
1090
+ id: `${testRealmURL}dir/mango`,
1091
+ attributes: { firstName: "Mango" },
1092
+ relationships: { owner: { links: { self: null } } },
1093
+ meta: { adoptsFrom: {
1094
+ module: `${testModuleRealm}pet`,
1095
+ name: "Pet"
1096
+ } }
1097
+ } },
1098
+ "jackie.json": { data: {
1099
+ id: `${testRealmURL}jackie`,
1100
+ attributes: { firstName: "Jackie" },
1101
+ meta: { adoptsFrom: {
1102
+ module: `${testModuleRealm}pet-person`,
1103
+ name: "PetPerson"
1104
+ } }
1105
+ } }
1106
+ }
1107
+ });
1108
+ let resourceCreatedAt = await getFileCreatedAt(realm, "jackie.json");
1109
+ let response = await handle(realm, new Request(`${testRealmURL}jackie`, {
1110
+ method: "PATCH",
1111
+ headers: { Accept: "application/vnd.card+json" },
1112
+ body: JSON.stringify({ data: {
1113
+ type: "card",
1114
+ relationships: {
1115
+ "pets.0": { links: { self: `${testRealmURL}dir/mango` } },
1116
+ "pets.1": { links: { self: `${testRealmURL}dir/van-gogh` } }
1117
+ },
1118
+ meta: { adoptsFrom: {
1119
+ module: `${testModuleRealm}pet-person`,
1120
+ name: "PetPerson"
1121
+ } }
1122
+ } }, null, 2)
1123
+ }));
1124
+ assert.strictEqual(response.status, 200, "successful http status");
1125
+ let json = await response.json();
1126
+ assert.strictEqual(typeof json.data.meta.version, "string", "the write response carries the stored file version");
1127
+ delete json.data.meta.version;
1128
+ assert.deepEqual(json.data, {
1129
+ type: "card",
1130
+ id: `${testRealmURL}jackie`,
1131
+ links: { self: `${testRealmURL}jackie` },
1132
+ attributes: {
1133
+ firstName: "Jackie",
1134
+ cardTitle: "Jackie Pet Person",
1135
+ cardDescription: "A person with pets",
1136
+ cardThumbnailURL: null,
1137
+ cardInfo
1138
+ },
1139
+ relationships: {
1140
+ "pets.0": { links: { self: `./dir/mango` } },
1141
+ "pets.1": { links: { self: `./dir/van-gogh` } }
1142
+ },
1143
+ meta: {
1144
+ adoptsFrom: {
1145
+ module: `${testModuleRealm}pet-person`,
1146
+ name: "PetPerson"
1147
+ },
1148
+ lastModified: adapter.lastModifiedMap.get(`${testRealmURL}jackie.json`),
1149
+ resourceCreatedAt,
1150
+ realmInfo: testRealmInfo,
1151
+ realmURL: testRealmURL
1152
+ }
1153
+ });
1154
+ });
1155
+ (0, import_qunit.test)("realm PATCH request can set a linksTo nested within a containsMany", async function(assert) {
1156
+ class Other extends CardDef {
1157
+ static displayName = "Other";
1158
+ static {
1159
+ decorateFieldV2(this.prototype, "name", [field], function() {
1160
+ return contains(string_default);
1161
+ });
1162
+ }
1163
+ #name = (initializeDeferredDecorator(this, "name"), void 0);
1164
+ }
1165
+ class Inner extends FieldDef {
1166
+ static {
1167
+ decorateFieldV2(this.prototype, "message", [field], function() {
1168
+ return contains(string_default);
1169
+ });
1170
+ }
1171
+ #message = (initializeDeferredDecorator(this, "message"), void 0);
1172
+ static {
1173
+ decorateFieldV2(this.prototype, "other", [field], function() {
1174
+ return linksTo(Other);
1175
+ });
1176
+ }
1177
+ #other = (initializeDeferredDecorator(this, "other"), void 0);
1178
+ static embedded = class Embedded extends Component {
1179
+ static {
1180
+ setComponentTemplate(templateFactory({
1181
+ "id": "k2LMuWBu",
1182
+ "block": "[[[1,\"x: \"],[1,[30,1,[\"other\",\"name\"]]]],[\"@model\"],[]]",
1183
+ "moduleName": "/home/runner/work/boxel/boxel/packages/host/tests/integration/realm-test.gts",
1184
+ "isStrictMode": true
1185
+ }), this);
1186
+ }
1187
+ };
1188
+ }
1189
+ class Outer extends CardDef {
1190
+ static displayName = "Outer2";
1191
+ static {
1192
+ decorateFieldV2(this.prototype, "inners", [field], function() {
1193
+ return containsMany(Inner);
1194
+ });
1195
+ }
1196
+ #inners = (initializeDeferredDecorator(this, "inners"), void 0);
1197
+ }
1198
+ let { realm, adapter } = await setupIntegrationTestRealm({
1199
+ mockMatrixUtils,
1200
+ contents: {
1201
+ "outer.gts": {
1202
+ Outer,
1203
+ Inner,
1204
+ Other
1205
+ },
1206
+ "1.json": { data: {
1207
+ id: `${testRealmURL}1`,
1208
+ attributes: { inners: [{ message: "hello" }] },
1209
+ relationships: { owner: { links: { self: null } } },
1210
+ meta: { adoptsFrom: {
1211
+ module: `${testRealmURL}outer`,
1212
+ name: "Outer"
1213
+ } }
1214
+ } },
1215
+ "2.json": { data: {
1216
+ id: `${testRealmURL}2`,
1217
+ attributes: { name: "Jackie" },
1218
+ meta: { adoptsFrom: {
1219
+ module: `${testRealmURL}outer`,
1220
+ name: "Other"
1221
+ } }
1222
+ } }
1223
+ }
1224
+ });
1225
+ let response = await handle(realm, new Request(`${testRealmURL}1`, {
1226
+ method: "PATCH",
1227
+ headers: { Accept: "application/vnd.card+json" },
1228
+ body: JSON.stringify({ data: {
1229
+ type: "card",
1230
+ relationships: { "inners.0.other": { links: { self: `${testRealmURL}2` } } },
1231
+ meta: { adoptsFrom: {
1232
+ module: `${testRealmURL}outer`,
1233
+ name: "Outer"
1234
+ } }
1235
+ } }, null, 2)
1236
+ }));
1237
+ assert.strictEqual(response.status, 200, "successful http status");
1238
+ let json = await response.json();
1239
+ assert.deepEqual(json.data.relationships, { "inners.0.other": { links: { self: `./2` } } });
1240
+ assert.deepEqual(JSON.parse(adapter.files.contents["1.json"].content).data.relationships, { "inners.0.other": { links: { self: "./2" } } });
1241
+ });
1242
+ (0, import_qunit.test)("realm can remove all items to in a linksToMany relationship via PATCH request", async function(assert) {
1243
+ let { realm, adapter } = await setupIntegrationTestRealm({
1244
+ mockMatrixUtils,
1245
+ contents: {
1246
+ "dir/van-gogh.json": { data: {
1247
+ id: `${testRealmURL}dir/van-gogh`,
1248
+ attributes: { firstName: "Van Gogh" },
1249
+ relationships: { owner: { links: { self: null } } },
1250
+ meta: { adoptsFrom: {
1251
+ module: `${testModuleRealm}pet`,
1252
+ name: "Pet"
1253
+ } }
1254
+ } },
1255
+ "dir/mango.json": { data: {
1256
+ id: `${testRealmURL}dir/mango`,
1257
+ attributes: { firstName: "Mango" },
1258
+ relationships: { owner: { links: { self: null } } },
1259
+ meta: { adoptsFrom: {
1260
+ module: `${testModuleRealm}pet`,
1261
+ name: "Pet"
1262
+ } }
1263
+ } },
1264
+ "jackie.json": { data: {
1265
+ id: `${testRealmURL}jackie`,
1266
+ attributes: { firstName: "Jackie" },
1267
+ relationships: {
1268
+ "pets.0": { links: { self: `${testRealmURL}dir/mango` } },
1269
+ "pets.1": { links: { self: `${testRealmURL}dir/van-gogh` } }
1270
+ },
1271
+ meta: { adoptsFrom: {
1272
+ module: `${testModuleRealm}pet-person`,
1273
+ name: "PetPerson"
1274
+ } }
1275
+ } }
1276
+ }
1277
+ });
1278
+ let response = await handle(realm, new Request(`${testRealmURL}jackie`, {
1279
+ method: "PATCH",
1280
+ headers: { Accept: "application/vnd.card+json" },
1281
+ body: JSON.stringify({ data: {
1282
+ type: "card",
1283
+ relationships: { pets: { links: { self: null } } },
1284
+ meta: { adoptsFrom: {
1285
+ module: `${testModuleRealm}pet-person`,
1286
+ name: "PetPerson"
1287
+ } }
1288
+ } }, null, 2)
1289
+ }));
1290
+ let resourceCreatedAt = await getFileCreatedAt(realm, "jackie.json");
1291
+ assert.strictEqual(response.status, 200, "successful http status");
1292
+ let json = await response.json();
1293
+ assert.strictEqual(typeof json.data.meta.version, "string", "the write response carries the stored file version");
1294
+ delete json.data.meta.version;
1295
+ assert.deepEqual(json.data, {
1296
+ type: "card",
1297
+ id: `${testRealmURL}jackie`,
1298
+ links: { self: `${testRealmURL}jackie` },
1299
+ attributes: {
1300
+ firstName: "Jackie",
1301
+ cardTitle: "Jackie Pet Person",
1302
+ cardDescription: "A person with pets",
1303
+ cardThumbnailURL: null,
1304
+ cardInfo
1305
+ },
1306
+ relationships: { pets: { links: { self: null } } },
1307
+ meta: {
1308
+ adoptsFrom: {
1309
+ module: `${testModuleRealm}pet-person`,
1310
+ name: "PetPerson"
1311
+ },
1312
+ lastModified: adapter.lastModifiedMap.get(`${testRealmURL}jackie.json`),
1313
+ resourceCreatedAt,
1314
+ realmInfo: testRealmInfo,
1315
+ realmURL: testRealmURL
1316
+ }
1317
+ });
1318
+ });
1319
+ (0, import_qunit.test)("realm can serve PATCH requests to linksTo field in a card that also has a linksToMany field", async function(assert) {
1320
+ let { realm, adapter } = await setupIntegrationTestRealm({
1321
+ mockMatrixUtils,
1322
+ contents: {
1323
+ "dir/van-gogh.json": { data: {
1324
+ id: `${testRealmURL}dir/van-gogh`,
1325
+ attributes: { firstName: "Van Gogh" },
1326
+ relationships: { owner: { links: { self: null } } },
1327
+ meta: { adoptsFrom: {
1328
+ module: `${testModuleRealm}pet`,
1329
+ name: "Pet"
1330
+ } }
1331
+ } },
1332
+ "dir/friend.json": { data: {
1333
+ id: `${testRealmURL}dir/friend`,
1334
+ attributes: {
1335
+ firstName: "Hassan",
1336
+ lastName: "Abdel-Rahman"
1337
+ },
1338
+ meta: { adoptsFrom: {
1339
+ module: `${testModuleRealm}person`,
1340
+ name: "Person"
1341
+ } }
1342
+ } },
1343
+ "dir/different-friend.json": { data: {
1344
+ id: `${testRealmURL}dir/different-friend`,
1345
+ attributes: { firstName: "Burcu" },
1346
+ meta: { adoptsFrom: {
1347
+ module: `${testModuleRealm}person`,
1348
+ name: "Person"
1349
+ } }
1350
+ } },
1351
+ "jackie.json": { data: {
1352
+ id: `${testRealmURL}jackie`,
1353
+ attributes: { firstName: "Jackie" },
1354
+ relationships: {
1355
+ "pets.0": { links: { self: `${testRealmURL}dir/van-gogh` } },
1356
+ friend: { links: { self: `${testRealmURL}dir/friend` } }
1357
+ },
1358
+ meta: { adoptsFrom: {
1359
+ module: `${testModuleRealm}pet-person`,
1360
+ name: "PetPerson"
1361
+ } }
1362
+ } }
1363
+ }
1364
+ });
1365
+ let resourceCreatedAt = await getFileCreatedAt(realm, "jackie.json");
1366
+ let response = await handle(realm, new Request(`${testRealmURL}jackie`, {
1367
+ method: "PATCH",
1368
+ headers: { Accept: "application/vnd.card+json" },
1369
+ body: JSON.stringify({ data: {
1370
+ type: "card",
1371
+ relationships: { friend: { links: { self: `${testRealmURL}dir/different-friend` } } },
1372
+ meta: { adoptsFrom: {
1373
+ module: `${testModuleRealm}pet-person`,
1374
+ name: "PetPerson"
1375
+ } }
1376
+ } }, null, 2)
1377
+ }));
1378
+ assert.strictEqual(response.status, 200, "successful http status");
1379
+ let json = await response.json();
1380
+ assert.strictEqual(typeof json.data.meta.version, "string", "the write response carries the stored file version");
1381
+ delete json.data.meta.version;
1382
+ assert.deepEqual(json.data, {
1383
+ type: "card",
1384
+ id: `${testRealmURL}jackie`,
1385
+ links: { self: `${testRealmURL}jackie` },
1386
+ attributes: {
1387
+ firstName: "Jackie",
1388
+ cardTitle: "Jackie Pet Person",
1389
+ cardDescription: "A person with pets",
1390
+ cardThumbnailURL: null,
1391
+ cardInfo
1392
+ },
1393
+ relationships: {
1394
+ "pets.0": { links: { self: `./dir/van-gogh` } },
1395
+ friend: { links: { self: `./dir/different-friend` } }
1396
+ },
1397
+ meta: {
1398
+ adoptsFrom: {
1399
+ module: `${testModuleRealm}pet-person`,
1400
+ name: "PetPerson"
1401
+ },
1402
+ lastModified: adapter.lastModifiedMap.get(`${testRealmURL}jackie.json`),
1403
+ resourceCreatedAt,
1404
+ realmInfo: testRealmInfo,
1405
+ realmURL: testRealmURL
1406
+ }
1407
+ });
1408
+ });
1409
+ (0, import_qunit.test)("realm can serve PATCH requests to both linksTo and linksToMany fields", async function(assert) {
1410
+ let { realm, adapter } = await setupIntegrationTestRealm({
1411
+ mockMatrixUtils,
1412
+ contents: {
1413
+ "dir/van-gogh.json": { data: {
1414
+ id: `${testRealmURL}dir/van-gogh`,
1415
+ attributes: { firstName: "Van Gogh" },
1416
+ relationships: { owner: { links: { self: null } } },
1417
+ meta: { adoptsFrom: {
1418
+ module: `${testModuleRealm}pet`,
1419
+ name: "Pet"
1420
+ } }
1421
+ } },
1422
+ "dir/mango.json": { data: {
1423
+ id: `${testRealmURL}dir/mango`,
1424
+ attributes: { firstName: "Mango" },
1425
+ relationships: { owner: { links: { self: null } } },
1426
+ meta: { adoptsFrom: {
1427
+ module: `${testModuleRealm}pet`,
1428
+ name: "Pet"
1429
+ } }
1430
+ } },
1431
+ "dir/friend.json": { data: {
1432
+ id: `${testRealmURL}dir/friend`,
1433
+ attributes: {
1434
+ firstName: "Hassan",
1435
+ lastName: "Abdel-Rahman"
1436
+ },
1437
+ meta: { adoptsFrom: {
1438
+ module: `${testModuleRealm}person`,
1439
+ name: "Person"
1440
+ } }
1441
+ } },
1442
+ "dir/different-friend.json": { data: {
1443
+ id: `${testRealmURL}dir/different-friend`,
1444
+ attributes: { firstName: "Burcu" },
1445
+ meta: { adoptsFrom: {
1446
+ module: `${testModuleRealm}person`,
1447
+ name: "Person"
1448
+ } }
1449
+ } },
1450
+ "jackie.json": { data: {
1451
+ id: `${testRealmURL}jackie`,
1452
+ attributes: { firstName: "Jackie" },
1453
+ relationships: {
1454
+ "pets.0": { links: { self: `${testRealmURL}dir/van-gogh` } },
1455
+ friend: { links: { self: `${testRealmURL}dir/friend` } }
1456
+ },
1457
+ meta: { adoptsFrom: {
1458
+ module: `${testModuleRealm}pet-person`,
1459
+ name: "PetPerson"
1460
+ } }
1461
+ } }
1462
+ }
1463
+ });
1464
+ let resourceCreatedAt = await getFileCreatedAt(realm, "jackie.json");
1465
+ let response = await handle(realm, new Request(`${testRealmURL}jackie`, {
1466
+ method: "PATCH",
1467
+ headers: { Accept: "application/vnd.card+json" },
1468
+ body: JSON.stringify({ data: {
1469
+ type: "card",
1470
+ relationships: { friend: { links: { self: `${testRealmURL}dir/different-friend` } } },
1471
+ meta: { adoptsFrom: {
1472
+ module: `${testModuleRealm}pet-person`,
1473
+ name: "PetPerson"
1474
+ } }
1475
+ } }, null, 2)
1476
+ }));
1477
+ assert.strictEqual(response.status, 200, "successful http status");
1478
+ let json = await response.json();
1479
+ assert.strictEqual(typeof json.data.meta.version, "string", "the write response carries the stored file version");
1480
+ delete json.data.meta.version;
1481
+ assert.deepEqual(json.data, {
1482
+ type: "card",
1483
+ id: `${testRealmURL}jackie`,
1484
+ links: { self: `${testRealmURL}jackie` },
1485
+ attributes: {
1486
+ firstName: "Jackie",
1487
+ cardTitle: "Jackie Pet Person",
1488
+ cardDescription: "A person with pets",
1489
+ cardThumbnailURL: null,
1490
+ cardInfo
1491
+ },
1492
+ relationships: {
1493
+ friend: { links: { self: `./dir/different-friend` } },
1494
+ "pets.0": { links: { self: `./dir/van-gogh` } }
1495
+ },
1496
+ meta: {
1497
+ adoptsFrom: {
1498
+ module: `${testModuleRealm}pet-person`,
1499
+ name: "PetPerson"
1500
+ },
1501
+ lastModified: adapter.lastModifiedMap.get(`${testRealmURL}jackie.json`),
1502
+ resourceCreatedAt,
1503
+ realmInfo: testRealmInfo,
1504
+ realmURL: testRealmURL
1505
+ }
1506
+ });
1507
+ });
1508
+ (0, import_qunit.test)("realm can serve PATCH requests that include linksTo fields", async function(assert) {
1509
+ let { realm, adapter } = await setupIntegrationTestRealm({
1510
+ mockMatrixUtils,
1511
+ contents: {
1512
+ "dir/hassan.json": { data: {
1513
+ id: `${testRealmURL}dir/hassan`,
1514
+ attributes: {
1515
+ firstName: "Hassan",
1516
+ lastName: "Abdel-Rahman"
1517
+ },
1518
+ meta: { adoptsFrom: {
1519
+ module: `${testModuleRealm}person`,
1520
+ name: "Person"
1521
+ } }
1522
+ } },
1523
+ "dir/mariko.json": { data: {
1524
+ id: `${testRealmURL}dir/mariko`,
1525
+ attributes: {
1526
+ firstName: "Mariko",
1527
+ lastName: "Abdel-Rahman"
1528
+ },
1529
+ meta: { adoptsFrom: {
1530
+ module: `${testModuleRealm}person`,
1531
+ name: "Person"
1532
+ } }
1533
+ } },
1534
+ "dir/mango.json": { data: {
1535
+ id: `${testRealmURL}dir/mango`,
1536
+ attributes: {
1537
+ cardDescription: null,
1538
+ cardThumbnailURL: null,
1539
+ firstName: "Mango"
1540
+ },
1541
+ relationships: { owner: { links: { self: `${testRealmURL}dir/hassan` } } },
1542
+ meta: { adoptsFrom: {
1543
+ module: `${testModuleRealm}pet`,
1544
+ name: "Pet"
1545
+ } }
1546
+ } }
1547
+ }
1548
+ });
1549
+ let response = await handle(realm, new Request(`${testRealmURL}dir/mango`, {
1550
+ method: "PATCH",
1551
+ headers: { Accept: "application/vnd.card+json" },
1552
+ body: JSON.stringify({ data: {
1553
+ type: "card",
1554
+ relationships: { owner: { links: { self: `${testRealmURL}dir/mariko` } } },
1555
+ meta: { adoptsFrom: {
1556
+ module: `${testModuleRealm}pet`,
1557
+ name: "Pet"
1558
+ } }
1559
+ } }, null, 2)
1560
+ }));
1561
+ assert.strictEqual(response.status, 200, "successful http status");
1562
+ let json = await response.json();
1563
+ let mangoCreatedAt = await getFileCreatedAt(realm, "dir/mango.json");
1564
+ assert.strictEqual(typeof json.data.meta.version, "string", "the write response carries the stored file version");
1565
+ delete json.data.meta.version;
1566
+ assert.deepEqual(json, { data: {
1567
+ type: "card",
1568
+ id: `${testRealmURL}dir/mango`,
1569
+ attributes: {
1570
+ firstName: "Mango",
1571
+ cardTitle: "Mango",
1572
+ cardDescription: null,
1573
+ cardThumbnailURL: null,
1574
+ cardInfo
1575
+ },
1576
+ relationships: { owner: { links: { self: `./mariko` } } },
1577
+ meta: {
1578
+ adoptsFrom: {
1579
+ module: `${testModuleRealm}pet`,
1580
+ name: "Pet"
1581
+ },
1582
+ lastModified: adapter.lastModifiedMap.get(`${testRealmURL}dir/mango.json`),
1583
+ resourceCreatedAt: mangoCreatedAt,
1584
+ realmInfo: testRealmInfo,
1585
+ realmURL: testRealmURL
1586
+ },
1587
+ links: { self: `${testRealmURL}dir/mango` }
1588
+ } });
1589
+ let fileRef = await adapter.openFile("dir/mango.json");
1590
+ if (!fileRef) throw new Error("file not found");
1591
+ assert.deepEqual(JSON.parse(fileRef.content), { data: {
1592
+ type: "card",
1593
+ attributes: { firstName: "Mango" },
1594
+ relationships: { owner: { links: { self: `./mariko` } } },
1595
+ meta: { adoptsFrom: {
1596
+ module: `${testModuleRealm}pet`,
1597
+ name: "Pet"
1598
+ } }
1599
+ } }, "file contents are correct");
1600
+ });
1601
+ (0, import_qunit.test)("realm can serve PATCH requests that include polymorphic updates", async function(assert) {
1602
+ class Driver extends CardDef {
1603
+ static {
1604
+ decorateFieldV2(this.prototype, "card", [field], function() {
1605
+ return contains(FieldDef);
1606
+ });
1607
+ }
1608
+ #card = (initializeDeferredDecorator(this, "card"), void 0);
1609
+ }
1610
+ class Person extends FieldDef {
1611
+ static {
1612
+ decorateFieldV2(this.prototype, "firstName", [field], function() {
1613
+ return contains(string_default);
1614
+ });
1615
+ }
1616
+ #firstName = (initializeDeferredDecorator(this, "firstName"), void 0);
1617
+ }
1618
+ class Car extends FieldDef {
1619
+ static {
1620
+ decorateFieldV2(this.prototype, "make", [field], function() {
1621
+ return contains(string_default);
1622
+ });
1623
+ }
1624
+ #make = (initializeDeferredDecorator(this, "make"), void 0);
1625
+ static {
1626
+ decorateFieldV2(this.prototype, "model", [field], function() {
1627
+ return contains(string_default);
1628
+ });
1629
+ }
1630
+ #model = (initializeDeferredDecorator(this, "model"), void 0);
1631
+ static {
1632
+ decorateFieldV2(this.prototype, "year", [field], function() {
1633
+ return contains(string_default);
1634
+ });
1635
+ }
1636
+ #year = (initializeDeferredDecorator(this, "year"), void 0);
1637
+ }
1638
+ let { realm, adapter } = await setupIntegrationTestRealm({
1639
+ mockMatrixUtils,
1640
+ contents: {
1641
+ "driver.gts": { Driver },
1642
+ "person.gts": { Person },
1643
+ "car.gts": { Car },
1644
+ "dir/driver.json": { data: {
1645
+ id: `${testRealmURL}dir/driver`,
1646
+ attributes: { card: { firstName: "Mango" } },
1647
+ meta: {
1648
+ adoptsFrom: {
1649
+ module: `${testRealmURL}driver`,
1650
+ name: "Driver"
1651
+ },
1652
+ fields: { card: { adoptsFrom: {
1653
+ module: `${testRealmURL}person`,
1654
+ name: "Person"
1655
+ } } }
1656
+ }
1657
+ } }
1658
+ }
1659
+ });
1660
+ let resourceCreatedAt = await getFileCreatedAt(realm, "dir/driver.json");
1661
+ let response = await handle(realm, new Request(`${testRealmURL}dir/driver`, {
1662
+ method: "PATCH",
1663
+ headers: { Accept: "application/vnd.card+json" },
1664
+ body: JSON.stringify({ data: {
1665
+ type: "card",
1666
+ attributes: { card: {
1667
+ firstName: null,
1668
+ make: "Mercedes Benz",
1669
+ model: "C300",
1670
+ year: "2024"
1671
+ } },
1672
+ meta: {
1673
+ adoptsFrom: {
1674
+ module: `${testRealmURL}driver`,
1675
+ name: "Driver"
1676
+ },
1677
+ fields: { card: { adoptsFrom: {
1678
+ module: `${testRealmURL}car`,
1679
+ name: "Car"
1680
+ } } }
1681
+ }
1682
+ } }, null, 2)
1683
+ }));
1684
+ assert.strictEqual(response.status, 200, "successful http status");
1685
+ let json = await response.json();
1686
+ assert.strictEqual(typeof json.data.meta.version, "string", "the write response carries the stored file version");
1687
+ delete json.data.meta.version;
1688
+ assert.deepEqual(json, { data: {
1689
+ type: "card",
1690
+ id: `${testRealmURL}dir/driver`,
1691
+ attributes: {
1692
+ card: {
1693
+ make: "Mercedes Benz",
1694
+ model: "C300",
1695
+ year: "2024"
1696
+ },
1697
+ cardDescription: null,
1698
+ cardThumbnailURL: null,
1699
+ cardTitle: "Untitled Card",
1700
+ cardInfo
1701
+ },
1702
+ meta: {
1703
+ adoptsFrom: {
1704
+ module: `../driver`,
1705
+ name: "Driver"
1706
+ },
1707
+ fields: { card: { adoptsFrom: {
1708
+ module: `../car`,
1709
+ name: "Car"
1710
+ } } },
1711
+ lastModified: adapter.lastModifiedMap.get(`${testRealmURL}dir/driver.json`),
1712
+ resourceCreatedAt,
1713
+ realmInfo: testRealmInfo,
1714
+ realmURL: testRealmURL
1715
+ },
1716
+ links: { self: `${testRealmURL}dir/driver` }
1717
+ } });
1718
+ let fileRef = await adapter.openFile("dir/driver.json");
1719
+ if (!fileRef) throw new Error("file not found");
1720
+ assert.deepEqual(JSON.parse(fileRef.content), { data: {
1721
+ type: "card",
1722
+ attributes: { card: {
1723
+ make: "Mercedes Benz",
1724
+ model: "C300",
1725
+ year: "2024"
1726
+ } },
1727
+ meta: {
1728
+ adoptsFrom: {
1729
+ module: `../driver`,
1730
+ name: "Driver"
1731
+ },
1732
+ fields: { card: { adoptsFrom: {
1733
+ module: `../car`,
1734
+ name: "Car"
1735
+ } } }
1736
+ }
1737
+ } }, "file contents are correct");
1738
+ });
1739
+ (0, import_qunit.test)("realm returns 400 error for PATCH requests that change the type of the underlying instance", async function(assert) {
1740
+ class Person extends CardDef {
1741
+ static {
1742
+ decorateFieldV2(this.prototype, "firstName", [field], function() {
1743
+ return contains(string_default);
1744
+ });
1745
+ }
1746
+ #firstName = (initializeDeferredDecorator(this, "firstName"), void 0);
1747
+ }
1748
+ class Car extends CardDef {
1749
+ static {
1750
+ decorateFieldV2(this.prototype, "make", [field], function() {
1751
+ return contains(string_default);
1752
+ });
1753
+ }
1754
+ #make = (initializeDeferredDecorator(this, "make"), void 0);
1755
+ static {
1756
+ decorateFieldV2(this.prototype, "model", [field], function() {
1757
+ return contains(string_default);
1758
+ });
1759
+ }
1760
+ #model = (initializeDeferredDecorator(this, "model"), void 0);
1761
+ static {
1762
+ decorateFieldV2(this.prototype, "year", [field], function() {
1763
+ return contains(string_default);
1764
+ });
1765
+ }
1766
+ #year = (initializeDeferredDecorator(this, "year"), void 0);
1767
+ }
1768
+ let { realm, adapter } = await setupIntegrationTestRealm({
1769
+ mockMatrixUtils,
1770
+ contents: {
1771
+ "person.gts": { Person },
1772
+ "car.gts": { Car },
1773
+ "dir/person.json": { data: {
1774
+ attributes: { firstName: "Mango" },
1775
+ meta: { adoptsFrom: {
1776
+ module: `../person`,
1777
+ name: "Person"
1778
+ } }
1779
+ } }
1780
+ }
1781
+ });
1782
+ let response = await handle(realm, new Request(`${testRealmURL}dir/person`, {
1783
+ method: "PATCH",
1784
+ headers: { Accept: "application/vnd.card+json" },
1785
+ body: JSON.stringify({ data: {
1786
+ type: "card",
1787
+ attributes: {
1788
+ make: "Mercedes Benz",
1789
+ model: "C300",
1790
+ year: "2024"
1791
+ },
1792
+ meta: { adoptsFrom: {
1793
+ module: `${testRealmURL}car`,
1794
+ name: "Car"
1795
+ } }
1796
+ } }, null, 2)
1797
+ }));
1798
+ assert.strictEqual(response.status, 400, "400 server error");
1799
+ let fileRef = await adapter.openFile("dir/person.json");
1800
+ if (!fileRef) throw new Error("file not found");
1801
+ assert.deepEqual(JSON.parse(fileRef.content), { data: {
1802
+ attributes: { firstName: "Mango" },
1803
+ meta: { adoptsFrom: {
1804
+ module: `../person`,
1805
+ name: "Person"
1806
+ } }
1807
+ } }, "file contents are correct");
1808
+ });
1809
+ (0, import_qunit.test)("realm returns 500 error for PATCH requests that set the value of a polymorphic field to an incompatible type", async function(assert) {
1810
+ class Person extends FieldDef {
1811
+ static {
1812
+ decorateFieldV2(this.prototype, "firstName", [field], function() {
1813
+ return contains(string_default);
1814
+ });
1815
+ }
1816
+ #firstName = (initializeDeferredDecorator(this, "firstName"), void 0);
1817
+ }
1818
+ class Car extends FieldDef {
1819
+ static {
1820
+ decorateFieldV2(this.prototype, "make", [field], function() {
1821
+ return contains(string_default);
1822
+ });
1823
+ }
1824
+ #make = (initializeDeferredDecorator(this, "make"), void 0);
1825
+ static {
1826
+ decorateFieldV2(this.prototype, "model", [field], function() {
1827
+ return contains(string_default);
1828
+ });
1829
+ }
1830
+ #model = (initializeDeferredDecorator(this, "model"), void 0);
1831
+ static {
1832
+ decorateFieldV2(this.prototype, "year", [field], function() {
1833
+ return contains(string_default);
1834
+ });
1835
+ }
1836
+ #year = (initializeDeferredDecorator(this, "year"), void 0);
1837
+ }
1838
+ class Driver extends CardDef {
1839
+ static {
1840
+ decorateFieldV2(this.prototype, "card", [field], function() {
1841
+ return contains(Person);
1842
+ });
1843
+ }
1844
+ #card = (initializeDeferredDecorator(this, "card"), void 0);
1845
+ }
1846
+ let { realm } = await setupIntegrationTestRealm({
1847
+ mockMatrixUtils,
1848
+ contents: {
1849
+ "driver.gts": { Driver },
1850
+ "person.gts": { Person },
1851
+ "car.gts": { Car },
1852
+ "dir/driver.json": { data: {
1853
+ attributes: { card: { firstName: "Mango" } },
1854
+ meta: {
1855
+ adoptsFrom: {
1856
+ module: `${testRealmURL}driver`,
1857
+ name: "Driver"
1858
+ },
1859
+ fields: { card: { adoptsFrom: {
1860
+ module: `../person`,
1861
+ name: "Person"
1862
+ } } }
1863
+ }
1864
+ } }
1865
+ }
1866
+ });
1867
+ try {
1868
+ globalThis.__emulateServerPatchFailure = true;
1869
+ let response = await handle(realm, new Request(`${testRealmURL}dir/driver`, {
1870
+ method: "PATCH",
1871
+ headers: { Accept: "application/vnd.card+json" },
1872
+ body: JSON.stringify({ data: {
1873
+ type: "card",
1874
+ attributes: { card: {
1875
+ firstName: null,
1876
+ make: "Mercedes Benz",
1877
+ model: "C300",
1878
+ year: "2024"
1879
+ } },
1880
+ meta: {
1881
+ adoptsFrom: {
1882
+ module: `${testRealmURL}driver`,
1883
+ name: "Driver"
1884
+ },
1885
+ fields: { card: { adoptsFrom: {
1886
+ module: `${testRealmURL}car`,
1887
+ name: "Car"
1888
+ } } }
1889
+ }
1890
+ } }, null, 2)
1891
+ }));
1892
+ assert.strictEqual(response.status, 500, "500 server error");
1893
+ let json = await response.json();
1894
+ assert.strictEqual(json.errors[0].additionalErrors[0].errorDetail.message, "field validation error: tried set instance of Car as field 'card' but it is not an instance of Person");
1895
+ } finally {
1896
+ delete globalThis.__emulateServerPatchFailure;
1897
+ }
1898
+ });
1899
+ (0, import_qunit.test)("realm can serve delete card requests", async function(assert) {
1900
+ let { realm, adapter } = await setupIntegrationTestRealm({
1901
+ mockMatrixUtils,
1902
+ contents: {
1903
+ "cards/1.json": { data: { meta: { adoptsFrom: {
1904
+ module: "@cardstack/base/card-api",
1905
+ name: "CardDef"
1906
+ } } } },
1907
+ "cards/2.json": { data: { meta: { adoptsFrom: {
1908
+ module: "@cardstack/base/card-api",
1909
+ name: "CardDef"
1910
+ } } } }
1911
+ }
1912
+ });
1913
+ let queryEngine = realm.realmIndexQueryEngine;
1914
+ let { data: cards } = await searchCardsForTest(queryEngine, { filter: { type: baseCardRef } });
1915
+ assert.strictEqual(cards.length, 2, "two cards found");
1916
+ let result = await queryEngine.cardDocument(new URL(`${testRealmURL}cards/2`));
1917
+ if (result?.type === "error") throw new Error(`unexpected error when getting card from index: ${result.error.errorDetail.message}`);
1918
+ assert.strictEqual(result?.doc.data.id, `${testRealmURL}cards/2`, "found card in index");
1919
+ let response = await handle(realm, new Request(`${testRealmURL}cards/2`, {
1920
+ method: "DELETE",
1921
+ headers: { Accept: "application/vnd.card+json" }
1922
+ }));
1923
+ await realm.flushUpdateEvents();
1924
+ assert.strictEqual(response.status, 204, "status was 204");
1925
+ result = await queryEngine.cardDocument(new URL(`${testRealmURL}cards/2`));
1926
+ assert.strictEqual(result, void 0, "card was deleted");
1927
+ let deletedFile = await adapter.openFile("cards/2.json");
1928
+ assert.strictEqual(deletedFile, void 0, "underlying file for deleted card no longer exists");
1929
+ result = await queryEngine.cardDocument(new URL(`${testRealmURL}cards/1`));
1930
+ if (result?.type === "error") throw new Error(`unexpected error when getting card from index: ${result.error.errorDetail.message}`);
1931
+ assert.strictEqual(result?.doc.data.id, `${testRealmURL}cards/1`, "card 1 is still there");
1932
+ cards = (await searchCardsForTest(queryEngine, { filter: { type: baseCardRef } })).data;
1933
+ assert.strictEqual(cards.length, 1, "only one card remains");
1934
+ });
1935
+ (0, import_qunit.test)("realm can serve card source file", async function(assert) {
1936
+ let { realm } = await setupIntegrationTestRealm({
1937
+ mockMatrixUtils,
1938
+ contents: { "dir/person.gts": cardSrc }
1939
+ });
1940
+ let response = await handle(realm, new Request(`${testRealmURL}dir/person.gts`, { headers: { Accept: "application/vnd.card+source" } }));
1941
+ assert.strictEqual(response.status, 200, "200 HTTP status");
1942
+ let responseText = await response.text();
1943
+ assert.strictEqual(responseText, cardSrc, "the card source is correct");
1944
+ assert.ok(response.headers.get("last-modified"), "last-modified header exists");
1945
+ });
1946
+ (0, import_qunit.test)("realm provide redirect for card source", async function(assert) {
1947
+ let { realm } = await setupIntegrationTestRealm({
1948
+ mockMatrixUtils,
1949
+ contents: { "dir/person.gts": cardSrc }
1950
+ });
1951
+ let response = await handle(realm, new Request(`${testRealmURL}dir/person`, { headers: { Accept: "application/vnd.card+source" } }));
1952
+ assert.strictEqual(response.status, 302, "302 HTTP status");
1953
+ assert.strictEqual(response.headers.get("Location"), "/test/dir/person.gts", "Location header is correct");
1954
+ });
1955
+ (0, import_qunit.test)("realm returns 404 when no card source can be found", async function(assert) {
1956
+ let { realm } = await setupIntegrationTestRealm({
1957
+ mockMatrixUtils,
1958
+ contents: {}
1959
+ });
1960
+ let response = await handle(realm, new Request(`${testRealmURL}dir/person`, { headers: { Accept: "application/vnd.card+source" } }));
1961
+ assert.strictEqual(response.status, 404, "404 HTTP status");
1962
+ });
1963
+ (0, import_qunit.test)("realm can serve card source post request", async function(assert) {
1964
+ let { realm } = await setupIntegrationTestRealm({
1965
+ mockMatrixUtils,
1966
+ contents: {}
1967
+ });
1968
+ {
1969
+ let response = await handle(realm, new Request(`${testRealmURL}dir/person.gts`, {
1970
+ method: "POST",
1971
+ headers: { Accept: "application/vnd.card+source" },
1972
+ body: cardSrc
1973
+ }));
1974
+ await realm.flushUpdateEvents();
1975
+ assert.strictEqual(response.status, 204, "HTTP status is 204");
1976
+ assert.ok(response.headers.get("last-modified"), "last-modified header exists");
1977
+ }
1978
+ {
1979
+ let response = await handle(realm, new Request(`${testRealmURL}dir/person.gts`, { headers: { Accept: "application/vnd.card+source" } }));
1980
+ assert.strictEqual(response.status, 200, "200 HTTP status");
1981
+ let responseText = await response.text();
1982
+ assert.strictEqual(responseText, cardSrc, "the card source is correct");
1983
+ }
1984
+ });
1985
+ (0, import_qunit.test)("realm can serve card source delete request", async function(assert) {
1986
+ let { field, contains, CardDef } = await loader.import("@cardstack/base/card-api");
1987
+ let { default: StringField } = await loader.import("@cardstack/base/string");
1988
+ class Person extends CardDef {
1989
+ static {
1990
+ decorateFieldV2(this.prototype, "firstName", [field], function() {
1991
+ return contains(StringField);
1992
+ });
1993
+ }
1994
+ #firstName = (initializeDeferredDecorator(this, "firstName"), void 0);
1995
+ static {
1996
+ decorateFieldV2(this.prototype, "lastName", [field], function() {
1997
+ return contains(StringField);
1998
+ });
1999
+ }
2000
+ #lastName = (initializeDeferredDecorator(this, "lastName"), void 0);
2001
+ }
2002
+ let { realm } = await setupIntegrationTestRealm({
2003
+ mockMatrixUtils,
2004
+ contents: { "person.gts": { Person } }
2005
+ });
2006
+ let response = await handle(realm, new Request(`${testRealmURL}person`, { headers: { Accept: "application/vnd.card+source" } }));
2007
+ await realm.flushUpdateEvents();
2008
+ assert.strictEqual(response.status, 302, "file exists");
2009
+ response = await handle(realm, new Request(`${testRealmURL}person`, {
2010
+ method: "DELETE",
2011
+ headers: { Accept: "application/vnd.card+source" }
2012
+ }));
2013
+ await realm.flushUpdateEvents();
2014
+ assert.strictEqual(response.status, 204, "file is deleted");
2015
+ response = await handle(realm, new Request(`${testRealmURL}person`, { headers: { Accept: "application/vnd.card+source" } }));
2016
+ assert.strictEqual(response.status, 404, "file no longer exists");
2017
+ });
2018
+ (0, import_qunit.test)("realm can serve compiled js file when requested without file extension ", async function(assert) {
2019
+ let { realm } = await setupIntegrationTestRealm({
2020
+ mockMatrixUtils,
2021
+ contents: { "dir/person.gts": cardSrc }
2022
+ });
2023
+ let response = await handle(realm, new Request(`${testRealmURL}dir/person`));
2024
+ assert.strictEqual(response.status, 200, "HTTP 200 status code");
2025
+ let compiledJS = await response.text();
2026
+ assert.codeEqual(stripScopedCSSGlimmerAttributes(compiledJS.replace(/"id":\s"[^"]+"/, "\"id\": \"<id>\"")), compiledCard("\"<id>\"", "/dir/person.gts", `${testRealmURL}dir/person`), "compiled card is correct");
2027
+ });
2028
+ (0, import_qunit.test)("realm can serve compiled js file when requested with file extension ", async function(assert) {
2029
+ let { realm } = await setupIntegrationTestRealm({
2030
+ mockMatrixUtils,
2031
+ contents: { "dir/person.gts": cardSrc }
2032
+ });
2033
+ let response = await handle(realm, new Request(`${testRealmURL}dir/person.gts`));
2034
+ assert.strictEqual(response.status, 200, "HTTP 200 status code");
2035
+ let compiledJS = await response.text();
2036
+ assert.codeEqual(stripScopedCSSGlimmerAttributes(compiledJS.replace(/"id":\s"[^"]+"/, "\"id\": \"<id>\"")), compiledCard("\"<id>\"", "/dir/person.gts", `${testRealmURL}dir/person`), "compiled card is correct");
2037
+ });
2038
+ (0, import_qunit.test)("realm can serve file asset (not card source, not js, not JSON-API)", async function(assert) {
2039
+ let html = `
2040
+ <html>
2041
+ <body>
2042
+ <h1>Hello World</h1>
2043
+ </body>
2044
+ </html>
2045
+ `.trim();
2046
+ let { realm } = await setupIntegrationTestRealm({
2047
+ mockMatrixUtils,
2048
+ contents: { "dir/index.html": html }
2049
+ });
2050
+ let response = await handle(realm, new Request(`${testRealmURL}dir/index.html`));
2051
+ assert.strictEqual(response.status, 200, "HTTP 200 status code");
2052
+ let responseText = await response.text();
2053
+ assert.strictEqual(responseText, html, "asset contents are correct");
2054
+ });
2055
+ (0, import_qunit.test)("realm can serve search requests", async function(assert) {
2056
+ let { realm } = await setupIntegrationTestRealm({
2057
+ mockMatrixUtils,
2058
+ contents: { "dir/empty.json": { data: {
2059
+ attributes: {},
2060
+ meta: { adoptsFrom: {
2061
+ module: "@cardstack/base/card-api",
2062
+ name: "CardDef"
2063
+ } }
2064
+ } } }
2065
+ });
2066
+ let json = await (await handle(realm, new Request(`${testRealmURL}_search`, {
2067
+ method: "QUERY",
2068
+ headers: {
2069
+ Accept: "application/vnd.card+json",
2070
+ "Content-Type": "application/json"
2071
+ },
2072
+ body: JSON.stringify(searchEntryWireQueryFromQuery({ filter: { type: baseCardRef } }, { fields: ["item"] }))
2073
+ }))).json();
2074
+ assert.strictEqual(json.data.length, 1, "the card is returned in the search results");
2075
+ assert.strictEqual(json.data[0].id, `${testRealmURL}dir/empty`, "card ID is correct");
2076
+ });
2077
+ (0, import_qunit.test)("realm can serve search requests whose results have linksTo fields", async function(assert) {
2078
+ let { realm } = await setupIntegrationTestRealm({
2079
+ mockMatrixUtils,
2080
+ contents: {
2081
+ "dir/mariko.json": { data: {
2082
+ id: `${testRealmURL}dir/mariko`,
2083
+ attributes: {
2084
+ firstName: "Mariko",
2085
+ lastName: "Abdel-Rahman"
2086
+ },
2087
+ meta: { adoptsFrom: {
2088
+ module: `${testModuleRealm}person`,
2089
+ name: "Person"
2090
+ } }
2091
+ } },
2092
+ "dir/mango.json": { data: {
2093
+ id: `${testRealmURL}dir/mango`,
2094
+ attributes: {
2095
+ cardDescription: null,
2096
+ cardThumbnailURL: null,
2097
+ firstName: "Mango"
2098
+ },
2099
+ relationships: { owner: { links: { self: `${testRealmURL}dir/mariko` } } },
2100
+ meta: { adoptsFrom: {
2101
+ module: `${testModuleRealm}pet`,
2102
+ name: "Pet"
2103
+ } }
2104
+ } },
2105
+ "dir/vanGogh.json": { data: {
2106
+ id: `${testRealmURL}dir/vanGogh`,
2107
+ attributes: { firstName: "Van Gogh" },
2108
+ relationships: { owner: { links: { self: `${testModuleRealm}hassan` } } },
2109
+ meta: { adoptsFrom: {
2110
+ module: `${testModuleRealm}pet`,
2111
+ name: "Pet"
2112
+ } }
2113
+ } }
2114
+ }
2115
+ });
2116
+ let json = await (await handle(realm, new Request(`${testRealmURL}_search`, {
2117
+ method: "QUERY",
2118
+ headers: {
2119
+ Accept: "application/vnd.card+json",
2120
+ "Content-Type": "application/json"
2121
+ },
2122
+ body: JSON.stringify(searchEntryWireQueryFromQuery({
2123
+ filter: { type: baseCardRef },
2124
+ sort: [{
2125
+ by: "id",
2126
+ on: {
2127
+ module: rri(`${baseRealmRRI}card-api`),
2128
+ name: "CardDef"
2129
+ }
2130
+ }]
2131
+ }, { fields: ["item"] }))
2132
+ }))).json();
2133
+ let mangoCreatedAt = await getFileCreatedAt(realm, "dir/mango.json");
2134
+ let marikoCreatedAt = await getFileCreatedAt(realm, "dir/mariko.json");
2135
+ let vanGoghCreatedAt = await getFileCreatedAt(realm, "dir/vanGogh.json");
2136
+ let entries = json.data;
2137
+ assert.strictEqual(entries.length, 3, "returns 3 search entries");
2138
+ assert.strictEqual(json.meta.page.total, 3, "meta page total is 3");
2139
+ let included = json.included ?? [];
2140
+ let mango = included.find((r) => r.id === `${testRealmURL}dir/mango`);
2141
+ assert.ok(mango, "mango is in results");
2142
+ assert.strictEqual(mango.attributes.firstName, "Mango", "mango name");
2143
+ assert.strictEqual(mango.relationships.owner.links.self, "./mariko", "mango owner self link");
2144
+ assert.strictEqual(mango.relationships.owner.data.id, `${testRealmURL}dir/mariko`, "mango owner id");
2145
+ assert.strictEqual(mango.meta.resourceCreatedAt, mangoCreatedAt, "mango createdAt");
2146
+ let mariko = included.find((r) => r.id === `${testRealmURL}dir/mariko`);
2147
+ assert.ok(mariko, "mariko is in results");
2148
+ assert.strictEqual(mariko.attributes.fullName, "Mariko Abdel-Rahman", "mariko fullName");
2149
+ assert.strictEqual(mariko.meta.resourceCreatedAt, marikoCreatedAt, "mariko createdAt");
2150
+ let vanGogh = included.find((r) => r.id === `${testRealmURL}dir/vanGogh`);
2151
+ assert.ok(vanGogh, "vanGogh is in results");
2152
+ assert.strictEqual(vanGogh.relationships.owner.links.self, `${testModuleRealm}hassan`, "vanGogh owner self link");
2153
+ assert.strictEqual(vanGogh.relationships.owner.data.id, `${testModuleRealm}hassan`, "vanGogh owner id");
2154
+ assert.strictEqual(vanGogh.meta.resourceCreatedAt, vanGoghCreatedAt, "vanGogh createdAt");
2155
+ let hassan = included.find((r) => r.id === `${testModuleRealm}hassan`);
2156
+ assert.ok(hassan, "hassan (cross-realm linksTo target) is included");
2157
+ });
2158
+ (0, import_qunit.test)("included card uses correct module path when realm is mounted", async function(assert) {
2159
+ let mountedRealmURL = "https://localhost:4201/mounted-test/";
2160
+ let spreadsheet1Id = "spreadsheet-1";
2161
+ let spreadsheet2Id = "spreadsheet-2";
2162
+ class Spreadsheet extends CardDef {
2163
+ static displayName = "Spreadsheet";
2164
+ static {
2165
+ decorateFieldV2(this.prototype, "name", [field], function() {
2166
+ return contains(string_default);
2167
+ });
2168
+ }
2169
+ #name = (initializeDeferredDecorator(this, "name"), void 0);
2170
+ }
2171
+ class CatalogIndex extends CardDef {
2172
+ static displayName = "CatalogIndex";
2173
+ static {
2174
+ decorateFieldV2(this.prototype, "spreadsheets", [field], function() {
2175
+ return linksToMany(Spreadsheet);
2176
+ });
2177
+ }
2178
+ #spreadsheets = (initializeDeferredDecorator(this, "spreadsheets"), void 0);
2179
+ }
2180
+ let { realm } = await setupIntegrationTestRealm({
2181
+ mockMatrixUtils,
2182
+ realmURL: mountedRealmURL,
2183
+ contents: {
2184
+ "spreadsheet/spreadsheet.gts": { Spreadsheet },
2185
+ "index.gts": { CatalogIndex },
2186
+ [`spreadsheet/Spreadsheet/${spreadsheet1Id}.json`]: { data: {
2187
+ attributes: { name: "Sheet 1" },
2188
+ meta: { adoptsFrom: {
2189
+ module: "../spreadsheet",
2190
+ name: "Spreadsheet"
2191
+ } }
2192
+ } },
2193
+ [`spreadsheet/Spreadsheet/${spreadsheet2Id}.json`]: { data: {
2194
+ attributes: { name: "Sheet 2" },
2195
+ meta: { adoptsFrom: {
2196
+ module: "../spreadsheet",
2197
+ name: "Spreadsheet"
2198
+ } }
2199
+ } },
2200
+ "index.json": { data: {
2201
+ relationships: {
2202
+ "spreadsheets.0": { links: { self: `./spreadsheet/Spreadsheet/${spreadsheet1Id}` } },
2203
+ "spreadsheets.1": { links: { self: `./spreadsheet/Spreadsheet/${spreadsheet2Id}` } }
2204
+ },
2205
+ meta: { adoptsFrom: {
2206
+ module: "./index",
2207
+ name: "CatalogIndex"
2208
+ } }
2209
+ } }
2210
+ }
2211
+ });
2212
+ let response = await handle(realm, new Request(`${mountedRealmURL}index`, { headers: { Accept: "application/vnd.card+json" } }));
2213
+ assert.strictEqual(response.status, 200, "successful http status");
2214
+ let included = (await response.json()).included?.find((resource) => resource.id === `${mountedRealmURL}spreadsheet/Spreadsheet/${spreadsheet1Id}`);
2215
+ assert.ok(included, "linked spreadsheet card is included");
2216
+ assert.strictEqual(included?.meta?.adoptsFrom?.module, "../spreadsheet", "included adoptsFrom.module is relative to the resource own id");
2217
+ });
2218
+ (0, import_qunit.test)("realm can serve directory requests", async function(assert) {
2219
+ let { realm, adapter } = await setupIntegrationTestRealm({
2220
+ mockMatrixUtils,
2221
+ contents: {
2222
+ "dir/empty.json": { data: {
2223
+ attributes: {},
2224
+ meta: { adoptsFrom: {
2225
+ module: "@cardstack/base/card-api",
2226
+ name: "CardDef"
2227
+ } }
2228
+ } },
2229
+ "dir/subdir/file.txt": ""
2230
+ }
2231
+ });
2232
+ let response = await handle(realm, new Request(`${testRealmURL}dir/`, { headers: { Accept: "application/vnd.api+json" } }));
2233
+ assert.strictEqual(response.status, 200, "HTTP 200 status code");
2234
+ let json = await response.json();
2235
+ let resourceCreatedAt = await getFileCreatedAt(realm, "dir/empty.json");
2236
+ assert.deepEqual(json, { data: {
2237
+ id: `${testRealmURL}dir/`,
2238
+ type: "directory",
2239
+ relationships: {
2240
+ "subdir/": {
2241
+ links: { related: `${testRealmURL}dir/subdir/` },
2242
+ meta: { kind: "directory" }
2243
+ },
2244
+ "empty.json": {
2245
+ links: { related: `${testRealmURL}dir/empty.json` },
2246
+ meta: {
2247
+ kind: "file",
2248
+ lastModified: adapter.lastModifiedMap.get(`${testRealmURL}dir/empty.json`),
2249
+ resourceCreatedAt
2250
+ }
2251
+ }
2252
+ }
2253
+ } }, "the directory response is correct");
2254
+ });
2255
+ (0, import_qunit.test)("requests do not contain entries that match patterns in ignore files", async function(assert) {
2256
+ const cardSource = `
2257
+ import { CardDef } from '@cardstack/base/card-api';
2258
+ export class Post extends CardDef {}
2259
+ `;
2260
+ let { realm } = await setupIntegrationTestRealm({
2261
+ mockMatrixUtils,
2262
+ contents: {
2263
+ "sample-post.json": "",
2264
+ "posts/1.json": "",
2265
+ "posts/nested.gts": cardSource,
2266
+ "posts/ignore-me.gts": cardSource,
2267
+ "posts/2.json": "",
2268
+ "post.gts": cardSource,
2269
+ "dir/card.gts": cardSource,
2270
+ ".gitignore": `
2271
+ *.json
2272
+ /dir
2273
+ posts/ignore-me.gts
2274
+ `
2275
+ }
2276
+ });
2277
+ {
2278
+ let response = await handle(realm, new Request(`${testRealmURL}dir/`, { headers: { Accept: "application/vnd.api+json" } }));
2279
+ assert.strictEqual(response.status, 404, "HTTP 404 response");
2280
+ }
2281
+ {
2282
+ let json = await (await handle(realm, new Request(testRealmURL, { headers: { Accept: "application/vnd.api+json" } }))).json();
2283
+ assert.deepEqual(Object.keys(json.data.relationships).sort(), [
2284
+ ".gitignore",
2285
+ "post.gts",
2286
+ "posts/"
2287
+ ], "top level entries are correct");
2288
+ }
2289
+ {
2290
+ let json = await (await handle(realm, new Request(`${testRealmURL}posts/`, { headers: { Accept: "application/vnd.api+json" } }))).json();
2291
+ assert.deepEqual(Object.keys(json.data.relationships).sort(), ["nested.gts"], "nested entries are correct");
2292
+ }
2293
+ });
2294
+ (0, import_qunit.test)("realm can serve info requests by reading the RealmConfig card", async function(assert) {
2295
+ let { realm } = await setupIntegrationTestRealm({
2296
+ mockMatrixUtils,
2297
+ contents: { "realm.json": realmConfigCardJSON({
2298
+ name: "Example Workspace",
2299
+ backgroundURL: "/test-fixtures/realm-images/4k-powder-puff.jpg",
2300
+ iconURL: "/test-fixtures/realm-images/boxel-logo.png"
2301
+ }) }
2302
+ });
2303
+ let json = await (await handle(realm, new Request(`${testRealmURL}_info`, {
2304
+ method: "QUERY",
2305
+ headers: { Accept: "application/vnd.api+json" }
2306
+ }))).json();
2307
+ assert.strictEqual(json.data.id, testRealmURL, "id is correct");
2308
+ assert.strictEqual(json.data.type, "realm-info", "type is correct");
2309
+ let attributes = json.data.attributes;
2310
+ assert.strictEqual(attributes.name, "Example Workspace", "name");
2311
+ assert.strictEqual(attributes.backgroundURL, "/test-fixtures/realm-images/4k-powder-puff.jpg", "backgroundURL");
2312
+ assert.strictEqual(attributes.iconURL, "/test-fixtures/realm-images/boxel-logo.png", "iconURL");
2313
+ assert.strictEqual(attributes.realmUserId, "@realm_server:localhost", "realmUserId");
2314
+ assert.strictEqual(attributes.showAsCatalog, null, "showAsCatalog");
2315
+ assert.strictEqual(attributes.visibility, "public", "visibility");
2316
+ assert.strictEqual(attributes.publishable, null, "publishable");
2317
+ assert.strictEqual(attributes.lastPublishedAt, null, "lastPublishedAt");
2318
+ assert.strictEqual(attributes.includePrerenderedDefaultRealmIndex, null, "includePrerenderedDefaultRealmIndex");
2319
+ });
2320
+ (0, import_qunit.test)("realm can serve info requests if the RealmConfig card is missing", async function(assert) {
2321
+ let { realm } = await setupIntegrationTestRealm({
2322
+ mockMatrixUtils,
2323
+ contents: {}
2324
+ });
2325
+ let json = await (await handle(realm, new Request(`${testRealmURL}_info`, {
2326
+ method: "QUERY",
2327
+ headers: { Accept: "application/vnd.api+json" }
2328
+ }))).json();
2329
+ assert.deepEqual(json, { data: {
2330
+ id: testRealmURL,
2331
+ type: "realm-info",
2332
+ attributes: testRealmInfo
2333
+ } }, "/_info response is correct");
2334
+ });
2335
+ (0, import_qunit.test)("realm can serve info requests if the RealmConfig card is malformed", async function(assert) {
2336
+ let { realm } = await setupIntegrationTestRealm({
2337
+ mockMatrixUtils,
2338
+ contents: { "realm.json": `Some example content that is not valid json` }
2339
+ });
2340
+ let json = await (await handle(realm, new Request(`${testRealmURL}_info`, {
2341
+ method: "QUERY",
2342
+ headers: { Accept: "application/vnd.api+json" }
2343
+ }))).json();
2344
+ assert.deepEqual(json, { data: {
2345
+ id: testRealmURL,
2346
+ type: "realm-info",
2347
+ attributes: testRealmInfo
2348
+ } }, "/_info response is correct");
2349
+ });
2350
+ (0, import_qunit.test)("realm does not crash when indexing a broken instance", async function(assert) {
2351
+ await setupIntegrationTestRealm({
2352
+ mockMatrixUtils,
2353
+ contents: { "FieldDef/1.json": { data: {
2354
+ type: "card",
2355
+ meta: { adoptsFrom: {
2356
+ module: "@cardstack/base/card-api",
2357
+ name: "FieldDef"
2358
+ } }
2359
+ } } }
2360
+ });
2361
+ assert.ok(true, "realm did not crash when trying to index a broken instance");
2362
+ });
2363
+ });
2364
+ //#endregion