@salsita-ai/sdk 0.50.0-develop.b335a15889 → 0.50.0-develop.b5468d6828

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 (1193) hide show
  1. package/README.md +14 -13
  2. package/dist/admin/create-admin-pages-from-spec.d.ts +1 -1
  3. package/dist/application-spec/core/components/component-filter.d.ts +53 -0
  4. package/dist/application-spec/core/components/component-filter.js +1 -0
  5. package/dist/application-spec/core/components/index.d.ts +2 -0
  6. package/dist/application-spec/core/components/index.js +1 -0
  7. package/dist/application-spec/core/components/sdk-code-ref.d.ts +9 -0
  8. package/dist/application-spec/core/components/sdk-code-ref.js +1 -0
  9. package/dist/application-spec/core/enhanced-json-value.d.ts +0 -68
  10. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  11. package/dist/application-spec/core/expressions/index.d.ts +2 -0
  12. package/dist/application-spec/core/expressions/index.js +1 -0
  13. package/dist/application-spec/core/expressions/relation-expression-params.d.ts +11 -0
  14. package/dist/application-spec/core/expressions/sdk-expression-implementation.d.ts +24 -0
  15. package/dist/application-spec/core/expressions/sdk-expression-implementation.js +1 -0
  16. package/dist/application-spec/core/index.d.ts +2 -0
  17. package/dist/application-spec/core/index.js +1 -1
  18. package/dist/application-spec/core/json-value.d.ts +1 -1
  19. package/dist/application-spec/{core → enhanced-json}/eval-to-constant.d.ts +1 -1
  20. package/dist/application-spec/enhanced-json/index.d.ts +4 -0
  21. package/dist/application-spec/enhanced-json/index.js +1 -0
  22. package/dist/application-spec/enhanced-json/is-enhanced-json-array.d.ts +2 -0
  23. package/dist/application-spec/enhanced-json/is-enhanced-json-array.js +1 -0
  24. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.d.ts +18 -0
  25. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.js +1 -0
  26. package/dist/application-spec/enhanced-json/schema-from-value.d.ts +24 -0
  27. package/dist/application-spec/enhanced-json/schema-from-value.js +1 -0
  28. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.d.ts +14 -0
  29. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.js +1 -0
  30. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.d.ts +12 -0
  31. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.js +1 -0
  32. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.d.ts +13 -0
  33. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.js +1 -0
  34. package/dist/application-spec/errors/diagnostic-codes.d.ts +9 -0
  35. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  36. package/dist/application-spec/errors/diagnostic-messages.d.ts +12 -0
  37. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  38. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  39. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  40. package/dist/application-spec/generate-application/code/common/project-module-list.d.ts +8 -0
  41. package/dist/application-spec/generate-application/code/common/project-module-list.js +3 -0
  42. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  43. package/dist/application-spec/generate-application/code/generate-application-code.d.ts +3 -2
  44. package/dist/application-spec/generate-application/code/generate-application-code.js +1 -1
  45. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +17 -5
  46. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  47. package/dist/application-spec/generate-application/code/standalone-app-files.d.ts +2 -2
  48. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  49. package/dist/application-spec/generate-application/code/templates/admin-domain-code.d.ts +1 -2
  50. package/dist/application-spec/generate-application/code/templates/admin-domain-code.js +6 -14
  51. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.d.ts +1 -2
  52. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.js +4 -4
  53. package/dist/application-spec/generate-application/code/templates/configurator-config.js +6 -4
  54. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.d.ts +1 -2
  55. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.js +7 -16
  56. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.d.ts +1 -2
  57. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.js +7 -9
  58. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +4 -4
  59. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  60. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  61. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +56 -56
  62. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +1 -1
  63. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  64. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  65. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  66. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  67. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +11 -11
  68. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +1 -1
  69. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  70. package/dist/application-spec/generate-application/code/templates/domain-spec.js +12 -12
  71. package/dist/application-spec/generate-application/code/templates/domain.js +5 -5
  72. package/dist/application-spec/generate-application/code/templates/frontend-config.js +3 -5
  73. package/dist/application-spec/generate-application/code/templates/gitignore.js +1 -2
  74. package/dist/application-spec/generate-application/code/templates/globals.js +3 -3
  75. package/dist/application-spec/generate-application/code/templates/index.d.ts +1 -8
  76. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  77. package/dist/application-spec/generate-application/code/templates/package-json.js +1 -1
  78. package/dist/application-spec/generate-application/code/templates/root-tsconfig.d.ts +6 -0
  79. package/dist/application-spec/generate-application/code/templates/root-tsconfig.js +2 -0
  80. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  81. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +66 -42
  82. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +10 -4
  83. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  84. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +26 -19
  85. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +6 -9
  86. package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
  87. package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
  88. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +6 -5
  89. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +6 -1
  90. package/dist/application-spec/generate-application/code/templates/webhook-index.js +10 -1
  91. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -3
  92. package/dist/application-spec/generate-application/index.d.ts +2 -0
  93. package/dist/application-spec/generate-application/index.js +1 -1
  94. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +6 -2
  95. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  96. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +8 -3
  97. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  98. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +5 -3
  99. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  100. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +43 -0
  101. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.js +1 -0
  102. package/dist/application-spec/generate-application/runtime/factory-data/index.d.ts +3 -0
  103. package/dist/application-spec/generate-application/runtime/factory-data/index.js +1 -0
  104. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +13 -0
  105. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -0
  106. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +16 -0
  107. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -0
  108. package/dist/application-spec/generate-application/runtime/migrations/index.d.ts +1 -0
  109. package/dist/application-spec/generate-application/runtime/migrations/index.js +1 -0
  110. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +53 -0
  111. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +1 -0
  112. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +1 -1
  113. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  114. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +2 -1
  115. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  116. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +2 -4
  117. package/dist/application-spec/index.d.ts +1 -0
  118. package/dist/application-spec/index.js +1 -1
  119. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +16 -0
  120. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  121. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts +9 -0
  122. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
  123. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  124. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  125. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +16 -3
  126. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  127. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  128. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  129. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  130. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  131. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  132. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  133. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  134. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  135. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  136. package/dist/application-spec/parse-application-files/spec/expressions/expression.d.ts +1 -28
  137. package/dist/application-spec/parse-application-files/spec/expressions/expression.js +1 -1
  138. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +1 -1
  139. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  140. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  141. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  142. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  143. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  144. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  145. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  146. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  147. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  148. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  149. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  150. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  151. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  152. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  153. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  154. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  155. package/dist/client/authorized-client.d.ts +3 -1
  156. package/dist/client/authorized-client.js +1 -1
  157. package/dist/client/contract.d.ts +34 -0
  158. package/dist/client/contract.js +1 -1
  159. package/dist/client/index.d.ts +2 -2
  160. package/dist/client/index.js +1 -1
  161. package/dist/client/local-authorized-client.d.ts +3 -1
  162. package/dist/client/local-authorized-client.js +1 -1
  163. package/dist/client/memory-authorized-client.d.ts +3 -1
  164. package/dist/client/memory-authorized-client.js +1 -1
  165. package/dist/client/phoenix-api.d.ts +311 -2
  166. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  167. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  168. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  169. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +121 -3
  170. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  171. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +7 -1
  172. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  173. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  174. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  175. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +20 -4
  176. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  177. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  178. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  179. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  180. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  181. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  182. package/dist/configurator/common/configurator-interface.d.ts +26 -1
  183. package/dist/configurator/common/configurator-interface.js +1 -1
  184. package/dist/configurator/common/frontend-analytics.d.ts +2 -0
  185. package/dist/configurator/common/frontend-analytics.js +1 -1
  186. package/dist/configurator/common/index.d.ts +2 -0
  187. package/dist/configurator/common/index.js +1 -1
  188. package/dist/configurator/common/use-finalize-action.d.ts +31 -0
  189. package/dist/configurator/common/use-finalize-action.js +1 -0
  190. package/dist/configurator/common/use-reset-camera.d.ts +6 -0
  191. package/dist/configurator/common/use-reset-camera.js +1 -0
  192. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +1 -1
  193. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +6 -0
  194. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  195. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  196. package/dist/configurator/pages/configurator-layout-name.d.ts +2 -0
  197. package/dist/configurator/pages/configurator-layout-name.js +1 -0
  198. package/dist/configurator/pages/default-configurator-elements.d.ts +7 -0
  199. package/dist/configurator/pages/default-configurator-elements.js +1 -0
  200. package/dist/configurator/pages/index.d.ts +1 -0
  201. package/dist/configurator/pages/index.js +1 -1
  202. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  203. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  204. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  205. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  206. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  207. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  208. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  209. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  210. package/dist/configurator/ui/assistant/AssistantChips.d.ts +8 -2
  211. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  212. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +2 -1
  213. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -1
  214. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +1 -1
  215. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  216. package/dist/configurator/ui/assistant/AssistantThread.d.ts +6 -2
  217. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  218. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  219. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  220. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  221. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  222. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  223. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  224. package/dist/configurator/ui/assistant/entity-link/entity-link-target.d.ts +5 -0
  225. package/dist/configurator/ui/assistant/entity-link/entity-link-target.js +1 -0
  226. package/dist/configurator/ui/assistant/entity-link/index.d.ts +3 -0
  227. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  228. package/dist/configurator/ui/assistant/thread-items.d.ts +13 -2
  229. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  230. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  231. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  232. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  233. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  234. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.d.ts +101 -0
  235. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  236. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  237. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  238. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  239. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  240. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  241. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  242. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  243. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  244. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +0 -74
  245. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  246. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  247. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +4 -4
  248. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  249. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  250. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  251. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  252. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  253. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  254. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -2
  255. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +100 -117
  256. package/dist/docs/complex-use-cases/navigation-reset-selection.mdx +18 -12
  257. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  258. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  259. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  260. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  261. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  262. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  263. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  264. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  265. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  266. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  267. package/dist/docs/index.json +42 -1
  268. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  269. package/dist/docs/layouts/custom-layout.mdx +2125 -0
  270. package/dist/docs/layouts/custom-price.mdx +14 -16
  271. package/dist/docs/layouts/header/fixed.mdx +2 -2
  272. package/dist/docs/layouts/header/floating.mdx +2 -2
  273. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  274. package/dist/docs/layouts/sidebar/tabs.mdx +24 -21
  275. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  276. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  277. package/dist/docs/other-features/domain-actions.mdx +1 -1
  278. package/dist/docs/other-features/side-effects.mdx +50 -45
  279. package/dist/docs/other-features/transformers.mdx +5 -1
  280. package/dist/docs/other-features/violation-messages.mdx +52 -56
  281. package/dist/docs/phoenix/admin.mdx +9 -24
  282. package/dist/docs/phoenix/application-states.mdx +9 -7
  283. package/dist/docs/phoenix/configurator-interface.mdx +237 -80
  284. package/dist/docs/phoenix/deployments.mdx +3 -7
  285. package/dist/docs/phoenix/domain-model.mdx +4 -0
  286. package/dist/docs/phoenix/expression-context.mdx +11 -3
  287. package/dist/docs/phoenix/finalization.mdx +1 -1
  288. package/dist/docs/phoenix/getting-started.mdx +2 -1
  289. package/dist/docs/phoenix/layout-slots.mdx +116 -0
  290. package/dist/docs/phoenix/localization.mdx +7 -26
  291. package/dist/docs/phoenix/migration-guide.mdx +19 -8
  292. package/dist/docs/phoenix/phoenix-cli.mdx +87 -55
  293. package/dist/docs/phoenix/project-structure.mdx +43 -15
  294. package/dist/docs/phoenix/quickstart.mdx +2 -2
  295. package/dist/docs/phoenix/sdk-builder-workflow.mdx +9 -9
  296. package/dist/docs/phoenix/testing.mdx +140 -0
  297. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  298. package/dist/docs/phoenix/webhooks.mdx +23 -6
  299. package/dist/docs/recipes-and-delete/recipe-hierarchy-selection.mdx +15 -13
  300. package/dist/docs/relations/hierarchy.mdx +13 -2
  301. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  302. package/dist/domain/admin-domain/__generated/enhanced-model.d.ts +1 -2
  303. package/dist/domain/admin-domain/__generated/model/versions/v1.d.ts +1 -1
  304. package/dist/domain/admin-domain/__generated/model/versions/v2.d.ts +1 -1
  305. package/dist/domain/admin-domain/__generated/model/versions/v3.d.ts +1 -1
  306. package/dist/domain/admin-domain/__generated/model/versions/v4.d.ts +1 -1
  307. package/dist/domain/admin-domain/__generated/model/versions/v5.d.ts +1 -1
  308. package/dist/domain/admin-domain/__generated/model/versions/v6.d.ts +2 -2
  309. package/dist/domain/admin-domain/__generated/model/versions/v6.js +1 -1
  310. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -14
  311. package/dist/domain/admin-domain/implementation/common-admin-migrations.d.ts +1 -1
  312. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  313. package/dist/domain/admin-domain/index.d.ts +9 -5
  314. package/dist/domain/admin-domain/index.js +1 -1
  315. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  316. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  317. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  318. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  319. package/dist/domain/application/application-config.d.ts +28 -35
  320. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  321. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  322. package/dist/domain/application/assistant/assistant-manifest.d.ts +11 -1
  323. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +38 -2
  324. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -1
  325. package/dist/domain/application/assistant/assistant-value-type.js +1 -1
  326. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  327. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  328. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  329. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  330. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  331. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +1 -11
  332. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  333. package/dist/domain/application/assistant/index.d.ts +6 -1
  334. package/dist/domain/application/assistant/index.js +1 -1
  335. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  336. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  337. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  338. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  339. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +48 -0
  340. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  341. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  342. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  343. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  344. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  345. package/dist/domain/application/assistant-field-options.d.ts +1 -2
  346. package/dist/domain/application/assistant-mutations.d.ts +2 -4
  347. package/dist/domain/application/assistant-mutations.js +1 -1
  348. package/dist/domain/application/assistant-recipe-groups.d.ts +2 -6
  349. package/dist/domain/application/configurator-builder.d.ts +34 -17
  350. package/dist/domain/application/configurator-builder.js +1 -1
  351. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  352. package/dist/domain/application/index.d.ts +2 -6
  353. package/dist/domain/application/index.js +1 -1
  354. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  355. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  356. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  357. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  358. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  359. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  360. package/dist/domain/application/published-data/create-finalize-admin-domain.d.ts +1 -2
  361. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  362. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  363. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +3 -3
  364. package/dist/domain/application/published-data/map-published-data.d.ts +7 -4
  365. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  366. package/dist/domain/available-system-components.js +1 -1
  367. package/dist/domain/core/action/action-factory.d.ts +11 -0
  368. package/dist/domain/core/{action.d.ts → action/action.d.ts} +22 -18
  369. package/dist/domain/core/action/index.d.ts +2 -0
  370. package/dist/domain/core/action/index.js +1 -0
  371. package/dist/domain/{components → core/component}/component-reader-types.d.ts +1 -2
  372. package/dist/domain/{components → core/component}/debug-state-component.d.ts +1 -1
  373. package/dist/domain/core/component/debug-state-component.js +1 -0
  374. package/dist/domain/core/component/domain-component-optic.d.ts +65 -0
  375. package/dist/domain/core/component/domain-component-optic.js +16 -0
  376. package/dist/domain/{components → core/component}/drag-state-component.d.ts +1 -1
  377. package/dist/domain/core/component/drag-state-component.js +1 -0
  378. package/dist/domain/{components → core/component}/export-state-component.d.ts +1 -1
  379. package/dist/domain/core/component/export-state-component.js +1 -0
  380. package/dist/domain/{components → core/component}/fullscreen-state-component.d.ts +1 -1
  381. package/dist/domain/core/component/fullscreen-state-component.js +1 -0
  382. package/dist/domain/{components → core/component}/group-components-by-entity-id-and-name.d.ts +1 -2
  383. package/dist/domain/core/component/group-components-by-entity-id-and-name.js +1 -0
  384. package/dist/domain/{components → core/component}/hover-state-component.d.ts +1 -1
  385. package/dist/domain/core/component/hover-state-component.js +1 -0
  386. package/dist/domain/core/component/index.d.ts +18 -0
  387. package/dist/domain/core/component/index.js +1 -0
  388. package/dist/domain/{components → core/component}/legacy-filter.d.ts +4 -19
  389. package/dist/domain/{components → core/component}/navigation-state-component.d.ts +1 -1
  390. package/dist/domain/core/component/navigation-state-component.js +1 -0
  391. package/dist/domain/{components → core/component}/selection-state-component.d.ts +1 -1
  392. package/dist/domain/core/component/selection-state-component.js +1 -0
  393. package/dist/domain/{components → core/component}/system-component-builder.d.ts +1 -2
  394. package/dist/domain/core/component/system-component-builder.js +1 -0
  395. package/dist/domain/{components → core/component}/system-component-filter.d.ts +38 -20
  396. package/dist/domain/core/component/system-virtual-entity.js +1 -0
  397. package/dist/domain/{components → core/component}/tool-state-component.d.ts +1 -1
  398. package/dist/domain/core/component/tool-state-component.js +1 -0
  399. package/dist/domain/{components → core/component}/updates.d.ts +1 -2
  400. package/dist/domain/{components → core/component}/view-state-component.d.ts +1 -1
  401. package/dist/domain/core/component/view-state-component.js +1 -0
  402. package/dist/domain/{components → core/component}/viewport-state-component.d.ts +1 -1
  403. package/dist/domain/core/component/viewport-state-component.js +1 -0
  404. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  405. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  406. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  407. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  408. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  409. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  410. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  411. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  412. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  413. package/dist/domain/core/data-schema/data-schema.js +1 -0
  414. package/dist/domain/core/data-schema/index.d.ts +7 -0
  415. package/dist/domain/core/data-schema/index.js +1 -0
  416. package/dist/domain/core/decoder/create-decoder.d.ts +6 -0
  417. package/dist/domain/core/decoder/create-decoder.js +1 -0
  418. package/dist/domain/core/decoder/decoder.d.ts +6 -0
  419. package/dist/domain/core/decoder/decoder.js +1 -0
  420. package/dist/domain/core/decoder/index.d.ts +2 -0
  421. package/dist/domain/core/decoder/index.js +1 -0
  422. package/dist/domain/core/domain-factory.d.ts +4 -5
  423. package/dist/domain/core/domain-factory.js +1 -1
  424. package/dist/domain/core/domain.d.ts +4 -5
  425. package/dist/domain/core/domain.js +1 -1
  426. package/dist/domain/core/emission/index.d.ts +8 -0
  427. package/dist/domain/core/emission/index.js +1 -0
  428. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  429. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  430. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  431. package/dist/domain/core/emission/state-emission.js +1 -0
  432. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  433. package/dist/domain/core/emission/state-update-emission.js +1 -0
  434. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  435. package/dist/domain/core/emission/state-validation-result.js +1 -0
  436. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  437. package/dist/domain/core/emission/transformation-log.js +1 -0
  438. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  439. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  440. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  441. package/dist/domain/core/emission/transformer-log.js +1 -0
  442. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  443. package/dist/domain/core/emission/transformer-phase.js +1 -0
  444. package/dist/domain/core/expression/aliased-expressions.d.ts +10 -0
  445. package/dist/domain/core/expression/aliased-expressions.js +1 -0
  446. package/dist/domain/core/expression/constant-expressions.d.ts +16 -0
  447. package/dist/domain/core/expression/constant-expressions.js +1 -0
  448. package/dist/domain/core/expression/custom-expression.d.ts +25 -0
  449. package/dist/domain/core/expression/custom-expression.js +1 -0
  450. package/dist/domain/core/expression/expression.d.ts +46 -0
  451. package/dist/domain/core/expression/expression.js +1 -0
  452. package/dist/domain/core/expression/index.d.ts +4 -0
  453. package/dist/domain/core/expression/index.js +1 -0
  454. package/dist/domain/core/index.d.ts +13 -17
  455. package/dist/domain/core/index.js +1 -1
  456. package/dist/domain/{invariants → core/invariant}/builtin-invariant.d.ts +2 -2
  457. package/dist/domain/core/invariant/custom-invariants.d.ts +13 -0
  458. package/dist/domain/core/invariant/custom-invariants.js +1 -0
  459. package/dist/domain/core/invariant/index.d.ts +5 -0
  460. package/dist/domain/core/invariant/index.js +1 -0
  461. package/dist/domain/core/invariant/invariants.d.ts +10 -0
  462. package/dist/domain/core/invariant/invariants.js +1 -0
  463. package/dist/domain/core/invariant/violation-component.js +1 -0
  464. package/dist/domain/{invariants → core/invariant}/violation.d.ts +52 -4
  465. package/dist/domain/core/invariant/violation.js +1 -0
  466. package/dist/domain/core/{component.d.ts → model/component.d.ts} +1 -1
  467. package/dist/domain/core/model/index.d.ts +6 -0
  468. package/dist/domain/core/model/index.js +1 -0
  469. package/dist/domain/core/{model.d.ts → model/model.d.ts} +1 -1
  470. package/dist/domain/core/{reflection.d.ts → model/reflection.d.ts} +1 -1
  471. package/dist/domain/core/model/reflection.js +1 -0
  472. package/dist/domain/core/recipe/index.d.ts +1 -0
  473. package/dist/domain/core/recipe/index.js +1 -0
  474. package/dist/domain/core/recipe/recipes.d.ts +23 -0
  475. package/dist/domain/core/recipe/recipes.js +1 -0
  476. package/dist/domain/core/relation/all-of-type-relation.d.ts +19 -0
  477. package/dist/domain/core/relation/all-of-type-relation.js +1 -0
  478. package/dist/domain/{relations → core/relation}/component-factories.d.ts +1 -2
  479. package/dist/domain/core/relation/component-factories.js +1 -0
  480. package/dist/domain/{relations → core/relation}/composed-of.d.ts +1 -1
  481. package/dist/domain/core/relation/composed-of.js +1 -0
  482. package/dist/domain/core/relation/direct-relation.d.ts +17 -0
  483. package/dist/domain/core/relation/index.d.ts +8 -0
  484. package/dist/domain/core/relation/index.js +1 -0
  485. package/dist/domain/core/relation/indirect-relation.d.ts +25 -0
  486. package/dist/domain/core/relation/indirect-relation.js +1 -0
  487. package/dist/domain/{relations → core/relation}/reference-component.d.ts +4 -5
  488. package/dist/domain/core/relation/reference-component.js +1 -0
  489. package/dist/domain/{relations → core/relation}/reference-field.d.ts +1 -1
  490. package/dist/domain/core/relation/reference-field.js +1 -0
  491. package/dist/domain/core/relation/relation-factory.d.ts +22 -0
  492. package/dist/domain/core/relation/relation-factory.js +1 -0
  493. package/dist/domain/core/schema/enhanced-json-schema.js +1 -0
  494. package/dist/domain/core/schema/extended-schema-validator.js +1 -0
  495. package/dist/domain/core/schema/index.d.ts +3 -0
  496. package/dist/domain/core/schema/index.js +1 -0
  497. package/dist/domain/core/schema/schema-validator.js +1 -0
  498. package/dist/domain/core/state/id-sequence.d.ts +15 -0
  499. package/dist/domain/core/state/id-sequence.js +1 -0
  500. package/dist/domain/core/state/index.d.ts +3 -0
  501. package/dist/domain/core/state/index.js +1 -0
  502. package/dist/domain/core/{migrations.d.ts → state/migrations.d.ts} +15 -47
  503. package/dist/domain/core/state/migrations.js +1 -0
  504. package/dist/domain/core/{state.d.ts → state/state.d.ts} +2 -3
  505. package/dist/domain/domain-builder.d.ts +11 -11
  506. package/dist/domain/domain-builder.js +1 -1
  507. package/dist/domain/domain-context/action-system/action-system.d.ts +2 -4
  508. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  509. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  510. package/dist/domain/domain-context/action-system/index.js +1 -0
  511. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  512. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  513. package/dist/domain/domain-context/create-transformer.d.ts +2 -2
  514. package/dist/domain/domain-context/dimension-system/dimension-state.js +1 -1
  515. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +3 -4
  516. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  517. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  518. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  519. package/dist/domain/domain-context/domain-context-systems.d.ts +8 -10
  520. package/dist/domain/domain-context/index.d.ts +8 -18
  521. package/dist/domain/domain-context/index.js +1 -1
  522. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  523. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  524. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +5 -8
  525. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  526. package/dist/domain/domain-context/navigation-system/navigation-updates.d.ts +1 -12
  527. package/dist/domain/domain-context/navigation-system/navigation-updates.js +1 -1
  528. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +2 -2
  529. package/dist/domain/domain-context/navigation-system/selection-transformers.js +1 -1
  530. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  531. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  532. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +2 -4
  533. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  534. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +3 -3
  535. package/dist/domain/domain-context/relation-transformers/cascade-deletes.js +1 -1
  536. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +3 -3
  537. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.js +1 -1
  538. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +3 -3
  539. package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
  540. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  541. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  542. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +3 -3
  543. package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
  544. package/dist/domain/domain-context/store-system/apply-updates.d.ts +1 -3
  545. package/dist/domain/domain-context/store-system/apply-updates.js +1 -1
  546. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  547. package/dist/domain/domain-context/store-system/index.js +1 -0
  548. package/dist/domain/domain-context/store-system/next-domain-entity-id.d.ts +1 -13
  549. package/dist/domain/domain-context/store-system/next-domain-entity-id.js +1 -1
  550. package/dist/domain/domain-context/store-system/reconcile-projected-entities.d.ts +1 -2
  551. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  552. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -39
  553. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  554. package/dist/domain/domain-context/store-system/system-state.d.ts +2 -4
  555. package/dist/domain/domain-context/store-system/system-state.js +1 -1
  556. package/dist/domain/domain-context/transformers/actions-builder.d.ts +1 -2
  557. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  558. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +6 -10
  559. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  560. package/dist/domain/domain-context/transformers/chain-builder.d.ts +3 -3
  561. package/dist/domain/domain-context/transformers/context.d.ts +2 -7
  562. package/dist/domain/domain-context/transformers/context.js +1 -1
  563. package/dist/domain/domain-context/transformers/entity-builder.d.ts +1 -5
  564. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  565. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  566. package/dist/domain/domain-context/transformers/index.js +1 -1
  567. package/dist/domain/domain-context/transformers/then-builder.d.ts +1 -2
  568. package/dist/domain/domain-context/transformers/then-builder.js +1 -1
  569. package/dist/domain/domain-context/transformers/when-builder.d.ts +3 -9
  570. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  571. package/dist/domain/domain-context/undo-system.d.ts +29 -3
  572. package/dist/domain/domain-context/undo-system.js +1 -1
  573. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  574. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  575. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  576. package/dist/domain/domain-runtime/access/types.js +1 -1
  577. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  578. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  579. package/dist/domain/domain-runtime/domain-context/component-reader.d.ts +1 -4
  580. package/dist/domain/domain-runtime/domain-context/component-reader.js +1 -1
  581. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  582. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  583. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  584. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  585. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  586. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  587. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +19 -25
  588. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  589. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  590. package/dist/domain/domain-runtime/domain-runtime.d.ts +84 -68
  591. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +19 -0
  592. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  593. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  594. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  595. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  596. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  597. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  598. package/dist/domain/domain-runtime/errors/index.js +1 -0
  599. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  600. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  601. package/dist/domain/domain-runtime/index.d.ts +1 -0
  602. package/dist/domain/domain-runtime/index.js +1 -1
  603. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  604. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  605. package/dist/domain/domain-runtime/spec/index.d.ts +5 -0
  606. package/dist/domain/domain-runtime/spec/index.js +1 -1
  607. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  608. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  609. package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.d.ts +1 -2
  610. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +6 -1
  611. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  612. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +5 -0
  613. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  614. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  615. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  616. package/dist/domain/domain-runtime/spec/module-checks/project-modules.d.ts +32 -0
  617. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  618. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  619. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  620. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  621. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  622. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  623. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  624. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  625. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  626. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  627. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  628. package/dist/domain/{actions → domain-runtime/spec}/prepare-action-implementations.d.ts +1 -1
  629. package/dist/domain/domain-runtime/spec/prepare-action-implementations.js +5 -0
  630. package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.d.ts +1 -1
  631. package/dist/domain/domain-runtime/spec/selectors.d.ts +5 -6
  632. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  633. package/dist/domain/domain-runtime/spec/types.d.ts +6 -4
  634. package/dist/domain/{system-components → extensions}/angle-indicator.d.ts +1 -1
  635. package/dist/domain/extensions/angle-indicator.js +1 -0
  636. package/dist/domain/{system-components → extensions}/attribute-switch.d.ts +1 -1
  637. package/dist/domain/extensions/attribute-switch.js +1 -0
  638. package/dist/domain/{system-components → extensions}/autorotate-camera-component.d.ts +1 -1
  639. package/dist/domain/extensions/autorotate-camera-component.js +1 -0
  640. package/dist/domain/{system-components → extensions}/basic-sidebar-footer.d.ts +1 -1
  641. package/dist/domain/extensions/basic-sidebar-footer.js +1 -0
  642. package/dist/domain/extensions/camera-based-hidden-entity-object.js +1 -0
  643. package/dist/domain/extensions/camera-based-hidden-entity.js +1 -0
  644. package/dist/domain/{system-components → extensions}/canvas-config.d.ts +2 -2
  645. package/dist/domain/extensions/canvas-config.js +1 -0
  646. package/dist/domain/extensions/canvas-custom-environment.js +1 -0
  647. package/dist/domain/{system-components → extensions}/canvas-padding.d.ts +1 -1
  648. package/dist/domain/extensions/canvas-padding.js +1 -0
  649. package/dist/domain/{system-components → extensions}/canvas-preset-environment.d.ts +1 -1
  650. package/dist/domain/extensions/canvas-preset-environment.js +1 -0
  651. package/dist/domain/{system-components → extensions}/child-entity-recipe-hierarchy.d.ts +2 -2
  652. package/dist/domain/extensions/child-entity-recipe-hierarchy.js +1 -0
  653. package/dist/domain/{system-components → extensions}/client-side-image.d.ts +2 -2
  654. package/dist/domain/extensions/client-side-image.js +1 -0
  655. package/dist/domain/extensions/color-value.js +1 -0
  656. package/dist/domain/{system-components → extensions}/common/angle-indicator-schema.d.ts +3 -3
  657. package/dist/domain/extensions/common/angle-indicator-schema.js +1 -0
  658. package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.d.ts +3 -3
  659. package/dist/domain/extensions/common/dimension-indicator-schema.js +1 -0
  660. package/dist/domain/extensions/common/index.d.ts +4 -0
  661. package/dist/domain/extensions/common/index.js +1 -0
  662. package/dist/domain/{system-components → extensions}/custom-header.d.ts +2 -2
  663. package/dist/domain/{system-components → extensions}/custom-header.js +1 -1
  664. package/dist/domain/extensions/custom-price-footer.js +1 -0
  665. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.d.ts +2 -2
  666. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.js +1 -1
  667. package/dist/domain/{system-components → extensions}/dimension-indicator.d.ts +1 -1
  668. package/dist/domain/extensions/dimension-indicator.js +1 -0
  669. package/dist/domain/{system-components → extensions}/editable-angle-indicator.d.ts +4 -3
  670. package/dist/domain/extensions/editable-angle-indicator.js +1 -0
  671. package/dist/domain/{system-components → extensions}/editable-distance-dimension-indicator.d.ts +4 -3
  672. package/dist/domain/extensions/editable-distance-dimension-indicator.js +1 -0
  673. package/dist/domain/{system-components → extensions}/editable-offset-indicator.d.ts +4 -3
  674. package/dist/domain/extensions/editable-offset-indicator.js +1 -0
  675. package/dist/domain/{system-components → extensions}/editable-size-indicator.d.ts +3 -2
  676. package/dist/domain/extensions/editable-size-indicator.js +1 -0
  677. package/dist/domain/{system-components → extensions}/entity-header.d.ts +1 -1
  678. package/dist/domain/extensions/entity-header.js +1 -0
  679. package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.d.ts +1 -1
  680. package/dist/domain/extensions/exit-tool-mode-fab.js +1 -0
  681. package/dist/domain/{system-components → extensions}/finalize-action.d.ts +1 -1
  682. package/dist/domain/extensions/finalize-action.js +1 -0
  683. package/dist/domain/extensions/finalize-component.js +1 -0
  684. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -0
  685. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -0
  686. package/dist/domain/{system-components → extensions}/fixed-header.d.ts +1 -1
  687. package/dist/domain/extensions/fixed-header.js +1 -0
  688. package/dist/domain/{system-components → extensions}/floating-header.d.ts +1 -1
  689. package/dist/domain/extensions/floating-header.js +1 -0
  690. package/dist/domain/{system-components → extensions}/hidden-header.d.ts +1 -1
  691. package/dist/domain/extensions/hidden-header.js +1 -0
  692. package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.d.ts +1 -1
  693. package/dist/domain/extensions/hidden-sidebar-footer.js +1 -0
  694. package/dist/domain/{system-components → extensions}/horizontal-tabs.d.ts +3 -3
  695. package/dist/domain/extensions/horizontal-tabs.js +1 -0
  696. package/dist/domain/extensions/index.d.ts +69 -0
  697. package/dist/domain/extensions/index.js +1 -0
  698. package/dist/domain/{system-components → extensions}/list-selector-dimension-indicator.d.ts +4 -3
  699. package/dist/domain/extensions/list-selector-dimension-indicator.js +1 -0
  700. package/dist/domain/extensions/multilingual-text-value.js +1 -0
  701. package/dist/domain/{system-components → extensions}/navigation-steps.d.ts +2 -2
  702. package/dist/domain/extensions/navigation-steps.js +1 -0
  703. package/dist/domain/{system-components → extensions}/offset-anchors.d.ts +1 -1
  704. package/dist/domain/extensions/offset-anchors.js +1 -0
  705. package/dist/domain/{system-components → extensions}/offset-indicator.d.ts +1 -2
  706. package/dist/domain/extensions/offset-indicator.js +1 -0
  707. package/dist/domain/{system-components → extensions}/offset.d.ts +1 -1
  708. package/dist/domain/extensions/offset.js +1 -0
  709. package/dist/domain/{system-components → extensions}/other-action.d.ts +1 -1
  710. package/dist/domain/extensions/other-action.js +1 -0
  711. package/dist/domain/{system-components → extensions}/property-page.d.ts +2 -2
  712. package/dist/domain/extensions/property-page.js +1 -0
  713. package/dist/domain/{system-components → extensions}/read-sidebar-footer.d.ts +1 -1
  714. package/dist/domain/extensions/read-sidebar-footer.js +1 -0
  715. package/dist/domain/{system-components → extensions}/replace-entity-recipe-hierarchy.d.ts +2 -2
  716. package/dist/domain/extensions/replace-entity-recipe-hierarchy.js +1 -0
  717. package/dist/domain/extensions/rotatable.js +1 -0
  718. package/dist/domain/{system-components → extensions}/rotation-handle.d.ts +2 -2
  719. package/dist/domain/extensions/rotation-handle.js +1 -0
  720. package/dist/domain/{system-components → extensions}/save-template-thumbnail.d.ts +2 -2
  721. package/dist/domain/extensions/save-template-thumbnail.js +1 -0
  722. package/dist/domain/{system-components → extensions}/scene-entity-add-fab.d.ts +1 -1
  723. package/dist/domain/extensions/scene-entity-add-fab.js +1 -0
  724. package/dist/domain/extensions/scene-entity-animation.js +1 -0
  725. package/dist/domain/extensions/scene-entity-control.js +1 -0
  726. package/dist/domain/{system-components → extensions}/scene-entity-delete-fab.d.ts +1 -1
  727. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -0
  728. package/dist/domain/extensions/scene-entity-floor-object.js +1 -0
  729. package/dist/domain/{system-components → extensions}/scene-entity-html-hotspot.d.ts +1 -1
  730. package/dist/domain/extensions/scene-entity-html-hotspot.js +1 -0
  731. package/dist/domain/{system-components → extensions}/scene-entity-navigation-hotspot.d.ts +1 -1
  732. package/dist/domain/extensions/scene-entity-navigation-hotspot.js +1 -0
  733. package/dist/domain/{system-components → extensions}/scene-entity-object-html-hotspot.d.ts +1 -1
  734. package/dist/domain/extensions/scene-entity-object-html-hotspot.js +1 -0
  735. package/dist/domain/{system-components → extensions}/scene-entity-select-hotspot.d.ts +1 -1
  736. package/dist/domain/extensions/scene-entity-select-hotspot.js +1 -0
  737. package/dist/domain/extensions/scene-entity-wall-object.js +1 -0
  738. package/dist/domain/extensions/selectable-component.js +1 -0
  739. package/dist/domain/{system-components → extensions}/sidebar-tabs.d.ts +1 -1
  740. package/dist/domain/extensions/sidebar-tabs.js +1 -0
  741. package/dist/domain/extensions/simple-summary.js +1 -0
  742. package/dist/domain/{system-components → extensions}/size.d.ts +1 -1
  743. package/dist/domain/extensions/size.js +1 -0
  744. package/dist/domain/{system-components → extensions}/sketching-draw.d.ts +1 -1
  745. package/dist/domain/extensions/sketching-draw.js +1 -0
  746. package/dist/domain/{system-components → extensions}/sketching-edit.d.ts +2 -2
  747. package/dist/domain/extensions/sketching-edit.js +1 -0
  748. package/dist/domain/extensions/summary-component.js +1 -0
  749. package/dist/domain/extensions/text-value.js +1 -0
  750. package/dist/domain/extensions/tool-controls.js +1 -0
  751. package/dist/domain/{system-components → extensions}/tool-menu-fab.d.ts +2 -2
  752. package/dist/domain/extensions/tool-menu-fab.js +1 -0
  753. package/dist/domain/{system-components → extensions}/toolbar.d.ts +2 -2
  754. package/dist/domain/{system-components → extensions}/toolbar.js +1 -1
  755. package/dist/domain/{system-components → extensions}/universal-sidebar-footer.d.ts +1 -1
  756. package/dist/domain/extensions/universal-sidebar-footer.js +1 -0
  757. package/dist/domain/extensions/view-controls.js +1 -0
  758. package/dist/domain/index.d.ts +2 -32
  759. package/dist/domain/index.js +1 -1
  760. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  761. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  762. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +28 -19
  763. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  764. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  765. package/dist/domain/mocks/create-mock-domain.js +1 -1
  766. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  767. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  768. package/dist/domain/mocks/create-test-application-config.js +1 -0
  769. package/dist/domain/mocks/index.d.ts +1 -0
  770. package/dist/domain/mocks/index.js +1 -1
  771. package/dist/domain/projections/blender-projections/blender-projections.d.ts +2 -3
  772. package/dist/domain/projections/blender-projections/blender-projections.js +1 -1
  773. package/dist/domain/projections/blender-projections/camera.d.ts +2 -2
  774. package/dist/domain/projections/collision-projections.d.ts +1 -1
  775. package/dist/domain/projections/composition-projections.d.ts +1 -1
  776. package/dist/domain/projections/composition-projections.js +1 -1
  777. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  778. package/dist/domain/projections/index.d.ts +1 -1
  779. package/dist/domain/projections/position-projections.d.ts +1 -1
  780. package/dist/domain/projections/projected-entities-projections.d.ts +2 -3
  781. package/dist/domain/projections/snap-matching.d.ts +1 -2
  782. package/dist/domain/projections/snap-utils.d.ts +1 -2
  783. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  784. package/dist/domain/projections/validation-projections.d.ts +3 -20
  785. package/dist/domain/projections/validation-projections.js +1 -1
  786. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  787. package/dist/domain/system-components/admin-sidebar.d.ts +1 -1
  788. package/dist/domain/system-components/admin-sidebar.js +1 -1
  789. package/dist/domain/system-components/angle-dimension.js +1 -1
  790. package/dist/domain/system-components/application-config.d.ts +3 -3
  791. package/dist/domain/system-components/application-config.js +1 -1
  792. package/dist/domain/system-components/attribute-selection.js +1 -1
  793. package/dist/domain/system-components/bounding-box-component.d.ts +1 -1
  794. package/dist/domain/system-components/bounding-box-component.js +1 -1
  795. package/dist/domain/system-components/bounding-sphere-component.d.ts +1 -1
  796. package/dist/domain/system-components/bounding-sphere-component.js +1 -1
  797. package/dist/domain/system-components/child-entity-recipes.d.ts +1 -1
  798. package/dist/domain/system-components/child-entity-recipes.js +1 -1
  799. package/dist/domain/system-components/child-entity-selection.d.ts +1 -2
  800. package/dist/domain/system-components/child-entity-selection.js +1 -1
  801. package/dist/domain/system-components/collision-box-geometry.d.ts +5 -3
  802. package/dist/domain/system-components/collision-box-geometry.js +1 -1
  803. package/dist/domain/system-components/collision-geometries.d.ts +1 -1
  804. package/dist/domain/system-components/collision-geometry.d.ts +5 -3
  805. package/dist/domain/system-components/collision-geometry.js +1 -1
  806. package/dist/domain/system-components/collision-point-geometry.d.ts +5 -3
  807. package/dist/domain/system-components/collision-point-geometry.js +1 -1
  808. package/dist/domain/system-components/common/index.d.ts +0 -4
  809. package/dist/domain/system-components/common/index.js +1 -1
  810. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  811. package/dist/domain/system-components/common/recipes.d.ts +21 -4
  812. package/dist/domain/system-components/common/recipes.js +1 -1
  813. package/dist/domain/system-components/constraint.d.ts +11 -24
  814. package/dist/domain/system-components/constraint.js +1 -1
  815. package/dist/domain/system-components/create-blueprint.d.ts +1 -1
  816. package/dist/domain/system-components/custom-scene-entity.d.ts +1 -1
  817. package/dist/domain/system-components/custom-scene-entity.js +1 -1
  818. package/dist/domain/system-components/detail.js +1 -1
  819. package/dist/domain/system-components/distance-dimension-select.d.ts +1 -1
  820. package/dist/domain/system-components/distance-dimension-select.js +1 -1
  821. package/dist/domain/system-components/distance-dimension.d.ts +1 -1
  822. package/dist/domain/system-components/distance-dimension.js +1 -1
  823. package/dist/domain/system-components/drag-handle.d.ts +2 -2
  824. package/dist/domain/system-components/drag-handle.js +1 -1
  825. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  826. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  827. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  828. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  829. package/dist/domain/system-components/generic-dimension.d.ts +1 -1
  830. package/dist/domain/system-components/generic-dimension.js +1 -1
  831. package/dist/domain/system-components/hidden-entity.js +1 -1
  832. package/dist/domain/system-components/hotspot-drag-handle.d.ts +2 -3
  833. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  834. package/dist/domain/system-components/index.d.ts +0 -68
  835. package/dist/domain/system-components/index.js +1 -1
  836. package/dist/domain/system-components/material-override-property-transition.js +1 -1
  837. package/dist/domain/system-components/material-override-transformer.js +1 -1
  838. package/dist/domain/system-components/material-swatch.js +1 -1
  839. package/dist/domain/system-components/navigation-page.js +1 -1
  840. package/dist/domain/system-components/navigation-panel-list.js +1 -1
  841. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  842. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  843. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  844. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  845. package/dist/domain/system-components/pivot-point.d.ts +1 -1
  846. package/dist/domain/system-components/pivot-point.js +1 -1
  847. package/dist/domain/system-components/price.js +1 -1
  848. package/dist/domain/system-components/projected-entities.d.ts +1 -1
  849. package/dist/domain/system-components/projected-entities.js +1 -1
  850. package/dist/domain/system-components/replace-entity-recipes.d.ts +1 -1
  851. package/dist/domain/system-components/replace-entity-recipes.js +1 -1
  852. package/dist/domain/system-components/scene-entity-ambient-light.js +1 -1
  853. package/dist/domain/system-components/scene-entity-box-object.js +1 -1
  854. package/dist/domain/system-components/scene-entity-directional-light.js +1 -1
  855. package/dist/domain/system-components/scene-entity-local-material-override.js +1 -1
  856. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  857. package/dist/domain/system-components/scene-entity-material-override.js +1 -1
  858. package/dist/domain/system-components/scene-entity-object-clip.js +1 -1
  859. package/dist/domain/system-components/scene-entity-object-decal.js +1 -1
  860. package/dist/domain/system-components/scene-entity-object-group.js +1 -1
  861. package/dist/domain/system-components/scene-entity-object-local-material-override.js +1 -1
  862. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  863. package/dist/domain/system-components/scene-entity-object-material-override.js +1 -1
  864. package/dist/domain/system-components/scene-entity-object-properties.js +1 -1
  865. package/dist/domain/system-components/scene-entity-object-remote-material-override.js +1 -1
  866. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  867. package/dist/domain/system-components/scene-entity-object-text-decal.js +1 -1
  868. package/dist/domain/system-components/scene-entity-object-transformer.js +1 -1
  869. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  870. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.js +1 -1
  871. package/dist/domain/system-components/scene-entity-object.js +1 -1
  872. package/dist/domain/system-components/scene-entity-point-light.js +1 -1
  873. package/dist/domain/system-components/scene-entity-properties.js +1 -1
  874. package/dist/domain/system-components/scene-entity-rect-area-light.js +1 -1
  875. package/dist/domain/system-components/scene-entity-remote-material-override.js +1 -1
  876. package/dist/domain/system-components/scene-entity-remote-object.js +1 -1
  877. package/dist/domain/system-components/scene-entity-spot-light.js +1 -1
  878. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  879. package/dist/domain/system-components/scene-entity-transimissive-material-override.js +1 -1
  880. package/dist/domain/system-components/sketching-line.d.ts +1 -1
  881. package/dist/domain/system-components/sketching-line.js +1 -1
  882. package/dist/domain/system-components/sketching-rectangle.d.ts +1 -1
  883. package/dist/domain/system-components/sketching-rectangle.js +1 -1
  884. package/dist/domain/system-components/sketching.d.ts +1 -1
  885. package/dist/domain/system-components/sketching.js +1 -1
  886. package/dist/domain/system-components/snap-axis.d.ts +1 -1
  887. package/dist/domain/system-components/snap-axis.js +1 -1
  888. package/dist/domain/system-components/snap-edge.d.ts +1 -1
  889. package/dist/domain/system-components/snap-edge.js +1 -1
  890. package/dist/domain/system-components/snap-plane.d.ts +1 -1
  891. package/dist/domain/system-components/snap-plane.js +1 -1
  892. package/dist/domain/system-components/snap-point.d.ts +1 -1
  893. package/dist/domain/system-components/snap-point.js +1 -1
  894. package/dist/domain/system-components/static-orthographic-camera-component.d.ts +1 -1
  895. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  896. package/dist/domain/system-components/static-perspective-camera-component.d.ts +1 -1
  897. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  898. package/dist/domain/utils/eval-cache.d.ts +2 -3
  899. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  900. package/dist/domain/utils/memo-eval.d.ts +2 -4
  901. package/dist/editor/domain-editors/use-implementation-files.d.ts +8 -8
  902. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  903. package/dist/editor/mocks/EditorMockContext.js +1 -1
  904. package/dist/globals/index.d.ts +2 -0
  905. package/dist/i18n/locales/cs/messages.js +1 -1
  906. package/dist/i18n/locales/da/messages.js +1 -1
  907. package/dist/i18n/locales/de/messages.js +1 -1
  908. package/dist/i18n/locales/de-AT/messages.js +1 -1
  909. package/dist/i18n/locales/en/messages.js +1 -1
  910. package/dist/i18n/locales/en-AU/messages.js +1 -1
  911. package/dist/i18n/locales/en-GB/messages.js +1 -1
  912. package/dist/i18n/locales/es/messages.js +1 -1
  913. package/dist/i18n/locales/fr/messages.js +1 -1
  914. package/dist/i18n/locales/hu/messages.js +1 -1
  915. package/dist/i18n/locales/it/messages.js +1 -1
  916. package/dist/i18n/locales/nl/messages.js +1 -1
  917. package/dist/i18n/locales/pl/messages.js +1 -1
  918. package/dist/i18n/locales/pt/messages.js +1 -1
  919. package/dist/i18n/locales/ro/messages.js +1 -1
  920. package/dist/i18n/locales/sk/messages.js +1 -1
  921. package/dist/i18n/locales/tr/messages.js +1 -1
  922. package/dist/legacy/domain-cli/gen/configurator-builder.js +30 -16
  923. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  924. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  925. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  926. package/dist/legacy/domain-cli/gen/invariants.js +7 -6
  927. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  928. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  929. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  930. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +81 -68
  931. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  932. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  933. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  934. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +7 -0
  935. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  936. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.d.ts +1 -1
  937. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
  938. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +16 -15
  939. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +16 -15
  940. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +23 -22
  941. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +16 -15
  942. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.d.ts +7 -2
  943. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.js +8 -12
  944. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.d.ts +1 -1
  945. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.js +1 -1
  946. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/webhook-builders.js +7 -7
  947. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  948. package/dist/phoenix/application-spec/project-files.js +1 -1
  949. package/dist/phoenix/cli.js +1 -1
  950. package/dist/phoenix/commands/check.js +1 -1
  951. package/dist/phoenix/commands/deploy.js +1 -1
  952. package/dist/phoenix/commands/deps/deps.d.ts +52 -0
  953. package/dist/phoenix/commands/deps/deps.js +3 -0
  954. package/dist/phoenix/commands/deps/index.d.ts +1 -0
  955. package/dist/phoenix/commands/deps/index.js +1 -0
  956. package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
  957. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
  958. package/dist/phoenix/commands/dev.js +5 -5
  959. package/dist/phoenix/commands/fix.js +1 -1
  960. package/dist/phoenix/commands/index.d.ts +1 -0
  961. package/dist/phoenix/commands/index.js +1 -1
  962. package/dist/phoenix/commands/init.d.ts +4 -4
  963. package/dist/phoenix/commands/init.js +1 -1
  964. package/dist/phoenix/commands/prettier.js +1 -1
  965. package/dist/phoenix/scripts/build-admin.js +1 -1
  966. package/dist/phoenix/services/application-spec-project-watcher.d.ts +2 -0
  967. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  968. package/dist/phoenix/services/source-archive.d.ts +1 -0
  969. package/dist/phoenix/services/source-archive.js +1 -1
  970. package/dist/phoenix/services/swc.js +1 -1
  971. package/dist/phoenix/utils/git/index.d.ts +1 -0
  972. package/dist/phoenix/utils/git/index.js +1 -0
  973. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  974. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  975. package/dist/phoenix/utils/index.d.ts +2 -0
  976. package/dist/phoenix/utils/index.js +1 -1
  977. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +2 -0
  978. package/dist/react-sdk/application-runtime/hooks/use-domain-application-props.d.ts +5 -2
  979. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.d.ts +1 -1
  980. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  981. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  982. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +53 -36
  983. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  984. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +30 -0
  985. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  986. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +9 -9
  987. package/dist/react-sdk/domain-context/index.d.ts +2 -1
  988. package/dist/react-sdk/domain-context/index.js +1 -1
  989. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +11 -0
  990. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  991. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  992. package/dist/ui-sdk/theme/types.d.ts +1 -1
  993. package/dist/webhook/builders/common.d.ts +5 -0
  994. package/dist/webhook/builders/webhook-builder.js +1 -1
  995. package/package.json +33 -29
  996. package/schema/domain-spec.json +1115 -209
  997. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  998. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  999. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  1000. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -90
  1001. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  1002. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  1003. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  1004. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  1005. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  1006. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  1007. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  1008. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  1009. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  1010. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  1011. package/dist/application-spec/generate-application/code/templates/webhook-implementation.d.ts +0 -1
  1012. package/dist/application-spec/generate-application/code/templates/webhook-implementation.js +0 -7
  1013. package/dist/domain/actions/action-factory.d.ts +0 -10
  1014. package/dist/domain/actions/prepare-action-implementations.js +0 -5
  1015. package/dist/domain/application/element-registration.js +0 -1
  1016. package/dist/domain/application/handler-registration.js +0 -1
  1017. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -13
  1018. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  1019. package/dist/domain/application/resource-builder.d.ts +0 -13
  1020. package/dist/domain/application/resource-builder.js +0 -1
  1021. package/dist/domain/components/debug-state-component.js +0 -1
  1022. package/dist/domain/components/domain-component-optic.d.ts +0 -76
  1023. package/dist/domain/components/domain-component-optic.js +0 -16
  1024. package/dist/domain/components/drag-state-component.js +0 -1
  1025. package/dist/domain/components/export-state-component.js +0 -1
  1026. package/dist/domain/components/fullscreen-state-component.js +0 -1
  1027. package/dist/domain/components/group-components-by-entity-id-and-name.js +0 -1
  1028. package/dist/domain/components/hover-state-component.js +0 -1
  1029. package/dist/domain/components/index.d.ts +0 -2
  1030. package/dist/domain/components/index.js +0 -1
  1031. package/dist/domain/components/navigation-state-component.js +0 -1
  1032. package/dist/domain/components/selection-state-component.js +0 -1
  1033. package/dist/domain/components/system-component-builder.js +0 -1
  1034. package/dist/domain/components/system-virtual-entity.js +0 -1
  1035. package/dist/domain/components/tool-state-component.js +0 -1
  1036. package/dist/domain/components/view-state-component.js +0 -1
  1037. package/dist/domain/components/viewport-state-component.js +0 -1
  1038. package/dist/domain/core/expression.d.ts +0 -50
  1039. package/dist/domain/core/json-schema.js +0 -1
  1040. package/dist/domain/core/migrations.js +0 -1
  1041. package/dist/domain/core/reflection.js +0 -1
  1042. package/dist/domain/domain-context/recipe-system/recipes.d.ts +0 -57
  1043. package/dist/domain/domain-context/recipe-system/recipes.js +0 -1
  1044. package/dist/domain/expressions/constant-expressions.d.ts +0 -9
  1045. package/dist/domain/expressions/constant-expressions.js +0 -1
  1046. package/dist/domain/expressions/custom-expression.d.ts +0 -13
  1047. package/dist/domain/expressions/custom-expression.js +0 -1
  1048. package/dist/domain/expressions/index.d.ts +0 -1
  1049. package/dist/domain/expressions/index.js +0 -1
  1050. package/dist/domain/invariants/custom-invariants.d.ts +0 -22
  1051. package/dist/domain/invariants/custom-invariants.js +0 -1
  1052. package/dist/domain/invariants/invariants.d.ts +0 -68
  1053. package/dist/domain/invariants/invariants.js +0 -1
  1054. package/dist/domain/invariants/violation-component.js +0 -1
  1055. package/dist/domain/invariants/violation.js +0 -1
  1056. package/dist/domain/relations/all-of-type-relation.d.ts +0 -33
  1057. package/dist/domain/relations/all-of-type-relation.js +0 -1
  1058. package/dist/domain/relations/component-factories.js +0 -1
  1059. package/dist/domain/relations/composed-of.js +0 -1
  1060. package/dist/domain/relations/direct-relation.d.ts +0 -29
  1061. package/dist/domain/relations/indirect-relation.d.ts +0 -81
  1062. package/dist/domain/relations/indirect-relation.js +0 -1
  1063. package/dist/domain/relations/reference-component.js +0 -1
  1064. package/dist/domain/relations/relation-factory.d.ts +0 -19
  1065. package/dist/domain/relations/relation-factory.js +0 -1
  1066. package/dist/domain/relations/relation-implementation.d.ts +0 -8
  1067. package/dist/domain/system-components/angle-indicator.js +0 -1
  1068. package/dist/domain/system-components/attribute-switch.js +0 -1
  1069. package/dist/domain/system-components/autorotate-camera-component.js +0 -1
  1070. package/dist/domain/system-components/basic-sidebar-footer.js +0 -1
  1071. package/dist/domain/system-components/camera-based-hidden-entity-object.js +0 -1
  1072. package/dist/domain/system-components/camera-based-hidden-entity.js +0 -1
  1073. package/dist/domain/system-components/canvas-config.js +0 -1
  1074. package/dist/domain/system-components/canvas-custom-environment.js +0 -1
  1075. package/dist/domain/system-components/canvas-padding.js +0 -1
  1076. package/dist/domain/system-components/canvas-preset-environment.js +0 -1
  1077. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +0 -1
  1078. package/dist/domain/system-components/client-side-image.js +0 -1
  1079. package/dist/domain/system-components/color-value.js +0 -1
  1080. package/dist/domain/system-components/common/angle-indicator-schema.js +0 -1
  1081. package/dist/domain/system-components/common/dimension-indicator-schema.js +0 -1
  1082. package/dist/domain/system-components/custom-price-footer.js +0 -1
  1083. package/dist/domain/system-components/dimension-indicator.js +0 -1
  1084. package/dist/domain/system-components/editable-angle-indicator.js +0 -1
  1085. package/dist/domain/system-components/editable-distance-dimension-indicator.js +0 -1
  1086. package/dist/domain/system-components/editable-offset-indicator.js +0 -1
  1087. package/dist/domain/system-components/editable-size-indicator.js +0 -1
  1088. package/dist/domain/system-components/entity-header.js +0 -1
  1089. package/dist/domain/system-components/exit-tool-mode-fab.js +0 -1
  1090. package/dist/domain/system-components/finalize-action.js +0 -1
  1091. package/dist/domain/system-components/finalize-component.js +0 -1
  1092. package/dist/domain/system-components/fit-selection-orthographic-camera-component.js +0 -1
  1093. package/dist/domain/system-components/fit-selection-perspective-camera-component.js +0 -1
  1094. package/dist/domain/system-components/fixed-header.js +0 -1
  1095. package/dist/domain/system-components/floating-header.js +0 -1
  1096. package/dist/domain/system-components/hidden-header.js +0 -1
  1097. package/dist/domain/system-components/hidden-sidebar-footer.js +0 -1
  1098. package/dist/domain/system-components/horizontal-tabs.js +0 -1
  1099. package/dist/domain/system-components/list-selector-dimension-indicator.js +0 -1
  1100. package/dist/domain/system-components/multilingual-text-value.js +0 -1
  1101. package/dist/domain/system-components/navigation-steps.js +0 -1
  1102. package/dist/domain/system-components/offset-anchors.js +0 -1
  1103. package/dist/domain/system-components/offset-indicator.js +0 -1
  1104. package/dist/domain/system-components/offset.js +0 -1
  1105. package/dist/domain/system-components/other-action.js +0 -1
  1106. package/dist/domain/system-components/property-page.js +0 -1
  1107. package/dist/domain/system-components/read-sidebar-footer.js +0 -1
  1108. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +0 -1
  1109. package/dist/domain/system-components/rotatable.js +0 -1
  1110. package/dist/domain/system-components/rotation-handle.js +0 -1
  1111. package/dist/domain/system-components/save-template-thumbnail.js +0 -1
  1112. package/dist/domain/system-components/scene-entity-add-fab.js +0 -1
  1113. package/dist/domain/system-components/scene-entity-animation.js +0 -1
  1114. package/dist/domain/system-components/scene-entity-control.js +0 -1
  1115. package/dist/domain/system-components/scene-entity-delete-fab.js +0 -1
  1116. package/dist/domain/system-components/scene-entity-floor-object.js +0 -1
  1117. package/dist/domain/system-components/scene-entity-html-hotspot.js +0 -1
  1118. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +0 -1
  1119. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +0 -1
  1120. package/dist/domain/system-components/scene-entity-select-hotspot.js +0 -1
  1121. package/dist/domain/system-components/scene-entity-wall-object.js +0 -1
  1122. package/dist/domain/system-components/selectable-component.js +0 -1
  1123. package/dist/domain/system-components/sidebar-tabs.js +0 -1
  1124. package/dist/domain/system-components/simple-summary.js +0 -1
  1125. package/dist/domain/system-components/size.js +0 -1
  1126. package/dist/domain/system-components/sketching-draw.js +0 -1
  1127. package/dist/domain/system-components/sketching-edit.js +0 -1
  1128. package/dist/domain/system-components/summary-component.js +0 -1
  1129. package/dist/domain/system-components/text-value.js +0 -1
  1130. package/dist/domain/system-components/tool-controls.js +0 -1
  1131. package/dist/domain/system-components/tool-menu-fab.js +0 -1
  1132. package/dist/domain/system-components/universal-sidebar-footer.js +0 -1
  1133. package/dist/domain/system-components/view-controls.js +0 -1
  1134. /package/dist/{domain/components/component-reader-types.js → application-spec/core/expressions/relation-expression-params.js} +0 -0
  1135. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  1136. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  1137. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
  1138. /package/dist/domain/{actions → core/action}/action-factory.js +0 -0
  1139. /package/dist/domain/core/{action.js → action/action.js} +0 -0
  1140. /package/dist/domain/core/{enhanced-json-schema.js → component/component-reader-types.js} +0 -0
  1141. /package/dist/domain/{components → core/component}/legacy-filter.js +0 -0
  1142. /package/dist/domain/{components → core/component}/system-component-filter.js +0 -0
  1143. /package/dist/domain/{components → core/component}/system-virtual-entity.d.ts +0 -0
  1144. /package/dist/domain/{components → core/component}/updates.js +0 -0
  1145. /package/dist/domain/core/{expression.js → data-schema/data-cell-value.js} +0 -0
  1146. /package/dist/domain/core/{schema-validator.js → data-schema/data-schema-array-field.js} +0 -0
  1147. /package/dist/domain/{relations/reference-field.js → core/data-schema/data-schema-field-object.js} +0 -0
  1148. /package/dist/domain/{relations/relation-implementation.js → core/data-schema/data-schema-field.js} +0 -0
  1149. /package/dist/domain/{invariants → core/invariant}/builtin-invariant.js +0 -0
  1150. /package/dist/domain/{invariants → core/invariant}/violation-component.d.ts +0 -0
  1151. /package/dist/domain/core/{alias.d.ts → model/alias.d.ts} +0 -0
  1152. /package/dist/domain/core/{alias.js → model/alias.js} +0 -0
  1153. /package/dist/domain/core/{common-definitions.d.ts → model/common-definitions.d.ts} +0 -0
  1154. /package/dist/domain/core/{common-definitions.js → model/common-definitions.js} +0 -0
  1155. /package/dist/domain/core/{component.js → model/component.js} +0 -0
  1156. /package/dist/domain/core/{model.js → model/model.js} +0 -0
  1157. /package/dist/domain/core/{preset.d.ts → model/preset.d.ts} +0 -0
  1158. /package/dist/domain/core/{preset.js → model/preset.js} +0 -0
  1159. /package/dist/domain/{relations → core/relation}/direct-relation.js +0 -0
  1160. /package/dist/domain/core/{schema-validator-ajv.d.ts → schema/create-ajv-schema-validator.d.ts} +0 -0
  1161. /package/dist/domain/core/{schema-validator-ajv.js → schema/create-ajv-schema-validator.js} +0 -0
  1162. /package/dist/domain/core/{schema-validator-csp.d.ts → schema/create-csp-schema-validator.d.ts} +0 -0
  1163. /package/dist/domain/core/{schema-validator-csp.js → schema/create-csp-schema-validator.js} +0 -0
  1164. /package/dist/domain/core/{enhanced-json-schema.d.ts → schema/enhanced-json-schema.d.ts} +0 -0
  1165. /package/dist/domain/core/{json-schema.d.ts → schema/extended-schema-validator.d.ts} +0 -0
  1166. /package/dist/domain/core/{schema-validator.d.ts → schema/schema-validator.d.ts} +0 -0
  1167. /package/dist/domain/core/{state.js → state/state.js} +0 -0
  1168. /package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.js +0 -0
  1169. /package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.js +0 -0
  1170. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.d.ts +0 -0
  1171. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.d.ts +0 -0
  1172. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.d.ts +0 -0
  1173. /package/dist/domain/{system-components → extensions}/color-value.d.ts +0 -0
  1174. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.d.ts +0 -0
  1175. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.js +0 -0
  1176. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.d.ts +0 -0
  1177. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.js +0 -0
  1178. /package/dist/domain/{system-components → extensions}/custom-price-footer.d.ts +0 -0
  1179. /package/dist/domain/{system-components → extensions}/finalize-component.d.ts +0 -0
  1180. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.d.ts +0 -0
  1181. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.d.ts +0 -0
  1182. /package/dist/domain/{system-components → extensions}/multilingual-text-value.d.ts +0 -0
  1183. /package/dist/domain/{system-components → extensions}/rotatable.d.ts +0 -0
  1184. /package/dist/domain/{system-components → extensions}/scene-entity-animation.d.ts +0 -0
  1185. /package/dist/domain/{system-components → extensions}/scene-entity-control.d.ts +0 -0
  1186. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.d.ts +0 -0
  1187. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.d.ts +0 -0
  1188. /package/dist/domain/{system-components → extensions}/selectable-component.d.ts +0 -0
  1189. /package/dist/domain/{system-components → extensions}/simple-summary.d.ts +0 -0
  1190. /package/dist/domain/{system-components → extensions}/summary-component.d.ts +0 -0
  1191. /package/dist/domain/{system-components → extensions}/text-value.d.ts +0 -0
  1192. /package/dist/domain/{system-components → extensions}/tool-controls.d.ts +0 -0
  1193. /package/dist/domain/{system-components → extensions}/view-controls.d.ts +0 -0
