@salsita-ai/sdk 0.50.0-develop.3b6668e7e3 → 0.50.0-develop.3cc61485a6

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 (984) hide show
  1. package/README.md +20 -12
  2. package/dist/admin/create-admin-pages-from-spec.d.ts +1 -1
  3. package/dist/application-spec/errors/diagnostic-codes.d.ts +6 -0
  4. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  5. package/dist/application-spec/errors/diagnostic-messages.d.ts +6 -0
  6. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  7. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  8. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  9. package/dist/application-spec/generate-application/code/common/project-module-list.d.ts +8 -0
  10. package/dist/application-spec/generate-application/code/common/project-module-list.js +3 -0
  11. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  12. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  13. package/dist/application-spec/generate-application/code/templates/admin-domain-code.d.ts +1 -2
  14. package/dist/application-spec/generate-application/code/templates/admin-domain-code.js +6 -14
  15. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.d.ts +1 -2
  16. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.js +4 -4
  17. package/dist/application-spec/generate-application/code/templates/application-types.js +6 -6
  18. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.d.ts +2 -2
  19. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.js +7 -13
  20. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.d.ts +1 -2
  21. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.js +7 -9
  22. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.d.ts +2 -2
  23. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.js +1 -1
  24. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.d.ts +3 -1
  25. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +69 -65
  26. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +1 -1
  27. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  28. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  29. package/dist/application-spec/generate-application/code/templates/domain-spec.js +7 -7
  30. package/dist/application-spec/generate-application/code/templates/domain.js +4 -4
  31. package/dist/application-spec/generate-application/code/templates/env-example.js +4 -0
  32. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.d.ts +11 -0
  33. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.js +8 -0
  34. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
  35. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  36. package/dist/application-spec/generate-application/code/templates/globals.js +1 -0
  37. package/dist/application-spec/generate-application/code/templates/index.d.ts +1 -0
  38. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  39. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +1 -1
  40. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  41. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +43 -13
  42. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +39 -16
  43. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +5 -3
  44. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  45. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.d.ts +1 -0
  46. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +6 -0
  47. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +32 -3
  48. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +19 -5
  49. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +9 -4
  50. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -2
  51. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +2 -0
  52. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  53. package/dist/application-spec/generate-application/runtime/sections/actions-runtime.d.ts +14 -0
  54. package/dist/application-spec/generate-application/runtime/sections/actions-runtime.js +1 -0
  55. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +4 -3
  56. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.js +1 -1
  57. package/dist/application-spec/generate-application/runtime/sections/index.d.ts +1 -0
  58. package/dist/application-spec/generate-application/runtime/sections/index.js +1 -1
  59. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +3 -1
  60. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  61. package/dist/application-spec/parse-application-files/merge/index.d.ts +1 -0
  62. package/dist/application-spec/parse-application-files/merge/index.js +1 -1
  63. package/dist/application-spec/parse-application-files/merge/merged-actions.d.ts +11 -0
  64. package/dist/application-spec/parse-application-files/merge/merged-actions.js +1 -0
  65. package/dist/application-spec/parse-application-files/merge/merged-spec.d.ts +2 -0
  66. package/dist/application-spec/parse-application-files/merge/merged-spec.js +1 -1
  67. package/dist/application-spec/parse-application-files/raw-spec/index.d.ts +1 -0
  68. package/dist/application-spec/parse-application-files/raw-spec/index.js +1 -1
  69. package/dist/application-spec/parse-application-files/raw-spec/raw-actions.d.ts +18 -0
  70. package/dist/application-spec/parse-application-files/raw-spec/raw-actions.js +1 -0
  71. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +14 -2
  72. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  73. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.d.ts +2 -0
  74. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  75. package/dist/application-spec/parse-application-files/resolve/resolve-import-modules.js +1 -1
  76. package/dist/application-spec/parse-application-files/spec/application/application-spec.js +1 -1
  77. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.d.ts +4 -2
  78. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  79. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  80. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  81. package/dist/application-spec/parse-application-files/spec/common/schema-ref-resolver.d.ts +23 -0
  82. package/dist/application-spec/parse-application-files/spec/common/schema-ref-resolver.js +1 -0
  83. package/dist/application-spec/parse-application-files/spec/model/names/action-name.d.ts +10 -0
  84. package/dist/application-spec/parse-application-files/spec/model/names/action-name.js +1 -0
  85. package/dist/application-spec/parse-application-files/spec/model/names/index.d.ts +1 -0
  86. package/dist/application-spec/parse-application-files/spec/model/names/index.js +1 -1
  87. package/dist/application-spec/parse-application-files/spec/sections/actions.d.ts +35 -0
  88. package/dist/application-spec/parse-application-files/spec/sections/actions.js +1 -0
  89. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.d.ts +5 -21
  90. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.js +1 -1
  91. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +14 -39
  92. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  93. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-server-settings.d.ts +2 -2
  94. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.d.ts +5 -19
  95. package/dist/application-spec/parse-application-files/spec/sections/index.d.ts +1 -0
  96. package/dist/application-spec/parse-application-files/spec/sections/index.js +1 -1
  97. package/dist/client/authorized-client.d.ts +3 -1
  98. package/dist/client/authorized-client.js +1 -1
  99. package/dist/client/contract.d.ts +34 -0
  100. package/dist/client/contract.js +1 -1
  101. package/dist/client/index.d.ts +2 -2
  102. package/dist/client/index.js +1 -1
  103. package/dist/client/local-authorized-client.d.ts +3 -1
  104. package/dist/client/local-authorized-client.js +1 -1
  105. package/dist/client/memory-authorized-client.d.ts +3 -1
  106. package/dist/client/memory-authorized-client.js +1 -1
  107. package/dist/client/phoenix-api.d.ts +271 -30
  108. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  109. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +245 -13
  110. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  111. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.d.ts +85 -0
  112. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.js +1 -0
  113. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +8 -3
  114. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  115. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +4 -0
  116. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  117. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +16 -1
  118. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  119. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.d.ts +9 -0
  120. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.js +1 -0
  121. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  122. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -0
  123. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  124. package/dist/configurator/common/frontend-analytics.d.ts +21 -21
  125. package/dist/configurator/index.d.ts +0 -1
  126. package/dist/configurator/index.js +1 -1
  127. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  128. package/dist/configurator/scene/scene-analytics/scene-analytics.d.ts +2 -2
  129. package/dist/configurator/ui/assistant/AssistantChips.d.ts +11 -0
  130. package/dist/configurator/ui/assistant/AssistantChips.js +1 -0
  131. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +7 -0
  132. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -0
  133. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -0
  134. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -0
  135. package/dist/configurator/ui/assistant/AssistantPanel.d.ts +11 -0
  136. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -0
  137. package/dist/configurator/ui/assistant/AssistantThread.d.ts +10 -0
  138. package/dist/configurator/ui/assistant/AssistantThread.js +1 -0
  139. package/dist/configurator/ui/assistant/assistant-failure.d.ts +18 -0
  140. package/dist/configurator/ui/assistant/assistant-failure.js +1 -0
  141. package/dist/configurator/ui/assistant/index.d.ts +2 -0
  142. package/dist/configurator/ui/assistant/index.js +1 -0
  143. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +6 -0
  144. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -0
  145. package/dist/configurator/ui/assistant/theme.d.ts +2 -0
  146. package/dist/configurator/ui/assistant/theme.js +1 -0
  147. package/dist/configurator/ui/assistant/thread-items.d.ts +48 -0
  148. package/dist/configurator/ui/assistant/thread-items.js +1 -0
  149. package/dist/configurator/ui/assistant/tool-chip.d.ts +44 -0
  150. package/dist/configurator/ui/assistant/tool-chip.js +1 -0
  151. package/dist/configurator/ui/assistant/use-follow-stream.d.ts +17 -0
  152. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -0
  153. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.d.ts +5 -0
  154. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.js +1 -0
  155. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -5
  156. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.d.ts +2 -0
  157. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +4 -4
  158. package/dist/configurator/ui/legacy/mobile-controls/MobileControls.d.ts +1 -1
  159. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.d.ts +10 -0
  160. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -0
  161. package/dist/configurator/ui/phoenix-layout-elements/index.d.ts +1 -0
  162. package/dist/configurator/ui/phoenix-layout-elements/index.js +1 -1
  163. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +84 -98
  164. package/dist/docs/complex-use-cases/navigation-reset-selection.mdx +18 -12
  165. package/dist/docs/index.json +12 -2
  166. package/dist/docs/layouts/custom-price.mdx +14 -16
  167. package/dist/docs/layouts/sidebar/tabs.mdx +24 -21
  168. package/dist/docs/layouts/toolbar.mdx +6 -0
  169. package/dist/docs/other-features/domain-actions.mdx +418 -0
  170. package/dist/docs/other-features/side-effects.mdx +68 -34
  171. package/dist/docs/other-features/transformers.mdx +1 -1
  172. package/dist/docs/phoenix/admin.mdx +11 -26
  173. package/dist/docs/phoenix/best-practices.mdx +1 -0
  174. package/dist/docs/phoenix/deployments.mdx +1 -1
  175. package/dist/docs/phoenix/expression-context.mdx +11 -3
  176. package/dist/docs/phoenix/finalization.mdx +1 -1
  177. package/dist/docs/phoenix/integration/headless-mode-external.mdx +5 -5
  178. package/dist/docs/phoenix/integration/widget-mode-external.mdx +5 -5
  179. package/dist/docs/phoenix/localization.mdx +3 -22
  180. package/dist/docs/phoenix/phoenix-cli.mdx +159 -39
  181. package/dist/docs/phoenix/project-structure.mdx +13 -3
  182. package/dist/docs/phoenix/sdk-builder-workflow.mdx +13 -11
  183. package/dist/docs/recipes-and-delete/recipe-hierarchy-selection.mdx +15 -13
  184. package/dist/docs/relations/hierarchy.mdx +13 -2
  185. package/dist/domain/admin-domain/__generated/enhanced-model.d.ts +1 -2
  186. package/dist/domain/admin-domain/__generated/model/versions/v1.d.ts +1 -1
  187. package/dist/domain/admin-domain/__generated/model/versions/v2.d.ts +1 -1
  188. package/dist/domain/admin-domain/__generated/model/versions/v3.d.ts +1 -1
  189. package/dist/domain/admin-domain/__generated/model/versions/v4.d.ts +1 -1
  190. package/dist/domain/admin-domain/__generated/model/versions/v5.d.ts +1 -1
  191. package/dist/domain/admin-domain/__generated/model/versions/v6.d.ts +2 -2
  192. package/dist/domain/admin-domain/__generated/model/versions/v6.js +1 -1
  193. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +10 -13
  194. package/dist/domain/admin-domain/implementation/common-admin-migrations.d.ts +1 -1
  195. package/dist/domain/admin-domain/index.d.ts +9 -5
  196. package/dist/domain/admin-domain/index.js +1 -1
  197. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  198. package/dist/domain/application/application-config.d.ts +24 -92
  199. package/dist/domain/application/assistant/assistant-manifest.d.ts +63 -0
  200. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +95 -0
  201. package/dist/domain/application/assistant/assistant-value-type.d.ts +9 -0
  202. package/dist/domain/application/assistant/assistant-value-type.js +1 -0
  203. package/dist/domain/application/assistant/build-assistant-manifest.d.ts +4 -0
  204. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -0
  205. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  206. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -0
  207. package/dist/domain/application/assistant/index.d.ts +4 -0
  208. package/dist/domain/application/assistant/index.js +1 -0
  209. package/dist/domain/application/assistant-field-options.d.ts +2 -3
  210. package/dist/domain/application/assistant-mutations.d.ts +16 -17
  211. package/dist/domain/application/assistant-mutations.js +1 -1
  212. package/dist/domain/application/assistant-recipe-groups.d.ts +2 -6
  213. package/dist/domain/application/configurator-builder.d.ts +33 -18
  214. package/dist/domain/application/configurator-builder.js +1 -1
  215. package/dist/domain/application/element-registration.d.ts +5 -0
  216. package/dist/domain/application/element-registration.js +1 -1
  217. package/dist/domain/application/handler-registration.d.ts +5 -0
  218. package/dist/domain/application/handler-registration.js +1 -1
  219. package/dist/domain/application/index.d.ts +6 -5
  220. package/dist/domain/application/index.js +1 -1
  221. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  222. package/dist/domain/application/published-data/create-finalize-admin-domain.d.ts +1 -2
  223. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  224. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  225. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +2 -2
  226. package/dist/domain/application/published-data/map-published-data.d.ts +1 -2
  227. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  228. package/dist/domain/application/resolve-imported-transformers.d.ts +12 -2
  229. package/dist/domain/application/resolve-imported-transformers.js +1 -1
  230. package/dist/domain/available-system-components.js +1 -1
  231. package/dist/domain/core/action/action-factory.d.ts +11 -0
  232. package/dist/domain/core/action/action-factory.js +1 -0
  233. package/dist/domain/core/action/action.d.ts +71 -0
  234. package/dist/domain/core/action/index.d.ts +2 -0
  235. package/dist/domain/core/action/index.js +1 -0
  236. package/dist/domain/{components → core/component}/component-reader-types.d.ts +1 -2
  237. package/dist/domain/{components → core/component}/debug-state-component.d.ts +1 -1
  238. package/dist/domain/core/component/debug-state-component.js +1 -0
  239. package/dist/domain/{components → core/component}/domain-component-optic.d.ts +36 -39
  240. package/dist/domain/{components → core/component}/domain-component-optic.js +2 -2
  241. package/dist/domain/{components → core/component}/drag-state-component.d.ts +1 -1
  242. package/dist/domain/core/component/drag-state-component.js +1 -0
  243. package/dist/domain/{components → core/component}/export-state-component.d.ts +1 -1
  244. package/dist/domain/core/component/export-state-component.js +1 -0
  245. package/dist/domain/{components → core/component}/fullscreen-state-component.d.ts +1 -1
  246. package/dist/domain/core/component/fullscreen-state-component.js +1 -0
  247. package/dist/domain/{components → core/component}/group-components-by-entity-id-and-name.d.ts +1 -2
  248. package/dist/domain/core/component/group-components-by-entity-id-and-name.js +1 -0
  249. package/dist/domain/{components → core/component}/hover-state-component.d.ts +1 -1
  250. package/dist/domain/core/component/hover-state-component.js +1 -0
  251. package/dist/domain/core/component/index.d.ts +18 -0
  252. package/dist/domain/core/component/index.js +1 -0
  253. package/dist/domain/{components → core/component}/legacy-filter.d.ts +2 -2
  254. package/dist/domain/{components → core/component}/navigation-state-component.d.ts +1 -1
  255. package/dist/domain/core/component/navigation-state-component.js +1 -0
  256. package/dist/domain/{components → core/component}/selection-state-component.d.ts +1 -1
  257. package/dist/domain/core/component/selection-state-component.js +1 -0
  258. package/dist/domain/{components → core/component}/system-component-builder.d.ts +1 -2
  259. package/dist/domain/core/component/system-component-builder.js +1 -0
  260. package/dist/domain/{components → core/component}/system-component-filter.d.ts +19 -19
  261. package/dist/domain/core/component/system-virtual-entity.js +1 -0
  262. package/dist/domain/{components → core/component}/tool-state-component.d.ts +1 -1
  263. package/dist/domain/core/component/tool-state-component.js +1 -0
  264. package/dist/domain/{components → core/component}/updates.d.ts +17 -2
  265. package/dist/domain/{components → core/component}/view-state-component.d.ts +1 -1
  266. package/dist/domain/core/component/view-state-component.js +1 -0
  267. package/dist/domain/{components → core/component}/viewport-state-component.d.ts +1 -1
  268. package/dist/domain/core/component/viewport-state-component.js +1 -0
  269. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  270. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  271. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  272. package/dist/domain/core/data-schema/data-schema-field-object.js +1 -0
  273. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  274. package/dist/domain/core/data-schema/data-schema-field.js +1 -0
  275. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  276. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  277. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  278. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  279. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  280. package/dist/domain/core/data-schema/data-schema.js +1 -0
  281. package/dist/domain/core/data-schema/index.d.ts +7 -0
  282. package/dist/domain/core/data-schema/index.js +1 -0
  283. package/dist/domain/core/decoder/create-decoder.d.ts +6 -0
  284. package/dist/domain/core/decoder/create-decoder.js +1 -0
  285. package/dist/domain/core/decoder/decoder.d.ts +6 -0
  286. package/dist/domain/core/decoder/decoder.js +1 -0
  287. package/dist/domain/core/decoder/index.d.ts +2 -0
  288. package/dist/domain/core/decoder/index.js +1 -0
  289. package/dist/domain/core/domain-factory.d.ts +7 -4
  290. package/dist/domain/core/domain-factory.js +1 -1
  291. package/dist/domain/core/domain.d.ts +4 -5
  292. package/dist/domain/core/domain.js +1 -1
  293. package/dist/domain/core/emission/index.d.ts +8 -0
  294. package/dist/domain/core/emission/index.js +1 -0
  295. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  296. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  297. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  298. package/dist/domain/core/emission/state-emission.js +1 -0
  299. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  300. package/dist/domain/core/emission/state-update-emission.js +1 -0
  301. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  302. package/dist/domain/core/emission/state-validation-result.js +1 -0
  303. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  304. package/dist/domain/core/emission/transformation-log.js +1 -0
  305. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  306. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  307. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  308. package/dist/domain/core/emission/transformer-log.js +1 -0
  309. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  310. package/dist/domain/core/emission/transformer-phase.js +1 -0
  311. package/dist/domain/core/expression/aliased-expressions.d.ts +10 -0
  312. package/dist/domain/core/expression/aliased-expressions.js +1 -0
  313. package/dist/domain/{expressions → core/expression}/constant-expressions.d.ts +2 -3
  314. package/dist/domain/core/expression/constant-expressions.js +1 -0
  315. package/dist/domain/{expressions → core/expression}/custom-expression.d.ts +9 -10
  316. package/dist/domain/core/expression/custom-expression.js +1 -0
  317. package/dist/domain/core/{expression.d.ts → expression/expression.d.ts} +17 -20
  318. package/dist/domain/core/expression/expression.js +1 -0
  319. package/dist/domain/core/expression/index.d.ts +4 -0
  320. package/dist/domain/core/expression/index.js +1 -0
  321. package/dist/domain/core/index.d.ts +13 -16
  322. package/dist/domain/core/index.js +1 -1
  323. package/dist/domain/{invariants → core/invariant}/builtin-invariant.d.ts +2 -2
  324. package/dist/domain/{invariants → core/invariant}/custom-invariants.d.ts +7 -8
  325. package/dist/domain/core/invariant/custom-invariants.js +1 -0
  326. package/dist/domain/core/invariant/index.d.ts +5 -0
  327. package/dist/domain/core/invariant/index.js +1 -0
  328. package/dist/domain/core/invariant/invariants.d.ts +13 -0
  329. package/dist/domain/core/invariant/invariants.js +1 -0
  330. package/dist/domain/core/invariant/violation-component.js +1 -0
  331. package/dist/domain/{invariants → core/invariant}/violation.d.ts +2 -2
  332. package/dist/domain/core/{component.d.ts → model/component.d.ts} +1 -1
  333. package/dist/domain/core/model/index.d.ts +6 -0
  334. package/dist/domain/core/model/index.js +1 -0
  335. package/dist/domain/core/{reflection.d.ts → model/reflection.d.ts} +1 -1
  336. package/dist/domain/core/model/reflection.js +1 -0
  337. package/dist/domain/core/recipe/index.d.ts +1 -0
  338. package/dist/domain/core/recipe/index.js +1 -0
  339. package/dist/domain/{domain-context/recipe-system → core/recipe}/recipes.d.ts +1 -3
  340. package/dist/domain/core/recipe/recipes.js +1 -0
  341. package/dist/domain/{relations → core/relation}/all-of-type-relation.d.ts +3 -4
  342. package/dist/domain/core/relation/all-of-type-relation.js +1 -0
  343. package/dist/domain/{relations → core/relation}/component-factories.d.ts +1 -2
  344. package/dist/domain/core/relation/component-factories.js +1 -0
  345. package/dist/domain/{relations → core/relation}/composed-of.d.ts +1 -1
  346. package/dist/domain/core/relation/composed-of.js +1 -0
  347. package/dist/domain/{relations → core/relation}/direct-relation.d.ts +2 -3
  348. package/dist/domain/core/relation/index.d.ts +9 -0
  349. package/dist/domain/core/relation/index.js +1 -0
  350. package/dist/domain/{relations → core/relation}/indirect-relation.d.ts +3 -4
  351. package/dist/domain/core/relation/indirect-relation.js +1 -0
  352. package/dist/domain/{relations → core/relation}/reference-component.d.ts +4 -5
  353. package/dist/domain/core/relation/reference-component.js +1 -0
  354. package/dist/domain/{relations → core/relation}/reference-field.d.ts +1 -1
  355. package/dist/domain/core/relation/reference-field.js +1 -0
  356. package/dist/domain/{relations → core/relation}/relation-factory.d.ts +2 -3
  357. package/dist/domain/{relations → core/relation}/relation-implementation.d.ts +3 -4
  358. package/dist/domain/core/relation/relation-implementation.js +1 -0
  359. package/dist/domain/core/schema/enhanced-json-schema.js +1 -0
  360. package/dist/domain/core/schema/extended-schema-validator.js +1 -0
  361. package/dist/domain/core/schema/index.d.ts +3 -0
  362. package/dist/domain/core/schema/index.js +1 -0
  363. package/dist/domain/core/schema/schema-validator.js +1 -0
  364. package/dist/domain/core/state/id-sequence.d.ts +15 -0
  365. package/dist/domain/core/state/id-sequence.js +1 -0
  366. package/dist/domain/core/state/index.d.ts +3 -0
  367. package/dist/domain/core/state/index.js +1 -0
  368. package/dist/domain/core/{migrations.d.ts → state/migrations.d.ts} +1 -2
  369. package/dist/domain/core/{state.d.ts → state/state.d.ts} +1 -2
  370. package/dist/domain/domain-builder.d.ts +16 -9
  371. package/dist/domain/domain-builder.js +1 -1
  372. package/dist/domain/domain-context/action-system/action-system.d.ts +38 -0
  373. package/dist/domain/domain-context/action-system/action-system.js +1 -0
  374. package/dist/domain/domain-context/create-transformer.d.ts +1 -1
  375. package/dist/domain/domain-context/dimension-system/dimension-state.js +1 -1
  376. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +1 -2
  377. package/dist/domain/domain-context/domain-context-systems.d.ts +5 -4
  378. package/dist/domain/domain-context/index.d.ts +4 -4
  379. package/dist/domain/domain-context/index.js +1 -1
  380. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +3 -5
  381. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  382. package/dist/domain/domain-context/navigation-system/navigation-updates.d.ts +1 -12
  383. package/dist/domain/domain-context/navigation-system/navigation-updates.js +1 -1
  384. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +1 -1
  385. package/dist/domain/domain-context/navigation-system/selection-transformers.js +1 -1
  386. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +1 -3
  387. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  388. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +1 -1
  389. package/dist/domain/domain-context/relation-transformers/cascade-deletes.js +1 -1
  390. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +1 -1
  391. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.js +1 -1
  392. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +1 -1
  393. package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
  394. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +1 -1
  395. package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
  396. package/dist/domain/domain-context/store-system/apply-updates.d.ts +1 -3
  397. package/dist/domain/domain-context/store-system/apply-updates.js +1 -1
  398. package/dist/domain/domain-context/store-system/next-domain-entity-id.d.ts +1 -13
  399. package/dist/domain/domain-context/store-system/next-domain-entity-id.js +1 -1
  400. package/dist/domain/domain-context/store-system/reconcile-projected-entities.d.ts +1 -2
  401. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  402. package/dist/domain/domain-context/store-system/store-system.d.ts +1 -36
  403. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  404. package/dist/domain/domain-context/store-system/system-state.d.ts +1 -3
  405. package/dist/domain/domain-context/store-system/system-state.js +1 -1
  406. package/dist/domain/domain-context/transformers/actions-builder.d.ts +1 -2
  407. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  408. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +1 -3
  409. package/dist/domain/domain-context/transformers/chain-builder.d.ts +2 -2
  410. package/dist/domain/domain-context/transformers/context.d.ts +1 -6
  411. package/dist/domain/domain-context/transformers/entity-builder.d.ts +1 -5
  412. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  413. package/dist/domain/domain-context/transformers/then-builder.d.ts +1 -2
  414. package/dist/domain/domain-context/transformers/then-builder.js +1 -1
  415. package/dist/domain/domain-context/transformers/when-builder.d.ts +1 -6
  416. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  417. package/dist/domain/domain-context/undo-system.d.ts +1 -2
  418. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  419. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  420. package/dist/domain/domain-runtime/domain-context/component-reader.d.ts +1 -4
  421. package/dist/domain/domain-runtime/domain-context/component-reader.js +1 -1
  422. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  423. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  424. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  425. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  426. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  427. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  428. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +7 -4
  429. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  430. package/dist/domain/domain-runtime/domain-runtime.d.ts +24 -12
  431. package/dist/domain/domain-runtime/spec/index.d.ts +8 -0
  432. package/dist/domain/domain-runtime/spec/index.js +1 -1
  433. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  434. package/dist/domain/{invariants/invariants.d.ts → domain-runtime/spec/invariant-builder.d.ts} +7 -14
  435. package/dist/domain/domain-runtime/spec/invariant-builder.js +1 -0
  436. package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.d.ts +1 -2
  437. package/dist/domain/domain-runtime/spec/prepare-action-implementations.d.ts +15 -0
  438. package/dist/domain/domain-runtime/spec/prepare-action-implementations.js +5 -0
  439. package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.d.ts +1 -1
  440. package/dist/domain/domain-runtime/spec/resolve-action-modules.d.ts +4 -0
  441. package/dist/domain/domain-runtime/spec/resolve-action-modules.js +1 -0
  442. package/dist/domain/domain-runtime/spec/resolve-component-optic-modules.d.ts +4 -0
  443. package/dist/domain/domain-runtime/spec/resolve-component-optic-modules.js +1 -0
  444. package/dist/domain/domain-runtime/spec/resolve-expression-modules.d.ts +15 -0
  445. package/dist/domain/domain-runtime/spec/resolve-expression-modules.js +1 -0
  446. package/dist/domain/domain-runtime/spec/resolve-invariant-modules.d.ts +6 -0
  447. package/dist/domain/domain-runtime/spec/resolve-invariant-modules.js +1 -0
  448. package/dist/domain/domain-runtime/spec/selectors.d.ts +2 -2
  449. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  450. package/dist/domain/domain-runtime/spec/types.d.ts +18 -5
  451. package/dist/domain/{system-components → extensions}/angle-indicator.d.ts +1 -1
  452. package/dist/domain/extensions/angle-indicator.js +1 -0
  453. package/dist/domain/extensions/attribute-switch.js +1 -0
  454. package/dist/domain/{system-components → extensions}/autorotate-camera-component.d.ts +1 -1
  455. package/dist/domain/extensions/autorotate-camera-component.js +1 -0
  456. package/dist/domain/{system-components → extensions}/basic-sidebar-footer.d.ts +1 -1
  457. package/dist/domain/extensions/basic-sidebar-footer.js +1 -0
  458. package/dist/domain/extensions/camera-based-hidden-entity-object.js +1 -0
  459. package/dist/domain/extensions/camera-based-hidden-entity.js +1 -0
  460. package/dist/domain/{system-components → extensions}/canvas-config.d.ts +1 -1
  461. package/dist/domain/extensions/canvas-config.js +1 -0
  462. package/dist/domain/extensions/canvas-custom-environment.js +1 -0
  463. package/dist/domain/{system-components → extensions}/canvas-padding.d.ts +1 -1
  464. package/dist/domain/extensions/canvas-padding.js +1 -0
  465. package/dist/domain/{system-components → extensions}/canvas-preset-environment.d.ts +1 -1
  466. package/dist/domain/extensions/canvas-preset-environment.js +1 -0
  467. package/dist/domain/{system-components → extensions}/child-entity-recipe-hierarchy.d.ts +2 -2
  468. package/dist/domain/extensions/child-entity-recipe-hierarchy.js +1 -0
  469. package/dist/domain/extensions/client-side-image.js +1 -0
  470. package/dist/domain/extensions/color-value.js +1 -0
  471. package/dist/domain/{system-components → extensions}/common/angle-indicator-schema.d.ts +1 -1
  472. package/dist/domain/extensions/common/angle-indicator-schema.js +1 -0
  473. package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.d.ts +1 -1
  474. package/dist/domain/extensions/common/dimension-indicator-schema.js +1 -0
  475. package/dist/domain/extensions/common/index.d.ts +4 -0
  476. package/dist/domain/extensions/common/index.js +1 -0
  477. package/dist/domain/{system-components → extensions}/custom-header.d.ts +2 -2
  478. package/dist/domain/{system-components → extensions}/custom-header.js +1 -1
  479. package/dist/domain/extensions/custom-price-footer.js +1 -0
  480. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.d.ts +2 -2
  481. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.js +1 -1
  482. package/dist/domain/{system-components → extensions}/dimension-indicator.d.ts +1 -1
  483. package/dist/domain/extensions/dimension-indicator.js +1 -0
  484. package/dist/domain/{system-components → extensions}/editable-angle-indicator.d.ts +3 -2
  485. package/dist/domain/extensions/editable-angle-indicator.js +1 -0
  486. package/dist/domain/{system-components → extensions}/editable-distance-dimension-indicator.d.ts +3 -2
  487. package/dist/domain/extensions/editable-distance-dimension-indicator.js +1 -0
  488. package/dist/domain/{system-components → extensions}/editable-offset-indicator.d.ts +3 -2
  489. package/dist/domain/extensions/editable-offset-indicator.js +1 -0
  490. package/dist/domain/{system-components → extensions}/editable-size-indicator.d.ts +3 -2
  491. package/dist/domain/extensions/editable-size-indicator.js +1 -0
  492. package/dist/domain/{system-components → extensions}/entity-header.d.ts +1 -1
  493. package/dist/domain/extensions/entity-header.js +1 -0
  494. package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.d.ts +1 -1
  495. package/dist/domain/extensions/exit-tool-mode-fab.js +1 -0
  496. package/dist/domain/{system-components → extensions}/finalize-action.d.ts +1 -1
  497. package/dist/domain/extensions/finalize-action.js +1 -0
  498. package/dist/domain/extensions/finalize-component.js +1 -0
  499. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -0
  500. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -0
  501. package/dist/domain/{system-components → extensions}/fixed-header.d.ts +1 -1
  502. package/dist/domain/extensions/fixed-header.js +1 -0
  503. package/dist/domain/{system-components → extensions}/floating-header.d.ts +1 -1
  504. package/dist/domain/extensions/floating-header.js +1 -0
  505. package/dist/domain/{system-components → extensions}/hidden-header.d.ts +1 -1
  506. package/dist/domain/extensions/hidden-header.js +1 -0
  507. package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.d.ts +1 -1
  508. package/dist/domain/extensions/hidden-sidebar-footer.js +1 -0
  509. package/dist/domain/{system-components → extensions}/horizontal-tabs.d.ts +1 -1
  510. package/dist/domain/extensions/horizontal-tabs.js +1 -0
  511. package/dist/domain/extensions/index.d.ts +69 -0
  512. package/dist/domain/extensions/index.js +1 -0
  513. package/dist/domain/{system-components → extensions}/list-selector-dimension-indicator.d.ts +3 -2
  514. package/dist/domain/extensions/list-selector-dimension-indicator.js +1 -0
  515. package/dist/domain/extensions/multilingual-text-value.js +1 -0
  516. package/dist/domain/extensions/navigation-steps.js +1 -0
  517. package/dist/domain/{system-components → extensions}/offset-anchors.d.ts +1 -1
  518. package/dist/domain/extensions/offset-anchors.js +1 -0
  519. package/dist/domain/{system-components → extensions}/offset-indicator.d.ts +1 -2
  520. package/dist/domain/extensions/offset-indicator.js +1 -0
  521. package/dist/domain/{system-components → extensions}/offset.d.ts +1 -1
  522. package/dist/domain/extensions/offset.js +1 -0
  523. package/dist/domain/{system-components → extensions}/other-action.d.ts +1 -1
  524. package/dist/domain/extensions/other-action.js +1 -0
  525. package/dist/domain/{system-components → extensions}/property-page.d.ts +2 -2
  526. package/dist/domain/extensions/property-page.js +1 -0
  527. package/dist/domain/{system-components → extensions}/read-sidebar-footer.d.ts +1 -1
  528. package/dist/domain/extensions/read-sidebar-footer.js +1 -0
  529. package/dist/domain/{system-components → extensions}/replace-entity-recipe-hierarchy.d.ts +2 -2
  530. package/dist/domain/extensions/replace-entity-recipe-hierarchy.js +1 -0
  531. package/dist/domain/extensions/rotatable.js +1 -0
  532. package/dist/domain/extensions/rotation-handle.js +1 -0
  533. package/dist/domain/extensions/save-template-thumbnail.js +1 -0
  534. package/dist/domain/{system-components → extensions}/scene-entity-add-fab.d.ts +1 -1
  535. package/dist/domain/extensions/scene-entity-add-fab.js +1 -0
  536. package/dist/domain/extensions/scene-entity-animation.js +1 -0
  537. package/dist/domain/extensions/scene-entity-control.js +1 -0
  538. package/dist/domain/{system-components → extensions}/scene-entity-delete-fab.d.ts +1 -1
  539. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -0
  540. package/dist/domain/extensions/scene-entity-floor-object.js +1 -0
  541. package/dist/domain/{system-components → extensions}/scene-entity-html-hotspot.d.ts +1 -1
  542. package/dist/domain/extensions/scene-entity-html-hotspot.js +1 -0
  543. package/dist/domain/{system-components → extensions}/scene-entity-navigation-hotspot.d.ts +1 -1
  544. package/dist/domain/extensions/scene-entity-navigation-hotspot.js +1 -0
  545. package/dist/domain/{system-components → extensions}/scene-entity-object-html-hotspot.d.ts +1 -1
  546. package/dist/domain/extensions/scene-entity-object-html-hotspot.js +1 -0
  547. package/dist/domain/{system-components → extensions}/scene-entity-select-hotspot.d.ts +1 -1
  548. package/dist/domain/extensions/scene-entity-select-hotspot.js +1 -0
  549. package/dist/domain/extensions/scene-entity-wall-object.js +1 -0
  550. package/dist/domain/extensions/selectable-component.js +1 -0
  551. package/dist/domain/{system-components → extensions}/sidebar-tabs.d.ts +1 -1
  552. package/dist/domain/extensions/sidebar-tabs.js +1 -0
  553. package/dist/domain/extensions/simple-summary.js +1 -0
  554. package/dist/domain/{system-components → extensions}/size.d.ts +1 -1
  555. package/dist/domain/extensions/size.js +1 -0
  556. package/dist/domain/{system-components → extensions}/sketching-draw.d.ts +1 -1
  557. package/dist/domain/extensions/sketching-draw.js +1 -0
  558. package/dist/domain/{system-components → extensions}/sketching-edit.d.ts +2 -2
  559. package/dist/domain/extensions/sketching-edit.js +1 -0
  560. package/dist/domain/extensions/summary-component.js +1 -0
  561. package/dist/domain/extensions/text-value.js +1 -0
  562. package/dist/domain/extensions/tool-controls.js +1 -0
  563. package/dist/domain/{system-components → extensions}/tool-menu-fab.d.ts +2 -2
  564. package/dist/domain/extensions/tool-menu-fab.js +1 -0
  565. package/dist/domain/{system-components → extensions}/toolbar.d.ts +2 -2
  566. package/dist/domain/{system-components → extensions}/toolbar.js +1 -1
  567. package/dist/domain/{system-components → extensions}/universal-sidebar-footer.d.ts +1 -1
  568. package/dist/domain/extensions/universal-sidebar-footer.js +1 -0
  569. package/dist/domain/extensions/view-controls.js +1 -0
  570. package/dist/domain/index.d.ts +3 -30
  571. package/dist/domain/index.js +1 -1
  572. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +9 -3
  573. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  574. package/dist/domain/project-modules/index.d.ts +1 -0
  575. package/dist/domain/project-modules/index.js +1 -0
  576. package/dist/domain/project-modules/project-modules.d.ts +25 -0
  577. package/dist/domain/project-modules/project-modules.js +1 -0
  578. package/dist/domain/projections/blender-projections/blender-projections.d.ts +1 -1
  579. package/dist/domain/projections/blender-projections/blender-projections.js +1 -1
  580. package/dist/domain/projections/composition-projections.js +1 -1
  581. package/dist/domain/projections/index.d.ts +1 -1
  582. package/dist/domain/projections/projected-entities-projections.d.ts +1 -2
  583. package/dist/domain/projections/snap-matching.d.ts +1 -2
  584. package/dist/domain/projections/snap-utils.d.ts +1 -2
  585. package/dist/domain/projections/validation-projections.d.ts +1 -18
  586. package/dist/domain/projections/validation-projections.js +1 -1
  587. package/dist/domain/system-components/admin-sidebar.d.ts +1 -1
  588. package/dist/domain/system-components/admin-sidebar.js +1 -1
  589. package/dist/domain/system-components/angle-dimension.js +1 -1
  590. package/dist/domain/system-components/application-config.d.ts +1 -1
  591. package/dist/domain/system-components/application-config.js +1 -1
  592. package/dist/domain/system-components/attribute-selection.js +1 -1
  593. package/dist/domain/system-components/bounding-box-component.d.ts +1 -1
  594. package/dist/domain/system-components/bounding-box-component.js +1 -1
  595. package/dist/domain/system-components/bounding-sphere-component.d.ts +1 -1
  596. package/dist/domain/system-components/bounding-sphere-component.js +1 -1
  597. package/dist/domain/system-components/child-entity-recipes.d.ts +1 -1
  598. package/dist/domain/system-components/child-entity-recipes.js +1 -1
  599. package/dist/domain/system-components/child-entity-selection.d.ts +1 -2
  600. package/dist/domain/system-components/child-entity-selection.js +1 -1
  601. package/dist/domain/system-components/collision-box-geometry.d.ts +1 -1
  602. package/dist/domain/system-components/collision-box-geometry.js +1 -1
  603. package/dist/domain/system-components/collision-geometries.d.ts +1 -1
  604. package/dist/domain/system-components/collision-geometry.d.ts +1 -1
  605. package/dist/domain/system-components/collision-geometry.js +1 -1
  606. package/dist/domain/system-components/collision-point-geometry.d.ts +1 -1
  607. package/dist/domain/system-components/collision-point-geometry.js +1 -1
  608. package/dist/domain/system-components/common/index.d.ts +0 -4
  609. package/dist/domain/system-components/common/index.js +1 -1
  610. package/dist/domain/system-components/common/recipes.d.ts +1 -2
  611. package/dist/domain/system-components/constraint.d.ts +1 -1
  612. package/dist/domain/system-components/constraint.js +1 -1
  613. package/dist/domain/system-components/create-blueprint.d.ts +1 -1
  614. package/dist/domain/system-components/custom-scene-entity.d.ts +1 -1
  615. package/dist/domain/system-components/custom-scene-entity.js +1 -1
  616. package/dist/domain/system-components/detail.js +1 -1
  617. package/dist/domain/system-components/distance-dimension-select.d.ts +1 -1
  618. package/dist/domain/system-components/distance-dimension-select.js +1 -1
  619. package/dist/domain/system-components/distance-dimension.d.ts +1 -1
  620. package/dist/domain/system-components/distance-dimension.js +1 -1
  621. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  622. package/dist/domain/system-components/drag-handle.js +1 -1
  623. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  624. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  625. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  626. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  627. package/dist/domain/system-components/generic-dimension.d.ts +1 -1
  628. package/dist/domain/system-components/generic-dimension.js +1 -1
  629. package/dist/domain/system-components/hidden-entity.js +1 -1
  630. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -2
  631. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  632. package/dist/domain/system-components/index.d.ts +0 -68
  633. package/dist/domain/system-components/index.js +1 -1
  634. package/dist/domain/system-components/material-override-property-transition.js +1 -1
  635. package/dist/domain/system-components/material-override-transformer.js +1 -1
  636. package/dist/domain/system-components/material-swatch.js +1 -1
  637. package/dist/domain/system-components/navigation-page.js +1 -1
  638. package/dist/domain/system-components/navigation-panel-list.js +1 -1
  639. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  640. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  641. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  642. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  643. package/dist/domain/system-components/phoenix-layout-elements/assistant-toolbar-button.d.ts +44 -0
  644. package/dist/domain/system-components/phoenix-layout-elements/assistant-toolbar-button.js +1 -0
  645. package/dist/domain/system-components/phoenix-layout-elements/index.d.ts +1 -0
  646. package/dist/domain/system-components/phoenix-layout-elements/index.js +1 -1
  647. package/dist/domain/system-components/phoenix-layout-elements/phoenix-layout-element.d.ts +2 -1
  648. package/dist/domain/system-components/phoenix-layout-elements/phoenix-layout-element.js +1 -1
  649. package/dist/domain/system-components/pivot-point.d.ts +1 -1
  650. package/dist/domain/system-components/pivot-point.js +1 -1
  651. package/dist/domain/system-components/price.js +1 -1
  652. package/dist/domain/system-components/projected-entities.d.ts +1 -1
  653. package/dist/domain/system-components/projected-entities.js +1 -1
  654. package/dist/domain/system-components/replace-entity-recipes.d.ts +1 -1
  655. package/dist/domain/system-components/replace-entity-recipes.js +1 -1
  656. package/dist/domain/system-components/scene-entity-ambient-light.js +1 -1
  657. package/dist/domain/system-components/scene-entity-box-object.js +1 -1
  658. package/dist/domain/system-components/scene-entity-directional-light.js +1 -1
  659. package/dist/domain/system-components/scene-entity-local-material-override.js +1 -1
  660. package/dist/domain/system-components/scene-entity-material-override.js +1 -1
  661. package/dist/domain/system-components/scene-entity-object-clip.js +1 -1
  662. package/dist/domain/system-components/scene-entity-object-decal.js +1 -1
  663. package/dist/domain/system-components/scene-entity-object-group.js +1 -1
  664. package/dist/domain/system-components/scene-entity-object-local-material-override.js +1 -1
  665. package/dist/domain/system-components/scene-entity-object-material-override.js +1 -1
  666. package/dist/domain/system-components/scene-entity-object-properties.js +1 -1
  667. package/dist/domain/system-components/scene-entity-object-remote-material-override.js +1 -1
  668. package/dist/domain/system-components/scene-entity-object-text-decal.js +1 -1
  669. package/dist/domain/system-components/scene-entity-object-transformer.js +1 -1
  670. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.js +1 -1
  671. package/dist/domain/system-components/scene-entity-object.js +1 -1
  672. package/dist/domain/system-components/scene-entity-point-light.js +1 -1
  673. package/dist/domain/system-components/scene-entity-properties.js +1 -1
  674. package/dist/domain/system-components/scene-entity-rect-area-light.js +1 -1
  675. package/dist/domain/system-components/scene-entity-remote-material-override.js +1 -1
  676. package/dist/domain/system-components/scene-entity-remote-object.js +1 -1
  677. package/dist/domain/system-components/scene-entity-spot-light.js +1 -1
  678. package/dist/domain/system-components/scene-entity-transimissive-material-override.js +1 -1
  679. package/dist/domain/system-components/sketching-line.d.ts +1 -1
  680. package/dist/domain/system-components/sketching-line.js +1 -1
  681. package/dist/domain/system-components/sketching-rectangle.d.ts +1 -1
  682. package/dist/domain/system-components/sketching-rectangle.js +1 -1
  683. package/dist/domain/system-components/sketching.d.ts +1 -1
  684. package/dist/domain/system-components/sketching.js +1 -1
  685. package/dist/domain/system-components/snap-axis.d.ts +1 -1
  686. package/dist/domain/system-components/snap-axis.js +1 -1
  687. package/dist/domain/system-components/snap-edge.d.ts +1 -1
  688. package/dist/domain/system-components/snap-edge.js +1 -1
  689. package/dist/domain/system-components/snap-plane.d.ts +1 -1
  690. package/dist/domain/system-components/snap-plane.js +1 -1
  691. package/dist/domain/system-components/snap-point.d.ts +1 -1
  692. package/dist/domain/system-components/snap-point.js +1 -1
  693. package/dist/domain/system-components/static-orthographic-camera-component.d.ts +1 -1
  694. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  695. package/dist/domain/system-components/static-perspective-camera-component.d.ts +1 -1
  696. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  697. package/dist/domain/utils/eval-cache.d.ts +1 -2
  698. package/dist/domain/utils/memo-eval.d.ts +2 -4
  699. package/dist/editor/Editor.js +1 -1
  700. package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
  701. package/dist/editor/domain-editors/apply-spec-update.js +1 -1
  702. package/dist/editor/domain-editors/use-implementation-files.d.ts +11 -6
  703. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  704. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  705. package/dist/editor/variants/VariantAnswerFooter.d.ts +17 -0
  706. package/dist/editor/variants/VariantAnswerFooter.js +1 -0
  707. package/dist/editor/variants/VariantPreviewHandler.d.ts +6 -0
  708. package/dist/editor/variants/VariantPreviewHandler.js +1 -0
  709. package/dist/editor/variants/variant-preview-styles.d.ts +49 -0
  710. package/dist/editor/variants/variant-preview-styles.js +1 -0
  711. package/dist/i18n/locales/cs/messages.js +1 -1
  712. package/dist/i18n/locales/da/messages.js +1 -1
  713. package/dist/i18n/locales/de/messages.js +1 -1
  714. package/dist/i18n/locales/de-AT/messages.js +1 -1
  715. package/dist/i18n/locales/en/messages.js +1 -1
  716. package/dist/i18n/locales/en-AU/messages.js +1 -1
  717. package/dist/i18n/locales/en-GB/messages.js +1 -1
  718. package/dist/i18n/locales/es/messages.js +1 -1
  719. package/dist/i18n/locales/fr/messages.js +1 -1
  720. package/dist/i18n/locales/hu/messages.js +1 -1
  721. package/dist/i18n/locales/it/messages.js +1 -1
  722. package/dist/i18n/locales/nl/messages.js +1 -1
  723. package/dist/i18n/locales/pl/messages.js +1 -1
  724. package/dist/i18n/locales/pt/messages.js +1 -1
  725. package/dist/i18n/locales/ro/messages.js +1 -1
  726. package/dist/i18n/locales/sk/messages.js +1 -1
  727. package/dist/i18n/locales/tr/messages.js +1 -1
  728. package/dist/legacy/domain-cli/gen/configurator-builder.js +21 -8
  729. package/dist/legacy/domain-cli/gen/implementation.js +5 -5
  730. package/dist/legacy/domain-cli/gen/invariants.js +5 -3
  731. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  732. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  733. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +6 -0
  734. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.d.ts +1 -1
  735. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
  736. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +18 -19
  737. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +15 -16
  738. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +22 -23
  739. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +15 -16
  740. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.d.ts +7 -2
  741. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.js +8 -12
  742. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.d.ts +1 -1
  743. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.js +1 -1
  744. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/webhook-builders.js +7 -7
  745. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  746. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +4 -3
  747. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  748. package/dist/phoenix/cli.js +1 -1
  749. package/dist/phoenix/commands/build.d.ts +5 -0
  750. package/dist/phoenix/commands/build.js +1 -1
  751. package/dist/phoenix/commands/deploy.js +2 -2
  752. package/dist/phoenix/commands/dev.js +5 -5
  753. package/dist/phoenix/commands/feedback.d.ts +2 -1
  754. package/dist/phoenix/commands/feedback.js +1 -1
  755. package/dist/phoenix/commands/index.d.ts +1 -0
  756. package/dist/phoenix/commands/index.js +1 -1
  757. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  758. package/dist/phoenix/commands/prepare-local-environment-command.js +1 -1
  759. package/dist/phoenix/commands/story-dev.js +2 -2
  760. package/dist/phoenix/commands/variants.d.ts +35 -0
  761. package/dist/phoenix/commands/variants.js +1 -0
  762. package/dist/phoenix/editor-server/commands-router.d.ts +68 -1
  763. package/dist/phoenix/editor-server/commands-router.js +1 -1
  764. package/dist/phoenix/editor-server/editor-router.d.ts +65 -0
  765. package/dist/phoenix/editor-server/editor-server.d.ts +3 -3
  766. package/dist/phoenix/editor-server/editor-server.js +1 -1
  767. package/dist/phoenix/editor-server/protocol.d.ts +1 -0
  768. package/dist/phoenix/editor-server/spec-router.js +1 -1
  769. package/dist/phoenix/editor-server/trpc.d.ts +3 -0
  770. package/dist/phoenix/scripts/build-admin.js +1 -1
  771. package/dist/phoenix/services/application-spec-project-watcher.d.ts +13 -2
  772. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  773. package/dist/phoenix/services/index.d.ts +5 -0
  774. package/dist/phoenix/services/index.js +1 -1
  775. package/dist/phoenix/services/phoenix-application.d.ts +21 -0
  776. package/dist/phoenix/services/phoenix-application.js +1 -0
  777. package/dist/phoenix/services/phoenix-store.d.ts +48 -0
  778. package/dist/phoenix/services/phoenix-store.js +1 -0
  779. package/dist/phoenix/services/phx-banner-plugin.d.ts +32 -0
  780. package/dist/phoenix/services/phx-banner-plugin.js +1 -0
  781. package/dist/phoenix/services/phx-licenses-plugin.d.ts +55 -0
  782. package/dist/phoenix/services/phx-licenses-plugin.js +8 -0
  783. package/dist/phoenix/services/phx-variant-previews-plugin.d.ts +9 -0
  784. package/dist/phoenix/services/phx-variant-previews-plugin.js +1 -0
  785. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  786. package/dist/phoenix/services/variant-file-session.d.ts +36 -0
  787. package/dist/phoenix/services/variant-file-session.js +1 -0
  788. package/dist/phoenix/services/variant-preview-service.d.ts +80 -0
  789. package/dist/phoenix/services/variant-preview-service.js +1 -0
  790. package/dist/phoenix/services/vite-config.d.ts +2 -0
  791. package/dist/phoenix/services/vite-config.js +1 -1
  792. package/dist/phoenix/utils/index.d.ts +1 -0
  793. package/dist/phoenix/utils/index.js +1 -1
  794. package/dist/phoenix/utils/read-git-commit.d.ts +14 -0
  795. package/dist/phoenix/utils/read-git-commit.js +1 -0
  796. package/dist/react-sdk/application-runtime/common-services/analytics/analytics-service.d.ts +2 -2
  797. package/dist/react-sdk/application-runtime/common-services/analytics/domain-controls-analytics.d.ts +21 -21
  798. package/dist/react-sdk/application-runtime/hooks/data/use-published-data.d.ts +1 -1
  799. package/dist/react-sdk/application-runtime/hooks/use-domain-application-props.d.ts +5 -2
  800. package/dist/react-sdk/application-runtime/hooks/use-spec.d.ts +1 -1
  801. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.d.ts +1 -1
  802. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  803. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +16 -4
  804. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +3 -0
  805. package/dist/ui-sdk/common/use-viewport-size.d.ts +4 -1
  806. package/dist/ui-sdk/common/use-viewport-size.js +1 -1
  807. package/dist/ui-sdk/components/mobile-controls/index.d.ts +1 -1
  808. package/dist/ui-sdk/theme/types.d.ts +4 -0
  809. package/dist/webhook/builders/common.d.ts +8 -0
  810. package/dist/webhook/builders/webhook-builder.d.ts +1 -1
  811. package/dist/webhook/builders/webhook-builder.js +1 -1
  812. package/package.json +5 -8
  813. package/schema/domain-spec.json +24 -0
  814. package/dist/configurator/assistant/index.d.ts +0 -1
  815. package/dist/configurator/assistant/index.js +0 -1
  816. package/dist/configurator/assistant/use-assistant-chat.d.ts +0 -20
  817. package/dist/configurator/assistant/use-assistant-chat.js +0 -1
  818. package/dist/domain/components/debug-state-component.js +0 -1
  819. package/dist/domain/components/drag-state-component.js +0 -1
  820. package/dist/domain/components/export-state-component.js +0 -1
  821. package/dist/domain/components/fullscreen-state-component.js +0 -1
  822. package/dist/domain/components/group-components-by-entity-id-and-name.js +0 -1
  823. package/dist/domain/components/hover-state-component.js +0 -1
  824. package/dist/domain/components/index.d.ts +0 -2
  825. package/dist/domain/components/index.js +0 -1
  826. package/dist/domain/components/navigation-state-component.js +0 -1
  827. package/dist/domain/components/selection-state-component.js +0 -1
  828. package/dist/domain/components/system-component-builder.js +0 -1
  829. package/dist/domain/components/system-virtual-entity.js +0 -1
  830. package/dist/domain/components/tool-state-component.js +0 -1
  831. package/dist/domain/components/view-state-component.js +0 -1
  832. package/dist/domain/components/viewport-state-component.js +0 -1
  833. package/dist/domain/core/json-schema.js +0 -1
  834. package/dist/domain/core/reflection.js +0 -1
  835. package/dist/domain/domain-context/recipe-system/recipes.js +0 -1
  836. package/dist/domain/expressions/constant-expressions.js +0 -1
  837. package/dist/domain/expressions/custom-expression.js +0 -1
  838. package/dist/domain/expressions/index.d.ts +0 -1
  839. package/dist/domain/expressions/index.js +0 -1
  840. package/dist/domain/invariants/custom-invariants.js +0 -1
  841. package/dist/domain/invariants/invariants.js +0 -1
  842. package/dist/domain/invariants/violation-component.js +0 -1
  843. package/dist/domain/relations/all-of-type-relation.js +0 -1
  844. package/dist/domain/relations/component-factories.js +0 -1
  845. package/dist/domain/relations/composed-of.js +0 -1
  846. package/dist/domain/relations/indirect-relation.js +0 -1
  847. package/dist/domain/relations/reference-component.js +0 -1
  848. package/dist/domain/system-components/angle-indicator.js +0 -1
  849. package/dist/domain/system-components/attribute-switch.js +0 -1
  850. package/dist/domain/system-components/autorotate-camera-component.js +0 -1
  851. package/dist/domain/system-components/basic-sidebar-footer.js +0 -1
  852. package/dist/domain/system-components/camera-based-hidden-entity-object.js +0 -1
  853. package/dist/domain/system-components/camera-based-hidden-entity.js +0 -1
  854. package/dist/domain/system-components/canvas-config.js +0 -1
  855. package/dist/domain/system-components/canvas-custom-environment.js +0 -1
  856. package/dist/domain/system-components/canvas-padding.js +0 -1
  857. package/dist/domain/system-components/canvas-preset-environment.js +0 -1
  858. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +0 -1
  859. package/dist/domain/system-components/client-side-image.js +0 -1
  860. package/dist/domain/system-components/color-value.js +0 -1
  861. package/dist/domain/system-components/common/angle-indicator-schema.js +0 -1
  862. package/dist/domain/system-components/common/dimension-indicator-schema.js +0 -1
  863. package/dist/domain/system-components/custom-price-footer.js +0 -1
  864. package/dist/domain/system-components/dimension-indicator.js +0 -1
  865. package/dist/domain/system-components/editable-angle-indicator.js +0 -1
  866. package/dist/domain/system-components/editable-distance-dimension-indicator.js +0 -1
  867. package/dist/domain/system-components/editable-offset-indicator.js +0 -1
  868. package/dist/domain/system-components/editable-size-indicator.js +0 -1
  869. package/dist/domain/system-components/entity-header.js +0 -1
  870. package/dist/domain/system-components/exit-tool-mode-fab.js +0 -1
  871. package/dist/domain/system-components/finalize-action.js +0 -1
  872. package/dist/domain/system-components/finalize-component.js +0 -1
  873. package/dist/domain/system-components/fit-selection-orthographic-camera-component.js +0 -1
  874. package/dist/domain/system-components/fit-selection-perspective-camera-component.js +0 -1
  875. package/dist/domain/system-components/fixed-header.js +0 -1
  876. package/dist/domain/system-components/floating-header.js +0 -1
  877. package/dist/domain/system-components/hidden-header.js +0 -1
  878. package/dist/domain/system-components/hidden-sidebar-footer.js +0 -1
  879. package/dist/domain/system-components/horizontal-tabs.js +0 -1
  880. package/dist/domain/system-components/list-selector-dimension-indicator.js +0 -1
  881. package/dist/domain/system-components/multilingual-text-value.js +0 -1
  882. package/dist/domain/system-components/navigation-steps.js +0 -1
  883. package/dist/domain/system-components/offset-anchors.js +0 -1
  884. package/dist/domain/system-components/offset-indicator.js +0 -1
  885. package/dist/domain/system-components/offset.js +0 -1
  886. package/dist/domain/system-components/other-action.js +0 -1
  887. package/dist/domain/system-components/property-page.js +0 -1
  888. package/dist/domain/system-components/read-sidebar-footer.js +0 -1
  889. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +0 -1
  890. package/dist/domain/system-components/rotatable.js +0 -1
  891. package/dist/domain/system-components/rotation-handle.js +0 -1
  892. package/dist/domain/system-components/save-template-thumbnail.js +0 -1
  893. package/dist/domain/system-components/scene-entity-add-fab.js +0 -1
  894. package/dist/domain/system-components/scene-entity-animation.js +0 -1
  895. package/dist/domain/system-components/scene-entity-control.js +0 -1
  896. package/dist/domain/system-components/scene-entity-delete-fab.js +0 -1
  897. package/dist/domain/system-components/scene-entity-floor-object.js +0 -1
  898. package/dist/domain/system-components/scene-entity-html-hotspot.js +0 -1
  899. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +0 -1
  900. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +0 -1
  901. package/dist/domain/system-components/scene-entity-select-hotspot.js +0 -1
  902. package/dist/domain/system-components/scene-entity-wall-object.js +0 -1
  903. package/dist/domain/system-components/selectable-component.js +0 -1
  904. package/dist/domain/system-components/sidebar-tabs.js +0 -1
  905. package/dist/domain/system-components/simple-summary.js +0 -1
  906. package/dist/domain/system-components/size.js +0 -1
  907. package/dist/domain/system-components/sketching-draw.js +0 -1
  908. package/dist/domain/system-components/sketching-edit.js +0 -1
  909. package/dist/domain/system-components/summary-component.js +0 -1
  910. package/dist/domain/system-components/text-value.js +0 -1
  911. package/dist/domain/system-components/tool-controls.js +0 -1
  912. package/dist/domain/system-components/tool-menu-fab.js +0 -1
  913. package/dist/domain/system-components/universal-sidebar-footer.js +0 -1
  914. package/dist/domain/system-components/view-controls.js +0 -1
  915. package/dist/extras/assistant/AssistantChat.d.ts +0 -6
  916. package/dist/extras/assistant/AssistantChat.js +0 -1
  917. package/dist/extras/assistant/index.d.ts +0 -1
  918. package/dist/extras/assistant/index.js +0 -1
  919. package/dist/phoenix/application-spec/generate-assistant-prompt.d.ts +0 -12
  920. package/dist/phoenix/application-spec/generate-assistant-prompt.js +0 -1
  921. /package/dist/domain/{components/component-reader-types.js → application/assistant/assistant-manifest.js} +0 -0
  922. /package/dist/domain/{core/enhanced-json-schema.js → application/assistant/assistant-resolved-manifest.js} +0 -0
  923. /package/dist/domain/core/{expression.js → action/action.js} +0 -0
  924. /package/dist/domain/core/{schema-validator.js → component/component-reader-types.js} +0 -0
  925. /package/dist/domain/{components → core/component}/legacy-filter.js +0 -0
  926. /package/dist/domain/{components → core/component}/system-component-filter.js +0 -0
  927. /package/dist/domain/{components → core/component}/system-virtual-entity.d.ts +0 -0
  928. /package/dist/domain/{components → core/component}/updates.js +0 -0
  929. /package/dist/domain/{relations/reference-field.js → core/data-schema/data-cell-value.js} +0 -0
  930. /package/dist/domain/{relations/relation-implementation.js → core/data-schema/data-schema-array-field.js} +0 -0
  931. /package/dist/domain/{invariants → core/invariant}/builtin-invariant.js +0 -0
  932. /package/dist/domain/{invariants → core/invariant}/violation-component.d.ts +0 -0
  933. /package/dist/domain/{invariants → core/invariant}/violation.js +0 -0
  934. /package/dist/domain/core/{alias.d.ts → model/alias.d.ts} +0 -0
  935. /package/dist/domain/core/{alias.js → model/alias.js} +0 -0
  936. /package/dist/domain/core/{common-definitions.d.ts → model/common-definitions.d.ts} +0 -0
  937. /package/dist/domain/core/{common-definitions.js → model/common-definitions.js} +0 -0
  938. /package/dist/domain/core/{component.js → model/component.js} +0 -0
  939. /package/dist/domain/core/{model.d.ts → model/model.d.ts} +0 -0
  940. /package/dist/domain/core/{model.js → model/model.js} +0 -0
  941. /package/dist/domain/core/{preset.d.ts → model/preset.d.ts} +0 -0
  942. /package/dist/domain/core/{preset.js → model/preset.js} +0 -0
  943. /package/dist/domain/{relations → core/relation}/direct-relation.js +0 -0
  944. /package/dist/domain/{relations → core/relation}/relation-factory.js +0 -0
  945. /package/dist/domain/core/{schema-validator-ajv.d.ts → schema/create-ajv-schema-validator.d.ts} +0 -0
  946. /package/dist/domain/core/{schema-validator-ajv.js → schema/create-ajv-schema-validator.js} +0 -0
  947. /package/dist/domain/core/{schema-validator-csp.d.ts → schema/create-csp-schema-validator.d.ts} +0 -0
  948. /package/dist/domain/core/{schema-validator-csp.js → schema/create-csp-schema-validator.js} +0 -0
  949. /package/dist/domain/core/{enhanced-json-schema.d.ts → schema/enhanced-json-schema.d.ts} +0 -0
  950. /package/dist/domain/core/{json-schema.d.ts → schema/extended-schema-validator.d.ts} +0 -0
  951. /package/dist/domain/core/{schema-validator.d.ts → schema/schema-validator.d.ts} +0 -0
  952. /package/dist/domain/core/{migrations.js → state/migrations.js} +0 -0
  953. /package/dist/domain/core/{state.js → state/state.js} +0 -0
  954. /package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.js +0 -0
  955. /package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.js +0 -0
  956. /package/dist/domain/{system-components → extensions}/attribute-switch.d.ts +0 -0
  957. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.d.ts +0 -0
  958. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.d.ts +0 -0
  959. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.d.ts +0 -0
  960. /package/dist/domain/{system-components → extensions}/client-side-image.d.ts +0 -0
  961. /package/dist/domain/{system-components → extensions}/color-value.d.ts +0 -0
  962. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.d.ts +0 -0
  963. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.js +0 -0
  964. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.d.ts +0 -0
  965. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.js +0 -0
  966. /package/dist/domain/{system-components → extensions}/custom-price-footer.d.ts +0 -0
  967. /package/dist/domain/{system-components → extensions}/finalize-component.d.ts +0 -0
  968. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.d.ts +0 -0
  969. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.d.ts +0 -0
  970. /package/dist/domain/{system-components → extensions}/multilingual-text-value.d.ts +0 -0
  971. /package/dist/domain/{system-components → extensions}/navigation-steps.d.ts +0 -0
  972. /package/dist/domain/{system-components → extensions}/rotatable.d.ts +0 -0
  973. /package/dist/domain/{system-components → extensions}/rotation-handle.d.ts +0 -0
  974. /package/dist/domain/{system-components → extensions}/save-template-thumbnail.d.ts +0 -0
  975. /package/dist/domain/{system-components → extensions}/scene-entity-animation.d.ts +0 -0
  976. /package/dist/domain/{system-components → extensions}/scene-entity-control.d.ts +0 -0
  977. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.d.ts +0 -0
  978. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.d.ts +0 -0
  979. /package/dist/domain/{system-components → extensions}/selectable-component.d.ts +0 -0
  980. /package/dist/domain/{system-components → extensions}/simple-summary.d.ts +0 -0
  981. /package/dist/domain/{system-components → extensions}/summary-component.d.ts +0 -0
  982. /package/dist/domain/{system-components → extensions}/text-value.d.ts +0 -0
  983. /package/dist/domain/{system-components → extensions}/tool-controls.d.ts +0 -0
  984. /package/dist/domain/{system-components → extensions}/view-controls.d.ts +0 -0
