From 9bec39691bcdc1fbff965abb22da98d59f58fbdd Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Wed, 18 Feb 2026 09:14:58 -0600 Subject: [PATCH 01/13] Upgrade TypeScript from 5.8.3 to 5.9.3 Co-Authored-By: Claude Opus 4.6 --- pnpm-lock.yaml | 348 ++++++++++++++++++++++---------------------- pnpm-workspace.yaml | 2 +- 2 files changed, 175 insertions(+), 175 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a93fd50dc6..3bbb8cb603 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -628,8 +628,8 @@ catalogs: specifier: ^4.0.0 version: 4.1.0 typescript: - specifier: ~5.8.3 - version: 5.8.3 + specifier: ~5.9.3 + version: 5.9.3 typescript-memoize: specifier: ^1.1.1 version: 1.1.1 @@ -734,7 +734,7 @@ importers: version: 1.1.2 '@glint/core': specifier: 1.3.0 - version: 1.3.0(typescript@5.8.3) + version: 1.3.0(typescript@5.9.3) '@glint/environment-ember-loose': specifier: 'catalog:' version: 1.5.2(@glimmer/component@2.0.0)(@glint/template@1.3.0)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.1.0(ember-source@5.12.0(patch_hash=2586bd032e74105d65b7953ccaae1cd1d1175047a58ba89ec0057f1f8b7b7fe1)(@glimmer/component@2.0.0)(@glint/template@1.3.0)(rsvp@4.8.5)(webpack@5.104.1))) @@ -746,10 +746,10 @@ importers: version: 1.57.0 '@typescript-eslint/eslint-plugin': specifier: 'catalog:' - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': specifier: 'catalog:' - version: 7.18.0(eslint@8.57.1)(typescript@5.8.3) + version: 7.18.0(eslint@8.57.1)(typescript@5.9.3) ember-cli-htmlbars: specifier: ^6.3.0 version: 6.3.0 @@ -770,7 +770,7 @@ importers: version: 9.1.2(eslint@8.57.1) eslint-plugin-import: specifier: 'catalog:' - version: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) + version: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1) eslint-plugin-prefer-let: specifier: 'catalog:' version: 3.0.1 @@ -785,7 +785,7 @@ importers: version: 2.1.2(prettier@3.7.4) typescript: specifier: 'catalog:' - version: 5.8.3 + version: 5.9.3 packages/ai-bot: dependencies: @@ -836,10 +836,10 @@ importers: version: 1.9.1 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@24.10.8)(typescript@5.8.3) + version: 10.9.2(@types/node@24.10.8)(typescript@5.9.3) typescript: specifier: 'catalog:' - version: 5.8.3 + version: 5.9.3 devDependencies: '@cardstack/local-types': specifier: workspace:* @@ -980,10 +980,10 @@ importers: version: 38.3.0(patch_hash=0472d34281d936a5dcdacff67d2851d88c1df9593cd06b7725ee8414c12aa1d5) ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@24.10.8)(typescript@5.8.3) + version: 10.9.2(@types/node@24.10.8)(typescript@5.9.3) typescript: specifier: 'catalog:' - version: 5.8.3 + version: 5.9.3 devDependencies: '@cardstack/local-types': specifier: workspace:* @@ -1019,7 +1019,7 @@ importers: version: 1.3.0 typescript: specifier: 'catalog:' - version: 5.8.3 + version: 5.9.3 devDependencies: '@babel/core': specifier: 'catalog:' @@ -1062,10 +1062,10 @@ importers: version: 3.0.1 '@typescript-eslint/eslint-plugin': specifier: 'catalog:' - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': specifier: 'catalog:' - version: 7.18.0(eslint@8.57.1)(typescript@5.8.3) + version: 7.18.0(eslint@8.57.1)(typescript@5.9.3) babel-plugin-ember-template-compilation: specifier: 'catalog:' version: 2.4.1 @@ -1092,10 +1092,10 @@ importers: version: 9.1.2(eslint@8.57.1) eslint-plugin-ember: specifier: 'catalog:' - version: 12.7.5(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) + version: 12.7.5(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1) eslint-plugin-n: specifier: 'catalog:' - version: 17.23.2(eslint@8.57.1)(typescript@5.8.3) + version: 17.23.2(eslint@8.57.1)(typescript@5.9.3) eslint-plugin-prettier: specifier: 'catalog:' version: 5.5.4(@types/eslint@8.56.5)(eslint-config-prettier@9.1.2(eslint@8.57.1))(eslint@8.57.1)(prettier@3.7.4) @@ -1170,7 +1170,7 @@ importers: version: 5.1.2 typescript: specifier: 'catalog:' - version: 5.8.3 + version: 5.9.3 devDependencies: '@babel/core': specifier: 'catalog:' @@ -1198,7 +1198,7 @@ importers: version: 1.16.13(@glint/template@1.3.0) '@glint/core': specifier: 1.3.0 - version: 1.3.0(typescript@5.8.3) + version: 1.3.0(typescript@5.9.3) '@glint/environment-ember-template-imports': specifier: 1.3.0 version: 1.3.0(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.3.0)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.1.0(ember-source@5.12.0(patch_hash=2586bd032e74105d65b7953ccaae1cd1d1175047a58ba89ec0057f1f8b7b7fe1)(@glimmer/component@2.0.0)(@glint/template@1.3.0)(rsvp@4.8.5))))(@glint/template@1.3.0) @@ -1219,10 +1219,10 @@ importers: version: 4.0.9 '@typescript-eslint/eslint-plugin': specifier: 'catalog:' - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': specifier: 'catalog:' - version: 7.18.0(eslint@8.57.1)(typescript@5.8.3) + version: 7.18.0(eslint@8.57.1)(typescript@5.9.3) babel-plugin-ember-template-compilation: specifier: 'catalog:' version: 2.4.1 @@ -1249,10 +1249,10 @@ importers: version: 9.1.2(eslint@8.57.1) eslint-plugin-ember: specifier: 'catalog:' - version: 12.7.5(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) + version: 12.7.5(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1) eslint-plugin-n: specifier: 'catalog:' - version: 17.23.2(eslint@8.57.1)(typescript@5.8.3) + version: 17.23.2(eslint@8.57.1)(typescript@5.9.3) eslint-plugin-prettier: specifier: 'catalog:' version: 5.5.4(@types/eslint@8.56.5)(eslint-config-prettier@9.1.2(eslint@8.57.1))(eslint@8.57.1)(prettier@3.7.4) @@ -1261,7 +1261,7 @@ importers: version: 8.0.0(eslint@8.57.1) eslint-plugin-typescript-sort-keys: specifier: 'catalog:' - version: 3.3.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + version: 3.3.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) npm-run-all: specifier: 'catalog:' version: 4.1.5 @@ -1324,7 +1324,7 @@ importers: version: 1.1.2 '@glint/core': specifier: 1.3.0 - version: 1.3.0(typescript@5.8.3) + version: 1.3.0(typescript@5.9.3) '@glint/environment-ember-loose': specifier: 'catalog:' version: 1.5.2(@glimmer/component@2.0.0)(@glint/template@1.3.0)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.1.0(ember-source@5.12.0(patch_hash=2586bd032e74105d65b7953ccaae1cd1d1175047a58ba89ec0057f1f8b7b7fe1)(@glimmer/component@2.0.0)(@glint/template@1.3.0)(rsvp@4.8.5)(webpack@5.104.1))) @@ -1348,10 +1348,10 @@ importers: version: 4.0.9 '@typescript-eslint/eslint-plugin': specifier: 'catalog:' - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': specifier: 'catalog:' - version: 7.18.0(eslint@8.57.1)(typescript@5.8.3) + version: 7.18.0(eslint@8.57.1)(typescript@5.9.3) broccoli-asset-rev: specifier: 'catalog:' version: 3.0.0 @@ -1459,10 +1459,10 @@ importers: version: 9.1.2(eslint@8.57.1) eslint-plugin-ember: specifier: 'catalog:' - version: 12.7.5(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) + version: 12.7.5(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1) eslint-plugin-n: specifier: 'catalog:' - version: 17.23.2(eslint@8.57.1)(typescript@5.8.3) + version: 17.23.2(eslint@8.57.1)(typescript@5.9.3) eslint-plugin-prettier: specifier: 'catalog:' version: 5.5.4(@types/eslint@8.56.5)(eslint-config-prettier@9.1.2(eslint@8.57.1))(eslint@8.57.1)(prettier@3.7.4) @@ -1495,7 +1495,7 @@ importers: version: 4.1.0(@babel/core@7.28.6) typescript: specifier: 'catalog:' - version: 5.8.3 + version: 5.9.3 webpack: specifier: 'catalog:' version: 5.104.1 @@ -1609,7 +1609,7 @@ importers: version: 4.1.0(@babel/core@7.28.6) typescript: specifier: 'catalog:' - version: 5.8.3 + version: 5.9.3 devDependencies: '@babel/core': specifier: 'catalog:' @@ -1655,10 +1655,10 @@ importers: version: 0.0.30 '@typescript-eslint/eslint-plugin': specifier: 'catalog:' - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': specifier: 'catalog:' - version: 7.18.0(eslint@8.57.1)(typescript@5.8.3) + version: 7.18.0(eslint@8.57.1)(typescript@5.9.3) babel-plugin-ember-template-compilation: specifier: 'catalog:' version: 2.4.1 @@ -1682,10 +1682,10 @@ importers: version: 9.1.2(eslint@8.57.1) eslint-plugin-ember: specifier: 'catalog:' - version: 12.7.5(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) + version: 12.7.5(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1) eslint-plugin-n: specifier: 'catalog:' - version: 17.23.2(eslint@8.57.1)(typescript@5.8.3) + version: 17.23.2(eslint@8.57.1)(typescript@5.9.3) eslint-plugin-prettier: specifier: 'catalog:' version: 5.5.4(@types/eslint@8.56.5)(eslint-config-prettier@9.1.2(eslint@8.57.1))(eslint@8.57.1)(prettier@3.7.4) @@ -1767,7 +1767,7 @@ importers: version: 1.1.2 '@glint/core': specifier: 1.3.0 - version: 1.3.0(typescript@5.8.3) + version: 1.3.0(typescript@5.9.3) '@glint/environment-ember-template-imports': specifier: 1.3.0 version: 1.3.0(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.3.0)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.1.0(ember-source@5.12.0(patch_hash=2586bd032e74105d65b7953ccaae1cd1d1175047a58ba89ec0057f1f8b7b7fe1)(@glimmer/component@2.0.0)(@glint/template@1.3.0)(rsvp@4.8.5))))(@glint/template@1.3.0) @@ -1788,10 +1788,10 @@ importers: version: 4.0.9 '@typescript-eslint/eslint-plugin': specifier: 'catalog:' - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': specifier: 'catalog:' - version: 7.18.0(eslint@8.57.1)(typescript@5.8.3) + version: 7.18.0(eslint@8.57.1)(typescript@5.9.3) broccoli-asset-rev: specifier: 'catalog:' version: 3.0.0 @@ -1908,10 +1908,10 @@ importers: version: 9.1.2(eslint@8.57.1) eslint-plugin-ember: specifier: 'catalog:' - version: 12.7.5(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) + version: 12.7.5(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1) eslint-plugin-n: specifier: 'catalog:' - version: 17.23.2(eslint@8.57.1)(typescript@5.8.3) + version: 17.23.2(eslint@8.57.1)(typescript@5.9.3) eslint-plugin-prettier: specifier: 'catalog:' version: 5.5.4(@types/eslint@8.56.5)(eslint-config-prettier@9.1.2(eslint@8.57.1))(eslint@8.57.1)(prettier@3.7.4) @@ -1938,7 +1938,7 @@ importers: version: 4.1.0(@babel/core@7.28.6) typescript: specifier: 'catalog:' - version: 5.8.3 + version: 5.9.3 webpack: specifier: 'catalog:' version: 5.104.1 @@ -1992,7 +1992,7 @@ importers: dependencies: ember-eslint-parser: specifier: ^0.5.9 - version: 0.5.9(patch_hash=0db1e9515cbf9f5b3d3c6509af8967c918c176106e534408441992dd448f2545)(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) + version: 0.5.9(patch_hash=0db1e9515cbf9f5b3d3c6509af8967c918c176106e534408441992dd448f2545)(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1) requireindex: specifier: 'catalog:' version: 1.2.0 @@ -2011,16 +2011,16 @@ importers: version: 8.57.1 '@typescript-eslint/eslint-plugin': specifier: 'catalog:' - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': specifier: 'catalog:' - version: 7.18.0(eslint@8.57.1)(typescript@5.8.3) + version: 7.18.0(eslint@8.57.1)(typescript@5.9.3) eslint: specifier: 'catalog:' version: 8.57.1 eslint-doc-generator: specifier: 'catalog:' - version: 1.7.1(eslint@8.57.1)(typescript@5.8.3) + version: 1.7.1(eslint@8.57.1)(typescript@5.9.3) eslint-plugin-eslint-comments: specifier: 'catalog:' version: 3.2.0(eslint@8.57.1) @@ -2032,13 +2032,13 @@ importers: version: 1.3.2(eslint@8.57.1) eslint-plugin-import: specifier: 'catalog:' - version: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) + version: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1) eslint-plugin-markdown: specifier: 'catalog:' version: 5.1.0(eslint@8.57.1) eslint-plugin-n: specifier: 'catalog:' - version: 17.23.2(eslint@8.57.1)(typescript@5.8.3) + version: 17.23.2(eslint@8.57.1)(typescript@5.9.3) eslint-plugin-prettier: specifier: 'catalog:' version: 5.5.4(@types/eslint@8.56.5)(eslint-config-prettier@9.1.2(eslint@8.57.1))(eslint@8.57.1)(prettier@3.7.4) @@ -2050,7 +2050,7 @@ importers: version: 3.7.4 typescript: specifier: 'catalog:' - version: 5.8.3 + version: 5.9.3 vite: specifier: 'catalog:' version: 6.4.1(@types/node@25.0.8)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) @@ -2192,7 +2192,7 @@ importers: version: 1.1.2 '@glint/core': specifier: 1.3.0 - version: 1.3.0(typescript@5.8.3) + version: 1.3.0(typescript@5.9.3) '@glint/environment-ember-loose': specifier: 'catalog:' version: 1.5.2(@glimmer/component@2.0.0)(@glint/template@1.3.0)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.1.0(ember-source@5.12.0(patch_hash=2586bd032e74105d65b7953ccaae1cd1d1175047a58ba89ec0057f1f8b7b7fe1)(@glimmer/component@2.0.0)(@glint/template@1.3.0)(rsvp@4.8.5)(webpack@5.104.1))) @@ -2204,7 +2204,7 @@ importers: version: 1.3.0 '@percy/cli': specifier: 'catalog:' - version: 1.31.7(typescript@5.8.3) + version: 1.31.7(typescript@5.9.3) '@percy/ember': specifier: 'catalog:' version: 5.0.0(@babel/core@7.28.6)(@glint/template@1.3.0)(webpack@5.104.1) @@ -2261,10 +2261,10 @@ importers: version: 9.0.8 '@typescript-eslint/eslint-plugin': specifier: 'catalog:' - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': specifier: 'catalog:' - version: 7.18.0(eslint@8.57.1)(typescript@5.8.3) + version: 7.18.0(eslint@8.57.1)(typescript@5.9.3) '@universal-ember/test-support': specifier: 'catalog:' version: 0.5.1(@babel/core@7.28.6)(@glint/template@1.3.0)(ember-source@5.12.0(patch_hash=2586bd032e74105d65b7953ccaae1cd1d1175047a58ba89ec0057f1f8b7b7fe1)(@glimmer/component@2.0.0)(@glint/template@1.3.0)(rsvp@4.8.5)(webpack@5.104.1))(qunit@2.25.0) @@ -2456,13 +2456,13 @@ importers: version: link:../eslint-plugin-cardstack-host eslint-plugin-ember: specifier: 'catalog:' - version: 12.7.5(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) + version: 12.7.5(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1) eslint-plugin-import: specifier: 'catalog:' - version: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) + version: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1) eslint-plugin-n: specifier: 'catalog:' - version: 17.23.2(eslint@8.57.1)(typescript@5.8.3) + version: 17.23.2(eslint@8.57.1)(typescript@5.9.3) eslint-plugin-prettier: specifier: 'catalog:' version: 5.5.4(@types/eslint@8.56.5)(eslint-config-prettier@9.1.2(eslint@8.57.1))(eslint@8.57.1)(prettier@3.7.4) @@ -2579,7 +2579,7 @@ importers: version: 4.1.0(@babel/core@7.28.6) typescript: specifier: 'catalog:' - version: 5.8.3 + version: 5.9.3 uuid: specifier: 'catalog:' version: 9.0.1 @@ -2648,10 +2648,10 @@ importers: version: 0.2.5 ts-node: specifier: ^10.9.1 - version: 10.9.2(@types/node@24.10.8)(typescript@5.8.3) + version: 10.9.2(@types/node@24.10.8)(typescript@5.9.3) typescript: specifier: 'catalog:' - version: 5.8.3 + version: 5.9.3 uuid: specifier: 'catalog:' version: 9.0.1 @@ -2681,7 +2681,7 @@ importers: version: 8.16.3 ts-node: specifier: ^10.9.1 - version: 10.9.2(@types/node@25.0.8)(typescript@5.8.3) + version: 10.9.2(@types/node@25.0.8)(typescript@5.9.3) devDependencies: '@cardstack/local-types': specifier: workspace:* @@ -2697,7 +2697,7 @@ importers: dependencies: puppeteer: specifier: ^24.8.2 - version: 24.35.0(typescript@5.8.3) + version: 24.35.0(typescript@5.9.3) devDependencies: '@aws-crypto/sha256-js': specifier: 'catalog:' @@ -2827,7 +2827,7 @@ importers: version: 2.3.1(@babel/core@7.28.6) ember-eslint-parser: specifier: 0.5.9 - version: 0.5.9(patch_hash=0db1e9515cbf9f5b3d3c6509af8967c918c176106e534408441992dd448f2545)(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) + version: 0.5.9(patch_hash=0db1e9515cbf9f5b3d3c6509af8967c918c176106e534408441992dd448f2545)(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1) eslint-plugin-qunit: specifier: 'catalog:' version: 8.2.5(eslint@8.57.1) @@ -2920,10 +2920,10 @@ importers: version: 0.2.5 ts-node: specifier: ^10.9.1 - version: 10.9.2(@types/node@24.10.8)(typescript@5.8.3) + version: 10.9.2(@types/node@24.10.8)(typescript@5.9.3) typescript: specifier: 'catalog:' - version: 5.8.3 + version: 5.9.3 typescript-memoize: specifier: 'catalog:' version: 1.1.1 @@ -3052,7 +3052,7 @@ importers: version: link:../../vendor/ember-concurrency-async-plugin ember-eslint-parser: specifier: 0.5.9 - version: 0.5.9(patch_hash=0db1e9515cbf9f5b3d3c6509af8967c918c176106e534408441992dd448f2545)(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) + version: 0.5.9(patch_hash=0db1e9515cbf9f5b3d3c6509af8967c918c176106e534408441992dd448f2545)(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1) ember-source: specifier: 'catalog:' version: 5.12.0(patch_hash=2586bd032e74105d65b7953ccaae1cd1d1175047a58ba89ec0057f1f8b7b7fe1)(@glimmer/component@2.0.0)(@glint/template@1.3.0)(rsvp@4.8.5)(webpack@5.104.1) @@ -3143,7 +3143,7 @@ importers: version: 7.28.6(supports-color@8.1.1) '@glint/core': specifier: 1.3.0 - version: 1.3.0(typescript@5.8.3) + version: 1.3.0(typescript@5.9.3) '@glint/environment-ember-loose': specifier: 'catalog:' version: 1.5.2(@glimmer/component@2.0.0)(@glint/template@1.3.0)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.1.0(ember-source@5.12.0(patch_hash=2586bd032e74105d65b7953ccaae1cd1d1175047a58ba89ec0057f1f8b7b7fe1)(@glimmer/component@2.0.0)(@glint/template@1.3.0)(rsvp@4.8.5)(webpack@5.104.1))) @@ -3212,7 +3212,7 @@ importers: version: link:../runtime-common '@glint/core': specifier: ^1.3.0 - version: 1.3.0(typescript@5.8.3) + version: 1.3.0(typescript@5.9.3) '@glint/environment-ember-loose': specifier: 'catalog:' version: 1.5.2(@glimmer/component@2.0.0)(@glint/template@1.3.0)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.1.0(ember-source@5.12.0(patch_hash=2586bd032e74105d65b7953ccaae1cd1d1175047a58ba89ec0057f1f8b7b7fe1)(@glimmer/component@2.0.0)(@glint/template@1.3.0)(rsvp@4.8.5)(webpack@5.104.1))) @@ -3230,10 +3230,10 @@ importers: version: 1.108.1 '@typescript-eslint/eslint-plugin': specifier: 'catalog:' - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': specifier: 'catalog:' - version: 7.18.0(eslint@8.57.1)(typescript@5.8.3) + version: 7.18.0(eslint@8.57.1)(typescript@5.9.3) '@vscode/vsce': specifier: 'catalog:' version: 3.7.1 @@ -3248,7 +3248,7 @@ importers: version: 8.57.1 typescript: specifier: 'catalog:' - version: 5.8.3 + version: 5.9.3 packages/workspace-sync-cli: devDependencies: @@ -3278,13 +3278,13 @@ importers: version: 2.25.0 ts-node: specifier: ^10.9.1 - version: 10.9.2(@types/node@24.10.8)(typescript@5.8.3) + version: 10.9.2(@types/node@24.10.8)(typescript@5.9.3) tsx: specifier: ^4.0.0 version: 4.21.0 typescript: specifier: 'catalog:' - version: 5.8.3 + version: 5.9.3 vendor/ember-concurrency-async-plugin: dependencies: @@ -13556,8 +13556,8 @@ packages: typescript-memoize@1.1.1: resolution: {integrity: sha512-GQ90TcKpIH4XxYTI2F98yEQYZgjNMOGPpOgdjIBhaLaWji5HPWlRnZ4AeA1hfBxtY7bCGDJsqDDHk/KaHOl5bA==} - typescript@5.8.3: - resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} hasBin: true @@ -16225,13 +16225,13 @@ snapshots: dependencies: '@glimmer/interfaces': 0.94.6 - '@glint/core@1.3.0(typescript@5.8.3)': + '@glint/core@1.3.0(typescript@5.9.3)': dependencies: '@glimmer/syntax': 0.84.3 escape-string-regexp: 4.0.0 semver: 7.7.3 silent-error: 1.1.1 - typescript: 5.8.3 + typescript: 5.9.3 uuid: 8.3.2 vscode-languageserver: 8.1.0 vscode-languageserver-textdocument: 1.0.12 @@ -16832,29 +16832,29 @@ snapshots: dependencies: '@noble/hashes': 1.8.0 - '@percy/cli-app@1.31.7(typescript@5.8.3)': + '@percy/cli-app@1.31.7(typescript@5.9.3)': dependencies: - '@percy/cli-command': 1.31.7(typescript@5.8.3) - '@percy/cli-exec': 1.31.7(typescript@5.8.3) + '@percy/cli-command': 1.31.7(typescript@5.9.3) + '@percy/cli-exec': 1.31.7(typescript@5.9.3) transitivePeerDependencies: - bufferutil - supports-color - typescript - utf-8-validate - '@percy/cli-build@1.31.7(typescript@5.8.3)': + '@percy/cli-build@1.31.7(typescript@5.9.3)': dependencies: - '@percy/cli-command': 1.31.7(typescript@5.8.3) + '@percy/cli-command': 1.31.7(typescript@5.9.3) transitivePeerDependencies: - bufferutil - supports-color - typescript - utf-8-validate - '@percy/cli-command@1.31.7(typescript@5.8.3)': + '@percy/cli-command@1.31.7(typescript@5.9.3)': dependencies: - '@percy/config': 1.31.7(typescript@5.8.3) - '@percy/core': 1.31.7(typescript@5.8.3) + '@percy/config': 1.31.7(typescript@5.9.3) + '@percy/core': 1.31.7(typescript@5.9.3) '@percy/logger': 1.31.7 transitivePeerDependencies: - bufferutil @@ -16862,18 +16862,18 @@ snapshots: - typescript - utf-8-validate - '@percy/cli-config@1.31.7(typescript@5.8.3)': + '@percy/cli-config@1.31.7(typescript@5.9.3)': dependencies: - '@percy/cli-command': 1.31.7(typescript@5.8.3) + '@percy/cli-command': 1.31.7(typescript@5.9.3) transitivePeerDependencies: - bufferutil - supports-color - typescript - utf-8-validate - '@percy/cli-exec@1.31.7(typescript@5.8.3)': + '@percy/cli-exec@1.31.7(typescript@5.9.3)': dependencies: - '@percy/cli-command': 1.31.7(typescript@5.8.3) + '@percy/cli-command': 1.31.7(typescript@5.9.3) '@percy/logger': 1.31.7 cross-spawn: 7.0.6 which: 2.0.2 @@ -16883,9 +16883,9 @@ snapshots: - typescript - utf-8-validate - '@percy/cli-snapshot@1.31.7(typescript@5.8.3)': + '@percy/cli-snapshot@1.31.7(typescript@5.9.3)': dependencies: - '@percy/cli-command': 1.31.7(typescript@5.8.3) + '@percy/cli-command': 1.31.7(typescript@5.9.3) yaml: 2.8.2 transitivePeerDependencies: - bufferutil @@ -16893,9 +16893,9 @@ snapshots: - typescript - utf-8-validate - '@percy/cli-upload@1.31.7(typescript@5.8.3)': + '@percy/cli-upload@1.31.7(typescript@5.9.3)': dependencies: - '@percy/cli-command': 1.31.7(typescript@5.8.3) + '@percy/cli-command': 1.31.7(typescript@5.9.3) fast-glob: 3.3.3 image-size: 1.2.1 transitivePeerDependencies: @@ -16904,16 +16904,16 @@ snapshots: - typescript - utf-8-validate - '@percy/cli@1.31.7(typescript@5.8.3)': + '@percy/cli@1.31.7(typescript@5.9.3)': dependencies: - '@percy/cli-app': 1.31.7(typescript@5.8.3) - '@percy/cli-build': 1.31.7(typescript@5.8.3) - '@percy/cli-command': 1.31.7(typescript@5.8.3) - '@percy/cli-config': 1.31.7(typescript@5.8.3) - '@percy/cli-exec': 1.31.7(typescript@5.8.3) - '@percy/cli-snapshot': 1.31.7(typescript@5.8.3) - '@percy/cli-upload': 1.31.7(typescript@5.8.3) - '@percy/client': 1.31.7(typescript@5.8.3) + '@percy/cli-app': 1.31.7(typescript@5.9.3) + '@percy/cli-build': 1.31.7(typescript@5.9.3) + '@percy/cli-command': 1.31.7(typescript@5.9.3) + '@percy/cli-config': 1.31.7(typescript@5.9.3) + '@percy/cli-exec': 1.31.7(typescript@5.9.3) + '@percy/cli-snapshot': 1.31.7(typescript@5.9.3) + '@percy/cli-upload': 1.31.7(typescript@5.9.3) + '@percy/client': 1.31.7(typescript@5.9.3) '@percy/logger': 1.31.7 transitivePeerDependencies: - bufferutil @@ -16921,9 +16921,9 @@ snapshots: - typescript - utf-8-validate - '@percy/client@1.31.7(typescript@5.8.3)': + '@percy/client@1.31.7(typescript@5.9.3)': dependencies: - '@percy/config': 1.31.7(typescript@5.8.3) + '@percy/config': 1.31.7(typescript@5.9.3) '@percy/env': 1.31.7 '@percy/logger': 1.31.7 pac-proxy-agent: 7.2.0 @@ -16932,23 +16932,23 @@ snapshots: - supports-color - typescript - '@percy/config@1.31.7(typescript@5.8.3)': + '@percy/config@1.31.7(typescript@5.9.3)': dependencies: '@percy/logger': 1.31.7 ajv: 8.17.1 - cosmiconfig: 8.3.6(typescript@5.8.3) + cosmiconfig: 8.3.6(typescript@5.9.3) yaml: 2.8.2 transitivePeerDependencies: - typescript - '@percy/core@1.31.7(typescript@5.8.3)': + '@percy/core@1.31.7(typescript@5.9.3)': dependencies: - '@percy/client': 1.31.7(typescript@5.8.3) - '@percy/config': 1.31.7(typescript@5.8.3) + '@percy/client': 1.31.7(typescript@5.9.3) + '@percy/config': 1.31.7(typescript@5.9.3) '@percy/dom': 1.31.7 '@percy/logger': 1.31.7 - '@percy/monitoring': 1.31.7(typescript@5.8.3) - '@percy/webdriver-utils': 1.31.7(typescript@5.8.3) + '@percy/monitoring': 1.31.7(typescript@5.9.3) + '@percy/webdriver-utils': 1.31.7(typescript@5.9.3) content-disposition: 0.5.4 cross-spawn: 7.0.6 extract-zip: 2.0.1 @@ -16985,9 +16985,9 @@ snapshots: '@percy/logger@1.31.7': {} - '@percy/monitoring@1.31.7(typescript@5.8.3)': + '@percy/monitoring@1.31.7(typescript@5.9.3)': dependencies: - '@percy/config': 1.31.7(typescript@5.8.3) + '@percy/config': 1.31.7(typescript@5.9.3) '@percy/logger': 1.31.7 '@percy/sdk-utils': 1.31.7 systeminformation: 5.30.3 @@ -17001,9 +17001,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@percy/webdriver-utils@1.31.7(typescript@5.8.3)': + '@percy/webdriver-utils@1.31.7(typescript@5.9.3)': dependencies: - '@percy/config': 1.31.7(typescript@5.8.3) + '@percy/config': 1.31.7(typescript@5.9.3) '@percy/sdk-utils': 1.31.7 transitivePeerDependencies: - supports-color @@ -17805,42 +17805,42 @@ snapshots: '@types/node': 25.0.8 optional: true - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/visitor-keys': 7.18.0 eslint: 8.57.1 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.8.3) + ts-api-utils: 1.4.3(typescript@5.9.3) optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/experimental-utils@5.62.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/experimental-utils@5.62.0(eslint@8.57.1)(typescript@5.9.3)': dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.9.3) eslint: 8.57.1 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3) '@typescript-eslint/visitor-keys': 7.18.0 debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1 optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -17854,15 +17854,15 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.9.3)': dependencies: - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.9.3) debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1 - ts-api-utils: 1.4.3(typescript@5.8.3) + ts-api-utils: 1.4.3(typescript@5.9.3) optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -17870,7 +17870,7 @@ snapshots: '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@5.62.0(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 @@ -17878,13 +17878,13 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 semver: 7.7.3 - tsutils: 3.21.0(typescript@5.8.3) + tsutils: 3.21.0(typescript@5.9.3) optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 @@ -17893,20 +17893,20 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.3 - ts-api-utils: 1.4.3(typescript@5.8.3) + ts-api-utils: 1.4.3(typescript@5.9.3) optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@5.62.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/utils@5.62.0(eslint@8.57.1)(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) '@types/json-schema': 7.0.15 '@types/semver': 7.7.1 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3) eslint: 8.57.1 eslint-scope: 5.1.1 semver: 7.7.3 @@ -17914,12 +17914,12 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3) eslint: 8.57.1 transitivePeerDependencies: - supports-color @@ -19781,23 +19781,23 @@ snapshots: corser@2.0.1: {} - cosmiconfig@8.3.6(typescript@5.8.3): + cosmiconfig@8.3.6(typescript@5.9.3): dependencies: import-fresh: 3.3.1 js-yaml: 4.1.1 parse-json: 5.2.0 path-type: 4.0.0 optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 - cosmiconfig@9.0.0(typescript@5.8.3): + cosmiconfig@9.0.0(typescript@5.9.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 js-yaml: 4.1.1 parse-json: 5.2.0 optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 countries-list@3.2.2: {} @@ -21186,7 +21186,7 @@ snapshots: - ember-source - supports-color - ember-eslint-parser@0.5.9(patch_hash=0db1e9515cbf9f5b3d3c6509af8967c918c176106e534408441992dd448f2545)(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1): + ember-eslint-parser@0.5.9(patch_hash=0db1e9515cbf9f5b3d3c6509af8967c918c176106e534408441992dd448f2545)(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1): dependencies: '@babel/core': 7.28.6(supports-color@8.1.1) '@babel/eslint-parser': 7.28.6(@babel/core@7.28.6)(eslint@8.57.1) @@ -21197,7 +21197,7 @@ snapshots: mathml-tag-names: 2.1.3 svg-tags: 1.0.0 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.9.3) transitivePeerDependencies: - eslint @@ -22068,13 +22068,13 @@ snapshots: dependencies: eslint: 8.57.1 - eslint-doc-generator@1.7.1(eslint@8.57.1)(typescript@5.8.3): + eslint-doc-generator@1.7.1(eslint@8.57.1)(typescript@5.9.3): dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.9.3) ajv: 8.17.1 boolean: 3.2.0 commander: 10.0.1 - cosmiconfig: 8.3.6(typescript@5.8.3) + cosmiconfig: 8.3.6(typescript@5.9.3) deepmerge: 4.3.1 dot-prop: 7.2.0 eslint: 8.57.1 @@ -22095,21 +22095,21 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): + eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.9.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-ember@12.7.5(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1): + eslint-plugin-ember@12.7.5(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1): dependencies: '@ember-data/rfc395-data': 0.0.4 css-tree: 3.1.0 - ember-eslint-parser: 0.5.9(patch_hash=0db1e9515cbf9f5b3d3c6509af8967c918c176106e534408441992dd448f2545)(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) + ember-eslint-parser: 0.5.9(patch_hash=0db1e9515cbf9f5b3d3c6509af8967c918c176106e534408441992dd448f2545)(@babel/core@7.28.6)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1) ember-rfc176-data: 0.3.18 eslint: 8.57.1 eslint-utils: 3.0.0(eslint@8.57.1) @@ -22119,7 +22119,7 @@ snapshots: requireindex: 1.2.0 snake-case: 3.0.4 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.9.3) transitivePeerDependencies: - '@babel/core' @@ -22150,7 +22150,7 @@ snapshots: lodash.snakecase: 4.1.1 lodash.upperfirst: 4.3.1 - eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -22161,7 +22161,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -22173,7 +22173,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -22186,7 +22186,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-n@17.23.2(eslint@8.57.1)(typescript@5.8.3): + eslint-plugin-n@17.23.2(eslint@8.57.1)(typescript@5.9.3): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) enhanced-resolve: 5.18.4 @@ -22197,7 +22197,7 @@ snapshots: globrex: 0.1.2 ignore: 5.3.2 semver: 7.7.3 - ts-declaration-location: 1.0.7(typescript@5.8.3) + ts-declaration-location: 1.0.7(typescript@5.9.3) transitivePeerDependencies: - typescript @@ -22230,14 +22230,14 @@ snapshots: dependencies: eslint: 8.57.1 - eslint-plugin-typescript-sort-keys@3.3.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3): + eslint-plugin-typescript-sort-keys@3.3.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3): dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.9.3) eslint: 8.57.1 json-schema: 0.4.0 natural-compare-lite: 1.4.0 - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -25572,11 +25572,11 @@ snapshots: - supports-color - utf-8-validate - puppeteer@24.35.0(typescript@5.8.3): + puppeteer@24.35.0(typescript@5.9.3): dependencies: '@puppeteer/browsers': 2.11.1 chromium-bidi: 12.0.1(devtools-protocol@0.0.1534754) - cosmiconfig: 9.0.0(typescript@5.8.3) + cosmiconfig: 9.0.0(typescript@5.9.3) devtools-protocol: 0.0.1534754 puppeteer-core: 24.35.0 typed-query-selector: 2.12.0 @@ -27167,16 +27167,16 @@ snapshots: trim-newlines@4.1.1: {} - ts-api-utils@1.4.3(typescript@5.8.3): + ts-api-utils@1.4.3(typescript@5.9.3): dependencies: - typescript: 5.8.3 + typescript: 5.9.3 - ts-declaration-location@1.0.7(typescript@5.8.3): + ts-declaration-location@1.0.7(typescript@5.9.3): dependencies: picomatch: 4.0.3 - typescript: 5.8.3 + typescript: 5.9.3 - ts-node@10.9.2(@types/node@24.10.8)(typescript@5.8.3): + ts-node@10.9.2(@types/node@24.10.8)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 @@ -27190,11 +27190,11 @@ snapshots: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.8.3 + typescript: 5.9.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - ts-node@10.9.2(@types/node@25.0.8)(typescript@5.8.3): + ts-node@10.9.2(@types/node@25.0.8)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 @@ -27208,7 +27208,7 @@ snapshots: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.8.3 + typescript: 5.9.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 @@ -27229,10 +27229,10 @@ snapshots: tsscmp@1.0.6: {} - tsutils@3.21.0(typescript@5.8.3): + tsutils@3.21.0(typescript@5.9.3): dependencies: tslib: 1.14.1 - typescript: 5.8.3 + typescript: 5.9.3 tsx@4.21.0: dependencies: @@ -27330,7 +27330,7 @@ snapshots: typescript-memoize@1.1.1: {} - typescript@5.8.3: {} + typescript@5.9.3: {} uc.micro@1.0.6: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 428093df1e..1b30464f05 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -227,7 +227,7 @@ catalog: testem-multi-reporter: ^1.2.0 tmp: ^0.2.1 tracked-built-ins: ^4.0.0 - typescript: ~5.8.3 + typescript: ~5.9.3 typescript-memoize: ^1.1.1 uuid: ^9.0.1 validate-peer-dependencies: ^1.1.0 From a20e10feb883ddf2e3c7ea161659305653b958c2 Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Wed, 18 Feb 2026 09:19:43 -0600 Subject: [PATCH 02/13] Fix BodyInit type errors for TypeScript 5.9 TS 5.9 made typed arrays generic (Uint8Array), which broke assignability to the BodyInit type. Add explicit casts in the two affected locations since Uint8Array and Buffer are valid body types at runtime. Co-Authored-By: Claude Opus 4.6 --- packages/realm-server/middleware/index.ts | 2 +- packages/runtime-common/realm.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/realm-server/middleware/index.ts b/packages/realm-server/middleware/index.ts index d5da105e54..f8dd294f9a 100644 --- a/packages/realm-server/middleware/index.ts +++ b/packages/realm-server/middleware/index.ts @@ -130,7 +130,7 @@ export async function fetchRequestFromContext( return new Request(url, { method: ctxt.method, headers: ctxt.req.headers as { [name: string]: string }, - ...(reqBody !== undefined ? { body: reqBody } : {}), + ...(reqBody !== undefined ? { body: reqBody as BodyInit } : {}), }); } diff --git a/packages/runtime-common/realm.ts b/packages/runtime-common/realm.ts index bf448e3919..e2536c476c 100644 --- a/packages/runtime-common/realm.ts +++ b/packages/runtime-common/realm.ts @@ -1868,7 +1868,7 @@ export class Realm { typeof ref.content === 'string' ) { return createResponse({ - body: ref.content, + body: ref.content as BodyInit, init: { headers }, requestContext, }); From 041dc8308a1a6967c08d81bc464c486b149db10f Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Wed, 18 Feb 2026 09:35:59 -0600 Subject: [PATCH 03/13] Fix Uint8Array to BlobPart type error for TypeScript 5.9 TS 5.9 made Uint8Array generic over its buffer type, breaking assignability to BlobPart. Add explicit cast since Uint8Array is a valid BlobPart at runtime. Co-Authored-By: Claude Opus 4.6 --- packages/catalog-realm/commands/upload-image.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/catalog-realm/commands/upload-image.ts b/packages/catalog-realm/commands/upload-image.ts index 0799fbabd6..31be30dc0a 100644 --- a/packages/catalog-realm/commands/upload-image.ts +++ b/packages/catalog-realm/commands/upload-image.ts @@ -298,7 +298,7 @@ export default class UploadImageCommand extends Command< } } - const blob = new Blob([byteArray], { type: mimeType }); + const blob = new Blob([byteArray as BlobPart], { type: mimeType }); if (providedFileName) { providedFileName = providedFileName.replace(/^"(.*)"$/, '$1'); try { From 7306f697995c4ba0aa509cf03cab382e93e6b2de Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Wed, 18 Feb 2026 11:06:43 -0600 Subject: [PATCH 04/13] Add empty commit From 695eb6fcd71ddbd23e762d5dc9a8447f51a6c0da Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Thu, 19 Feb 2026 11:36:37 -0600 Subject: [PATCH 05/13] prerender: Add fix for homepage cards query --- packages/host/app/resources/search.ts | 8 +++++++- packages/host/app/services/store.ts | 5 ++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/host/app/resources/search.ts b/packages/host/app/resources/search.ts index dba75ada5d..db8c73d210 100644 --- a/packages/host/app/resources/search.ts +++ b/packages/host/app/resources/search.ts @@ -40,6 +40,7 @@ export interface Args { isAutoSaved?: boolean; storeService?: StoreService; doWhileRefreshing?: (() => void) | undefined; + onLoad?: (load: Promise) => void; seed?: | { cards: T[]; @@ -94,7 +95,8 @@ export class SearchResource< } modify(_positional: never[], named: Args['named']) { - let { query, realms, isLive, doWhileRefreshing, seed, owner } = named; + let { query, realms, isLive, doWhileRefreshing, onLoad, seed, owner } = + named; setOwner(this, owner); // works around problem where lifetime parent is used as owner when they should be allowed to differ @@ -116,6 +118,7 @@ export class SearchResource< ); if (seed && !this.#seedApplied) { this.loaded = this.applySeed.perform(seed); + onLoad?.(this.loaded); this.#seedApplied = true; let hasQueryErrors = seed.queryErrors && seed.queryErrors.length > 0; if (seed.searchURL && !hasQueryErrors) { @@ -188,6 +191,7 @@ export class SearchResource< this.#previousQuery = query; this.#previousQueryString = queryString; this.loaded = this.search.perform(query); + onLoad?.(this.loaded); } get isLoading() { return this.search.isRunning; @@ -320,6 +324,7 @@ export function getSearch( opts?: { isLive?: boolean; doWhileRefreshing?: (() => void) | undefined; + onLoad?: (load: Promise) => void; seed?: | { cards: T[]; @@ -343,6 +348,7 @@ export function getSearch( isLive: opts?.isLive != null ? opts.isLive : false, // TODO refactor this out doWhileRefreshing: opts?.doWhileRefreshing, + onLoad: opts?.onLoad, seed: opts?.seed, owner, }, diff --git a/packages/host/app/services/store.ts b/packages/host/app/services/store.ts index 161bae71bd..d1babc6d21 100644 --- a/packages/host/app/services/store.ts +++ b/packages/host/app/services/store.ts @@ -772,7 +772,10 @@ export default class StoreService extends Service implements StoreInterface { getOwner(this)!, getQuery, getRealms, - opts, + { + ...opts, + onLoad: (load: Promise) => this.store.trackLoad(load), + }, ) as unknown as SearchResource; } From d74d1fda632f0b00599189875ab42271e95e1da6 Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Thu, 19 Feb 2026 11:49:13 -0600 Subject: [PATCH 06/13] Add prerendering test for linksToMany queries --- .../server-endpoints/index-responses-test.ts | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/packages/realm-server/tests/server-endpoints/index-responses-test.ts b/packages/realm-server/tests/server-endpoints/index-responses-test.ts index f8e4a0f9f5..1b296110b3 100644 --- a/packages/realm-server/tests/server-endpoints/index-responses-test.ts +++ b/packages/realm-server/tests/server-endpoints/index-responses-test.ts @@ -285,6 +285,90 @@ module(`server-endpoints/${basename(__filename)}`, function () { }, }, ); + + // Cards for testing that linksToMany query field search results + // are present in prerendered isolated HTML (i.e. store.loaded() + // waits for SearchResource tasks to settle). + writeFileSync( + join(context.testRealmDir, 'sample-item.gts'), + ` + import { contains, field, Component, CardDef } from 'https://cardstack.com/base/card-api'; + import StringField from 'https://cardstack.com/base/string'; + + export class SampleItem extends CardDef { + @field itemTitle = contains(StringField); + static embedded = class Embedded extends Component { + + }; + } + `, + ); + + writeFileSync( + join(context.testRealmDir, 'query-grid.gts'), + ` + import { field, linksToMany, Component, CardDef } from 'https://cardstack.com/base/card-api'; + import { SampleItem } from './sample-item.gts'; + + export class QueryGrid extends CardDef { + @field samples = linksToMany(() => SampleItem, { + query: { + page: { size: 10, number: 0 }, + }, + }); + static isolated = class Isolated extends Component { + + }; + } + `, + ); + + writeJSONSync(join(context.testRealmDir, 'sample-item-1.json'), { + data: { + type: 'card', + attributes: { itemTitle: 'Alpha Item' }, + meta: { + adoptsFrom: { + module: './sample-item.gts', + name: 'SampleItem', + }, + }, + }, + }); + + writeJSONSync(join(context.testRealmDir, 'sample-item-2.json'), { + data: { + type: 'card', + attributes: { itemTitle: 'Beta Item' }, + meta: { + adoptsFrom: { + module: './sample-item.gts', + name: 'SampleItem', + }, + }, + }, + }); + + writeJSONSync(join(context.testRealmDir, 'query-grid-1.json'), { + data: { + type: 'card', + attributes: {}, + meta: { + adoptsFrom: { + module: './query-grid.gts', + name: 'QueryGrid', + }, + }, + }, + }); }, }); @@ -325,6 +409,26 @@ module(`server-endpoints/${basename(__filename)}`, function () { ); }); + test('serves isolated HTML with linksToMany query field search results', async function (assert) { + let response = await context.request2 + .get('/test/query-grid-1') + .set('Accept', 'text/html'); + + assert.strictEqual(response.status, 200, 'serves HTML response'); + assert.ok( + response.text.includes('data-test-query-grid'), + 'query grid isolated HTML is present in the response', + ); + assert.ok( + response.text.includes('Alpha Item'), + 'first search result from linksToMany query is present in the isolated HTML', + ); + assert.ok( + response.text.includes('Beta Item'), + 'second search result from linksToMany query is present in the isolated HTML', + ); + }); + test('HTML response does not include boxel-ready class on body', async function (assert) { let response = await context.request2 .get('/test/isolated-test') From 0ce65f3b1a8ce0b6f1668adfa97ad5791470b7a1 Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Thu, 19 Feb 2026 12:08:10 -0600 Subject: [PATCH 07/13] Remove fixes for now --- packages/host/app/resources/search.ts | 8 +------- packages/host/app/services/store.ts | 5 +---- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/packages/host/app/resources/search.ts b/packages/host/app/resources/search.ts index db8c73d210..dba75ada5d 100644 --- a/packages/host/app/resources/search.ts +++ b/packages/host/app/resources/search.ts @@ -40,7 +40,6 @@ export interface Args { isAutoSaved?: boolean; storeService?: StoreService; doWhileRefreshing?: (() => void) | undefined; - onLoad?: (load: Promise) => void; seed?: | { cards: T[]; @@ -95,8 +94,7 @@ export class SearchResource< } modify(_positional: never[], named: Args['named']) { - let { query, realms, isLive, doWhileRefreshing, onLoad, seed, owner } = - named; + let { query, realms, isLive, doWhileRefreshing, seed, owner } = named; setOwner(this, owner); // works around problem where lifetime parent is used as owner when they should be allowed to differ @@ -118,7 +116,6 @@ export class SearchResource< ); if (seed && !this.#seedApplied) { this.loaded = this.applySeed.perform(seed); - onLoad?.(this.loaded); this.#seedApplied = true; let hasQueryErrors = seed.queryErrors && seed.queryErrors.length > 0; if (seed.searchURL && !hasQueryErrors) { @@ -191,7 +188,6 @@ export class SearchResource< this.#previousQuery = query; this.#previousQueryString = queryString; this.loaded = this.search.perform(query); - onLoad?.(this.loaded); } get isLoading() { return this.search.isRunning; @@ -324,7 +320,6 @@ export function getSearch( opts?: { isLive?: boolean; doWhileRefreshing?: (() => void) | undefined; - onLoad?: (load: Promise) => void; seed?: | { cards: T[]; @@ -348,7 +343,6 @@ export function getSearch( isLive: opts?.isLive != null ? opts.isLive : false, // TODO refactor this out doWhileRefreshing: opts?.doWhileRefreshing, - onLoad: opts?.onLoad, seed: opts?.seed, owner, }, diff --git a/packages/host/app/services/store.ts b/packages/host/app/services/store.ts index d1babc6d21..161bae71bd 100644 --- a/packages/host/app/services/store.ts +++ b/packages/host/app/services/store.ts @@ -772,10 +772,7 @@ export default class StoreService extends Service implements StoreInterface { getOwner(this)!, getQuery, getRealms, - { - ...opts, - onLoad: (load: Promise) => this.store.trackLoad(load), - }, + opts, ) as unknown as SearchResource; } From 8b461844e306676c53dafc5c5e67948d0ae6a990 Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Thu, 19 Feb 2026 12:26:30 -0600 Subject: [PATCH 08/13] Revert "Remove fixes for now" This reverts commit 0ce65f3b1a8ce0b6f1668adfa97ad5791470b7a1. --- packages/host/app/resources/search.ts | 8 +++++++- packages/host/app/services/store.ts | 5 ++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/host/app/resources/search.ts b/packages/host/app/resources/search.ts index dba75ada5d..db8c73d210 100644 --- a/packages/host/app/resources/search.ts +++ b/packages/host/app/resources/search.ts @@ -40,6 +40,7 @@ export interface Args { isAutoSaved?: boolean; storeService?: StoreService; doWhileRefreshing?: (() => void) | undefined; + onLoad?: (load: Promise) => void; seed?: | { cards: T[]; @@ -94,7 +95,8 @@ export class SearchResource< } modify(_positional: never[], named: Args['named']) { - let { query, realms, isLive, doWhileRefreshing, seed, owner } = named; + let { query, realms, isLive, doWhileRefreshing, onLoad, seed, owner } = + named; setOwner(this, owner); // works around problem where lifetime parent is used as owner when they should be allowed to differ @@ -116,6 +118,7 @@ export class SearchResource< ); if (seed && !this.#seedApplied) { this.loaded = this.applySeed.perform(seed); + onLoad?.(this.loaded); this.#seedApplied = true; let hasQueryErrors = seed.queryErrors && seed.queryErrors.length > 0; if (seed.searchURL && !hasQueryErrors) { @@ -188,6 +191,7 @@ export class SearchResource< this.#previousQuery = query; this.#previousQueryString = queryString; this.loaded = this.search.perform(query); + onLoad?.(this.loaded); } get isLoading() { return this.search.isRunning; @@ -320,6 +324,7 @@ export function getSearch( opts?: { isLive?: boolean; doWhileRefreshing?: (() => void) | undefined; + onLoad?: (load: Promise) => void; seed?: | { cards: T[]; @@ -343,6 +348,7 @@ export function getSearch( isLive: opts?.isLive != null ? opts.isLive : false, // TODO refactor this out doWhileRefreshing: opts?.doWhileRefreshing, + onLoad: opts?.onLoad, seed: opts?.seed, owner, }, diff --git a/packages/host/app/services/store.ts b/packages/host/app/services/store.ts index 161bae71bd..d1babc6d21 100644 --- a/packages/host/app/services/store.ts +++ b/packages/host/app/services/store.ts @@ -772,7 +772,10 @@ export default class StoreService extends Service implements StoreInterface { getOwner(this)!, getQuery, getRealms, - opts, + { + ...opts, + onLoad: (load: Promise) => this.store.trackLoad(load), + }, ) as unknown as SearchResource; } From dc9b803319a4400320d518a2298e9bb5369251c3 Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Thu, 19 Feb 2026 12:27:21 -0600 Subject: [PATCH 09/13] Add formatting autofixes --- packages/host/app/services/store.ts | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/packages/host/app/services/store.ts b/packages/host/app/services/store.ts index d1babc6d21..9d7b7cdd5e 100644 --- a/packages/host/app/services/store.ts +++ b/packages/host/app/services/store.ts @@ -767,16 +767,10 @@ export default class StoreService extends Service implements StoreInterface { if (this.isRenderStore && opts) { opts.isLive = false; } - return getSearch( - parent, - getOwner(this)!, - getQuery, - getRealms, - { - ...opts, - onLoad: (load: Promise) => this.store.trackLoad(load), - }, - ) as unknown as SearchResource; + return getSearch(parent, getOwner(this)!, getQuery, getRealms, { + ...opts, + onLoad: (load: Promise) => this.store.trackLoad(load), + }) as unknown as SearchResource; } getSearchDataResource( From c77d703f04946bf7c55bdecf7cf0ecefd1e2e50e Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Thu, 19 Feb 2026 12:39:16 -0600 Subject: [PATCH 10/13] Add EC cancellation handling --- packages/host/app/services/store.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/host/app/services/store.ts b/packages/host/app/services/store.ts index 9d7b7cdd5e..d1a00cf787 100644 --- a/packages/host/app/services/store.ts +++ b/packages/host/app/services/store.ts @@ -769,7 +769,13 @@ export default class StoreService extends Service implements StoreInterface { } return getSearch(parent, getOwner(this)!, getQuery, getRealms, { ...opts, - onLoad: (load: Promise) => this.store.trackLoad(load), + onLoad: (load: Promise) => { + // Swallow rejections from cancelled restartable tasks so they + // don't surface as unhandled promise rejections. trackLoad + // uses .finally() for cleanup so it handles both outcomes. + load.catch(() => {}); + this.store.trackLoad(load); + }, }) as unknown as SearchResource; } From 295e7394c982c7228d60b904190ec17b2339e4a0 Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Thu, 19 Feb 2026 12:52:32 -0600 Subject: [PATCH 11/13] Change handling of cancellations meh --- packages/host/app/services/store.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/host/app/services/store.ts b/packages/host/app/services/store.ts index d1a00cf787..e75459db0e 100644 --- a/packages/host/app/services/store.ts +++ b/packages/host/app/services/store.ts @@ -770,11 +770,10 @@ export default class StoreService extends Service implements StoreInterface { return getSearch(parent, getOwner(this)!, getQuery, getRealms, { ...opts, onLoad: (load: Promise) => { - // Swallow rejections from cancelled restartable tasks so they - // don't surface as unhandled promise rejections. trackLoad - // uses .finally() for cleanup so it handles both outcomes. - load.catch(() => {}); - this.store.trackLoad(load); + // Wrap with .catch() so that cancelled restartable tasks + // (which reject with TaskCancelation) don't surface as + // unhandled promise rejections inside trackLoad's .finally(). + this.store.trackLoad(load.catch(() => {})); }, }) as unknown as SearchResource; } From 205058867bbf47213d7fd5117cb68c4e856c95a6 Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Thu, 19 Feb 2026 14:32:54 -0600 Subject: [PATCH 12/13] Update test --- .../server-endpoints/index-responses-test.ts | 64 +++++++++++++++---- 1 file changed, 52 insertions(+), 12 deletions(-) diff --git a/packages/realm-server/tests/server-endpoints/index-responses-test.ts b/packages/realm-server/tests/server-endpoints/index-responses-test.ts index 1b296110b3..12a4413b1f 100644 --- a/packages/realm-server/tests/server-endpoints/index-responses-test.ts +++ b/packages/realm-server/tests/server-endpoints/index-responses-test.ts @@ -357,18 +357,6 @@ module(`server-endpoints/${basename(__filename)}`, function () { }, }); - writeJSONSync(join(context.testRealmDir, 'query-grid-1.json'), { - data: { - type: 'card', - attributes: {}, - meta: { - adoptsFrom: { - module: './query-grid.gts', - name: 'QueryGrid', - }, - }, - }, - }); }, }); @@ -410,6 +398,58 @@ module(`server-endpoints/${basename(__filename)}`, function () { }); test('serves isolated HTML with linksToMany query field search results', async function (assert) { + // Write query-grid-1 via the realm API AFTER the server starts. + // During from-scratch indexing, boxel_index (main table) is empty, + // so search returns no results for query-backed fields. By writing + // the card instance after initial indexing completes, the incremental + // re-index can find the sample items in boxel_index. + let writeResponse = await context.request2 + .post('/test/query-grid-1.json') + .set('Accept', 'application/vnd.card+source') + .send( + JSON.stringify({ + data: { + type: 'card', + attributes: {}, + meta: { + adoptsFrom: { + module: './query-grid.gts', + name: 'QueryGrid', + }, + }, + }, + }), + ); + + assert.strictEqual( + writeResponse.status, + 204, + 'query-grid-1 file write was accepted', + ); + + // Wait for the incremental re-index to produce isolated_html + await waitUntil( + async () => { + let rows = (await context.dbAdapter.execute( + `SELECT isolated_html FROM boxel_index + WHERE url = '${testRealm2URL.href}query-grid-1.json' + AND type = 'instance'`, + )) as { isolated_html: string | null }[]; + + return ( + rows.length > 0 && + rows[0].isolated_html != null && + rows[0].isolated_html.includes('data-test-query-grid') + ); + }, + { + timeout: 30000, + interval: 500, + timeoutMessage: + 'Timed out waiting for query-grid-1 isolated HTML to be indexed', + }, + ); + let response = await context.request2 .get('/test/query-grid-1') .set('Accept', 'text/html'); From 064cba47c6f1a57e580a4afc5eff22813d7ab26c Mon Sep 17 00:00:00 2001 From: Buck Doyle Date: Thu, 19 Feb 2026 14:33:17 -0600 Subject: [PATCH 13/13] Add delay for query-backed fields --- packages/host/app/routes/render.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/host/app/routes/render.ts b/packages/host/app/routes/render.ts index 874f0defe6..e12130f361 100644 --- a/packages/host/app/routes/render.ts +++ b/packages/host/app/routes/render.ts @@ -420,13 +420,17 @@ export default class RenderRoute extends Route { // probably will be, so just optimistically including those let fields = cardApi.getFields(instance, { includeComputeds: true }); for (let [fieldName, field] of Object.entries(fields)) { - if (field?.isUsed) { + // Touch fields marked isUsed and query-backed fields (linksTo/linksToMany + // with a queryDefinition). Query-backed fields create a SearchResource + // whose async search must be tracked before store.loaded() is called so + // that prerendering waits for the search results. + if (field?.isUsed || field?.queryDefinition) { try { // accessing the field triggers the lazy loading of the linked field (instance as any)[fieldName]; } catch (error) { console.warn( - `Failed to touch field '${fieldName}' on ${instance.constructor.name} for isUsed=true:`, + `Failed to touch field '${fieldName}' on ${instance.constructor.name}:`, error, ); }