@@ -1 +1 @@
1
- import{Visitor as e}from"@swc/core/Visitor.js";export const getModuleParseOptions=()=>({syntax:"typescript",tsx:!0,target:"es2022"});let t=e=>{if("Identifier"===e.type)return e.value;if("ParenthesisExpression"===e.type)return t(e.expression);if("MemberExpression"!==e.type||"Identifier"!==e.property.type)return;let r=t(e.object);return void 0===r?void 0:`${r}.${e.property.value}`},r=e=>e.length>0&&e.every(e=>"isTypeOnly"in e&&!0===e.isTypeOnly),i=class ProjectSourceVisitor extends e{imports=[];calledMemberPaths=new Set;visitTsType(e){return e}visitImportDeclaration(e){return this.imports.push({specifier:e.source.value,typeOnly:e.typeOnly||r(e.specifiers)}),e}visitExportNamedDeclaration(e){return null!=e.source&&this.imports.push({specifier:e.source.value,typeOnly:e.typeOnly||r(e.specifiers)}),super.visitExportNamedDeclaration(e)}visitExportAllDeclaration(e){return this.imports.push({specifier:e.source.value,typeOnly:"typeOnly"in e&&!0===e.typeOnly}),e}visitCallExpression(e){var r;let i=(r=e.arguments[0]?.expression,r?.type==="StringLiteral"?r.value:r?.type==="TemplateLiteral"&&0===r.expressions.length?r.quasis[0]?.cooked??r.quasis[0]?.raw:void 0);if("Import"===e.callee.type&&void 0!==i)this.imports.push({specifier:i,typeOnly:!1});else if("Super"!==e.callee.type&&"Import"!==e.callee.type){let r=t(e.callee);void 0!==r&&this.calledMemberPaths.add(r),"require"===r&&void 0!==i&&this.imports.push({specifier:i,typeOnly:!1})}return super.visitCallExpression(e)}};export const analyzeParsedModule=e=>{let t=new i;t.visitModule(e);let r=e.body[0];return{imports:t.imports,calledMemberPaths:[...t.calledMemberPaths].sort(),hasUseWebhookDirective:r?.type==="ExpressionStatement"&&"StringLiteral"===r.expression.type&&"use webhook"===r.expression.value}};export const WEBHOOK_HANDLER_REGISTRATIONS=["createMapPublishedRevisionDataHandler","createMapPublishedChunkedDataHandler","createDataRowValidatorHandler","createSheetValidatorHandler"];export const findWebhookHandlerRegistration=e=>WEBHOOK_HANDLER_REGISTRATIONS.find(t=>e.calledMemberPaths.includes(`phx.domain.admin.${t}`));
1
+ import{Visitor as e}from"@swc/core/Visitor.js";export const getModuleParseOptions=()=>({syntax:"typescript",tsx:!0,target:"es2022"});let t=e=>{if("Identifier"===e.type)return e.value;if("ParenthesisExpression"===e.type)return t(e.expression);if("MemberExpression"!==e.type||"Identifier"!==e.property.type)return;let r=t(e.object);return void 0===r?void 0:`${r}.${e.property.value}`},r=e=>e.length>0&&e.every(e=>"isTypeOnly"in e&&!0===e.isTypeOnly),i=class ProjectSourceVisitor extends e{imports=[];calledMemberPaths=new Set;visitTsType(e){return e}visitImportDeclaration(e){return this.imports.push({specifier:e.source.value,typeOnly:e.typeOnly||r(e.specifiers)}),e}visitExportNamedDeclaration(e){return null!=e.source&&this.imports.push({specifier:e.source.value,typeOnly:e.typeOnly||r(e.specifiers)}),super.visitExportNamedDeclaration(e)}visitExportAllDeclaration(e){return this.imports.push({specifier:e.source.value,typeOnly:"typeOnly"in e&&!0===e.typeOnly}),e}visitCallExpression(e){var r;let i=(r=e.arguments[0]?.expression,r?.type==="StringLiteral"?r.value:r?.type==="TemplateLiteral"&&0===r.expressions.length?r.quasis[0]?.cooked??r.quasis[0]?.raw:void 0);if("Import"===e.callee.type&&void 0!==i)this.imports.push({specifier:i,typeOnly:!1});else if("Super"!==e.callee.type&&"Import"!==e.callee.type){let r=t(e.callee);void 0!==r&&this.calledMemberPaths.add(r),"require"===r&&void 0!==i&&this.imports.push({specifier:i,typeOnly:!1})}return super.visitCallExpression(e)}};export const analyzeParsedModule=e=>{let t=new i;t.visitModule(e);let r=e.body[0];return{imports:t.imports,calledMemberPaths:[...t.calledMemberPaths].sort(),hasUseWebhookDirective:r?.type==="ExpressionStatement"&&"StringLiteral"===r.expression.type&&"use webhook"===r.expression.value}};export const WEBHOOK_HANDLER_REGISTRATIONS=["phx.domain.createAssistantSetupHandler","phx.domain.admin.createMapPublishedRevisionDataHandler","phx.domain.admin.createMapPublishedChunkedDataHandler","phx.domain.admin.createDataRowValidatorHandler","phx.domain.admin.createSheetValidatorHandler"];export const findWebhookHandlerRegistration=e=>WEBHOOK_HANDLER_REGISTRATIONS.find(t=>e.calledMemberPaths.includes(t));
@@ -1,13 +1,26 @@
1
1
  import { z } from 'zod';
