@salsita-ai/sdk 0.50.0-develop.1162eef277 → 0.50.0-develop.1ddc7020fd

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 (429) hide show
  1. package/dist/admin/create-admin-pages-from-spec.d.ts +1 -1
  2. package/dist/docs/index.json +1 -1
  3. package/dist/domain/actions/action-factory.d.ts +1 -2
  4. package/dist/domain/admin-domain/__generated/enhanced-model.d.ts +1 -1
  5. package/dist/domain/admin-domain/__generated/model/versions/v1.d.ts +1 -1
  6. package/dist/domain/admin-domain/__generated/model/versions/v2.d.ts +1 -1
  7. package/dist/domain/admin-domain/__generated/model/versions/v3.d.ts +1 -1
  8. package/dist/domain/admin-domain/__generated/model/versions/v4.d.ts +1 -1
  9. package/dist/domain/admin-domain/__generated/model/versions/v5.d.ts +1 -1
  10. package/dist/domain/admin-domain/__generated/model/versions/v6.d.ts +2 -2
  11. package/dist/domain/admin-domain/__generated/model/versions/v6.js +1 -1
  12. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +1 -3
  13. package/dist/domain/admin-domain/implementation/common-admin-migrations.d.ts +1 -1
  14. package/dist/domain/admin-domain/index.d.ts +2 -3
  15. package/dist/domain/admin-domain/index.js +1 -1
  16. package/dist/domain/application/admin-page-factories.d.ts +1 -1
  17. package/dist/domain/application/assistant-field-options.d.ts +1 -2
  18. package/dist/domain/application/assistant-mutations.d.ts +1 -4
  19. package/dist/domain/application/assistant-mutations.js +1 -1
  20. package/dist/domain/application/assistant-recipe-groups.d.ts +1 -5
  21. package/dist/domain/application/configurator-builder.d.ts +1 -1
  22. package/dist/domain/application/configurator-builder.js +1 -1
  23. package/dist/domain/application/published-data/create-finalize-admin-domain.d.ts +1 -2
  24. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +1 -1
  25. package/dist/domain/application/published-data/map-published-data.d.ts +1 -2
  26. package/dist/domain/application/resolve-imported-transformers.d.ts +1 -1
  27. package/dist/domain/core/action.d.ts +4 -5
  28. package/dist/domain/{components → core/component}/component-reader-types.d.ts +1 -2
  29. package/dist/domain/{components → core/component}/debug-state-component.d.ts +1 -1
  30. package/dist/domain/core/component/debug-state-component.js +1 -0
  31. package/dist/domain/{components → core/component}/domain-component-optic.d.ts +4 -7
  32. package/dist/domain/core/component/domain-component-optic.js +16 -0
  33. package/dist/domain/{components → core/component}/drag-state-component.d.ts +1 -1
  34. package/dist/domain/core/component/drag-state-component.js +1 -0
  35. package/dist/domain/{components → core/component}/export-state-component.d.ts +1 -1
  36. package/dist/domain/core/component/export-state-component.js +1 -0
  37. package/dist/domain/{components → core/component}/fullscreen-state-component.d.ts +1 -1
  38. package/dist/domain/core/component/fullscreen-state-component.js +1 -0
  39. package/dist/domain/{components → core/component}/group-components-by-entity-id-and-name.d.ts +1 -2
  40. package/dist/domain/core/component/group-components-by-entity-id-and-name.js +1 -0
  41. package/dist/domain/{components → core/component}/hover-state-component.d.ts +1 -1
  42. package/dist/domain/core/component/hover-state-component.js +1 -0
  43. package/dist/domain/core/component/index.d.ts +18 -0
  44. package/dist/domain/core/component/index.js +1 -0
  45. package/dist/domain/{components → core/component}/legacy-filter.d.ts +2 -2
  46. package/dist/domain/{components → core/component}/navigation-state-component.d.ts +1 -1
  47. package/dist/domain/core/component/navigation-state-component.js +1 -0
  48. package/dist/domain/{components → core/component}/selection-state-component.d.ts +1 -1
  49. package/dist/domain/core/component/selection-state-component.js +1 -0
  50. package/dist/domain/{components → core/component}/system-component-builder.d.ts +1 -2
  51. package/dist/domain/core/component/system-component-builder.js +1 -0
  52. package/dist/domain/{components → core/component}/system-component-filter.d.ts +3 -3
  53. package/dist/domain/core/component/system-virtual-entity.js +1 -0
  54. package/dist/domain/{components → core/component}/tool-state-component.d.ts +1 -1
  55. package/dist/domain/core/component/tool-state-component.js +1 -0
  56. package/dist/domain/{components → core/component}/updates.d.ts +1 -2
  57. package/dist/domain/{components → core/component}/view-state-component.d.ts +1 -1
  58. package/dist/domain/core/component/view-state-component.js +1 -0
  59. package/dist/domain/{components → core/component}/viewport-state-component.d.ts +1 -1
  60. package/dist/domain/core/component/viewport-state-component.js +1 -0
  61. package/dist/domain/core/decoder/create-decoder.d.ts +6 -0
  62. package/dist/domain/core/decoder/create-decoder.js +1 -0
  63. package/dist/domain/core/decoder/decoder.d.ts +6 -0
  64. package/dist/domain/core/decoder/index.d.ts +2 -0
  65. package/dist/domain/core/decoder/index.js +1 -0
  66. package/dist/domain/core/domain-factory.d.ts +3 -4
  67. package/dist/domain/core/domain-factory.js +1 -1
  68. package/dist/domain/core/domain.d.ts +3 -4
  69. package/dist/domain/core/domain.js +1 -1
  70. package/dist/domain/{expressions → core/expression}/constant-expressions.d.ts +2 -3
  71. package/dist/domain/core/expression/constant-expressions.js +1 -0
  72. package/dist/domain/{expressions → core/expression}/custom-expression.d.ts +4 -5
  73. package/dist/domain/core/expression/custom-expression.js +1 -0
  74. package/dist/domain/core/{expression.d.ts → expression/expression.d.ts} +6 -8
  75. package/dist/domain/core/expression/index.d.ts +5 -0
  76. package/dist/domain/core/expression/index.js +1 -0
  77. package/dist/domain/{expressions → core/expression}/memoize-expression.d.ts +2 -2
  78. package/dist/domain/{expressions → core/expression}/prepare-domain-expressions.d.ts +1 -1
  79. package/dist/domain/core/index.d.ts +8 -17
  80. package/dist/domain/core/index.js +1 -1
  81. package/dist/domain/core/{component.d.ts → model/component.d.ts} +1 -1
  82. package/dist/domain/core/model/index.d.ts +6 -0
  83. package/dist/domain/core/model/index.js +1 -0
  84. package/dist/domain/core/{reflection.d.ts → model/reflection.d.ts} +1 -1
  85. package/dist/domain/core/model/reflection.js +1 -0
  86. package/dist/domain/core/schema/extended-schema-validator.js +1 -0
  87. package/dist/domain/core/schema/index.d.ts +3 -0
  88. package/dist/domain/core/schema/index.js +1 -0
  89. package/dist/domain/core/schema/schema-validator.js +1 -0
  90. package/dist/domain/core/state/id-sequence.d.ts +15 -0
  91. package/dist/domain/core/state/id-sequence.js +1 -0
  92. package/dist/domain/core/state/index.d.ts +3 -0
  93. package/dist/domain/core/state/index.js +1 -0
  94. package/dist/domain/core/{migrations.d.ts → state/migrations.d.ts} +1 -2
  95. package/dist/domain/core/{state.d.ts → state/state.d.ts} +1 -2
  96. package/dist/domain/domain-builder.d.ts +1 -7
  97. package/dist/domain/domain-builder.js +1 -1
  98. package/dist/domain/domain-context/action-system/action-system.d.ts +1 -3
  99. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  100. package/dist/domain/domain-context/create-transformer.d.ts +1 -1
  101. package/dist/domain/domain-context/dimension-system/dimension-state.js +1 -1
  102. package/dist/domain/domain-context/domain-context-systems.d.ts +1 -3
  103. package/dist/domain/domain-context/index.d.ts +1 -1
  104. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +3 -5
  105. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  106. package/dist/domain/domain-context/navigation-system/navigation-updates.d.ts +1 -12
  107. package/dist/domain/domain-context/navigation-system/navigation-updates.js +1 -1
  108. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +1 -1
  109. package/dist/domain/domain-context/navigation-system/selection-transformers.js +1 -1
  110. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +1 -2
  111. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  112. package/dist/domain/domain-context/recipe-system/recipes.d.ts +1 -3
  113. package/dist/domain/domain-context/recipe-system/recipes.js +1 -1
  114. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +1 -1
  115. package/dist/domain/domain-context/relation-transformers/cascade-deletes.js +1 -1
  116. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +1 -1
  117. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.js +1 -1
  118. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +1 -1
  119. package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
  120. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +1 -1
  121. package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
  122. package/dist/domain/domain-context/store-system/apply-updates.d.ts +1 -3
  123. package/dist/domain/domain-context/store-system/apply-updates.js +1 -1
  124. package/dist/domain/domain-context/store-system/next-domain-entity-id.d.ts +1 -13
  125. package/dist/domain/domain-context/store-system/next-domain-entity-id.js +1 -1
  126. package/dist/domain/domain-context/store-system/reconcile-projected-entities.d.ts +1 -2
  127. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  128. package/dist/domain/domain-context/store-system/store-system.d.ts +1 -4
  129. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  130. package/dist/domain/domain-context/store-system/system-state.d.ts +1 -3
  131. package/dist/domain/domain-context/store-system/system-state.js +1 -1
  132. package/dist/domain/domain-context/transformers/actions-builder.d.ts +1 -2
  133. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  134. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +1 -3
  135. package/dist/domain/domain-context/transformers/chain-builder.d.ts +1 -1
  136. package/dist/domain/domain-context/transformers/context.d.ts +1 -4
  137. package/dist/domain/domain-context/transformers/entity-builder.d.ts +1 -4
  138. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  139. package/dist/domain/domain-context/transformers/then-builder.d.ts +1 -1
  140. package/dist/domain/domain-context/transformers/then-builder.js +1 -1
  141. package/dist/domain/domain-context/transformers/when-builder.d.ts +1 -6
  142. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  143. package/dist/domain/domain-context/undo-system.d.ts +1 -1
  144. package/dist/domain/domain-runtime/domain-context/component-reader.d.ts +1 -4
  145. package/dist/domain/domain-runtime/domain-context/component-reader.js +1 -1
  146. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +1 -3
  147. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  148. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  149. package/dist/domain/domain-runtime/spec/types.d.ts +1 -2
  150. package/dist/domain/index.d.ts +0 -19
  151. package/dist/domain/index.js +1 -1
  152. package/dist/domain/invariants/builtin-invariant.d.ts +1 -2
  153. package/dist/domain/invariants/custom-invariants.d.ts +1 -3
  154. package/dist/domain/invariants/invariants.d.ts +1 -4
  155. package/dist/domain/invariants/invariants.js +1 -1
  156. package/dist/domain/invariants/violation-component.js +1 -1
  157. package/dist/domain/invariants/violation.d.ts +1 -1
  158. package/dist/domain/projections/blender-projections/blender-projections.d.ts +1 -1
  159. package/dist/domain/projections/blender-projections/blender-projections.js +1 -1
  160. package/dist/domain/projections/composition-projections.js +1 -1
  161. package/dist/domain/projections/projected-entities-projections.d.ts +1 -2
  162. package/dist/domain/projections/snap-matching.d.ts +1 -2
  163. package/dist/domain/projections/snap-utils.d.ts +1 -2
  164. package/dist/domain/relations/all-of-type-relation.d.ts +1 -4
  165. package/dist/domain/relations/all-of-type-relation.js +1 -1
  166. package/dist/domain/relations/component-factories.d.ts +1 -2
  167. package/dist/domain/relations/composed-of.d.ts +1 -1
  168. package/dist/domain/relations/composed-of.js +1 -1
  169. package/dist/domain/relations/direct-relation.d.ts +1 -3
  170. package/dist/domain/relations/indirect-relation.d.ts +1 -4
  171. package/dist/domain/relations/indirect-relation.js +1 -1
  172. package/dist/domain/relations/reference-component.d.ts +3 -5
  173. package/dist/domain/relations/reference-component.js +1 -1
  174. package/dist/domain/relations/reference-field.d.ts +1 -1
  175. package/dist/domain/relations/relation-factory.d.ts +1 -3
  176. package/dist/domain/relations/relation-implementation.d.ts +1 -4
  177. package/dist/domain/system-components/admin-sidebar.d.ts +1 -1
  178. package/dist/domain/system-components/admin-sidebar.js +1 -1
  179. package/dist/domain/system-components/angle-dimension.js +1 -1
  180. package/dist/domain/system-components/angle-indicator.d.ts +1 -1
  181. package/dist/domain/system-components/angle-indicator.js +1 -1
  182. package/dist/domain/system-components/application-config.d.ts +1 -1
  183. package/dist/domain/system-components/application-config.js +1 -1
  184. package/dist/domain/system-components/attribute-selection.js +1 -1
  185. package/dist/domain/system-components/attribute-switch.js +1 -1
  186. package/dist/domain/system-components/autorotate-camera-component.d.ts +1 -1
  187. package/dist/domain/system-components/autorotate-camera-component.js +1 -1
  188. package/dist/domain/system-components/basic-sidebar-footer.d.ts +1 -1
  189. package/dist/domain/system-components/basic-sidebar-footer.js +1 -1
  190. package/dist/domain/system-components/bounding-box-component.d.ts +1 -1
  191. package/dist/domain/system-components/bounding-box-component.js +1 -1
  192. package/dist/domain/system-components/bounding-sphere-component.d.ts +1 -1
  193. package/dist/domain/system-components/bounding-sphere-component.js +1 -1
  194. package/dist/domain/system-components/camera-based-hidden-entity-object.js +1 -1
  195. package/dist/domain/system-components/camera-based-hidden-entity.js +1 -1
  196. package/dist/domain/system-components/canvas-config.d.ts +1 -1
  197. package/dist/domain/system-components/canvas-config.js +1 -1
  198. package/dist/domain/system-components/canvas-custom-environment.js +1 -1
  199. package/dist/domain/system-components/canvas-padding.d.ts +1 -1
  200. package/dist/domain/system-components/canvas-padding.js +1 -1
  201. package/dist/domain/system-components/canvas-preset-environment.d.ts +1 -1
  202. package/dist/domain/system-components/canvas-preset-environment.js +1 -1
  203. package/dist/domain/system-components/child-entity-recipe-hierarchy.d.ts +1 -1
  204. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +1 -1
  205. package/dist/domain/system-components/child-entity-recipes.d.ts +1 -1
  206. package/dist/domain/system-components/child-entity-recipes.js +1 -1
  207. package/dist/domain/system-components/child-entity-selection.d.ts +1 -1
  208. package/dist/domain/system-components/child-entity-selection.js +1 -1
  209. package/dist/domain/system-components/client-side-image.js +1 -1
  210. package/dist/domain/system-components/collision-box-geometry.d.ts +1 -1
  211. package/dist/domain/system-components/collision-box-geometry.js +1 -1
  212. package/dist/domain/system-components/collision-geometries.d.ts +1 -1
  213. package/dist/domain/system-components/collision-geometry.d.ts +1 -1
  214. package/dist/domain/system-components/collision-geometry.js +1 -1
  215. package/dist/domain/system-components/collision-point-geometry.d.ts +1 -1
  216. package/dist/domain/system-components/collision-point-geometry.js +1 -1
  217. package/dist/domain/system-components/color-value.js +1 -1
  218. package/dist/domain/system-components/constraint.d.ts +1 -1
  219. package/dist/domain/system-components/constraint.js +1 -1
  220. package/dist/domain/system-components/create-blueprint.d.ts +1 -1
  221. package/dist/domain/system-components/custom-header.d.ts +1 -1
  222. package/dist/domain/system-components/custom-header.js +1 -1
  223. package/dist/domain/system-components/custom-price-footer.js +1 -1
  224. package/dist/domain/system-components/custom-scene-entity.d.ts +1 -1
  225. package/dist/domain/system-components/custom-scene-entity.js +1 -1
  226. package/dist/domain/system-components/custom-sidebar-footer.d.ts +1 -1
  227. package/dist/domain/system-components/custom-sidebar-footer.js +1 -1
  228. package/dist/domain/system-components/detail.js +1 -1
  229. package/dist/domain/system-components/dimension-indicator.d.ts +1 -1
  230. package/dist/domain/system-components/dimension-indicator.js +1 -1
  231. package/dist/domain/system-components/distance-dimension-select.d.ts +1 -1
  232. package/dist/domain/system-components/distance-dimension-select.js +1 -1
  233. package/dist/domain/system-components/distance-dimension.d.ts +1 -1
  234. package/dist/domain/system-components/distance-dimension.js +1 -1
  235. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  236. package/dist/domain/system-components/drag-handle.js +1 -1
  237. package/dist/domain/system-components/editable-angle-indicator.d.ts +1 -1
  238. package/dist/domain/system-components/editable-angle-indicator.js +1 -1
  239. package/dist/domain/system-components/editable-distance-dimension-indicator.d.ts +1 -1
  240. package/dist/domain/system-components/editable-distance-dimension-indicator.js +1 -1
  241. package/dist/domain/system-components/editable-offset-indicator.d.ts +1 -1
  242. package/dist/domain/system-components/editable-offset-indicator.js +1 -1
  243. package/dist/domain/system-components/editable-size-indicator.d.ts +1 -1
  244. package/dist/domain/system-components/editable-size-indicator.js +1 -1
  245. package/dist/domain/system-components/entity-header.js +1 -1
  246. package/dist/domain/system-components/exit-tool-mode-fab.d.ts +1 -1
  247. package/dist/domain/system-components/exit-tool-mode-fab.js +1 -1
  248. package/dist/domain/system-components/finalize-action.d.ts +1 -1
  249. package/dist/domain/system-components/finalize-action.js +1 -1
  250. package/dist/domain/system-components/finalize-component.js +1 -1
  251. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  252. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  253. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  254. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  255. package/dist/domain/system-components/fit-selection-orthographic-camera-component.js +1 -1
  256. package/dist/domain/system-components/fit-selection-perspective-camera-component.js +1 -1
  257. package/dist/domain/system-components/fixed-header.d.ts +1 -1
  258. package/dist/domain/system-components/fixed-header.js +1 -1
  259. package/dist/domain/system-components/floating-header.d.ts +1 -1
  260. package/dist/domain/system-components/floating-header.js +1 -1
  261. package/dist/domain/system-components/generic-dimension.d.ts +1 -1
  262. package/dist/domain/system-components/generic-dimension.js +1 -1
  263. package/dist/domain/system-components/hidden-entity.js +1 -1
  264. package/dist/domain/system-components/hidden-header.d.ts +1 -1
  265. package/dist/domain/system-components/hidden-header.js +1 -1
  266. package/dist/domain/system-components/hidden-sidebar-footer.d.ts +1 -1
  267. package/dist/domain/system-components/hidden-sidebar-footer.js +1 -1
  268. package/dist/domain/system-components/horizontal-tabs.d.ts +1 -1
  269. package/dist/domain/system-components/horizontal-tabs.js +1 -1
  270. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -2
  271. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  272. package/dist/domain/system-components/list-selector-dimension-indicator.d.ts +1 -1
  273. package/dist/domain/system-components/list-selector-dimension-indicator.js +1 -1
  274. package/dist/domain/system-components/material-override-property-transition.js +1 -1
  275. package/dist/domain/system-components/material-override-transformer.js +1 -1
  276. package/dist/domain/system-components/material-swatch.js +1 -1
  277. package/dist/domain/system-components/multilingual-text-value.js +1 -1
  278. package/dist/domain/system-components/navigation-page.js +1 -1
  279. package/dist/domain/system-components/navigation-panel-list.js +1 -1
  280. package/dist/domain/system-components/navigation-steps.js +1 -1
  281. package/dist/domain/system-components/offset-anchors.d.ts +1 -1
  282. package/dist/domain/system-components/offset-anchors.js +1 -1
  283. package/dist/domain/system-components/offset-indicator.d.ts +1 -2
  284. package/dist/domain/system-components/offset-indicator.js +1 -1
  285. package/dist/domain/system-components/offset.d.ts +1 -1
  286. package/dist/domain/system-components/offset.js +1 -1
  287. package/dist/domain/system-components/other-action.d.ts +1 -1
  288. package/dist/domain/system-components/other-action.js +1 -1
  289. package/dist/domain/system-components/pivot-point.d.ts +1 -1
  290. package/dist/domain/system-components/pivot-point.js +1 -1
  291. package/dist/domain/system-components/price.js +1 -1
  292. package/dist/domain/system-components/projected-entities.d.ts +1 -1
  293. package/dist/domain/system-components/projected-entities.js +1 -1
  294. package/dist/domain/system-components/property-page.d.ts +1 -1
  295. package/dist/domain/system-components/property-page.js +1 -1
  296. package/dist/domain/system-components/read-sidebar-footer.d.ts +1 -1
  297. package/dist/domain/system-components/read-sidebar-footer.js +1 -1
  298. package/dist/domain/system-components/replace-entity-recipe-hierarchy.d.ts +1 -1
  299. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +1 -1
  300. package/dist/domain/system-components/replace-entity-recipes.d.ts +1 -1
  301. package/dist/domain/system-components/replace-entity-recipes.js +1 -1
  302. package/dist/domain/system-components/rotatable.js +1 -1
  303. package/dist/domain/system-components/rotation-handle.js +1 -1
  304. package/dist/domain/system-components/save-template-thumbnail.js +1 -1
  305. package/dist/domain/system-components/scene-entity-add-fab.js +1 -1
  306. package/dist/domain/system-components/scene-entity-ambient-light.js +1 -1
  307. package/dist/domain/system-components/scene-entity-animation.js +1 -1
  308. package/dist/domain/system-components/scene-entity-box-object.js +1 -1
  309. package/dist/domain/system-components/scene-entity-control.js +1 -1
  310. package/dist/domain/system-components/scene-entity-delete-fab.js +1 -1
  311. package/dist/domain/system-components/scene-entity-directional-light.js +1 -1
  312. package/dist/domain/system-components/scene-entity-floor-object.js +1 -1
  313. package/dist/domain/system-components/scene-entity-html-hotspot.js +1 -1
  314. package/dist/domain/system-components/scene-entity-local-material-override.js +1 -1
  315. package/dist/domain/system-components/scene-entity-material-override.js +1 -1
  316. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +1 -1
  317. package/dist/domain/system-components/scene-entity-object-clip.js +1 -1
  318. package/dist/domain/system-components/scene-entity-object-decal.js +1 -1
  319. package/dist/domain/system-components/scene-entity-object-group.js +1 -1
  320. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +1 -1
  321. package/dist/domain/system-components/scene-entity-object-local-material-override.js +1 -1
  322. package/dist/domain/system-components/scene-entity-object-material-override.js +1 -1
  323. package/dist/domain/system-components/scene-entity-object-properties.js +1 -1
  324. package/dist/domain/system-components/scene-entity-object-remote-material-override.js +1 -1
  325. package/dist/domain/system-components/scene-entity-object-text-decal.js +1 -1
  326. package/dist/domain/system-components/scene-entity-object-transformer.js +1 -1
  327. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.js +1 -1
  328. package/dist/domain/system-components/scene-entity-object.js +1 -1
  329. package/dist/domain/system-components/scene-entity-point-light.js +1 -1
  330. package/dist/domain/system-components/scene-entity-properties.js +1 -1
  331. package/dist/domain/system-components/scene-entity-rect-area-light.js +1 -1
  332. package/dist/domain/system-components/scene-entity-remote-material-override.js +1 -1
  333. package/dist/domain/system-components/scene-entity-remote-object.js +1 -1
  334. package/dist/domain/system-components/scene-entity-select-hotspot.js +1 -1
  335. package/dist/domain/system-components/scene-entity-spot-light.js +1 -1
  336. package/dist/domain/system-components/scene-entity-transimissive-material-override.js +1 -1
  337. package/dist/domain/system-components/scene-entity-wall-object.js +1 -1
  338. package/dist/domain/system-components/selectable-component.js +1 -1
  339. package/dist/domain/system-components/sidebar-tabs.d.ts +1 -1
  340. package/dist/domain/system-components/sidebar-tabs.js +1 -1
  341. package/dist/domain/system-components/simple-summary.js +1 -1
  342. package/dist/domain/system-components/size.d.ts +1 -1
  343. package/dist/domain/system-components/size.js +1 -1
  344. package/dist/domain/system-components/sketching-draw.d.ts +1 -1
  345. package/dist/domain/system-components/sketching-draw.js +1 -1
  346. package/dist/domain/system-components/sketching-edit.d.ts +1 -1
  347. package/dist/domain/system-components/sketching-edit.js +1 -1
  348. package/dist/domain/system-components/sketching-line.d.ts +1 -1
  349. package/dist/domain/system-components/sketching-line.js +1 -1
  350. package/dist/domain/system-components/sketching-rectangle.d.ts +1 -1
  351. package/dist/domain/system-components/sketching-rectangle.js +1 -1
  352. package/dist/domain/system-components/sketching.d.ts +1 -1
  353. package/dist/domain/system-components/sketching.js +1 -1
  354. package/dist/domain/system-components/snap-axis.d.ts +1 -1
  355. package/dist/domain/system-components/snap-axis.js +1 -1
  356. package/dist/domain/system-components/snap-edge.d.ts +1 -1
  357. package/dist/domain/system-components/snap-edge.js +1 -1
  358. package/dist/domain/system-components/snap-plane.d.ts +1 -1
  359. package/dist/domain/system-components/snap-plane.js +1 -1
  360. package/dist/domain/system-components/snap-point.d.ts +1 -1
  361. package/dist/domain/system-components/snap-point.js +1 -1
  362. package/dist/domain/system-components/static-orthographic-camera-component.d.ts +1 -1
  363. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  364. package/dist/domain/system-components/static-perspective-camera-component.d.ts +1 -1
  365. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  366. package/dist/domain/system-components/summary-component.js +1 -1
  367. package/dist/domain/system-components/text-value.js +1 -1
  368. package/dist/domain/system-components/tool-controls.js +1 -1
  369. package/dist/domain/system-components/tool-menu-fab.d.ts +1 -1
  370. package/dist/domain/system-components/tool-menu-fab.js +1 -1
  371. package/dist/domain/system-components/toolbar.d.ts +1 -1
  372. package/dist/domain/system-components/toolbar.js +1 -1
  373. package/dist/domain/system-components/universal-sidebar-footer.d.ts +1 -1
  374. package/dist/domain/system-components/universal-sidebar-footer.js +1 -1
  375. package/dist/domain/system-components/view-controls.js +1 -1
  376. package/dist/domain/utils/eval-cache.d.ts +1 -2
  377. package/dist/domain/utils/memo-eval.d.ts +1 -3
  378. package/dist/phoenix/scripts/build-admin.js +1 -1
  379. package/package.json +3 -3
  380. package/dist/domain/components/debug-state-component.js +0 -1
  381. package/dist/domain/components/domain-component-optic.js +0 -16
  382. package/dist/domain/components/drag-state-component.js +0 -1
  383. package/dist/domain/components/export-state-component.js +0 -1
  384. package/dist/domain/components/fullscreen-state-component.js +0 -1
  385. package/dist/domain/components/group-components-by-entity-id-and-name.js +0 -1
  386. package/dist/domain/components/hover-state-component.js +0 -1
  387. package/dist/domain/components/index.d.ts +0 -2
  388. package/dist/domain/components/index.js +0 -1
  389. package/dist/domain/components/navigation-state-component.js +0 -1
  390. package/dist/domain/components/selection-state-component.js +0 -1
  391. package/dist/domain/components/system-component-builder.js +0 -1
  392. package/dist/domain/components/system-virtual-entity.js +0 -1
  393. package/dist/domain/components/tool-state-component.js +0 -1
  394. package/dist/domain/components/view-state-component.js +0 -1
  395. package/dist/domain/components/viewport-state-component.js +0 -1
  396. package/dist/domain/core/json-schema.js +0 -1
  397. package/dist/domain/core/reflection.js +0 -1
  398. package/dist/domain/expressions/constant-expressions.js +0 -1
  399. package/dist/domain/expressions/custom-expression.js +0 -1
  400. package/dist/domain/expressions/index.d.ts +0 -1
  401. package/dist/domain/expressions/index.js +0 -1
  402. /package/dist/domain/{components → core/component}/component-reader-types.js +0 -0
  403. /package/dist/domain/{components → core/component}/legacy-filter.js +0 -0
  404. /package/dist/domain/{components → core/component}/system-component-filter.js +0 -0
  405. /package/dist/domain/{components → core/component}/system-virtual-entity.d.ts +0 -0
  406. /package/dist/domain/{components → core/component}/updates.js +0 -0
  407. /package/dist/domain/core/{enhanced-json-schema.js → decoder/decoder.js} +0 -0
  408. /package/dist/domain/core/{expression.js → expression/expression.js} +0 -0
  409. /package/dist/domain/{expressions → core/expression}/memoize-expression.js +0 -0
  410. /package/dist/domain/{expressions → core/expression}/prepare-domain-expressions.js +0 -0
  411. /package/dist/domain/core/{alias.d.ts → model/alias.d.ts} +0 -0
  412. /package/dist/domain/core/{alias.js → model/alias.js} +0 -0
  413. /package/dist/domain/core/{common-definitions.d.ts → model/common-definitions.d.ts} +0 -0
  414. /package/dist/domain/core/{common-definitions.js → model/common-definitions.js} +0 -0
  415. /package/dist/domain/core/{component.js → model/component.js} +0 -0
  416. /package/dist/domain/core/{model.d.ts → model/model.d.ts} +0 -0
  417. /package/dist/domain/core/{model.js → model/model.js} +0 -0
  418. /package/dist/domain/core/{preset.d.ts → model/preset.d.ts} +0 -0
  419. /package/dist/domain/core/{preset.js → model/preset.js} +0 -0
  420. /package/dist/domain/core/{schema-validator-ajv.d.ts → schema/create-ajv-schema-validator.d.ts} +0 -0
  421. /package/dist/domain/core/{schema-validator-ajv.js → schema/create-ajv-schema-validator.js} +0 -0
  422. /package/dist/domain/core/{schema-validator-csp.d.ts → schema/create-csp-schema-validator.d.ts} +0 -0
  423. /package/dist/domain/core/{schema-validator-csp.js → schema/create-csp-schema-validator.js} +0 -0
  424. /package/dist/domain/core/{enhanced-json-schema.d.ts → schema/enhanced-json-schema.d.ts} +0 -0
  425. /package/dist/domain/core/{schema-validator.js → schema/enhanced-json-schema.js} +0 -0
  426. /package/dist/domain/core/{json-schema.d.ts → schema/extended-schema-validator.d.ts} +0 -0
  427. /package/dist/domain/core/{schema-validator.d.ts → schema/schema-validator.d.ts} +0 -0
  428. /package/dist/domain/core/{migrations.js → state/migrations.js} +0 -0
  429. /package/dist/domain/core/{state.js → state/state.js} +0 -0
