@salsita-ai/sdk 0.50.0-develop.9feae4851f → 0.50.0-develop.a4dde5f252

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 (252) hide show
  1. package/README.md +2 -2
  2. package/dist/admin/create-admin-pages-from-spec.d.ts +1 -1
  3. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +1 -1
  4. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  5. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +36 -36
  6. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +1 -1
  7. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  8. package/dist/application-spec/generate-application/code/templates/domain.js +1 -1
  9. package/dist/application-spec/generate-application/code/templates/index.d.ts +0 -6
  10. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  11. package/dist/application-spec/generate-application/code/templates/package-json.js +1 -1
  12. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +66 -42
  13. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +10 -12
  14. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +6 -8
  15. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  16. package/dist/client/phoenix-api.d.ts +5 -3
  17. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +34 -1
  18. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  19. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +6 -0
  20. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  21. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  22. package/dist/docs/index.json +1 -1
  23. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  24. package/dist/docs/phoenix/configurator-interface.mdx +33 -6
  25. package/dist/docs/phoenix/expression-context.mdx +11 -3
  26. package/dist/docs/phoenix/getting-started.mdx +1 -1
  27. package/dist/docs/phoenix/phoenix-cli.mdx +17 -26
  28. package/dist/docs/phoenix/project-structure.mdx +5 -3
  29. package/dist/docs/phoenix/quickstart.mdx +2 -2
  30. package/dist/docs/phoenix/sdk-builder-workflow.mdx +2 -2
  31. package/dist/docs/phoenix/webhooks.mdx +1 -1
  32. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  33. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +10 -10
  34. package/dist/domain/admin-domain/index.d.ts +7 -2
  35. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +1 -1
  36. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  37. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  38. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  39. package/dist/domain/application/application-config.d.ts +3 -24
  40. package/dist/domain/application/assistant-mutations.d.ts +2 -1
  41. package/dist/domain/application/assistant-recipe-groups.d.ts +1 -1
  42. package/dist/domain/application/configurator-builder.d.ts +1 -1
  43. package/dist/domain/application/create-initial-published-data.d.ts +1 -2
  44. package/dist/domain/application/index.d.ts +1 -4
  45. package/dist/domain/application/index.js +1 -1
  46. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  47. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  48. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  49. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  50. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  51. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  52. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  53. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  54. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +2 -2
  55. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  56. package/dist/domain/core/action/action-factory.d.ts +2 -2
  57. package/dist/domain/core/action/action.d.ts +19 -14
  58. package/dist/domain/core/component/domain-component-optic.d.ts +30 -40
  59. package/dist/domain/core/component/domain-component-optic.js +2 -2
  60. package/dist/domain/core/component/legacy-filter.d.ts +2 -17
  61. package/dist/domain/core/component/system-component-filter.d.ts +23 -18
  62. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  63. package/dist/domain/core/data-schema/data-cell-value.js +1 -0
  64. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  65. package/dist/domain/core/data-schema/data-schema-array-field.js +1 -0
  66. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  67. package/dist/domain/core/data-schema/data-schema-field-object.js +1 -0
  68. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  69. package/dist/domain/core/data-schema/data-schema-field.js +1 -0
  70. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  71. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  72. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  73. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  74. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  75. package/dist/domain/core/data-schema/data-schema.js +1 -0
  76. package/dist/domain/core/data-schema/index.d.ts +7 -0
  77. package/dist/domain/core/data-schema/index.js +1 -0
  78. package/dist/domain/core/domain.d.ts +2 -2
  79. package/dist/domain/core/emission/index.d.ts +8 -0
  80. package/dist/domain/core/emission/index.js +1 -0
  81. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  82. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  83. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  84. package/dist/domain/core/emission/state-emission.js +1 -0
  85. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  86. package/dist/domain/core/emission/state-update-emission.js +1 -0
  87. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  88. package/dist/domain/core/emission/state-validation-result.js +1 -0
  89. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  90. package/dist/domain/core/emission/transformation-log.js +1 -0
  91. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  92. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  93. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  94. package/dist/domain/core/emission/transformer-log.js +1 -0
  95. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  96. package/dist/domain/core/emission/transformer-phase.js +1 -0
  97. package/dist/domain/core/expression/aliased-expressions.d.ts +2 -2
  98. package/dist/domain/core/expression/constant-expressions.d.ts +2 -2
  99. package/dist/domain/core/expression/constant-expressions.js +1 -1
  100. package/dist/domain/core/expression/custom-expression.d.ts +6 -6
  101. package/dist/domain/core/expression/custom-expression.js +1 -1
  102. package/dist/domain/core/expression/expression.d.ts +15 -17
  103. package/dist/domain/core/index.d.ts +2 -0
  104. package/dist/domain/core/invariant/custom-invariants.d.ts +5 -5
  105. package/dist/domain/core/invariant/index.d.ts +1 -1
  106. package/dist/domain/core/invariant/index.js +1 -1
  107. package/dist/domain/core/invariant/invariants.d.ts +4 -67
  108. package/dist/domain/core/invariant/invariants.js +1 -1
  109. package/dist/domain/core/invariant/violation.d.ts +1 -1
  110. package/dist/domain/core/relation/reference-component.d.ts +2 -2
  111. package/dist/domain/core/state/migrations.d.ts +14 -45
  112. package/dist/domain/core/state/migrations.js +1 -1
  113. package/dist/domain/domain-builder.d.ts +1 -1
  114. package/dist/domain/domain-builder.js +1 -1
  115. package/dist/domain/domain-context/action-system/action-system.d.ts +2 -2
  116. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  117. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  118. package/dist/domain/domain-context/action-system/index.js +1 -0
  119. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  120. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  121. package/dist/domain/domain-context/create-transformer.d.ts +1 -1
  122. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +2 -2
  123. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  124. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  125. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  126. package/dist/domain/domain-context/domain-context-systems.d.ts +7 -7
  127. package/dist/domain/domain-context/index.d.ts +8 -17
  128. package/dist/domain/domain-context/index.js +1 -1
  129. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  130. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  131. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +2 -3
  132. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  133. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +1 -1
  134. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  135. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  136. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +1 -1
  137. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  138. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +2 -2
  139. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +2 -2
  140. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +2 -2
  141. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  142. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  143. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +2 -2
  144. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  145. package/dist/domain/domain-context/store-system/index.js +1 -0
  146. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  147. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -35
  148. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  149. package/dist/domain/domain-context/store-system/system-state.d.ts +1 -1
  150. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  151. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +5 -7
  152. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  153. package/dist/domain/domain-context/transformers/chain-builder.d.ts +1 -1
  154. package/dist/domain/domain-context/transformers/context.d.ts +2 -3
  155. package/dist/domain/domain-context/transformers/context.js +1 -1
  156. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  157. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  158. package/dist/domain/domain-context/transformers/index.js +1 -1
  159. package/dist/domain/domain-context/transformers/when-builder.d.ts +2 -3
  160. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  161. package/dist/domain/domain-context/undo-system.d.ts +2 -3
  162. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  163. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  164. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  165. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  166. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  167. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  168. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  169. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  170. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +5 -10
  171. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  172. package/dist/domain/domain-runtime/domain-runtime.d.ts +52 -52
  173. package/dist/domain/domain-runtime/spec/index.d.ts +2 -0
  174. package/dist/domain/domain-runtime/spec/index.js +1 -1
  175. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  176. package/dist/domain/domain-runtime/spec/invariant-builder.d.ts +26 -0
  177. package/dist/domain/domain-runtime/spec/invariant-builder.js +1 -0
  178. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +2 -2
  179. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  180. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +1 -1
  181. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  182. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  183. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  184. package/dist/domain/{project-modules → domain-runtime/spec/module-checks}/project-modules.d.ts +0 -16
  185. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  186. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  187. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  188. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  189. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  190. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  191. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  192. package/dist/domain/{application → domain-runtime/spec/module-checks}/resolve-imported-transformers.d.ts +4 -5
  193. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  194. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  195. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  196. package/dist/domain/domain-runtime/spec/selectors.d.ts +5 -6
  197. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  198. package/dist/domain/domain-runtime/spec/types.d.ts +3 -2
  199. package/dist/domain/index.d.ts +0 -1
  200. package/dist/domain/index.js +1 -1
  201. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  202. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +10 -10
  203. package/dist/domain/projections/blender-projections/blender-projections.d.ts +1 -2
  204. package/dist/domain/projections/blender-projections/camera.d.ts +1 -1
  205. package/dist/domain/projections/collision-projections.d.ts +1 -1
  206. package/dist/domain/projections/composition-projections.d.ts +1 -1
  207. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  208. package/dist/domain/projections/index.d.ts +1 -1
  209. package/dist/domain/projections/position-projections.d.ts +1 -1
  210. package/dist/domain/projections/projected-entities-projections.d.ts +1 -1
  211. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  212. package/dist/domain/projections/validation-projections.d.ts +3 -19
  213. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  214. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  215. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  216. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  217. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  218. package/dist/domain/utils/memo-eval.d.ts +2 -2
  219. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  220. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  221. package/dist/legacy/domain-cli/gen/invariants.js +5 -3
  222. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  223. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  224. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  225. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  226. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  227. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +1 -0
  228. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +4 -4
  229. package/dist/phoenix/commands/init.d.ts +4 -4
  230. package/dist/phoenix/commands/init.js +1 -1
  231. package/dist/phoenix/commands/prettier.js +1 -1
  232. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +20 -20
  233. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +5 -5
  234. package/package.json +3 -3
  235. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  236. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  237. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  238. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -94
  239. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  240. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  241. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  242. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  243. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  244. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  245. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  246. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  247. package/dist/domain/application/element-registration.js +0 -1
  248. package/dist/domain/application/handler-registration.js +0 -1
  249. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  250. package/dist/domain/project-modules/index.d.ts +0 -1
  251. package/dist/domain/project-modules/index.js +0 -1
  252. package/dist/domain/project-modules/project-modules.js +0 -1