2
2
  import { type AssistantAiSettings } from '@salsita-ai/contracts/assistant';
3
+ import { ASSISTANT_HINTS } from '#package/domain';
3
4
  /**
4
5
  * One whitelisted field in the assistant manifest. `description` overrides the JSON Schema
5
- * description of the shape property; `as` exposes the field under a different GraphQL name. An empty
6
+ * description of the shape property; `as` exposes the field under a different GraphQL name; `lenses`
7
+ * names the lenses declared under `assistant.lenses` whose selection includes the field. An empty
6
8
  * entry (`length:` in YAML) whitelists the field with its defaults.
7
9
  */
8
10
  export interface RawAssistantField {
9
11
  readonly description?: string;
10
12
  readonly as?: string;
13
+ readonly lenses?: readonly string[];
14
+ }
15
+ /**
16
+ * One lens of the assistant `lenses` map, keyed by the name the agent spreads it by: a named
17
+ * selection made of the `entities` entries tagged with that name. `description` tells the agent when
18
+ * to use the lens; `maxDepth` is how many levels of tagged relations carry the same selection before
19
+ * they reduce to `id`, 1 by default.
20
+ */
21
+ export interface RawAssistantLens {
22
+ readonly description: string;
23
+ readonly maxDepth?: number;
11
24
  }