@@ -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,6 +1,4 @@
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 AnyExpressionContext, type DomainComponentOptic, type DomainEntity, type DomainMode, type SystemComponentTypeConstraint } from '../../core/index.js';
4
2
  import { type AnyActionSystem } from '../../domain-context/action-system/action-system.js';
5
3
  import { type AnyDimensionSystem } from '../../domain-context/dimension-system/dimension-system.js';
6
4
  import type { AnyDomainContextSystems } from '../../domain-context/domain-context-systems.js';
@@ -1 +1 @@
1
- import{createSelector as e}from"@salsita-ai/common/utils";import{prepareActionImplementations as t}from"../../actions/prepare-action-implementations.js";import{Domain as n}from"../../core/domain.js";import{createInitialDomainState as o}from"../../core/state.js";import{ActionSystem as i}from"../../domain-context/action-system/action-system.js";import{DimensionSystem as a}from"../../domain-context/dimension-system/dimension-system.js";import{NavigationSystem as s}from"../../domain-context/navigation-system/navigation-system.js";import{RecipeCookerSystem as r}from"../../domain-context/recipe-system/recipe-cooker-system.js";import{StoreSystem as c}from"../../domain-context/store-system/store-system.js";import{UndoSystem as m}from"../../domain-context/undo-system.js";import{prepareDomainExpressions as l}from"../../expressions/index.js";import{BlenderProjections as d,CollisionProjections as g,CompositionProjections as f,ConstraintProjections as p,PositionProjections as u,ProjectedEntitiesProjections as y,SnappingProjections as w,ValidationProjections as h}from"../../projections/index.js";import{SketchingProjections as S}from"../../sketching/sketching-projections.js";import{requireAccessService as x}from"../access/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],t),X=D([B],e=>e.$entityReflections),Y=D([H,X],(e,t)=>l({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":x(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),em=D([D.leaf(e=>e.loadedData)],e=>"configurator"===A?e.configuratorLoadedData:e.adminLoadedData),el=D([em],e=>e?.schemaIdentity??null),ed=D([em,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,el,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([em],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)=>o(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:el,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:em,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:()=>em(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 n({selectors:ez}),eV=new j({selectors:ez}),eB=new f({selectors:ez}),eF=new a({selectors:ez}),eW=new h({selectors:ez}),e_=new S({selectors:ez}),eq=new u({selectors:ez}),eO=new g({selectors:ez}),eU=new w({selectors:ez}),eG=new p({selectors:ez}),eH=new y({selectors:ez}),eJ=new c({selectors:ez,domainServicesSelectors:z,environmentSelectors:L}),eK=new s({selectors:ez,domainServicesSelectors:z}),eQ=new m({selectors:ez}),eX=new r({selectors:ez}),eY=new i({selectors:ez}),eZ=new d({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};
1
+ import{createSelector as e}from"@salsita-ai/common/utils";import{prepareActionImplementations as t}from"../../actions/prepare-action-implementations.js";import{Domain as n,createInitialDomainState as o,prepareDomainExpressions as i}from"../../core/index.js";import{ActionSystem as a}from"../../domain-context/action-system/action-system.js";import{DimensionSystem as s}from"../../domain-context/dimension-system/dimension-system.js";import{NavigationSystem as r}from"../../domain-context/navigation-system/navigation-system.js";import{RecipeCookerSystem as c}from"../../domain-context/recipe-system/recipe-cooker-system.js";import{StoreSystem as m}from"../../domain-context/store-system/store-system.js";import{UndoSystem as l}from"../../domain-context/undo-system.js";import{BlenderProjections as d,CollisionProjections as g,CompositionProjections as f,ConstraintProjections as p,PositionProjections as u,ProjectedEntitiesProjections as y,SnappingProjections as w,ValidationProjections as h}from"../../projections/index.js";import{SketchingProjections as S}from"../../sketching/sketching-projections.js";import{requireAccessService as x}from"../access/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],t),X=D([B],e=>e.$entityReflections),Y=D([H,X],(e,t)=>i({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":x(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),em=D([D.leaf(e=>e.loadedData)],e=>"configurator"===A?e.configuratorLoadedData:e.adminLoadedData),el=D([em],e=>e?.schemaIdentity??null),ed=D([em,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,el,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([em],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)=>o(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:el,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:em,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:()=>em(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 n({selectors:ez}),eV=new j({selectors:ez}),eB=new f({selectors:ez}),eF=new s({selectors:ez}),eW=new h({selectors:ez}),e_=new S({selectors:ez}),eq=new u({selectors:ez}),eO=new g({selectors:ez}),eU=new w({selectors:ez}),eG=new p({selectors:ez}),eH=new y({selectors:ez}),eJ=new m({selectors:ez,domainServicesSelectors:z,environmentSelectors:L}),eK=new r({selectors:ez,domainServicesSelectors:z}),eQ=new l({selectors:ez}),eX=new c({selectors:ez}),eY=new a({selectors:ez}),eZ=new d({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};
@@ -1 +1 @@
1
- import{SessionRole as t}from"@salsita-ai/contracts/api";import{resolveElementModules as e}from"../../application/element-registration.js";import{resolveHandlerModules as a}from"../../application/handler-registration.js";import{resolveImportedTransformers as n,resolveTransformerModules as o}from"../../application/resolve-imported-transformers.js";import{resolveComponentOpticModules as i}from"../../components/domain-component-optic.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=e(s.elements),d=(t=>{let e={};for(let a of t)e[a.name]=(void 0)??a.name;return e})(m),l=(t=>{let e={},a=0;for(let n of t)if("entity"===n.type||"layout"===n.type)e[n.name]=(void 0)??n.name;else{let t=`icon:${a}`;e[t]=(void 0)??`${t}:${n.elements.length}`,a+=1}return e})(c),p=o(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(t),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:t=>n(p,y,t),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}}};
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 n,resolveTransformerModules as o}from"../../application/resolve-imported-transformers.js";import{resolveComponentOpticModules as i}from"../../core/index.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 n of e)if("entity"===n.type||"layout"===n.type)t[n.name]=(void 0)??n.name;else{let e=`icon:${a}`;t[e]=(void 0)??`${e}:${n.elements.length}`,a+=1}return t})(c),p=o(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=>n(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}}};
@@ -1,8 +1,7 @@
1
1
  import type { ThemeOptions } from '@mui/material';
2
2
  import type { SessionRole } from '@salsita-ai/contracts/api';
3
3
  import type { AssistantResolvedManifest, ChunksSpec, DataSpec, ElementRegistration, HandlerRegistration } from '../../application/index.js';
4
- import type { AnyDomainComponentOptic } from '../../components/index.js';
5
- import type { ActionDefinitions, Any$EntityReflections, AnyActionImplementations, AnyAliasMap, AnyAllowedRootEntityTypes, AnyDomainFactory, AnyEntityReflections, AnyExpressions, AnyProductPreset, DomainEntity, MigrateFunction } from '../../core/index.js';
4
+ import type { ActionDefinitions, Any$EntityReflections, AnyActionImplementations, AnyAliasMap, AnyAllowedRootEntityTypes, AnyDomainComponentOptic, AnyDomainFactory, AnyEntityReflections, AnyExpressions, AnyProductPreset, DomainEntity, MigrateFunction } from '../../core/index.js';
6
5
  import type { AnyCreateTransformersFactory } from '../../domain-context/store-system/store-system.js';
7
6
  export interface ApplicationConfiguratorSpec {
8
7
  readonly modelVersion: number;
@@ -1,8 +1,6 @@
1
1
  export * from './core/index.js';
2
2
  export { createActionFactory } from './actions/action-factory.js';
3
3
  export { type ActionImplementationConflicts, findActionImplementationConflicts, } from './actions/prepare-action-implementations.js';
4
- export { createConstantExpressionFactory } from './expressions/constant-expressions.js';
5
- export { createCustomExpressionFactory } from './expressions/custom-expression.js';
6
4
  export { createCustomInvariantFactory, type StaticallyDefinedViolations } from './invariants/custom-invariants.js';
7
5
  export { InvariantBuilder, resolveInvariantModules } from './invariants/invariants.js';
8
6
  export type { AliasedInvariants, Invariant } from './invariants/invariants.js';
@@ -13,23 +11,6 @@ export { createRelationFactory, type Relation } from './relations/relation-facto
13
11
  export { attachMultipleReferenceComponent, attachSingleReferenceComponent, referenceComponent, type ReferenceComponent, type ReferenceComponentState, } from './relations/reference-component.js';
14
12
  export { composedOfComponent, type ComposedOfComponentState, type ComposedOfComponent, } from './relations/composed-of.js';
15
13
  export { createSingleReferenceRead, createSingleReferenceWrite, createMultipleReferenceRead, createMultipleReferenceWrite, createSingleCompositionRead, createMultipleCompositionRead, createEmptyWrite, } from './relations/component-factories.js';
16
- export { systemVirtualEntityId } from './components/system-virtual-entity.js';
17
- export { navigationStateComponent, isNavigationComponentSnapshot, isSystemNavigationComponentSnapshot, type NavigationStateComponent, type NavigationStateComponentState, } from './components/navigation-state-component.js';
18
- export { hoverStateComponent, isHoverStateComponentSnapshot, isSystemHoverStateComponentSnapshot, type HoverStateComponent, type HoverStateComponentState, } from './components/hover-state-component.js';
19
- export { selectionStateComponent, isSelectionComponentSnapshot, isSystemSelectionComponentSnapshot, type SelectionStateComponent, type SelectionStateComponentState, } from './components/selection-state-component.js';
20
- export { viewStateComponent, isViewComponentSnapshot, isSystemViewComponentSnapshot, type ViewStateComponent, type ViewStateComponentState, } from './components/view-state-component.js';
21
- export { toolStateComponent, isToolStateComponentSnapshot, isSystemToolStateComponentSnapshot, type ToolStateComponent, type ToolStateComponentState, } from './components/tool-state-component.js';
22
- export { debugStateComponent, isDebugStateComponentSnapshot, isSystemDebugStateComponentSnapshot, type DebugStateComponent, type DebugStateComponentState, } from './components/debug-state-component.js';
23
- export { fullscreenStateComponent, isFullscreenStateComponentSnapshot, isSystemFullscreenStateComponentSnapshot, type FullscreenStateComponent, type FullscreenStateComponentState, } from './components/fullscreen-state-component.js';
24
- export { dragStateComponent, isDragStateComponentSnapshot, isSystemDragStateComponentSnapshot, type DragStateComponent, type DragStateComponentState, } from './components/drag-state-component.js';
25
- export { viewportStateComponent, isViewportStateComponentSnapshot, isSystemViewportStateComponentSnapshot, VIEWPORTS, type Viewport, type ViewportStateComponent, type ViewportStateComponentState, } from './components/viewport-state-component.js';
26
- export { type ComponentSystemFilterState, type ComponentSystemFilterProps, ComponentSystemFilterPropsSchema, getComponentSystemFilterState, CombinedComponentFilterSchema, type GradualComponentSystemFilter, type FilterMismatchReason, type IdOrWithId, } from './components/system-component-filter.js';
27
- export { ComponentSystemFilterSchema, type ComponentSystemFilter, type DeclarativeComponentSystemFilter, } from './components/legacy-filter.js';
28
- export type { OneComponentFilter, ManyComponentFilter, ComponentFilter, FilteredOutComponentSnapshot, FilteredOutFilterContext, } from './components/component-reader-types.js';
29
- export { DomainComponentOpticBuilder, type AnyDomainComponentOptic, type DomainComponentOptic, resolveComponentOpticModules, } from './components/domain-component-optic.js';
30
- export { groupComponentsByEntityIdAndName, isEqualGroupedComponentSnapshots, type GroupedComponentSnapshots, } from './components/group-components-by-entity-id-and-name.js';
31
- export { SystemComponentBuilder } from './components/system-component-builder.js';
32
- export { type DataUpdate, type StateUpdate, type ComponentModification, isComponentModificationOfType, type DomainEntityCreation, type EntityDeletion, type DomainEntityReplacement, type DomainEntityModification, type EphemeralRecordCreation, type EphemeralRecordDeletion, type EphemeralRecordModification, type DomainEntityStateDelta, systemUpdateFactory, type UpdateFactory, createUpdateFactory, } from './components/updates.js';
33
14
  export { DomainBuilder, type AliasedExpressions } from './domain-builder.js';
34
15
  export { memoEval, isMemoizedArray, isMemoizedObject, type MemoizedArray, type MemoizedObject, } from './utils/memo-eval.js';
35
16
  export { cloneEvalCache, getEvalCache, setEvalCache, type EvalCacheToken, createEvalCacheToken, } from './utils/eval-cache.js';
@@ -1 +1 @@
1
- export*from"./core/index.js";export{createActionFactory}from"./actions/action-factory.js";export{findActionImplementationConflicts}from"./actions/prepare-action-implementations.js";export{createConstantExpressionFactory}from"./expressions/constant-expressions.js";export{createCustomExpressionFactory}from"./expressions/custom-expression.js";export{createCustomInvariantFactory}from"./invariants/custom-invariants.js";export{InvariantBuilder,resolveInvariantModules}from"./invariants/invariants.js";export{compareSeverity}from"./invariants/violation.js";export{violationsComponent}from"./invariants/violation-component.js";export{createRelationFactory}from"./relations/relation-factory.js";export{attachMultipleReferenceComponent,attachSingleReferenceComponent,referenceComponent}from"./relations/reference-component.js";export{composedOfComponent}from"./relations/composed-of.js";export{createSingleReferenceRead,createSingleReferenceWrite,createMultipleReferenceRead,createMultipleReferenceWrite,createSingleCompositionRead,createMultipleCompositionRead,createEmptyWrite}from"./relations/component-factories.js";export{systemVirtualEntityId}from"./components/system-virtual-entity.js";export{navigationStateComponent,isNavigationComponentSnapshot,isSystemNavigationComponentSnapshot}from"./components/navigation-state-component.js";export{hoverStateComponent,isHoverStateComponentSnapshot,isSystemHoverStateComponentSnapshot}from"./components/hover-state-component.js";export{selectionStateComponent,isSelectionComponentSnapshot,isSystemSelectionComponentSnapshot}from"./components/selection-state-component.js";export{viewStateComponent,isViewComponentSnapshot,isSystemViewComponentSnapshot}from"./components/view-state-component.js";export{toolStateComponent,isToolStateComponentSnapshot,isSystemToolStateComponentSnapshot}from"./components/tool-state-component.js";export{debugStateComponent,isDebugStateComponentSnapshot,isSystemDebugStateComponentSnapshot}from"./components/debug-state-component.js";export{fullscreenStateComponent,isFullscreenStateComponentSnapshot,isSystemFullscreenStateComponentSnapshot}from"./components/fullscreen-state-component.js";export{dragStateComponent,isDragStateComponentSnapshot,isSystemDragStateComponentSnapshot}from"./components/drag-state-component.js";export{viewportStateComponent,isViewportStateComponentSnapshot,isSystemViewportStateComponentSnapshot,VIEWPORTS}from"./components/viewport-state-component.js";export{ComponentSystemFilterPropsSchema,getComponentSystemFilterState,CombinedComponentFilterSchema}from"./components/system-component-filter.js";export{ComponentSystemFilterSchema}from"./components/legacy-filter.js";export{DomainComponentOpticBuilder,resolveComponentOpticModules}from"./components/domain-component-optic.js";export{groupComponentsByEntityIdAndName,isEqualGroupedComponentSnapshots}from"./components/group-components-by-entity-id-and-name.js";export{SystemComponentBuilder}from"./components/system-component-builder.js";export{isComponentModificationOfType,systemUpdateFactory,createUpdateFactory}from"./components/updates.js";export{DomainBuilder}from"./domain-builder.js";export{memoEval,isMemoizedArray,isMemoizedObject}from"./utils/memo-eval.js";export{cloneEvalCache,getEvalCache,setEvalCache,createEvalCacheToken}from"./utils/eval-cache.js";export{areProfilerLabelsEnabled,setProfilerLabelsEnabled}from"./utils/profiler-label.js";export*from"./dimensions/index.js";export*from"./domain-context/index.js";export*from"./system-components/index.js";export*from"./sketching/index.js";export*from"./projections/index.js";export*from"./admin-domain/index.js";export*from"./application/index.js";export{resolveActionModules,resolveExpressionModules}from"./project-modules/index.js";export*from"./scene/index.js";export{getAllPhxDefinitions}from"./system-definitions.js";export{availableSystemComponents,componentsByName}from"./available-system-components.js";export*from"./mocks/index.js";export*from"./domain-runtime/index.js";
1
+ export*from"./core/index.js";export{createActionFactory}from"./actions/action-factory.js";export{findActionImplementationConflicts}from"./actions/prepare-action-implementations.js";export{createCustomInvariantFactory}from"./invariants/custom-invariants.js";export{InvariantBuilder,resolveInvariantModules}from"./invariants/invariants.js";export{compareSeverity}from"./invariants/violation.js";export{violationsComponent}from"./invariants/violation-component.js";export{createRelationFactory}from"./relations/relation-factory.js";export{attachMultipleReferenceComponent,attachSingleReferenceComponent,referenceComponent}from"./relations/reference-component.js";export{composedOfComponent}from"./relations/composed-of.js";export{createSingleReferenceRead,createSingleReferenceWrite,createMultipleReferenceRead,createMultipleReferenceWrite,createSingleCompositionRead,createMultipleCompositionRead,createEmptyWrite}from"./relations/component-factories.js";export{DomainBuilder}from"./domain-builder.js";export{memoEval,isMemoizedArray,isMemoizedObject}from"./utils/memo-eval.js";export{cloneEvalCache,getEvalCache,setEvalCache,createEvalCacheToken}from"./utils/eval-cache.js";export{areProfilerLabelsEnabled,setProfilerLabelsEnabled}from"./utils/profiler-label.js";export*from"./dimensions/index.js";export*from"./domain-context/index.js";export*from"./system-components/index.js";export*from"./sketching/index.js";export*from"./projections/index.js";export*from"./admin-domain/index.js";export*from"./application/index.js";export{resolveActionModules,resolveExpressionModules}from"./project-modules/index.js";export*from"./scene/index.js";export{getAllPhxDefinitions}from"./system-definitions.js";export{availableSystemComponents,componentsByName}from"./available-system-components.js";export*from"./mocks/index.js";export*from"./domain-runtime/index.js";
@@ -1,5 +1,4 @@
1
- import type { DomainEntity, DomainEntityId } from '../core/model.js';
2
- import type { DomainState } from '../core/state.js';
1
+ import type { DomainEntity, DomainEntityId, DomainState } from '../core/index.js';
3
2
  import type { Invariant } from './invariants.js';
4
3
  import type { Violation } from './violation.js';
5
4
  export declare const createInvariant: <VIOLATION_TYPE extends string>(evaluate: (selfId: DomainEntityId<string>, state: DomainState<DomainEntity<string>>) => ReadonlyArray<Violation<VIOLATION_TYPE>>) => Invariant<DomainEntity<string>, DomainEntity<string>, Record<string, unknown>, Record<string, unknown>, Record<string, unknown>, DomainEntity<string>, VIOLATION_TYPE>;
@@ -1,7 +1,5 @@
1
1
  import type { OmitEmpty, OmitNever } from '@salsita-ai/common/utils';
2
- import type { ExpandAlias, TypeOrAlias } from '../core/alias.js';
3
- import type { $DomainEntity, DomainEntity } from '../core/model.js';
4
- import type { CustomExpression } from '../expressions/custom-expression.js';
2
+ import type { $DomainEntity, CustomExpression, DomainEntity, ExpandAlias, TypeOrAlias } from '../core/index.js';
5
3
  import type { Invariant } from './invariants.js';
6
4
  import type { Violation } from './violation.js';
7
5
  export type CustomInvariantsFromBlueprints<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>, BLUEPRINTS extends Partial<Record<keyof $MAP & string, Record<string, boolean | string>>>> = {
@@ -1,8 +1,5 @@
1
1
  import type { OmitNever } from '@salsita-ai/common/utils';
2
- import { type AliasMap, type EventualAlias, type ExpandAlias, type ExtractFromAliasedRecord, type TypeOrAlias } from '../core/alias.js';
3
- import type { AnonymousExpression, ExpressionContext } from '../core/expression.js';
4
- import type { $DomainEntity, DomainEntity, EntityByType } from '../core/model.js';
5
- import type { DomainState } from '../core/state.js';
2
+ import { type $DomainEntity, type AliasMap, type AnonymousExpression, type DomainEntity, type DomainState, type EntityByType, type EventualAlias, type ExpandAlias, type ExpressionContext, type ExtractFromAliasedRecord, type TypeOrAlias } from '../core/index.js';
6
3
  import { type ProjectModule } from '../project-modules/index.js';
7
4
  import { type Violation } from './violation.js';
8
5
  export interface Invariant<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>, ENTITY extends ENTITIES, VIOLATION_TYPE extends string> {
@@ -1 +1 @@
1
- import{expandAlias as t}from"../core/alias.js";import{SHARED_FOLDER_HINT as a,createContractError as e,isRecord as i}from"../project-modules/index.js";let r={expected:"an object of invariant lists keyed by entity type or alias",fix:`Create it with phx.domain.implementCustomInvariants({ ... }) (phx.domain.admin.implementCustomInvariants({ ... }) under src/admin/), ${a}.`},n=t=>i(t)&&"function"==typeof t.evaluate,s=t=>i(t)&&Object.values(t).every(t=>Array.isArray(t)&&t.every(n));export const resolveInvariantModules=t=>{let a={};for(let i of t){if(!s(i.exports))throw e(i.origin,r,i.exports);for(let[t,e]of Object.entries(i.exports))a[t]=[...a[t]??[],...e]}return a};export class InvariantBuilder{aliasMap;invariants;constructor(t,a={}){this.aliasMap=t,this.invariants=a}withInvariantModules(t){return this.withInvariants(resolveInvariantModules(t))}withInvariants(a){let e={...this.invariants};return Object.entries(a).forEach(([a,i])=>{t(this.aliasMap,a).forEach(t=>{e[t]=[...e[t]??[],...i]})}),new InvariantBuilder(this.aliasMap,e)}_conflicts={};buildViolationExpressions=()=>{let t={};return Object.entries(this.invariants).forEach(([a,e])=>{t[a]={$violations:{evaluate:(t,a,i)=>e.flatMap(e=>e.evaluate(t,a,i)),meta:{}}}}),t}}
1
+ import{expandAlias as t}from"../core/index.js";import{SHARED_FOLDER_HINT as e,createContractError as a,isRecord as i}from"../project-modules/index.js";let r={expected:"an object of invariant lists keyed by entity type or alias",fix:`Create it with phx.domain.implementCustomInvariants({ ... }) (phx.domain.admin.implementCustomInvariants({ ... }) under src/admin/), ${e}.`},n=t=>i(t)&&"function"==typeof t.evaluate,s=t=>i(t)&&Object.values(t).every(t=>Array.isArray(t)&&t.every(n));export const resolveInvariantModules=t=>{let e={};for(let i of t){if(!s(i.exports))throw a(i.origin,r,i.exports);for(let[t,a]of Object.entries(i.exports))e[t]=[...e[t]??[],...a]}return e};export class InvariantBuilder{aliasMap;invariants;constructor(t,e={}){this.aliasMap=t,this.invariants=e}withInvariantModules(t){return this.withInvariants(resolveInvariantModules(t))}withInvariants(e){let a={...this.invariants};return Object.entries(e).forEach(([e,i])=>{t(this.aliasMap,e).forEach(t=>{a[t]=[...a[t]??[],...i]})}),new InvariantBuilder(this.aliasMap,a)}_conflicts={};buildViolationExpressions=()=>{let t={};return Object.entries(this.invariants).forEach(([e,a])=>{t[e]={$violations:{evaluate:(t,e,i)=>a.flatMap(a=>a.evaluate(t,e,i)),meta:{}}}}),t}}
@@ -1 +1 @@
1
- import{SystemComponentBuilder as o}from"../components/system-component-builder.js";import{ViolationSchema as t}from"./violation.js";export const violationsComponent=o.component("violations").withState({tsType:"ViolationComponentState",type:"object",properties:{violations:{type:"array",items:t}},required:["violations"],additionalProperties:!1}).build();
1
+ import{SystemComponentBuilder as o}from"../core/index.js";import{ViolationSchema as t}from"./violation.js";export const violationsComponent=o.component("violations").withState({tsType:"ViolationComponentState",type:"object",properties:{violations:{type:"array",items:t}},required:["violations"],additionalProperties:!1}).build();
@@ -1,6 +1,6 @@
1
1
  import type { I18n } from '@lingui/core';
2
2
  import type { Localizable } from '@salsita-ai/common/utils';
3
- import type { $DomainEntity, DomainEntity, EntityId } from '../core/model.js';
3
+ import type { $DomainEntity, DomainEntity, EntityId } from '../core/index.js';
4
4
  import type { StateEmission } from '../domain-context/store-system/store-system.js';
5
5
  /**
6
6
  * An **ORDERED** list of violation severities.
@@ -1,5 +1,5 @@
1
1
  import type { BlenderLight } from '@salsita-ai/contracts/webhook';
2
- import type { DomainEntity, DomainState } from '../../core/index.js';
2
+ import { type DomainEntity, type DomainState } from '../../core/index.js';
3
3
  import type { DomainContextSelectors } from '../../domain-runtime/domain-context/index.js';
4
4
  import type { DomainServicesSelectors } from '../../domain-runtime/domain-services/index.js';
5
5
  import type { BlenderCamera, BlenderImageConfig, BlenderImageSize, BlenderSceneConfig, BlenderSceneObject, SceneEntityNode } from './types.js';
@@ -1 +1 @@
1
- import{Matrix4 as e}from"three";import{groupComponentsByEntityIdAndName as t}from"../../components/group-components-by-entity-id-and-name.js";import{resolveMorphTargetInfluences as n}from"../../scene/index.js";import{customSceneEntityComponent as r,hiddenEntityComponent as i,materialOverridePropertyTransitionComponent as o,materialOverrideTransformerComponent as s,sceneEntityAmbientLightComponent as a,sceneEntityBoxObjectComponent as c,sceneEntityDirectionalLightComponent as l,sceneEntityLocalMaterialOverrideComponent as m,sceneEntityMaterialOverrideComponent as d,sceneEntityObjectClipComponent as g,sceneEntityObjectComponent as p,sceneEntityObjectDecalComponent as h,sceneEntityObjectGroupComponent as f,sceneEntityObjectLocalMaterialOverrideComponent as y,sceneEntityObjectMaterialOverrideComponent as j,sceneEntityObjectPropertiesComponent as x,sceneEntityObjectRemoteMaterialOverrideComponent as u,sceneEntityObjectTextDecalComponent as S,sceneEntityObjectTransformerComponent as v,sceneEntityObjectTransmissiveMaterialOverrideComponent as b,sceneEntityPointLightComponent as _,sceneEntityPropertiesComponent as E,sceneEntityRectAreaLightComponent as O,sceneEntityRemoteMaterialOverrideComponent as N,sceneEntityRemoteObjectComponent as B,sceneEntitySpotLightComponent as I,sceneEntityTransmissiveMaterialOverrideComponent as w}from"../../system-components/index.js";import{createSceneObjectGroupTransformResolver as $}from"../common/scene-object-transform.js";import{reduceMaterialOverrides as L}from"../material-overrides.js";import{projectBlenderCamera as C}from"./camera.js";import{getBlenderObjectMaterialOverrides as T}from"./entity-overrides.js";import{projectBlenderLight as D}from"./lights.js";import{projectBlenderMaterialOverrides as P}from"./materials.js";import{getBlenderObjectTransform as M}from"./transforms.js";let U=e=>"fileUrl"in e,R=(e,t)=>`${e}_${t}`;export class BlenderProjections{_context;constructor(e){this._context=e}_readEntityComponents=(e,n)=>t(this._context.selectors.getComponentReader().readManyComponents({entityIds:[e],componentTypes:[r,i,E,B,p,c,N,m,d,w,x,f,j,y,u,b,S,h,v,g,s,o,_,I,l,a,O]},n)).get(e);_traverse=(e,t,r)=>{let i=this._readEntityComponents(e.id,r),o=[...i?.sceneEntityRemoteObject??[],...i?.sceneEntityObject??[],...i?.sceneEntityBoxObject??[]],s={worldMatrix:this._context.selectors.getPositionProjections().getEntityWorldMatrix(e.id,r,null)},a=(i?.hiddenEntity?.length??0)>0,c={id:e.id,parent:t,customEntity:i?.customSceneEntity?.[0]?.state.node,isHidden:a,overrideComponents:i,properties:s,sceneObjects:o.map(r=>{let o=i?.sceneEntityObjectProperties?.find(e=>e.componentInstance.instanceName===r.componentInstance.instanceName)?.state,s=i?.sceneEntityObjectTextDecal?.filter(e=>e.componentInstance.instanceName===r.componentInstance.instanceName),a=i?.sceneEntityObjectDecal?.filter(e=>e.componentInstance.instanceName===r.componentInstance.instanceName),c=i?.sceneEntityObjectTransformer?.filter(e=>e.state.target===r.componentInstance.instanceName),l=n(o?.morphTargetInfluences,t=>this._context.domainServicesSelectors.getLogger().warn(`Morph target "${t}" on object ${r.componentInstance.instanceName} of entity ${e.id} has scaleZero equal to scaleOne, so its influence is undefined and is exported to Blender as 0. Give scaleZero and scaleOne different values.`)),m=i?.sceneEntityObjectClip?.filter(e=>e.state.target===r.componentInstance.instanceName),{overrides:d,transformations:g,transitions:p}=T(i??{},t,r.componentInstance.instanceName);return{instanceName:r.componentInstance.instanceName,object:r.state,properties:o,morphTargetInfluences:l,textDecals:s,decals:a,materialOverrides:d,materialOverrideTransformations:g,materialOverridePropertyTransitions:p,objectTransformations:c,clips:m}}),nodes:[]};for(let t of e.nodes){let e=this._traverse(t.node,c,r);c.nodes.push(e)}return c};getSceneEntityTree=e=>{let{root:t}=this._context.selectors.getCompositionProjections().getTree(e);return this._traverse(t,null,e)};_getBlenderObjects=(t,n)=>{let r=this._context.selectors.getDimensionSystem().getDataDistanceUnit(t),i=[],o=t=>{if(t.isHidden)return;if(null!=t.customEntity)return void this._context.domainServicesSelectors.getLogger().warn(`Custom entity ${t.id} is not supported in Blender.`);let n=t.overrideComponents?.materialOverrideTransformer??[];n.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Entity ${t.id} has ${n.length} material override transformer(s), they are not applied in Blender. Set the final material values on the overrides active in the export state.`);let s=t.properties,a=$(t.overrideComponents?.sceneEntityObjectGroup?.map(e=>({instanceName:e.componentInstance.instanceName,state:e.state}))??[],r),c=new Map(t.sceneObjects.map(e=>[e,a(e.properties?.targetParentGroup,e.instanceName)]));for(let n of t.sceneObjects){let o=c.get(n);if(o?.visible===!1||n.properties?.visible===!1||n.properties?.rendered===!1)continue;if(!U(n.object)){this._context.domainServicesSelectors.getLogger().warn(`Object ${n.instanceName} is not a remote object, it will not be rendered in Blender.`);continue}n.textDecals&&n.textDecals.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Object ${n.instanceName} of entity ${t.id} has text decals, they are not rendered in Blender.`),n.decals&&n.decals.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Object ${n.instanceName} of entity ${t.id} has decals, they are not rendered in Blender.`),n.objectTransformations&&n.objectTransformations.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Object ${n.instanceName} of entity ${t.id} has object transformers, they are not applied in Blender. Express the transform through sceneEntityObjectProperties or a sceneEntityObjectGroup active in the export state.`),n.clips&&n.clips.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Object ${n.instanceName} of entity ${t.id} has animation clips, they are not played in Blender.`);let a=n.object,{position:l,scale:m,rotation:d}=M(o?new e().multiplyMatrices(s.worldMatrix,o.matrix):s.worldMatrix,n.properties,a.dimensionUnit??r,r),g=L(n.materialOverrides??[]),p=P({logger:this._context.domainServicesSelectors.getLogger(),materialOverrides:g,objectInstanceName:n.instanceName,transitions:n.materialOverridePropertyTransitions??[]});i.push({id:R(t.id,n.instanceName),objectName:a.objectName,position:l,scale:m,rotation:d,morphTargetInfluences:n.morphTargetInfluences,materialOverrides:p})}for(let e of t.nodes)o(e)};return o(n),i};getBlenderObjects=e=>this._getBlenderObjects(e,this.getSceneEntityTree(e));_prepareExportState=(e,t,n)=>{let r=this._context.selectors.getNavigationSystem().getExportUpdate(t,n),i=this._context.selectors.getStoreSystem().prepareStateEmission([r],e,"staged");if(!i.validity.valid)throw this._context.domainServicesSelectors.getLogger().error(`Setting an export state to ${t} for entity ${n} resulted in an invalid state! Check if there isn't a transformer corrupting the state as a reaction to setting the export state.`,i),Error("Exported state is invalid!");return i.state};_getBlenderLights=(e,t)=>{let n=this._context.selectors.getDimensionSystem().getDataDistanceUnit(e),r=[],i=e=>{if(e.isHidden||null!=e.customEntity)return;let t=e.overrideComponents,o=t?.sceneEntityAmbientLight??[];for(let i of(o.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Entity "${e.id}" has ${o.length} ambient light component(s) which are not exported to Blender because Blender has no equivalent ambient light type. Use HDRI lighting or additional point/area lights instead.`),[...t?.sceneEntityPointLight??[],...t?.sceneEntitySpotLight??[],...t?.sceneEntityDirectionalLight??[],...t?.sceneEntityRectAreaLight??[]])){let t=D({entityId:e.id,entityWorldMatrix:e.properties.worldMatrix,snapshot:i,distanceUnit:n});null!=t?r.push(t):this._context.domainServicesSelectors.getLogger().warn(`Unknown light component type for ${i.componentInstance.instanceName}`)}for(let t of e.nodes)i(t)};return i(t),r};getBlenderLights=e=>this._getBlenderLights(e,this.getSceneEntityTree(e));getBlenderCamera=(e,t)=>C(e,t,{componentReader:this._context.selectors.getComponentReader(),dimensionSystem:this._context.selectors.getDimensionSystem(),positionProjections:this._context.selectors.getPositionProjections()});_getBlenderSceneConfigFromState=e=>{let t=this.getSceneEntityTree(e),n=this._getBlenderObjects(e,t),r=this._getBlenderLights(e,t);return{renderedEntities:n.map(e=>({id:e.id,type:"default",objectName:e.objectName,position:e.position,scale:e.scale,rotation:e.rotation,materialOverrides:e.materialOverrides,morphTargetInfluences:e.morphTargetInfluences})),lights:r.length>0?r:void 0}};getBlenderSceneConfig=(e,t,n)=>{let r=this._prepareExportState(e,t,n);return this._getBlenderSceneConfigFromState(r)};getBlenderImageConfig=(e,t,n,r)=>{let i=this._prepareExportState(e,t,n);return{width:r.width,height:r.height,...this._getBlenderSceneConfigFromState(i),camera:this.getBlenderCamera(i,r)}}}
1
+ import{Matrix4 as e}from"three";import{groupComponentsByEntityIdAndName as t}from"../../core/index.js";import{resolveMorphTargetInfluences as n}from"../../scene/index.js";import{customSceneEntityComponent as r,hiddenEntityComponent as i,materialOverridePropertyTransitionComponent as o,materialOverrideTransformerComponent as s,sceneEntityAmbientLightComponent as a,sceneEntityBoxObjectComponent as c,sceneEntityDirectionalLightComponent as l,sceneEntityLocalMaterialOverrideComponent as m,sceneEntityMaterialOverrideComponent as d,sceneEntityObjectClipComponent as g,sceneEntityObjectComponent as p,sceneEntityObjectDecalComponent as h,sceneEntityObjectGroupComponent as f,sceneEntityObjectLocalMaterialOverrideComponent as y,sceneEntityObjectMaterialOverrideComponent as j,sceneEntityObjectPropertiesComponent as x,sceneEntityObjectRemoteMaterialOverrideComponent as S,sceneEntityObjectTextDecalComponent as u,sceneEntityObjectTransformerComponent as v,sceneEntityObjectTransmissiveMaterialOverrideComponent as b,sceneEntityPointLightComponent as _,sceneEntityPropertiesComponent as E,sceneEntityRectAreaLightComponent as O,sceneEntityRemoteMaterialOverrideComponent as N,sceneEntityRemoteObjectComponent as B,sceneEntitySpotLightComponent as I,sceneEntityTransmissiveMaterialOverrideComponent as w}from"../../system-components/index.js";import{createSceneObjectGroupTransformResolver as $}from"../common/scene-object-transform.js";import{reduceMaterialOverrides as L}from"../material-overrides.js";import{projectBlenderCamera as C}from"./camera.js";import{getBlenderObjectMaterialOverrides as T}from"./entity-overrides.js";import{projectBlenderLight as D}from"./lights.js";import{projectBlenderMaterialOverrides as P}from"./materials.js";import{getBlenderObjectTransform as M}from"./transforms.js";let U=e=>"fileUrl"in e,R=(e,t)=>`${e}_${t}`;export class BlenderProjections{_context;constructor(e){this._context=e}_readEntityComponents=(e,n)=>t(this._context.selectors.getComponentReader().readManyComponents({entityIds:[e],componentTypes:[r,i,E,B,p,c,N,m,d,w,x,f,j,y,S,b,u,h,v,g,s,o,_,I,l,a,O]},n)).get(e);_traverse=(e,t,r)=>{let i=this._readEntityComponents(e.id,r),o=[...i?.sceneEntityRemoteObject??[],...i?.sceneEntityObject??[],...i?.sceneEntityBoxObject??[]],s={worldMatrix:this._context.selectors.getPositionProjections().getEntityWorldMatrix(e.id,r,null)},a=(i?.hiddenEntity?.length??0)>0,c={id:e.id,parent:t,customEntity:i?.customSceneEntity?.[0]?.state.node,isHidden:a,overrideComponents:i,properties:s,sceneObjects:o.map(r=>{let o=i?.sceneEntityObjectProperties?.find(e=>e.componentInstance.instanceName===r.componentInstance.instanceName)?.state,s=i?.sceneEntityObjectTextDecal?.filter(e=>e.componentInstance.instanceName===r.componentInstance.instanceName),a=i?.sceneEntityObjectDecal?.filter(e=>e.componentInstance.instanceName===r.componentInstance.instanceName),c=i?.sceneEntityObjectTransformer?.filter(e=>e.state.target===r.componentInstance.instanceName),l=n(o?.morphTargetInfluences,t=>this._context.domainServicesSelectors.getLogger().warn(`Morph target "${t}" on object ${r.componentInstance.instanceName} of entity ${e.id} has scaleZero equal to scaleOne, so its influence is undefined and is exported to Blender as 0. Give scaleZero and scaleOne different values.`)),m=i?.sceneEntityObjectClip?.filter(e=>e.state.target===r.componentInstance.instanceName),{overrides:d,transformations:g,transitions:p}=T(i??{},t,r.componentInstance.instanceName);return{instanceName:r.componentInstance.instanceName,object:r.state,properties:o,morphTargetInfluences:l,textDecals:s,decals:a,materialOverrides:d,materialOverrideTransformations:g,materialOverridePropertyTransitions:p,objectTransformations:c,clips:m}}),nodes:[]};for(let t of e.nodes){let e=this._traverse(t.node,c,r);c.nodes.push(e)}return c};getSceneEntityTree=e=>{let{root:t}=this._context.selectors.getCompositionProjections().getTree(e);return this._traverse(t,null,e)};_getBlenderObjects=(t,n)=>{let r=this._context.selectors.getDimensionSystem().getDataDistanceUnit(t),i=[],o=t=>{if(t.isHidden)return;if(null!=t.customEntity)return void this._context.domainServicesSelectors.getLogger().warn(`Custom entity ${t.id} is not supported in Blender.`);let n=t.overrideComponents?.materialOverrideTransformer??[];n.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Entity ${t.id} has ${n.length} material override transformer(s), they are not applied in Blender. Set the final material values on the overrides active in the export state.`);let s=t.properties,a=$(t.overrideComponents?.sceneEntityObjectGroup?.map(e=>({instanceName:e.componentInstance.instanceName,state:e.state}))??[],r),c=new Map(t.sceneObjects.map(e=>[e,a(e.properties?.targetParentGroup,e.instanceName)]));for(let n of t.sceneObjects){let o=c.get(n);if(o?.visible===!1||n.properties?.visible===!1||n.properties?.rendered===!1)continue;if(!U(n.object)){this._context.domainServicesSelectors.getLogger().warn(`Object ${n.instanceName} is not a remote object, it will not be rendered in Blender.`);continue}n.textDecals&&n.textDecals.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Object ${n.instanceName} of entity ${t.id} has text decals, they are not rendered in Blender.`),n.decals&&n.decals.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Object ${n.instanceName} of entity ${t.id} has decals, they are not rendered in Blender.`),n.objectTransformations&&n.objectTransformations.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Object ${n.instanceName} of entity ${t.id} has object transformers, they are not applied in Blender. Express the transform through sceneEntityObjectProperties or a sceneEntityObjectGroup active in the export state.`),n.clips&&n.clips.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Object ${n.instanceName} of entity ${t.id} has animation clips, they are not played in Blender.`);let a=n.object,{position:l,scale:m,rotation:d}=M(o?new e().multiplyMatrices(s.worldMatrix,o.matrix):s.worldMatrix,n.properties,a.dimensionUnit??r,r),g=L(n.materialOverrides??[]),p=P({logger:this._context.domainServicesSelectors.getLogger(),materialOverrides:g,objectInstanceName:n.instanceName,transitions:n.materialOverridePropertyTransitions??[]});i.push({id:R(t.id,n.instanceName),objectName:a.objectName,position:l,scale:m,rotation:d,morphTargetInfluences:n.morphTargetInfluences,materialOverrides:p})}for(let e of t.nodes)o(e)};return o(n),i};getBlenderObjects=e=>this._getBlenderObjects(e,this.getSceneEntityTree(e));_prepareExportState=(e,t,n)=>{let r=this._context.selectors.getNavigationSystem().getExportUpdate(t,n),i=this._context.selectors.getStoreSystem().prepareStateEmission([r],e,"staged");if(!i.validity.valid)throw this._context.domainServicesSelectors.getLogger().error(`Setting an export state to ${t} for entity ${n} resulted in an invalid state! Check if there isn't a transformer corrupting the state as a reaction to setting the export state.`,i),Error("Exported state is invalid!");return i.state};_getBlenderLights=(e,t)=>{let n=this._context.selectors.getDimensionSystem().getDataDistanceUnit(e),r=[],i=e=>{if(e.isHidden||null!=e.customEntity)return;let t=e.overrideComponents,o=t?.sceneEntityAmbientLight??[];for(let i of(o.length>0&&this._context.domainServicesSelectors.getLogger().warn(`Entity "${e.id}" has ${o.length} ambient light component(s) which are not exported to Blender because Blender has no equivalent ambient light type. Use HDRI lighting or additional point/area lights instead.`),[...t?.sceneEntityPointLight??[],...t?.sceneEntitySpotLight??[],...t?.sceneEntityDirectionalLight??[],...t?.sceneEntityRectAreaLight??[]])){let t=D({entityId:e.id,entityWorldMatrix:e.properties.worldMatrix,snapshot:i,distanceUnit:n});null!=t?r.push(t):this._context.domainServicesSelectors.getLogger().warn(`Unknown light component type for ${i.componentInstance.instanceName}`)}for(let t of e.nodes)i(t)};return i(t),r};getBlenderLights=e=>this._getBlenderLights(e,this.getSceneEntityTree(e));getBlenderCamera=(e,t)=>C(e,t,{componentReader:this._context.selectors.getComponentReader(),dimensionSystem:this._context.selectors.getDimensionSystem(),positionProjections:this._context.selectors.getPositionProjections()});_getBlenderSceneConfigFromState=e=>{let t=this.getSceneEntityTree(e),n=this._getBlenderObjects(e,t),r=this._getBlenderLights(e,t);return{renderedEntities:n.map(e=>({id:e.id,type:"default",objectName:e.objectName,position:e.position,scale:e.scale,rotation:e.rotation,materialOverrides:e.materialOverrides,morphTargetInfluences:e.morphTargetInfluences})),lights:r.length>0?r:void 0}};getBlenderSceneConfig=(e,t,n)=>{let r=this._prepareExportState(e,t,n);return this._getBlenderSceneConfigFromState(r)};getBlenderImageConfig=(e,t,n,r)=>{let i=this._prepareExportState(e,t,n);return{width:r.width,height:r.height,...this._getBlenderSceneConfigFromState(i),camera:this.getBlenderCamera(i,r)}}}
@@ -1 +1 @@
1
- import{isEqualArray as t}from"@salsita-ai/common/utils";import{groupComponentsByEntityIdAndName as e}from"../components/group-components-by-entity-id-and-name.js";import{domainEntityTypeFromId as o,isVirtualEntityId as i}from"../core/index.js";import{composedOfComponent as n}from"../relations/composed-of.js";import{detailComponent as s,priceComponent as r}from"../system-components/index.js";export class CompositionCycleError extends Error{constructor(t){super(`Entity ${t} is part of a cycle or appears in two branches in the scene graph! This is not allowed, fix the domain relationships to have clear composition hierarchy!`)}}export class EntityNotPartOfCompositionTreeError extends Error{constructor(t){super(`Entity ${t} is not part of the composition tree. Add composition relations to the entity so every entity is descendant of the root entity!`)}}export class EntityCompositionNode{id;parent;nodes;constructor(t,e,o){this.id=t,this.parent=e,this.nodes=o}descendants=t=>(function* t(e,o){for(let i of e.nodes)o&&i.relation!==o||(yield i.node,yield*t(i.node))})(this,t);children=t=>(function*(t,e){for(let o of t.nodes)e&&o.relation!==e||(yield o.node)})(this,t);ancestors=()=>(function*(t){let e=t.parent;for(;e;)yield e,e=e.parent})(this)}export class CompositionProjections{_context;_weakCache=new WeakMap;_previousValue=null;constructor(t){this._context=t}_traverseComposition=(t,e,o,i,n,s)=>{let r=new EntityCompositionNode(t,e,[]);if(o.has(r))throw new CompositionCycleError(t);for(let e of(i.set(t,r),o.add(r),s??[]))if(e.componentInstance.entityId===t)for(let t of e.state.childEntityIds){let a=this._traverseComposition(t,r,o,i,n,s);r.nodes.push({node:a,relation:e.componentInstance.instanceName})}return r};getTree=e=>{let o=this._weakCache.get(e);if(void 0!==o)return o;let i=this._context.selectors.getComponentReader().readManyComponents({componentTypes:[n]},e);if(this._previousValue&&this._previousValue.rootEntityId===e.rootEntityId&&t(i,this._previousValue.components??[]))return this._weakCache.set(e,this._previousValue.value),this._previousValue.value;let s=new Map,r=this._traverseComposition(e.rootEntityId,null,new Set,s,e,i);for(let t of e.entities)if(void 0===s.get(t.id))throw new EntityNotPartOfCompositionTreeError(t.id);let a={map:s,root:r};return this._weakCache.set(e,a),this._previousValue={components:i,value:a,rootEntityId:e.rootEntityId},a};readBasicEntityInfo=(t,n)=>{let a=e(this._context.selectors.getComponentReader().readManyComponents({entityIds:[t],componentTypes:[s,r]},n)).get(t),l=i(t)?t.name:o(t);return{entityId:t,title:a?.detail?.[0]?.state.title??l,shortDescription:a?.detail?.[0]?.state.description,subtitle:a?.detail?.[0]?.state.subtitle,price:a?.price?.[0]?.state.price,thumbnailUrl:a?.detail?.[0]?.state.thumbnailUrl}}}
1
+ import{isEqualArray as t}from"@salsita-ai/common/utils";import{domainEntityTypeFromId as e,groupComponentsByEntityIdAndName as o,isVirtualEntityId as i}from"../core/index.js";import{composedOfComponent as n}from"../relations/composed-of.js";import{detailComponent as s,priceComponent as r}from"../system-components/index.js";export class CompositionCycleError extends Error{constructor(t){super(`Entity ${t} is part of a cycle or appears in two branches in the scene graph! This is not allowed, fix the domain relationships to have clear composition hierarchy!`)}}export class EntityNotPartOfCompositionTreeError extends Error{constructor(t){super(`Entity ${t} is not part of the composition tree. Add composition relations to the entity so every entity is descendant of the root entity!`)}}export class EntityCompositionNode{id;parent;nodes;constructor(t,e,o){this.id=t,this.parent=e,this.nodes=o}descendants=t=>(function* t(e,o){for(let i of e.nodes)o&&i.relation!==o||(yield i.node,yield*t(i.node))})(this,t);children=t=>(function*(t,e){for(let o of t.nodes)e&&o.relation!==e||(yield o.node)})(this,t);ancestors=()=>(function*(t){let e=t.parent;for(;e;)yield e,e=e.parent})(this)}export class CompositionProjections{_context;_weakCache=new WeakMap;_previousValue=null;constructor(t){this._context=t}_traverseComposition=(t,e,o,i,n,s)=>{let r=new EntityCompositionNode(t,e,[]);if(o.has(r))throw new CompositionCycleError(t);for(let e of(i.set(t,r),o.add(r),s??[]))if(e.componentInstance.entityId===t)for(let t of e.state.childEntityIds){let a=this._traverseComposition(t,r,o,i,n,s);r.nodes.push({node:a,relation:e.componentInstance.instanceName})}return r};getTree=e=>{let o=this._weakCache.get(e);if(void 0!==o)return o;let i=this._context.selectors.getComponentReader().readManyComponents({componentTypes:[n]},e);if(this._previousValue&&this._previousValue.rootEntityId===e.rootEntityId&&t(i,this._previousValue.components??[]))return this._weakCache.set(e,this._previousValue.value),this._previousValue.value;let s=new Map,r=this._traverseComposition(e.rootEntityId,null,new Set,s,e,i);for(let t of e.entities)if(void 0===s.get(t.id))throw new EntityNotPartOfCompositionTreeError(t.id);let a={map:s,root:r};return this._weakCache.set(e,a),this._previousValue={components:i,value:a,rootEntityId:e.rootEntityId},a};readBasicEntityInfo=(t,n)=>{let a=o(this._context.selectors.getComponentReader().readManyComponents({entityIds:[t],componentTypes:[s,r]},n)).get(t),l=i(t)?t.name:e(t);return{entityId:t,title:a?.detail?.[0]?.state.title??l,shortDescription:a?.detail?.[0]?.state.description,subtitle:a?.detail?.[0]?.state.subtitle,price:a?.price?.[0]?.state.price,thumbnailUrl:a?.detail?.[0]?.state.thumbnailUrl}}}
@@ -1,5 +1,4 @@
1
- import type { DomainEntity, DomainEntityId } from '../core/model.js';
2
- import type { DomainState } from '../core/state.js';
1
+ import type { DomainEntity, DomainEntityId, DomainState } from '../core/index.js';
3
2
  import type { DomainContextSelectors } from '../domain-runtime/domain-context/index.js';
4
3
  /**
5
4
  * Constructor context of `ProjectedEntitiesProjections`. It carries no `selectors` member because
@@ -1,7 +1,6 @@
1
1
  import type { Matrix4 } from 'three';
2
2
  import { Vector3 } from 'three';
3
- import type { ComponentSnapshot } from '../core/component.js';
4
- import type { DomainEntity } from '../core/model.js';
3
+ import type { ComponentSnapshot, DomainEntity } from '../core/index.js';
5
4
  import type { SnapAxisComponent, SnapEdgeComponent, SnapPlaneComponent, SnapPointComponent } from '../system-components/index.js';
6
5
  /**
7
6
  * Common fields shared by all world-space snap primitives (points, edges, planes, axes).
@@ -1,6 +1,5 @@
1
1
  import { type Euler, Matrix4, Vector3 } from 'three';
2
- import type { ComponentSnapshot } from '../core/component.js';
3
- import type { DomainEntity } from '../core/model.js';
2
+ import type { ComponentSnapshot, DomainEntity } from '../core/index.js';
4
3
  import type { DimensionUnit } from '../dimensions/dimensions.js';
5
4
  import type { SnapAxisComponent, SnapEdgeComponent, SnapPlaneComponent, SnapPointComponent } from '../system-components/index.js';
6
5
  import type { SnapAxisComponentState } from '../system-components/snap-axis.js';
@@ -1,7 +1,4 @@
1
- import { type AliasMap, type TypeOrAlias } from '../core/alias.js';
2
- import type { ExpressionMeta } from '../core/expression.js';
3
- import type { DomainEntity, DomainEntityId } from '../core/model.js';
4
- import type { DomainState } from '../core/state.js';
1
+ import { type AliasMap, type DomainEntity, type DomainEntityId, type DomainState, type ExpressionMeta, type TypeOrAlias } from '../core/index.js';
5
2
  interface AllOfType0Relation<ENTITIES extends DomainEntity<string>, ALIASES extends Record<string, ENTITIES>, TARGET extends TypeOrAlias<ENTITIES, ALIASES>> {
6
3
  kind: 'allOfType';
7
4
  target: TARGET;
@@ -1 +1 @@
1
- import{expandAlias as e}from"../core/alias.js";export const createAllOfTypeRelation=t=>{let r=new Map,a=new WeakMap,n=!1;return o=>{if(n)throw Error(`Cannot register all-of-type relation targeting ${String(o.target)} after evaluation started. Create all relation expressions before evaluating the domain state.`);let i=new Set(e(t,o.target)),l=[...i].sort().join("|");return r.set(l,i),(e,t)=>(e=>{let t=a.get(e);if(t)return t;n=!0;let o=new Map([...r.keys()].map(e=>[e,[]]));for(let t of e.entities)for(let[e,a]of r)a.has(t.type)&&o.get(e).push(t.id);return a.set(e,o),o})(t).get(l)}};
1
+ import{expandAlias as e}from"../core/index.js";export const createAllOfTypeRelation=t=>{let r=new Map,a=new WeakMap,n=!1;return o=>{if(n)throw Error(`Cannot register all-of-type relation targeting ${String(o.target)} after evaluation started. Create all relation expressions before evaluating the domain state.`);let i=new Set(e(t,o.target)),l=[...i].sort().join("|");return r.set(l,i),(e,t)=>(e=>{let t=a.get(e);if(t)return t;n=!0;let o=new Map([...r.keys()].map(e=>[e,[]]));for(let t of e.entities)for(let[e,a]of r)a.has(t.type)&&o.get(e).push(t.id);return a.set(e,o),o})(t).get(l)}};
@@ -1,5 +1,4 @@
1
- import type { DomainEntity, DomainEntityId } from '../core/model.js';
2
- import type { DomainEntityReflection, RawAliasReflection } from '../core/reflection.js';
1
+ import type { DomainEntity, DomainEntityId, DomainEntityReflection, RawAliasReflection } from '../core/index.js';
3
2
  import type { ComposedOfComponentState } from './composed-of.js';
4
3
  import type { ReferenceComponentState } from './reference-component.js';
5
4
  export declare const createSingleReferenceRead: <TARGET extends DomainEntity<string>>(_targetReflection: DomainEntityReflection<TARGET> | RawAliasReflection<TARGET>, field: string) => (self: object, state: unknown, ctx: unknown) => ReferenceComponentState;
@@ -1,4 +1,4 @@
1
- import { type DomainEntityId } from '../core/model.js';
1
+ import { type DomainEntityId } from '../core/index.js';
2
2
  export type ComposedOfComponentState = {
3
3
  /**
4
4
  * List of entity IDs that the parent entity is composed of
@@ -1 +1 @@
1
- import{SystemComponentBuilder as o}from"../components/system-component-builder.js";import{EntityIdSchema as t}from"../core/model.js";export const composedOfComponent=o.component("composedOf").withState({type:"object",properties:{childEntityIds:{type:"array",items:t}},required:["childEntityIds"],additionalProperties:!1}).build();
1
+ import{EntityIdSchema as t,SystemComponentBuilder as e}from"../core/index.js";export const composedOfComponent=e.component("composedOf").withState({type:"object",properties:{childEntityIds:{type:"array",items:t}},required:["childEntityIds"],additionalProperties:!1}).build();
@@ -1,6 +1,4 @@
1
- import type { ExpandAlias, TypeOrAlias } from '../core/alias.js';
2
- import type { ExpressionMeta } from '../core/expression.js';
3
- import type { DomainEntity } from '../core/model.js';
1
+ import type { DomainEntity, ExpandAlias, ExpressionMeta, TypeOrAlias } from '../core/index.js';
4
2
  import type { ArrayReferenceField, SingleReferenceField } from './reference-field.js';
5
3
  import type { RelationImplementation } from './relation-implementation.js';
6
4
  interface DirectArrayRelation<ENTITIES extends DomainEntity<string>, ALIASES extends Record<string, ENTITIES>, SELF extends TypeOrAlias<ENTITIES, ALIASES>, TARGET extends TypeOrAlias<ENTITIES, ALIASES>> {
@@ -1,7 +1,4 @@
1
- import { type AliasMap, type ExpandAlias, type TypeOrAlias } from '../core/alias.js';
2
- import type { ExpressionMeta } from '../core/expression.js';
3
- import { type DomainEntity, type DomainEntityId } from '../core/model.js';
4
- import type { DomainState } from '../core/state.js';
1
+ import { type AliasMap, type DomainEntity, type DomainEntityId, type DomainState, type ExpandAlias, type ExpressionMeta, type TypeOrAlias } from '../core/index.js';
5
2
  import type { ArrayReferenceField, SingleReferenceField } from './reference-field.js';
6
3
  interface IndirectNullableSingle0Relation<ENTITIES extends DomainEntity<string>, ALIASES extends Record<string, ENTITIES>, SELF extends TypeOrAlias<ENTITIES, ALIASES>, TARGET extends TypeOrAlias<ENTITIES, ALIASES>> {
7
4
  kind: 'indirect';
@@ -1 +1 @@
1
- import{isArray as e}from"@salsita-ai/common/utils";import{expandAlias as t}from"../core/alias.js";let r=e=>"string"==typeof e;export const createIndirectRelation=i=>{let a=new Map,n=new WeakMap,o=!1;return l=>{if(o)throw Error(`Cannot register indirect relation ${String(l.target)}#${l.field} after evaluation started. Create all relation expressions before evaluating the domain state.`);let s=new Set(t(i,l.target)),f=`${l.field}|${[...s].sort().join("|")}`;return a.set(f,{field:l.field,targetTypes:s}),(t,i)=>(t=>{let i=n.get(t);if(i)return i;o=!0;let l=new Map([...a.keys()].map(e=>[e,new Map]));for(let i of t.entities)for(let[t,{field:n,targetTypes:o}]of a){if(!o.has(i.type))continue;let a=i[n],s=e(a)?new Set(a.filter(r)):r(a)?[a]:[],f=l.get(t);for(let e of s){let t=f.get(e);t||(t=[],f.set(e,t)),t.push(i.id)}}return n.set(t,l),l})(i).get(f).get(t)??[]}};
1
+ import{isArray as e}from"@salsita-ai/common/utils";import{expandAlias as t}from"../core/index.js";let r=e=>"string"==typeof e;export const createIndirectRelation=i=>{let n=new Map,o=new WeakMap,a=!1;return l=>{if(a)throw Error(`Cannot register indirect relation ${String(l.target)}#${l.field} after evaluation started. Create all relation expressions before evaluating the domain state.`);let s=new Set(t(i,l.target)),f=`${l.field}|${[...s].sort().join("|")}`;return n.set(f,{field:l.field,targetTypes:s}),(t,i)=>(t=>{let i=o.get(t);if(i)return i;a=!0;let l=new Map([...n.keys()].map(e=>[e,new Map]));for(let i of t.entities)for(let[t,{field:o,targetTypes:a}]of n){if(!a.has(i.type))continue;let n=i[o],s=e(n)?new Set(n.filter(r)):r(n)?[n]:[],f=l.get(t);for(let e of s){let t=f.get(e);t||(t=[],f.set(e,t)),t.push(i.id)}}return o.set(t,l),l})(i).get(f).get(t)??[]}};
@@ -1,6 +1,4 @@
1
- import type { DomainComponentOpticBuilder } from '../components/domain-component-optic.js';
2
- import type { $DomainEntity, DomainEntity, DomainEntityId } from '../core/model.js';
3
- import type { DomainEntityReflection, RawAliasReflection } from '../core/reflection.js';
1
+ import { type $DomainEntity, type DomainComponentOpticBuilder, type DomainEntity, type DomainEntityId, type DomainEntityReflection, type RawAliasReflection } from '../core/index.js';
4
2
  import type { ArrayReferenceField, SingleReferenceField } from './reference-field.js';
5
3
  export type ReferenceComponentState = {
6
4
  /**
@@ -14,5 +12,5 @@ export type ReferenceComponentState = {
14
12
  */
15
13
  export declare const referenceComponent: import("../index.js").SystemComponentType<"reference", ReferenceComponentState, "referencedEntityIds">;
16
14
  export type ReferenceComponent = typeof referenceComponent;
17
- export declare const attachSingleReferenceComponent: <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>, ALIASES extends Record<string, ENTITIES>, ENTITY extends ENTITIES, $ENTITY extends $DomainEntity<ENTITY>, TARGET_ENTITY extends ENTITIES>(attachComponent: DomainComponentOpticBuilder<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ALIASES, ENTITY, $ENTITY, typeof referenceComponent>, targetReflection: DomainEntityReflection<TARGET_ENTITY> | RawAliasReflection<TARGET_ENTITY>, field: SingleReferenceField<ENTITY, TARGET_ENTITY, any>) => import("../components/domain-component-optic.js").DomainComponentSimpleOptic<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ENTITY, import("../index.js").SystemComponentType<"reference", ReferenceComponentState, "referencedEntityIds">>;
18
- export declare const attachMultipleReferenceComponent: <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>, ALIASES extends Record<string, ENTITIES>, ENTITY extends ENTITIES, $ENTITY extends $DomainEntity<ENTITY>, TARGET_ENTITY extends ENTITIES>(attachComponent: DomainComponentOpticBuilder<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ALIASES, ENTITY, $ENTITY, typeof referenceComponent>, targetReflection: DomainEntityReflection<TARGET_ENTITY> | RawAliasReflection<TARGET_ENTITY>, field: ArrayReferenceField<ENTITY, TARGET_ENTITY>) => import("../components/domain-component-optic.js").DomainComponentSimpleOptic<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ENTITY, import("../index.js").SystemComponentType<"reference", ReferenceComponentState, "referencedEntityIds">>;
15
+ export declare const attachSingleReferenceComponent: <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>, ALIASES extends Record<string, ENTITIES>, ENTITY extends ENTITIES, $ENTITY extends $DomainEntity<ENTITY>, TARGET_ENTITY extends ENTITIES>(attachComponent: DomainComponentOpticBuilder<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ALIASES, ENTITY, $ENTITY, typeof referenceComponent>, targetReflection: DomainEntityReflection<TARGET_ENTITY> | RawAliasReflection<TARGET_ENTITY>, field: SingleReferenceField<ENTITY, TARGET_ENTITY, any>) => import("../index.js").DomainComponentSimpleOptic<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ENTITY, import("../index.js").SystemComponentType<"reference", ReferenceComponentState, "referencedEntityIds">>;
16
+ export declare const attachMultipleReferenceComponent: <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>, ALIASES extends Record<string, ENTITIES>, ENTITY extends ENTITIES, $ENTITY extends $DomainEntity<ENTITY>, TARGET_ENTITY extends ENTITIES>(attachComponent: DomainComponentOpticBuilder<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ALIASES, ENTITY, $ENTITY, typeof referenceComponent>, targetReflection: DomainEntityReflection<TARGET_ENTITY> | RawAliasReflection<TARGET_ENTITY>, field: ArrayReferenceField<ENTITY, TARGET_ENTITY>) => import("../index.js").DomainComponentSimpleOptic<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ENTITY, import("../index.js").SystemComponentType<"reference", ReferenceComponentState, "referencedEntityIds">>;
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e}from"../components/system-component-builder.js";import{EntityIdSchema as t}from"../core/model.js";import{memoEval as r}from"../utils/memo-eval.js";export const referenceComponent=e.component("reference").withState({type:"object",properties:{referencedEntityIds:{type:"array",items:t}},required:["referencedEntityIds"],additionalProperties:!1}).withWritableKeys(["referencedEntityIds"]).build();export const attachSingleReferenceComponent=(e,t,n)=>e.attach(r(e=>[e[n]],e=>({referencedEntityIds:null===e?[]:[e]})),e=>{let r=e.referencedEntityIds[0];return r&&t.assertId(r),{[n]:r??null}});export const attachMultipleReferenceComponent=(e,t,n)=>e.attach(r(e=>[e[n]],e=>({referencedEntityIds:e})),e=>(t.assertIds(e.referencedEntityIds),{[n]:e.referencedEntityIds}));
1
+ import{EntityIdSchema as e,SystemComponentBuilder as t}from"../core/index.js";import{memoEval as r}from"../utils/memo-eval.js";export const referenceComponent=t.component("reference").withState({type:"object",properties:{referencedEntityIds:{type:"array",items:e}},required:["referencedEntityIds"],additionalProperties:!1}).withWritableKeys(["referencedEntityIds"]).build();export const attachSingleReferenceComponent=(e,t,n)=>e.attach(r(e=>[e[n]],e=>({referencedEntityIds:null===e?[]:[e]})),e=>{let r=e.referencedEntityIds[0];return r&&t.assertId(r),{[n]:r??null}});export const attachMultipleReferenceComponent=(e,t,n)=>e.attach(r(e=>[e[n]],e=>({referencedEntityIds:e})),e=>(t.assertIds(e.referencedEntityIds),{[n]:e.referencedEntityIds}));
@@ -1,4 +1,4 @@
1
- import type { DomainEntity } from '../core/model.js';
1
+ import type { DomainEntity } from '../core/index.js';
2
2
  export type SingleReferenceField<FROM extends DomainEntity<string>, TO extends DomainEntity<string>, OPTIONALITY extends null | never> = {
3
3
  [K in keyof FROM]: TO['id'] | OPTIONALITY extends FROM[K] ? FROM[K] extends TO['id'] | OPTIONALITY ? K & string : never : never;
4
4
  }[keyof FROM];
@@ -1,6 +1,4 @@
1
- import type { AliasMap, ExpandAlias, TypeOrAlias } from '../core/alias.js';
2
- import type { AnonymousExpression } from '../core/expression.js';
3
- import type { $DomainEntity, DomainEntity } from '../core/model.js';
1
+ import type { $DomainEntity, AliasMap, AnonymousExpression, DomainEntity, ExpandAlias, TypeOrAlias } from '../core/index.js';
4
2
  import { type AllOfTypeRelation } from './all-of-type-relation.js';
5
3
  import type { DirectRelation } from './direct-relation.js';
6
4
  import { type IndirectRelation } from './indirect-relation.js';
@@ -1,7 +1,4 @@
1
- import type { AliasMap } from '../core/alias.js';
2
- import type { Domain } from '../core/index.js';
3
- import type { DomainEntity, DomainEntityId } from '../core/model.js';
4
- import type { DomainState } from '../core/state.js';
1
+ import type { AliasMap, Domain, DomainEntity, DomainEntityId, DomainState } from '../core/index.js';
5
2
  import type { Relation } from './relation-factory.js';
6
3
  export type RelationImplementation<KIND extends Relation<any, any, any, any>['kind']> = (relation: Extract<Relation<any, any, any, any>, {
7
4
  kind: KIND;
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
- import { type DomainEntityId } from '../core/model.js';
2
+ import { type DomainEntityId } from '../core/index.js';
3
3
  import { type PhoenixEntityElement } from './phoenix-entity-elements/index.js';
4
4
  export type AdminSidebarComponentState = {
5
5
  /**
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e}from"../components/system-component-builder.js";import{DomainEntityIdSchema as t}from"../core/model.js";import{ReactNodeSchema as i}from"./common/react-node-schema.js";import{PhoenixEntityElementSchema as o}from"./phoenix-entity-elements/index.js";export const adminSidebarComponent=e.component("adminSidebar").withState({type:"object",tsType:"AdminSidebarComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"AdminSidebarComponentState"}],properties:{page:i,children:{type:"array",items:{$ref:"#/definitions/PhoenixEntityElement"}},title:{type:"string"},fallbackId:t},definitions:{PhoenixEntityElement:o},required:["title"],additionalProperties:!1}).build();
1
+ import{DomainEntityIdSchema as e,SystemComponentBuilder as t}from"../core/index.js";import{ReactNodeSchema as i}from"./common/react-node-schema.js";import{PhoenixEntityElementSchema as n}from"./phoenix-entity-elements/index.js";export const adminSidebarComponent=t.component("adminSidebar").withState({type:"object",tsType:"AdminSidebarComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"AdminSidebarComponentState"}],properties:{page:i,children:{type:"array",items:{$ref:"#/definitions/PhoenixEntityElement"}},title:{type:"string"},fallbackId:e},definitions:{PhoenixEntityElement:n},required:["title"],additionalProperties:!1}).build();
@@ -1 +1 @@
1
- import{SystemComponentBuilder as n}from"../components/system-component-builder.js";import{isInstanceOfComponentType as o,isSnapshotOfComponentType as e}from"../core/index.js";import{AngleValueSchema as i}from"../dimensions/index.js";export const angleDimensionComponent=n.component("angleDimension").withState(i).withWritableKeys(["value"]).build();export const isAngleDimensionSnapshot=e(angleDimensionComponent);export const isAngleDimensionInstance=o(angleDimensionComponent);
1
+ import{SystemComponentBuilder as n,isInstanceOfComponentType as e,isSnapshotOfComponentType as o}from"../core/index.js";import{AngleValueSchema as i}from"../dimensions/index.js";export const angleDimensionComponent=n.component("angleDimension").withState(i).withWritableKeys(["value"]).build();export const isAngleDimensionSnapshot=o(angleDimensionComponent);export const isAngleDimensionInstance=e(angleDimensionComponent);
@@ -1,5 +1,5 @@
1
1
  import { type Localizable } from '@salsita-ai/common/utils';
2
- import { type ComponentSnapshot } from '../core/component.js';
2
+ import { type ComponentSnapshot } from '../core/index.js';
3
3
  import { type AngleIndicatorBaseState } from './common/index.js';
4
4
  export type AngleIndicatorComponentState = AngleIndicatorBaseState & {
5
5
  /**
@@ -1 +1 @@
1
- import{EnhancedLocalizableSchema as o}from"@salsita-ai/common/utils";import{SystemComponentBuilder as t}from"../components/system-component-builder.js";import{isSnapshotOfComponentType as e}from"../core/component.js";import{AngleIndicatorProperties as n}from"./common/index.js";export const angleIndicatorComponent=t.component("angleIndicator").withState({tsType:"AngleIndicatorComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"AngleIndicatorComponentState"}],type:"object",properties:{...n,label:o,visible:{type:"boolean"},force:{type:"boolean"}},required:["positionX","positionY","positionZ","startAngle","sweepAngle"],additionalProperties:!1}).build();export const isAngleIndicatorSnapshot=e(angleIndicatorComponent);
1
+ import{EnhancedLocalizableSchema as o}from"@salsita-ai/common/utils";import{SystemComponentBuilder as t,isSnapshotOfComponentType as e}from"../core/index.js";import{AngleIndicatorProperties as n}from"./common/index.js";export const angleIndicatorComponent=t.component("angleIndicator").withState({tsType:"AngleIndicatorComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"AngleIndicatorComponentState"}],type:"object",properties:{...n,label:o,visible:{type:"boolean"},force:{type:"boolean"}},required:["positionX","positionY","positionZ","startAngle","sweepAngle"],additionalProperties:!1}).build();export const isAngleIndicatorSnapshot=e(angleIndicatorComponent);
@@ -1,4 +1,4 @@
1
- import { type ComponentInstance, type ComponentSnapshot } from '../core/component.js';
1
+ import { type ComponentInstance, type ComponentSnapshot } from '../core/index.js';
2
2
  import { DimensionUnit, type UnitsConfig } from '../dimensions/index.js';
3
3
  export type ApplicationConfigComponentState = {
4
4
  readonly showCollisionWarnings?: boolean;
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e}from"../components/system-component-builder.js";import{isInstanceOfComponentType as n,isSnapshotOfComponentType as t}from"../core/component.js";import{DimensionUnit as o,UnitsConfigSchema as i}from"../dimensions/index.js";export const applicationConfigComponent=e.component("applicationConfig").withState({type:"object",tsType:"ApplicationConfigComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"ApplicationConfigComponentState"}],properties:{showCollisionWarnings:{type:"boolean"},collisionWarningIcon:{type:"string"},sidebarBackIcon:{type:"string"},hamburgerIcon:{type:"string"},readonlyBannerIcon:{type:"string"},toolbarCloseIcon:{type:"string"},layout:{type:"string",enum:["simple","tabs","steps","custom","universal"]},ignoreSelectionInSidebar:{type:"boolean"},miniSidebar:{type:"boolean"},initialGlobalUnit:{type:"string",enum:Object.values(o)},distanceDataUnit:{type:"string",enum:Object.values(o)},unitDisplayConfig:i,availableDimensions:{type:"array",items:{type:"string",enum:Object.values(o)}},splitSidebar:{type:"boolean"},showSelectionBackButton:{type:"boolean"},disableDefaultCamera:{type:"boolean"},shareDisabled:{type:"boolean"},shareOwnerLinkDisabled:{type:"boolean"},shareReadRevisionLinkDisabled:{type:"boolean"},shareExpiration:{type:"number"},shareCloneToEdit:{type:"boolean"},shareStrategy:{type:"string",enum:["deployment-registered","current-frontend"]},availableLocales:{type:"array",items:{type:"string"}},initialIndicatorShown:{type:"boolean"},chatEnabled:{type:"boolean"},indicatorSwitch:{type:"boolean"},disableRelativeDragging:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isApplicationConfigSnapshot=t(applicationConfigComponent);export const isApplicationConfigInstance=n(applicationConfigComponent);
1
+ import{SystemComponentBuilder as e,isInstanceOfComponentType as n,isSnapshotOfComponentType as t}from"../core/index.js";import{DimensionUnit as o,UnitsConfigSchema as i}from"../dimensions/index.js";export const applicationConfigComponent=e.component("applicationConfig").withState({type:"object",tsType:"ApplicationConfigComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"ApplicationConfigComponentState"}],properties:{showCollisionWarnings:{type:"boolean"},collisionWarningIcon:{type:"string"},sidebarBackIcon:{type:"string"},hamburgerIcon:{type:"string"},readonlyBannerIcon:{type:"string"},toolbarCloseIcon:{type:"string"},layout:{type:"string",enum:["simple","tabs","steps","custom","universal"]},ignoreSelectionInSidebar:{type:"boolean"},miniSidebar:{type:"boolean"},initialGlobalUnit:{type:"string",enum:Object.values(o)},distanceDataUnit:{type:"string",enum:Object.values(o)},unitDisplayConfig:i,availableDimensions:{type:"array",items:{type:"string",enum:Object.values(o)}},splitSidebar:{type:"boolean"},showSelectionBackButton:{type:"boolean"},disableDefaultCamera:{type:"boolean"},shareDisabled:{type:"boolean"},shareOwnerLinkDisabled:{type:"boolean"},shareReadRevisionLinkDisabled:{type:"boolean"},shareExpiration:{type:"number"},shareCloneToEdit:{type:"boolean"},shareStrategy:{type:"string",enum:["deployment-registered","current-frontend"]},availableLocales:{type:"array",items:{type:"string"}},initialIndicatorShown:{type:"boolean"},chatEnabled:{type:"boolean"},indicatorSwitch:{type:"boolean"},disableRelativeDragging:{type:"boolean"}},required:[],additionalProperties:!1}).build();export const isApplicationConfigSnapshot=t(applicationConfigComponent);export const isApplicationConfigInstance=n(applicationConfigComponent);
@@ -1 +1 @@
1
- import{EnhancedLocalizableSchema as t}from"@salsita-ai/common/utils";import{SystemComponentBuilder as e}from"../components/system-component-builder.js";import{isSnapshotOfComponentType as o}from"../core/component.js";export const attributeSelectionComponent=e.component("attributeSelection").withState({type:"object",tsType:"AttributeSelectionComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"AttributeSelectionComponentState"}],properties:{value:{type:["string","number","boolean","null"]},options:{type:"array",items:{type:"object",properties:{label:t,description:t,img:t,value:{type:["string","number","boolean"]}},required:["value","label"],additionalProperties:!0}}},required:["value","options"],additionalProperties:!1}).withWritableKeys(["value"]).build();export const isAttributeSelectionSnapshot=o(attributeSelectionComponent);
1
+ import{EnhancedLocalizableSchema as t}from"@salsita-ai/common/utils";import{SystemComponentBuilder as e,isSnapshotOfComponentType as o}from"../core/index.js";export const attributeSelectionComponent=e.component("attributeSelection").withState({type:"object",tsType:"AttributeSelectionComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"AttributeSelectionComponentState"}],properties:{value:{type:["string","number","boolean","null"]},options:{type:"array",items:{type:"object",properties:{label:t,description:t,img:t,value:{type:["string","number","boolean"]}},required:["value","label"],additionalProperties:!0}}},required:["value","options"],additionalProperties:!1}).withWritableKeys(["value"]).build();export const isAttributeSelectionSnapshot=o(attributeSelectionComponent);
@@ -1 +1 @@
1
- import{SystemComponentBuilder as t}from"../components/system-component-builder.js";export const AttributeSwitchValueSchema={type:["string","number","boolean"]};export const attributeSwitchComponent=t.component("attributeSwitch").withState({type:"object",properties:{value:AttributeSwitchValueSchema},tsType:"AttributeSwitchComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"AttributeSwitchComponentState"}],required:["value"],additionalProperties:!1}).withWritableKeys(["value"]).build();
1
+ import{SystemComponentBuilder as t}from"../core/index.js";export const AttributeSwitchValueSchema={type:["string","number","boolean"]};export const attributeSwitchComponent=t.component("attributeSwitch").withState({type:"object",properties:{value:AttributeSwitchValueSchema},tsType:"AttributeSwitchComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"AttributeSwitchComponentState"}],required:["value"],additionalProperties:!1}).withWritableKeys(["value"]).build();
@@ -1,4 +1,4 @@
1
- import type { ComponentSnapshot } from '../core/component.js';
1
+ import { type ComponentSnapshot } from '../core/index.js';
2
2
  export type AutorotateCameraComponentState = {
3
3
  /**
4
4
  * Speed of autorotation in radians per second.
@@ -1 +1 @@
1
- import{SystemComponentBuilder as e}from"../components/system-component-builder.js";export const AutorotateCameraComponentName="autorotateCamera";export const autorotateCameraComponent=e.component(AutorotateCameraComponentName).withState({type:"object",tsType:"AutorotateCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"AutorotateCameraComponentState"}],properties:{speed:{type:"number"},pauseOnInteraction:{type:"boolean"},resumeDelay:{type:"number"}},required:[],additionalProperties:!1}).build();export const isAutorotateCameraComponent=e=>e.componentInstance.componentType.name===AutorotateCameraComponentName;
1
+ import{SystemComponentBuilder as e}from"../core/index.js";export const AutorotateCameraComponentName="autorotateCamera";export const autorotateCameraComponent=e.component(AutorotateCameraComponentName).withState({type:"object",tsType:"AutorotateCameraComponentState",import:[{module:"@salsita-ai/sdk/domain",member:"AutorotateCameraComponentState"}],properties:{speed:{type:"number"},pauseOnInteraction:{type:"boolean"},resumeDelay:{type:"number"}},required:[],additionalProperties:!1}).build();export const isAutorotateCameraComponent=e=>e.componentInstance.componentType.name===AutorotateCameraComponentName;
@@ -1,4 +1,4 @@
1
- import type { ComponentInstance, ComponentSnapshot } from '../core/component.js';
1
+ import { type ComponentInstance, type ComponentSnapshot } from '../core/index.js';
2
2
  export type BasicSidebarFooterComponentState = Record<string, never>;
3
3
  export declare const basicSidebarFooterComponent: import("../index.js").SystemComponentType<"basicSidebarFooter", BasicSidebarFooterComponentState, never>;
4
4
  export type BasicSidebarFooterComponent = typeof basicSidebarFooterComponent;