@@ -1,6 +1,9 @@
1
+ export type * from './action-context.js';
1
2
  export * from './actions.js';
2
3
  export { ComponentReader, type AnyComponentReader } from './component-reader.js';
3
4
  export { DomainContext } from './domain-context.js';
5
+ export type * from './expression-context.js';
4
6
  export * from './initialize.js';
7
+ export type * from './runtime-expression-context.js';
5
8
  export * from './selectors.js';
6
9
  export type * from './types.js';
@@ -0,0 +1,18 @@
1
+ import type { DomainEntity } from '../../core/index.js';
2
+ import type { CollisionProjections, ConstraintProjections, PositionProjections, ProjectedEntitiesProjections, SnappingProjections } from '../../projections/index.js';
3
+ import type { SketchingProjections } from '../../sketching/index.js';
4
+ import type { ComponentReader } from './component-reader.js';
5
+ /**
6
+ * What the domain runtime adds to the expression context of core: the component reader and the
7
+ * projections it builds for every application. It is the context extension that generated project
8
+ * code closes the factories of core with.
9
+ */
10
+ export interface RuntimeExpressionContext<ENTITIES extends DomainEntity<string>> {
11
+ readonly componentReader: ComponentReader<ENTITIES>;
12
+ readonly positionProjections: PositionProjections<ENTITIES>;
13
+ readonly sketchingProjections: SketchingProjections<ENTITIES>;
14
+ readonly collisionProjections: CollisionProjections<ENTITIES>;
15
+ readonly constraintProjections: ConstraintProjections<ENTITIES>;
16
+ readonly snappingProjections: SnappingProjections<ENTITIES>;
17
+ readonly projectedEntitiesProjections: ProjectedEntitiesProjections<ENTITIES>;
18
+ }
@@ -1,11 +1,5 @@
1
- import { type AnyDomain, type AnyDomainFactory, type AnyExpressionContext, type DomainComponentOptic, type DomainEntity, type DomainMode, type SystemComponentTypeConstraint } from '../../core/index.js';
2
- import { type AnyActionSystem } from '../../domain-context/action-system/action-system.js';
3
- import { type AnyDimensionSystem } from '../../domain-context/dimension-system/dimension-system.js';
4
- import type { AnyDomainContextSystems } from '../../domain-context/domain-context-systems.js';
5
- import { type AnyNavigationSystem } from '../../domain-context/navigation-system/navigation-system.js';
6
- import { type AnyRecipeCookerSystem } from '../../domain-context/recipe-system/recipe-cooker-system.js';
7
- import { type AnyStoreSystem } from '../../domain-context/store-system/store-system.js';
8
- import { type AnyUndoSystem } from '../../domain-context/undo-system.js';
1
+ import { type AnyDomain, type AnyDomainFactory, type DomainComponentOptic, type DomainEntity, type DomainMode, type SystemComponentTypeConstraint } from '../../core/index.js';
2
+ import { type AnyActionSystem, type AnyDimensionSystem, type AnyDomainContextSystems, type AnyNavigationSystem, type AnyRecipeCookerSystem, type AnyStoreSystem, type AnyUndoSystem } from '../../domain-context/index.js';
9
3
  import { type AnyBlenderProjections, type AnyCollisionProjections, type AnyCompositionProjections, type AnyConstraintProjections, type AnyPositionProjections, type AnyProjectedEntitiesProjections, type AnySnappingProjections, type AnyValidationProjections } from '../../projections/index.js';
10
4
  import { type AnySketchingProjections } from '../../sketching/sketching-projections.js';
11
5
  import type { AccessInfoSelectors, AccessSelectorState } from '../access/index.js';
@@ -19,6 +13,7 @@ import type { WebComponentSelectorState, WebComponentSelectors } from '../web-co
19
13
  import type { DomainContextApplicationActions } from './actions.js';
20
14
  import { type AnyComponentReader } from './component-reader.js';
21
15
  import { DomainContext } from './domain-context.js';
16
+ import type { AnyExpressionContext } from './expression-context.js';
22
17
  import type { ApplicationDomainContextState, DomainApplicationType, DomainContextInitializationContext, DomainContextInitializationIdentity, DomainContextInitializationState, InitializableSystem, SchemaCoherence } from './types.js';
23
18
  type ComponentOptic<ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>> = DomainComponentOptic<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ENTITIES, SystemComponentTypeConstraint>;