12
25
  /**
13
26
  * One entry of the assistant `deletable` map. It takes no options yet; an empty entry (`Cabinet:` in
@@ -23,7 +36,6 @@ export type AssistantOptionComponentType = (typeof ASSISTANT_OPTION_COMPONENT_TY
23
36
  * does not change during a session. A hint only adds a sentence to a generated description; nothing
24
37
  * verifies it.
25
38
  */
26
- export declare const ASSISTANT_HINTS: readonly ['sameForAllInstances', 'constantDuringSession'];
27
39
  export type AssistantHint = (typeof ASSISTANT_HINTS)[number];
28
40
  /**
29
41
  * The component that holds the choices of a writable field: the instance `instanceName` of the
@@ -89,7 +101,7 @@ export interface RawAssistantAction {
89
101
  * with `addChild`. `replaceRecipes` names, per entity type or alias, the `replaceEntityRecipes`
90
102
  * groups whose recipes the agent may list and replace the entity by with `replaceEntity`. `actions`
91
103
  * names the declared actions the agent may run as custom mutations. Nothing is exposed without an
92
- * entry.
104
+ * entry. `lenses` declares the named selections that `entities` entries are tagged with.
93
105
  *
94
106
  * `ai` and `instructions` are for the server only: the provider, model tier and reasoning level the
95
107
  * deployment's assistant runs with, and the integrator's own guidance for it, appended to the system
@@ -102,6 +114,7 @@ export interface RawAssistant {
102
114
  readonly childRecipes?: Readonly<Record<string, RawAssistantRecipes>>;
103
115
  readonly replaceRecipes?: Readonly<Record<string, RawAssistantRecipes>>;
104
116
  readonly actions?: Readonly<Record<string, RawAssistantAction | null>>;
117
+ readonly lenses?: Readonly<Record<string, RawAssistantLens>>;
105
118
  readonly instructions?: string;
106
119
  readonly ai: AssistantAiSettings;
107
120
  }
@@ -1 +1 @@
1
- import{z as t}from"zod";import{ASSISTANT_AI_PROVIDERS as e,ASSISTANT_MODEL_TIERS as o,ASSISTANT_REASONING_LEVELS as i}from"@salsita-ai/contracts/assistant";export const ASSISTANT_OPTION_COMPONENT_TYPES=["materialSwatch","attributeSelection","distanceDimensionSelect"];export const ASSISTANT_HINTS=["sameForAllInstances","constantDuringSession"];let n=t.string().regex(/^(?!__)[_A-Za-z][_0-9A-Za-z]*$/,'must be a GraphQL name: letters, digits and "_", not starting with a digit or "__"'),r=e=>t.enum(e,{errorMap:()=>({message:`must be one of: ${e.join(", ")}`})}),s=t.object({description:t.string().optional(),as:n.optional()}).strict(),a=t.array(r(ASSISTANT_HINTS)),c=t.object({options:t.object({componentType:r(ASSISTANT_OPTION_COMPONENT_TYPES),instanceName:t.string().min(1,"must not be empty; name the component instance that holds the choices"),as:n.optional(),validate:t.boolean().optional(),allowDryRuns:t.boolean().optional(),hints:a.optional()}).strict().optional()}).strict(),l=t.object({as:t.string().trim().min(1,"must not be empty; remove the key to use the instance name").optional(),description:t.string().optional(),allowDryRuns:t.boolean().optional()}).strict(),p=e=>t.object({hints:a.optional(),groups:t.record(t.string(),l.nullable(),{required_error:`is required: the recipe groups of the type go under "groups", keyed by the instance name of a "${e}" component`})}).strict(),d=t.object({description:t.string().optional(),as:n.optional()}).strict(),m=`is required: declare provider (${e.join(", ")}), model (${o.join(", ")}) and reasoning (${i.join(", ")})`,g=t.object({provider:r(e),model:r(o),reasoning:r(i)},{required_error:m,invalid_type_error:m}).strict();export const rawAssistantSchema=t.object({entities:t.record(t.string(),t.record(t.string(),s.nullable())).optional(),deletable:t.record(t.string(),t.object({}).strict().nullable()).optional(),writable:t.record(t.string(),t.record(t.string(),c.nullable())).optional(),childRecipes:t.record(t.string(),p("childEntityRecipes")).optional(),replaceRecipes:t.record(t.string(),p("replaceEntityRecipes")).optional(),actions:t.record(t.string(),d.nullable()).optional(),instructions:t.string().trim().min(1,"must not be empty; remove the key when there are no instructions").optional(),ai:g}).strict();
1
+ import{z as e}from"zod";import{ASSISTANT_AI_PROVIDERS as t,ASSISTANT_MODEL_TIERS as o,ASSISTANT_REASONING_LEVELS as i}from"@salsita-ai/contracts/assistant";import{ASSISTANT_HINTS as n}from"#package/domain";export const ASSISTANT_OPTION_COMPONENT_TYPES=["materialSwatch","attributeSelection","distanceDimensionSelect"];let r=e.string().regex(/^(?!__)[_A-Za-z][_0-9A-Za-z]*$/,'must be a GraphQL name: letters, digits and "_", not starting with a digit or "__"'),s=t=>e.enum(t,{errorMap:()=>({message:`must be one of: ${t.join(", ")}`})}),a=e.object({description:e.string().optional(),as:r.optional(),lenses:e.array(e.string()).optional()}).strict(),l="must be a whole number of at least 1; remove the key to nest tagged relations one level",c=e.object({description:e.string().trim().min(1,"must not be empty; say when the agent should use the lens"),maxDepth:e.number({invalid_type_error:l}).int(l).min(1,l).optional()}).strict(),p=r.refine(e=>!e.includes("__"),'must not contain "__", which names the generated copies of a lens'),m=e.array(s(n)),d=e.object({options:e.object({componentType:s(ASSISTANT_OPTION_COMPONENT_TYPES),instanceName:e.string().min(1,"must not be empty; name the component instance that holds the choices"),as:r.optional(),validate:e.boolean().optional(),allowDryRuns:e.boolean().optional(),hints:m.optional()}).strict().optional()}).strict(),u=e.object({as:e.string().trim().min(1,"must not be empty; remove the key to use the instance name").optional(),description:e.string().optional(),allowDryRuns:e.boolean().optional()}).strict(),h=t=>e.object({hints:m.optional(),groups:e.record(e.string(),u.nullable(),{required_error:`is required: the recipe groups of the type go under "groups", keyed by the instance name of a "${t}" component`})}).strict(),b=e.object({description:e.string().optional(),as:r.optional()}).strict(),g=`is required: declare provider (${t.join(", ")}), model (${o.join(", ")}) and reasoning (${i.join(", ")})`,_="must be a positive whole number of input tokens; remove the key to use the default of the server",y=e.object({provider:s(t),model:s(o),reasoning:s(i),maxThreadSize:e.number({invalid_type_error:_}).int(_).positive(_).optional()},{required_error:g,invalid_type_error:g}).strict();export const rawAssistantSchema=e.object({entities:e.record(e.string(),e.record(e.string(),a.nullable())).optional(),deletable:e.record(e.string(),e.object({}).strict().nullable()).optional(),writable:e.record(e.string(),e.record(e.string(),d.nullable())).optional(),childRecipes:e.record(e.string(),h("childEntityRecipes")).optional(),replaceRecipes:e.record(e.string(),h("replaceEntityRecipes")).optional(),actions:e.record(e.string(),b.nullable()).optional(),lenses:e.record(p,c).optional(),instructions:e.string().trim().min(1,"must not be empty; remove the key when there are no instructions").optional(),ai:y}).strict();
@@ -1 +1 @@
1
- import{z as o}from"zod";import{Branded as a}from"@salsita-ai/common/utils";import{enhancedJsonObjectSchema as t,validateNoLegacyCodeRef as e}from"../../core/index.js";import{DiagnosticCode as n,diagnosticMessages as i}from"../../errors/index.js";import{rawAclSchema as r}from"./raw-acl.js";import{rawActionsSchema as s}from"./raw-actions.js";import{rawAdminPagesSchema as l}from"./raw-admin-pages.js";import{rawAssistantSchema as p}from"./raw-assistant.js";import{rawBudgetsSchema as m}from"./raw-budgets.js";import{rawChunksSchema as c}from"./raw-chunks.js";import{rawComponentsSchema as f}from"./raw-components.js";import{rawConstantsSchema as d}from"./raw-constants.js";import{rawDataSpecSchema as u}from"./raw-data.js";import{rawDefaultsSchema as j}from"./raw-defaults.js";import{rawEnvSchema as w}from"./raw-env.js";import{rawExpressionsSchema as b}from"./raw-expressions.js";import{rawInvariantsSchema as g}from"./raw-invariants.js";import{rawModelSchema as S}from"./raw-model.js";import{rawPresetsSchema as D}from"./raw-presets.js";import{rawRelationsSchema as h}from"./raw-relations.js";import{rawResourcesConfigSchema as v,rawResourcesSchema as O}from"./raw-resources.js";import{rawStateValuesSchema as E}from"./raw-states.js";import{rawTransformersSchema as R}from"./raw-transformers.js";export const DATA_SCHEMA_KEYS=["publishedData","sessionData","frontendData","backendData","finalizeData","prefetchedFinalizeData","finalizeResult","callbackData"];let k=o.object({$admin:o.boolean().optional(),model:S.optional(),components:f.optional(),presets:D.optional(),$data:u.optional(),expressions:b.optional(),actions:s.optional(),invariants:g.optional(),constants:d.optional(),relations:h.optional(),defaults:j.optional(),publishedData:t.optional(),sessionData:t.optional(),frontendData:t.optional(),backendData:t.optional(),finalizeData:t.optional(),prefetchedFinalizeData:t.optional(),finalizeResult:t.optional(),callbackData:t.optional(),navigationStates:E.optional(),viewStates:E.optional(),toolStates:E.optional(),exportStates:E.optional(),themePreset:o.string().optional(),themeOptions:o.record(o.unknown()).optional(),preview:o.enum(["always","never","auto","hide"]).optional(),alwaysExpand:o.boolean().optional(),availableLocales:o.array(o.string()).optional(),textLanguages:o.array(o.string()).optional(),transformers:R.optional(),project:o.string().regex(/^[a-z0-9-]{3,}$/,"must be a project slug (lowercase letters, digits and dashes, at least 3) or `default`").optional(),applicationVersion:o.string().optional(),workspace:o.boolean().optional(),webComponentTag:o.string().optional(),pageTitle:o.string().optional(),useAuthHook:o.boolean().optional(),useClerk:o.boolean().optional(),enableAdminRelease:o.boolean().optional(),jsonSchemaValidator:o.enum(["ajv","csp-compatible"]).optional(),gltfDecoder:o.enum(["js","wasm"]).optional(),appLoader:o.enum(["legacy","universal"]).optional(),collectFinalizeData:o.boolean().optional(),env:w.optional(),acl:r.optional(),resources:O.optional(),resourcesConfig:v.optional(),budgets:m.optional(),chunks:c.optional(),assistant:p.optional(),$adminPages:l.optional()}).strict();export const parseRawSpecFile=(o,t)=>{e(o.content,t);let r=k.safeParse(o.content);if(!r.success){for(let o of r.error.issues)t.error(n.SCHEMA_PARSE_ERROR,i.SCHEMA_PARSE_ERROR(o.path.join("."),o.message));return}let{constants:s,...l}=r.data,p=((o,a)=>{let t=Object.fromEntries(Object.entries(o.expressions??{}).map(([o,a])=>[o,{...a}]));if(void 0===o.constants)return Object.keys(t).length>0?t:void 0;for(let[e,r]of Object.entries(o.constants))for(let[o,s]of(t[e]||(t[e]={}),Object.entries(r))){if(void 0!==t[e][o]){a.at("constants",e,o).error(n.CONSTANTS_EXPRESSION_CONFLICT,i[n.CONSTANTS_EXPRESSION_CONFLICT](e,o));continue}t[e][o]={kind:"value",constant:!0,value:s,schema:{}}}return Object.keys(t).length>0?t:void 0})(r.data,t);return a({name:o.name,content:{...l,expressions:p}})};
1
+ import{z as o}from"zod";import{Branded as a}from"@salsita-ai/common/utils";import{enhancedJsonObjectSchema as t}from"../../core/index.js";import{validateNoLegacyCodeRef as e}from"../../enhanced-json/index.js";import{DiagnosticCode as n,diagnosticMessages as i}from"../../errors/index.js";import{rawAclSchema as r}from"./raw-acl.js";import{rawActionsSchema as s}from"./raw-actions.js";import{rawAdminPagesSchema as l}from"./raw-admin-pages.js";import{rawAssistantSchema as p}from"./raw-assistant.js";import{rawBudgetsSchema as m}from"./raw-budgets.js";import{rawChunksSchema as c}from"./raw-chunks.js";import{rawComponentsSchema as f}from"./raw-components.js";import{rawConstantsSchema as d}from"./raw-constants.js";import{rawDataSpecSchema as j}from"./raw-data.js";import{rawDefaultsSchema as u}from"./raw-defaults.js";import{rawEnvSchema as w}from"./raw-env.js";import{rawExpressionsSchema as b}from"./raw-expressions.js";import{rawInvariantsSchema as g}from"./raw-invariants.js";import{rawModelSchema as S}from"./raw-model.js";import{rawPresetsSchema as h}from"./raw-presets.js";import{rawRelationsSchema as D}from"./raw-relations.js";import{rawResourcesConfigSchema as v,rawResourcesSchema as O}from"./raw-resources.js";import{rawStateValuesSchema as E}from"./raw-states.js";import{rawTransformersSchema as R}from"./raw-transformers.js";export const DATA_SCHEMA_KEYS=["publishedData","sessionData","frontendData","backendData","finalizeData","prefetchedFinalizeData","finalizeResult","callbackData"];let k=o.object({$admin:o.boolean().optional(),model:S.optional(),components:f.optional(),presets:h.optional(),$data:j.optional(),expressions:b.optional(),actions:s.optional(),invariants:g.optional(),constants:d.optional(),relations:D.optional(),defaults:u.optional(),publishedData:t.optional(),sessionData:t.optional(),frontendData:t.optional(),backendData:t.optional(),finalizeData:t.optional(),prefetchedFinalizeData:t.optional(),finalizeResult:t.optional(),callbackData:t.optional(),navigationStates:E.optional(),viewStates:E.optional(),toolStates:E.optional(),exportStates:E.optional(),themePreset:o.string().optional(),themeOptions:o.record(o.unknown()).optional(),preview:o.enum(["always","never","auto","hide"]).optional(),alwaysExpand:o.boolean().optional(),availableLocales:o.array(o.string()).optional(),textLanguages:o.array(o.string()).optional(),transformers:R.optional(),project:o.string().regex(/^[a-z0-9-]{3,}$/,"must be a project slug (lowercase letters, digits and dashes, at least 3) or `default`").optional(),applicationVersion:o.string().optional(),workspace:o.boolean().optional(),webComponentTag:o.string().optional(),pageTitle:o.string().optional(),useAuthHook:o.boolean().optional(),useClerk:o.boolean().optional(),enableAdminRelease:o.boolean().optional(),jsonSchemaValidator:o.enum(["ajv","csp-compatible"]).optional(),gltfDecoder:o.enum(["js","wasm"]).optional(),appLoader:o.enum(["legacy","universal"]).optional(),collectFinalizeData:o.boolean().optional(),env:w.optional(),acl:r.optional(),resources:O.optional(),resourcesConfig:v.optional(),budgets:m.optional(),chunks:c.optional(),assistant:p.optional(),$adminPages:l.optional()}).strict();export const parseRawSpecFile=(o,t)=>{e(o.content,t);let r=k.safeParse(o.content);if(!r.success){for(let o of r.error.issues)t.error(n.SCHEMA_PARSE_ERROR,i.SCHEMA_PARSE_ERROR(o.path.join("."),o.message));return}let{constants:s,...l}=r.data,p=((o,a)=>{let t=Object.fromEntries(Object.entries(o.expressions??{}).map(([o,a])=>[o,{...a}]));if(void 0===o.constants)return Object.keys(t).length>0?t:void 0;for(let[e,r]of Object.entries(o.constants))for(let[o,s]of(t[e]||(t[e]={}),Object.entries(r))){if(void 0!==t[e][o]){a.at("constants",e,o).error(n.CONSTANTS_EXPRESSION_CONFLICT,i[n.CONSTANTS_EXPRESSION_CONFLICT](e,o));continue}t[e][o]={kind:"value",constant:!0,value:s,schema:{}}}return Object.keys(t).length>0?t:void 0})(r.data,t);return a({name:o.name,content:{...l,expressions:p}})};
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as t,diagnosticMessages as s}from"../../../../errors/index.js";import{Components as n,UserComponents as r}from"../../components/index.js";import{Expressions as o}from"../../expressions/index.js";import{Invariants as i}from"../../invariants/index.js";import{ConfigurationSchema as a,Defaults as m,ModelVersion as l,Presets as p}from"../../model/index.js";import{Relations as d}from"../../relations/index.js";import{ResolvedVersions as f}from"../resolved-versions.js";import{AdminPages as S}from"./admin-pages.js";import{AdminStates as v}from"./states.js";export const AdminSpec=(g,x)=>{let{rawModel:u,rawPresets:I,rawExpressions:N,rawInvariants:T,rawRelations:_,rawDefaults:c,migrationFiles:j,rawComponents:A,rawAdminPages:C,dataSpec:E,phxDefinitions:M,evalExpressionParser:h,label:L,requireMigrationFiles:y}=g;if(0===Object.keys(u).length)return void x.at(L).error(t.MISSING_MODEL,s.MISSING_MODEL(L));u.latest||x.at(L).error(t.MISSING_LATEST,s.MISSING_LATEST(L));let G=new Map;for(let[e,t]of Object.entries(u)){let s=l(e,t,M,x.at(L,e));s&&G.set(s.versionKey,s)}if(x.hasErrors)return;let O=f(G,j,x,{requireMigrationFiles:y});if(!O)return;let D=O.versionedModels.find(e=>e.isLatest)?.modelVersion;if(!D)return;let V=O.latestVersion,P=a(D,V),b=d(_,D,x),w=i({rawInvariants:T,rawExpressions:N,rawRelations:_,rawComponents:A},D,x),F=p(I,D,b,x),k=S(C,{latestModel:D,parsingContext:x.at(L,"$adminPages")},E);if(!k)return;let K=r(A,{allNames:D.allNames,resolvedShapes:D.resolvedShapes,parsingContext:x}),$=m(c,D,x.at(L,"defaults")),q=o({rawExpressions:N,inferredExpressions:[...b.expressions,...w.expressions,...K.expressions]},{latestModel:D,aliases:D.aliases,entityTypes:D.entityTypes,evalExpressionParser:h,parsingContext:x}),z=n({userComponents:K.components,generatedComponents:[...b.components,...k.components],invariantComponents:w.components},{aliases:D.aliases,parsingContext:x});if(void 0!==$&&void 0!==q&&void 0!==z)return e({latestModel:D,schemaVersion:V,resolvedVersions:O,components:z,configurationSchema:P,presets:F,expressions:q,invariants:w,defaults:$,states:v(((n,r,o)=>{if(0===r.length)return n;let i=1===n.navigationStates.length&&"Default"===n.navigationStates[0]?[]:n.navigationStates,a=i.filter(e=>r.includes(e));return a.length>0&&o.error(t.ADMIN_PAGES_NAV_STATE_CONFLICT,s.ADMIN_PAGES_NAV_STATE_CONFLICT(a)),e({...n,navigationStates:[...i,...r]})})(g.rawStates,k.navigationStates,x),x),adminPages:k})};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as t,diagnosticMessages as s}from"../../../../errors/index.js";import{Components as n,UserComponents as r}from"../../components/index.js";import{Expressions as o}from"../../expressions/index.js";import{Invariants as i}from"../../invariants/index.js";import{ConfigurationSchema as a,Defaults as m,ModelVersion as l,Presets as p}from"../../model/index.js";import{Relations as d}from"../../relations/index.js";import{ResolvedVersions as f}from"../resolved-versions.js";import{AdminPages as S}from"./admin-pages.js";import{AdminStates as v}from"./states.js";export const AdminSpec=(g,x)=>{let{rawModel:u,rawPresets:I,rawExpressions:N,rawInvariants:T,rawRelations:_,rawDefaults:c,migrationFiles:j,rawComponents:A,rawAdminPages:C,dataSpec:E,phxDefinitions:M,evalExpressionParser:h,label:L,requireMigrationFiles:y}=g;if(0===Object.keys(u).length)return void x.at(L).error(t.MISSING_MODEL,s.MISSING_MODEL(L));u.latest||x.at(L).error(t.MISSING_LATEST,s.MISSING_LATEST(L));let G=new Map;for(let[e,t]of Object.entries(u)){let s=l(e,t,M,x.at(L,e));s&&G.set(s.versionKey,s)}if(x.hasErrors)return;let O=f(G,j,x,{requireMigrationFiles:y});if(!O)return;let D=O.versionedModels.find(e=>e.isLatest)?.modelVersion;if(!D)return;let V=O.latestVersion,P=a(D,V),b=d(_,D,M,x),w=i({rawInvariants:T,rawExpressions:N,rawRelations:_,rawComponents:A},D,x),F=p(I,D,b,x),k=S(C,{latestModel:D,parsingContext:x.at(L,"$adminPages")},E);if(!k)return;let K=r(A,{allNames:D.allNames,resolvedShapes:D.resolvedShapes,parsingContext:x}),$=m(c,D,x.at(L,"defaults")),q=o({rawExpressions:N,inferredExpressions:[...b.expressions,...w.expressions,...K.expressions]},{latestModel:D,aliases:D.aliases,entityTypes:D.entityTypes,evalExpressionParser:h,parsingContext:x}),z=n({userComponents:K.components,generatedComponents:[...b.components,...k.components],invariantComponents:w.components},{aliases:D.aliases,parsingContext:x});if(void 0!==$&&void 0!==q&&void 0!==z)return e({latestModel:D,schemaVersion:V,resolvedVersions:O,components:z,configurationSchema:P,presets:F,expressions:q,invariants:w,defaults:$,states:v(((n,r,o)=>{if(0===r.length)return n;let i=1===n.navigationStates.length&&"Default"===n.navigationStates[0]?[]:n.navigationStates,a=i.filter(e=>r.includes(e));return a.length>0&&o.error(t.ADMIN_PAGES_NAV_STATE_CONFLICT,s.ADMIN_PAGES_NAV_STATE_CONFLICT(a)),e({...n,navigationStates:[...i,...r]})})(g.rawStates,k.navigationStates,x),x),adminPages:k})};
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as s,diagnosticMessages as t}from"../../../../errors/index.js";import{Components as o,UserComponents as r}from"../../components/index.js";import{Expressions as i}from"../../expressions/index.js";import{Invariants as n}from"../../invariants/index.js";import{ConfigurationSchema as a,DataSchemas as m,Defaults as p,ModelVersion as l,Presets as d}from"../../model/index.js";import{Relations as f}from"../../relations/index.js";import{Actions as x,AssistantServerSettings as S,AssistantSpec as v,Theme as c,Transformers as j,Ui as u}from"../../sections/index.js";import{ResolvedVersions as g}from"../resolved-versions.js";import{ConfiguratorStates as C}from"./states.js";export const ConfiguratorSpec=(I,M)=>{let{rawModel:h,rawPresets:y,rawExpressions:E,rawActions:N,rawInvariants:T,rawRelations:L,rawDefaults:G,dataSchemas:O,dataSpec:_,appMetadata:b,rawTheme:w,rawUi:A,rawTransformers:D,rawAssistant:V,migrationFiles:k,transformerFiles:K,rawComponents:q,phxDefinitions:z,evalExpressionParser:B,label:F}=I;if(0===Object.keys(h).length)return void M.at(F).error(s.MISSING_MODEL,t.MISSING_MODEL(F));h.latest||M.at(F).error(s.MISSING_LATEST,t.MISSING_LATEST(F));let H=new Map;for(let[e,s]of Object.entries(h)){let t=l(e,s,z,M.at(F,e));t&&H.set(t.versionKey,t)}if(M.hasErrors)return;let J=g(H,k,M);if(!J)return;let P=J.versionedModels.find(e=>e.isLatest)?.modelVersion;if(!P)return;let Q=J.latestVersion,R=a(P,Q),U=f(L,P,M),W=n({rawInvariants:T,rawExpressions:E,rawRelations:L,rawComponents:q},P,M),X=d(y,P,U,M),Y=r(q,{allNames:P.allNames,resolvedShapes:P.resolvedShapes,parsingContext:M}),Z=p(G,P,M.at(F,"defaults")),$=j(D,K,M),ee=i({rawExpressions:E,inferredExpressions:[...U.expressions,...W.expressions,...Y.expressions]},{latestModel:P,aliases:P.aliases,entityTypes:P.entityTypes,evalExpressionParser:B,parsingContext:M}),es=o({userComponents:Y.components,generatedComponents:U.components,invariantComponents:W.components},{aliases:P.aliases,parsingContext:M}),et=m({merged:O,dataSpec:_,appMetadata:b,phxDefinitions:z,parsingContext:M}),eo=C(I.rawStates,M.at("states")),er=x(N,{latestModel:P,phxDefinitions:z},M.at("actions"));if(void 0!==Z&&void 0!==ee&&void 0!==er&&void 0!==es&&void 0!==et)return e({latestModel:P,schemaVersion:Q,dataSchemas:et,resolvedVersions:J,components:es,configurationSchema:R,presets:X,expressions:ee,actions:er,invariants:W,defaults:Z,states:eo,theme:c(w),ui:u(A),transformers:$,assistant:v(V,{model:P,states:eo,phxDefinitions:z,expressions:ee,components:es,actions:er},M),assistantServerSettings:S(V)})};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as s,diagnosticMessages as t}from"../../../../errors/index.js";import{Components as o,UserComponents as r}from"../../components/index.js";import{Expressions as i}from"../../expressions/index.js";import{Invariants as n}from"../../invariants/index.js";import{ConfigurationSchema as a,DataSchemas as m,Defaults as p,ModelVersion as l,Presets as d}from"../../model/index.js";import{Relations as f}from"../../relations/index.js";import{Actions as x,AssistantServerSettings as S,AssistantSpec as v,Theme as c,Transformers as j,Ui as u}from"../../sections/index.js";import{ResolvedVersions as g}from"../resolved-versions.js";import{ConfiguratorStates as C}from"./states.js";export const ConfiguratorSpec=(I,M)=>{let{rawModel:h,rawPresets:y,rawExpressions:E,rawActions:N,rawInvariants:T,rawRelations:L,rawDefaults:G,dataSchemas:O,dataSpec:_,appMetadata:b,rawTheme:w,rawUi:A,rawTransformers:D,rawAssistant:V,migrationFiles:k,transformerFiles:K,rawComponents:q,phxDefinitions:z,evalExpressionParser:B,label:F}=I;if(0===Object.keys(h).length)return void M.at(F).error(s.MISSING_MODEL,t.MISSING_MODEL(F));h.latest||M.at(F).error(s.MISSING_LATEST,t.MISSING_LATEST(F));let H=new Map;for(let[e,s]of Object.entries(h)){let t=l(e,s,z,M.at(F,e));t&&H.set(t.versionKey,t)}if(M.hasErrors)return;let J=g(H,k,M);if(!J)return;let P=J.versionedModels.find(e=>e.isLatest)?.modelVersion;if(!P)return;let Q=J.latestVersion,R=a(P,Q),U=f(L,P,z,M),W=n({rawInvariants:T,rawExpressions:E,rawRelations:L,rawComponents:q},P,M),X=d(y,P,U,M),Y=r(q,{allNames:P.allNames,resolvedShapes:P.resolvedShapes,parsingContext:M}),Z=p(G,P,M.at(F,"defaults")),$=j(D,K,M),ee=i({rawExpressions:E,inferredExpressions:[...U.expressions,...W.expressions,...Y.expressions]},{latestModel:P,aliases:P.aliases,entityTypes:P.entityTypes,evalExpressionParser:B,parsingContext:M}),es=o({userComponents:Y.components,generatedComponents:U.components,invariantComponents:W.components},{aliases:P.aliases,parsingContext:M}),et=m({merged:O,dataSpec:_,appMetadata:b,phxDefinitions:z,parsingContext:M}),eo=C(I.rawStates,M.at("states")),er=x(N,{latestModel:P,phxDefinitions:z},M.at("actions"));if(void 0!==Z&&void 0!==ee&&void 0!==er&&void 0!==es&&void 0!==et)return e({latestModel:P,schemaVersion:Q,dataSchemas:et,resolvedVersions:J,components:es,configurationSchema:R,presets:X,expressions:ee,actions:er,invariants:W,defaults:Z,states:eo,theme:c(w),ui:u(A),transformers:$,assistant:v(V,{model:P,states:eo,phxDefinitions:z,expressions:ee,components:es,actions:er},M),assistantServerSettings:S(V)})};
@@ -1,4 +1,5 @@
1
1
  import type { Branded } from '@salsita-ai/common/utils';
2
+ import type { SdkCodeRef } from '../../../core/index.js';
2
3
  import type { MemoEvalPlan, MemoEvalPlanInput } from '../expressions/memo-eval-plan.js';
3
4
  import type { EntityOrAliasName, InstanceName } from '../model/index.js';
4
5
  import type { ComponentReadBinding, ComponentWriteBinding } from './bindings/index.js';
@@ -46,15 +47,6 @@ interface UserBoundImplementation {
46
47
  readonly plan: MemoEvalPlan;
47
48
  readonly implementation: RootReadImplementation | CompositeImplementation;
48
49
  }
49
- /**
50
- * A parameter that should be emitted as an unquoted code reference in codegen
51
- * (e.g. an entity reflection variable like `Top`).
52
- * At runtime, the string value is resolved to the actual object (e.g. entity reflection).
53
- */
54
- export interface SdkCodeRef {
55
- readonly $codeRef: string;
56
- }
57
- export declare const isSdkCodeRef: (value: unknown) => value is SdkCodeRef;
58
50
  export type SdkFactoryParam = SdkCodeRef | string | number | boolean | null | readonly SdkFactoryParam[] | {
59
51
  readonly [key: string]: SdkFactoryParam;
60
52
  };