@@ -1 +1 @@
1
- import{domainEntityTypeFromId as t,isDomainEntityId as e}from"../../core/model.js";import{isDeselectUpdate as n,isExportUpdate as i,isSelectUpdate as r}from"../navigation-system/navigation-updates.js";import{updateActions as o}from"./actions-builder.js";import{createBaseContext as a}from"./context.js";import{thenAndEntityAwareCausesBuilder as l,thenBuilder as s}from"./then-builder.js";export const entityBuilder=(d,f)=>{let p=(n,i,r,o)=>{let a=r.filter(t=>"replaceDomainEntity"===t.kind);if(0===a.length)return o?.("no-event","No replacement updates found, skipping transformer",{updates:r}),[];let l=a.filter(r=>e(r.entityId)&&(void 0===n||n.includes(t(r.entityId)))&&(void 0===i||i.includes(r.replacementEntity.type)));return 0===l.length?(o?.("no-match",`No replacement from ${n?.join(", ")??"any"} to ${i?.join(", ")??"any"} found, skipping transformer`,{updates:r}),[]):l};return{modified:e=>l(d,o(!0),f()((n,i,r,o,l)=>{let s=n.filter(t=>"modifyDomainEntity"===t.kind);if(0===s.length)return l?.("no-event","No modification updates found, skipping transformer",{updates:n}),[];let f=s.filter(e=>d.includes(t(e.entityId)));if(0===f.length)return l?.("no-match",`No modification updates for entity ${d.join(", ")}, skipping transformer`,{updates:n}),[];let p=f;if(e?.atFields!==void 0){if(0===(p=f.filter(t=>e.atFields.every(e=>Object.hasOwn(t.stateDelta,e)))).length)return l?.("no-match",`Entity ${d.join(", ")} modified, but not at field ${e.atFields.join(", ")}, skipping transformer`,{updates:n}),[];l?.("match",`Entity ${d.join(", ")} modified at field ${e.atFields.join(", ")}, processing transformer`,{updates:n})}else l?.("match",`Entity ${d.join(", ")} modified, processing transformer`,{updates:n});let c=a(o,i,r,n,l);return p.map(t=>{let e=t.entityId;return{...c,getOld$Entity:()=>o.domain.get$Entity(e,i),getNew$Entity:()=>o.domain.get$Entity(e,c.getNewState()),entityId:e,update:t}})})),created:()=>l(d,o(!0),f()((t,e,n,i,r)=>{let o=t.filter(t=>"createDomainEntity"===t.kind);if(0===o.length)return r?.("no-event","No entity creation updates found, skipping transformer",{updates:t}),[];let l=o.filter(t=>d.includes(t.entity.type));if(0===l.length)return r?.("no-match",`No creation updates for entity ${d.join(", ")}, skipping transformer`,{updates:t}),[];r?.("match",`Entity ${d.join(", ")} created, processing transformer`,{updates:t});let s=a(i,e,n,t,r);return l.map(t=>{let e=t.entityId;return{...s,getNew$Entity:()=>i.domain.get$Entity(e,s.getNewState()),entityId:e,update:t}})})),deleted:()=>l(d,o(!0),f()((n,i,r,o,l)=>{let s=n.filter(t=>"deleteEntity"===t.kind);if(0===s.length)return l?.("no-event","No entity deletion updates found, skipping transformer",{updates:n}),[];let f=s.filter(n=>e(n.entityId)&&d.includes(t(n.entityId)));if(0===f.length)return l?.("no-match",`No deletion updates for entity ${d.join(", ")}, skipping transformer`,{updates:n}),[];l?.("match",`Entity ${d.join(", ")} deleted, processing transformer`,{updates:n});let p=a(o,i,r,n,l);return f.map(t=>{let e=t.entityId;return{...p,getOld$Entity:()=>o.domain.get$Entity(e,i),entityId:e,update:t}})})),replaces:t=>l(d,o(!0),f()((e,n,i,r,o)=>{let l=p(t,d,e,o);if(0===l.length)return[];o?.("match",`Entity ${d.join(", ")} replaces ${t.join(", ")??"any"}, processing transformer`,{updates:e});let s=a(r,n,i,e,o);return l.map(t=>{let e=t.entityId,i=t.replacementEntity.id;return{...s,getReplacing$Entity:()=>r.domain.get$Entity(i,s.getNewState()),getReplaced$Entity:()=>r.domain.get$Entity(e,n),entityId:i,update:t}})})),replacedWith:t=>l(d,o(!0),f()((e,n,i,r,o)=>{let l=p(d,t,e,o);if(0===l.length)return[];o?.("match",`Entity ${d.join(", ")} replaced with ${t.join(", ")??"any"}, processing transformer`,{updates:e});let s=a(r,n,i,e,o);return l.map(t=>{let e=t.entityId,i=t.replacementEntity.id;return{...s,getReplacing$Entity:()=>r.domain.get$Entity(i,s.getNewState()),getReplaced$Entity:()=>r.domain.get$Entity(e,n),entityId:e,update:t}})})),selected:n=>l(d,o(!0),f()((i,o,l,s,f)=>{let p=i.filter(r);if(0===p.length)return f?.("no-event","No selection updates found, skipping transformer",{updates:i}),[];let c=p.filter(n=>e(n.writableState.selectedEntityId)&&d.includes(t(n.writableState.selectedEntityId)));if(0===c.length)return f?.("no-match",`No selection updates for entity ${d.join(", ")}, skipping transformer`,{updates:i}),[];let m=s.navigationSystem.getActiveSelectionState(o),y=t(m);if(n?.insteadOf!==void 0&&!n?.insteadOf?.includes(y))return f?.("no-match",`Entity ${d.join(", ")} selected, but not instead of ${d.join(", ")}, skipping transformer`,{updates:i}),[];let g=n?.occurrence??"initial",u="any"===g?c:c.filter(t=>"repeated"===g==(t.writableState.selectedEntityId===m));if(0===u.length)return"initial"===g?f?.("no-match",`Targeting initial selection, but the entity ${d.join(", ")} was res-selected, skipping transformer`,{updates:i}):f?.("no-match",`Targeting repeated selection, but the entity ${d.join(", ")} was selected initially, skipping transformer`,{updates:i}),[];f?.("match",`Entity ${d.join(", ")} selected, processing transformer`,{updates:i});let $=a(s,o,l,i,f);return u.map(t=>{let e=t.writableState.selectedEntityId;return{...$,getSelected$Entity:()=>s.domain.get$Entity(e,$.getNewState()),getDeselected$Entity:()=>s.domain.get$Entity(m,o),entityId:e,update:t}})})),deselected:e=>{if((e?.occurrence==="repeated"||e?.occurrence==="any")&&e?.inFavorOf!==void 0)throw Error("inFavorOf is not supported when occurrence is repeated or any");return l(d,o(!0),f()((i,o,l,s,f)=>{let p=i.filter(t=>r(t)||n(t));if(0===p.length)return f?.("no-event","No selection/deselection updates found, skipping transformer",{updates:i}),[];let c=s.navigationSystem.getActiveSelectionState(o),m=t(c);if(!d.includes(m))return f?.("no-match",`Deselected entity is of type ${m} and not ${d.join(", ")}, skipping transformer`,{updates:i}),[];let y=p.filter(t=>t.writableState.selectedEntityId!==c),g=e?.occurrence??"initial";if(0===y.length&&"initial"===g)return f?.("no-match","Entity has not truly been deselected, skipping transformer",{updates:i}),[];if(y.length>0&&"repeated"===g)return f?.("no-match","Entity has been deselected initially, but target occurrence is repeated, skipping transformer",{updates:i}),[];let u=y.length>0?y:p,$=e?.inFavorOf?u.filter(n=>e.inFavorOf?.includes(t(n.writableState.selectedEntityId))):u;if(0===$.length)return f?.("no-match",`Entity ${c} deselected but not in favor of ${e?.inFavorOf?.join(",")}, skipping transformer`,{updates:i}),[];f?.("match",`Entity ${d.join(", ")} deselected in favor of ${e?.inFavorOf?.join(",")??"any"}, processing transformer`,{updates:i});let h=a(s,o,l,i,f);return $.map(t=>{let e=t.writableState.selectedEntityId;return{...h,getSelected$Entity:()=>s.domain.get$Entity(e,h.getNewState()),getDeselected$Entity:()=>s.domain.get$Entity(c,o),entityId:c,update:t}})}))},violated:n=>s(o(!0),f()((i,r,o,l,s)=>{let{validity:f,state:p}=l.storeSystem.prepareStateEmissionWithoutTransformation(i,r,o);if(f.valid||"uncaught"===f.severity)return s?.("no-event","State is valid, skipping transformer",{validity:f}),[];let c=Array.from(new Set(f.entityViolations.filter(t=>n.includes(t.violation.type)).map(t=>t.entityId)));if(!c)return s?.("no-event",`No violations of type ${n.join(", ")} found, skipping transformer`,{validity:f}),[];let m=c.filter(n=>e(n)&&d.includes(t(n)));if(0===m.length)return s?.("no-match",`No violations of type ${n.join(", ")} found for entity ${d.join(", ")}, skipping transformer`,{validity:f}),[];s?.("no-match",`Violations of type ${n.join(", ")} found for entity ${d.join(", ")}, processing transformer`,{validity:f});let y=a(l,r,o,i,s);return m.map(t=>({...y,getViolated$Entity:()=>l.domain.get$Entity(t,p)}))})),exported:n=>l(d,o(!0),f()((r,o,l,s,f)=>{let p=r.filter(i);if(0===p.length)return f?.("no-event","No export updates found, skipping transformer",{updates:r}),[];let c=p.filter(t=>n.includes(t.writableState.activeState));if(0===c.length)return f?.("no-match",`No export updates matching states ${n.join(", ")}, skipping transformer`,{updates:r}),[];let m=c.filter(n=>e(n.writableState.exportedEntityId)&&d.includes(t(n.writableState.exportedEntityId)));if(0===m.length)return f?.("no-match",`No export updates for entity ${d.join(", ")} with states ${n.join(", ")}, skipping transformer`,{updates:r}),[];f?.("match",`Entity ${d.join(", ")} exported with state ${n.join(", ")}, processing transformer`,{updates:r});let y=a(s,o,l,r,f);return m.map(t=>{let e=t.writableState.exportedEntityId;return{...y,getExported$Entity:()=>s.domain.get$Entity(e,y.getNewState()),entityId:e,update:t,getExportState:()=>t.writableState.activeState}})}))}};
1
+ import{domainEntityTypeFromId as t,isDomainEntityId as e}from"../../core/index.js";import{isDeselectUpdate as n,isExportUpdate as i,isSelectUpdate as r}from"../navigation-system/navigation-updates.js";import{updateActions as o}from"./actions-builder.js";import{createBaseContext as a}from"./context.js";import{thenAndEntityAwareCausesBuilder as l,thenBuilder as s}from"./then-builder.js";export const entityBuilder=(d,f)=>{let p=(n,i,r,o)=>{let a=r.filter(t=>"replaceDomainEntity"===t.kind);if(0===a.length)return o?.("no-event","No replacement updates found, skipping transformer",{updates:r}),[];let l=a.filter(r=>e(r.entityId)&&(void 0===n||n.includes(t(r.entityId)))&&(void 0===i||i.includes(r.replacementEntity.type)));return 0===l.length?(o?.("no-match",`No replacement from ${n?.join(", ")??"any"} to ${i?.join(", ")??"any"} found, skipping transformer`,{updates:r}),[]):l};return{modified:e=>l(d,o(!0),f()((n,i,r,o,l)=>{let s=n.filter(t=>"modifyDomainEntity"===t.kind);if(0===s.length)return l?.("no-event","No modification updates found, skipping transformer",{updates:n}),[];let f=s.filter(e=>d.includes(t(e.entityId)));if(0===f.length)return l?.("no-match",`No modification updates for entity ${d.join(", ")}, skipping transformer`,{updates:n}),[];let p=f;if(e?.atFields!==void 0){if(0===(p=f.filter(t=>e.atFields.every(e=>Object.hasOwn(t.stateDelta,e)))).length)return l?.("no-match",`Entity ${d.join(", ")} modified, but not at field ${e.atFields.join(", ")}, skipping transformer`,{updates:n}),[];l?.("match",`Entity ${d.join(", ")} modified at field ${e.atFields.join(", ")}, processing transformer`,{updates:n})}else l?.("match",`Entity ${d.join(", ")} modified, processing transformer`,{updates:n});let c=a(o,i,r,n,l);return p.map(t=>{let e=t.entityId;return{...c,getOld$Entity:()=>o.domain.get$Entity(e,i),getNew$Entity:()=>o.domain.get$Entity(e,c.getNewState()),entityId:e,update:t}})})),created:()=>l(d,o(!0),f()((t,e,n,i,r)=>{let o=t.filter(t=>"createDomainEntity"===t.kind);if(0===o.length)return r?.("no-event","No entity creation updates found, skipping transformer",{updates:t}),[];let l=o.filter(t=>d.includes(t.entity.type));if(0===l.length)return r?.("no-match",`No creation updates for entity ${d.join(", ")}, skipping transformer`,{updates:t}),[];r?.("match",`Entity ${d.join(", ")} created, processing transformer`,{updates:t});let s=a(i,e,n,t,r);return l.map(t=>{let e=t.entityId;return{...s,getNew$Entity:()=>i.domain.get$Entity(e,s.getNewState()),entityId:e,update:t}})})),deleted:()=>l(d,o(!0),f()((n,i,r,o,l)=>{let s=n.filter(t=>"deleteEntity"===t.kind);if(0===s.length)return l?.("no-event","No entity deletion updates found, skipping transformer",{updates:n}),[];let f=s.filter(n=>e(n.entityId)&&d.includes(t(n.entityId)));if(0===f.length)return l?.("no-match",`No deletion updates for entity ${d.join(", ")}, skipping transformer`,{updates:n}),[];l?.("match",`Entity ${d.join(", ")} deleted, processing transformer`,{updates:n});let p=a(o,i,r,n,l);return f.map(t=>{let e=t.entityId;return{...p,getOld$Entity:()=>o.domain.get$Entity(e,i),entityId:e,update:t}})})),replaces:t=>l(d,o(!0),f()((e,n,i,r,o)=>{let l=p(t,d,e,o);if(0===l.length)return[];o?.("match",`Entity ${d.join(", ")} replaces ${t.join(", ")??"any"}, processing transformer`,{updates:e});let s=a(r,n,i,e,o);return l.map(t=>{let e=t.entityId,i=t.replacementEntity.id;return{...s,getReplacing$Entity:()=>r.domain.get$Entity(i,s.getNewState()),getReplaced$Entity:()=>r.domain.get$Entity(e,n),entityId:i,update:t}})})),replacedWith:t=>l(d,o(!0),f()((e,n,i,r,o)=>{let l=p(d,t,e,o);if(0===l.length)return[];o?.("match",`Entity ${d.join(", ")} replaced with ${t.join(", ")??"any"}, processing transformer`,{updates:e});let s=a(r,n,i,e,o);return l.map(t=>{let e=t.entityId,i=t.replacementEntity.id;return{...s,getReplacing$Entity:()=>r.domain.get$Entity(i,s.getNewState()),getReplaced$Entity:()=>r.domain.get$Entity(e,n),entityId:e,update:t}})})),selected:n=>l(d,o(!0),f()((i,o,l,s,f)=>{let p=i.filter(r);if(0===p.length)return f?.("no-event","No selection updates found, skipping transformer",{updates:i}),[];let c=p.filter(n=>e(n.writableState.selectedEntityId)&&d.includes(t(n.writableState.selectedEntityId)));if(0===c.length)return f?.("no-match",`No selection updates for entity ${d.join(", ")}, skipping transformer`,{updates:i}),[];let m=s.navigationSystem.getActiveSelectionState(o),y=t(m);if(n?.insteadOf!==void 0&&!n?.insteadOf?.includes(y))return f?.("no-match",`Entity ${d.join(", ")} selected, but not instead of ${d.join(", ")}, skipping transformer`,{updates:i}),[];let g=n?.occurrence??"initial",u="any"===g?c:c.filter(t=>"repeated"===g==(t.writableState.selectedEntityId===m));if(0===u.length)return"initial"===g?f?.("no-match",`Targeting initial selection, but the entity ${d.join(", ")} was res-selected, skipping transformer`,{updates:i}):f?.("no-match",`Targeting repeated selection, but the entity ${d.join(", ")} was selected initially, skipping transformer`,{updates:i}),[];f?.("match",`Entity ${d.join(", ")} selected, processing transformer`,{updates:i});let $=a(s,o,l,i,f);return u.map(t=>{let e=t.writableState.selectedEntityId;return{...$,getSelected$Entity:()=>s.domain.get$Entity(e,$.getNewState()),getDeselected$Entity:()=>s.domain.get$Entity(m,o),entityId:e,update:t}})})),deselected:e=>{if((e?.occurrence==="repeated"||e?.occurrence==="any")&&e?.inFavorOf!==void 0)throw Error("inFavorOf is not supported when occurrence is repeated or any");return l(d,o(!0),f()((i,o,l,s,f)=>{let p=i.filter(t=>r(t)||n(t));if(0===p.length)return f?.("no-event","No selection/deselection updates found, skipping transformer",{updates:i}),[];let c=s.navigationSystem.getActiveSelectionState(o),m=t(c);if(!d.includes(m))return f?.("no-match",`Deselected entity is of type ${m} and not ${d.join(", ")}, skipping transformer`,{updates:i}),[];let y=p.filter(t=>t.writableState.selectedEntityId!==c),g=e?.occurrence??"initial";if(0===y.length&&"initial"===g)return f?.("no-match","Entity has not truly been deselected, skipping transformer",{updates:i}),[];if(y.length>0&&"repeated"===g)return f?.("no-match","Entity has been deselected initially, but target occurrence is repeated, skipping transformer",{updates:i}),[];let u=y.length>0?y:p,$=e?.inFavorOf?u.filter(n=>e.inFavorOf?.includes(t(n.writableState.selectedEntityId))):u;if(0===$.length)return f?.("no-match",`Entity ${c} deselected but not in favor of ${e?.inFavorOf?.join(",")}, skipping transformer`,{updates:i}),[];f?.("match",`Entity ${d.join(", ")} deselected in favor of ${e?.inFavorOf?.join(",")??"any"}, processing transformer`,{updates:i});let h=a(s,o,l,i,f);return $.map(t=>{let e=t.writableState.selectedEntityId;return{...h,getSelected$Entity:()=>s.domain.get$Entity(e,h.getNewState()),getDeselected$Entity:()=>s.domain.get$Entity(c,o),entityId:c,update:t}})}))},violated:n=>s(o(!0),f()((i,r,o,l,s)=>{let{validity:f,state:p}=l.storeSystem.prepareStateEmissionWithoutTransformation(i,r,o);if(f.valid||"uncaught"===f.severity)return s?.("no-event","State is valid, skipping transformer",{validity:f}),[];let c=Array.from(new Set(f.entityViolations.filter(t=>n.includes(t.violation.type)).map(t=>t.entityId)));if(!c)return s?.("no-event",`No violations of type ${n.join(", ")} found, skipping transformer`,{validity:f}),[];let m=c.filter(n=>e(n)&&d.includes(t(n)));if(0===m.length)return s?.("no-match",`No violations of type ${n.join(", ")} found for entity ${d.join(", ")}, skipping transformer`,{validity:f}),[];s?.("no-match",`Violations of type ${n.join(", ")} found for entity ${d.join(", ")}, processing transformer`,{validity:f});let y=a(l,r,o,i,s);return m.map(t=>({...y,getViolated$Entity:()=>l.domain.get$Entity(t,p)}))})),exported:n=>l(d,o(!0),f()((r,o,l,s,f)=>{let p=r.filter(i);if(0===p.length)return f?.("no-event","No export updates found, skipping transformer",{updates:r}),[];let c=p.filter(t=>n.includes(t.writableState.activeState));if(0===c.length)return f?.("no-match",`No export updates matching states ${n.join(", ")}, skipping transformer`,{updates:r}),[];let m=c.filter(n=>e(n.writableState.exportedEntityId)&&d.includes(t(n.writableState.exportedEntityId)));if(0===m.length)return f?.("no-match",`No export updates for entity ${d.join(", ")} with states ${n.join(", ")}, skipping transformer`,{updates:r}),[];f?.("match",`Entity ${d.join(", ")} exported with state ${n.join(", ")}, processing transformer`,{updates:r});let y=a(s,o,l,r,f);return m.map(t=>{let e=t.writableState.exportedEntityId;return{...y,getExported$Entity:()=>s.domain.get$Entity(e,y.getNewState()),entityId:e,update:t,getExportState:()=>t.writableState.activeState}})}))}};
@@ -1,5 +1,4 @@
1
- import { type $DomainEntity, type DomainEntity, type DomainEntityId } from '../../core/model.js';
2
- import type { ViolationTypesOf$Entity } from '../../invariants/violation.js';
1
+ import { type $DomainEntity, type DomainEntity, type DomainEntityId, type ViolationTypesOf$Entity } from '../../core/index.js';
3
2
  import type { Actions, ActionsBuilder, AllActions } from './actions-builder.js';
