@cratis/scene.components 4.2.0 → 4.3.0

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 (248) hide show
  1. package/bindings/resolveElementBinding.ts +17 -1
  2. package/cratisComponentsDescriptors.ts +48 -0
  3. package/cratisComponentsPackage.ts +2 -0
  4. package/dist/cjs/bindings/resolveElementBinding.js +13 -1
  5. package/dist/cjs/bindings/resolveElementBinding.js.map +1 -1
  6. package/dist/cjs/cratisComponentsDescriptors.js +83 -0
  7. package/dist/cjs/cratisComponentsDescriptors.js.map +1 -0
  8. package/dist/cjs/cratisComponentsPackage.js +3 -1
  9. package/dist/cjs/cratisComponentsPackage.js.map +1 -1
  10. package/dist/cjs/index.js +2 -0
  11. package/dist/cjs/index.js.map +1 -1
  12. package/dist/esm/bindings/resolveElementBinding.d.ts.map +1 -1
  13. package/dist/esm/bindings/resolveElementBinding.js +13 -1
  14. package/dist/esm/bindings/resolveElementBinding.js.map +1 -1
  15. package/dist/esm/cratisComponentsDescriptors.d.ts +3 -0
  16. package/dist/esm/cratisComponentsDescriptors.d.ts.map +1 -0
  17. package/dist/esm/cratisComponentsDescriptors.js +81 -0
  18. package/dist/esm/cratisComponentsDescriptors.js.map +1 -0
  19. package/dist/esm/cratisComponentsPackage.d.ts.map +1 -1
  20. package/dist/esm/cratisComponentsPackage.js +3 -1
  21. package/dist/esm/cratisComponentsPackage.js.map +1 -1
  22. package/dist/esm/index.d.ts +1 -0
  23. package/dist/esm/index.d.ts.map +1 -1
  24. package/dist/esm/index.js +1 -0
  25. package/dist/esm/index.js.map +1 -1
  26. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  27. package/index.ts +1 -0
  28. package/package.json +17 -16
  29. package/bindings/for_bindingRegistry/when_a_command_is_registered.ts +0 -30
  30. package/bindings/for_bindingRegistry/when_a_query_is_not_registered.ts +0 -17
  31. package/bindings/for_bindingRegistry/when_a_query_is_registered.ts +0 -30
  32. package/bindings/for_bindingRegistry/when_bindings_are_cleared.ts +0 -29
  33. package/bindings/for_bindingRegistry/when_registering_query_identities.ts +0 -81
  34. package/bindings/for_requireArcProxy/NativeProxies.ts +0 -28
  35. package/bindings/for_requireArcProxy/when_mounting_bound_adapters.tsx +0 -73
  36. package/bindings/for_requireArcProxy/when_previewing_without_arc.tsx +0 -37
  37. package/bindings/for_requireArcProxy/when_validating_a_proxy.ts +0 -44
  38. package/bindings/for_resolveElementBinding/when_resolving_a_command_binding.ts +0 -34
  39. package/bindings/for_resolveElementBinding/when_resolving_a_query_binding.ts +0 -45
  40. package/data/for_SceneDataTable/when_forwarding_query_arguments.tsx +0 -123
  41. package/data/for_SceneDataTable/when_the_query_binding_is_missing.tsx +0 -48
  42. package/data/for_SceneSingleResult/when_executing_a_native_query.tsx +0 -290
  43. package/data/for_SceneSingleResult/when_gating_the_lazy_runtime.tsx +0 -60
  44. package/dist/esm/bindings/for_bindingRegistry/when_a_command_is_registered.d.ts +0 -2
  45. package/dist/esm/bindings/for_bindingRegistry/when_a_command_is_registered.d.ts.map +0 -1
  46. package/dist/esm/bindings/for_bindingRegistry/when_a_command_is_registered.js +0 -25
  47. package/dist/esm/bindings/for_bindingRegistry/when_a_command_is_registered.js.map +0 -1
  48. package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_not_registered.d.ts +0 -2
  49. package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_not_registered.d.ts.map +0 -1
  50. package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_not_registered.js +0 -12
  51. package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_not_registered.js.map +0 -1
  52. package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_registered.d.ts +0 -2
  53. package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_registered.d.ts.map +0 -1
  54. package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_registered.js +0 -23
  55. package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_registered.js.map +0 -1
  56. package/dist/esm/bindings/for_bindingRegistry/when_bindings_are_cleared.d.ts +0 -2
  57. package/dist/esm/bindings/for_bindingRegistry/when_bindings_are_cleared.d.ts.map +0 -1
  58. package/dist/esm/bindings/for_bindingRegistry/when_bindings_are_cleared.js +0 -18
  59. package/dist/esm/bindings/for_bindingRegistry/when_bindings_are_cleared.js.map +0 -1
  60. package/dist/esm/bindings/for_bindingRegistry/when_registering_query_identities.d.ts +0 -2
  61. package/dist/esm/bindings/for_bindingRegistry/when_registering_query_identities.d.ts.map +0 -1
  62. package/dist/esm/bindings/for_bindingRegistry/when_registering_query_identities.js +0 -73
  63. package/dist/esm/bindings/for_bindingRegistry/when_registering_query_identities.js.map +0 -1
  64. package/dist/esm/bindings/for_requireArcProxy/NativeProxies.d.ts +0 -25
  65. package/dist/esm/bindings/for_requireArcProxy/NativeProxies.d.ts.map +0 -1
  66. package/dist/esm/bindings/for_requireArcProxy/NativeProxies.js +0 -23
  67. package/dist/esm/bindings/for_requireArcProxy/NativeProxies.js.map +0 -1
  68. package/dist/esm/bindings/for_requireArcProxy/when_mounting_bound_adapters.d.ts +0 -2
  69. package/dist/esm/bindings/for_requireArcProxy/when_mounting_bound_adapters.d.ts.map +0 -1
  70. package/dist/esm/bindings/for_requireArcProxy/when_mounting_bound_adapters.js +0 -56
  71. package/dist/esm/bindings/for_requireArcProxy/when_mounting_bound_adapters.js.map +0 -1
  72. package/dist/esm/bindings/for_requireArcProxy/when_previewing_without_arc.d.ts +0 -2
  73. package/dist/esm/bindings/for_requireArcProxy/when_previewing_without_arc.d.ts.map +0 -1
  74. package/dist/esm/bindings/for_requireArcProxy/when_previewing_without_arc.js +0 -32
  75. package/dist/esm/bindings/for_requireArcProxy/when_previewing_without_arc.js.map +0 -1
  76. package/dist/esm/bindings/for_requireArcProxy/when_validating_a_proxy.d.ts +0 -2
  77. package/dist/esm/bindings/for_requireArcProxy/when_validating_a_proxy.d.ts.map +0 -1
  78. package/dist/esm/bindings/for_requireArcProxy/when_validating_a_proxy.js +0 -45
  79. package/dist/esm/bindings/for_requireArcProxy/when_validating_a_proxy.js.map +0 -1
  80. package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_command_binding.d.ts +0 -2
  81. package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_command_binding.d.ts.map +0 -1
  82. package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_command_binding.js +0 -25
  83. package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_command_binding.js.map +0 -1
  84. package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_query_binding.d.ts +0 -2
  85. package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_query_binding.d.ts.map +0 -1
  86. package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_query_binding.js +0 -33
  87. package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_query_binding.js.map +0 -1
  88. package/dist/esm/data/for_SceneDataTable/when_forwarding_query_arguments.d.ts +0 -2
  89. package/dist/esm/data/for_SceneDataTable/when_forwarding_query_arguments.d.ts.map +0 -1
  90. package/dist/esm/data/for_SceneDataTable/when_forwarding_query_arguments.js +0 -107
  91. package/dist/esm/data/for_SceneDataTable/when_forwarding_query_arguments.js.map +0 -1
  92. package/dist/esm/data/for_SceneDataTable/when_the_query_binding_is_missing.d.ts +0 -2
  93. package/dist/esm/data/for_SceneDataTable/when_the_query_binding_is_missing.d.ts.map +0 -1
  94. package/dist/esm/data/for_SceneDataTable/when_the_query_binding_is_missing.js +0 -36
  95. package/dist/esm/data/for_SceneDataTable/when_the_query_binding_is_missing.js.map +0 -1
  96. package/dist/esm/data/for_SceneSingleResult/when_executing_a_native_query.d.ts +0 -2
  97. package/dist/esm/data/for_SceneSingleResult/when_executing_a_native_query.d.ts.map +0 -1
  98. package/dist/esm/data/for_SceneSingleResult/when_executing_a_native_query.js +0 -255
  99. package/dist/esm/data/for_SceneSingleResult/when_executing_a_native_query.js.map +0 -1
  100. package/dist/esm/data/for_SceneSingleResult/when_gating_the_lazy_runtime.d.ts +0 -2
  101. package/dist/esm/data/for_SceneSingleResult/when_gating_the_lazy_runtime.d.ts.map +0 -1
  102. package/dist/esm/data/for_SceneSingleResult/when_gating_the_lazy_runtime.js +0 -54
  103. package/dist/esm/data/for_SceneSingleResult/when_gating_the_lazy_runtime.js.map +0 -1
  104. package/dist/esm/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.d.ts +0 -2
  105. package/dist/esm/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.d.ts.map +0 -1
  106. package/dist/esm/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.js +0 -15
  107. package/dist/esm/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.js.map +0 -1
  108. package/dist/esm/editors/for_filterDefinitions/when_reading_filter_definitions.d.ts +0 -2
  109. package/dist/esm/editors/for_filterDefinitions/when_reading_filter_definitions.d.ts.map +0 -1
  110. package/dist/esm/editors/for_filterDefinitions/when_reading_filter_definitions.js +0 -39
  111. package/dist/esm/editors/for_filterDefinitions/when_reading_filter_definitions.js.map +0 -1
  112. package/dist/esm/editors/for_timeMachineVersions/when_reading_versions.d.ts +0 -2
  113. package/dist/esm/editors/for_timeMachineVersions/when_reading_versions.d.ts.map +0 -1
  114. package/dist/esm/editors/for_timeMachineVersions/when_reading_versions.js +0 -32
  115. package/dist/esm/editors/for_timeMachineVersions/when_reading_versions.js.map +0 -1
  116. package/dist/esm/for_cratisComponents/when_rendering_a_screen_through_the_real_renderer.d.ts +0 -2
  117. package/dist/esm/for_cratisComponents/when_rendering_a_screen_through_the_real_renderer.d.ts.map +0 -1
  118. package/dist/esm/for_cratisComponents/when_rendering_a_screen_through_the_real_renderer.js +0 -25
  119. package/dist/esm/for_cratisComponents/when_rendering_a_screen_through_the_real_renderer.js.map +0 -1
  120. package/dist/esm/for_cratisComponentsPackage/when_a_profile_ranks_it_above_the_packages_it_layers_on.d.ts +0 -2
  121. package/dist/esm/for_cratisComponentsPackage/when_a_profile_ranks_it_above_the_packages_it_layers_on.d.ts.map +0 -1
  122. package/dist/esm/for_cratisComponentsPackage/when_a_profile_ranks_it_above_the_packages_it_layers_on.js +0 -34
  123. package/dist/esm/for_cratisComponentsPackage/when_a_profile_ranks_it_above_the_packages_it_layers_on.js.map +0 -1
  124. package/dist/esm/for_cratisComponentsPackage/when_declaring_command_form_peers.d.ts +0 -2
  125. package/dist/esm/for_cratisComponentsPackage/when_declaring_command_form_peers.d.ts.map +0 -1
  126. package/dist/esm/for_cratisComponentsPackage/when_declaring_command_form_peers.js +0 -16
  127. package/dist/esm/for_cratisComponentsPackage/when_declaring_command_form_peers.js.map +0 -1
  128. package/dist/esm/for_cratisComponentsPackage/when_describing_query_arguments.d.ts +0 -2
  129. package/dist/esm/for_cratisComponentsPackage/when_describing_query_arguments.d.ts.map +0 -1
  130. package/dist/esm/for_cratisComponentsPackage/when_describing_query_arguments.js +0 -11
  131. package/dist/esm/for_cratisComponentsPackage/when_describing_query_arguments.js.map +0 -1
  132. package/dist/esm/for_cratisComponentsPackage/when_describing_query_input_form.d.ts +0 -2
  133. package/dist/esm/for_cratisComponentsPackage/when_describing_query_input_form.d.ts.map +0 -1
  134. package/dist/esm/for_cratisComponentsPackage/when_describing_query_input_form.js +0 -14
  135. package/dist/esm/for_cratisComponentsPackage/when_describing_query_input_form.js.map +0 -1
  136. package/dist/esm/for_cratisComponentsPackage/when_describing_single_result.d.ts +0 -2
  137. package/dist/esm/for_cratisComponentsPackage/when_describing_single_result.d.ts.map +0 -1
  138. package/dist/esm/for_cratisComponentsPackage/when_describing_single_result.js +0 -16
  139. package/dist/esm/for_cratisComponentsPackage/when_describing_single_result.js.map +0 -1
  140. package/dist/esm/for_cratisComponentsPackage/when_resolving_its_dependencies.d.ts +0 -2
  141. package/dist/esm/for_cratisComponentsPackage/when_resolving_its_dependencies.d.ts.map +0 -1
  142. package/dist/esm/for_cratisComponentsPackage/when_resolving_its_dependencies.js +0 -49
  143. package/dist/esm/for_cratisComponentsPackage/when_resolving_its_dependencies.js.map +0 -1
  144. package/dist/esm/for_cratisComponentsPackage/when_validating_the_bundle.d.ts +0 -2
  145. package/dist/esm/for_cratisComponentsPackage/when_validating_the_bundle.d.ts.map +0 -1
  146. package/dist/esm/for_cratisComponentsPackage/when_validating_the_bundle.js +0 -27
  147. package/dist/esm/for_cratisComponentsPackage/when_validating_the_bundle.js.map +0 -1
  148. package/dist/esm/for_properties/when_a_property_has_the_wrong_type.d.ts +0 -2
  149. package/dist/esm/for_properties/when_a_property_has_the_wrong_type.d.ts.map +0 -1
  150. package/dist/esm/for_properties/when_a_property_has_the_wrong_type.js +0 -24
  151. package/dist/esm/for_properties/when_a_property_has_the_wrong_type.js.map +0 -1
  152. package/dist/esm/for_properties/when_a_property_is_missing.d.ts +0 -2
  153. package/dist/esm/for_properties/when_a_property_is_missing.d.ts.map +0 -1
  154. package/dist/esm/for_properties/when_a_property_is_missing.js +0 -13
  155. package/dist/esm/for_properties/when_a_property_is_missing.js.map +0 -1
  156. package/dist/esm/for_properties/when_a_property_is_present.d.ts +0 -2
  157. package/dist/esm/for_properties/when_a_property_is_present.d.ts.map +0 -1
  158. package/dist/esm/for_properties/when_a_property_is_present.js +0 -21
  159. package/dist/esm/for_properties/when_a_property_is_present.js.map +0 -1
  160. package/dist/esm/forms/fields/for_CommandFormField/when_the_field_names_no_property.d.ts +0 -2
  161. package/dist/esm/forms/fields/for_CommandFormField/when_the_field_names_no_property.d.ts.map +0 -1
  162. package/dist/esm/forms/fields/for_CommandFormField/when_the_field_names_no_property.js +0 -12
  163. package/dist/esm/forms/fields/for_CommandFormField/when_the_field_names_no_property.js.map +0 -1
  164. package/dist/esm/forms/fields/for_SceneRadioButtonField/when_mapping_the_group_name.d.ts +0 -2
  165. package/dist/esm/forms/fields/for_SceneRadioButtonField/when_mapping_the_group_name.d.ts.map +0 -1
  166. package/dist/esm/forms/fields/for_SceneRadioButtonField/when_mapping_the_group_name.js +0 -38
  167. package/dist/esm/forms/fields/for_SceneRadioButtonField/when_mapping_the_group_name.js.map +0 -1
  168. package/dist/esm/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.d.ts +0 -2
  169. package/dist/esm/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.d.ts.map +0 -1
  170. package/dist/esm/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.js +0 -28
  171. package/dist/esm/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.js.map +0 -1
  172. package/dist/esm/forms/for_SceneCommandForm/given/RecordNote.d.ts +0 -22
  173. package/dist/esm/forms/for_SceneCommandForm/given/RecordNote.d.ts.map +0 -1
  174. package/dist/esm/forms/for_SceneCommandForm/given/RecordNote.js +0 -30
  175. package/dist/esm/forms/for_SceneCommandForm/given/RecordNote.js.map +0 -1
  176. package/dist/esm/forms/for_SceneCommandForm/given/StartProject.d.ts +0 -32
  177. package/dist/esm/forms/for_SceneCommandForm/given/StartProject.d.ts.map +0 -1
  178. package/dist/esm/forms/for_SceneCommandForm/given/StartProject.js +0 -32
  179. package/dist/esm/forms/for_SceneCommandForm/given/StartProject.js.map +0 -1
  180. package/dist/esm/forms/for_SceneCommandForm/when_forwarding_to_the_lazy_runtime.d.ts +0 -2
  181. package/dist/esm/forms/for_SceneCommandForm/when_forwarding_to_the_lazy_runtime.d.ts.map +0 -1
  182. package/dist/esm/forms/for_SceneCommandForm/when_forwarding_to_the_lazy_runtime.js +0 -66
  183. package/dist/esm/forms/for_SceneCommandForm/when_forwarding_to_the_lazy_runtime.js.map +0 -1
  184. package/dist/esm/forms/for_SceneCommandForm/when_native_custom_field_errors_block_submission.d.ts +0 -2
  185. package/dist/esm/forms/for_SceneCommandForm/when_native_custom_field_errors_block_submission.d.ts.map +0 -1
  186. package/dist/esm/forms/for_SceneCommandForm/when_native_custom_field_errors_block_submission.js +0 -26
  187. package/dist/esm/forms/for_SceneCommandForm/when_native_custom_field_errors_block_submission.js.map +0 -1
  188. package/dist/esm/forms/for_SceneCommandForm/when_preserving_guid_error_ownership.d.ts +0 -2
  189. package/dist/esm/forms/for_SceneCommandForm/when_preserving_guid_error_ownership.d.ts.map +0 -1
  190. package/dist/esm/forms/for_SceneCommandForm/when_preserving_guid_error_ownership.js +0 -44
  191. package/dist/esm/forms/for_SceneCommandForm/when_preserving_guid_error_ownership.js.map +0 -1
  192. package/dist/esm/forms/for_SceneCommandForm/when_rendering_submit_in_native_context.d.ts +0 -2
  193. package/dist/esm/forms/for_SceneCommandForm/when_rendering_submit_in_native_context.d.ts.map +0 -1
  194. package/dist/esm/forms/for_SceneCommandForm/when_rendering_submit_in_native_context.js +0 -49
  195. package/dist/esm/forms/for_SceneCommandForm/when_rendering_submit_in_native_context.js.map +0 -1
  196. package/dist/esm/forms/for_SceneCommandForm/when_submitting_explicit_inputs.d.ts +0 -2
  197. package/dist/esm/forms/for_SceneCommandForm/when_submitting_explicit_inputs.d.ts.map +0 -1
  198. package/dist/esm/forms/for_SceneCommandForm/when_submitting_explicit_inputs.js +0 -176
  199. package/dist/esm/forms/for_SceneCommandForm/when_submitting_explicit_inputs.js.map +0 -1
  200. package/dist/esm/forms/for_SceneCommandForm/when_submitting_the_native_form.d.ts +0 -2
  201. package/dist/esm/forms/for_SceneCommandForm/when_submitting_the_native_form.d.ts.map +0 -1
  202. package/dist/esm/forms/for_SceneCommandForm/when_submitting_the_native_form.js +0 -110
  203. package/dist/esm/forms/for_SceneCommandForm/when_submitting_the_native_form.js.map +0 -1
  204. package/dist/esm/forms/for_SceneQueryInputForm/ProjectLookup.d.ts +0 -26
  205. package/dist/esm/forms/for_SceneQueryInputForm/ProjectLookup.d.ts.map +0 -1
  206. package/dist/esm/forms/for_SceneQueryInputForm/ProjectLookup.js +0 -44
  207. package/dist/esm/forms/for_SceneQueryInputForm/ProjectLookup.js.map +0 -1
  208. package/dist/esm/forms/for_SceneQueryInputForm/when_submitting_generated_guid_parameters.d.ts +0 -2
  209. package/dist/esm/forms/for_SceneQueryInputForm/when_submitting_generated_guid_parameters.d.ts.map +0 -1
  210. package/dist/esm/forms/for_SceneQueryInputForm/when_submitting_generated_guid_parameters.js +0 -175
  211. package/dist/esm/forms/for_SceneQueryInputForm/when_submitting_generated_guid_parameters.js.map +0 -1
  212. package/dist/esm/forms/for_SceneQueryInputForm/when_submitting_native_queries.d.ts +0 -2
  213. package/dist/esm/forms/for_SceneQueryInputForm/when_submitting_native_queries.d.ts.map +0 -1
  214. package/dist/esm/forms/for_SceneQueryInputForm/when_submitting_native_queries.js +0 -413
  215. package/dist/esm/forms/for_SceneQueryInputForm/when_submitting_native_queries.js.map +0 -1
  216. package/dist/esm/pages/for_ScenePage/when_rendering_a_page.d.ts +0 -2
  217. package/dist/esm/pages/for_ScenePage/when_rendering_a_page.d.ts.map +0 -1
  218. package/dist/esm/pages/for_ScenePage/when_rendering_a_page.js +0 -31
  219. package/dist/esm/pages/for_ScenePage/when_rendering_a_page.js.map +0 -1
  220. package/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.tsx +0 -24
  221. package/editors/for_filterDefinitions/when_reading_filter_definitions.ts +0 -49
  222. package/editors/for_timeMachineVersions/when_reading_versions.ts +0 -39
  223. package/for_cratisComponents/when_rendering_a_screen_through_the_real_renderer.tsx +0 -37
  224. package/for_cratisComponentsPackage/when_a_profile_ranks_it_above_the_packages_it_layers_on.ts +0 -49
  225. package/for_cratisComponentsPackage/when_declaring_command_form_peers.ts +0 -26
  226. package/for_cratisComponentsPackage/when_describing_query_arguments.ts +0 -15
  227. package/for_cratisComponentsPackage/when_describing_query_input_form.ts +0 -17
  228. package/for_cratisComponentsPackage/when_describing_single_result.ts +0 -20
  229. package/for_cratisComponentsPackage/when_resolving_its_dependencies.ts +0 -78
  230. package/for_cratisComponentsPackage/when_validating_the_bundle.ts +0 -39
  231. package/for_properties/when_a_property_has_the_wrong_type.ts +0 -41
  232. package/for_properties/when_a_property_is_missing.ts +0 -26
  233. package/for_properties/when_a_property_is_present.ts +0 -36
  234. package/forms/fields/for_CommandFormField/when_the_field_names_no_property.tsx +0 -16
  235. package/forms/fields/for_SceneRadioButtonField/when_mapping_the_group_name.tsx +0 -45
  236. package/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.ts +0 -40
  237. package/forms/for_SceneCommandForm/given/RecordNote.ts +0 -37
  238. package/forms/for_SceneCommandForm/given/StartProject.ts +0 -41
  239. package/forms/for_SceneCommandForm/when_forwarding_to_the_lazy_runtime.tsx +0 -69
  240. package/forms/for_SceneCommandForm/when_native_custom_field_errors_block_submission.tsx +0 -33
  241. package/forms/for_SceneCommandForm/when_preserving_guid_error_ownership.tsx +0 -50
  242. package/forms/for_SceneCommandForm/when_rendering_submit_in_native_context.tsx +0 -56
  243. package/forms/for_SceneCommandForm/when_submitting_explicit_inputs.tsx +0 -189
  244. package/forms/for_SceneCommandForm/when_submitting_the_native_form.tsx +0 -120
  245. package/forms/for_SceneQueryInputForm/ProjectLookup.ts +0 -54
  246. package/forms/for_SceneQueryInputForm/when_submitting_generated_guid_parameters.tsx +0 -188
  247. package/forms/for_SceneQueryInputForm/when_submitting_native_queries.tsx +0 -423
  248. package/pages/for_ScenePage/when_rendering_a_page.tsx +0 -39