@@ -1 +1 @@
1
- export const isSdkCodeRef=e=>"object"==typeof e&&null!==e&&"$codeRef"in e&&"string"==typeof e.$codeRef;
1
+ export{};
@@ -1,58 +1,5 @@
1
1
  import { Branded } from '@salsita-ai/common/utils';
2
- import { type EnhancedJsonSchemaType, type EnhancedJsonValue } from '../../../core/index.js';
3
- /**
4
- * A single filter criterion — static value, dynamic `$read` reference, or
5
- * inline `$eval` expression evaluated against `self` at runtime.
6
- *
7
- * The `target` field on the `'dynamic'` variant is a bare name (matches the
8
- * same pattern as prop-level reads); codegen emits `self.target`, runtime
9
- * reads `self[target]`.
10
- */
11
- export type FilterCriterion<T> = {
12
- readonly kind: 'static';
13
- readonly value: T;
14
- } | {
15
- readonly kind: 'dynamic';
16
- readonly target: string;
17
- } | {
18
- readonly kind: 'eval';
19
- readonly code: string;
20
- };
21
- /**
22
- * Parsed component filter controlling when the component is active. Two
23
- * mutually-exclusive shapes:
24
- *
25
- * - `'gradual'` — zero or more per-criterion fields; compiles to one entry per
26
- * set key inside `.withGradualFilter({…})`. The preferred form.
27
- * - `'root'` — the entire filter is a single `$read` at the root (legacy
28
- * form `$filter: { $read: '$x' }`); compiles to `.withFilter(self => (self.target))`.
29
- * Distinct codegen because the SDK's `withFilter` and `withGradualFilter`
30
- * methods have different evaluation semantics (whole-closure vs per-key).
31
- *
32
- * See `components.md §"Simple expression filter"` / `§"Declarative filter"`.
33
- */
34
- export type ComponentFilter = {
35
- readonly kind: 'gradual';
36
- readonly navigationStates?: FilterCriterion<readonly string[]>;
37
- readonly viewStates?: FilterCriterion<readonly string[]>;
38
- readonly toolStates?: FilterCriterion<readonly string[]>;
39
- readonly exportStates?: FilterCriterion<readonly string[]>;
40
- readonly modes?: FilterCriterion<readonly string[]>;
41
- readonly roles?: FilterCriterion<readonly string[]>;
42
- readonly selectedEntityIds?: FilterCriterion<unknown>;
43
- readonly hoveredEntityIds?: FilterCriterion<unknown>;
44
- readonly draggedEntityIds?: FilterCriterion<unknown>;
45
- readonly exportedEntityIds?: FilterCriterion<unknown>;
46
- readonly active?: FilterCriterion<boolean>;
47
- readonly fullscreen?: FilterCriterion<boolean>;
48
- readonly debug?: FilterCriterion<boolean>;
49
- readonly viewports?: FilterCriterion<unknown>;
50
- } | {
51
- readonly kind: 'root';
52
- readonly target: string;
53
- };
54
- /** Criterion field names on the gradual variant — used for parse and iteration. */
55
- export declare const FILTER_CRITERION_KEYS: readonly ["navigationStates", "viewStates", "toolStates", "exportStates", "modes", "roles", "selectedEntityIds", "hoveredEntityIds", "draggedEntityIds", "exportedEntityIds", "active", "fullscreen", "debug", "viewports"];
2
+ import { type ComponentFilter, type EnhancedJsonSchemaType, type EnhancedJsonValue } from '../../../core/index.js';
56
3
  /**
57
4
  * Schema types for each filter criterion, used for expression inference.
58
5
  * When `$read: '$expr'` appears in a filter criterion, the expression is
@@ -1 +1 @@
1
- import{Branded as t}from"@salsita-ai/common/utils";import{FILTER_OR_KEY as e,READ_MARKER_KEY as r,isEnhancedJsonObject as i,isEvalMarker as s,isRawReadMarker as a}from"../../../core/index.js";export const FILTER_CRITERION_KEYS=["navigationStates","viewStates","toolStates","exportStates","modes","roles","selectedEntityIds","hoveredEntityIds","draggedEntityIds","exportedEntityIds","active","fullscreen","debug","viewports"];let o={tsType:"IdOrWithId | readonly IdOrWithId[]",import:[{module:"@salsita-ai/sdk/domain",member:"IdOrWithId"}]};export const FILTER_CRITERION_SCHEMAS={navigationStates:{type:"array",items:{type:"string"}},viewStates:{type:"array",items:{type:"string"}},toolStates:{type:"array",items:{type:"string"}},exportStates:{type:"array",items:{type:"string"}},modes:{type:"array",items:{type:"string"}},roles:{type:"array",items:{type:"string"}},selectedEntityIds:o,hoveredEntityIds:o,draggedEntityIds:o,exportedEntityIds:o,active:{type:"boolean"},fullscreen:{type:"boolean"},debug:{type:"boolean"},viewports:{type:"array",items:{type:"string"},tsType:"readonly Viewport[]",import:[{module:"@salsita-ai/sdk/domain",member:"Viewport"}]}};let n=new Set(FILTER_CRITERION_KEYS),d=t=>a(t)?{kind:"dynamic",target:t[r]}:s(t)?{kind:"eval",code:t.$eval}:{kind:"static",value:t},y=t=>{let e=t[r];if("string"==typeof e&&!Object.keys(t).some(t=>n.has(t)))return{kind:"root",target:e};let i={};for(let[e,r]of Object.entries(t))n.has(e)&&void 0!==r&&(i[e]=d(r));return{kind:"gradual",...i}};export const ComponentFilters=r=>{if(void 0===r||!i(r))return t({items:[]});let s=r[e];return Array.isArray(s)?t({items:s.filter(i).map(y)}):t({items:[y(r)]})};
1
+ import{Branded as t}from"@salsita-ai/common/utils";import{FILTER_CRITERION_KEYS as e,FILTER_OR_KEY as r,READ_MARKER_KEY as i,isEnhancedJsonObject as s,isEvalMarker as a,isRawReadMarker as o}from"../../../core/index.js";let n={tsType:"IdOrWithId | readonly IdOrWithId[]",import:[{module:"@salsita-ai/sdk/domain",member:"IdOrWithId"}]};export const FILTER_CRITERION_SCHEMAS={navigationStates:{type:"array",items:{type:"string"}},viewStates:{type:"array",items:{type:"string"}},toolStates:{type:"array",items:{type:"string"}},exportStates:{type:"array",items:{type:"string"}},modes:{type:"array",items:{type:"string"}},roles:{type:"array",items:{type:"string"}},selectedEntityIds:n,hoveredEntityIds:n,draggedEntityIds:n,exportedEntityIds:n,active:{type:"boolean"},fullscreen:{type:"boolean"},debug:{type:"boolean"},viewports:{type:"array",items:{type:"string"},tsType:"readonly Viewport[]",import:[{module:"@salsita-ai/sdk/domain",member:"Viewport"}]}};let y=new Set(e),d=t=>o(t)?{kind:"dynamic",target:t[i]}:a(t)?{kind:"eval",code:t.$eval}:{kind:"static",value:t},p=t=>{let e=t[i];if("string"==typeof e&&!Object.keys(t).some(t=>y.has(t)))return{kind:"root",target:e};let r={};for(let[e,i]of Object.entries(t))y.has(e)&&void 0!==i&&(r[e]=d(i));return{kind:"gradual",...r}};export const ComponentFilters=e=>{if(void 0===e||!s(e))return t({items:[]});let i=e[r];return Array.isArray(i)?t({items:i.filter(s).map(p)}):t({items:[p(e)]})};
@@ -1,5 +1,5 @@
1
1
  export * from './bindings/index.js';
2
- export * from './component-entry.js';
2
+ export type * from './component-entry.js';
3
3
  export * from './component-filter.js';
4
4
  export * from './component-prop-target.js';
5
5
  export * from './components.js';
@@ -1 +1 @@
1
- export*from"./bindings/index.js";export*from"./component-entry.js";export*from"./component-filter.js";export*from"./component-prop-target.js";export*from"./components.js";export*from"./sdk-component-entry.js";export*from"./user-component-entry.js";export*from"./user-components.js";
1
+ export*from"./bindings/index.js";export*from"./component-filter.js";export*from"./component-prop-target.js";export*from"./components.js";export*from"./sdk-component-entry.js";export*from"./user-component-entry.js";export*from"./user-components.js";
@@ -1,32 +1,7 @@
1
1
  import type { Branded } from '@salsita-ai/common/utils';
2
- import type { EnhancedJsonSchemaType, EnhancedJsonValue } from '../../../core/index.js';
2
+ import type { EnhancedJsonSchemaType, EnhancedJsonValue, SdkExpressionImplementation } from '../../../core/index.js';
3
3
  import type { EntityOrAliasName, ExpressionName } from '../model/index.js';
4
4
  import type { MemoEvalPlan } from './memo-eval-plan.js';
5
- /**
6
- * The relation factory's single positional param: the relation's kind, the entity type or alias it
7
- * points to and its cardinality, plus the id field for `direct` and `indirect` relations. The
8
- * assistant schema reads `target` and `cardinality` to type a relation edge.
9
- */
10
- export interface RelationExpressionParams {
11
- readonly kind: 'direct' | 'indirect' | 'allOfType';
12
- readonly target: string;
13
- readonly cardinality: '0-1' | '1-1' | '0-N' | '1-N';
14
- readonly field?: string;
15
- }
16
- /**
17
- * An expression implementation built by an SDK factory at runtime. The kind is the
18
- * semantic source of the expression, declared by the section that generated it —
19
- * codegen and runtime dispatch on it instead of inspecting factory-function names.
20
- * - `relation`: generated from a `relations:` declaration
21
- * - `violations`: generated from `invariants:` declarations (the `$violations` expression)
22
- */
23
- export type SdkExpressionImplementation = {
24
- readonly kind: 'relation';
25
- readonly params: readonly [RelationExpressionParams];
26
- } | {
27
- readonly kind: 'violations';
28
- readonly params: readonly unknown[];
29
- };
30
5
  /**
31
6
  * How an expression's runtime implementation is provided.
32
7
  * - `user`: implementation from `src/expressions/*.ts` (dynamic import)
@@ -47,8 +22,6 @@ export type ExpressionImplementation = {
47
22
  readonly value: EnhancedJsonValue;
48
23
  readonly plan: MemoEvalPlan;
49
24
  };
50
- /** Narrows to implementations that are built by an SDK expression factory at runtime. */
51
- export declare const isSdkExpressionImplementation: (implementation: ExpressionImplementation) => implementation is SdkExpressionImplementation;
52
25
  /** A single parsed expression declaration. */