4
3
  import type { BaseTransformerBuilderContext, ContextFactory, ContextWithEntityId, ContextWithUpdate, ContextWithUpdateAndEntityId } from './context.js';
5
4
  export type ThenBuilder<ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>, NAVIGATION_STATES extends string, VIEW_STATES extends string, TOOL_STATES extends string, EXPORT_STATES extends string, ACTIONS extends AllActions, CTX> = {
@@ -1 +1 @@
1
- import{isNonNullish as t}from"@salsita-ai/common/utils";import{domainEntityTypeFromId as e,isDomainEntityId as i}from"../../core/model.js";import{updateActions as n}from"./actions-builder.js";export const thenBuilder=(t,e)=>({then:t(e),and:i=>({then:t((t,n,r,o,a)=>{let s=e(t,n,r,o,a);if(!s.length)return[];let l=s.filter(i);return l.length||a?.("no-match","Custom `and` predicate did not match any update, skipping transformer"),l})})});export const tagBuilder=(t,e)=>({...thenBuilder(t,e),withTag:i=>thenBuilder(t,(t,n,r,o,a)=>{let s=e(t,n,r,o,a);if(!s.length)return[];let l=s.filter(t=>i.includes(t.update.updateTag));return l.length||a?.("no-match",`No matching update with tag ${i.join(", ")} found, skipping transformer`,{updates:t}),l})});export const causesBuilder=r=>({entity:o=>({withId:e=>({violation:i=>thenBuilder(n(!0),(n,o,a,s,l)=>{let u=r(n,o,a,s,l);if(!u.length)return[];let{validity:d,state:p}=s.storeSystem.prepareStateEmissionWithoutTransformation(n,o,a);if(d.valid||"uncaught"===d.severity)return l?.("no-event","No violations found, skipping transformer"),[];let f=d.entityViolations.filter(t=>i.includes(t.violation.type)).map(t=>t.entityId);if(0===f.length)return l?.("no-match",`No violations of type ${i.join(", ")} found, skipping transformer`),[];let m=u.map(t=>{let i=e(t);return i?{context:t,candidateEntityIds:Array.isArray(i)?i:[i]}:null}).filter(t);if(0===m.length)return l?.("no-resolve","No entities returned by the selector, skipping transformer"),[];let h=m.map(t=>({...t,violatedEntityIds:t.candidateEntityIds.filter(t=>f.includes(t))})).filter(t=>t.violatedEntityIds.length>0);return 0===h.length?(l?.("no-match",`No violations of type ${i.join(", ")} found for entities returned by the selector, skipping transformer`,{violatedEntityIds:f}),[]):h.map(t=>({...t.context,getViolated$Entities:()=>t.violatedEntityIds.map(t=>s.domain.get$Entity(t,p))}))})}),violation:a=>thenBuilder(n(!0),(n,s,l,u,d)=>{let{validity:p,state:f}=u.storeSystem.prepareStateEmissionWithoutTransformation(n,s,l);if(p.valid||"uncaught"===p.severity)return[];let m=p.entityViolations.map(t=>a.includes(t.violation.type)&&i(t.entityId)&&o.includes(e(t.entityId))?t.entityId:null).filter(t),h=r(n,s,l,u,d);return 0===m.length?[]:h.map(t=>({...t,getViolated$Entities:()=>m.map(t=>u.domain.get$Entity(t,f))}))})})});export const entityAwareCausesBuilder=(t,e)=>({...causesBuilder(e),self:{violation:i=>thenBuilder(n(!0),(n,r,o,a,s)=>{let{validity:l}=a.storeSystem.prepareStateEmissionWithoutTransformation(n,r,o);if(l.valid)return s?.("no-event","No violations found, skipping transformer",{validity:l}),[];if("uncaught"===l.severity)return s?.("no-event","Uncaught exception encountered while calculating new state, skipping transformer",{updates:n}),[];let u=new Set(l.entityViolations.filter(t=>i.includes(t.violation.type)).map(t=>t.entityId));if(0===u.size)return s?.("no-match",`No violations of type ${i.join(", ")} found for the ${t.join(", ")} entities, skipping transformer`,{entityIds:Array.from(u)}),[];let d=e(n,r,o,a,s),p=d.filter(t=>u.has(t.entityId));return 0===p.length&&s?.("no-match",`No violations of type ${i.join(", ")} found for entity ${d.map(t=>t.entityId).join(", ")}, skipping transformer`,{updates:n}),p})}});export const thenAndEntityAwareCausesBuilder=(t,e,i)=>({...tagBuilder(e,i),causes:entityAwareCausesBuilder(t,i)});export const thenAndCausesBuilder=(t,e)=>({...tagBuilder(t,e),causes:causesBuilder(e)});
1
+ import{isNonNullish as t}from"@salsita-ai/common/utils";import{domainEntityTypeFromId as e,isDomainEntityId as i}from"../../core/index.js";import{updateActions as n}from"./actions-builder.js";export const thenBuilder=(t,e)=>({then:t(e),and:i=>({then:t((t,n,r,o,a)=>{let s=e(t,n,r,o,a);if(!s.length)return[];let l=s.filter(i);return l.length||a?.("no-match","Custom `and` predicate did not match any update, skipping transformer"),l})})});export const tagBuilder=(t,e)=>({...thenBuilder(t,e),withTag:i=>thenBuilder(t,(t,n,r,o,a)=>{let s=e(t,n,r,o,a);if(!s.length)return[];let l=s.filter(t=>i.includes(t.update.updateTag));return l.length||a?.("no-match",`No matching update with tag ${i.join(", ")} found, skipping transformer`,{updates:t}),l})});export const causesBuilder=r=>({entity:o=>({withId:e=>({violation:i=>thenBuilder(n(!0),(n,o,a,s,l)=>{let u=r(n,o,a,s,l);if(!u.length)return[];let{validity:d,state:p}=s.storeSystem.prepareStateEmissionWithoutTransformation(n,o,a);if(d.valid||"uncaught"===d.severity)return l?.("no-event","No violations found, skipping transformer"),[];let f=d.entityViolations.filter(t=>i.includes(t.violation.type)).map(t=>t.entityId);if(0===f.length)return l?.("no-match",`No violations of type ${i.join(", ")} found, skipping transformer`),[];let m=u.map(t=>{let i=e(t);return i?{context:t,candidateEntityIds:Array.isArray(i)?i:[i]}:null}).filter(t);if(0===m.length)return l?.("no-resolve","No entities returned by the selector, skipping transformer"),[];let h=m.map(t=>({...t,violatedEntityIds:t.candidateEntityIds.filter(t=>f.includes(t))})).filter(t=>t.violatedEntityIds.length>0);return 0===h.length?(l?.("no-match",`No violations of type ${i.join(", ")} found for entities returned by the selector, skipping transformer`,{violatedEntityIds:f}),[]):h.map(t=>({...t.context,getViolated$Entities:()=>t.violatedEntityIds.map(t=>s.domain.get$Entity(t,p))}))})}),violation:a=>thenBuilder(n(!0),(n,s,l,u,d)=>{let{validity:p,state:f}=u.storeSystem.prepareStateEmissionWithoutTransformation(n,s,l);if(p.valid||"uncaught"===p.severity)return[];let m=p.entityViolations.map(t=>a.includes(t.violation.type)&&i(t.entityId)&&o.includes(e(t.entityId))?t.entityId:null).filter(t),h=r(n,s,l,u,d);return 0===m.length?[]:h.map(t=>({...t,getViolated$Entities:()=>m.map(t=>u.domain.get$Entity(t,f))}))})})});export const entityAwareCausesBuilder=(t,e)=>({...causesBuilder(e),self:{violation:i=>thenBuilder(n(!0),(n,r,o,a,s)=>{let{validity:l}=a.storeSystem.prepareStateEmissionWithoutTransformation(n,r,o);if(l.valid)return s?.("no-event","No violations found, skipping transformer",{validity:l}),[];if("uncaught"===l.severity)return s?.("no-event","Uncaught exception encountered while calculating new state, skipping transformer",{updates:n}),[];let u=new Set(l.entityViolations.filter(t=>i.includes(t.violation.type)).map(t=>t.entityId));if(0===u.size)return s?.("no-match",`No violations of type ${i.join(", ")} found for the ${t.join(", ")} entities, skipping transformer`,{entityIds:Array.from(u)}),[];let d=e(n,r,o,a,s),p=d.filter(t=>u.has(t.entityId));return 0===p.length&&s?.("no-match",`No violations of type ${i.join(", ")} found for entity ${d.map(t=>t.entityId).join(", ")}, skipping transformer`,{updates:n}),p})}});export const thenAndEntityAwareCausesBuilder=(t,e,i)=>({...tagBuilder(e,i),causes:entityAwareCausesBuilder(t,i)});export const thenAndCausesBuilder=(t,e)=>({...tagBuilder(t,e),causes:causesBuilder(e)});
@@ -1,9 +1,4 @@
1
- import type { navigationStateComponent } from '../../components/navigation-state-component.js';
2
- import type { toolStateComponent } from '../../components/tool-state-component.js';
3
- import type { ComponentModification, EphemeralRecordModification, StateUpdate } from '../../components/updates.js';
4
- import type { viewStateComponent } from '../../components/view-state-component.js';
5
- import type { SystemComponentTypeConstraint } from '../../core/component.js';
6
- import { type $DomainEntity, type DomainEntity, type DomainEntityId } from '../../core/model.js';
1
+ import { type $DomainEntity, type ComponentModification, type DomainEntity, type DomainEntityId, type EphemeralRecordModification, type StateUpdate, type SystemComponentTypeConstraint, type navigationStateComponent, type toolStateComponent, type viewStateComponent } from '../../core/index.js';
7
2
  import type { DragHandleComponent } from '../../system-components/drag-handle.js';
8
3
  import type { HotspotDragHandleComponent } from '../../system-components/hotspot-drag-handle.js';
9
4
  import type { StateEmissionKind } from '../store-system/store-system.js';
@@ -1 +1 @@
1
- import{domainEntityTypeFromId as t,isDomainEntityId as e}from"../../core/model.js";import{isNavigationUpdate as n,isToolUpdate as o,isViewUpdate as i}from"../navigation-system/navigation-updates.js";import{updateActions as r}from"./actions-builder.js";import{isAutoSnapUpdate as a}from"./auto-snap-transformer.js";import{createBaseContext as s}from"./context.js";import{entityBuilder as m}from"./entity-builder.js";import{tagBuilder as l,thenAndCausesBuilder as f,thenBuilder as d}from"./then-builder.js";let p=n=>({...l(r(!1),n),onEntity:o=>l(r(!1),(i,r,a,s,m)=>{let l=n(i,r,a,s,m);if(!l.length)return[];let f=l.filter(n=>e(n.update.entityId)&&o.includes(t(n.update.entityId)));return f.length||m?.("no-match",`No matching update for entity ${o.join(", ")} found, skipping transformer`,{updates:i}),f.map(t=>{let e=t.update.entityId;return{...t,getOld$Entity:()=>s.domain.get$Entity(e,r),getNew$Entity:()=>s.domain.get$Entity(e,t.getNewState()),entityId:e}})})}),g=(t,e,n)=>p(t()((t,o,i,r,a)=>{let m=t.filter(t=>"modifyComponent"===t.kind);if(0===m.length)return a?.("no-event","No component modification updates found, skipping transformer",{updates:t}),[];let l=m.filter(t=>e.includes(t.componentInstance.componentType));return 0===l.length?(a?.("no-match",`No modification updates for component ${e.join(", ")}, skipping transformer`,{updates:t}),[]):(void 0===n?l:l.filter(t=>n.includes(t.componentInstance.instanceName))).map(e=>({...s(r,o,i,t,a),update:e}))}));export const whenBuilder=t=>({component:e=>({modified:g(t,e),instance:n=>({modified:g(t,e,n)})}),update:e=>({fired:p(t()((t,n,o,i,r)=>{let a=t.filter(t=>e.includes(t.kind));return 0===a.length?(r?.("no-event",`No updates of kind ${e.join(", ")} found, skipping transformer`,{updates:t}),[]):a.map(e=>({...s(i,n,o,t,r),update:e}))}))}),entity:e=>m(e,t),snapped:()=>f(r(!0),t()((t,e,n,o,i)=>{let r=t.filter(a);if(0===r.length)return i?.("no-event","No auto-snap updates found, skipping transformer",{updates:t}),[];i?.("match",`Found ${r.length} auto-snap update(s), processing transformer`);let m=s(o,e,n,t,i);return r.map(t=>({...m,update:t,entityId:t.componentInstance.entityId,snapMatch:t.metadata.snapMatch,snapType:t.metadata.snapType}))})),navigated:e=>f(r(!0),t()((t,o,i,r,a)=>{let m=t.filter(n);if(0===m.length)return a?.("no-event","No navigation updates found, skipping transformer",{updates:t}),[];let l=m.filter(t=>{let n=t.writableState.activeState,i=r.navigationSystem.getActiveNavigationState(o);return(e?.to===void 0||e.to.includes(n))&&(e?.from===void 0||e.from.includes(i))});if(0===l.length)return a?.("no-match",`No navigation updates matching filter from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, skipping transformer`,{updates:t}),[];a?.("match",`Navigation state changed from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, processing transformer`,{updates:t});let f=s(r,o,i,t,a);return l.map(t=>{let e=t.writableState.activeState,n=r.navigationSystem.getActiveNavigationState(o);return{...f,update:t,getFrom:()=>n,getTo:()=>e}})})),viewChanged:e=>f(r(!0),t()((t,n,o,r,a)=>{let m=t.filter(i);if(0===m.length)return a?.("no-event","No view updates found, skipping transformer",{updates:t}),[];let l=m.filter(t=>{let o=t.writableState.activeState,i=r.navigationSystem.getActiveViewState(n);return(e?.to===void 0||e.to.includes(o))&&(e?.from===void 0||e.from.includes(i))});if(0===l.length)return a?.("no-match",`No view updates matching filter from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, skipping transformer`,{updates:t}),[];a?.("match",`View state changed from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, processing transformer`,{updates:t});let f=s(r,n,o,t,a);return l.map(t=>{let e=t.writableState.activeState,o=r.navigationSystem.getActiveViewState(n);return{...f,update:t,getFrom:()=>o,getTo:()=>e}})})),toolChanged:e=>f(r(!0),t()((t,n,i,r,a)=>{let m=t.filter(o);if(0===m.length)return a?.("no-event","No tool updates found, skipping transformer",{updates:t}),[];let l=m.filter(t=>{let o=t.writableState.activeState,i=r.navigationSystem.getActiveToolState(n);return(e?.to===void 0||e.to.includes(o))&&(e?.from===void 0||e.from.includes(i))});if(0===l.length)return a?.("no-match",`No tool updates matching filter from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, skipping transformer`,{updates:t}),[];a?.("match",`Tool state changed from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, processing transformer`,{updates:t});let f=s(r,n,i,t,a);return l.map(t=>{let e=t.writableState.activeState,o=r.navigationSystem.getActiveToolState(n);return{...f,update:t,getFrom:()=>o,getTo:()=>e}})}))});export const createTransformerBuilder=()=>({when:whenBuilder(()=>t=>t),onEmissionsOfKind:t=>({when:whenBuilder(()=>e=>(n,o,i,r,a)=>t.includes(i)?e(n,o,i,r,a):(a?.("no-event",`Emission kind ${i} is not supposed to trigger this transformer, only ${t.join(", ")} is, skipping transformer`,{updates:n}),[]))}),always:d(r(!1),(t,e,n,o,i)=>[s(o,e,n,t,i)])});
1
+ import{domainEntityTypeFromId as t,isDomainEntityId as e}from"../../core/index.js";import{isNavigationUpdate as n,isToolUpdate as o,isViewUpdate as i}from"../navigation-system/navigation-updates.js";import{updateActions as r}from"./actions-builder.js";import{isAutoSnapUpdate as a}from"./auto-snap-transformer.js";import{createBaseContext as s}from"./context.js";import{entityBuilder as m}from"./entity-builder.js";import{tagBuilder as f,thenAndCausesBuilder as l,thenBuilder as d}from"./then-builder.js";let p=n=>({...f(r(!1),n),onEntity:o=>f(r(!1),(i,r,a,s,m)=>{let f=n(i,r,a,s,m);if(!f.length)return[];let l=f.filter(n=>e(n.update.entityId)&&o.includes(t(n.update.entityId)));return l.length||m?.("no-match",`No matching update for entity ${o.join(", ")} found, skipping transformer`,{updates:i}),l.map(t=>{let e=t.update.entityId;return{...t,getOld$Entity:()=>s.domain.get$Entity(e,r),getNew$Entity:()=>s.domain.get$Entity(e,t.getNewState()),entityId:e}})})}),g=(t,e,n)=>p(t()((t,o,i,r,a)=>{let m=t.filter(t=>"modifyComponent"===t.kind);if(0===m.length)return a?.("no-event","No component modification updates found, skipping transformer",{updates:t}),[];let f=m.filter(t=>e.includes(t.componentInstance.componentType));return 0===f.length?(a?.("no-match",`No modification updates for component ${e.join(", ")}, skipping transformer`,{updates:t}),[]):(void 0===n?f:f.filter(t=>n.includes(t.componentInstance.instanceName))).map(e=>({...s(r,o,i,t,a),update:e}))}));export const whenBuilder=t=>({component:e=>({modified:g(t,e),instance:n=>({modified:g(t,e,n)})}),update:e=>({fired:p(t()((t,n,o,i,r)=>{let a=t.filter(t=>e.includes(t.kind));return 0===a.length?(r?.("no-event",`No updates of kind ${e.join(", ")} found, skipping transformer`,{updates:t}),[]):a.map(e=>({...s(i,n,o,t,r),update:e}))}))}),entity:e=>m(e,t),snapped:()=>l(r(!0),t()((t,e,n,o,i)=>{let r=t.filter(a);if(0===r.length)return i?.("no-event","No auto-snap updates found, skipping transformer",{updates:t}),[];i?.("match",`Found ${r.length} auto-snap update(s), processing transformer`);let m=s(o,e,n,t,i);return r.map(t=>({...m,update:t,entityId:t.componentInstance.entityId,snapMatch:t.metadata.snapMatch,snapType:t.metadata.snapType}))})),navigated:e=>l(r(!0),t()((t,o,i,r,a)=>{let m=t.filter(n);if(0===m.length)return a?.("no-event","No navigation updates found, skipping transformer",{updates:t}),[];let f=m.filter(t=>{let n=t.writableState.activeState,i=r.navigationSystem.getActiveNavigationState(o);return(e?.to===void 0||e.to.includes(n))&&(e?.from===void 0||e.from.includes(i))});if(0===f.length)return a?.("no-match",`No navigation updates matching filter from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, skipping transformer`,{updates:t}),[];a?.("match",`Navigation state changed from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, processing transformer`,{updates:t});let l=s(r,o,i,t,a);return f.map(t=>{let e=t.writableState.activeState,n=r.navigationSystem.getActiveNavigationState(o);return{...l,update:t,getFrom:()=>n,getTo:()=>e}})})),viewChanged:e=>l(r(!0),t()((t,n,o,r,a)=>{let m=t.filter(i);if(0===m.length)return a?.("no-event","No view updates found, skipping transformer",{updates:t}),[];let f=m.filter(t=>{let o=t.writableState.activeState,i=r.navigationSystem.getActiveViewState(n);return(e?.to===void 0||e.to.includes(o))&&(e?.from===void 0||e.from.includes(i))});if(0===f.length)return a?.("no-match",`No view updates matching filter from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, skipping transformer`,{updates:t}),[];a?.("match",`View state changed from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, processing transformer`,{updates:t});let l=s(r,n,o,t,a);return f.map(t=>{let e=t.writableState.activeState,o=r.navigationSystem.getActiveViewState(n);return{...l,update:t,getFrom:()=>o,getTo:()=>e}})})),toolChanged:e=>l(r(!0),t()((t,n,i,r,a)=>{let m=t.filter(o);if(0===m.length)return a?.("no-event","No tool updates found, skipping transformer",{updates:t}),[];let f=m.filter(t=>{let o=t.writableState.activeState,i=r.navigationSystem.getActiveToolState(n);return(e?.to===void 0||e.to.includes(o))&&(e?.from===void 0||e.from.includes(i))});if(0===f.length)return a?.("no-match",`No tool updates matching filter from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, skipping transformer`,{updates:t}),[];a?.("match",`Tool state changed from ${e?.from?.join(", ")??"any"} to ${e?.to?.join(", ")??"any"}, processing transformer`,{updates:t});let l=s(r,n,i,t,a);return f.map(t=>{let e=t.writableState.activeState,o=r.navigationSystem.getActiveToolState(n);return{...l,update:t,getFrom:()=>o,getTo:()=>e}})}))});export const createTransformerBuilder=()=>({when:whenBuilder(()=>t=>t),onEmissionsOfKind:t=>({when:whenBuilder(()=>e=>(n,o,i,r,a)=>t.includes(i)?e(n,o,i,r,a):(a?.("no-event",`Emission kind ${i} is not supposed to trigger this transformer, only ${t.join(", ")} is, skipping transformer`,{updates:n}),[]))}),always:d(r(!1),(t,e,n,o,i)=>[s(o,e,n,t,i)])});
@@ -1,7 +1,6 @@
1
1
  import type { ObservableWithLastValue } from '@salsita-ai/common/utils';
2
- import type { $DomainEntity, DomainEntity } from '../core/model.js';
2
+ import type { $DomainEntity, DomainEntity, ResetStateEmission, StateEmission } from '../core/index.js';
3
3
  import type { DomainContextSelectors } from '../domain-runtime/domain-context/index.js';
4
- import type { ResetStateEmission, StateEmission } from './store-system/store-system.js';
5
4
  export interface UndoCapabilities {
6
5
  readonly canUndo: boolean;
7
6
  readonly canRedo: boolean;
@@ -0,0 +1,11 @@
1
+ import type { $DomainEntity, DomainEntity, OpenActionContext } from '../../core/index.js';
2
+ import type { DomainContextSystems } from '../../domain-context/index.js';
3
+ import type { RuntimeExpressionContext } from './runtime-expression-context.js';
4
+ /**
5
+ * The context the domain runtime runs an action implementation with: core's part, with the
6
+ * expression context the runtime evaluates expressions in and the domain systems of the application.
7
+ * `ActionSystem.createContext` builds it.
8
+ */
9
+ export interface ActionContext<ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, NAVIGATION_STATES extends string, VIEW_STATES extends string, TOOL_STATES extends string, EXPORT_STATES extends string> extends OpenActionContext<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, RuntimeExpressionContext<ENTITIES>, DomainContextSystems<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES>> {
10
+ }
11
+ export type AnyActionContext = ActionContext<any, any, any, any, any, any, any, any, any, any>;
@@ -1,7 +1,4 @@
1
- import type { FilteredOutComponentSnapshot, ManyComponentFilter, OneComponentFilter } from '../../components/component-reader-types.js';
2
- import { type ComponentSnapshot, type SystemComponentTypeConstraint } from '../../core/component.js';
3
- import type { DomainEntity, EntityId } from '../../core/model.js';
4
- import type { DomainState } from '../../core/state.js';
1
+ import { type ComponentSnapshot, type DomainEntity, type DomainState, type EntityId, type FilteredOutComponentSnapshot, type ManyComponentFilter, type OneComponentFilter, type SystemComponentTypeConstraint } from '../../core/index.js';
5
2
  import type { DomainContextSelectors } from './selectors.js';
6
3
  export interface ComponentReaderContext {
7
4
  readonly selectors: DomainContextSelectors;
@@ -1 +1 @@
1
- import{getComponentSystemFilterState as e,isComponentActive as n}from"../../components/system-component-filter.js";import{domainEntityTypeFromId as t,isDomainEntityId as o}from"../../core/model.js";let i=class InternalFilter{componentTypes;entityIds;instanceNames;constructor(e){"entityId"in e&&void 0!==e.entityId&&(this.entityIds=new Set([e.entityId])),"entityIds"in e&&void 0!==e.entityIds&&(this.entityIds=new Set(e.entityIds)),"instanceName"in e&&void 0!==e.instanceName&&(this.instanceNames=new Set([e.instanceName])),"instanceNames"in e&&void 0!==e.instanceNames&&(this.instanceNames=new Set(e.instanceNames)),"componentType"in e&&void 0!==e.componentType&&(this.componentTypes=new Set([e.componentType])),"componentTypes"in e&&void 0!==e.componentTypes&&(this.componentTypes=new Set(e.componentTypes))}toString(){let e=this.instanceNames&&Array.from(this.instanceNames).join(", "),n=this.componentTypes&&Array.from(this.componentTypes).map(e=>e.name).join(", "),t=this.entityIds&&Array.from(this.entityIds).map(e=>`#${String(e)}`).join(", ");return[e?`instance ${e} of`:void 0,n?`component ${n}`:void 0,t?`on entity ${t}`:void 0].filter(Boolean).join(" ")}},s=new WeakMap;export class ComponentReader{_context;constructor(e){this._context=e}_resolveDynamicInstanceName=(e,n,t,o)=>{let i=o.dynamicInstanceNames.get(e)?.get(n);if(!i)return null;for(let e of i)if(t.startsWith(`${e}_`))return e;return null};_readComponents(i,a,c,m=!1){let p=e(a),r=this._context.selectors.getExpressionContext(),l=this._context.selectors.getComponentReaderIndexes(),d=[],y=void 0!==i.entityIds?[]:void 0;if(void 0!==i.entityIds)for(let e of i.entityIds)o(e)&&y?.push(e);if(void 0===y||y.length>0){let e=y??a.entities,o=void 0!==y?new Map:void 0;for(let y of e){let e="string"==typeof y?y:y.id;if(void 0!==o){if(o.has(e))continue;o.set(e,!0)}let f="string"==typeof y?t(e):y.type;for(let t of i.componentTypes??l.allComponentTypes.get(f)??[])for(let o of i.instanceNames??l.allComponentInstanceNames.get(f)?.get(t)??[]){let i=l.opticMap.get(f)?.get(t)?.get(o),y=i?null:this._resolveDynamicInstanceName(f,t,o,l),h=y?l.opticMap.get(f)?.get(t)?.get(y):void 0,I=i??h;if(!I)continue;let u=0===I.navigationFilters.length||n(p,I.navigationFilters,e,a,r,m);if(!0!==u){m&&d.push({componentInstance:{componentType:t,entityId:e,instanceName:o},filteredOut:!0,filterState:p,filterContext:{mode:r.mode,role:r.role},mismatchReasons:u});continue}if("simple"===I.kind){let n=I.read(e,a,r),t=s.get(n);if(!t||t.componentInstance.entityId!==e||t.componentInstance.componentType!==I.componentType||t.componentInstance.instanceName!==I.instanceName){let o={state:n,componentInstance:{componentType:I.componentType,entityId:e,instanceName:I.instanceName}};s.set(n,o),t=o}if(d.push(t),c)return d}else{let n=I.read(e,a,r),t=new Set;for(let i of n){let n=I.instanceName+`_${i.key}`;if(null!==y&&o!==n)continue;if(t.has(n))throw Error(`Cannot read dynamic component instance ${I.instanceName} for component ${I.componentType.name} on entity ${e} because it emitted duplicate compound instance ${n}. Make emitted keys unique for this component instance.`);t.add(n);let a=s.get(i);if(!a||a.componentInstance.entityId!==e||a.componentInstance.componentType!==I.componentType||a.componentInstance.instanceName!==n){let t={state:function(e){let n={};for(let t in e)"key"!==t&&(n[t]=e[t]);return n}(i),componentInstance:{componentType:I.componentType,entityId:e,instanceName:n}};s.set(i,t),a=t}if(d.push(a),c)return d}}}}}for(let e of a.ephemeralRecords)if((void 0===i.entityIds||i.entityIds.has(e.componentInstance.entityId))&&(void 0===i.componentTypes||i.componentTypes.has(e.componentInstance.componentType))&&(void 0===i.instanceNames||i.instanceNames.has(e.componentInstance.instanceName))&&(d.push(e),c))break;return d}readOneComponent(e,n){let t=new i(e),o=this._readComponents(t,n,!1);if(o.length>1)throw Error(`Expected component ${e.componentType.name} to be attached only once to entity #${String(e.entityId)}, but found ${o.length} instances`);return o.length>0?o[0]:null}readManyComponents(e,n){let t=new i(e);return this._readComponents(t,n,!1)}readFirstComponent(e,n){let t=new i(e),o=this._readComponents(t,n,!0);return o.length>0?o[0]:null}readFirstRootComponent(e,n){let t=new i({...e,entityIds:[n.rootEntityId]}),o=this._readComponents(t,n,!0);return o.length>0?o[0]:null}readOneComponentOrThrow(e,n){let t=this.readOneComponent(e,n);if(null===t){let n=new i(e);throw Error(`Cannot read ${n.toString()} because such component is not attached`)}return t}isComponentTypeAttached=e=>{let n,i,s,{componentTypes:a,instanceNames:c,entityTypes:m}=("componentTypes"in e&&(n=e.componentTypes),"componentType"in e&&e.componentType&&(n=[e.componentType]),"instanceNames"in e&&(i=e.instanceNames),"instanceName"in e&&e.instanceName&&(i=[e.instanceName]),"entityIds"in e&&e.entityIds&&(s=e.entityIds.filter(o).map(e=>t(e))),"entityId"in e&&e.entityId&&(s=o(e.entityId)?[t(e.entityId)]:[]),{componentTypes:n,instanceNames:i,entityTypes:s}),p=this._context.selectors.getComponentReaderIndexes();for(let e of m??Array.from(p.allComponentTypes.keys()))for(let n of a??p.allComponentTypes.get(e)??[])for(let t of c??p.allComponentInstanceNames.get(e)?.get(n)??[])if(p.opticMap.get(e)?.get(n)?.get(t)||this._resolveDynamicInstanceName(e,n,t,p))return!0;return!1};peekManyComponents(e,n){let t=new i(e);return this._readComponents(t,n,!1,!0)}}
1
+ import{domainEntityTypeFromId as e,getComponentSystemFilterState as n,isComponentActive as t,isDomainEntityId as o}from"../../core/index.js";let i=class InternalFilter{componentTypes;entityIds;instanceNames;constructor(e){"entityId"in e&&void 0!==e.entityId&&(this.entityIds=new Set([e.entityId])),"entityIds"in e&&void 0!==e.entityIds&&(this.entityIds=new Set(e.entityIds)),"instanceName"in e&&void 0!==e.instanceName&&(this.instanceNames=new Set([e.instanceName])),"instanceNames"in e&&void 0!==e.instanceNames&&(this.instanceNames=new Set(e.instanceNames)),"componentType"in e&&void 0!==e.componentType&&(this.componentTypes=new Set([e.componentType])),"componentTypes"in e&&void 0!==e.componentTypes&&(this.componentTypes=new Set(e.componentTypes))}toString(){let e=this.instanceNames&&Array.from(this.instanceNames).join(", "),n=this.componentTypes&&Array.from(this.componentTypes).map(e=>e.name).join(", "),t=this.entityIds&&Array.from(this.entityIds).map(e=>`#${String(e)}`).join(", ");return[e?`instance ${e} of`:void 0,n?`component ${n}`:void 0,t?`on entity ${t}`:void 0].filter(Boolean).join(" ")}},s=new WeakMap;export class ComponentReader{_context;constructor(e){this._context=e}_resolveDynamicInstanceName=(e,n,t,o)=>{let i=o.dynamicInstanceNames.get(e)?.get(n);if(!i)return null;for(let e of i)if(t.startsWith(`${e}_`))return e;return null};_readComponents(i,a,c,p=!1){let m=n(a),r=this._context.selectors.getExpressionContext(),l=this._context.selectors.getComponentReaderIndexes(),d=[],y=void 0!==i.entityIds?[]:void 0;if(void 0!==i.entityIds)for(let e of i.entityIds)o(e)&&y?.push(e);if(void 0===y||y.length>0){let n=y??a.entities,o=void 0!==y?new Map:void 0;for(let y of n){let n="string"==typeof y?y:y.id;if(void 0!==o){if(o.has(n))continue;o.set(n,!0)}let f="string"==typeof y?e(n):y.type;for(let e of i.componentTypes??l.allComponentTypes.get(f)??[])for(let o of i.instanceNames??l.allComponentInstanceNames.get(f)?.get(e)??[]){let i=l.opticMap.get(f)?.get(e)?.get(o),y=i?null:this._resolveDynamicInstanceName(f,e,o,l),h=y?l.opticMap.get(f)?.get(e)?.get(y):void 0,I=i??h;if(!I)continue;let u=0===I.navigationFilters.length||t(m,I.navigationFilters,n,a,r,p);if(!0!==u){p&&d.push({componentInstance:{componentType:e,entityId:n,instanceName:o},filteredOut:!0,filterState:m,filterContext:{mode:r.mode,role:r.role},mismatchReasons:u});continue}if("simple"===I.kind){let e=I.read(n,a,r),t=s.get(e);if(!t||t.componentInstance.entityId!==n||t.componentInstance.componentType!==I.componentType||t.componentInstance.instanceName!==I.instanceName){let o={state:e,componentInstance:{componentType:I.componentType,entityId:n,instanceName:I.instanceName}};s.set(e,o),t=o}if(d.push(t),c)return d}else{let e=I.read(n,a,r),t=new Set;for(let i of e){let e=I.instanceName+`_${i.key}`;if(null!==y&&o!==e)continue;if(t.has(e))throw Error(`Cannot read dynamic component instance ${I.instanceName} for component ${I.componentType.name} on entity ${n} because it emitted duplicate compound instance ${e}. Make emitted keys unique for this component instance.`);t.add(e);let a=s.get(i);if(!a||a.componentInstance.entityId!==n||a.componentInstance.componentType!==I.componentType||a.componentInstance.instanceName!==e){let t={state:function(e){let n={};for(let t in e)"key"!==t&&(n[t]=e[t]);return n}(i),componentInstance:{componentType:I.componentType,entityId:n,instanceName:e}};s.set(i,t),a=t}if(d.push(a),c)return d}}}}}for(let e of a.ephemeralRecords)if((void 0===i.entityIds||i.entityIds.has(e.componentInstance.entityId))&&(void 0===i.componentTypes||i.componentTypes.has(e.componentInstance.componentType))&&(void 0===i.instanceNames||i.instanceNames.has(e.componentInstance.instanceName))&&(d.push(e),c))break;return d}readOneComponent(e,n){let t=new i(e),o=this._readComponents(t,n,!1);if(o.length>1)throw Error(`Expected component ${e.componentType.name} to be attached only once to entity #${String(e.entityId)}, but found ${o.length} instances`);return o.length>0?o[0]:null}readManyComponents(e,n){let t=new i(e);return this._readComponents(t,n,!1)}readFirstComponent(e,n){let t=new i(e),o=this._readComponents(t,n,!0);return o.length>0?o[0]:null}readFirstRootComponent(e,n){let t=new i({...e,entityIds:[n.rootEntityId]}),o=this._readComponents(t,n,!0);return o.length>0?o[0]:null}readOneComponentOrThrow(e,n){let t=this.readOneComponent(e,n);if(null===t){let n=new i(e);throw Error(`Cannot read ${n.toString()} because such component is not attached`)}return t}isComponentTypeAttached=n=>{let t,i,s,{componentTypes:a,instanceNames:c,entityTypes:p}=("componentTypes"in n&&(t=n.componentTypes),"componentType"in n&&n.componentType&&(t=[n.componentType]),"instanceNames"in n&&(i=n.instanceNames),"instanceName"in n&&n.instanceName&&(i=[n.instanceName]),"entityIds"in n&&n.entityIds&&(s=n.entityIds.filter(o).map(n=>e(n))),"entityId"in n&&n.entityId&&(s=o(n.entityId)?[e(n.entityId)]:[]),{componentTypes:t,instanceNames:i,entityTypes:s}),m=this._context.selectors.getComponentReaderIndexes();for(let e of p??Array.from(m.allComponentTypes.keys()))for(let n of a??m.allComponentTypes.get(e)??[])for(let t of c??m.allComponentInstanceNames.get(e)?.get(n)??[])if(m.opticMap.get(e)?.get(n)?.get(t)||this._resolveDynamicInstanceName(e,n,t,m))return!0;return!1};peekManyComponents(e,n){let t=new i(e);return this._readComponents(t,n,!1,!0)}}
@@ -1 +1 @@
1
- import{createCascadeDeletesTransformer as e}from"../../domain-context/relation-transformers/cascade-deletes.js";import{createCascadeRefPruningTransformer as t}from"../../domain-context/relation-transformers/cascade-ref-pruning.js";import{createCreateEntityRefsTransformer as s}from"../../domain-context/relation-transformers/create-entity-refs.js";import{createRefReplaceTransformer as r}from"../../domain-context/relation-transformers/replace-refs.js";import{createAutoSnapTransformer as n}from"../../domain-context/transformers/auto-snap-transformer.js";export class DomainContext{_context;_connected=!1;_activeCreateTransformers=void 0;_userTransformerUnregisters=[];_lastExpressionContext=null;_lastDomainExpressions=null;_lastComponentReaderIndexes=null;_lastLoadedData=null;constructor(e){this._context=e}initialize(){let{selectors:o,actions:a,getExtensionSystems:i}=this._context;this._assertSchemaCoherence();let m=o.getStoreSystem();try{for(let i of(a.setInitializationContext(o.getNextInitializationContext()),this._connected||(m.registerTransformer(10,e(o.getCompositionProjections()),"CascadeDeletes"),m.registerTransformer(20,t(o.getComponentReader()),"CascadeRefPruning"),m.registerTransformer(25,s(o.getComponentReader()),"CreateEntityRefs"),m.registerTransformer(30,r(o.getComponentReader()),"RefReplace"),m.registerTransformer(40,n(o.getComponentReader(),o.getSnappingProjections(),o.getDimensionSystem(),o.getPositionProjections(),m),"AutoSnap"),this._connected=!0),this._reconcileUserTransformers(),[m,o.getUndoSystem()]))i.initialize();for(let e of(m.stageAndCommit(o.getDimensionSystem().initialize(m.stateSlices.committed.value.state)),[o.getNavigationSystem(),...i()]))e.initialize();this._lastExpressionContext=o.getExpressionContext(),this._lastDomainExpressions=o.getDomainExpressions(),this._lastComponentReaderIndexes=o.getComponentReaderIndexes(),this._lastLoadedData=o.getLoadedData(),a.completeInitialization()}catch(e){throw a.failInitialization(),e}}reconcile=()=>{this._context.selectors.getInitializationState().isCurrent&&(this._reconcileUserTransformers(),this._refreshIfLoadedDataChanged(),this._refreshIfExpressionContextChanged())};_assertSchemaCoherence(){switch(this._context.selectors.getSchemaCoherence()){case"coherent":return;case"missing-stamp":throw Error("Cannot initialize the domain context: the loaded data carries no schema identity.");case"schema-mismatch":throw Error("Cannot initialize the domain context: the loaded data belongs to a different schema identity than the active spec.")}}_registerUserTransformers(e){let t=this._context.selectors.getStoreSystem();for(let s of e)this._userTransformerUnregisters.push(t.registerTransformer(s.priority,s.transformer,s.name??"Anonymous"))}_unregisterUserTransformers(){for(let e of this._userTransformerUnregisters)e();this._userTransformerUnregisters=[]}_reconcileUserTransformers(){let e=this._context.selectors.getCreateTransformers();if(this._activeCreateTransformers===e)return;let t=e?.(this._context.selectors.getDomainSystems())??[];this._unregisterUserTransformers(),this._activeCreateTransformers=e,this._registerUserTransformers(t)}_refreshIfExpressionContextChanged(){let{selectors:e}=this._context,t=e.getExpressionContext(),s=e.getDomainExpressions(),r=e.getComponentReaderIndexes();if(this._lastExpressionContext===t&&this._lastDomainExpressions===s&&this._lastComponentReaderIndexes===r)return;let n=e.getStoreSystem();n.reset(n.stateSlices.committed.value.state,"expressionContextRefreshed"),this._lastExpressionContext=t,this._lastDomainExpressions=s,this._lastComponentReaderIndexes=r}_refreshIfLoadedDataChanged(){let{selectors:e}=this._context,t=e.getLatestLoadedData();null!==t&&this._lastLoadedData!==t&&(e.getStoreSystem().reset(e.getInitialDomainState(),"loadedDataRefreshed"),this._lastLoadedData=t)}}
1
+ import{createCascadeDeletesTransformer as e}from"../../domain-context/relation-transformers/cascade-deletes.js";import{createCascadeRefPruningTransformer as t}from"../../domain-context/relation-transformers/cascade-ref-pruning.js";import{createCreateEntityRefsTransformer as s}from"../../domain-context/relation-transformers/create-entity-refs.js";import{createRefReplaceTransformer as r}from"../../domain-context/relation-transformers/replace-refs.js";import{createAutoSnapTransformer as n}from"../../domain-context/transformers/auto-snap-transformer.js";export class DomainContext{_context;_connected=!1;_activeCreateTransformers=void 0;_userTransformerUnregisters=[];_lastExpressionContext=null;_lastDomainExpressions=null;_lastComponentReaderIndexes=null;_lastLoadedData=null;constructor(e){this._context=e}initialize(){let{selectors:o,actions:a,getExtensionSystems:i}=this._context;this._assertSchemaCoherence();let m=o.getStoreSystem();try{for(let i of(a.setInitializationContext(o.getNextInitializationContext()),this._connected||(m.registerTransformer(10,e(o.getCompositionProjections()),"CascadeDeletes"),m.registerTransformer(20,t(o.getComponentReader()),"CascadeRefPruning"),m.registerTransformer(25,s(o.getComponentReader()),"CreateEntityRefs"),m.registerTransformer(30,r(o.getComponentReader()),"RefReplace"),m.registerTransformer(40,n(o.getComponentReader(),o.getSnappingProjections(),o.getDimensionSystem(),o.getPositionProjections(),m),"AutoSnap"),this._connected=!0),this._reconcileUserTransformers(),[m,o.getUndoSystem()]))i.initialize();for(let e of(m.stageAndCommit(o.getDimensionSystem().initialize(m.stateSlices.committed.value.state)),[o.getNavigationSystem(),...i()]))e.initialize();o.getActionImplementations(),this._lastExpressionContext=o.getExpressionContext(),this._lastDomainExpressions=o.getDomainExpressions(),this._lastComponentReaderIndexes=o.getComponentReaderIndexes(),this._lastLoadedData=o.getLoadedData(),a.completeInitialization()}catch(e){throw a.failInitialization(),e}}reconcile=()=>{this._context.selectors.getInitializationState().isCurrent&&(this._reconcileUserTransformers(),this._refreshIfLoadedDataChanged(),this._refreshIfExpressionContextChanged())};_assertSchemaCoherence(){switch(this._context.selectors.getSchemaCoherence()){case"coherent":return;case"missing-stamp":throw Error("Cannot initialize the domain context: the loaded data carries no schema identity.");case"schema-mismatch":throw Error("Cannot initialize the domain context: the loaded data belongs to a different schema identity than the active spec.")}}_registerUserTransformers(e){let t=this._context.selectors.getStoreSystem();for(let s of e)this._userTransformerUnregisters.push(t.registerTransformer(s.priority,s.transformer,s.name??"Anonymous"))}_unregisterUserTransformers(){for(let e of this._userTransformerUnregisters)e();this._userTransformerUnregisters=[]}_reconcileUserTransformers(){let e=this._context.selectors.getCreateTransformers();if(this._activeCreateTransformers===e)return;let t=e?.(this._context.selectors.getDomainSystems())??[];this._unregisterUserTransformers(),this._activeCreateTransformers=e,this._registerUserTransformers(t)}_refreshIfExpressionContextChanged(){let{selectors:e}=this._context,t=e.getExpressionContext(),s=e.getDomainExpressions(),r=e.getComponentReaderIndexes();if(this._lastExpressionContext===t&&this._lastDomainExpressions===s&&this._lastComponentReaderIndexes===r)return;let n=e.getStoreSystem();n.reset(n.stateSlices.committed.value.state,"expressionContextRefreshed"),this._lastExpressionContext=t,this._lastDomainExpressions=s,this._lastComponentReaderIndexes=r}_refreshIfLoadedDataChanged(){let{selectors:e}=this._context,t=e.getLatestLoadedData();null!==t&&this._lastLoadedData!==t&&(e.getStoreSystem().reset(e.getInitialDomainState(),"loadedDataRefreshed"),this._lastLoadedData=t)}}
@@ -0,0 +1,8 @@
1
+ import type { CoreExpressionContext, DomainEntity } from '../../core/index.js';
2
+ import type { RuntimeExpressionContext } from './runtime-expression-context.js';
3
+ /**
4
+ * The context the domain runtime evaluates expressions in: core's part and the runtime's own part.
5
+ */
6
+ export interface ExpressionContext<ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>> extends CoreExpressionContext<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA>, RuntimeExpressionContext<ENTITIES> {
7
+ }
8
+ export type AnyExpressionContext = ExpressionContext<any, any, any, any, any>;
@@ -1,6 +1,9 @@
1
+ export type * from './action-context.js';
1
2
  export * from './actions.js';
2
3
  export { ComponentReader, type AnyComponentReader } from './component-reader.js';
3
4
  export { DomainContext } from './domain-context.js';
5
+ export type * from './expression-context.js';
4
6
  export * from './initialize.js';
7
+ export type * from './runtime-expression-context.js';
5
8
  export * from './selectors.js';
6
9
  export type * from './types.js';
@@ -0,0 +1,18 @@
1
+ import type { DomainEntity } from '../../core/index.js';
2
+ import type { CollisionProjections, ConstraintProjections, PositionProjections, ProjectedEntitiesProjections, SnappingProjections } from '../../projections/index.js';
3
+ import type { SketchingProjections } from '../../sketching/index.js';
4
+ import type { ComponentReader } from './component-reader.js';
5
+ /**
6
+ * What the domain runtime adds to the expression context of core: the component reader and the
7
+ * projections it builds for every application. It is the context extension that generated project
8
+ * code closes the factories of core with.
9
+ */
10
+ export interface RuntimeExpressionContext<ENTITIES extends DomainEntity<string>> {
11
+ readonly componentReader: ComponentReader<ENTITIES>;
12
+ readonly positionProjections: PositionProjections<ENTITIES>;
13
+ readonly sketchingProjections: SketchingProjections<ENTITIES>;
14
+ readonly collisionProjections: CollisionProjections<ENTITIES>;
15
+ readonly constraintProjections: ConstraintProjections<ENTITIES>;
16
+ readonly snappingProjections: SnappingProjections<ENTITIES>;
17
+ readonly projectedEntitiesProjections: ProjectedEntitiesProjections<ENTITIES>;
18
+ }
@@ -1,6 +1,5 @@
1
- import type { DomainComponentOptic } from '../../components/index.js';
2
- import { type AnyDomain } from '../../core/domain.js';
3
- import type { AnyDomainFactory, AnyExpressionContext, DomainEntity, DomainMode, SystemComponentTypeConstraint } from '../../core/index.js';
1
+ import { type AnyDomain, type AnyDomainFactory, type DomainComponentOptic, type DomainEntity, type DomainMode, type SystemComponentTypeConstraint } from '../../core/index.js';
2
+ import { type AnyActionSystem } from '../../domain-context/action-system/action-system.js';
4
3
  import { type AnyDimensionSystem } from '../../domain-context/dimension-system/dimension-system.js';
5
4
  import type { AnyDomainContextSystems } from '../../domain-context/domain-context-systems.js';
6
5
  import { type AnyNavigationSystem } from '../../domain-context/navigation-system/navigation-system.js';
@@ -15,11 +14,12 @@ import type { DomainServicesSelectors } from '../domain-services/index.js';
15
14
  import type { EnvironmentSelectors } from '../environment/index.js';
16
15
  import type { ApplicationLoadedData } from '../loaded-data/index.js';
17
16
  import type { DomainSessionContext, SessionContextSelectorState, SessionContextSelectors } from '../session-context/index.js';
18
- import type { SpecSelectorState, SpecSelectors } from '../spec/index.js';
17
+ import { type SpecSelectorState, type SpecSelectors } from '../spec/index.js';
19
18
  import type { WebComponentSelectorState, WebComponentSelectors } from '../web-component/index.js';
20
19
  import type { DomainContextApplicationActions } from './actions.js';
21
20
  import { type AnyComponentReader } from './component-reader.js';
22
21
  import { DomainContext } from './domain-context.js';
22
+ import type { AnyExpressionContext } from './expression-context.js';
23
23
  import type { ApplicationDomainContextState, DomainApplicationType, DomainContextInitializationContext, DomainContextInitializationIdentity, DomainContextInitializationState, InitializableSystem, SchemaCoherence } from './types.js';
24
24
  type ComponentOptic<ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>> = DomainComponentOptic<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ENTITIES, SystemComponentTypeConstraint>;
25
25
  /**
@@ -120,6 +120,8 @@ export declare const createDomainContextSelectors: (context: Context) => {
120
120
  getActiveConfigurationId: () => string;
121
121
  getFactory: () => AnyDomainFactory;
122
122
  getDomainExpressions: () => import("../../index.js").AnyExpressions;
123
+ getActionDefinitions: () => Readonly<Record<string, import("../../index.js").ActionDefinition>>;
124
+ getActionImplementations: () => Readonly<Record<string, import("../../index.js").AnyActionImplementation>>;
123
125
  getModelVersion: () => number;
124
126
  getAliasMap: () => import("../../index.js").AnyAliasMap;
125
127
  getAllowedRootEntityTypes: () => import("../../index.js").AnyAllowedRootEntityTypes;
@@ -160,6 +162,7 @@ export declare const createDomainContextSelectors: (context: Context) => {
160
162
  getNavigationSystem: () => AnyNavigationSystem;
161
163
  getUndoSystem: () => AnyUndoSystem;
162
164
  getRecipeCookerSystem: () => AnyRecipeCookerSystem;
165
+ getActionSystem: () => AnyActionSystem;
163
166
  getBlenderProjections: () => AnyBlenderProjections;
164
167
  getExpressionContext: () => AnyExpressionContext;
165
168
  getDomainSystems: () => AnyDomainContextSystems;
@@ -1 +1 @@
1
- import{createSelector as e}from"@salsita-ai/common/utils";import{Domain as t}from"../../core/domain.js";import{createInitialDomainState as n}from"../../core/state.js";import{DimensionSystem as o}from"../../domain-context/dimension-system/dimension-system.js";import{NavigationSystem as i}from"../../domain-context/navigation-system/navigation-system.js";import{RecipeCookerSystem as a}from"../../domain-context/recipe-system/recipe-cooker-system.js";import{StoreSystem as s}from"../../domain-context/store-system/store-system.js";import{UndoSystem as r}from"../../domain-context/undo-system.js";import{prepareDomainExpressions as c}from"../../expressions/index.js";import{BlenderProjections as l,CollisionProjections as m,CompositionProjections as d,ConstraintProjections as g,PositionProjections as f,ProjectedEntitiesProjections as p,SnappingProjections as u,ValidationProjections as y}from"../../projections/index.js";import{SketchingProjections as w}from"../../sketching/sketching-projections.js";import{requireAccessService as h}from"../access/index.js";import{ComponentReader as S}from"./component-reader.js";import{DomainContext as x}from"./domain-context.js";let j=e.withTypes(),C=[],D={},v={role:"admin",data:D},I=e=>{if(null!==e)return e;throw Error("Cannot read the session role and data because the domain session context is not set. The session context is written into the domain runtime by the session lifecycle after authentication. Move this read into the loaded session lifecycle.")};export const createDomainContextSelectors=e=>{let{applicationType:P,getState:M,actions:R,specSelectors:E,accessSelectors:T,webComponentSelectors:b,domainDataSelectors:A,sessionContextSelectors:k,domainServicesSelectors:$,environmentSelectors:N,getExtensionSystems:z}=e,L="configurator"===P?E.selectConfiguratorSpec:E.selectAdminSpec,V="configurator"===P?T.selectConfiguratorRawAccessService:T.selectAdminRawAccessService,B=j.leaf(e=>e.domainContext[P]),F=j([B],e=>e.initializationContext),W=j([F],e=>{if(null===e)throw Error(`Domain lifecycle context is not available for ${P}! Read it from an active domain lifecycle.`);return e}),_=j([B],e=>e.executionMode),q=j([B],e=>e.isInitialized),O=j([L],e=>e.factory),U=j([L],e=>e.expressions),G=j([L],e=>e.$entityReflections),H=j([U,G],(e,t)=>c({expressions:e,$entityReflections:t})),J=j([L],e=>e.modelVersion),K=j([L],e=>e.aliasMap),Q=j([L],e=>e.allowedRootEntityTypes),X=j([L],e=>e.entityReflections),Y=j([L],e=>e.migrate),Z=j([_,b.selectReadonly,V],(e,t,n)=>"finalize"===e?"finalize":h(P,n).accessInfo.viewMode||t?"read":"owner"),ee=j([V],e=>e?.configurationId??null),et="configurator"===P?k.selectSessionContext:j([],()=>v),en=j([et],e=>e?.role??null),eo=j([et],e=>e?.data??null),ei=j([j.leaf(e=>e.loadedData)],e=>"configurator"===P?e.configuratorLoadedData:e.adminLoadedData),ea=j([ei],e=>e?.schemaIdentity??null),es=j([ei,O],(e,t)=>{if(null===e)return"coherent";let n=e.schemaIdentity;return void 0===n?"missing-stamp":n===t?"coherent":"schema-mismatch"}),er=j([ee,en,eo,ea,es],(e,t,n,o,i)=>null===e||null===t||null===n||null===o||"coherent"!==i?null:{configurationId:e,role:t,schemaIdentity:o,sessionData:n}),ec=j([V,b.selectReadonly],(e,t)=>e?.accessInfo.viewMode===!0||t),el=j([er,F,q,ec],(e,t,n,o)=>{let i=null!==e&&null!==t&&n&&t.configurationId===e.configurationId&&t.role===e.role&&t.schemaIdentity===e.schemaIdentity&&t.sessionData===e.sessionData;return{identity:e,isCurrent:i,isViewMode:o}}),em=j([L],e=>e.componentOptics),ed=j([em],e=>(e=>{let t=new Map,n=new Map,o=new Map,i=new Map;for(let n of e)for(let e of n.entityTypes){let o=t.get(e);o||(o=new Map,t.set(e,o));let a=o.get(n.componentType);if(a||(a=new Map,o.set(n.componentType,a)),a.has(n.instanceName))throw Error(`Component instance ${n.instanceName} already exists for type ${n.componentType.name} in entity ${e}. This is likely a bug in the component definition! InstanceNames must be unique within an entity and component.`);if(a.set(n.instanceName,n),"dynamic"===n.kind){let t=i.get(e);t||(t=new Map,i.set(e,t));let o=t.get(n.componentType)??[],a=o.find(e=>{var t;return t=n.instanceName,e.startsWith(`${t}_`)||t.startsWith(`${e}_`)});if(a)throw Error(`Cannot register dynamic component instance ${n.instanceName} for component ${n.componentType.name} on entity ${e} because it overlaps with dynamic instance ${a}. Rename one dynamic instance so compound names cannot be ambiguous.`);t.set(n.componentType,[...o,n.instanceName])}}for(let[e,i]of t.entries()){n.set(e,new Set(i.keys()));let t=new Map;for(let[n,a]of(o.set(e,t),i.entries()))t.set(n,new Set(a.keys()))}return{opticMap:t,allComponentTypes:n,allComponentInstanceNames:o,dynamicInstanceNames:i}})(e)),eg=j([ed,H,Q],(e,t,n)=>({componentReaderIndexes:e,domainExpressions:t,allowedRootEntityTypes:n})),ef=j([L],e=>e.navigationStates),ep=j([L],e=>e.viewStates),eu="configurator"===P?j([E.selectConfiguratorSpec],e=>e.toolStates):j([],()=>C),ey="configurator"===P?j([E.selectConfiguratorSpec],e=>e.exportStates):j([],()=>C),ew="configurator"===P?j([E.selectConfiguratorSpec],e=>e.createTransformers):j([],()=>void 0),eh=j([ei],e=>{if(null===e)throw Error(`Loaded data is not available for ${P}! Loaded data is written after the configuration fetch succeeds and before the domain context initialization starts.`);return e}),eS=j([eh,O],(e,t)=>n(t.validateAndMigrateState(e.initialEntities,e.modelVersion),e.rootEntityType)),ex="configurator"===P?A.selectConfiguratorFrontendData:A.selectAdminFrontendData,ej="configurator"===P?A.selectConfiguratorBackendData:A.selectAdminBackendData,eC="configurator"===P?A.selectConfiguratorPublishedData:A.selectAdminPublishedData,eD="configurator"===P?j([k.selectSessionContext],e=>I(e).role):j([],()=>"admin"),ev="configurator"===P?j([k.selectSessionContext],e=>I(e).data):j([],()=>D),eI=j([ee,Z,eD,ev,eh],(e,t,n,o,i)=>({configurationId:e,mode:t,role:n,schemaIdentity:i.schemaIdentity,sessionData:o})),eP=j([W],e=>e.mode),eM=j([W],e=>{let t=e.configurationId;if(null===t)throw Error(`Configuration id is not available for ${P}! Read it from an active interactive domain lifecycle.`);return t}),eR=j([W],e=>e.role),eE=j([W],e=>e.sessionData),eT=j([eP,eR,eE,ex,ej,eC,Y],(e,t,n,o,i,a,s)=>({mode:e,role:t,sessionData:n,frontendData:o,backendData:i,publishedData:a,migrate:s,domain:eA,componentReader:ek,positionProjections:eV,sketchingProjections:eL,collisionProjections:eB,constraintProjections:eW,snappingProjections:eF,projectedEntitiesProjections:e_})),eb={selectApplicationSpec:L,selectRawAccessService:V,selectDomainContextState:B,selectInitializationContext:F,selectActiveInitializationContext:W,selectExecutionMode:_,selectIsInitialized:q,selectFactory:O,selectSpecExpressions:U,select$SpecEntityReflections:G,selectDomainExpressions:H,selectModelVersion:J,selectAliasMap:K,selectAllowedRootEntityTypes:Q,selectEntityReflections:X,selectMigrate:Y,selectLatestMode:Z,selectLatestConfigurationId:ee,selectLatestSessionContext:et,selectLatestRoleOrNull:en,selectLatestSessionDataOrNull:eo,selectLatestSchemaIdentity:ea,selectSchemaCoherence:es,selectInitializationIdentity:er,selectIsViewMode:ec,selectInitializationState:el,selectComponentOptics:em,selectComponentReaderIndexes:ed,selectStoreRuntimeDependencies:eg,selectNavigationStates:ef,selectViewStates:ep,selectToolStates:eu,selectExportStates:ey,selectCreateTransformers:ew,selectLatestLoadedData:ei,selectLoadedData:eh,selectInitialDomainState:eS,selectFrontendData:ex,selectBackendData:ej,selectPublishedData:eC,selectLatestRole:eD,selectLatestSessionData:ev,selectNextInitializationContext:eI,selectActiveMode:eP,selectActiveConfigurationId:eM,selectActiveRole:eR,selectActiveSessionData:eE,selectExpressionContext:eT,getInitializationContext:()=>F(M()),getInitializationState:()=>el(M()),getNextInitializationContext:()=>eI(M()),getLatestLoadedData:()=>ei(M()),getSchemaCoherence:()=>es(M()),getActiveConfigurationId:()=>eM(M()),getFactory:()=>O(M()),getDomainExpressions:()=>H(M()),getModelVersion:()=>J(M()),getAliasMap:()=>K(M()),getAllowedRootEntityTypes:()=>Q(M()),getEntityReflections:()=>X(M()),getMigrate:()=>Y(M()),getActiveMode:()=>eP(M()),getIsInitialized:()=>q(M()),getComponentReaderIndexes:()=>ed(M()),getStoreRuntimeDependencies:()=>eg(M()),getNavigationStates:()=>ef(M()),getViewStates:()=>ep(M()),getToolStates:()=>eu(M()),getExportStates:()=>ey(M()),getCreateTransformers:()=>ew(M()),getLoadedData:()=>eh(M()),getInitialDomainState:()=>eS(M()),getFrontendData:()=>ex(M()),getBackendData:()=>ej(M()),getPublishedData:()=>eC(M()),getActiveRole:()=>eR(M()),getActiveSessionData:()=>eE(M()),getDomain:()=>eA,getComponentReader:()=>ek,getCompositionProjections:()=>e$,getDimensionSystem:()=>eN,getValidationProjections:()=>ez,getSketchingProjections:()=>eL,getPositionProjections:()=>eV,getCollisionProjections:()=>eB,getSnappingProjections:()=>eF,getConstraintProjections:()=>eW,getProjectedEntitiesProjections:()=>e_,getStoreSystem:()=>eq,getNavigationSystem:()=>eO,getUndoSystem:()=>eU,getRecipeCookerSystem:()=>eG,getBlenderProjections:()=>eH,getExpressionContext:()=>eT(M()),getDomainSystems:function(){return eJ},getDomainContext:function(){return eK}},eA=new t({selectors:eb}),ek=new S({selectors:eb}),e$=new d({selectors:eb}),eN=new o({selectors:eb}),ez=new y({selectors:eb}),eL=new w({selectors:eb}),eV=new f({selectors:eb}),eB=new m({selectors:eb}),eF=new u({selectors:eb}),eW=new g({selectors:eb}),e_=new p({selectors:eb}),eq=new s({selectors:eb,domainServicesSelectors:$,environmentSelectors:N}),eO=new i({selectors:eb,domainServicesSelectors:$}),eU=new r({selectors:eb}),eG=new a({selectors:eb}),eH=new l({selectors:eb,domainServicesSelectors:$}),eJ={domainContextSelectors:eb,domain:eA,componentReader:ek,compositionProjections:e$,blenderProjections:eH,validationProjections:ez,storeSystem:eq,navigationSystem:eO,dimensionSystem:eN,undoSystem:eU,recipeCooker:eG,sketchingProjections:eL,collisionProjections:eB,positionProjections:eV,snappingProjections:eF,projectedEntitiesProjections:e_,constraintProjections:eW},eK=new x({selectors:eb,actions:R,getExtensionSystems:z});return eb};
1
+ import{createSelector as e}from"@salsita-ai/common/utils";import{Domain as t,createInitialDomainState as n}from"../../core/index.js";import{ActionSystem as o}from"../../domain-context/action-system/action-system.js";import{DimensionSystem as i}from"../../domain-context/dimension-system/dimension-system.js";import{NavigationSystem as a}from"../../domain-context/navigation-system/navigation-system.js";import{RecipeCookerSystem as s}from"../../domain-context/recipe-system/recipe-cooker-system.js";import{StoreSystem as r}from"../../domain-context/store-system/store-system.js";import{UndoSystem as c}from"../../domain-context/undo-system.js";import{BlenderProjections as l,CollisionProjections as m,CompositionProjections as d,ConstraintProjections as g,PositionProjections as f,ProjectedEntitiesProjections as p,SnappingProjections as u,ValidationProjections as y}from"../../projections/index.js";import{SketchingProjections as w}from"../../sketching/sketching-projections.js";import{requireAccessService as h}from"../access/index.js";import{prepareActionImplementations as S,prepareDomainExpressions as x}from"../spec/index.js";import{ComponentReader as j}from"./component-reader.js";import{DomainContext as C}from"./domain-context.js";let D=e.withTypes(),v=[],I={},P={role:"admin",data:I},M=e=>{if(null!==e)return e;throw Error("Cannot read the session role and data because the domain session context is not set. The session context is written into the domain runtime by the session lifecycle after authentication. Move this read into the loaded session lifecycle.")};export const createDomainContextSelectors=e=>{let{applicationType:A,getState:R,actions:E,specSelectors:T,accessSelectors:b,webComponentSelectors:k,domainDataSelectors:$,sessionContextSelectors:N,domainServicesSelectors:z,environmentSelectors:L,getExtensionSystems:V}=e,B="configurator"===A?T.selectConfiguratorSpec:T.selectAdminSpec,F="configurator"===A?b.selectConfiguratorRawAccessService:b.selectAdminRawAccessService,W=D.leaf(e=>e.domainContext[A]),_=D([W],e=>e.initializationContext),q=D([_],e=>{if(null===e)throw Error(`Domain lifecycle context is not available for ${A}! Read it from an active domain lifecycle.`);return e}),O=D([W],e=>e.executionMode),U=D([W],e=>e.isInitialized),G=D([B],e=>e.factory),H=D([B],e=>e.expressions),J=D([B],e=>e.actions),K=D([B],e=>e.actionImplementations),Q=D([J,K],S),X=D([B],e=>e.$entityReflections),Y=D([H,X],(e,t)=>x({expressions:e,$entityReflections:t})),Z=D([B],e=>e.modelVersion),ee=D([B],e=>e.aliasMap),et=D([B],e=>e.allowedRootEntityTypes),en=D([B],e=>e.entityReflections),eo=D([B],e=>e.migrate),ei=D([O,k.selectReadonly,F],(e,t,n)=>"finalize"===e?"finalize":h(A,n).accessInfo.viewMode||t?"read":"owner"),ea=D([F],e=>e?.configurationId??null),es="configurator"===A?N.selectSessionContext:D([],()=>P),er=D([es],e=>e?.role??null),ec=D([es],e=>e?.data??null),el=D([D.leaf(e=>e.loadedData)],e=>"configurator"===A?e.configuratorLoadedData:e.adminLoadedData),em=D([el],e=>e?.schemaIdentity??null),ed=D([el,G],(e,t)=>{if(null===e)return"coherent";let n=e.schemaIdentity;return void 0===n?"missing-stamp":n===t?"coherent":"schema-mismatch"}),eg=D([ea,er,ec,em,ed],(e,t,n,o,i)=>null===e||null===t||null===n||null===o||"coherent"!==i?null:{configurationId:e,role:t,schemaIdentity:o,sessionData:n}),ef=D([F,k.selectReadonly],(e,t)=>e?.accessInfo.viewMode===!0||t),ep=D([eg,_,U,ef],(e,t,n,o)=>{let i=null!==e&&null!==t&&n&&t.configurationId===e.configurationId&&t.role===e.role&&t.schemaIdentity===e.schemaIdentity&&t.sessionData===e.sessionData;return{identity:e,isCurrent:i,isViewMode:o}}),eu=D([B],e=>e.componentOptics),ey=D([eu],e=>(e=>{let t=new Map,n=new Map,o=new Map,i=new Map;for(let n of e)for(let e of n.entityTypes){let o=t.get(e);o||(o=new Map,t.set(e,o));let a=o.get(n.componentType);if(a||(a=new Map,o.set(n.componentType,a)),a.has(n.instanceName))throw Error(`Component instance ${n.instanceName} already exists for type ${n.componentType.name} in entity ${e}. This is likely a bug in the component definition! InstanceNames must be unique within an entity and component.`);if(a.set(n.instanceName,n),"dynamic"===n.kind){let t=i.get(e);t||(t=new Map,i.set(e,t));let o=t.get(n.componentType)??[],a=o.find(e=>{var t;return t=n.instanceName,e.startsWith(`${t}_`)||t.startsWith(`${e}_`)});if(a)throw Error(`Cannot register dynamic component instance ${n.instanceName} for component ${n.componentType.name} on entity ${e} because it overlaps with dynamic instance ${a}. Rename one dynamic instance so compound names cannot be ambiguous.`);t.set(n.componentType,[...o,n.instanceName])}}for(let[e,i]of t.entries()){n.set(e,new Set(i.keys()));let t=new Map;for(let[n,a]of(o.set(e,t),i.entries()))t.set(n,new Set(a.keys()))}return{opticMap:t,allComponentTypes:n,allComponentInstanceNames:o,dynamicInstanceNames:i}})(e)),ew=D([ey,Y,et],(e,t,n)=>({componentReaderIndexes:e,domainExpressions:t,allowedRootEntityTypes:n})),eh=D([B],e=>e.navigationStates),eS=D([B],e=>e.viewStates),ex="configurator"===A?D([T.selectConfiguratorSpec],e=>e.toolStates):D([],()=>v),ej="configurator"===A?D([T.selectConfiguratorSpec],e=>e.exportStates):D([],()=>v),eC="configurator"===A?D([T.selectConfiguratorSpec],e=>e.createTransformers):D([],()=>void 0),eD=D([el],e=>{if(null===e)throw Error(`Loaded data is not available for ${A}! Loaded data is written after the configuration fetch succeeds and before the domain context initialization starts.`);return e}),ev=D([eD,G],(e,t)=>n(t.validateAndMigrateState(e.initialEntities,e.modelVersion),e.rootEntityType)),eI="configurator"===A?$.selectConfiguratorFrontendData:$.selectAdminFrontendData,eP="configurator"===A?$.selectConfiguratorBackendData:$.selectAdminBackendData,eM="configurator"===A?$.selectConfiguratorPublishedData:$.selectAdminPublishedData,eA="configurator"===A?D([N.selectSessionContext],e=>M(e).role):D([],()=>"admin"),eR="configurator"===A?D([N.selectSessionContext],e=>M(e).data):D([],()=>I),eE=D([ea,ei,eA,eR,eD],(e,t,n,o,i)=>({configurationId:e,mode:t,role:n,schemaIdentity:i.schemaIdentity,sessionData:o})),eT=D([q],e=>e.mode),eb=D([q],e=>{let t=e.configurationId;if(null===t)throw Error(`Configuration id is not available for ${A}! Read it from an active interactive domain lifecycle.`);return t}),ek=D([q],e=>e.role),e$=D([q],e=>e.sessionData),eN=D([eT,ek,e$,eI,eP,eM,eo],(e,t,n,o,i,a,s)=>({mode:e,role:t,sessionData:n,frontendData:o,backendData:i,publishedData:a,migrate:s,domain:eL,componentReader:eV,positionProjections:eq,sketchingProjections:e_,collisionProjections:eO,constraintProjections:eG,snappingProjections:eU,projectedEntitiesProjections:eH})),ez={selectApplicationSpec:B,selectRawAccessService:F,selectDomainContextState:W,selectInitializationContext:_,selectActiveInitializationContext:q,selectExecutionMode:O,selectIsInitialized:U,selectFactory:G,selectSpecExpressions:H,select$SpecEntityReflections:X,selectDomainExpressions:Y,selectModelVersion:Z,selectAliasMap:ee,selectAllowedRootEntityTypes:et,selectEntityReflections:en,selectMigrate:eo,selectLatestMode:ei,selectLatestConfigurationId:ea,selectLatestSessionContext:es,selectLatestRoleOrNull:er,selectLatestSessionDataOrNull:ec,selectLatestSchemaIdentity:em,selectSchemaCoherence:ed,selectInitializationIdentity:eg,selectIsViewMode:ef,selectInitializationState:ep,selectComponentOptics:eu,selectComponentReaderIndexes:ey,selectStoreRuntimeDependencies:ew,selectNavigationStates:eh,selectViewStates:eS,selectToolStates:ex,selectExportStates:ej,selectCreateTransformers:eC,selectLatestLoadedData:el,selectLoadedData:eD,selectInitialDomainState:ev,selectFrontendData:eI,selectBackendData:eP,selectPublishedData:eM,selectLatestRole:eA,selectLatestSessionData:eR,selectNextInitializationContext:eE,selectActiveMode:eT,selectActiveConfigurationId:eb,selectActiveRole:ek,selectActiveSessionData:e$,selectExpressionContext:eN,getInitializationContext:()=>_(R()),getInitializationState:()=>ep(R()),getNextInitializationContext:()=>eE(R()),getLatestLoadedData:()=>el(R()),getSchemaCoherence:()=>ed(R()),getActiveConfigurationId:()=>eb(R()),getFactory:()=>G(R()),getDomainExpressions:()=>Y(R()),getActionDefinitions:()=>J(R()),getActionImplementations:()=>Q(R()),getModelVersion:()=>Z(R()),getAliasMap:()=>ee(R()),getAllowedRootEntityTypes:()=>et(R()),getEntityReflections:()=>en(R()),getMigrate:()=>eo(R()),getActiveMode:()=>eT(R()),getIsInitialized:()=>U(R()),getComponentReaderIndexes:()=>ey(R()),getStoreRuntimeDependencies:()=>ew(R()),getNavigationStates:()=>eh(R()),getViewStates:()=>eS(R()),getToolStates:()=>ex(R()),getExportStates:()=>ej(R()),getCreateTransformers:()=>eC(R()),getLoadedData:()=>eD(R()),getInitialDomainState:()=>ev(R()),getFrontendData:()=>eI(R()),getBackendData:()=>eP(R()),getPublishedData:()=>eM(R()),getActiveRole:()=>ek(R()),getActiveSessionData:()=>e$(R()),getDomain:()=>eL,getComponentReader:()=>eV,getCompositionProjections:()=>eB,getDimensionSystem:()=>eF,getValidationProjections:()=>eW,getSketchingProjections:()=>e_,getPositionProjections:()=>eq,getCollisionProjections:()=>eO,getSnappingProjections:()=>eU,getConstraintProjections:()=>eG,getProjectedEntitiesProjections:()=>eH,getStoreSystem:()=>eJ,getNavigationSystem:()=>eK,getUndoSystem:()=>eQ,getRecipeCookerSystem:()=>eX,getActionSystem:()=>eY,getBlenderProjections:()=>eZ,getExpressionContext:()=>eN(R()),getDomainSystems:function(){return e0},getDomainContext:function(){return e1}},eL=new t({selectors:ez}),eV=new j({selectors:ez}),eB=new d({selectors:ez}),eF=new i({selectors:ez}),eW=new y({selectors:ez}),e_=new w({selectors:ez}),eq=new f({selectors:ez}),eO=new m({selectors:ez}),eU=new u({selectors:ez}),eG=new g({selectors:ez}),eH=new p({selectors:ez}),eJ=new r({selectors:ez,domainServicesSelectors:z,environmentSelectors:L}),eK=new a({selectors:ez,domainServicesSelectors:z}),eQ=new c({selectors:ez}),eX=new s({selectors:ez}),eY=new o({selectors:ez}),eZ=new l({selectors:ez,domainServicesSelectors:z}),e0={domainContextSelectors:ez,domain:eL,componentReader:eV,compositionProjections:eB,blenderProjections:eZ,validationProjections:eW,storeSystem:eJ,navigationSystem:eK,dimensionSystem:eF,undoSystem:eQ,recipeCooker:eX,actionSystem:eY,sketchingProjections:e_,collisionProjections:eO,positionProjections:eq,snappingProjections:eU,projectedEntitiesProjections:eH,constraintProjections:eG},e1=new C({selectors:ez,actions:E,getExtensionSystems:V});return ez};
@@ -61,7 +61,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
61
61
  selectAdminPreset: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AnyProductPreset>;
62
62
  selectAdminModelVersion: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, number>;
63
63
  selectThemeOptions: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("@mui/material").ThemeOptions>;
64
- selectAssistant: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AssistantManifest | null>;
64
+ selectAssistant: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, Required<import("../index.js").AssistantManifest> | null>;
65
65
  selectConfiguratorFactory: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AnyDomainFactory>;
66
66
  selectAdminFactory: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AnyDomainFactory>;
67
67
  selectConfiguratorComponentOptics: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, readonly import("../index.js").AnyDomainComponentOptic[]>;
@@ -104,7 +104,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
104
104
  getAdminPreset: () => import("../index.js").AnyProductPreset;
105
105
  getAdminModelVersion: () => number;
106
106
  getThemeOptions: () => import("@mui/material").ThemeOptions;
107
- getAssistant: () => import("../index.js").AssistantManifest | null;
107
+ getAssistant: () => Required<import("../index.js").AssistantManifest> | null;
108
108
  getConfiguratorFactory: () => import("../index.js").AnyDomainFactory;
109
109
  getAdminFactory: () => import("../index.js").AnyDomainFactory;
110
110
  getConfiguratorComponentOptics: () => readonly import("../index.js").AnyDomainComponentOptic[];
@@ -389,7 +389,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
389
389
  selectActiveConfigurationId: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, string>;
390
390
  selectActiveRole: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("@salsita-ai/contracts/api").SessionRole>;
391
391
  selectActiveSessionData: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, Record<string, unknown>>;
392
- selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("../index.js").AnyExpressionContext>;
392
+ selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("./index.js").AnyExpressionContext>;
393
393
  getInitializationContext: () => import("./index.js").DomainContextInitializationContext | null;
394
394
  getInitializationState: () => import("./index.js").DomainContextInitializationState;
395
395
  getNextInitializationContext: () => import("./index.js").DomainContextInitializationContext;
@@ -398,6 +398,8 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
398
398
  getActiveConfigurationId: () => string;
399
399
  getFactory: () => import("../index.js").AnyDomainFactory;
400
400
  getDomainExpressions: () => import("../index.js").AnyExpressions;
401
+ getActionDefinitions: () => Readonly<Record<string, import("../index.js").ActionDefinition>>;
402
+ getActionImplementations: () => Readonly<Record<string, import("../index.js").AnyActionImplementation>>;
401
403
  getModelVersion: () => number;
402
404
  getAliasMap: () => import("../index.js").AnyAliasMap;
403
405
  getAllowedRootEntityTypes: () => import("../index.js").AnyAllowedRootEntityTypes;
@@ -438,8 +440,9 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
438
440
  getNavigationSystem: () => import("../domain-context/navigation-system/navigation-system.js").AnyNavigationSystem;
439
441
  getUndoSystem: () => import("../domain-context/undo-system.js").AnyUndoSystem;
440
442
  getRecipeCookerSystem: () => import("../index.js").AnyRecipeCookerSystem;
443
+ getActionSystem: () => import("../index.js").AnyActionSystem;
441
444
  getBlenderProjections: () => import("../index.js").AnyBlenderProjections;
442
- getExpressionContext: () => import("../index.js").AnyExpressionContext;
445
+ getExpressionContext: () => import("./index.js").AnyExpressionContext;
443
446
  getDomainSystems: () => import("../index.js").AnyDomainContextSystems;
444
447
  getDomainContext: () => import("./index.js").DomainContext;
445
448
  };
@@ -495,7 +498,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
495
498
  selectActiveConfigurationId: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, string>;
496
499
  selectActiveRole: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("@salsita-ai/contracts/api").SessionRole>;
497
500
  selectActiveSessionData: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, Record<string, unknown>>;
498
- selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("../index.js").AnyExpressionContext>;
501
+ selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("./index.js").AnyExpressionContext>;
499
502
  getInitializationContext: () => import("./index.js").DomainContextInitializationContext | null;
500
503
  getInitializationState: () => import("./index.js").DomainContextInitializationState;
501
504
  getNextInitializationContext: () => import("./index.js").DomainContextInitializationContext;
@@ -504,6 +507,8 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
504
507
  getActiveConfigurationId: () => string;
505
508
  getFactory: () => import("../index.js").AnyDomainFactory;
506
509
  getDomainExpressions: () => import("../index.js").AnyExpressions;
510
+ getActionDefinitions: () => Readonly<Record<string, import("../index.js").ActionDefinition>>;
511
+ getActionImplementations: () => Readonly<Record<string, import("../index.js").AnyActionImplementation>>;
507
512
  getModelVersion: () => number;
508
513
  getAliasMap: () => import("../index.js").AnyAliasMap;
509
514
  getAllowedRootEntityTypes: () => import("../index.js").AnyAllowedRootEntityTypes;
@@ -544,8 +549,9 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
544
549
  getNavigationSystem: () => import("../domain-context/navigation-system/navigation-system.js").AnyNavigationSystem;
545
550
  getUndoSystem: () => import("../domain-context/undo-system.js").AnyUndoSystem;
546
551
  getRecipeCookerSystem: () => import("../index.js").AnyRecipeCookerSystem;
552
+ getActionSystem: () => import("../index.js").AnyActionSystem;
547
553
  getBlenderProjections: () => import("../index.js").AnyBlenderProjections;
548
- getExpressionContext: () => import("../index.js").AnyExpressionContext;
554
+ getExpressionContext: () => import("./index.js").AnyExpressionContext;
549
555
  getDomainSystems: () => import("../index.js").AnyDomainContextSystems;
550
556
  getDomainContext: () => import("./index.js").DomainContext;
551
557
  };
@@ -645,7 +651,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
645
651
  selectAdminPreset: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AnyProductPreset>;
646
652
  selectAdminModelVersion: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, number>;
647
653
  selectThemeOptions: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("@mui/material").ThemeOptions>;
648
- selectAssistant: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AssistantManifest | null>;
654
+ selectAssistant: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, Required<import("../index.js").AssistantManifest> | null>;
649
655
  selectConfiguratorFactory: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AnyDomainFactory>;
650
656
  selectAdminFactory: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, import("../index.js").AnyDomainFactory>;
651
657
  selectConfiguratorComponentOptics: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, readonly import("../index.js").AnyDomainComponentOptic[]>;
@@ -688,7 +694,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
688
694
  getAdminPreset: () => import("../index.js").AnyProductPreset;
689
695
  getAdminModelVersion: () => number;
690
696
  getThemeOptions: () => import("@mui/material").ThemeOptions;
691
- getAssistant: () => import("../index.js").AssistantManifest | null;
697
+ getAssistant: () => Required<import("../index.js").AssistantManifest> | null;
692
698
  getConfiguratorFactory: () => import("../index.js").AnyDomainFactory;
693
699
  getAdminFactory: () => import("../index.js").AnyDomainFactory;
694
700
  getConfiguratorComponentOptics: () => readonly import("../index.js").AnyDomainComponentOptic[];
@@ -973,7 +979,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
973
979
  selectActiveConfigurationId: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, string>;
974
980
  selectActiveRole: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("@salsita-ai/contracts/api").SessionRole>;
975
981
  selectActiveSessionData: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, Record<string, unknown>>;
976
- selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("../index.js").AnyExpressionContext>;
982
+ selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("./index.js").AnyExpressionContext>;
977
983
  getInitializationContext: () => import("./index.js").DomainContextInitializationContext | null;
978
984
  getInitializationState: () => import("./index.js").DomainContextInitializationState;
979
985
  getNextInitializationContext: () => import("./index.js").DomainContextInitializationContext;
@@ -982,6 +988,8 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
982
988
  getActiveConfigurationId: () => string;
983
989
  getFactory: () => import("../index.js").AnyDomainFactory;
984
990
  getDomainExpressions: () => import("../index.js").AnyExpressions;
991
+ getActionDefinitions: () => Readonly<Record<string, import("../index.js").ActionDefinition>>;
992
+ getActionImplementations: () => Readonly<Record<string, import("../index.js").AnyActionImplementation>>;
985
993
  getModelVersion: () => number;
986
994
  getAliasMap: () => import("../index.js").AnyAliasMap;
987
995
  getAllowedRootEntityTypes: () => import("../index.js").AnyAllowedRootEntityTypes;
@@ -1022,8 +1030,9 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
1022
1030
  getNavigationSystem: () => import("../domain-context/navigation-system/navigation-system.js").AnyNavigationSystem;
1023
1031
  getUndoSystem: () => import("../domain-context/undo-system.js").AnyUndoSystem;
1024
1032
  getRecipeCookerSystem: () => import("../index.js").AnyRecipeCookerSystem;
1033
+ getActionSystem: () => import("../index.js").AnyActionSystem;
1025
1034
  getBlenderProjections: () => import("../index.js").AnyBlenderProjections;
1026
- getExpressionContext: () => import("../index.js").AnyExpressionContext;
1035
+ getExpressionContext: () => import("./index.js").AnyExpressionContext;
1027
1036
  getDomainSystems: () => import("../index.js").AnyDomainContextSystems;
1028
1037
  getDomainContext: () => import("./index.js").DomainContext;
1029
1038
  };
@@ -1079,7 +1088,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
1079
1088
  selectActiveConfigurationId: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, string>;
1080
1089
  selectActiveRole: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("@salsita-ai/contracts/api").SessionRole>;
1081
1090
  selectActiveSessionData: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, Record<string, unknown>>;
1082
- selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("../index.js").AnyExpressionContext>;
1091
+ selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("./index.js").AnyExpressionContext>;
1083
1092
  getInitializationContext: () => import("./index.js").DomainContextInitializationContext | null;
1084
1093
  getInitializationState: () => import("./index.js").DomainContextInitializationState;
1085
1094
  getNextInitializationContext: () => import("./index.js").DomainContextInitializationContext;
@@ -1088,6 +1097,8 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
1088
1097
  getActiveConfigurationId: () => string;
1089
1098
  getFactory: () => import("../index.js").AnyDomainFactory;
1090
1099
  getDomainExpressions: () => import("../index.js").AnyExpressions;
1100
+ getActionDefinitions: () => Readonly<Record<string, import("../index.js").ActionDefinition>>;
1101
+ getActionImplementations: () => Readonly<Record<string, import("../index.js").AnyActionImplementation>>;
1091
1102
  getModelVersion: () => number;
1092
1103
  getAliasMap: () => import("../index.js").AnyAliasMap;
1093
1104
  getAllowedRootEntityTypes: () => import("../index.js").AnyAllowedRootEntityTypes;
@@ -1128,8 +1139,9 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
1128
1139
  getNavigationSystem: () => import("../domain-context/navigation-system/navigation-system.js").AnyNavigationSystem;
1129
1140
  getUndoSystem: () => import("../domain-context/undo-system.js").AnyUndoSystem;
1130
1141
  getRecipeCookerSystem: () => import("../index.js").AnyRecipeCookerSystem;
1142
+ getActionSystem: () => import("../index.js").AnyActionSystem;
1131
1143
  getBlenderProjections: () => import("../index.js").AnyBlenderProjections;
1132
- getExpressionContext: () => import("../index.js").AnyExpressionContext;
1144
+ getExpressionContext: () => import("./index.js").AnyExpressionContext;
1133
1145
  getDomainSystems: () => import("../index.js").AnyDomainContextSystems;
1134
1146
  getDomainContext: () => import("./index.js").DomainContext;
1135
1147
  };
@@ -2,3 +2,11 @@ export * from './selectors.js';
2
2
  export type * from './types.js';
3
3
  export * from './actions.js';
4
4
  export * from './initialize.js';
5
+ export * from './invariant-builder.js';
6
+ export * from './memoize-expression.js';
7
+ export * from './prepare-action-implementations.js';
8
+ export * from './prepare-domain-expressions.js';
9
+ export * from './resolve-action-modules.js';
10
+ export * from './resolve-component-optic-modules.js';
11
+ export * from './resolve-expression-modules.js';
12
+ export * from './resolve-invariant-modules.js';
@@ -1 +1 @@
1
- export*from"./selectors.js";export*from"./actions.js";export*from"./initialize.js";
1
+ export*from"./selectors.js";export*from"./actions.js";export*from"./initialize.js";export*from"./invariant-builder.js";export*from"./memoize-expression.js";export*from"./prepare-action-implementations.js";export*from"./prepare-domain-expressions.js";export*from"./resolve-action-modules.js";export*from"./resolve-component-optic-modules.js";export*from"./resolve-expression-modules.js";export*from"./resolve-invariant-modules.js";
@@ -1 +1 @@
1
- import{SessionRole as e}from"@salsita-ai/contracts/api";let a=(e,a)=>{let t={};for(let n of e)t[n.name]=a?.[n.name]??n.name;return t},t=(e,a)=>{let t={},n=0;for(let i of e)if("entity"===i.type||"layout"===i.type)t[i.name]=a?.[i.name]??i.name;else{let e=`icon:${n}`;t[e]=a?.[e]??`${e}:${i.elements.length}`,n+=1}return t};export const initializeSpec=n=>{let i=n.adminDomain.presets[0];if(!i)throw Error("Cannot register application spec because admin preset is required.");return{version:n.version,dataConfig:n.dataSpec??null,chunks:n.chunks,publishedDataHash:n.publishedDataHash,initialPublishedData:n.initialPublishedData,canCreate:n.features?.acl?.canCreate??Object.values(e),enableAdminRelease:n.features?.enableAdminRelease??!1,textLanguages:n.domain.textLanguages??n.adminDomain.textLanguages??["en"],baseResourcesUrl:n.resources?.baseResourcesUrl??n.defaultEnvs?.resourcesUrl??"",configurator:{factory:n.domain.domainFactory,presets:n.domain.presets,aliasMap:n.domain.domainFactory.context.aliasMap,entityReflections:n.domain.domainFactory.context.entityReflections,$entityReflections:n.domain.domainFactory.context.$entityReflections,expressions:n.domain.domainFactory.context.expressions,allowedRootEntityTypes:n.domain.domainFactory.context.allowedRootEntityTypes,migrate:n.domain.domainFactory.context.migrate,componentOptics:n.domain.componentOptics,createTransformers:n.createTransformers??(()=>[]),navigationStates:n.navigation?.navigationStates??[],viewStates:n.navigation?.viewStates??[],toolStates:n.navigation?.toolStates??[],exportStates:n.navigation?.exportStates??[],handlers:n.handlers,handlerHashes:a(n.handlers),elements:n.elements,elementHashes:t(n.elements),appLoader:n.ui?.appLoader??"universal",preview:n.ui?.preview??"auto",alwaysExpand:n.ui?.alwaysExpand??!1,theme:n.ui?.theme??{},assistant:n.assistant??null,deploymentQueryDisabled:n.resources?.deploymentQueryDisabled??!1,prefetchTextureUrls:n.resources?.prefetchTextureUrls??[],modelVersion:n.domain.domainFactory.modelVersion},admin:{factory:n.adminDomain.domainFactory,modelVersion:n.adminDomain.domainFactory.modelVersion,aliasMap:n.adminDomain.domainFactory.context.aliasMap,entityReflections:n.adminDomain.domainFactory.context.entityReflections,$entityReflections:n.adminDomain.domainFactory.context.$entityReflections,expressions:n.adminDomain.domainFactory.context.expressions,allowedRootEntityTypes:n.adminDomain.domainFactory.context.allowedRootEntityTypes,migrate:n.adminDomain.domainFactory.context.migrate,preset:i,componentOptics:n.adminDomain.componentOptics,navigationStates:n.adminNavigation?.navigationStates??[],viewStates:n.adminNavigation?.viewStates??[],handlers:n.handlers,handlerHashes:a(n.handlers),elements:n.elements,elementHashes:t(n.elements)}}};
1
+ import{SessionRole as e}from"@salsita-ai/contracts/api";import{resolveElementModules as t}from"../../application/element-registration.js";import{resolveHandlerModules as a}from"../../application/handler-registration.js";import{resolveImportedTransformers as o,resolveTransformerModules as n}from"../../application/resolve-imported-transformers.js";import{resolveComponentOpticModules as i}from"./resolve-component-optic-modules.js";export const initializeSpec=s=>{let r=s.adminDomain.presets[0];if(!r)throw Error("Cannot register application spec because admin preset is required.");let m=a(s.handlers),c=t(s.elements),d=(e=>{let t={};for(let a of e)t[a.name]=(void 0)??a.name;return t})(m),l=(e=>{let t={},a=0;for(let o of e)if("entity"===o.type||"layout"===o.type)t[o.name]=(void 0)??o.name;else{let e=`icon:${a}`;t[e]=(void 0)??`${e}:${o.elements.length}`,a+=1}return t})(c),p=n(s.transformers?.importedTransformers??[]),y=s.transformers?.specTransformers??[];return{version:s.version,dataConfig:s.dataSpec??null,chunks:s.chunks,publishedDataHash:s.publishedDataHash,initialPublishedData:s.initialPublishedData,canCreate:s.features?.acl?.canCreate??Object.values(e),enableAdminRelease:s.features?.enableAdminRelease??!1,textLanguages:s.domain.textLanguages??s.adminDomain.textLanguages??["en"],baseResourcesUrl:s.resources?.baseResourcesUrl??s.defaultEnvs?.resourcesUrl??"",configurator:{factory:s.domain.domainFactory,presets:s.domain.presets,aliasMap:s.domain.domainFactory.context.aliasMap,entityReflections:s.domain.domainFactory.context.entityReflections,$entityReflections:s.domain.domainFactory.context.$entityReflections,expressions:s.domain.domainFactory.context.expressions,actions:s.domain.domainFactory.context.actions,actionImplementations:s.domain.domainFactory.context.actionImplementations,allowedRootEntityTypes:s.domain.domainFactory.context.allowedRootEntityTypes,migrate:s.domain.domainFactory.context.migrate,componentOptics:i(s.domain.componentOptics),createTransformers:e=>o(p,y,e),navigationStates:s.navigation?.navigationStates??[],viewStates:s.navigation?.viewStates??[],toolStates:s.navigation?.toolStates??[],exportStates:s.navigation?.exportStates??[],handlers:m,handlerHashes:d,elements:c,elementHashes:l,appLoader:s.ui?.appLoader??"universal",preview:s.ui?.preview??"auto",alwaysExpand:s.ui?.alwaysExpand??!1,theme:s.ui?.theme??{},assistant:s.assistant??null,deploymentQueryDisabled:s.resources?.deploymentQueryDisabled??!1,prefetchTextureUrls:s.resources?.prefetchTextureUrls??[],modelVersion:s.domain.domainFactory.modelVersion},admin:{factory:s.adminDomain.domainFactory,modelVersion:s.adminDomain.domainFactory.modelVersion,aliasMap:s.adminDomain.domainFactory.context.aliasMap,entityReflections:s.adminDomain.domainFactory.context.entityReflections,$entityReflections:s.adminDomain.domainFactory.context.$entityReflections,expressions:s.adminDomain.domainFactory.context.expressions,actions:s.adminDomain.domainFactory.context.actions,actionImplementations:s.adminDomain.domainFactory.context.actionImplementations,allowedRootEntityTypes:s.adminDomain.domainFactory.context.allowedRootEntityTypes,migrate:s.adminDomain.domainFactory.context.migrate,preset:r,componentOptics:i(s.adminDomain.componentOptics),navigationStates:s.adminNavigation?.navigationStates??[],viewStates:s.adminNavigation?.viewStates??[],handlers:m,handlerHashes:d,elements:c,elementHashes:l}}};