@@ -1,48 +0,0 @@
1
- // Copyright (c) Cratis. All rights reserved.
2
- // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
-
4
- import { expect } from 'chai';
5
- import { render, screen } from '@testing-library/react';
6
- import { externalComponent } from '../../given';
7
- import { clearBindings, registerQuery } from '../../bindings';
8
- import { SceneDataTable } from '../SceneDataTable';
9
-
10
- class AllInvoices {}
11
-
12
- describe('when the query binding is missing', () => {
13
- beforeEach(() => clearBindings());
14
- afterEach(() => clearBindings());
15
-
16
- describe('and the screen names a query nothing is registered under', () => {
17
- beforeEach(() => {
18
- const element = externalComponent('Cratis.Components:dataTable', { query: 'AllInvoices', emptyMessage: 'No invoices' });
19
- render(<SceneDataTable element={element} slots={{}} />);
20
- });
21
-
22
- it('should render a placeholder naming the binding rather than throwing', () =>
23
- expect(screen.getByText("Unresolved query binding 'AllInvoices' on Cratis.Components:dataTable")).to.exist);
24
- });
25
-
26
- describe('and the screen names no query at all', () => {
27
- beforeEach(() => {
28
- const element = externalComponent('Cratis.Components:dataTable', { emptyMessage: 'No invoices' });
29
- render(<SceneDataTable element={element} slots={{}} />);
30
- });
31
-
32
- it('should render a placeholder saying the binding is missing', () =>
33
- expect(screen.getByText('Missing query binding on Cratis.Components:dataTable')).to.exist);
34
- });
35
-
36
- describe('and the named query is registered', () => {
37
- beforeEach(() => {
38
- registerQuery('AllInvoices', AllInvoices);
39
- const element = externalComponent('Cratis.Components:dataTable', { query: 'AllInvoices', emptyMessage: 'No invoices' });
40
- render(<SceneDataTable element={element} slots={{}} />);
41
- });
42
-
43
- it('should render no placeholder', () => (screen.queryByText(/query binding/) === null).should.be.true);
44
-
45
- it('should hand off to the lazily loaded Arc-bound table', () =>
46
- expect(document.querySelector('[data-scene-arc-loading]')).to.exist);
47
- });
48
- });
@@ -1,290 +0,0 @@
1
- // Copyright (c) Cratis. All rights reserved.
2
- // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
-
4
- import { act, cleanup, render, screen, waitFor } from '@testing-library/react';
5
- import { expect, vi } from 'vitest';
6
- import { StrictMode } from 'react';
7
- import { ArcContext, type ArcConfiguration } from '@cratis/arc.react';
8
- import { QueryFor, QueryHttpMethod, QueryValidator } from '@cratis/arc/queries';
9
- import { clearBindings, registerQuery } from '../../bindings';
10
- import { externalComponent } from '../../given';
11
- import { SceneSingleResult } from '../SceneSingleResult';
12
-
13
- class ProjectName extends QueryFor<object | undefined, { projectId: string }> {
14
- readonly route = '/projects/{projectId}/name';
15
- readonly parameterDescriptors = [];
16
- readonly requiredRequestParameters = ['projectId'];
17
- defaultValue = undefined;
18
-
19
- constructor() {
20
- super(Object, false);
21
- this.setHttpMethod(QueryHttpMethod.Get);
22
- }
23
- }
24
-
25
- class ProjectNames extends QueryFor<object[]> {
26
- readonly route = '/projects';
27
- readonly parameterDescriptors = [];
28
- readonly requiredRequestParameters = [];
29
- defaultValue = [];
30
-
31
- constructor() { super(Object, true); }
32
- }
33
-
34
- class ProjectArgumentsValidator extends QueryValidator<{ projectId: string }> {
35
- static received: unknown;
36
-
37
- constructor() {
38
- super();
39
- this.ruleFor(args => {
40
- ProjectArgumentsValidator.received = args;
41
- return args.projectId;
42
- }).minLength(2);
43
- }
44
- }
45
-
46
- class ValidatedProjectName extends ProjectName {
47
- readonly validation = new ProjectArgumentsValidator();
48
- }
49
-
50
- function envelope(data: unknown, overrides: Record<string, unknown> = {}) {
51
- return {
52
- data, isSuccess: true, isAuthorized: true, isValid: true, hasExceptions: false,
53
- validationResults: [], exceptionMessages: [], exceptionStackTrace: '',
54
- paging: { page: 0, size: 0, totalItems: 0, totalPages: 0 }, ...overrides,
55
- };
56
- }
57
-
58
- function response(data: unknown, overrides: Record<string, unknown> = {}) {
59
- return { ok: true, status: 200, json: async () => envelope(data, overrides) } as Response;
60
- }
61
-
62
- function deferred() {
63
- let resolve!: (value: Response) => void;
64
- let reject!: (error: unknown) => void;
65
- const promise = new Promise<Response>((yes, no) => { resolve = yes; reject = no; });
66
- return { promise, resolve, reject };
67
- }
68
-
69
- describe('when executing an optional single result with native Arc 22.16.1', () => {
70
- const headers = () => ({ 'x-host': 'one' });
71
- const context: ArcConfiguration = { microservice: 'projects', origin: 'https://example.test', apiBasePath: '/backend', httpHeadersCallback: headers };
72
- const fetch = vi.fn<typeof globalThis.fetch>();
73
-
74
- function view(queryArguments: unknown = { projectId: 'A' }, arc = context, properties: Record<string, unknown> = {}) {
75
- return <ArcContext.Provider value={arc}>
76
- <SceneSingleResult element={externalComponent('Cratis.Components:singleResult', {
77
- query: 'ProjectName', queryArguments, enabled: true, resultField: 'name', ...properties,
78
- })} slots={{}} />
79
- </ArcContext.Provider>;
80
- }
81
-
82
- beforeEach(() => {
83
- clearBindings();
84
- registerQuery('ProjectName', ProjectName);
85
- registerQuery('ProjectNames', ProjectNames);
86
- registerQuery('ValidatedProjectName', ValidatedProjectName);
87
- fetch.mockReset();
88
- vi.stubGlobal('fetch', fetch);
89
- });
90
-
91
- afterEach(() => {
92
- cleanup();
93
- clearBindings();
94
- vi.unstubAllGlobals();
95
- });
96
-
97
- it('uses the native URL, arguments and context headers without changing the host object', async () => {
98
- const args = Object.freeze({ projectId: 'AA', locale: 'en' });
99
- fetch.mockResolvedValue(response({ name: '<b>Project A</b>' }));
100
- await act(async () => { render(view(args, context, { query: 'ValidatedProjectName' })); });
101
- expect(await screen.findByText('<b>Project A</b>')).not.toBeNull();
102
- expect(document.querySelector('b')).toBeNull();
103
- expect(fetch).toHaveBeenCalledTimes(1);
104
- const [url, init] = fetch.mock.calls[0];
105
- expect(String(url)).toBe('https://example.test/backend/projects/AA/name?locale=en');
106
- expect(ProjectArgumentsValidator.received).toBe(args);
107
- expect(new Headers(init?.headers).get('x-host')).toBe('one');
108
- expect(new Headers(init?.headers).get('x-cratis-microservice')).toBe('projects');
109
- expect(args).toEqual({ projectId: 'AA', locale: 'en' });
110
- });
111
-
112
- for (const value of [false, 0, '']) {
113
- it(`renders scalar own-field ${JSON.stringify(value)} as present`, async () => {
114
- fetch.mockResolvedValue(response({ name: value }));
115
- await act(async () => { render(view()); });
116
- await waitFor(() => expect(screen.getByRole('status').getAttribute('data-scene-single-result')).toBe('success'));
117
- expect(screen.getByRole('status').textContent).toBe(String(value));
118
- });
119
- }
120
-
121
- for (const data of [null, undefined]) {
122
- it(`shows not found for successful ${String(data)}`, async () => {
123
- fetch.mockResolvedValue(response(data));
124
- await act(async () => { render(view()); });
125
- expect(await screen.findByText('Not found')).not.toBeNull();
126
- });
127
- }
128
-
129
- for (const failure of [{ isSuccess: false }, { isAuthorized: false }, { isValid: false }, { hasExceptions: true }]) {
130
- it(`prioritizes failure over missing data: ${JSON.stringify(failure)}`, async () => {
131
- fetch.mockResolvedValue(response(null, { ...failure, exceptionMessages: ['secret'], exceptionStackTrace: 'server stack' }));
132
- await act(async () => { render(view()); });
133
- expect(await screen.findByRole('alert')).toHaveProperty('textContent', 'Unable to load result');
134
- expect(screen.queryByText('Not found')).toBeNull();
135
- expect(document.body.textContent).not.toMatch(/secret|server stack/);
136
- });
137
- }
138
-
139
- for (const args of [{}, { projectId: '' }, { projectId: null }, [], null, 'A', undefined]) {
140
- it(`does not send invalid or missing arguments: ${JSON.stringify(args)}`, async () => {
141
- await act(async () => { render(view(args, context, { queryArguments: args })); });
142
- expect(await screen.findByRole('alert')).not.toBeNull();
143
- expect(fetch).not.toHaveBeenCalled();
144
- });
145
- }
146
-
147
- it('lets the native proxy validator reject arguments without HTTP', async () => {
148
- await act(async () => { render(view({ projectId: 'A' }, context, { query: 'ValidatedProjectName' })); });
149
- expect(await screen.findByRole('alert')).not.toBeNull();
150
- expect(fetch).not.toHaveBeenCalled();
151
- });
152
-
153
- for (const enabled of [false, undefined, 'true']) {
154
- it(`is idle unless explicitly enabled: ${String(enabled)}`, async () => {
155
- await act(async () => { render(view({ projectId: 'A' }, context, { enabled })); });
156
- expect(screen.getByText('Idle')).not.toBeNull();
157
- expect(fetch).not.toHaveBeenCalled();
158
- });
159
- }
160
-
161
- it('never chooses another query when the binding is missing', async () => {
162
- await act(async () => { render(view({}, context, { query: 'Missing' })); });
163
- expect(screen.getByText(/Unresolved query binding 'Missing'/)).not.toBeNull();
164
- expect(fetch).not.toHaveBeenCalled();
165
- });
166
-
167
- it('aborts A and ignores reverse completion when the transport ignores abort', async () => {
168
- const a = deferred();
169
- const b = deferred();
170
- fetch.mockReturnValueOnce(a.promise).mockReturnValueOnce(b.promise);
171
- let mounted!: ReturnType<typeof render>;
172
- await act(async () => { mounted = render(view()); });
173
- expect(screen.getByText('Loading')).not.toBeNull();
174
- const signal = fetch.mock.calls[0][1]?.signal;
175
- await act(async () => { mounted.rerender(view({ projectId: 'B' })); });
176
- expect(signal?.aborted).toBe(true);
177
- await act(async () => { b.resolve(response({ name: 'B' })); });
178
- expect(screen.getByText('B')).not.toBeNull();
179
- await act(async () => { a.resolve(response({ name: 'A' })); });
180
- expect(screen.queryByText('A')).toBeNull();
181
- expect(screen.getByText('B')).not.toBeNull();
182
- });
183
-
184
- it('hides a settled A immediately on B and aborts B on disposal', async () => {
185
- const b = deferred();
186
- fetch.mockResolvedValueOnce(response({ name: 'A' })).mockReturnValueOnce(b.promise);
187
- let mounted!: ReturnType<typeof render>;
188
- await act(async () => { mounted = render(view()); });
189
- expect(screen.getByText('A')).not.toBeNull();
190
- await act(async () => { mounted.rerender(view({ projectId: 'B' })); });
191
- expect(screen.queryByText('A')).toBeNull();
192
- expect(screen.getByText('Loading')).not.toBeNull();
193
- mounted.unmount();
194
- expect(fetch.mock.calls[1][1]?.signal?.aborted).toBe(true);
195
- await act(async () => { b.reject(new DOMException('Aborted', 'AbortError')); });
196
- });
197
-
198
- it('reexecutes for header-only context changes and ignores the old response', async () => {
199
- const a = deferred();
200
- const b = deferred();
201
- const args = { projectId: 'A' };
202
- fetch.mockReturnValueOnce(a.promise).mockReturnValueOnce(b.promise);
203
- let mounted!: ReturnType<typeof render>;
204
- await act(async () => { mounted = render(view(args)); });
205
- await act(async () => { mounted.rerender(view(args, { ...context, httpHeadersCallback: () => ({ 'x-host': 'two' }) })); });
206
- expect(fetch.mock.calls[0][1]?.signal?.aborted).toBe(true);
207
- expect(new Headers(fetch.mock.calls[1][1]?.headers).get('x-host')).toBe('two');
208
- await act(async () => { b.resolve(response({ name: 'New context' })); a.resolve(response({ name: 'Old context' })); });
209
- expect(screen.getByText('New context')).not.toBeNull();
210
- expect(screen.queryByText('Old context')).toBeNull();
211
- });
212
-
213
- it('rejects enumerable proxies before HTTP rather than adapting them to a single model', async () => {
214
- await act(async () => { render(view({}, context, { query: 'ProjectNames' })); });
215
- expect(await screen.findByRole('alert')).not.toBeNull();
216
- expect(fetch).not.toHaveBeenCalled();
217
- });
218
-
219
- it('handles StrictMode disposal without an unhandled abort promise', async () => {
220
- const a = deferred();
221
- const b = deferred();
222
- fetch.mockReturnValueOnce(a.promise).mockReturnValueOnce(b.promise);
223
- await act(async () => { render(<StrictMode>{view()}</StrictMode>); });
224
- expect(fetch).toHaveBeenCalledTimes(2);
225
- expect(fetch.mock.calls[0][1]?.signal?.aborted).toBe(true);
226
- await act(async () => {
227
- a.reject(new DOMException('Aborted', 'AbortError'));
228
- b.resolve(response({ name: 'Current generation' }));
229
- });
230
- expect(screen.getByText('Current generation')).not.toBeNull();
231
- });
232
-
233
- it('ignores successful completion after unmount even if HTTP ignores abort', async () => {
234
- const pending = deferred();
235
- fetch.mockReturnValueOnce(pending.promise);
236
- let mounted!: ReturnType<typeof render>;
237
- await act(async () => { mounted = render(view()); });
238
- mounted.unmount();
239
- expect(fetch.mock.calls[0][1]?.signal?.aborted).toBe(true);
240
- await act(async () => { pending.resolve(response({ name: 'Disposed' })); });
241
- expect(screen.queryByText('Disposed')).toBeNull();
242
- });
243
-
244
- it('turns transport rejection and malformed envelopes into safe failure', async () => {
245
- fetch.mockRejectedValueOnce(new Error('private network detail'));
246
- let mounted!: ReturnType<typeof render>;
247
- await act(async () => { mounted = render(view()); });
248
- expect(await screen.findByRole('alert')).toHaveProperty('textContent', 'Unable to load result');
249
- fetch.mockResolvedValueOnce({ ok: false, status: 500, json: async () => ({}) } as Response);
250
- await act(async () => { mounted.rerender(view({ projectId: 'B' })); });
251
- expect(await screen.findByRole('alert')).toHaveProperty('textContent', 'Unable to load result');
252
- expect(document.body.textContent).not.toContain('private network detail');
253
- });
254
-
255
- it('aborts and clears a pending request when disabled', async () => {
256
- const pending = deferred();
257
- fetch.mockReturnValueOnce(pending.promise);
258
- let mounted!: ReturnType<typeof render>;
259
- await act(async () => { mounted = render(view()); });
260
- await act(async () => { mounted.rerender(view({ projectId: 'A' }, context, { enabled: false })); });
261
- expect(fetch.mock.calls[0][1]?.signal?.aborted).toBe(true);
262
- await act(async () => { pending.resolve(response({ name: 'Obsolete' })); });
263
- expect(screen.getByText('Idle')).not.toBeNull();
264
- expect(screen.queryByText('Obsolete')).toBeNull();
265
- });
266
-
267
- for (const change of [{ origin: 'https://other.test' }, { apiBasePath: '/v2' }, { microservice: 'other' }, { queryVersion: 1 }]) {
268
- it(`invalidates a settled result after context changes: ${JSON.stringify(change)}`, async () => {
269
- const pending = deferred();
270
- const args = { projectId: 'A' };
271
- fetch.mockResolvedValueOnce(response({ name: 'Old' })).mockReturnValueOnce(pending.promise);
272
- let mounted!: ReturnType<typeof render>;
273
- await act(async () => { mounted = render(view(args)); });
274
- await act(async () => { mounted.rerender(view(args, { ...context, ...change })); });
275
- expect(screen.queryByText('Old')).toBeNull();
276
- expect(screen.getByText('Loading')).not.toBeNull();
277
- expect(fetch).toHaveBeenCalledTimes(2);
278
- await act(async () => { pending.resolve(response({ name: 'New' })); });
279
- expect(screen.getByText('New')).not.toBeNull();
280
- });
281
- }
282
-
283
- for (const data of [{ name: {} }, { name: [] }, {}, Object.create({ name: 'Inherited' }), [{ name: 'A' }]]) {
284
- it(`rejects non-scalar or absent own fields: ${JSON.stringify(data)}`, async () => {
285
- fetch.mockResolvedValue(response(data));
286
- await act(async () => { render(view()); });
287
- expect(await screen.findByRole('alert')).not.toBeNull();
288
- });
289
- }
290
- });
@@ -1,60 +0,0 @@
1
- // Copyright (c) Cratis. All rights reserved.
2
- // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
-
4
- import { act, cleanup, render, screen } from '@testing-library/react';
5
- import { expect, vi } from 'vitest';
6
- import { externalComponent } from '../../given';
7
-
8
- class RegisteredQuery {}
9
-
10
- describe('when gating the single result lazy runtime', () => {
11
- const loaded = vi.fn();
12
- let SceneSingleResult: typeof import('../SceneSingleResult').SceneSingleResult;
13
- let bindings: typeof import('../../bindings');
14
-
15
- beforeEach(async () => {
16
- vi.resetModules();
17
- loaded.mockClear();
18
- vi.doMock('../SingleResultRuntime', () => {
19
- loaded();
20
- return { default: () => <span>Runtime mounted</span> };
21
- });
22
- bindings = await import('../../bindings');
23
- bindings.clearBindings();
24
- bindings.registerQuery('Registered', RegisteredQuery);
25
- ({ SceneSingleResult } = await import('../SceneSingleResult'));
26
- });
27
-
28
- afterEach(() => {
29
- cleanup();
30
- bindings.clearBindings();
31
- vi.doUnmock('../SingleResultRuntime');
32
- vi.resetModules();
33
- });
34
-
35
- for (const properties of [
36
- { query: 'Missing', enabled: true, queryArguments: {}, resultField: 'name' },
37
- { query: 'Registered', queryArguments: {}, resultField: 'name' },
38
- { query: 'Registered', enabled: true, queryArguments: [], resultField: 'name' },
39
- { query: 'Registered', enabled: true, queryArguments: {}, resultField: '' },
40
- ]) {
41
- it(`does not import Arc-bound code for ${JSON.stringify(properties)}`, async () => {
42
- await act(async () => {
43
- render(<SceneSingleResult element={externalComponent('Cratis.Components:singleResult', properties)} slots={{}} />);
44
- });
45
- expect(loaded).not.toHaveBeenCalled();
46
- expect(screen.queryByText('Runtime mounted')).toBeNull();
47
- expect(document.body.textContent).toMatch(/Unresolved query binding|Idle|Unable to load result/);
48
- });
49
- }
50
-
51
- it('loads only the explicitly bound and enabled view', async () => {
52
- await act(async () => {
53
- render(<SceneSingleResult element={externalComponent('Cratis.Components:singleResult', {
54
- query: 'Registered', enabled: true, queryArguments: {}, resultField: 'name',
55
- })} slots={{}} />);
56
- });
57
- expect(await screen.findByText('Runtime mounted')).not.toBeNull();
58
- expect(loaded).toHaveBeenCalledTimes(1);
59
- });
60
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=when_a_command_is_registered.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_a_command_is_registered.d.ts","sourceRoot":"","sources":["../../../../bindings/for_bindingRegistry/when_a_command_is_registered.ts"],"names":[],"mappings":""}
@@ -1,25 +0,0 @@
1
- import { clearBindings, registerCommand, registerCommands, registeredCommandNames, resolveCommand, resolveQuery } from '../bindingRegistry';
2
- class RegisterInvoice {
3
- }
4
- class ApproveInvoice {
5
- }
6
- class RegisterInvoiceV2 {
7
- }
8
- describe('when a command is registered', () => {
9
- beforeEach(() => {
10
- clearBindings();
11
- registerCommand('RegisterInvoice', RegisterInvoice);
12
- registerCommands({ ApproveInvoice });
13
- });
14
- afterEach(() => clearBindings());
15
- it('should resolve the class registered under the name', () => resolveCommand('RegisterInvoice').should.equal(RegisterInvoice));
16
- it('should resolve every class registered in bulk', () => resolveCommand('ApproveInvoice').should.equal(ApproveInvoice));
17
- it('should list every registered name in sorted order', () => registeredCommandNames().should.deep.equal(['ApproveInvoice', 'RegisterInvoice']));
18
- it('should not resolve the same name as a query', () => (resolveQuery('RegisterInvoice') === undefined).should.be.true);
19
- describe('and the same name is registered again', () => {
20
- beforeEach(() => registerCommand('RegisterInvoice', RegisterInvoiceV2));
21
- it('should resolve to the class registered last', () => resolveCommand('RegisterInvoice').should.equal(RegisterInvoiceV2));
22
- it('should not list the name twice', () => registeredCommandNames().should.deep.equal(['ApproveInvoice', 'RegisterInvoice']));
23
- });
24
- });
25
- //# sourceMappingURL=when_a_command_is_registered.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_a_command_is_registered.js","sourceRoot":"","sources":["../../../../bindings/for_bindingRegistry/when_a_command_is_registered.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE5I,MAAM,eAAe;CAAG;AACxB,MAAM,cAAc;CAAG;AACvB,MAAM,iBAAiB;CAAG;AAE1B,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC1C,UAAU,CAAC,GAAG,EAAE;QACZ,aAAa,EAAE,CAAC;QAChB,eAAe,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;QACpD,gBAAgB,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;IAEjC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,iBAAiB,CAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IACjI,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,gBAAgB,CAAE,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;IAC1H,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACjJ,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,iBAAiB,CAAC,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAExH,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;QACnD,UAAU,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAExE,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,iBAAiB,CAAE,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC5H,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAClI,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=when_a_query_is_not_registered.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_a_query_is_not_registered.d.ts","sourceRoot":"","sources":["../../../../bindings/for_bindingRegistry/when_a_query_is_not_registered.ts"],"names":[],"mappings":""}
@@ -1,12 +0,0 @@
1
- import { clearBindings, registerQuery, resolveQuery } from '../bindingRegistry';
2
- class AllInvoices {
3
- }
4
- describe('when a query is not registered', () => {
5
- beforeEach(() => {
6
- clearBindings();
7
- registerQuery('AllInvoices', AllInvoices);
8
- });
9
- afterEach(() => clearBindings());
10
- it('should resolve to undefined rather than throwing', () => (resolveQuery('AllCustomers') === undefined).should.be.true);
11
- });
12
- //# sourceMappingURL=when_a_query_is_not_registered.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_a_query_is_not_registered.js","sourceRoot":"","sources":["../../../../bindings/for_bindingRegistry/when_a_query_is_not_registered.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEhF,MAAM,WAAW;CAAG;AAEpB,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC5C,UAAU,CAAC,GAAG,EAAE;QACZ,aAAa,EAAE,CAAC;QAChB,aAAa,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;IAEjC,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAC9H,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=when_a_query_is_registered.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_a_query_is_registered.d.ts","sourceRoot":"","sources":["../../../../bindings/for_bindingRegistry/when_a_query_is_registered.ts"],"names":[],"mappings":""}
@@ -1,23 +0,0 @@
1
- import { clearBindings, registerQueries, registerQuery, registeredQueryNames, resolveCommand, resolveQuery } from '../bindingRegistry';
2
- class AllInvoices {
3
- }
4
- class InvoiceById {
5
- }
6
- class OverdueInvoices {
7
- }
8
- describe('when a query is registered', () => {
9
- beforeEach(() => {
10
- clearBindings();
11
- registerQuery('AllInvoices', AllInvoices);
12
- registerQueries({ InvoiceById, OverdueInvoices });
13
- });
14
- afterEach(() => clearBindings());
15
- it('should resolve the class registered under the name', () => resolveQuery('AllInvoices').should.equal(AllInvoices));
16
- it('should resolve every class registered in bulk', () => {
17
- resolveQuery('InvoiceById').should.equal(InvoiceById);
18
- resolveQuery('OverdueInvoices').should.equal(OverdueInvoices);
19
- });
20
- it('should list every registered name in sorted order', () => registeredQueryNames().should.deep.equal(['AllInvoices', 'InvoiceById', 'OverdueInvoices']));
21
- it('should not resolve the same name as a command', () => (resolveCommand('AllInvoices') === undefined).should.be.true);
22
- });
23
- //# sourceMappingURL=when_a_query_is_registered.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_a_query_is_registered.js","sourceRoot":"","sources":["../../../../bindings/for_bindingRegistry/when_a_query_is_registered.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvI,MAAM,WAAW;CAAG;AACpB,MAAM,WAAW;CAAG;AACpB,MAAM,eAAe;CAAG;AAExB,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IACxC,UAAU,CAAC,GAAG,EAAE;QACZ,aAAa,EAAE,CAAC;QAChB,aAAa,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAC1C,eAAe,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;IAEjC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,CAAE,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IAEvH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACrD,YAAY,CAAC,aAAa,CAAE,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACvD,YAAY,CAAC,iBAAiB,CAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE,CACzD,oBAAoB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAEjG,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5H,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=when_bindings_are_cleared.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_bindings_are_cleared.d.ts","sourceRoot":"","sources":["../../../../bindings/for_bindingRegistry/when_bindings_are_cleared.ts"],"names":[],"mappings":""}
@@ -1,18 +0,0 @@
1
- import { clearBindings, registerCommand, registerQuery, registeredCommandNames, registeredQueryNames, resolveCommand, resolveQuery, } from '../bindingRegistry';
2
- class AllInvoices {
3
- }
4
- class RegisterInvoice {
5
- }
6
- describe('when bindings are cleared', () => {
7
- beforeEach(() => {
8
- clearBindings();
9
- registerQuery('AllInvoices', AllInvoices);
10
- registerCommand('RegisterInvoice', RegisterInvoice);
11
- clearBindings();
12
- });
13
- it('should no longer resolve the query', () => (resolveQuery('AllInvoices') === undefined).should.be.true);
14
- it('should no longer resolve the command', () => (resolveCommand('RegisterInvoice') === undefined).should.be.true);
15
- it('should list no query names', () => registeredQueryNames().should.be.empty);
16
- it('should list no command names', () => registeredCommandNames().should.be.empty);
17
- });
18
- //# sourceMappingURL=when_bindings_are_cleared.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_bindings_are_cleared.js","sourceRoot":"","sources":["../../../../bindings/for_bindingRegistry/when_bindings_are_cleared.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,aAAa,EACb,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,YAAY,GACf,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW;CAAG;AACpB,MAAM,eAAe;CAAG;AAExB,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACvC,UAAU,CAAC,GAAG,EAAE;QACZ,aAAa,EAAE,CAAC;QAChB,aAAa,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAC1C,eAAe,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;QACpD,aAAa,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3G,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACnH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAC/E,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACvF,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=when_registering_query_identities.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_registering_query_identities.d.ts","sourceRoot":"","sources":["../../../../bindings/for_bindingRegistry/when_registering_query_identities.ts"],"names":[],"mappings":""}
@@ -1,73 +0,0 @@
1
- import { expect } from 'vitest';
2
- import { clearBindings, registerQuery, registerQueryIdentity, registeredQueryNames, resolveExactQuery, resolveQuery, unregisterQueryIdentity } from '../bindingRegistry';
3
- class First {
4
- }
5
- class Replacement {
6
- }
7
- describe('when opting into collision-aware query identities', () => {
8
- beforeEach(() => clearBindings());
9
- afterEach(() => clearBindings());
10
- it('replaces the same source identity on hot reload', () => {
11
- registerQueryIdentity('Lookup', 'source/Lookup', First);
12
- registerQueryIdentity('Lookup', 'source/Lookup', Replacement);
13
- expect(resolveExactQuery('Lookup')).toBe(Replacement);
14
- expect(resolveQuery('Lookup')).toBe(Replacement);
15
- expect(registeredQueryNames()).toEqual(['Lookup']);
16
- });
17
- it('counts different source identities even for the same constructor', () => {
18
- registerQueryIdentity('Lookup', 'one/Lookup', First);
19
- registerQueryIdentity('Lookup', 'two/Lookup', First);
20
- expect(resolveExactQuery('Lookup')).toBe('ambiguous');
21
- expect(resolveQuery('Lookup')).toBeUndefined();
22
- expect(registeredQueryNames()).toEqual(['Lookup']);
23
- unregisterQueryIdentity('Lookup', 'one/Lookup');
24
- expect(resolveExactQuery('Lookup')).toBe(First);
25
- expect(resolveQuery('Lookup')).toBe(First);
26
- unregisterQueryIdentity('Lookup', 'two/Lookup');
27
- expect(resolveExactQuery('Lookup')).toBeUndefined();
28
- expect(resolveQuery('Lookup')).toBeUndefined();
29
- expect(registeredQueryNames()).toEqual([]);
30
- });
31
- it('keeps legacy replacement authoritative while exact resolution counts mixed candidates', () => {
32
- registerQuery('Lookup', First);
33
- registerQuery('Lookup', Replacement);
34
- expect(resolveQuery('Lookup')).toBe(Replacement);
35
- expect(resolveExactQuery('Lookup')).toBe(Replacement);
36
- registerQueryIdentity('Lookup', 'source/Lookup', First);
37
- expect(resolveQuery('Lookup')).toBe(Replacement);
38
- expect(resolveExactQuery('Lookup')).toBe('ambiguous');
39
- });
40
- it('bridges a unique identity to legacy consumers with exact case-sensitive names and clears both maps', () => {
41
- registerQueryIdentity('Lookup', 'source/Lookup', First);
42
- expect(resolveQuery('Lookup')).toBe(First);
43
- expect(resolveQuery('lookup')).toBeUndefined();
44
- expect(resolveExactQuery('lookup')).toBeUndefined();
45
- clearBindings();
46
- expect(resolveQuery('Lookup')).toBeUndefined();
47
- expect(resolveExactQuery('Lookup')).toBeUndefined();
48
- expect(registeredQueryNames()).toEqual([]);
49
- });
50
- it('lists the sorted union without duplicates, retaining legacy names after identity removal', () => {
51
- registerQueryIdentity('Zed', 'source/Zed', First);
52
- registerQueryIdentity('Lookup', 'source/Lookup', First);
53
- registerQuery('Lookup', Replacement);
54
- registerQuery('Alpha', First);
55
- expect(registeredQueryNames()).toEqual(['Alpha', 'Lookup', 'Zed']);
56
- unregisterQueryIdentity('Lookup', 'source/Lookup');
57
- unregisterQueryIdentity('Zed', 'source/Zed');
58
- unregisterQueryIdentity('Missing', 'source/Missing');
59
- expect(registeredQueryNames()).toEqual(['Alpha', 'Lookup']);
60
- expect(resolveQuery('Lookup')).toBe(Replacement);
61
- expect(resolveExactQuery('Lookup')).toBe(Replacement);
62
- });
63
- it('gives an existing legacy registration precedence even over multiple identities and later replacements', () => {
64
- registerQueryIdentity('Lookup', 'one/Lookup', First);
65
- registerQueryIdentity('Lookup', 'two/Lookup', First);
66
- registerQuery('Lookup', First);
67
- registerQuery('Lookup', Replacement);
68
- registerQueryIdentity('Lookup', 'one/Lookup', Replacement);
69
- expect(resolveQuery('Lookup')).toBe(Replacement);
70
- expect(resolveExactQuery('Lookup')).toBe('ambiguous');
71
- });
72
- });
73
- //# sourceMappingURL=when_registering_query_identities.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_registering_query_identities.js","sourceRoot":"","sources":["../../../../bindings/for_bindingRegistry/when_registering_query_identities.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAEzK,MAAM,KAAK;CAAG;AACd,MAAM,WAAW;CAAG;AAEpB,QAAQ,CAAC,mDAAmD,EAAE,GAAG,EAAE;IAC/D,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;IAClC,SAAS,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;IAEjC,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACvD,qBAAqB,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;QACxD,qBAAqB,CAAC,QAAQ,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;QAC9D,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QACxE,qBAAqB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QACrD,qBAAqB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QACrD,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/C,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnD,uBAAuB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAChD,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,uBAAuB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAChD,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACpD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/C,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uFAAuF,EAAE,GAAG,EAAE;QAC7F,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC/B,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACrC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,qBAAqB,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;QACxD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oGAAoG,EAAE,GAAG,EAAE;QAC1G,qBAAqB,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;QACxD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/C,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACpD,aAAa,EAAE,CAAC;QAChB,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/C,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACpD,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0FAA0F,EAAE,GAAG,EAAE;QAChG,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QAClD,qBAAqB,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;QACxD,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACrC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9B,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QACnE,uBAAuB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QACnD,uBAAuB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC7C,uBAAuB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACrD,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC5D,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uGAAuG,EAAE,GAAG,EAAE;QAC7G,qBAAqB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QACrD,qBAAqB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QACrD,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC/B,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACrC,qBAAqB,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAC3D,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}