24
19
  /**
@@ -96,7 +91,7 @@ export declare const createDomainContextSelectors: (context: Context) => {
96
91
  selectViewStates: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, readonly string[]>;
97
92
  selectToolStates: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, readonly string[]>;
98
93
  selectExportStates: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, readonly string[]>;
99
- selectCreateTransformers: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, undefined> | import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, import("../../domain-context/store-system/store-system.js").AnyCreateTransformersFactory>;
94
+ selectCreateTransformers: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, undefined> | import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, import("../../index.js").AnyCreateTransformersFactory>;
100
95
  selectLatestLoadedData: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, import("../index.js").ConfiguratorLoadedData | null>;
101
96
  selectLoadedData: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, import("../index.js").ConfiguratorLoadedData>;
102
97
  selectInitialDomainState: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, import("../../index.js").DomainState<any>>;
@@ -138,7 +133,7 @@ export declare const createDomainContextSelectors: (context: Context) => {
138
133
  getViewStates: () => readonly string[];
139
134
  getToolStates: () => readonly string[];
140
135
  getExportStates: () => readonly string[];
141
- getCreateTransformers: () => import("../../domain-context/store-system/store-system.js").AnyCreateTransformersFactory | undefined;
136
+ getCreateTransformers: () => import("../../index.js").AnyCreateTransformersFactory | undefined;
142
137
  getLoadedData: () => import("../index.js").ConfiguratorLoadedData;
143
138
  getInitialDomainState: () => import("../../index.js").DomainState<any>;
144
139
  getFrontendData: () => Record<string, unknown>;
@@ -1 +1 @@
1
- import{createSelector as e}from"@salsita-ai/common/utils";import{Domain as t,createInitialDomainState as n}from"../../core/index.js";import{ActionSystem as o}from"../../domain-context/action-system/action-system.js";import{DimensionSystem as i}from"../../domain-context/dimension-system/dimension-system.js";import{NavigationSystem as a}from"../../domain-context/navigation-system/navigation-system.js";import{RecipeCookerSystem as s}from"../../domain-context/recipe-system/recipe-cooker-system.js";import{StoreSystem as r}from"../../domain-context/store-system/store-system.js";import{UndoSystem as c}from"../../domain-context/undo-system.js";import{BlenderProjections as l,CollisionProjections as m,CompositionProjections as d,ConstraintProjections as g,PositionProjections as f,ProjectedEntitiesProjections as p,SnappingProjections as u,ValidationProjections as y}from"../../projections/index.js";import{SketchingProjections as w}from"../../sketching/sketching-projections.js";import{requireAccessService as h}from"../access/index.js";import{prepareActionImplementations as S,prepareDomainExpressions as x}from"../spec/index.js";import{ComponentReader as j}from"./component-reader.js";import{DomainContext as C}from"./domain-context.js";let D=e.withTypes(),v=[],I={},P={role:"admin",data:I},M=e=>{if(null!==e)return e;throw Error("Cannot read the session role and data because the domain session context is not set. The session context is written into the domain runtime by the session lifecycle after authentication. Move this read into the loaded session lifecycle.")};export const createDomainContextSelectors=e=>{let{applicationType:A,getState:R,actions:E,specSelectors:T,accessSelectors:b,webComponentSelectors:k,domainDataSelectors:$,sessionContextSelectors:N,domainServicesSelectors:z,environmentSelectors:L,getExtensionSystems:V}=e,B="configurator"===A?T.selectConfiguratorSpec:T.selectAdminSpec,F="configurator"===A?b.selectConfiguratorRawAccessService:b.selectAdminRawAccessService,W=D.leaf(e=>e.domainContext[A]),_=D([W],e=>e.initializationContext),q=D([_],e=>{if(null===e)throw Error(`Domain lifecycle context is not available for ${A}! Read it from an active domain lifecycle.`);return e}),O=D([W],e=>e.executionMode),U=D([W],e=>e.isInitialized),G=D([B],e=>e.factory),H=D([B],e=>e.expressions),J=D([B],e=>e.actions),K=D([B],e=>e.actionImplementations),Q=D([J,K],S),X=D([B],e=>e.$entityReflections),Y=D([H,X],(e,t)=>x({expressions:e,$entityReflections:t})),Z=D([B],e=>e.modelVersion),ee=D([B],e=>e.aliasMap),et=D([B],e=>e.allowedRootEntityTypes),en=D([B],e=>e.entityReflections),eo=D([B],e=>e.migrate),ei=D([O,k.selectReadonly,F],(e,t,n)=>"finalize"===e?"finalize":h(A,n).accessInfo.viewMode||t?"read":"owner"),ea=D([F],e=>e?.configurationId??null),es="configurator"===A?N.selectSessionContext:D([],()=>P),er=D([es],e=>e?.role??null),ec=D([es],e=>e?.data??null),el=D([D.leaf(e=>e.loadedData)],e=>"configurator"===A?e.configuratorLoadedData:e.adminLoadedData),em=D([el],e=>e?.schemaIdentity??null),ed=D([el,G],(e,t)=>{if(null===e)return"coherent";let n=e.schemaIdentity;return void 0===n?"missing-stamp":n===t?"coherent":"schema-mismatch"}),eg=D([ea,er,ec,em,ed],(e,t,n,o,i)=>null===e||null===t||null===n||null===o||"coherent"!==i?null:{configurationId:e,role:t,schemaIdentity:o,sessionData:n}),ef=D([F,k.selectReadonly],(e,t)=>e?.accessInfo.viewMode===!0||t),ep=D([eg,_,U,ef],(e,t,n,o)=>{let i=null!==e&&null!==t&&n&&t.configurationId===e.configurationId&&t.role===e.role&&t.schemaIdentity===e.schemaIdentity&&t.sessionData===e.sessionData;return{identity:e,isCurrent:i,isViewMode:o}}),eu=D([B],e=>e.componentOptics),ey=D([eu],e=>(e=>{let t=new Map,n=new Map,o=new Map,i=new Map;for(let n of e)for(let e of n.entityTypes){let o=t.get(e);o||(o=new Map,t.set(e,o));let a=o.get(n.componentType);if(a||(a=new Map,o.set(n.componentType,a)),a.has(n.instanceName))throw Error(`Component instance ${n.instanceName} already exists for type ${n.componentType.name} in entity ${e}. This is likely a bug in the component definition! InstanceNames must be unique within an entity and component.`);if(a.set(n.instanceName,n),"dynamic"===n.kind){let t=i.get(e);t||(t=new Map,i.set(e,t));let o=t.get(n.componentType)??[],a=o.find(e=>{var t;return t=n.instanceName,e.startsWith(`${t}_`)||t.startsWith(`${e}_`)});if(a)throw Error(`Cannot register dynamic component instance ${n.instanceName} for component ${n.componentType.name} on entity ${e} because it overlaps with dynamic instance ${a}. Rename one dynamic instance so compound names cannot be ambiguous.`);t.set(n.componentType,[...o,n.instanceName])}}for(let[e,i]of t.entries()){n.set(e,new Set(i.keys()));let t=new Map;for(let[n,a]of(o.set(e,t),i.entries()))t.set(n,new Set(a.keys()))}return{opticMap:t,allComponentTypes:n,allComponentInstanceNames:o,dynamicInstanceNames:i}})(e)),ew=D([ey,Y,et],(e,t,n)=>({componentReaderIndexes:e,domainExpressions:t,allowedRootEntityTypes:n})),eh=D([B],e=>e.navigationStates),eS=D([B],e=>e.viewStates),ex="configurator"===A?D([T.selectConfiguratorSpec],e=>e.toolStates):D([],()=>v),ej="configurator"===A?D([T.selectConfiguratorSpec],e=>e.exportStates):D([],()=>v),eC="configurator"===A?D([T.selectConfiguratorSpec],e=>e.createTransformers):D([],()=>void 0),eD=D([el],e=>{if(null===e)throw Error(`Loaded data is not available for ${A}! Loaded data is written after the configuration fetch succeeds and before the domain context initialization starts.`);return e}),ev=D([eD,G],(e,t)=>n(t.validateAndMigrateState(e.initialEntities,e.modelVersion),e.rootEntityType)),eI="configurator"===A?$.selectConfiguratorFrontendData:$.selectAdminFrontendData,eP="configurator"===A?$.selectConfiguratorBackendData:$.selectAdminBackendData,eM="configurator"===A?$.selectConfiguratorPublishedData:$.selectAdminPublishedData,eA="configurator"===A?D([N.selectSessionContext],e=>M(e).role):D([],()=>"admin"),eR="configurator"===A?D([N.selectSessionContext],e=>M(e).data):D([],()=>I),eE=D([ea,ei,eA,eR,eD],(e,t,n,o,i)=>({configurationId:e,mode:t,role:n,schemaIdentity:i.schemaIdentity,sessionData:o})),eT=D([q],e=>e.mode),eb=D([q],e=>{let t=e.configurationId;if(null===t)throw Error(`Configuration id is not available for ${A}! Read it from an active interactive domain lifecycle.`);return t}),ek=D([q],e=>e.role),e$=D([q],e=>e.sessionData),eN=D([eT,ek,e$,eI,eP,eM,eo],(e,t,n,o,i,a,s)=>({mode:e,role:t,sessionData:n,frontendData:o,backendData:i,publishedData:a,migrate:s,domain:eL,componentReader:eV,positionProjections:eq,sketchingProjections:e_,collisionProjections:eO,constraintProjections:eG,snappingProjections:eU,projectedEntitiesProjections:eH})),ez={selectApplicationSpec:B,selectRawAccessService:F,selectDomainContextState:W,selectInitializationContext:_,selectActiveInitializationContext:q,selectExecutionMode:O,selectIsInitialized:U,selectFactory:G,selectSpecExpressions:H,select$SpecEntityReflections:X,selectDomainExpressions:Y,selectModelVersion:Z,selectAliasMap:ee,selectAllowedRootEntityTypes:et,selectEntityReflections:en,selectMigrate:eo,selectLatestMode:ei,selectLatestConfigurationId:ea,selectLatestSessionContext:es,selectLatestRoleOrNull:er,selectLatestSessionDataOrNull:ec,selectLatestSchemaIdentity:em,selectSchemaCoherence:ed,selectInitializationIdentity:eg,selectIsViewMode:ef,selectInitializationState:ep,selectComponentOptics:eu,selectComponentReaderIndexes:ey,selectStoreRuntimeDependencies:ew,selectNavigationStates:eh,selectViewStates:eS,selectToolStates:ex,selectExportStates:ej,selectCreateTransformers:eC,selectLatestLoadedData:el,selectLoadedData:eD,selectInitialDomainState:ev,selectFrontendData:eI,selectBackendData:eP,selectPublishedData:eM,selectLatestRole:eA,selectLatestSessionData:eR,selectNextInitializationContext:eE,selectActiveMode:eT,selectActiveConfigurationId:eb,selectActiveRole:ek,selectActiveSessionData:e$,selectExpressionContext:eN,getInitializationContext:()=>_(R()),getInitializationState:()=>ep(R()),getNextInitializationContext:()=>eE(R()),getLatestLoadedData:()=>el(R()),getSchemaCoherence:()=>ed(R()),getActiveConfigurationId:()=>eb(R()),getFactory:()=>G(R()),getDomainExpressions:()=>Y(R()),getActionDefinitions:()=>J(R()),getActionImplementations:()=>Q(R()),getModelVersion:()=>Z(R()),getAliasMap:()=>ee(R()),getAllowedRootEntityTypes:()=>et(R()),getEntityReflections:()=>en(R()),getMigrate:()=>eo(R()),getActiveMode:()=>eT(R()),getIsInitialized:()=>U(R()),getComponentReaderIndexes:()=>ey(R()),getStoreRuntimeDependencies:()=>ew(R()),getNavigationStates:()=>eh(R()),getViewStates:()=>eS(R()),getToolStates:()=>ex(R()),getExportStates:()=>ej(R()),getCreateTransformers:()=>eC(R()),getLoadedData:()=>eD(R()),getInitialDomainState:()=>ev(R()),getFrontendData:()=>eI(R()),getBackendData:()=>eP(R()),getPublishedData:()=>eM(R()),getActiveRole:()=>ek(R()),getActiveSessionData:()=>e$(R()),getDomain:()=>eL,getComponentReader:()=>eV,getCompositionProjections:()=>eB,getDimensionSystem:()=>eF,getValidationProjections:()=>eW,getSketchingProjections:()=>e_,getPositionProjections:()=>eq,getCollisionProjections:()=>eO,getSnappingProjections:()=>eU,getConstraintProjections:()=>eG,getProjectedEntitiesProjections:()=>eH,getStoreSystem:()=>eJ,getNavigationSystem:()=>eK,getUndoSystem:()=>eQ,getRecipeCookerSystem:()=>eX,getActionSystem:()=>eY,getBlenderProjections:()=>eZ,getExpressionContext:()=>eN(R()),getDomainSystems:function(){return e0},getDomainContext:function(){return e1}},eL=new t({selectors:ez}),eV=new j({selectors:ez}),eB=new d({selectors:ez}),eF=new i({selectors:ez}),eW=new y({selectors:ez}),e_=new w({selectors:ez}),eq=new f({selectors:ez}),eO=new m({selectors:ez}),eU=new u({selectors:ez}),eG=new g({selectors:ez}),eH=new p({selectors:ez}),eJ=new r({selectors:ez,domainServicesSelectors:z,environmentSelectors:L}),eK=new a({selectors:ez,domainServicesSelectors:z}),eQ=new c({selectors:ez}),eX=new s({selectors:ez}),eY=new o({selectors:ez}),eZ=new l({selectors:ez,domainServicesSelectors:z}),e0={domainContextSelectors:ez,domain:eL,componentReader:eV,compositionProjections:eB,blenderProjections:eZ,validationProjections:eW,storeSystem:eJ,navigationSystem:eK,dimensionSystem:eF,undoSystem:eQ,recipeCooker:eX,actionSystem:eY,sketchingProjections:e_,collisionProjections:eO,positionProjections:eq,snappingProjections:eU,projectedEntitiesProjections:eH,constraintProjections:eG},e1=new C({selectors:ez,actions:E,getExtensionSystems:V});return ez};
1
+ import{createSelector as e}from"@salsita-ai/common/utils";import{Domain as t,createInitialDomainState as n}from"../../core/index.js";import{ActionSystem as o,DimensionSystem as i,NavigationSystem as a,RecipeCookerSystem as s,StoreSystem as r,UndoSystem as c}from"../../domain-context/index.js";import{BlenderProjections as l,CollisionProjections as m,CompositionProjections as d,ConstraintProjections as g,PositionProjections as f,ProjectedEntitiesProjections as u,SnappingProjections as p,ValidationProjections as y}from"../../projections/index.js";import{SketchingProjections as w}from"../../sketching/sketching-projections.js";import{requireAccessService as h}from"../access/index.js";import{prepareActionImplementations as S,prepareDomainExpressions as x}from"../spec/index.js";import{ComponentReader as C}from"./component-reader.js";import{DomainContext as D}from"./domain-context.js";let j=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:$,domainDataSelectors:k,sessionContextSelectors:N,domainServicesSelectors:z,environmentSelectors:L,getExtensionSystems:V}=e,B="configurator"===A?T.selectConfiguratorSpec:T.selectAdminSpec,F="configurator"===A?b.selectConfiguratorRawAccessService:b.selectAdminRawAccessService,W=j.leaf(e=>e.domainContext[A]),_=j([W],e=>e.initializationContext),q=j([_],e=>{if(null===e)throw Error(`Domain lifecycle context is not available for ${A}! Read it from an active domain lifecycle.`);return e}),O=j([W],e=>e.executionMode),U=j([W],e=>e.isInitialized),G=j([B],e=>e.factory),H=j([B],e=>e.expressions),J=j([B],e=>e.actions),K=j([B],e=>e.actionImplementations),Q=j([J,K],S),X=j([B],e=>e.$entityReflections),Y=j([H,X],(e,t)=>x({expressions:e,$entityReflections:t})),Z=j([B],e=>e.modelVersion),ee=j([B],e=>e.aliasMap),et=j([B],e=>e.allowedRootEntityTypes),en=j([B],e=>e.entityReflections),eo=j([B],e=>e.migrate),ei=j([O,$.selectReadonly,F],(e,t,n)=>"finalize"===e?"finalize":h(A,n).accessInfo.viewMode||t?"read":"owner"),ea=j([F],e=>e?.configurationId??null),es="configurator"===A?N.selectSessionContext:j([],()=>P),er=j([es],e=>e?.role??null),ec=j([es],e=>e?.data??null),el=j([j.leaf(e=>e.loadedData)],e=>"configurator"===A?e.configuratorLoadedData:e.adminLoadedData),em=j([el],e=>e?.schemaIdentity??null),ed=j([el,G],(e,t)=>{if(null===e)return"coherent";let n=e.schemaIdentity;return void 0===n?"missing-stamp":n===t?"coherent":"schema-mismatch"}),eg=j([ea,er,ec,em,ed],(e,t,n,o,i)=>null===e||null===t||null===n||null===o||"coherent"!==i?null:{configurationId:e,role:t,schemaIdentity:o,sessionData:n}),ef=j([F,$.selectReadonly],(e,t)=>e?.accessInfo.viewMode===!0||t),eu=j([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}}),ep=j([B],e=>e.componentOptics),ey=j([ep],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=j([ey,Y,et],(e,t,n)=>({componentReaderIndexes:e,domainExpressions:t,allowedRootEntityTypes:n})),eh=j([B],e=>e.navigationStates),eS=j([B],e=>e.viewStates),ex="configurator"===A?j([T.selectConfiguratorSpec],e=>e.toolStates):j([],()=>v),eC="configurator"===A?j([T.selectConfiguratorSpec],e=>e.exportStates):j([],()=>v),eD="configurator"===A?j([T.selectConfiguratorSpec],e=>e.createTransformers):j([],()=>void 0),ej=j([el],e=>{if(null===e)throw Error(`Loaded data is not available for ${A}! Loaded data is written after the configuration fetch succeeds and before the domain context initialization starts.`);return e}),ev=j([ej,G],(e,t)=>n(t.validateAndMigrateState(e.initialEntities,e.modelVersion),e.rootEntityType)),eI="configurator"===A?k.selectConfiguratorFrontendData:k.selectAdminFrontendData,eP="configurator"===A?k.selectConfiguratorBackendData:k.selectAdminBackendData,eM="configurator"===A?k.selectConfiguratorPublishedData:k.selectAdminPublishedData,eA="configurator"===A?j([N.selectSessionContext],e=>M(e).role):j([],()=>"admin"),eR="configurator"===A?j([N.selectSessionContext],e=>M(e).data):j([],()=>I),eE=j([ea,ei,eA,eR,ej],(e,t,n,o,i)=>({configurationId:e,mode:t,role:n,schemaIdentity:i.schemaIdentity,sessionData:o})),eT=j([q],e=>e.mode),eb=j([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}),e$=j([q],e=>e.role),ek=j([q],e=>e.sessionData),eN=j([eT,e$,ek,eI,eP,eM,eo],(e,t,n,o,i,a,s)=>({mode:e,role:t,sessionData:n,frontendData:o,backendData:i,publishedData:a,migrate:s,domain:eL,componentReader:eV,positionProjections:eq,sketchingProjections:e_,collisionProjections:eO,constraintProjections:eG,snappingProjections:eU,projectedEntitiesProjections:eH})),ez={selectApplicationSpec:B,selectRawAccessService:F,selectDomainContextState:W,selectInitializationContext:_,selectActiveInitializationContext:q,selectExecutionMode:O,selectIsInitialized:U,selectFactory:G,selectSpecExpressions:H,select$SpecEntityReflections:X,selectDomainExpressions:Y,selectModelVersion:Z,selectAliasMap:ee,selectAllowedRootEntityTypes:et,selectEntityReflections:en,selectMigrate:eo,selectLatestMode:ei,selectLatestConfigurationId:ea,selectLatestSessionContext:es,selectLatestRoleOrNull:er,selectLatestSessionDataOrNull:ec,selectLatestSchemaIdentity:em,selectSchemaCoherence:ed,selectInitializationIdentity:eg,selectIsViewMode:ef,selectInitializationState:eu,selectComponentOptics:ep,selectComponentReaderIndexes:ey,selectStoreRuntimeDependencies:ew,selectNavigationStates:eh,selectViewStates:eS,selectToolStates:ex,selectExportStates:eC,selectCreateTransformers:eD,selectLatestLoadedData:el,selectLoadedData:ej,selectInitialDomainState:ev,selectFrontendData:eI,selectBackendData:eP,selectPublishedData:eM,selectLatestRole:eA,selectLatestSessionData:eR,selectNextInitializationContext:eE,selectActiveMode:eT,selectActiveConfigurationId:eb,selectActiveRole:e$,selectActiveSessionData:ek,selectExpressionContext:eN,getInitializationContext:()=>_(R()),getInitializationState:()=>eu(R()),getNextInitializationContext:()=>eE(R()),getLatestLoadedData:()=>el(R()),getSchemaCoherence:()=>ed(R()),getActiveConfigurationId:()=>eb(R()),getFactory:()=>G(R()),getDomainExpressions:()=>Y(R()),getActionDefinitions:()=>J(R()),getActionImplementations:()=>Q(R()),getModelVersion:()=>Z(R()),getAliasMap:()=>ee(R()),getAllowedRootEntityTypes:()=>et(R()),getEntityReflections:()=>en(R()),getMigrate:()=>eo(R()),getActiveMode:()=>eT(R()),getIsInitialized:()=>U(R()),getComponentReaderIndexes:()=>ey(R()),getStoreRuntimeDependencies:()=>ew(R()),getNavigationStates:()=>eh(R()),getViewStates:()=>eS(R()),getToolStates:()=>ex(R()),getExportStates:()=>eC(R()),getCreateTransformers:()=>eD(R()),getLoadedData:()=>ej(R()),getInitialDomainState:()=>ev(R()),getFrontendData:()=>eI(R()),getBackendData:()=>eP(R()),getPublishedData:()=>eM(R()),getActiveRole:()=>e$(R()),getActiveSessionData:()=>ek(R()),getDomain:()=>eL,getComponentReader:()=>eV,getCompositionProjections:()=>eB,getDimensionSystem:()=>eF,getValidationProjections:()=>eW,getSketchingProjections:()=>e_,getPositionProjections:()=>eq,getCollisionProjections:()=>eO,getSnappingProjections:()=>eU,getConstraintProjections:()=>eG,getProjectedEntitiesProjections:()=>eH,getStoreSystem:()=>eJ,getNavigationSystem:()=>eK,getUndoSystem:()=>eQ,getRecipeCookerSystem:()=>eX,getActionSystem:()=>eY,getBlenderProjections:()=>eZ,getExpressionContext:()=>eN(R()),getDomainSystems:function(){return e0},getDomainContext:function(){return e1}},eL=new t({selectors:ez}),eV=new C({selectors:ez}),eB=new d({selectors:ez}),eF=new i({selectors:ez}),eW=new y({selectors:ez}),e_=new w({selectors:ez}),eq=new f({selectors:ez}),eO=new m({selectors:ez}),eU=new p({selectors:ez}),eG=new g({selectors:ez}),eH=new u({selectors:ez}),eJ=new r({selectors:ez,domainServicesSelectors:z,environmentSelectors:L}),eK=new a({selectors:ez,domainServicesSelectors:z}),eQ=new c({selectors:ez}),eX=new s({selectors:ez}),eY=new o({selectors:ez}),eZ=new l({selectors:ez,domainServicesSelectors:z}),e0={domainContextSelectors:ez,domain:eL,componentReader:eV,compositionProjections:eB,blenderProjections:eZ,validationProjections:eW,storeSystem:eJ,navigationSystem:eK,dimensionSystem:eF,undoSystem:eQ,recipeCooker:eX,actionSystem:eY,sketchingProjections:e_,collisionProjections:eO,positionProjections:eq,snappingProjections:eU,projectedEntitiesProjections:eH,constraintProjections:eG},e1=new D({selectors:ez,actions:E,getExtensionSystems:V});return ez};
@@ -74,17 +74,17 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
74
74
  selectPrefetchTextureUrls: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, readonly string[]>;
75
75
  selectTextLanguages: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, readonly string[]>;
76
76
  selectHandlerHashes: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, Record<string, string>>;
77
- selectHandlers: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, readonly import("../index.js").HandlerRegistration<any, any>[]>;
77
+ selectHandlers: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, readonly import("./index.js").HandlerRegistration<any, any>[]>;
78
78
  selectHandlerSlots: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, {
79
- handlers: Record<string, () => import("../index.js").PhoenixHandlerDefinition>;
80
- systemHandlers: Record<string, () => import("../index.js").SystemPhoenixHandlerDefinition<unknown, unknown>>;
81
- systemAsyncHandlers: Record<string, () => import("../index.js").SystemPhoenixAsyncHandlerDefinition<unknown, unknown>>;
79
+ handlers: Record<string, () => import("./index.js").PhoenixHandlerDefinition>;
80
+ systemHandlers: Record<string, () => import("./index.js").SystemPhoenixHandlerDefinition<unknown, unknown>>;
81
+ systemAsyncHandlers: Record<string, () => import("./index.js").SystemPhoenixAsyncHandlerDefinition<unknown, unknown>>;
82
82
  hashes: Record<string, string>;
83
83
  }>;
84
84
  selectElementHashes: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, Record<string, string>>;
85
- selectElements: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, readonly import("../index.js").ElementRegistration[]>;
85
+ selectElements: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, readonly import("./index.js").ElementRegistration[]>;
86
86
  selectElementSlots: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, {
87
- entityElements: Record<string, (props: import("../index.js").CustomPhoenixEntityElementProps) => JSX.Element>;
87
+ entityElements: Record<string, (props: import("./index.js").CustomPhoenixEntityElementProps) => JSX.Element>;
88
88
  layoutElements: Record<string, (props: import("react").PropsWithChildren) => JSX.Element>;
89
89
  hashes: Record<string, string>;
90
90
  }>;
@@ -117,17 +117,17 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
117
117
  getPrefetchTextureUrls: () => readonly string[];
118
118
  getTextLanguages: () => readonly string[];
119
119
  getHandlerHashes: () => Record<string, string>;
120
- getHandlers: () => readonly import("../index.js").HandlerRegistration<any, any>[];
120
+ getHandlers: () => readonly import("./index.js").HandlerRegistration<any, any>[];
121
121
  getHandlerSlots: () => {
122
- handlers: Record<string, () => import("../index.js").PhoenixHandlerDefinition>;
123
- systemHandlers: Record<string, () => import("../index.js").SystemPhoenixHandlerDefinition<unknown, unknown>>;
124
- systemAsyncHandlers: Record<string, () => import("../index.js").SystemPhoenixAsyncHandlerDefinition<unknown, unknown>>;
122
+ handlers: Record<string, () => import("./index.js").PhoenixHandlerDefinition>;
123
+ systemHandlers: Record<string, () => import("./index.js").SystemPhoenixHandlerDefinition<unknown, unknown>>;
124
+ systemAsyncHandlers: Record<string, () => import("./index.js").SystemPhoenixAsyncHandlerDefinition<unknown, unknown>>;
125
125
  hashes: Record<string, string>;
126
126
  };
127
127
  getElementHashes: () => Record<string, string>;
128
- getElements: () => readonly import("../index.js").ElementRegistration[];
128
+ getElements: () => readonly import("./index.js").ElementRegistration[];
129
129
  getElementSlots: () => {
130
- entityElements: Record<string, (props: import("../index.js").CustomPhoenixEntityElementProps) => JSX.Element>;
130
+ entityElements: Record<string, (props: import("./index.js").CustomPhoenixEntityElementProps) => JSX.Element>;
131
131
  layoutElements: Record<string, (props: import("react").PropsWithChildren) => JSX.Element>;
132
132
  hashes: Record<string, string>;
133
133
  };
@@ -375,7 +375,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
375
375
  selectViewStates: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, readonly string[]>;
376
376
  selectToolStates: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, readonly string[]>;
377
377
  selectExportStates: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, readonly string[]>;
378
- selectCreateTransformers: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, undefined> | import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("../domain-context/store-system/store-system.js").AnyCreateTransformersFactory>;
378
+ selectCreateTransformers: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, undefined> | import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("../index.js").AnyCreateTransformersFactory>;
379
379
  selectLatestLoadedData: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("./index.js").ConfiguratorLoadedData | null>;
380
380
  selectLoadedData: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("./index.js").ConfiguratorLoadedData>;
381
381
  selectInitialDomainState: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("../index.js").DomainState<any>>;
@@ -389,7 +389,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
389
389
  selectActiveConfigurationId: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, string>;
390
390
  selectActiveRole: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("@salsita-ai/contracts/api").SessionRole>;
391
391
  selectActiveSessionData: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, Record<string, unknown>>;
392
- selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("../index.js").AnyExpressionContext>;
392
+ selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("./index.js").AnyExpressionContext>;
393
393
  getInitializationContext: () => import("./index.js").DomainContextInitializationContext | null;
394
394
  getInitializationState: () => import("./index.js").DomainContextInitializationState;
395
395
  getNextInitializationContext: () => import("./index.js").DomainContextInitializationContext;
@@ -417,7 +417,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
417
417
  getViewStates: () => readonly string[];
418
418
  getToolStates: () => readonly string[];
419
419
  getExportStates: () => readonly string[];
420
- getCreateTransformers: () => import("../domain-context/store-system/store-system.js").AnyCreateTransformersFactory | undefined;
420
+ getCreateTransformers: () => import("../index.js").AnyCreateTransformersFactory | undefined;
421
421
  getLoadedData: () => import("./index.js").ConfiguratorLoadedData;
422
422
  getInitialDomainState: () => import("../index.js").DomainState<any>;
423
423
  getFrontendData: () => Record<string, unknown>;
@@ -436,13 +436,13 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
436
436
  getSnappingProjections: () => import("../index.js").AnySnappingProjections;
437
437
  getConstraintProjections: () => import("../index.js").AnyConstraintProjections;
438
438
  getProjectedEntitiesProjections: () => import("../index.js").AnyProjectedEntitiesProjections;
439
- getStoreSystem: () => import("../domain-context/store-system/store-system.js").AnyStoreSystem;
440
- getNavigationSystem: () => import("../domain-context/navigation-system/navigation-system.js").AnyNavigationSystem;
441
- getUndoSystem: () => import("../domain-context/undo-system.js").AnyUndoSystem;
439
+ getStoreSystem: () => import("../index.js").AnyStoreSystem;
440
+ getNavigationSystem: () => import("../index.js").AnyNavigationSystem;
441
+ getUndoSystem: () => import("../index.js").AnyUndoSystem;
442
442
  getRecipeCookerSystem: () => import("../index.js").AnyRecipeCookerSystem;
443
443
  getActionSystem: () => import("../index.js").AnyActionSystem;
444
444
  getBlenderProjections: () => import("../index.js").AnyBlenderProjections;
445
- getExpressionContext: () => import("../index.js").AnyExpressionContext;
445
+ getExpressionContext: () => import("./index.js").AnyExpressionContext;
446
446
  getDomainSystems: () => import("../index.js").AnyDomainContextSystems;
447
447
  getDomainContext: () => import("./index.js").DomainContext;
448
448
  };
@@ -484,7 +484,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
484
484
  selectViewStates: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, readonly string[]>;
485
485
  selectToolStates: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, readonly string[]>;
486
486
  selectExportStates: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, readonly string[]>;
487
- selectCreateTransformers: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, undefined> | import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("../domain-context/store-system/store-system.js").AnyCreateTransformersFactory>;
487
+ selectCreateTransformers: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, undefined> | import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("../index.js").AnyCreateTransformersFactory>;
488
488
  selectLatestLoadedData: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("./index.js").ConfiguratorLoadedData | null>;
489
489
  selectLoadedData: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("./index.js").ConfiguratorLoadedData>;
490
490
  selectInitialDomainState: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("../index.js").DomainState<any>>;
@@ -498,7 +498,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
498
498
  selectActiveConfigurationId: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, string>;
499
499
  selectActiveRole: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("@salsita-ai/contracts/api").SessionRole>;
500
500
  selectActiveSessionData: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, Record<string, unknown>>;
501
- selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("../index.js").AnyExpressionContext>;
501
+ selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("./index.js").AnyExpressionContext>;
502
502
  getInitializationContext: () => import("./index.js").DomainContextInitializationContext | null;
503
503
  getInitializationState: () => import("./index.js").DomainContextInitializationState;
504
504
  getNextInitializationContext: () => import("./index.js").DomainContextInitializationContext;
@@ -526,7 +526,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
526
526
  getViewStates: () => readonly string[];
527
527
  getToolStates: () => readonly string[];
528
528
  getExportStates: () => readonly string[];
529
- getCreateTransformers: () => import("../domain-context/store-system/store-system.js").AnyCreateTransformersFactory | undefined;
529
+ getCreateTransformers: () => import("../index.js").AnyCreateTransformersFactory | undefined;
530
530
  getLoadedData: () => import("./index.js").ConfiguratorLoadedData;
531
531
  getInitialDomainState: () => import("../index.js").DomainState<any>;
532
532
  getFrontendData: () => Record<string, unknown>;
@@ -545,13 +545,13 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
545
545
  getSnappingProjections: () => import("../index.js").AnySnappingProjections;
546
546
  getConstraintProjections: () => import("../index.js").AnyConstraintProjections;
547
547
  getProjectedEntitiesProjections: () => import("../index.js").AnyProjectedEntitiesProjections;
548
- getStoreSystem: () => import("../domain-context/store-system/store-system.js").AnyStoreSystem;
549
- getNavigationSystem: () => import("../domain-context/navigation-system/navigation-system.js").AnyNavigationSystem;
550
- getUndoSystem: () => import("../domain-context/undo-system.js").AnyUndoSystem;
548
+ getStoreSystem: () => import("../index.js").AnyStoreSystem;
549
+ getNavigationSystem: () => import("../index.js").AnyNavigationSystem;
550
+ getUndoSystem: () => import("../index.js").AnyUndoSystem;
551
551
  getRecipeCookerSystem: () => import("../index.js").AnyRecipeCookerSystem;
552
552
  getActionSystem: () => import("../index.js").AnyActionSystem;
553
553
  getBlenderProjections: () => import("../index.js").AnyBlenderProjections;
554
- getExpressionContext: () => import("../index.js").AnyExpressionContext;
554
+ getExpressionContext: () => import("./index.js").AnyExpressionContext;
555
555
  getDomainSystems: () => import("../index.js").AnyDomainContextSystems;
556
556
  getDomainContext: () => import("./index.js").DomainContext;
557
557
  };
@@ -664,17 +664,17 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
664
664
  selectPrefetchTextureUrls: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, readonly string[]>;
665
665
  selectTextLanguages: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, readonly string[]>;
666
666
  selectHandlerHashes: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, Record<string, string>>;
667
- selectHandlers: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, readonly import("../index.js").HandlerRegistration<any, any>[]>;
667
+ selectHandlers: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, readonly import("./index.js").HandlerRegistration<any, any>[]>;
668
668
  selectHandlerSlots: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, {
669
- handlers: Record<string, () => import("../index.js").PhoenixHandlerDefinition>;
670
- systemHandlers: Record<string, () => import("../index.js").SystemPhoenixHandlerDefinition<unknown, unknown>>;
671
- systemAsyncHandlers: Record<string, () => import("../index.js").SystemPhoenixAsyncHandlerDefinition<unknown, unknown>>;
669
+ handlers: Record<string, () => import("./index.js").PhoenixHandlerDefinition>;
670
+ systemHandlers: Record<string, () => import("./index.js").SystemPhoenixHandlerDefinition<unknown, unknown>>;
671
+ systemAsyncHandlers: Record<string, () => import("./index.js").SystemPhoenixAsyncHandlerDefinition<unknown, unknown>>;
672
672
  hashes: Record<string, string>;
673
673
  }>;
674
674
  selectElementHashes: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, Record<string, string>>;
675
- selectElements: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, readonly import("../index.js").ElementRegistration[]>;
675
+ selectElements: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, readonly import("./index.js").ElementRegistration[]>;
676
676
  selectElementSlots: import("@salsita-ai/common/utils").Selector<import("./index.js").SpecSelectorState, {
677
- entityElements: Record<string, (props: import("../index.js").CustomPhoenixEntityElementProps) => JSX.Element>;
677
+ entityElements: Record<string, (props: import("./index.js").CustomPhoenixEntityElementProps) => JSX.Element>;
678
678
  layoutElements: Record<string, (props: import("react").PropsWithChildren) => JSX.Element>;
679
679
  hashes: Record<string, string>;
680
680
  }>;
@@ -707,17 +707,17 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
707
707
  getPrefetchTextureUrls: () => readonly string[];
708
708
  getTextLanguages: () => readonly string[];
709
709
  getHandlerHashes: () => Record<string, string>;
710
- getHandlers: () => readonly import("../index.js").HandlerRegistration<any, any>[];
710
+ getHandlers: () => readonly import("./index.js").HandlerRegistration<any, any>[];
711
711
  getHandlerSlots: () => {
712
- handlers: Record<string, () => import("../index.js").PhoenixHandlerDefinition>;
713
- systemHandlers: Record<string, () => import("../index.js").SystemPhoenixHandlerDefinition<unknown, unknown>>;
714
- systemAsyncHandlers: Record<string, () => import("../index.js").SystemPhoenixAsyncHandlerDefinition<unknown, unknown>>;
712
+ handlers: Record<string, () => import("./index.js").PhoenixHandlerDefinition>;
713
+ systemHandlers: Record<string, () => import("./index.js").SystemPhoenixHandlerDefinition<unknown, unknown>>;
714
+ systemAsyncHandlers: Record<string, () => import("./index.js").SystemPhoenixAsyncHandlerDefinition<unknown, unknown>>;
715
715
  hashes: Record<string, string>;
716
716
  };
717
717
  getElementHashes: () => Record<string, string>;
718
- getElements: () => readonly import("../index.js").ElementRegistration[];
718
+ getElements: () => readonly import("./index.js").ElementRegistration[];
719
719
  getElementSlots: () => {
720
- entityElements: Record<string, (props: import("../index.js").CustomPhoenixEntityElementProps) => JSX.Element>;
720
+ entityElements: Record<string, (props: import("./index.js").CustomPhoenixEntityElementProps) => JSX.Element>;
721
721
  layoutElements: Record<string, (props: import("react").PropsWithChildren) => JSX.Element>;
722
722
  hashes: Record<string, string>;
723
723
  };
@@ -965,7 +965,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
965
965
  selectViewStates: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, readonly string[]>;
966
966
  selectToolStates: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, readonly string[]>;
967
967
  selectExportStates: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, readonly string[]>;
968
- selectCreateTransformers: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, undefined> | import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("../domain-context/store-system/store-system.js").AnyCreateTransformersFactory>;
968
+ selectCreateTransformers: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, undefined> | import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("../index.js").AnyCreateTransformersFactory>;
969
969
  selectLatestLoadedData: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("./index.js").ConfiguratorLoadedData | null>;
970
970
  selectLoadedData: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("./index.js").ConfiguratorLoadedData>;
971
971
  selectInitialDomainState: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("../index.js").DomainState<any>>;
@@ -979,7 +979,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
979
979
  selectActiveConfigurationId: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, string>;
980
980
  selectActiveRole: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("@salsita-ai/contracts/api").SessionRole>;
981
981
  selectActiveSessionData: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, Record<string, unknown>>;
982
- selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("../index.js").AnyExpressionContext>;
982
+ selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("./index.js").AnyExpressionContext>;
983
983
  getInitializationContext: () => import("./index.js").DomainContextInitializationContext | null;
984
984
  getInitializationState: () => import("./index.js").DomainContextInitializationState;
985
985
  getNextInitializationContext: () => import("./index.js").DomainContextInitializationContext;
@@ -1007,7 +1007,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
1007
1007
  getViewStates: () => readonly string[];
1008
1008
  getToolStates: () => readonly string[];
1009
1009
  getExportStates: () => readonly string[];
1010
- getCreateTransformers: () => import("../domain-context/store-system/store-system.js").AnyCreateTransformersFactory | undefined;
1010
+ getCreateTransformers: () => import("../index.js").AnyCreateTransformersFactory | undefined;
1011
1011
  getLoadedData: () => import("./index.js").ConfiguratorLoadedData;
1012
1012
  getInitialDomainState: () => import("../index.js").DomainState<any>;
1013
1013
  getFrontendData: () => Record<string, unknown>;
@@ -1026,13 +1026,13 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
1026
1026
  getSnappingProjections: () => import("../index.js").AnySnappingProjections;
1027
1027
  getConstraintProjections: () => import("../index.js").AnyConstraintProjections;
1028
1028
  getProjectedEntitiesProjections: () => import("../index.js").AnyProjectedEntitiesProjections;
1029
- getStoreSystem: () => import("../domain-context/store-system/store-system.js").AnyStoreSystem;
1030
- getNavigationSystem: () => import("../domain-context/navigation-system/navigation-system.js").AnyNavigationSystem;
1031
- getUndoSystem: () => import("../domain-context/undo-system.js").AnyUndoSystem;
1029
+ getStoreSystem: () => import("../index.js").AnyStoreSystem;
1030
+ getNavigationSystem: () => import("../index.js").AnyNavigationSystem;
1031
+ getUndoSystem: () => import("../index.js").AnyUndoSystem;
1032
1032
  getRecipeCookerSystem: () => import("../index.js").AnyRecipeCookerSystem;
1033
1033
  getActionSystem: () => import("../index.js").AnyActionSystem;
1034
1034
  getBlenderProjections: () => import("../index.js").AnyBlenderProjections;
1035
- getExpressionContext: () => import("../index.js").AnyExpressionContext;
1035
+ getExpressionContext: () => import("./index.js").AnyExpressionContext;
1036
1036
  getDomainSystems: () => import("../index.js").AnyDomainContextSystems;
1037
1037
  getDomainContext: () => import("./index.js").DomainContext;
1038
1038
  };
@@ -1074,7 +1074,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
1074
1074
  selectViewStates: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, readonly string[]>;
1075
1075
  selectToolStates: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, readonly string[]>;
1076
1076
  selectExportStates: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, readonly string[]>;
1077
- selectCreateTransformers: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, undefined> | import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("../domain-context/store-system/store-system.js").AnyCreateTransformersFactory>;
1077
+ selectCreateTransformers: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, undefined> | import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("../index.js").AnyCreateTransformersFactory>;
1078
1078
  selectLatestLoadedData: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("./index.js").ConfiguratorLoadedData | null>;
1079
1079
  selectLoadedData: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("./index.js").ConfiguratorLoadedData>;
1080
1080
  selectInitialDomainState: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("../index.js").DomainState<any>>;
@@ -1088,7 +1088,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
1088
1088
  selectActiveConfigurationId: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, string>;
1089
1089
  selectActiveRole: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("@salsita-ai/contracts/api").SessionRole>;
1090
1090
  selectActiveSessionData: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, Record<string, unknown>>;
1091
- selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("../index.js").AnyExpressionContext>;
1091
+ selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("./index.js").AnyExpressionContext>;
1092
1092
  getInitializationContext: () => import("./index.js").DomainContextInitializationContext | null;
1093
1093
  getInitializationState: () => import("./index.js").DomainContextInitializationState;
1094
1094
  getNextInitializationContext: () => import("./index.js").DomainContextInitializationContext;
@@ -1116,7 +1116,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
1116
1116
  getViewStates: () => readonly string[];
1117
1117
  getToolStates: () => readonly string[];
1118
1118
  getExportStates: () => readonly string[];
1119
- getCreateTransformers: () => import("../domain-context/store-system/store-system.js").AnyCreateTransformersFactory | undefined;
1119
+ getCreateTransformers: () => import("../index.js").AnyCreateTransformersFactory | undefined;
1120
1120
  getLoadedData: () => import("./index.js").ConfiguratorLoadedData;
1121
1121
  getInitialDomainState: () => import("../index.js").DomainState<any>;
1122
1122
  getFrontendData: () => Record<string, unknown>;
@@ -1135,13 +1135,13 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
1135
1135
  getSnappingProjections: () => import("../index.js").AnySnappingProjections;
1136
1136
  getConstraintProjections: () => import("../index.js").AnyConstraintProjections;
1137
1137
  getProjectedEntitiesProjections: () => import("../index.js").AnyProjectedEntitiesProjections;
1138
- getStoreSystem: () => import("../domain-context/store-system/store-system.js").AnyStoreSystem;
1139
- getNavigationSystem: () => import("../domain-context/navigation-system/navigation-system.js").AnyNavigationSystem;
1140
- getUndoSystem: () => import("../domain-context/undo-system.js").AnyUndoSystem;
1138
+ getStoreSystem: () => import("../index.js").AnyStoreSystem;
1139
+ getNavigationSystem: () => import("../index.js").AnyNavigationSystem;
1140
+ getUndoSystem: () => import("../index.js").AnyUndoSystem;
1141
1141
  getRecipeCookerSystem: () => import("../index.js").AnyRecipeCookerSystem;
1142
1142
  getActionSystem: () => import("../index.js").AnyActionSystem;
1143
1143
  getBlenderProjections: () => import("../index.js").AnyBlenderProjections;
1144
- getExpressionContext: () => import("../index.js").AnyExpressionContext;
1144
+ getExpressionContext: () => import("./index.js").AnyExpressionContext;
1145
1145
  getDomainSystems: () => import("../index.js").AnyDomainContextSystems;
1146
1146
  getDomainContext: () => import("./index.js").DomainContext;
1147
1147
  };
@@ -2,6 +2,8 @@ export * from './selectors.js';
2
2
  export type * from './types.js';
3
3
  export * from './actions.js';
4
4
  export * from './initialize.js';
5
+ export * from './invariant-builder.js';
5
6
  export * from './memoize-expression.js';
7
+ export { type PhoenixEntityElementProps, type PhoenixEntityElementRegistration, type PhoenixLayoutElementRegistration, type PhoenixIconRegistration, type ElementRegistration, type CustomPhoenixEntityElementProps, type PhoenixLayoutElementDefinition, type PhoenixEntityElementDefinition, type CreateCustomPhoenixLayoutElement, type CreateCustomPhoenixEntityElement, createPhoenixLayoutElement, createPhoenixEntityElement, createCustomPhoenixLayoutElement, createCustomPhoenixEntityElement, resolveElementModule, resolveElementModules, type PhoenixHandlerDefinition, type SystemPhoenixHandlerDefinition, type PhoenixHandlerRegistration, type SystemPhoenixHandlerRegistration, type SystemPhoenixAsyncHandlerDefinition, type SystemPhoenixAsyncHandlerRegistration, type HandlerRegistration, type CreatePhoenixHandler, createPhoenixHandler, createSystemPhoenixHandler, createSystemPhoenixAsyncHandler, resolveHandlerModule, resolveHandlerModules, type ProjectModule, resolveActionModules, resolveComponentOpticModules, type ExpressionModule, resolveExpressionModules, resolveImportedTransformers, resolveTransformerModule, resolveTransformerModules, resolveInvariantModules, } from './module-checks/index.js';
6
8
  export * from './prepare-action-implementations.js';
7
9
  export * from './prepare-domain-expressions.js';
@@ -1 +1 @@
1
- export*from"./selectors.js";export*from"./actions.js";export*from"./initialize.js";export*from"./memoize-expression.js";export*from"./prepare-action-implementations.js";export*from"./prepare-domain-expressions.js";
1
+ export*from"./selectors.js";export*from"./actions.js";export*from"./initialize.js";export*from"./invariant-builder.js";export*from"./memoize-expression.js";export{createPhoenixLayoutElement,createPhoenixEntityElement,createCustomPhoenixLayoutElement,createCustomPhoenixEntityElement,resolveElementModule,resolveElementModules,createPhoenixHandler,createSystemPhoenixHandler,createSystemPhoenixAsyncHandler,resolveHandlerModule,resolveHandlerModules,resolveActionModules,resolveComponentOpticModules,resolveExpressionModules,resolveImportedTransformers,resolveTransformerModule,resolveTransformerModules,resolveInvariantModules}from"./module-checks/index.js";export*from"./prepare-action-implementations.js";export*from"./prepare-domain-expressions.js";
@@ -1 +1 @@
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
+ import{SessionRole as e}from"@salsita-ai/contracts/api";import{resolveComponentOpticModules as t,resolveElementModules as a,resolveHandlerModules as n,resolveImportedTransformers as o,resolveTransformerModules as i}from"./module-checks/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=n(s.handlers),c=a(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=i(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:t(s.domain.componentOptics),createTransformers:e=>o(p,y,e),navigationStates:s.navigation?.navigationStates??[],viewStates:s.navigation?.viewStates??[],toolStates:s.navigation?.toolStates??[],exportStates:s.navigation?.exportStates??[],handlers:m,handlerHashes:d,elements:c,elementHashes:l,appLoader:s.ui?.appLoader??"universal",preview:s.ui?.preview??"auto",alwaysExpand:s.ui?.alwaysExpand??!1,theme:s.ui?.theme??{},assistant:s.assistant??null,deploymentQueryDisabled:s.resources?.deploymentQueryDisabled??!1,prefetchTextureUrls:s.resources?.prefetchTextureUrls??[],modelVersion:s.domain.domainFactory.modelVersion},admin:{factory:s.adminDomain.domainFactory,modelVersion:s.adminDomain.domainFactory.modelVersion,aliasMap:s.adminDomain.domainFactory.context.aliasMap,entityReflections:s.adminDomain.domainFactory.context.entityReflections,$entityReflections:s.adminDomain.domainFactory.context.$entityReflections,expressions:s.adminDomain.domainFactory.context.expressions,actions:s.adminDomain.domainFactory.context.actions,actionImplementations:s.adminDomain.domainFactory.context.actionImplementations,allowedRootEntityTypes:s.adminDomain.domainFactory.context.allowedRootEntityTypes,migrate:s.adminDomain.domainFactory.context.migrate,preset:r,componentOptics:t(s.adminDomain.componentOptics),navigationStates:s.adminNavigation?.navigationStates??[],viewStates:s.adminNavigation?.viewStates??[],handlers:m,handlerHashes:d,elements:c,elementHashes:l}}};
@@ -0,0 +1,26 @@
1
+ import { type $DomainEntity, type AliasMap, type AliasedInvariants, type AnonymousExpression, type DomainEntity, type EntityByType, type EventualAlias, type ExpandAlias, type ExtractFromAliasedRecord, type Invariant, type TypeOrAlias, type Violation } from '../../core/index.js';
2
+ import { type ProjectModule } from './module-checks/index.js';
3
+ type ViolationOfInvariants<INVARIANTS> = INVARIANTS extends ReadonlyArray<infer INVARIANT> ? INVARIANT : never;
4
+ type ExpandAndMergeInvariants<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>, ALIASES extends Readonly<Record<string, ENTITIES>>, EXPANDED extends Partial<Record<ENTITIES['type'], ReadonlyArray<Invariant<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ENTITIES, string>>>>, ALIASED extends Partial<Record<TypeOrAlias<ENTITIES, ALIASES>, ReadonlyArray<Invariant<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ENTITIES, string>>>>> = {
5
+ [K in keyof EXPANDED | ExpandAlias<ENTITIES, ALIASES, keyof ALIASED & string>['type']]: K extends ENTITIES['type'] ? ExtractFromAliasedRecord<ENTITIES, ALIASES, ALIASED, EventualAlias<ENTITIES, ALIASES, K> | K> extends infer INVARIANTS_FROM_ALIAS ? [
6
+ INVARIANTS_FROM_ALIAS
7
+ ] extends [never] ? K extends keyof EXPANDED ? EXPANDED[K] : never : K extends keyof EXPANDED ? ReadonlyArray<ViolationOfInvariants<EXPANDED[K]> | ViolationOfInvariants<INVARIANTS_FROM_ALIAS>> : ReadonlyArray<ViolationOfInvariants<INVARIANTS_FROM_ALIAS>> : never : never;
8
+ };
9
+ type ExpressionsFromInvariants<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>, INVARIANTS extends Partial<Record<ENTITIES['type'], ReadonlyArray<Invariant<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ENTITIES, string>>>>> = {
10
+ [K in keyof INVARIANTS & ENTITIES['type']]: {
11
+ $violations: AnonymousExpression<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, EntityByType<ENTITIES, K>, ReadonlyArray<Violation<INVARIANTS[K] extends ReadonlyArray<infer ELEMENT> ? ELEMENT extends Invariant<any, any, any, any, any, any, infer VIOLATION_TYPE> ? VIOLATION_TYPE : never : never>>>;
12
+ };
13
+ };
14
+ export declare class InvariantBuilder<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>, INVARIANTS extends Partial<Record<ENTITIES['type'], ReadonlyArray<Invariant<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ENTITIES, string>>>> = Record<never, never>> {
15
+ private readonly aliasMap;
16
+ private readonly invariants;
17
+ constructor(aliasMap: AliasMap<ALIASES>, invariants?: INVARIANTS);
18
+ /**
19
+ * Adds the invariants of the `src/invariants/` files, as the generated barrel lists them, after
20
+ * checking each file against the folder's contract.
21
+ */
22
+ withInvariantModules(modules: readonly ProjectModule[]): InvariantBuilder<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ALIASES, ExpandAndMergeInvariants<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ALIASES, INVARIANTS, AliasedInvariants<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ALIASES, string>>>;
23
+ withInvariants<ALIASED_INVARIANTS extends AliasedInvariants<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ALIASES, string>>(aliasedInvariants: ALIASED_INVARIANTS): InvariantBuilder<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ALIASES, ExpandAndMergeInvariants<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ALIASES, INVARIANTS, ALIASED_INVARIANTS>>;
24
+ buildViolationExpressions: () => ExpressionsFromInvariants<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, INVARIANTS>;
25
+ }
26
+ export {};
@@ -0,0 +1 @@
1
+ import{expandAlias as a}from"../../core/index.js";import{resolveInvariantModules as i}from"./module-checks/index.js";export class InvariantBuilder{aliasMap;invariants;constructor(a,i={}){this.aliasMap=a,this.invariants=i}withInvariantModules(a){return this.withInvariants(i(a))}withInvariants(i){let t={...this.invariants};return Object.entries(i).forEach(([i,r])=>{a(this.aliasMap,i).forEach(a=>{t[a]=[...t[a]??[],...r]})}),new InvariantBuilder(this.aliasMap,t)}buildViolationExpressions=()=>{let a={};return Object.entries(this.invariants).forEach(([i,t])=>{a[i]={$violations:{evaluate:(a,i,r)=>t.flatMap(t=>t.evaluate(a,i,r)),meta:{}}}}),a}}
@@ -1,8 +1,8 @@
1
1
  import type { SvgIconProps } from '@mui/material';