53
26
  export type Expression = Branded<'Expression', {
54
27
  readonly entityKey: EntityOrAliasName;
@@ -1 +1 @@
1
- export const isSdkExpressionImplementation=i=>"relation"===i.kind||"violations"===i.kind;
1
+ export{};
@@ -2,7 +2,7 @@ import { Branded } from '@salsita-ai/common/utils';
2
2
  import { type EvalExpressionParser, type ParseContext } from '../../../core/index.js';
3
3
  import type { MergedExpressions } from '../../merge/index.js';
4
4
  import type { Aliases, EntityOrAliasName, EntityTypeName, ExpressionName, ModelVersion } from '../model/index.js';
5
- import { type Expression } from './expression.js';
5
+ import type { Expression } from './expression.js';
6
6
  import type { MemoEvalPlan } from './memo-eval-plan.js';
7
7
  export type { Expression, ExpressionImplementation } from './expression.js';
8
8
  /**
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{intersectSchemas as t}from"../../../core/index.js";import{DiagnosticCode as n,diagnosticMessages as o}from"../../../errors/index.js";import{isSdkExpressionImplementation as i}from"./expression.js";import{UserExpressions as r}from"./user-expressions.js";let s=(e,t)=>{let n=e.get(t.entityKey);n||(n=new Map,e.set(t.entityKey,n)),n.set(t.name,t)},a=(n,o)=>{let i=n.get(o.entityKey);i||(i=new Map,n.set(o.entityKey,i));let r=i.get(o.name);r?i.set(o.name,e({...r,schema:t(r.schema,o.schema),...r.declaredSchema||!o.declaredSchema?{}:{declaredSchema:o.declaredSchema}})):i.set(o.name,o)},l=e=>"relation"===e.implementation.kind?"relations":"violations"===e.implementation.kind?"invariants":"expressions";export const Expressions=(t,m)=>{let{rawExpressions:f,inferredExpressions:p}=t,{latestModel:c,aliases:d,entityTypes:y,evalExpressionParser:u,parsingContext:g}=m,x=r(f,{latestModel:c,evalExpressionParser:u,parsingContext:g});if(void 0===x)return;let S=new Map;for(let e of x)s(S,e);for(let e of p)a(S,e);let h=((e,t)=>{let n=new Map,o=e=>{let t=n.get(e.entityKey);t||(t=new Set,n.set(e.entityKey,t)),t.add(e.name)};for(let t of e)o(t);for(let e of t)i(e.implementation)&&o(e);return n})(x,p),w=new Map;for(let e of x){let{implementation:t}=e;if("value"!==t.kind||!t.constant||t.plan.usesSelf)continue;let n=w.get(e.entityKey);n||(n=new Map,w.set(e.entityKey,n)),n.set(e.name,t.plan)}let K=new Map;for(let t of y){let i=[],r=new Map,s=e=>{let s=S.get(e);if(!s||0===s.size)return;i.push(e);let a=h.get(e);for(let[i,m]of s){if(!a?.has(i))continue;let s=r.get(i);if(s){g.at(l(m),e,i).error(n.DUPLICATE_EXPRESSION,o.DUPLICATE_EXPRESSION(t,i,s,e));continue}r.set(i,e)}};for(let[e,n]of d)n.includes(t)&&s(e);s(t),K.set(t,e({shapeGroups:i}))}return e({expressions:S,entityExpressions:K,constants:w})};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{intersectSchemas as t,isSdkExpressionImplementation as n}from"../../../core/index.js";import{DiagnosticCode as i,diagnosticMessages as o}from"../../../errors/index.js";import{UserExpressions as r}from"./user-expressions.js";let s=(e,t)=>{let n=e.get(t.entityKey);n||(n=new Map,e.set(t.entityKey,n)),n.set(t.name,t)},a=(n,i)=>{let o=n.get(i.entityKey);o||(o=new Map,n.set(i.entityKey,o));let r=o.get(i.name);r?o.set(i.name,e({...r,schema:t(r.schema,i.schema),...r.declaredSchema||!i.declaredSchema?{}:{declaredSchema:i.declaredSchema}})):o.set(i.name,i)},l=e=>"relation"===e.implementation.kind?"relations":"violations"===e.implementation.kind?"invariants":"expressions";export const Expressions=(t,m)=>{let{rawExpressions:f,inferredExpressions:p}=t,{latestModel:c,aliases:d,entityTypes:y,evalExpressionParser:u,parsingContext:g}=m,S=r(f,{latestModel:c,evalExpressionParser:u,parsingContext:g});if(void 0===S)return;let h=new Map;for(let e of S)s(h,e);for(let e of p)a(h,e);let w=((e,t)=>{let i=new Map,o=e=>{let t=i.get(e.entityKey);t||(t=new Set,i.set(e.entityKey,t)),t.add(e.name)};for(let t of e)o(t);for(let e of t)n(e.implementation)&&o(e);return i})(S,p),x=new Map;for(let e of S){let{implementation:t}=e;if("value"!==t.kind||!t.constant||t.plan.usesSelf)continue;let n=x.get(e.entityKey);n||(n=new Map,x.set(e.entityKey,n)),n.set(e.name,t.plan)}let K=new Map;for(let t of y){let n=[],r=new Map,s=e=>{let s=h.get(e);if(!s||0===s.size)return;n.push(e);let a=w.get(e);for(let[n,m]of s){if(!a?.has(n))continue;let s=r.get(n);if(s){g.at(l(m),e,n).error(i.DUPLICATE_EXPRESSION,o.DUPLICATE_EXPRESSION(t,n,s,e));continue}r.set(n,e)}};for(let[e,n]of d)n.includes(t)&&s(e);s(t),K.set(t,e({shapeGroups:n}))}return e({expressions:h,entityExpressions:K,constants:x})};
@@ -1,5 +1,4 @@
1
1
  export type * from './expression.js';
2
- export { isSdkExpressionImplementation } from './expression.js';
3
2
  export * from './expressions.js';
4
3
  export * from './memo-eval-plan.js';
5
4
  export * from './user-expressions.js';
@@ -1 +1 @@
1
- export{isSdkExpressionImplementation}from"./expression.js";export*from"./expressions.js";export*from"./memo-eval-plan.js";export*from"./user-expressions.js";
1
+ export*from"./expressions.js";export*from"./memo-eval-plan.js";export*from"./user-expressions.js";
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{evalCodeUsesSelf as r}from"../../../core/eval-code-uses-self.js";import{isEvalMarker as t,isMsgMarker as n}from"../../../core/index.js";import{isComponentPropTarget as o}from"../components/component-prop-target.js";let l=(e,r)=>0===r.length?e:`${e}.${r.join(".")}`,i=(r,a,u,d)=>{if(void 0===r)throw Error(`MemoEvalPlan: found undefined at ${l(u,d)}, undefined cannot be generated, remove the property or use null.`);if(t(r)){let t=((r,t,n)=>{let o=t.trim();for(let e=0;e<r.length;e++){let t=r[e];if("eval"===t.kind&&t.code===o)return e}return r.push(e({kind:"eval",code:o,label:n})),r.length-1})(a,r.$eval,u);return e({kind:"slot",depIndex:t})}if(o(r)){let t=((r,t)=>{for(let e=0;e<r.length;e++){let n=r[e];if("read"===n.kind&&n.target===t)return e}return r.push(e({kind:"read",target:t})),r.length-1})(a,r.$target);return e({kind:"slot",depIndex:t})}if(n(r))return e({kind:"msg",marker:r});if(null===r||"object"!=typeof r)return e({kind:"literal",value:r});if(Array.isArray(r))return e({kind:"array",items:r.map((e,r)=>i(e,a,u,[...d,String(r)]))});if("object"!=typeof r||null===r)throw Error(`MemoEvalPlan: found unsupported value at ${l(u,d)}, remove it or use null.`);let f=[];for(let e in r){let t=r[e];f.push([e,i(t,a,u,[...d,e])])}return e({kind:"object",entries:f})};export const MemoEvalPlan=(t,n)=>{let o=[],l=i(t,o,n,[]),a=o.some(e=>"read"===e.kind||r(e.code));return e({deps:o,template:l,usesSelf:a})};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{isEvalMarker as r,isMsgMarker as t}from"../../../core/index.js";import{evalCodeUsesSelf as n}from"../../../enhanced-json/eval-code-uses-self.js";import{isComponentPropTarget as o}from"../components/component-prop-target.js";let l=(e,r)=>0===r.length?e:`${e}.${r.join(".")}`,i=(n,a,d,u)=>{if(void 0===n)throw Error(`MemoEvalPlan: found undefined at ${l(d,u)}, undefined cannot be generated, remove the property or use null.`);if(r(n)){let r=((r,t,n)=>{let o=t.trim();for(let e=0;e<r.length;e++){let t=r[e];if("eval"===t.kind&&t.code===o)return e}return r.push(e({kind:"eval",code:o,label:n})),r.length-1})(a,n.$eval,d);return e({kind:"slot",depIndex:r})}if(o(n)){let r=((r,t)=>{for(let e=0;e<r.length;e++){let n=r[e];if("read"===n.kind&&n.target===t)return e}return r.push(e({kind:"read",target:t})),r.length-1})(a,n.$target);return e({kind:"slot",depIndex:r})}if(t(n))return e({kind:"msg",marker:n});if(null===n||"object"!=typeof n)return e({kind:"literal",value:n});if(Array.isArray(n))return e({kind:"array",items:n.map((e,r)=>i(e,a,d,[...u,String(r)]))});if("object"!=typeof n||null===n)throw Error(`MemoEvalPlan: found unsupported value at ${l(d,u)}, remove it or use null.`);let s=[];for(let e in n){let r=n[e];s.push([e,i(r,a,d,[...u,e])])}return e({kind:"object",entries:s})};export const MemoEvalPlan=(r,t)=>{let o=[],l=i(r,o,t,[]),a=o.some(e=>"read"===e.kind||n(e.code));return e({deps:o,template:l,usesSelf:a})};
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{schemaFromValue as t}from"../../../core/index.js";import{DiagnosticCode as r,diagnosticMessages as s}from"../../../errors/index.js";import{ExpressionName as o}from"../model/index.js";import{MemoEvalPlan as a}from"./memo-eval-plan.js";let i=(e,r,s,o)=>{if("user"===e.kind)return{schema:e.schema,implementation:{kind:"user"}};let i=a(e.value,r),m={kind:"value",constant:e.constant,value:e.value,plan:i};if(Object.keys(e.schema).length>0)return{schema:e.schema,implementation:m};let n=t(e.value,s,o);if(void 0!==n)return{schema:n,implementation:m}};export const UserExpressions=(t,a)=>{let{latestModel:m,evalExpressionParser:n,parsingContext:l}=a,{allNames:c}=m,f=[...c].map(String),h=[];for(let[a,m]of Object.entries(t)){c.has(a)||l.error(r.EXPRESSION_UNKNOWN_ENTITY_KEY,s.EXPRESSION_UNKNOWN_ENTITY_KEY(a,f));let t=e(a);for(let[r,s]of Object.entries(m)){let m=l.at(a),c=o(r,m);if(!c)continue;let f=i(s,`${a}.${r}`,m.at(r),n);f&&h.push(e({entityKey:t,name:c,schema:f.schema,declaredSchema:f.schema,implementation:f.implementation}))}}if(!l.hasErrors)return h};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{schemaFromValue as t}from"../../../enhanced-json/index.js";import{DiagnosticCode as r,diagnosticMessages as n}from"../../../errors/index.js";import{ExpressionName as s}from"../model/index.js";import{MemoEvalPlan as a}from"./memo-eval-plan.js";let o=(e,r,n,s)=>{if("user"===e.kind)return{schema:e.schema,implementation:{kind:"user"}};let o=a(e.value,r),i={kind:"value",constant:e.constant,value:e.value,plan:o};if(Object.keys(e.schema).length>0)return{schema:e.schema,implementation:i};let m=t(e.value,n,s);if(void 0!==m)return{schema:m,implementation:i}};export const UserExpressions=(t,a)=>{let{latestModel:i,evalExpressionParser:m,parsingContext:l}=a,{allNames:c}=i,h=[...c].map(String),f=[];for(let[a,i]of Object.entries(t)){c.has(a)||l.error(r.EXPRESSION_UNKNOWN_ENTITY_KEY,n.EXPRESSION_UNKNOWN_ENTITY_KEY(a,h));let t=e(a);for(let[r,n]of Object.entries(i)){let i=l.at(a),c=s(r,i);if(!c)continue;let h=o(n,`${a}.${r}`,i.at(r),m);h&&f.push(e({entityKey:t,name:c,schema:h.schema,declaredSchema:h.schema,implementation:h.implementation}))}}if(!l.hasErrors)return f};
@@ -7,8 +7,8 @@ import { ShapePropertyName } from './names/shape-property-name.js';
7
7
  /**
8
8
  * A map of shape property names to their default values inside a single entity block.
9
9
  * Raw YAML values — markers intact — keyed by a validated {@link ShapePropertyName}.
10
- * Codegen emits these as-is via `stringifyEnhancedJsonValue`; runtime consumers
11
- * (`RecipeFactoryBuilder`) consume the generated `createRecipe` factory.
10
+ * Codegen emits these as-is via `stringifyEnhancedJsonValue`; at run time
11
+ * `createRecipeFactory` makes the generated `createRecipe` factory from them.
12
12
  */
13
13
  export type DefaultEntries = Readonly<Record<ShapePropertyName, EnhancedJsonValue>>;
14
14
  /**
@@ -19,6 +19,11 @@ export type DefaultEntries = Readonly<Record<ShapePropertyName, EnhancedJsonValu
19
19
  * flattened here to concrete entity entries so downstream codegen only serialises
20
20
  * a runtime-ready per-entity map.
21
21
  *
22
+ * A source key may state part of a shape, but the flattened entry of a concrete
23
+ * entity type states every property of its shape: `createRecipeFactory` validates
24
+ * each entry as a whole entity when the generated module loads. An entity type
25
+ * with no entry has no defaults and is not checked.
26
+ *
22
27
  * Values are raw `EnhancedJsonValue` so codegen can emit them via
23
28
  * `stringifyEnhancedJsonValue` with `$msg` markers preserved.
24
29
  *
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{CONSTANT_CAPS as t,resolveEnhancedJsonValue as r}from"../../../core/index.js";import{DiagnosticCode as o,diagnosticMessages as i}from"../../../errors/index.js";import{ShapePropertyName as n}from"./names/shape-property-name.js";let s=(e,t,r,n,s)=>{for(let l of r.validatePartialShape(t).errors){let t=l.instancePath?l.instancePath:"(root)",r=l.instancePath.split("/").filter(Boolean)[0]??"";n.error(o.DEFAULTS_SCHEMA_VIOLATION,i[o.DEFAULTS_SCHEMA_VIOLATION](e,r,t,l.message,s))}};export const Defaults=(l,a,f)=>{let E=a.allNames,T=[...E].map(String),N=new Map,S=new Map;for(let e of a.entitySchemas)N.set(e.entityType,new Set(Object.keys(e.shapeProperties))),S.set(e.entityType,e);let _={};for(let[e,O]of Object.entries(l)){let l=f.at(e);if(!E.has(e)){f.error(o.DEFAULTS_UNKNOWN_ENTITY_KEY,i[o.DEFAULTS_UNKNOWN_ENTITY_KEY](e,T));continue}let p=a.aliases.get(e),c=void 0!==p,g={};for(let[t,r]of Object.entries(O)){let s=n(t,l);if(s){if(c){let t=[];for(let e of p){let r=N.get(e);r&&r.has(s)||t.push(String(e))}if(t.length>0){let r=p[0],n=r?[...N.get(r)??[]]:[];f.error(o.DEFAULTS_UNKNOWN_PROPERTY,i[o.DEFAULTS_UNKNOWN_PROPERTY](e,s,n,t));continue}}else{let t=N.get(e);if(!t||!t.has(s)){let r=t?[...t]:[];f.error(o.DEFAULTS_UNKNOWN_PROPERTY,i[o.DEFAULTS_UNKNOWN_PROPERTY](e,s,r));continue}}g[s]=r}}if(0===Object.keys(g).length)continue;let m=r(g,void 0,t,l);if(void 0!==m){if(c)for(let t of p){let r=S.get(t);r&&s(e,m,r,l,String(t))}else{let t=S.get(e);t&&s(e,m,t,l)}for(let t of p??[e])_[String(t)]={..._[String(t)],...g}}}if(Object.keys(l).length>0&&f.warning(o.DEFAULTS_DEPRECATED,i[o.DEFAULTS_DEPRECATED]()),!f.hasErrors)return e({entries:_})};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{CONSTANT_CAPS as t}from"../../../core/index.js";import{resolveEnhancedJsonValue as r}from"../../../enhanced-json/index.js";import{DiagnosticCode as i,diagnosticMessages as n}from"../../../errors/index.js";import{ShapePropertyName as o}from"./names/shape-property-name.js";let s=(e,t,r,o,s)=>{for(let l of r.validatePartialShape(t).errors){let t=l.instancePath?l.instancePath:"(root)",r=l.instancePath.split("/").filter(Boolean)[0]??"";o.error(i.DEFAULTS_SCHEMA_VIOLATION,n[i.DEFAULTS_SCHEMA_VIOLATION](e,r,t,l.message,s))}};export const Defaults=(l,a,f)=>{let E=a.allNames,T=[...E].map(String),S=new Map,N=new Map;for(let e of a.entitySchemas)S.set(e.entityType,new Set(Object.keys(e.shapeProperties))),N.set(e.entityType,e);let g={},O=new Map;for(let[e,_]of Object.entries(l)){let l=f.at(e);if(!E.has(e)){f.error(i.DEFAULTS_UNKNOWN_ENTITY_KEY,n[i.DEFAULTS_UNKNOWN_ENTITY_KEY](e,T));continue}let c=a.aliases.get(e),p=void 0!==c,h={};for(let[t,r]of Object.entries(_)){let s=o(t,l);if(s){if(p){let t=[];for(let e of c){let r=S.get(e);r&&r.has(s)||t.push(String(e))}if(t.length>0){let r=c[0],o=r?[...S.get(r)??[]]:[];f.error(i.DEFAULTS_UNKNOWN_PROPERTY,n[i.DEFAULTS_UNKNOWN_PROPERTY](e,s,o,t));continue}}else{let t=S.get(e);if(!t||!t.has(s)){let r=t?[...t]:[];f.error(i.DEFAULTS_UNKNOWN_PROPERTY,n[i.DEFAULTS_UNKNOWN_PROPERTY](e,s,r));continue}}h[s]=r}}if(0===Object.keys(h).length)continue;let m=r(h,void 0,t,l);if(void 0!==m){if(p)for(let t of c){let r=N.get(t);r&&s(e,m,r,l,String(t))}else{let t=N.get(e);t&&s(e,m,t,l)}for(let t of c??[e])g[String(t)]={...g[String(t)],...h},O.set(t,[...O.get(t)??[],e])}}for(let[e,t]of O){let r=g[String(e)]??{},o=(N.get(e)?.shapeSchema.required??[]).filter(e=>!Object.hasOwn(r,e));if(0===o.length)continue;let s=t.includes(String(e))?String(e):t.at(-1);f.at(s).error(i.DEFAULTS_INCOMPLETE,n[i.DEFAULTS_INCOMPLETE](String(e),o,t))}if(Object.keys(l).length>0&&f.warning(i.DEFAULTS_DEPRECATED,n[i.DEFAULTS_DEPRECATED]()),!f.hasErrors)return e({entries:g})};
@@ -0,0 +1,25 @@
1
+ import { type EnhancedJsonSchemaType, type PhoenixDefinitions } from '../../../core/index.js';
2
+ import type { ModelVersion } from '../model/index.js';
3
+ /**
4
+ * What the type of a shape field means to a relation that reads its related entities from it.
5
+ *
6
+ * - `single`: the id of one entity of `entityTypes`, or `null` when `nullable`.
7
+ * - `array`: an array of ids of entities of `entityTypes`.
8
+ * - `other`: anything else, such as a string, an id without `references`, or a mix of the above.
9
+ * - `unknown`: the schema does not say, because it states its type as TypeScript text (`tsType`)
10
+ * or combines schemas with `allOf`.
11
+ */
12
+ export type ReferenceFieldType = {
13
+ readonly kind: 'single';
14
+ readonly entityTypes: ReadonlySet<string>;
15
+ readonly nullable: boolean;
16
+ } | {
17
+ readonly kind: 'array';
18
+ readonly entityTypes: ReadonlySet<string>;
19
+ } | {
20
+ readonly kind: 'other';
21
+ } | {
22
+ readonly kind: 'unknown';
23
+ };
24
+ /** Classifies the schema of a shape field of the latest model by the reference it holds. */
25
+ export declare const referenceFieldType: (schema: EnhancedJsonSchemaType, latestModel: ModelVersion, phxDefinitions: PhoenixDefinitions) => ReferenceFieldType;
@@ -0,0 +1 @@
1
+ import{COMMON_SHORT_PREFIX as e,INTERNAL_REF_PATTERN as t,extractPhxDefName as n}from"../../../core/index.js";let r={entityTypes:new Set,hasNull:!1,arrays:[],hasOther:!1,hasUnknown:!1},s={...r,hasNull:!0},a={...r,hasOther:!0},y={...r,hasUnknown:!0},i=e=>({entityTypes:new Set(e.flatMap(e=>[...e.entityTypes])),hasNull:e.some(e=>e.hasNull),arrays:e.flatMap(e=>e.arrays),hasOther:e.some(e=>e.hasOther),hasUnknown:e.some(e=>e.hasUnknown)}),l=(o,p)=>{if(o.tsType)return y;if(o.$ref){let s,i=n(o.$ref);if(void 0!==i)return p.phxDefinitions[i]?.tsType==="DomainEntityId"&&o.references?{...r,entityTypes:new Set(((e,t)=>{for(let[n,r]of t.aliases)if(String(n)===e)return r.map(String);return[e]})(o.references,p.latestModel))}:a;let h=(s=o.$ref).startsWith(e)?s.slice(e.length):t.exec(s)?.[2];if(void 0===h)return a;let u=p.latestModel.commonTypes.get(h);return!u||p.openCommonTypes.has(h)?y:l(u.schema,{...p,openCommonTypes:new Set([...p.openCommonTypes,h])})}if(o.enum)return i(o.enum.map(e=>null===e?s:a));let h=o.anyOf??o.oneOf;if(h)return i(h.map(e=>l(e,p)));if(o.allOf)return y;let u=e=>"array"===e?(()=>{let{items:e}=o;return!e||Array.isArray(e)?a:{...r,arrays:[l(e,p)]}})():"null"===e?s:a;return"string"==typeof o.type?u(o.type):Array.isArray(o.type)?i(o.type.map(u)):a};export const referenceFieldType=(e,t,n)=>(e=>{if(e.hasUnknown||e.arrays.some(e=>e.hasUnknown))return{kind:"unknown"};if(e.hasOther)return{kind:"other"};let[t,...n]=e.arrays;if(!t)return e.entityTypes.size>0?{kind:"single",entityTypes:e.entityTypes,nullable:e.hasNull}:{kind:"other"};let r=e=>e.entityTypes.size>0&&!e.hasNull&&!e.hasOther&&0===e.arrays.length;return 0===e.entityTypes.size&&!e.hasNull&&r(t)&&n.every(e=>{let n,s;return r(e)&&(n=e.entityTypes,s=t.entityTypes,n.size===s.size&&[...n].every(e=>s.has(e)))})?{kind:"array",entityTypes:t.entityTypes}:{kind:"other"}})(l(e,{latestModel:t,phxDefinitions:n,openCommonTypes:new Set}));
@@ -0,0 +1,46 @@
1
+ import type { ReferenceFieldType } from './reference-field-type.js';
2
+ type Cardinality = '0-1' | '1-1' | '0-N' | '1-N';
3
+ /** How a field holds its reference: one id, one id or `null`, or an array of ids. */
4
+ export type ReferenceFieldShape = 'single' | 'nullableSingle' | 'array';
5
+ /**
6
+ * Why a relation cannot read its related entities from its field.
7
+ *
8
+ * - `notReference`: the field does not hold entity ids.
9
+ * - `otherEntityTypes`: the field holds ids of other entity types than the relation relates to.
10
+ * - `cardinality`: the field of a direct relation holds its ids in another shape than the
11
+ * cardinality of the relation needs.
12
+ */
13
+ export type RelationFieldMismatch = {
14
+ readonly kind: 'notReference';
15
+ } | {
16
+ readonly kind: 'otherEntityTypes';
17
+ readonly referenced: readonly string[];
18
+ } | {
19
+ readonly kind: 'cardinality';
20
+ readonly shape: ReferenceFieldShape;
21
+ readonly required: ReferenceFieldShape;
22
+ };
23
+ interface RelationReadingField {
24
+ readonly kind: 'direct' | 'indirect';
25
+ readonly cardinality: Cardinality;
26
+ }
27
+ /**
28
+ * Checks the field of a direct or indirect relation against what the relation reads from it.
29
+ *
30
+ * The field must reference exactly `relatedEntityTypes`: for a direct relation the entity types of
31
+ * its target, for an indirect relation the entity types it is declared on, because there the field
32
+ * belongs to the target and points back. A direct relation also fixes the shape of the field by
33
+ * its cardinality. An indirect relation reads every shape, since its cardinality counts the
34
+ * entities that point back and not the ids in the field.
35
+ *
36
+ * When an alias holds the field, the field can have another type in each entity type of the alias.
37
+ * The relation is accepted when the field fits in at least one of them. Requiring all of them
38
+ * would be the stricter reading, but projects whose specs type-check rely on the looser one, so
39
+ * it would reject working projects.
40
+ *
41
+ * @param fieldTypes The type of the field in each entity type that holds it.
42
+ * @returns The mismatch of the first entity type, or `undefined` when the field fits in one of
43
+ * them or its type there is unknown.
44
+ */
45
+ export declare const relationFieldMismatch: (relation: RelationReadingField, fieldTypes: readonly ReferenceFieldType[], relatedEntityTypes: readonly string[]) => RelationFieldMismatch | undefined;
46
+ export {};
@@ -0,0 +1 @@
1
+ let e={"0-1":"nullableSingle","1-1":"single","0-N":"array","1-N":"array"};export const relationFieldMismatch=(n,i,r)=>{let t=i.map(i=>((n,i,r)=>{if("unknown"===i.kind)return;if("other"===i.kind)return{kind:"notReference"};let t=i.entityTypes;if(!(t.size===new Set(r).size&&r.every(e=>t.has(e))))return{kind:"otherEntityTypes",referenced:[...t]};if("indirect"===n.kind)return;let l="array"===i.kind?"array":i.nullable?"nullableSingle":"single",a=e[n.cardinality];return l===a?void 0:{kind:"cardinality",shape:l,required:a}})(n,i,r));return t.includes(void 0)?void 0:t[0]};
@@ -1,5 +1,5 @@
1
1
  import { Branded } from '@salsita-ai/common/utils';
2
- import type { ParseContext } from '../../../core/index.js';
2
+ import type { ParseContext, PhoenixDefinitions } from '../../../core/index.js';
3
3
  import type { MergedRelations } from '../../merge/index.js';
4
4
  import type { ComponentEntry } from '../components/index.js';
5
5
  import type { Expression } from '../expressions/index.js';
@@ -19,7 +19,8 @@ export type Relations = Branded<'Relations', {
19
19
  * Validates merged relations against the latest model, then expands into components + expressions.
20
20
  *
21
21
  * Each relation is individually constructed via `Relation()` which builds its own expression
22
- * and component entries. This factory validates cross-relation concerns (counterpart pairing,
22
+ * and component entries. This factory validates the field a direct or indirect relation reads
23
+ * against the shape that holds it, validates cross-relation concerns (counterpart pairing,
23
24
  * composition tree reachability) and aggregates the per-relation artifacts.
24
25
  */
25
- export declare const Relations: (rawRelations: MergedRelations, latestModel: ModelVersion, ctx: ParseContext) => Relations;
26
+ export declare const Relations: (rawRelations: MergedRelations, latestModel: ModelVersion, phxDefinitions: PhoenixDefinitions, ctx: ParseContext) => Relations;
@@ -1 +1 @@
1
- import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as t,diagnosticMessages as r}from"../../../errors/index.js";import{IMPLICIT_ENTITY_FIELDS as i,RelationName as o,getResolvedShape as n}from"../model/index.js";import{Relation as f}from"./relation.js";let l=(e,t,r)=>{let i=r[t.target];if(!i)return;let o="direct"===t.kind?"indirect":"indirect"===t.kind?"direct":"allOfType";for(let[r,n]of Object.entries(i))if(n.kind===o&&n.target===e&&("allOfType"===t.kind||"allOfType"===n.kind||t.field===n.field))return{entityKey:t.target,name:r,relation:n}},T=(e,t)=>{let r=t.aliases.get(e);return r||[e]};export const Relations=(O,N,E)=>{let{allNames:I,resolvedShapes:_}=N,a=[...I].map(String),s=(e,t)=>n(_,e).fieldSchemas.has(t),d={};for(let[e,n]of Object.entries(O)){let l=E.at(e);if(!I.has(e)){l.error(t.RELATION_UNKNOWN_ENTITY_KEY,r.RELATION_UNKNOWN_ENTITY_KEY(e,a));continue}for(let[T,O]of Object.entries(n)){if(!o(T,l))continue;if(!I.has(O.target)){l.error(t.RELATION_UNKNOWN_TARGET,r.RELATION_UNKNOWN_TARGET(e,T,O.target,a));continue}if("direct"===O.kind){if(i.has(O.field)){l.error(t.RELATION_IMMUTABLE_FIELD,r.RELATION_IMMUTABLE_FIELD(e,T,O.field,e));continue}if(!s(e,O.field)){l.error(t.RELATION_UNKNOWN_FIELD_DIRECT,r.RELATION_UNKNOWN_FIELD_DIRECT(e,T,O.field));continue}}else if("indirect"===O.kind){if(i.has(O.field)){l.error(t.RELATION_IMMUTABLE_FIELD,r.RELATION_IMMUTABLE_FIELD(e,T,O.field,O.target));continue}if(!s(O.target,O.field)){l.error(t.RELATION_UNKNOWN_FIELD_INDIRECT,r.RELATION_UNKNOWN_FIELD_INDIRECT(e,T,O.field,O.target));continue}}let n=f(T,O,e,N.aliases,l);n&&(d[e]||(d[e]={}),d[e][n.name]=n)}}for(let[e,i]of Object.entries(d)){let o=E.at(e);for(let[n,f]of Object.entries(i)){if(f.target===e)continue;let i=l(e,f,d);if(!i){o.error(t.RELATION_MISSING_COUNTERPART,r.RELATION_MISSING_COUNTERPART(e,n,f.kind,f.target,"allOfType"===f.kind?void 0:f.field,f.composedOf));continue}f.composedOf&&i.relation.composedOf&&o.error(t.RELATION_COUNTERPART_COMPOSED_OF_MISMATCH,r.RELATION_COUNTERPART_COMPOSED_OF_MISMATCH(e,n,i.entityKey,i.name))}}((e,i,o)=>{let n=new Map;for(let[t,r]of Object.entries(e))for(let e of Object.values(r)){if(!e.composedOf)continue;let r=T(t,i),o=T(e.target,i);for(let e of r){let t=n.get(e);for(let r of(t||(t=new Set,n.set(e,t)),o))t.add(r)}}let f=new Set(i.rootEntityTypes),l=[...i.rootEntityTypes];for(;l.length>0;){let e=l.shift(),t=n.get(e);if(t)for(let e of t)f.has(e)||(f.add(e),l.push(e))}let O=i.rootEntityTypes.map(String);for(let e of i.entityTypes)f.has(e)||o.at(String(e)).error(t.RELATION_ENTITY_NOT_IN_COMPOSITION_TREE,r.RELATION_ENTITY_NOT_IN_COMPOSITION_TREE(String(e),O))})(d,N,E);let{components:R,expressions:c}=(e=>{let t=[],r=[];for(let i of Object.values(e))for(let e of Object.values(i))t.push(...e.components),r.push(e.expression);return{components:t,expressions:r}})(d);return e({entries:d,components:R,expressions:c})};
1
+ import{Branded as e}from"@salsita-ai/common/utils";import{DiagnosticCode as t,diagnosticMessages as r}from"../../../errors/index.js";import{IMPLICIT_ENTITY_FIELDS as i,RelationName as o,getResolvedShape as E}from"../model/index.js";import{referenceFieldType as n}from"./reference-field-type.js";import{relationFieldMismatch as f}from"./relation-field-mismatch.js";import{Relation as l}from"./relation.js";let T=(e,t,r)=>{let i=r[t.target];if(!i)return;let o="direct"===t.kind?"indirect":"indirect"===t.kind?"direct":"allOfType";for(let[r,E]of Object.entries(i))if(E.kind===o&&E.target===e&&("allOfType"===t.kind||"allOfType"===E.kind||t.field===E.field))return{entityKey:t.target,name:r,relation:E}},N=(e,t)=>{let r=t.aliases.get(e);return r||[e]},a=(e,i,o)=>{let{entityKey:E,relationName:n,field:f,fieldOwner:l,related:T,relatedEntityTypes:N,cardinality:a}=i;switch(e.kind){case"notReference":o.error(t.RELATION_FIELD_NOT_REFERENCE,r.RELATION_FIELD_NOT_REFERENCE(E,n,f,l));break;case"otherEntityTypes":o.error(t.RELATION_FIELD_REFERENCES_OTHER_TYPES,r.RELATION_FIELD_REFERENCES_OTHER_TYPES(E,n,f,l,e.referenced,T,N));break;case"cardinality":o.error(t.RELATION_FIELD_CARDINALITY_MISMATCH,r.RELATION_FIELD_CARDINALITY_MISMATCH(E,n,f,a,e.shape,e.required))}};export const Relations=(O,_,I,s)=>{let{allNames:d,resolvedShapes:R}=_,c=[...d].map(String),L=(e,t)=>E(R,e).fieldSchemas.has(t),A={};for(let[e,T]of Object.entries(O)){let O=s.at(e);if(!d.has(e)){O.error(t.RELATION_UNKNOWN_ENTITY_KEY,r.RELATION_UNKNOWN_ENTITY_KEY(e,c));continue}for(let[s,p]of Object.entries(T)){if(!o(s,O))continue;if(!d.has(p.target)){O.error(t.RELATION_UNKNOWN_TARGET,r.RELATION_UNKNOWN_TARGET(e,s,p.target,c));continue}if("direct"===p.kind){if(i.has(p.field)){O.error(t.RELATION_IMMUTABLE_FIELD,r.RELATION_IMMUTABLE_FIELD(e,s,p.field,e));continue}if(!L(e,p.field)){O.error(t.RELATION_UNKNOWN_FIELD_DIRECT,r.RELATION_UNKNOWN_FIELD_DIRECT(e,s,p.field));continue}}else if("indirect"===p.kind){if(i.has(p.field)){O.error(t.RELATION_IMMUTABLE_FIELD,r.RELATION_IMMUTABLE_FIELD(e,s,p.field,p.target));continue}if(!L(p.target,p.field)){O.error(t.RELATION_UNKNOWN_FIELD_INDIRECT,r.RELATION_UNKNOWN_FIELD_INDIRECT(e,s,p.field,p.target));continue}}if("allOfType"!==p.kind){let[t,r]="direct"===p.kind?[e,p.target]:[p.target,e],i=N(r,_).map(String),o=N(t,_).flatMap(e=>{let t=E(R,e).fieldSchemas.get(p.field);return t?[n(t,_,I)]:[]}),l=f(p,o,i);l&&a(l,{entityKey:e,relationName:s,field:p.field,fieldOwner:t,related:r,relatedEntityTypes:i,cardinality:p.cardinality},O.at(s))}let T=l(s,p,e,_.aliases,O);T&&(A[e]||(A[e]={}),A[e][T.name]=T)}}for(let[e,i]of Object.entries(A)){let o=s.at(e);for(let[E,n]of Object.entries(i)){if(n.target===e)continue;let i=T(e,n,A);if(!i){o.error(t.RELATION_MISSING_COUNTERPART,r.RELATION_MISSING_COUNTERPART(e,E,n.kind,n.target,"allOfType"===n.kind?void 0:n.field,n.composedOf));continue}n.composedOf&&i.relation.composedOf&&o.error(t.RELATION_COUNTERPART_COMPOSED_OF_MISMATCH,r.RELATION_COUNTERPART_COMPOSED_OF_MISMATCH(e,E,i.entityKey,i.name))}}((e,i,o)=>{let E=new Map;for(let[t,r]of Object.entries(e))for(let e of Object.values(r)){if(!e.composedOf)continue;let r=N(t,i),o=N(e.target,i);for(let e of r){let t=E.get(e);for(let r of(t||(t=new Set,E.set(e,t)),o))t.add(r)}}let n=new Set(i.rootEntityTypes),f=[...i.rootEntityTypes];for(;f.length>0;){let e=f.shift(),t=E.get(e);if(t)for(let e of t)n.has(e)||(n.add(e),f.push(e))}let l=i.rootEntityTypes.map(String);for(let e of i.entityTypes)n.has(e)||o.at(String(e)).error(t.RELATION_ENTITY_NOT_IN_COMPOSITION_TREE,r.RELATION_ENTITY_NOT_IN_COMPOSITION_TREE(String(e),l))})(A,_,s);let{components:p,expressions:m}=(e=>{let t=[],r=[];for(let i of Object.values(e))for(let e of Object.values(i))t.push(...e.components),r.push(e.expression);return{components:t,expressions:r}})(A);return e({entries:A,components:p,expressions:m})};