2
2
  import type { PropsWithChildren, ReactNode } from 'react';
3
3
  import type { ExtendedJsonSchema } from '@salsita-ai/common/utils';
4
- import type { DomainEntityId } from '../core/index.js';
5
- import { type ProjectModule } from '../project-modules/index.js';
4
+ import type { DomainEntityId } from '../../../core/index.js';
5
+ import { type ProjectModule } from './project-modules.js';
6
6
  export interface PhoenixEntityElementProps {
7
7
  entityId: DomainEntityId<string>;
8
8
  children?: ReactNode;
@@ -0,0 +1 @@
1
+ import{SHARED_FOLDER_HINT as e,isRecord as t,resolveListModule as n}from"./project-modules.js";export const systemElementRegistry={layoutElements:{},entityElements:{}};export const createPhoenixLayoutElement=e=>(systemElementRegistry.layoutElements[e.schema.properties.kind.enum[0]]=e.component,e.component);export const createCustomPhoenixLayoutElement=(e,t)=>({type:"layout",name:e,element:t});export const createPhoenixEntityElement=e=>(systemElementRegistry.entityElements[e.schema.properties.kind.enum[0]]=e.component,e.component);export const createCustomPhoenixEntityElement=(e,t)=>({type:"entity",name:e,element:t});let o={expected:"an element registration, or an array of them",fix:`Create it with phx.frontend.createCustomPhoenixLayoutElement(...) or phx.frontend.createCustomPhoenixEntityElement(...), ${e}.`},r=e=>!!t(e)&&("icon"===e.type?Array.isArray(e.elements):("entity"===e.type||"layout"===e.type)&&"string"==typeof e.name&&"function"==typeof e.element);export const resolveElementModule=e=>n(e,o,r);export const resolveElementModules=e=>e.flatMap(resolveElementModule);
@@ -1,4 +1,4 @@
1
- import { type ProjectModule } from '../project-modules/index.js';
1
+ import { type ProjectModule } from './project-modules.js';
2
2
  export type PhoenixHandlerDefinition = {
3
3
  handler: () => Promise<void>;
4
4
  };
@@ -0,0 +1 @@
1
+ import{SHARED_FOLDER_HINT as e,isRecord as t,resolveListModule as o}from"./project-modules.js";export const createPhoenixHandler=(e,t)=>({type:"phoenix",name:e,handler:t});export const createSystemPhoenixHandler=(e,t)=>({type:"system",name:e,handler:t});export const createSystemPhoenixAsyncHandler=(e,t)=>({type:"system-async",name:e,handler:t});let r={expected:"a handler registration, or an array of them",fix:`Create it with phx.frontend.createPhoenixHandler(...) or one of the other phx.frontend.create…Handler(...) factories, ${e}.`},n=e=>t(e)&&("phoenix"===e.type||"system"===e.type||"system-async"===e.type)&&"string"==typeof e.name&&"function"==typeof e.handler;export const resolveHandlerModule=e=>o(e,r,n);export const resolveHandlerModules=e=>e.flatMap(resolveHandlerModule);
@@ -0,0 +1,8 @@
1
+ export { type PhoenixEntityElementProps, type PhoenixEntityElementRegistration, type PhoenixLayoutElementRegistration, type PhoenixIconRegistration, type ElementRegistration, type CustomPhoenixEntityElementProps, type PhoenixLayoutElementDefinition, type PhoenixEntityElementDefinition, type CreateCustomPhoenixLayoutElement, type CreateCustomPhoenixEntityElement, createPhoenixLayoutElement, createPhoenixEntityElement, createCustomPhoenixLayoutElement, createCustomPhoenixEntityElement, resolveElementModule, resolveElementModules, systemElementRegistry, } from './element-registration.js';
2
+ export { type PhoenixHandlerDefinition, type SystemPhoenixHandlerDefinition, type PhoenixHandlerRegistration, type SystemPhoenixHandlerRegistration, type SystemPhoenixAsyncHandlerDefinition, type SystemPhoenixAsyncHandlerRegistration, type HandlerRegistration, type CreatePhoenixHandler, createPhoenixHandler, createSystemPhoenixHandler, createSystemPhoenixAsyncHandler, resolveHandlerModule, resolveHandlerModules, } from './handler-registration.js';
3
+ export { type ProjectModule } from './project-modules.js';
4
+ export { resolveActionModules } from './resolve-action-modules.js';
5
+ export { resolveComponentOpticModules } from './resolve-component-optic-modules.js';
6
+ export { type ExpressionModule, resolveExpressionModules } from './resolve-expression-modules.js';
7
+ export { resolveImportedTransformers, resolveTransformerModule, resolveTransformerModules, } from './resolve-imported-transformers.js';
8
+ export { resolveInvariantModules } from './resolve-invariant-modules.js';
@@ -0,0 +1 @@
1
+ export{createPhoenixLayoutElement,createPhoenixEntityElement,createCustomPhoenixLayoutElement,createCustomPhoenixEntityElement,resolveElementModule,resolveElementModules,systemElementRegistry}from"./element-registration.js";export{createPhoenixHandler,createSystemPhoenixHandler,createSystemPhoenixAsyncHandler,resolveHandlerModule,resolveHandlerModules}from"./handler-registration.js";export{resolveActionModules}from"./resolve-action-modules.js";export{resolveComponentOpticModules}from"./resolve-component-optic-modules.js";export{resolveExpressionModules}from"./resolve-expression-modules.js";export{resolveImportedTransformers,resolveTransformerModule,resolveTransformerModules}from"./resolve-imported-transformers.js";export{resolveInvariantModules}from"./resolve-invariant-modules.js";
@@ -1,4 +1,3 @@
1
- import type { AnonymousExpression, AnyActionImplementations } from '../core/index.js';
2
1
  /**
3
2
  * The default export of one file in a project convention folder (`src/elements/`, `src/handlers/`,
4
3
  * `src/expressions/`, …), paired with the project-relative path it was imported from.
@@ -11,12 +10,6 @@ export interface ProjectModule {
11
10
  readonly origin: string;
12
11
  readonly exports: unknown;
13
12
  }
14
- /** The expressions of one validated expression file, keyed by entity type or alias, then by expression name. */
15
- export interface ExpressionModule {
16
- readonly origin: string;
17
- readonly expressions: Readonly<Record<string, Readonly<Record<string, AnyAnonymousExpression>>>>;
18
- }
19
- type AnyAnonymousExpression = AnonymousExpression<any, any, any, any, any, any, unknown>;
20
13
  /** What a convention folder requires of its files, in the words used by the contract error. */
21
14
  export interface ProjectModuleContract {
22
15
  readonly expected: string;
@@ -30,12 +23,3 @@ export declare const createContractError: (origin: string, contract: ProjectModu
30
23
  * The first item that fails the check is the value the error reports.
31
24
  */
32
25
  export declare const resolveListModule: <Item>(module: ProjectModule, contract: ProjectModuleContract, isItem: (value: unknown) => value is Item) => readonly Item[];
33
- /**
34
- * Validates the `src/expressions/` files and rejects an expression that two files define for the
35
- * same entity type. Merging stays with the caller, because the domain builder and the editor expand
36
- * aliases at different points; within one file the builder's own duplicate check applies.
37
- */
38
- export declare const resolveExpressionModules: (modules: readonly ProjectModule[], aliasMap: Readonly<Record<string, readonly string[]>>) => readonly ExpressionModule[];
39
- /** Validates the `src/actions/` files and merges their implementations by action name; a later file wins. */
40
- export declare const resolveActionModules: (modules: readonly ProjectModule[]) => AnyActionImplementations;
41
- export {};
@@ -0,0 +1 @@
1
+ export const SHARED_FOLDER_HINT="or move the file to an underscore-prefixed folder such as src/_shared/ when it is shared code";export const isRecord=e=>"object"==typeof e&&null!==e&&!Array.isArray(e);export const createContractError=(e,r,t)=>Error(`Invalid default export in ${e}: expected ${r.expected}, but got ${(e=>{if(void 0===e)return"nothing (the file has no default export)";if(null===e)return"null";if("function"==typeof e)return e.name?`the function "${e.name}"`:"an anonymous function";if(Array.isArray(e))return`an array of ${e.length} item(s)`;if(isRecord(e)){let r=Object.keys(e);return r.length>0?`an object with the keys ${r.join(", ")}`:"an empty object"}return`the ${typeof e} ${JSON.stringify(e)}`})(t)}. Every file in this folder is loaded by convention, so each one must default-export that shape. ${r.fix}`);export const resolveListModule=(e,r,t)=>{let o=Array.isArray(e.exports)?e.exports:[e.exports],n=[];for(let i of o){if(!t(i))throw createContractError(e.origin,r,i);n.push(i)}return n};