@salsita-ai/sdk 0.50.0-develop.8f6deac646 → 0.50.0-develop.91d65bd507

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 (1277) hide show
  1. package/README.md +19 -14
  2. package/dist/admin/default-admin-elements.d.ts +9 -0
  3. package/dist/admin/default-admin-elements.js +1 -0
  4. package/dist/admin/default-elements/built-in-entity-element.d.ts +10 -0
  5. package/dist/admin/default-elements/built-in-entity-element.js +1 -0
  6. package/dist/admin/default-elements/built-in-layout-element.d.ts +10 -0
  7. package/dist/admin/default-elements/built-in-layout-element.js +1 -0
  8. package/dist/admin/default-elements/index.d.ts +2 -0
  9. package/dist/admin/default-elements/index.js +1 -0
  10. package/dist/admin/index.d.ts +1 -0
  11. package/dist/admin/index.js +1 -1
  12. package/dist/application-spec/caching/content-diff.js +1 -1
  13. package/dist/application-spec/core/application-file.d.ts +0 -2
  14. package/dist/application-spec/core/application-file.js +1 -1
  15. package/dist/application-spec/core/components/component-filter.d.ts +53 -0
  16. package/dist/application-spec/core/components/component-filter.js +1 -0
  17. package/dist/application-spec/core/components/index.d.ts +2 -0
  18. package/dist/application-spec/core/components/index.js +1 -0
  19. package/dist/application-spec/core/components/sdk-code-ref.d.ts +9 -0
  20. package/dist/application-spec/core/components/sdk-code-ref.js +1 -0
  21. package/dist/application-spec/core/enhanced-json-value.d.ts +0 -68
  22. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  23. package/dist/application-spec/core/expressions/index.d.ts +2 -0
  24. package/dist/application-spec/core/expressions/index.js +1 -0
  25. package/dist/application-spec/core/expressions/relation-expression-params.d.ts +11 -0
  26. package/dist/application-spec/core/expressions/sdk-expression-implementation.d.ts +24 -0
  27. package/dist/application-spec/core/expressions/sdk-expression-implementation.js +1 -0
  28. package/dist/application-spec/core/index.d.ts +2 -0
  29. package/dist/application-spec/core/index.js +1 -1
  30. package/dist/application-spec/core/json-value.d.ts +1 -1
  31. package/dist/application-spec/{core → enhanced-json}/eval-to-constant.d.ts +1 -1
  32. package/dist/application-spec/enhanced-json/index.d.ts +4 -0
  33. package/dist/application-spec/enhanced-json/index.js +1 -0
  34. package/dist/application-spec/enhanced-json/is-enhanced-json-array.d.ts +2 -0
  35. package/dist/application-spec/enhanced-json/is-enhanced-json-array.js +1 -0
  36. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.d.ts +18 -0
  37. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.js +1 -0
  38. package/dist/application-spec/enhanced-json/schema-from-value.d.ts +24 -0
  39. package/dist/application-spec/enhanced-json/schema-from-value.js +1 -0
  40. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.d.ts +14 -0
  41. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.js +1 -0
  42. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.d.ts +12 -0
  43. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.js +1 -0
  44. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.d.ts +13 -0
  45. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.js +1 -0
  46. package/dist/application-spec/errors/diagnostic-codes.d.ts +23 -0
  47. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  48. package/dist/application-spec/errors/diagnostic-messages.d.ts +27 -1
  49. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  50. package/dist/application-spec/generate-application/code/common/code-imports.js +1 -1
  51. package/dist/application-spec/generate-application/code/common/env-reader.js +2 -2
  52. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  53. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  54. package/dist/application-spec/generate-application/code/common/single-quoted-string.d.ts +6 -0
  55. package/dist/application-spec/generate-application/code/common/single-quoted-string.js +1 -0
  56. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  57. package/dist/application-spec/generate-application/code/generate-application-code.d.ts +3 -2
  58. package/dist/application-spec/generate-application/code/generate-application-code.js +1 -1
  59. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +22 -14
  60. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  61. package/dist/application-spec/generate-application/code/standalone-app-files.d.ts +2 -2
  62. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  63. package/dist/application-spec/generate-application/code/story-files.js +1 -1
  64. package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -0
  65. package/dist/application-spec/generate-application/code/templates/application-types.js +6 -6
  66. package/dist/application-spec/generate-application/code/templates/common/doc-comment.d.ts +2 -0
  67. package/dist/application-spec/generate-application/code/templates/common/doc-comment.js +1 -0
  68. package/dist/application-spec/generate-application/code/templates/common/format-property-key.d.ts +7 -0
  69. package/dist/application-spec/generate-application/code/templates/common/format-property-key.js +1 -0
  70. package/dist/application-spec/generate-application/code/templates/common/schema-to-type-string.js +3 -3
  71. package/dist/application-spec/generate-application/code/templates/configurator-config.js +6 -4
  72. package/dist/application-spec/generate-application/code/templates/configurator-globals.d.ts +2 -1
  73. package/dist/application-spec/generate-application/code/templates/configurator-globals.js +19 -6
  74. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +35 -0
  75. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +5 -0
  76. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.d.ts +1 -0
  77. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.js +1 -0
  78. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.d.ts +1 -1
  79. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +7 -7
  80. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  81. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  82. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +69 -73
  83. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +8 -0
  84. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  85. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  86. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-presets.js +1 -1
  87. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  88. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  89. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +21 -21
  90. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.d.ts +1 -1
  91. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.js +2 -2
  92. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +3 -2
  93. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  94. package/dist/application-spec/generate-application/code/templates/domain-spec.js +12 -12
  95. package/dist/application-spec/generate-application/code/templates/domain.js +3 -3
  96. package/dist/application-spec/generate-application/code/templates/eslint-config.d.ts +5 -0
  97. package/dist/application-spec/generate-application/code/templates/eslint-config.js +4 -5
  98. package/dist/application-spec/generate-application/code/templates/frontend-config.js +3 -5
  99. package/dist/application-spec/generate-application/code/templates/gitignore.js +0 -3
  100. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.js +7 -7
  101. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.d.ts +12 -0
  102. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.js +7 -0
  103. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.d.ts +43 -0
  104. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +33 -0
  105. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +2 -0
  106. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  107. package/dist/application-spec/generate-application/code/templates/globals.js +24 -43
  108. package/dist/application-spec/generate-application/code/templates/index.d.ts +3 -10
  109. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  110. package/dist/application-spec/generate-application/code/templates/lingui-rc.d.ts +5 -0
  111. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +4 -4
  112. package/dist/application-spec/generate-application/code/templates/prettier-config.d.ts +5 -0
  113. package/dist/application-spec/generate-application/code/templates/prettier-config.js +4 -5
  114. package/dist/application-spec/generate-application/code/templates/root-tsconfig.d.ts +6 -0
  115. package/dist/application-spec/generate-application/code/templates/root-tsconfig.js +2 -0
  116. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  117. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +1 -1
  118. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +5 -5
  119. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +9 -3
  120. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  121. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +2 -2
  122. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +38 -14
  123. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -4
  124. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
  125. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
  126. package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
  127. package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
  128. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
  129. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
  130. package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
  131. package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
  132. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
  133. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
  134. package/dist/application-spec/generate-application/code/templates/story/phx-module.d.ts +8 -2
  135. package/dist/application-spec/generate-application/code/templates/story/phx-module.js +15 -3
  136. package/dist/application-spec/generate-application/code/templates/story/wrapper.d.ts +3 -0
  137. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -1
  138. package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
  139. package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
  140. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +6 -1
  141. package/dist/application-spec/generate-application/code/templates/webhook-index.js +10 -1
  142. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -3
  143. package/dist/application-spec/generate-application/index.d.ts +2 -0
  144. package/dist/application-spec/generate-application/index.js +1 -1
  145. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +6 -4
  146. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +1 -1
  147. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +9 -3
  148. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  149. package/dist/application-spec/generate-application/runtime/admin-runtime/states-runtime.d.ts +2 -2
  150. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +30 -10
  151. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  152. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +6 -4
  153. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +1 -1
  154. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +9 -6
  155. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  156. package/dist/application-spec/generate-application/runtime/configurator-runtime/states-runtime.d.ts +2 -2
  157. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +43 -0
  158. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.js +1 -0
  159. package/dist/application-spec/generate-application/runtime/factory-data/index.d.ts +3 -0
  160. package/dist/application-spec/generate-application/runtime/factory-data/index.js +1 -0
  161. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +13 -0
  162. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -0
  163. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +16 -0
  164. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -0
  165. package/dist/application-spec/generate-application/runtime/migrations/index.d.ts +1 -0
  166. package/dist/application-spec/generate-application/runtime/migrations/index.js +1 -0
  167. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +53 -0
  168. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +1 -0
  169. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +2 -2
  170. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +3 -2
  171. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  172. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +2 -1
  173. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +1 -1
  174. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +5 -1
  175. package/dist/application-spec/generate-application/runtime/sections/component-optic.js +1 -1
  176. package/dist/application-spec/generate-application/runtime/sections/data-runtime.d.ts +4 -4
  177. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +15 -6
  178. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  179. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +9 -5
  180. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  181. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +3 -1
  182. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.js +1 -1
  183. package/dist/application-spec/generate-application/runtime/sections/theme-runtime.d.ts +2 -2
  184. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +4 -6
  185. package/dist/application-spec/generate-application/runtime/spec-code/index.d.ts +2 -0
  186. package/dist/application-spec/generate-application/runtime/spec-code/index.js +1 -0
  187. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +18 -0
  188. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.js +1 -0
  189. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.d.ts +17 -0
  190. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.js +1 -0
  191. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.d.ts +9 -0
  192. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.js +1 -0
  193. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.d.ts +8 -0
  194. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.js +1 -0
  195. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +27 -0
  196. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.js +1 -0
  197. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +5 -0
  198. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -0
  199. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +68 -0
  200. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -0
  201. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +40 -0
  202. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.js +1 -0
  203. package/dist/application-spec/index.d.ts +1 -0
  204. package/dist/application-spec/index.js +1 -1
  205. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +34 -0
  206. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  207. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.d.ts +16 -0
  208. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.js +9 -0
  209. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts +9 -0
  210. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
  211. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  212. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  213. package/dist/application-spec/parse-application-files/raw-spec/parse-yaml-spec-file.js +1 -1
  214. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +47 -4
  215. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  216. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  217. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  218. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  219. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  220. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  221. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.d.ts +3 -0
  222. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js +1 -0
  223. package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +5 -0
  224. package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -0
  225. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.d.ts +6 -0
  226. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.js +1 -0
  227. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.d.ts +8 -0
  228. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.js +1 -0
  229. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts +10 -0
  230. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.js +1 -0
  231. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.d.ts +98 -0
  232. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.js +1 -0
  233. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts +13 -0
  234. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js +1 -0
  235. package/dist/application-spec/parse-application-files/spec/components/bindings/index.d.ts +2 -0
  236. package/dist/application-spec/parse-application-files/spec/components/bindings/index.js +1 -1
  237. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.d.ts +24 -0
  238. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js +1 -0
  239. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  240. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  241. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  242. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  243. package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts +8 -0
  244. package/dist/application-spec/parse-application-files/spec/components/component-state-type.js +1 -0
  245. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts +13 -0
  246. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js +1 -0
  247. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  248. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  249. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.d.ts +14 -0
  250. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.js +1 -0
  251. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +6 -0
  252. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  253. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +7 -4
  254. package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
  255. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +24 -0
  256. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -0
  257. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.d.ts +13 -0
  258. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.js +1 -0
  259. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
  260. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
  261. package/dist/application-spec/parse-application-files/spec/expressions/expression.d.ts +1 -28
  262. package/dist/application-spec/parse-application-files/spec/expressions/expression.js +1 -1
  263. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -3
  264. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  265. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  266. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  267. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  268. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +3 -1
  269. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  270. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +2 -2
  271. package/dist/application-spec/parse-application-files/spec/invariants/invariants.js +1 -1
  272. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  273. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  274. package/dist/application-spec/parse-application-files/spec/model/index.d.ts +1 -0
  275. package/dist/application-spec/parse-application-files/spec/model/index.js +1 -1
  276. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.d.ts +10 -0
  277. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.js +1 -0
  278. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  279. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  280. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  281. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  282. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  283. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  284. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.d.ts +9 -0
  285. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.js +1 -0
  286. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +4 -1
  287. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  288. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  289. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  290. package/dist/client/phoenix-api.d.ts +463 -0
  291. package/dist/configurator/ConfiguratorApp.js +1 -1
  292. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.d.ts +2 -0
  293. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.js +5 -0
  294. package/dist/configurator/app-loader-content/index.d.ts +1 -0
  295. package/dist/configurator/app-loader-content/index.js +1 -0
  296. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  297. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  298. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  299. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +41 -3
  300. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  301. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +39 -7
  302. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  303. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.d.ts +1 -1
  304. package/dist/configurator/application-runtime/extensions/systems/canvas-system.d.ts +8 -0
  305. package/dist/configurator/application-runtime/extensions/systems/canvas-system.js +1 -1
  306. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  307. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.d.ts +8 -0
  308. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.js +1 -0
  309. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.d.ts +23 -1
  310. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.js +1 -1
  311. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.d.ts +12 -0
  312. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.js +1 -0
  313. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +14 -1
  314. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  315. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +64 -7
  316. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  317. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  318. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  319. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.d.ts +14 -5
  320. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.js +1 -1
  321. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  322. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  323. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  324. package/dist/configurator/common/configurator-interface.d.ts +145 -5
  325. package/dist/configurator/common/configurator-interface.js +1 -1
  326. package/dist/configurator/common/index.d.ts +3 -1
  327. package/dist/configurator/common/index.js +1 -1
  328. package/dist/configurator/common/use-reset-camera.d.ts +6 -0
  329. package/dist/configurator/common/use-reset-camera.js +1 -0
  330. package/dist/configurator/configuration-not-found-page/BuiltInConfigurationNotFoundPage.d.ts +5 -0
  331. package/dist/configurator/configuration-not-found-page/BuiltInConfigurationNotFoundPage.js +1 -0
  332. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +6 -0
  333. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -0
  334. package/dist/configurator/configuration-not-found-page/index.d.ts +2 -0
  335. package/dist/configurator/configuration-not-found-page/index.js +1 -0
  336. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +12 -0
  337. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -0
  338. package/dist/configurator/configurator-context/PresetSelectionProvider.js +1 -1
  339. package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
  340. package/dist/configurator/configurator-context/ViewportStateSync.d.ts +2 -2
  341. package/dist/configurator/configurator-context/ViewportStateSync.js +1 -1
  342. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +11 -1
  343. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +1 -1
  344. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.d.ts +6 -0
  345. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.js +1 -0
  346. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.d.ts +7 -0
  347. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.js +1 -0
  348. package/dist/configurator/configurator-error-page/index.d.ts +2 -0
  349. package/dist/configurator/configurator-error-page/index.js +1 -0
  350. package/dist/configurator/index.d.ts +10 -0
  351. package/dist/configurator/index.js +1 -1
  352. package/dist/configurator/pages/ConfiguratorErrorPage.d.ts +0 -1
  353. package/dist/configurator/pages/ConfiguratorErrorPage.js +1 -1
  354. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  355. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +7 -0
  356. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  357. package/dist/configurator/pages/DefaultNotAuthenticatedPage.d.ts +8 -0
  358. package/dist/configurator/pages/DefaultNotAuthenticatedPage.js +1 -0
  359. package/dist/configurator/pages/DefaultPresetUi.d.ts +7 -0
  360. package/dist/configurator/pages/DefaultPresetUi.js +1 -0
  361. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  362. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  363. package/dist/configurator/pages/PresetCreationErrorPage.d.ts +1 -1
  364. package/dist/configurator/pages/PresetCreationErrorPage.js +1 -1
  365. package/dist/configurator/pages/RootPage.js +1 -1
  366. package/dist/configurator/pages/configurator-layout-name.d.ts +2 -0
  367. package/dist/configurator/pages/configurator-layout-name.js +1 -0
  368. package/dist/configurator/pages/default-configurator-elements.d.ts +13 -0
  369. package/dist/configurator/pages/default-configurator-elements.js +1 -0
  370. package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +10 -0
  371. package/dist/configurator/pages/default-elements/built-in-entity-element.js +1 -0
  372. package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +10 -0
  373. package/dist/configurator/pages/default-elements/built-in-layout-element.js +1 -0
  374. package/dist/configurator/pages/default-elements/domain-control-elements.d.ts +6 -0
  375. package/dist/configurator/pages/default-elements/domain-control-elements.js +1 -0
  376. package/dist/configurator/pages/default-elements/index.d.ts +5 -0
  377. package/dist/configurator/pages/default-elements/index.js +1 -0
  378. package/dist/configurator/pages/default-elements/recipe-panel-elements.d.ts +3 -0
  379. package/dist/configurator/pages/default-elements/recipe-panel-elements.js +1 -0
  380. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.d.ts +3 -0
  381. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.js +1 -0
  382. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.d.ts +3 -0
  383. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.js +1 -0
  384. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.d.ts +3 -0
  385. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.js +1 -0
  386. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.d.ts +3 -0
  387. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.js +1 -0
  388. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.d.ts +3 -0
  389. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.js +1 -0
  390. package/dist/configurator/pages/default-elements/scene-controls/index.d.ts +6 -0
  391. package/dist/configurator/pages/default-elements/scene-controls/index.js +1 -0
  392. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.d.ts +6 -0
  393. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.js +1 -0
  394. package/dist/configurator/pages/default-elements/sidebar-footer-elements.d.ts +7 -0
  395. package/dist/configurator/pages/default-elements/sidebar-footer-elements.js +1 -0
  396. package/dist/configurator/pages/default-elements/toolbar-elements.d.ts +7 -0
  397. package/dist/configurator/pages/default-elements/toolbar-elements.js +1 -0
  398. package/dist/configurator/pages/error-boundaries/GeneralErrorBoundary.js +1 -1
  399. package/dist/configurator/pages/error-boundaries/LoadingErrorBoundary.js +1 -1
  400. package/dist/configurator/pages/index.d.ts +1 -0
  401. package/dist/configurator/pages/index.js +1 -1
  402. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.d.ts +4 -0
  403. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.js +1 -0
  404. package/dist/configurator/preset-screen-elements/PresetPageActionElement.d.ts +4 -0
  405. package/dist/configurator/preset-screen-elements/PresetPageActionElement.js +1 -0
  406. package/dist/configurator/preset-screen-elements/index.d.ts +2 -0
  407. package/dist/configurator/preset-screen-elements/index.js +1 -0
  408. package/dist/configurator/scene/index.d.ts +1 -0
  409. package/dist/configurator/scene/index.js +1 -1
  410. package/dist/configurator/scene/scene-controls/DeleteEntityFab.js +1 -1
  411. package/dist/configurator/scene/scene-controls/SelectionHotspot.js +1 -1
  412. package/dist/configurator/scene/scene-controls/ToolFab.d.ts +4 -0
  413. package/dist/configurator/scene/scene-controls/ToolFab.js +1 -1
  414. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  415. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  416. package/dist/configurator/scene/scene-controls/use-scene-control-tooltip.d.ts +2 -1
  417. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  418. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  419. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  420. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  421. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  422. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  423. package/dist/configurator/scene/scene-entity/scene-controls/SceneEntityHtmlHotspots.js +1 -1
  424. package/dist/configurator/toolbar-actions/index.d.ts +3 -0
  425. package/dist/configurator/toolbar-actions/index.js +1 -0
  426. package/dist/configurator/toolbar-actions/use-assistant-panel.d.ts +18 -0
  427. package/dist/configurator/toolbar-actions/use-assistant-panel.js +1 -0
  428. package/dist/configurator/toolbar-actions/use-measurements.d.ts +35 -0
  429. package/dist/configurator/toolbar-actions/use-measurements.js +1 -0
  430. package/dist/configurator/toolbar-actions/use-toolbar-actions.d.ts +100 -0
  431. package/dist/configurator/toolbar-actions/use-toolbar-actions.js +1 -0
  432. package/dist/configurator/toolbar-actions/use-toolbar-help.d.ts +7 -0
  433. package/dist/configurator/toolbar-actions/use-toolbar-help.js +1 -0
  434. package/dist/configurator/ui/assistant/AssistantChips.d.ts +10 -3
  435. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  436. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -2
  437. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  438. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  439. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  440. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +8 -0
  441. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -0
  442. package/dist/configurator/ui/assistant/alert/index.d.ts +2 -0
  443. package/dist/configurator/ui/assistant/alert/index.js +1 -0
  444. package/dist/configurator/ui/assistant/alert/remark-alerts.d.ts +10 -0
  445. package/dist/configurator/ui/assistant/alert/remark-alerts.js +1 -0
  446. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  447. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  448. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  449. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  450. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  451. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  452. package/dist/configurator/ui/assistant/entity-link/index.d.ts +2 -0
  453. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  454. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +19 -0
  455. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -0
  456. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +11 -0
  457. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -0
  458. package/dist/configurator/ui/assistant/form/describe-build-errors.d.ts +6 -0
  459. package/dist/configurator/ui/assistant/form/describe-build-errors.js +1 -0
  460. package/dist/configurator/ui/assistant/form/form-model.d.ts +37 -0
  461. package/dist/configurator/ui/assistant/form/form-model.js +1 -0
  462. package/dist/configurator/ui/assistant/form/form-state.d.ts +4 -0
  463. package/dist/configurator/ui/assistant/form/form-state.js +1 -0
  464. package/dist/configurator/ui/assistant/form/index.d.ts +4 -0
  465. package/dist/configurator/ui/assistant/form/index.js +1 -0
  466. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +10 -0
  467. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -0
  468. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +13 -0
  469. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -0
  470. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +3 -0
  471. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.js +1 -0
  472. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.d.ts +31 -0
  473. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.js +1 -0
  474. package/dist/configurator/ui/assistant/form/registry/form-element-definition.d.ts +16 -0
  475. package/dist/configurator/ui/assistant/form/registry/form-element-definition.js +1 -0
  476. package/dist/configurator/ui/assistant/form/registry/form-registry.d.ts +31 -0
  477. package/dist/configurator/ui/assistant/form/registry/form-registry.js +1 -0
  478. package/dist/configurator/ui/assistant/form/registry/index.d.ts +6 -0
  479. package/dist/configurator/ui/assistant/form/registry/index.js +1 -0
  480. package/dist/configurator/ui/assistant/form/registry/use-form-registry.d.ts +8 -0
  481. package/dist/configurator/ui/assistant/form/registry/use-form-registry.js +1 -0
  482. package/dist/configurator/ui/assistant/form-elements/FormCard.d.ts +9 -0
  483. package/dist/configurator/ui/assistant/form-elements/FormCard.js +1 -0
  484. package/dist/configurator/ui/assistant/form-elements/FormConfirm.d.ts +9 -0
  485. package/dist/configurator/ui/assistant/form-elements/FormConfirm.js +1 -0
  486. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +6 -0
  487. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -0
  488. package/dist/configurator/ui/assistant/form-elements/FormNumber.d.ts +9 -0
  489. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -0
  490. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +6 -0
  491. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -0
  492. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +6 -0
  493. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -0
  494. package/dist/configurator/ui/assistant/form-elements/FormSwatch.d.ts +10 -0
  495. package/dist/configurator/ui/assistant/form-elements/FormSwatch.js +1 -0
  496. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +6 -0
  497. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -0
  498. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.d.ts +10 -0
  499. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.js +1 -0
  500. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +38 -0
  501. package/dist/configurator/ui/assistant/form-elements/form-element-props.js +1 -0
  502. package/dist/configurator/ui/assistant/form-elements/index.d.ts +9 -0
  503. package/dist/configurator/ui/assistant/form-elements/index.js +1 -0
  504. package/dist/configurator/ui/assistant/index.d.ts +3 -0
  505. package/dist/configurator/ui/assistant/index.js +1 -1
  506. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +16 -0
  507. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -0
  508. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.d.ts +34 -0
  509. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.js +1 -0
  510. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.d.ts +25 -0
  511. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.js +1 -0
  512. package/dist/configurator/ui/assistant/reference-link/index.d.ts +3 -0
  513. package/dist/configurator/ui/assistant/reference-link/index.js +1 -0
  514. package/dist/configurator/ui/assistant/reference-link/reference-styles.d.ts +12 -0
  515. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -0
  516. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.d.ts +8 -0
  517. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.js +1 -0
  518. package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +9 -0
  519. package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -0
  520. package/dist/configurator/ui/assistant/resource-image/index.d.ts +3 -0
  521. package/dist/configurator/ui/assistant/resource-image/index.js +1 -0
  522. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +2 -0
  523. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -0
  524. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.d.ts +5 -0
  525. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.js +1 -0
  526. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +9 -0
  527. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -0
  528. package/dist/configurator/ui/assistant/screenshots/index.d.ts +2 -0
  529. package/dist/configurator/ui/assistant/screenshots/index.js +1 -0
  530. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +14 -0
  531. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -0
  532. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +4 -2
  533. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  534. package/dist/configurator/ui/assistant/thread-items.d.ts +8 -1
  535. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  536. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  537. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -1
  538. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  539. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  540. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  541. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  542. package/dist/configurator/ui/configurator-layout/slots/canvas/LayoutCanvas.js +1 -1
  543. package/dist/configurator/ui/configurator-layout/slots/canvas/SharedCanvas.js +1 -1
  544. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.d.ts +101 -0
  545. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  546. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  547. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  548. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.d.ts +1 -1
  549. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.js +1 -1
  550. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  551. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  552. package/dist/configurator/ui/configurator-layout/slots/services/Services.js +1 -1
  553. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  554. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  555. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.d.ts +1 -1
  556. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.js +1 -1
  557. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  558. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  559. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +0 -74
  560. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  561. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  562. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.d.ts +5 -0
  563. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.js +1 -0
  564. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  565. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +4 -4
  566. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  567. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  568. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  569. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  570. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  571. package/dist/configurator/ui/index.d.ts +1 -0
  572. package/dist/configurator/ui/index.js +1 -1
  573. package/dist/configurator/ui/legacy/layout/common/CommonFinalizeButton.js +1 -1
  574. package/dist/configurator/ui/legacy/layout/common/CommonSummaryButton.js +1 -1
  575. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  576. package/dist/configurator/ui/legacy/layout/common/ReactiveInterfaceLayout.js +1 -1
  577. package/dist/configurator/ui/legacy/layout/common/ResponsiveFinalizeButton.js +1 -1
  578. package/dist/configurator/ui/legacy/layout/common/SummaryReadLayout.js +1 -1
  579. package/dist/configurator/ui/legacy/layout/simple/SimpleOwnerLayout.js +1 -1
  580. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  581. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  582. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  583. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  584. package/dist/configurator/ui/legacy/layout/steps/StepsSidebarFooter.js +1 -1
  585. package/dist/configurator/ui/legacy/layout/tabs/TabsOwnerLayout.js +1 -1
  586. package/dist/configurator/ui/legacy/toolbar/common/DimensionUnitSelector.js +1 -1
  587. package/dist/configurator/ui/legacy/toolbar/common/MeasurementsIndicatorsSwitch.js +1 -1
  588. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/FullscreenToolbarAction.js +1 -1
  589. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/HelpToolbarAction.js +1 -1
  590. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/MeasurementsToolbarAction.js +1 -1
  591. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/UndoRedoToolbarGroup.js +1 -1
  592. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.d.ts +0 -7
  593. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.js +2 -6
  594. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -1
  595. package/dist/configurator/ui/phoenix-layout-elements/EnterFullscreenToolbarButton.js +1 -1
  596. package/dist/configurator/ui/phoenix-layout-elements/ExitFullscreenToolbarButton.js +1 -1
  597. package/dist/configurator/ui/phoenix-layout-elements/HelpToolbarButton.js +1 -1
  598. package/dist/configurator/ui/phoenix-layout-elements/LanguageMenuAction.js +1 -1
  599. package/dist/configurator/ui/phoenix-layout-elements/LanguageToolbarButton.js +1 -1
  600. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.d.ts +1 -0
  601. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.js +1 -1
  602. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.d.ts +1 -0
  603. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.js +1 -1
  604. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsMenuAction.js +1 -1
  605. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsToolbarButton.js +1 -1
  606. package/dist/configurator/ui/phoenix-layout-elements/RedoToolbarButton.js +1 -1
  607. package/dist/configurator/ui/phoenix-layout-elements/ShareToolbarButton.js +1 -1
  608. package/dist/configurator/ui/phoenix-layout-elements/UndoToolbarButton.js +1 -1
  609. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  610. package/dist/configurator/ui/phoenix-layout-elements/header/common/horizontal-tabs/DesktopHorizontalTabs.js +1 -1
  611. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.d.ts +1 -1
  612. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.js +1 -1
  613. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -8
  614. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  615. package/dist/configurator/ui/phoenix-layout-elements/index.d.ts +8 -1
  616. package/dist/configurator/ui/phoenix-layout-elements/index.js +1 -1
  617. package/dist/configurator/ui/phoenix-layout-elements/measurements/DimensionUnitSelector.js +1 -1
  618. package/dist/configurator/ui/phoenix-layout-elements/measurements/MeasurementsIndicatorsSwitch.js +1 -1
  619. package/dist/configurator/ui/phoenix-layout-elements/share/ShareModal.js +1 -1
  620. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.d.ts +7 -8
  621. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.js +1 -1
  622. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/BasicFinalizeButton.js +1 -1
  623. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/CustomFinalizeButton.js +1 -1
  624. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/EnterSummaryButton.js +1 -1
  625. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/FinalizeActions.js +1 -1
  626. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/NextStepButton.js +1 -1
  627. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  628. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  629. package/dist/configurator/ui/preset-layout/PresetUi.d.ts +4 -2
  630. package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
  631. package/dist/configurator/ui/preset-layout/index.d.ts +6 -1
  632. package/dist/configurator/ui/preset-layout/index.js +1 -1
  633. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.d.ts +10 -0
  634. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -0
  635. package/dist/configurator/ui/save-message-snackbars/index.d.ts +1 -0
  636. package/dist/configurator/ui/save-message-snackbars/index.js +1 -0
  637. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +16 -19
  638. package/dist/docs/complex-use-cases/focus-mode.mdx +2 -0
  639. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  640. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  641. package/dist/docs/controls/select-child-entity/cardselect.mdx +1 -0
  642. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  643. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  644. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  645. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  646. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  647. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  648. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  649. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  650. package/dist/docs/fabs/basic.mdx +6 -2
  651. package/dist/docs/index.json +136 -1
  652. package/dist/docs/integrations/webcomponent-api/basics.mdx +2 -0
  653. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  654. package/dist/docs/layouts/custom-layout.mdx +2597 -0
  655. package/dist/docs/layouts/gallery/ardent-compressor.mdx +3516 -0
  656. package/dist/docs/layouts/gallery/corvid-drone.mdx +3428 -0
  657. package/dist/docs/layouts/gallery/fenwick-window.mdx +2803 -0
  658. package/dist/docs/layouts/gallery/ferrule-bar-station.mdx +6567 -0
  659. package/dist/docs/layouts/gallery/kestrel-kettle.mdx +1858 -0
  660. package/dist/docs/layouts/gallery/nightjar-guitar.mdx +3683 -0
  661. package/dist/docs/layouts/gallery/sunfold-solar.mdx +2683 -0
  662. package/dist/docs/layouts/gallery/tidepool-aquascape.mdx +5031 -0
  663. package/dist/docs/layouts/header/fixed.mdx +2 -2
  664. package/dist/docs/layouts/header/floating.mdx +2 -2
  665. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  666. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  667. package/dist/docs/other-features/client-side-rendering/declarative.mdx +2 -2
  668. package/dist/docs/other-features/error-5xx.mdx +1 -1
  669. package/dist/docs/other-features/navigation-hotspot.mdx +2 -0
  670. package/dist/docs/other-features/not-found-404.mdx +1 -1
  671. package/dist/docs/other-features/side-effects.mdx +8 -11
  672. package/dist/docs/other-features/transformers.mdx +4 -0
  673. package/dist/docs/other-features/violation-messages.mdx +52 -56
  674. package/dist/docs/phoenix/application-states.mdx +9 -7
  675. package/dist/docs/phoenix/clerk-sign-in.mdx +1 -1
  676. package/dist/docs/phoenix/components.mdx +6 -0
  677. package/dist/docs/phoenix/configurator-interface.mdx +402 -81
  678. package/dist/docs/phoenix/deployments.mdx +2 -6
  679. package/dist/docs/phoenix/domain-model.mdx +6 -0
  680. package/dist/docs/phoenix/finalization.mdx +1 -1
  681. package/dist/docs/phoenix/getting-started.mdx +7 -4
  682. package/dist/docs/phoenix/layout-slots.mdx +116 -0
  683. package/dist/docs/phoenix/localization.mdx +10 -6
  684. package/dist/docs/phoenix/migration-guide.mdx +24 -11
  685. package/dist/docs/phoenix/phoenix-cli.mdx +88 -44
  686. package/dist/docs/phoenix/project-structure.mdx +80 -36
  687. package/dist/docs/phoenix/quickstart.mdx +9 -9
  688. package/dist/docs/phoenix/sdk-builder-workflow.mdx +9 -9
  689. package/dist/docs/phoenix/sessions-and-access.mdx +2 -0
  690. package/dist/docs/phoenix/testing.mdx +148 -0
  691. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  692. package/dist/docs/phoenix/webhooks.mdx +23 -6
  693. package/dist/docs/selection-and-highlight/hotspots.mdx +2 -0
  694. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -11
  695. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  696. package/dist/domain/admin-domain/index.js +1 -1
  697. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  698. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  699. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  700. package/dist/domain/application/application-config.d.ts +7 -3
  701. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  702. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  703. package/dist/domain/application/assistant/assistant-manifest.d.ts +25 -2
  704. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +46 -3
  705. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -1
  706. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  707. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  708. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  709. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  710. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  711. package/dist/domain/application/assistant/form/assistant-form-element-name.d.ts +11 -0
  712. package/dist/domain/application/assistant/form/assistant-form-element-name.js +8 -0
  713. package/dist/domain/application/assistant/form/assistant-form-elements.d.ts +174 -0
  714. package/dist/domain/application/assistant/form/assistant-form-elements.js +1 -0
  715. package/dist/domain/application/assistant/form/assistant-resource-path.d.ts +10 -0
  716. package/dist/domain/application/assistant/form/assistant-resource-path.js +1 -0
  717. package/dist/domain/application/assistant/form/index.d.ts +4 -0
  718. package/dist/domain/application/assistant/form/index.js +1 -0
  719. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  720. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  721. package/dist/domain/application/assistant/index.d.ts +8 -2
  722. package/dist/domain/application/assistant/index.js +1 -1
  723. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  724. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  725. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  726. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  727. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +50 -0
  728. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  729. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  730. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  731. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  732. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  733. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -1
  734. package/dist/domain/application/configurator-builder.d.ts +5 -2
  735. package/dist/domain/application/configurator-builder.js +1 -1
  736. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  737. package/dist/domain/application/index.d.ts +0 -4
  738. package/dist/domain/application/index.js +1 -1
  739. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  740. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  741. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  742. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  743. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  744. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +1 -1
  745. package/dist/domain/application/published-data/map-published-data.d.ts +7 -3
  746. package/dist/domain/application/web-component-property.d.ts +3 -1
  747. package/dist/domain/application/web-component-property.js +1 -1
  748. package/dist/domain/available-system-components.d.ts +1 -1
  749. package/dist/domain/available-system-components.js +1 -1
  750. package/dist/domain/core/component/domain-component-optic.d.ts +11 -19
  751. package/dist/domain/core/component/domain-component-optic.js +2 -2
  752. package/dist/domain/core/component/legacy-filter.d.ts +2 -17
  753. package/dist/domain/core/component/system-component-filter.d.ts +36 -18
  754. package/dist/domain/core/expression/constant-expressions.d.ts +16 -8
  755. package/dist/domain/core/expression/constant-expressions.js +1 -1
  756. package/dist/domain/core/expression/custom-expression.d.ts +17 -4
  757. package/dist/domain/core/expression/custom-expression.js +1 -1
  758. package/dist/domain/core/expression/expression.d.ts +1 -2
  759. package/dist/domain/core/invariant/custom-invariants.d.ts +6 -14
  760. package/dist/domain/core/invariant/invariants.d.ts +1 -4
  761. package/dist/domain/core/invariant/violation.d.ts +50 -2
  762. package/dist/domain/core/invariant/violation.js +1 -1
  763. package/dist/domain/core/model/model.d.ts +1 -1
  764. package/dist/domain/core/recipe/recipes.d.ts +18 -50
  765. package/dist/domain/core/recipe/recipes.js +1 -1
  766. package/dist/domain/core/relation/all-of-type-relation.d.ts +8 -21
  767. package/dist/domain/core/relation/all-of-type-relation.js +1 -1
  768. package/dist/domain/core/relation/direct-relation.d.ts +13 -24
  769. package/dist/domain/core/relation/index.d.ts +0 -1
  770. package/dist/domain/core/relation/indirect-relation.d.ts +12 -67
  771. package/dist/domain/core/relation/indirect-relation.js +1 -1
  772. package/dist/domain/core/relation/relation-factory.d.ts +19 -15
  773. package/dist/domain/core/relation/relation-factory.js +1 -1
  774. package/dist/domain/core/schema/extended-schema-validator.js +1 -1
  775. package/dist/domain/core/state/migrations.d.ts +14 -45
  776. package/dist/domain/core/state/migrations.js +1 -1
  777. package/dist/domain/core/state/state.d.ts +1 -1
  778. package/dist/domain/domain-builder.d.ts +10 -4
  779. package/dist/domain/domain-builder.js +1 -1
  780. package/dist/domain/domain-context/index.d.ts +1 -1
  781. package/dist/domain/domain-context/store-system/store-system.d.ts +5 -0
  782. package/dist/domain/domain-context/store-system/store-system.js +1 -1
  783. package/dist/domain/domain-context/undo-system.d.ts +28 -1
  784. package/dist/domain/domain-context/undo-system.js +1 -1
  785. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  786. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  787. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  788. package/dist/domain/domain-runtime/access/types.js +1 -1
  789. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +15 -13
  790. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  791. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  792. package/dist/domain/domain-runtime/domain-runtime.d.ts +64 -40
  793. package/dist/domain/domain-runtime/environment/types.d.ts +1 -1
  794. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +21 -0
  795. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  796. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  797. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  798. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  799. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  800. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  801. package/dist/domain/domain-runtime/errors/index.js +1 -0
  802. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  803. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  804. package/dist/domain/domain-runtime/index.d.ts +1 -0
  805. package/dist/domain/domain-runtime/index.js +1 -1
  806. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  807. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  808. package/dist/domain/domain-runtime/spec/index.d.ts +2 -5
  809. package/dist/domain/domain-runtime/spec/index.js +1 -1
  810. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  811. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  812. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +29 -14
  813. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  814. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.d.ts +12 -0
  815. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +1 -0
  816. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +1 -1
  817. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  818. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +10 -0
  819. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  820. package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.d.ts +23 -0
  821. package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.js +1 -0
  822. package/dist/domain/{project-modules → domain-runtime/spec/module-checks}/project-modules.d.ts +8 -1
  823. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  824. package/dist/domain/domain-runtime/spec/{resolve-action-modules.d.ts → module-checks/resolve-action-modules.d.ts} +2 -2
  825. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  826. package/dist/domain/domain-runtime/spec/{resolve-component-optic-modules.d.ts → module-checks/resolve-component-optic-modules.d.ts} +2 -2
  827. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  828. package/dist/domain/domain-runtime/spec/{resolve-expression-modules.d.ts → module-checks/resolve-expression-modules.d.ts} +4 -5
  829. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  830. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  831. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  832. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  833. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  834. package/dist/domain/domain-runtime/spec/selectors.d.ts +8 -7
  835. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  836. package/dist/domain/domain-runtime/spec/types.d.ts +4 -1
  837. package/dist/domain/extensions/attribute-switch.d.ts +1 -1
  838. package/dist/domain/extensions/attribute-switch.js +1 -1
  839. package/dist/domain/extensions/canvas-config.d.ts +1 -1
  840. package/dist/domain/extensions/common/angle-indicator-schema.d.ts +2 -2
  841. package/dist/domain/extensions/common/dimension-indicator-schema.d.ts +2 -2
  842. package/dist/domain/extensions/editable-angle-indicator.d.ts +1 -1
  843. package/dist/domain/extensions/editable-distance-dimension-indicator.d.ts +1 -1
  844. package/dist/domain/extensions/editable-offset-indicator.d.ts +1 -1
  845. package/dist/domain/extensions/editable-offset-indicator.js +1 -1
  846. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +24 -0
  847. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -0
  848. package/dist/domain/extensions/export-images/client-side-image.d.ts +14 -0
  849. package/dist/domain/extensions/export-images/client-side-image.js +1 -0
  850. package/dist/domain/extensions/export-images/index.d.ts +3 -0
  851. package/dist/domain/extensions/export-images/index.js +1 -0
  852. package/dist/domain/extensions/{save-template-thumbnail.d.ts → export-images/save-template-thumbnail.d.ts} +4 -4
  853. package/dist/domain/extensions/export-images/save-template-thumbnail.js +1 -0
  854. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -1
  855. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -1
  856. package/dist/domain/extensions/horizontal-tabs.d.ts +2 -2
  857. package/dist/domain/extensions/index.d.ts +1 -2
  858. package/dist/domain/extensions/index.js +1 -1
  859. package/dist/domain/extensions/list-selector-dimension-indicator.d.ts +1 -1
  860. package/dist/domain/extensions/navigation-steps.d.ts +2 -2
  861. package/dist/domain/extensions/offset-indicator.js +1 -1
  862. package/dist/domain/extensions/rotation-handle.d.ts +2 -2
  863. package/dist/domain/extensions/scene-entity-animation.js +1 -1
  864. package/dist/domain/index.d.ts +0 -1
  865. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  866. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +22 -9
  867. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  868. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  869. package/dist/domain/mocks/create-mock-domain.js +1 -1
  870. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  871. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  872. package/dist/domain/mocks/create-test-application-config.js +1 -0
  873. package/dist/domain/mocks/index.d.ts +1 -0
  874. package/dist/domain/mocks/index.js +1 -1
  875. package/dist/domain/projections/blender-projections/camera.d.ts +1 -1
  876. package/dist/domain/system-components/application-config.d.ts +2 -2
  877. package/dist/domain/system-components/child-entity-selection.js +1 -1
  878. package/dist/domain/system-components/collision-box-geometry.d.ts +4 -2
  879. package/dist/domain/system-components/collision-geometry.d.ts +4 -2
  880. package/dist/domain/system-components/collision-point-geometry.d.ts +4 -2
  881. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  882. package/dist/domain/system-components/common/recipes.d.ts +21 -3
  883. package/dist/domain/system-components/common/recipes.js +1 -1
  884. package/dist/domain/system-components/common/scene-entity-control-schema.d.ts +3 -0
  885. package/dist/domain/system-components/common/scene-entity-control-schema.js +1 -1
  886. package/dist/domain/system-components/constraint.d.ts +10 -23
  887. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  888. package/dist/domain/system-components/drag-handle.js +1 -1
  889. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  890. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  891. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  892. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  893. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -1
  894. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  895. package/dist/domain/system-components/material-swatch.js +1 -1
  896. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  897. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  898. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  899. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  900. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  901. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  902. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  903. package/dist/domain/utils/eval-cache.d.ts +1 -1
  904. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  905. package/dist/editor/Editor.d.ts +7 -0
  906. package/dist/editor/Editor.js +1 -1
  907. package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
  908. package/dist/editor/domain-editors/apply-spec-update.d.ts +8 -1
  909. package/dist/editor/domain-editors/apply-spec-update.js +1 -1
  910. package/dist/editor/domain-editors/use-implementation-files.d.ts +7 -13
  911. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  912. package/dist/editor/mocks/CreateMockYaml.js +2 -2
  913. package/dist/editor/mocks/EditorMockContext.d.ts +2 -0
  914. package/dist/editor/mocks/EditorMockContext.js +1 -1
  915. package/dist/editor/screenshot/ScreenshotHandler.js +1 -1
  916. package/dist/globals/index.d.ts +2 -0
  917. package/dist/i18n/locales/cs/messages.js +1 -1
  918. package/dist/i18n/locales/da/messages.js +1 -1
  919. package/dist/i18n/locales/de/messages.js +1 -1
  920. package/dist/i18n/locales/de-AT/messages.js +1 -1
  921. package/dist/i18n/locales/en/messages.js +1 -1
  922. package/dist/i18n/locales/en-AU/messages.js +1 -1
  923. package/dist/i18n/locales/en-GB/messages.js +1 -1
  924. package/dist/i18n/locales/es/messages.js +1 -1
  925. package/dist/i18n/locales/fr/messages.js +1 -1
  926. package/dist/i18n/locales/hu/messages.js +1 -1
  927. package/dist/i18n/locales/it/messages.js +1 -1
  928. package/dist/i18n/locales/nl/messages.js +1 -1
  929. package/dist/i18n/locales/pl/messages.js +1 -1
  930. package/dist/i18n/locales/pt/messages.js +1 -1
  931. package/dist/i18n/locales/ro/messages.js +1 -1
  932. package/dist/i18n/locales/sk/messages.js +1 -1
  933. package/dist/i18n/locales/tr/messages.js +1 -1
  934. package/dist/legacy/domain-cli/gen/configurator-builder.js +13 -12
  935. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  936. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  937. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  938. package/dist/legacy/domain-cli/gen/invariants.js +3 -4
  939. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  940. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  941. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  942. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +176 -148
  943. package/dist/legacy/domain-spec/spec/domain-spec.js +1 -1
  944. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  945. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  946. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  947. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +13 -0
  948. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  949. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +15 -14
  950. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +14 -12
  951. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +14 -13
  952. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +13 -11
  953. package/dist/phoenix/application-spec/application-spec-builder.d.ts +0 -2
  954. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  955. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +0 -2
  956. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  957. package/dist/phoenix/application-spec/generate-application-spec-story.js +2 -2
  958. package/dist/phoenix/application-spec/generate-project-files.d.ts +0 -2
  959. package/dist/phoenix/application-spec/project-files.js +1 -1
  960. package/dist/phoenix/bin.d.ts +2 -0
  961. package/dist/phoenix/bin.js +2 -0
  962. package/dist/phoenix/check-configs/built-in-eslint-config.d.ts +9 -0
  963. package/dist/phoenix/check-configs/built-in-eslint-config.js +1 -0
  964. package/dist/phoenix/check-configs/eslint-config.d.ts +10 -0
  965. package/dist/phoenix/check-configs/eslint-config.js +1 -0
  966. package/dist/phoenix/check-configs/index.d.ts +8 -0
  967. package/dist/phoenix/check-configs/index.js +1 -0
  968. package/dist/phoenix/check-configs/typescript-project.d.ts +5 -0
  969. package/dist/phoenix/check-configs/typescript-project.js +1 -0
  970. package/dist/phoenix/cli.d.ts +0 -1
  971. package/dist/phoenix/cli.js +1 -2
  972. package/dist/phoenix/commands/build.js +1 -1
  973. package/dist/phoenix/commands/check.js +1 -1
  974. package/dist/phoenix/commands/clean.js +1 -1
  975. package/dist/phoenix/commands/deploy.js +2 -2
  976. package/dist/phoenix/commands/deps/deps.d.ts +73 -0
  977. package/dist/phoenix/commands/deps/deps.js +3 -0
  978. package/dist/phoenix/commands/deps/index.d.ts +1 -0
  979. package/dist/phoenix/commands/deps/index.js +1 -0
  980. package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
  981. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
  982. package/dist/phoenix/commands/dev.js +5 -5
  983. package/dist/phoenix/commands/fix.js +1 -1
  984. package/dist/phoenix/commands/index.d.ts +1 -0
  985. package/dist/phoenix/commands/index.js +1 -1
  986. package/dist/phoenix/commands/init.d.ts +17 -5
  987. package/dist/phoenix/commands/init.js +1 -1
  988. package/dist/phoenix/commands/link.js +1 -1
  989. package/dist/phoenix/commands/prettier.js +1 -1
  990. package/dist/phoenix/commands/sync.js +1 -1
  991. package/dist/phoenix/commands/unlink.js +1 -1
  992. package/dist/phoenix/services/application-spec-project-watcher.d.ts +2 -2
  993. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  994. package/dist/phoenix/services/lingui.d.ts +8 -0
  995. package/dist/phoenix/services/lingui.js +1 -1
  996. package/dist/phoenix/services/source-archive.d.ts +1 -0
  997. package/dist/phoenix/services/source-archive.js +1 -1
  998. package/dist/phoenix/services/swc.js +1 -1
  999. package/dist/phoenix/services/vite-config.js +1 -1
  1000. package/dist/phoenix/utils/git/index.d.ts +1 -0
  1001. package/dist/phoenix/utils/git/index.js +1 -0
  1002. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  1003. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  1004. package/dist/phoenix/utils/index.d.ts +5 -2
  1005. package/dist/phoenix/utils/index.js +1 -1
  1006. package/dist/phoenix/utils/node-version/index.d.ts +1 -0
  1007. package/dist/phoenix/utils/node-version/index.js +1 -0
  1008. package/dist/phoenix/utils/node-version/supported-node-version.d.ts +12 -0
  1009. package/dist/phoenix/utils/node-version/supported-node-version.js +4 -0
  1010. package/dist/phoenix/utils/package-info.d.ts +0 -9
  1011. package/dist/phoenix/utils/package-info.js +1 -1
  1012. package/dist/phoenix/utils/package-manager/index.d.ts +2 -0
  1013. package/dist/phoenix/utils/package-manager/index.js +1 -0
  1014. package/dist/phoenix/utils/package-manager/package-manager-commands.d.ts +19 -0
  1015. package/dist/phoenix/utils/package-manager/package-manager-commands.js +1 -0
  1016. package/dist/phoenix/utils/package-manager/pnpm-project.d.ts +9 -0
  1017. package/dist/phoenix/utils/package-manager/pnpm-project.js +1 -0
  1018. package/dist/phoenix/utils/run-command.d.ts +11 -0
  1019. package/dist/phoenix/utils/run-command.js +1 -1
  1020. package/dist/phoenix/utils/sdk-tool/index.d.ts +1 -0
  1021. package/dist/phoenix/utils/sdk-tool/index.js +1 -0
  1022. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.d.ts +15 -0
  1023. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.js +1 -0
  1024. package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.d.ts +6 -0
  1025. package/dist/react-sdk/application-runtime/common-services/analytics/frontend-analytics.js +1 -0
  1026. package/dist/react-sdk/application-runtime/common-services/analytics/index.d.ts +1 -0
  1027. package/dist/react-sdk/application-runtime/common-services/analytics/index.js +1 -1
  1028. package/dist/react-sdk/application-runtime/hooks/index.d.ts +2 -0
  1029. package/dist/react-sdk/application-runtime/hooks/index.js +1 -1
  1030. package/dist/react-sdk/application-runtime/hooks/loading/index.d.ts +5 -0
  1031. package/dist/react-sdk/application-runtime/hooks/loading/index.js +1 -0
  1032. package/dist/react-sdk/application-runtime/hooks/loading/loader-host-context.d.ts +11 -0
  1033. package/dist/react-sdk/application-runtime/hooks/loading/loader-host-context.js +1 -0
  1034. package/dist/react-sdk/application-runtime/hooks/loading/use-is-awaiting-loading-phase.d.ts +8 -0
  1035. package/dist/react-sdk/application-runtime/hooks/loading/use-is-awaiting-loading-phase.js +1 -0
  1036. package/dist/react-sdk/application-runtime/hooks/loading/use-is-loader-hosted.d.ts +7 -0
  1037. package/dist/react-sdk/application-runtime/hooks/loading/use-is-loader-hosted.js +1 -0
  1038. package/dist/react-sdk/application-runtime/hooks/loading/use-loading-actions.d.ts +9 -0
  1039. package/dist/react-sdk/application-runtime/hooks/loading/use-loading-actions.js +1 -0
  1040. package/dist/react-sdk/application-runtime/hooks/loading/use-loading-application.d.ts +24 -0
  1041. package/dist/react-sdk/application-runtime/hooks/loading/use-loading-application.js +1 -0
  1042. package/dist/react-sdk/application-runtime/hooks/responsive/index.d.ts +3 -0
  1043. package/dist/react-sdk/application-runtime/hooks/responsive/index.js +1 -0
  1044. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.d.ts +9 -0
  1045. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.js +1 -0
  1046. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.d.ts +26 -0
  1047. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.js +1 -0
  1048. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.d.ts +10 -0
  1049. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.js +1 -0
  1050. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.d.ts +24 -0
  1051. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.js +1 -0
  1052. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +7 -0
  1053. package/dist/react-sdk/application-runtime/hooks/use-access-service.js +1 -1
  1054. package/dist/react-sdk/application-runtime/hooks/use-phoenix-element-slots.d.ts +2 -1
  1055. package/dist/react-sdk/application-runtime/index.d.ts +2 -0
  1056. package/dist/react-sdk/application-runtime/integration/initialize.d.ts +7 -6
  1057. package/dist/react-sdk/application-runtime/integration/initialize.js +1 -1
  1058. package/dist/react-sdk/application-runtime/integration/selectors.d.ts +11 -2
  1059. package/dist/react-sdk/application-runtime/integration/selectors.js +1 -1
  1060. package/dist/react-sdk/application-runtime/integration/types.d.ts +5 -2
  1061. package/dist/react-sdk/application-runtime/loading/actions.d.ts +45 -0
  1062. package/dist/react-sdk/application-runtime/loading/actions.js +1 -0
  1063. package/dist/react-sdk/application-runtime/loading/index.d.ts +4 -0
  1064. package/dist/react-sdk/application-runtime/loading/index.js +1 -0
  1065. package/dist/react-sdk/application-runtime/loading/initialize.d.ts +3 -0
  1066. package/dist/react-sdk/application-runtime/loading/initialize.js +1 -0
  1067. package/dist/react-sdk/application-runtime/loading/selectors.d.ts +18 -0
  1068. package/dist/react-sdk/application-runtime/loading/selectors.js +1 -0
  1069. package/dist/react-sdk/application-runtime/loading/types.d.ts +59 -0
  1070. package/dist/react-sdk/application-runtime/loading/types.js +1 -0
  1071. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  1072. package/dist/react-sdk/application-runtime/provider/ApplicationRuntime.d.ts +6 -0
  1073. package/dist/react-sdk/application-runtime/provider/ApplicationRuntime.js +1 -1
  1074. package/dist/react-sdk/application-runtime/provider/ApplicationType.d.ts +7 -0
  1075. package/dist/react-sdk/application-runtime/provider/ApplicationType.js +1 -1
  1076. package/dist/react-sdk/application-runtime/responsive/actions.d.ts +47 -0
  1077. package/dist/react-sdk/application-runtime/responsive/actions.js +1 -0
  1078. package/dist/react-sdk/application-runtime/responsive/index.d.ts +4 -0
  1079. package/dist/react-sdk/application-runtime/responsive/index.js +1 -0
  1080. package/dist/react-sdk/application-runtime/responsive/initialize.d.ts +3 -0
  1081. package/dist/react-sdk/application-runtime/responsive/initialize.js +1 -0
  1082. package/dist/react-sdk/application-runtime/responsive/selectors.d.ts +20 -0
  1083. package/dist/react-sdk/application-runtime/responsive/selectors.js +1 -0
  1084. package/dist/react-sdk/application-runtime/responsive/types.d.ts +104 -0
  1085. package/dist/react-sdk/application-runtime/responsive/types.js +1 -0
  1086. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  1087. package/dist/react-sdk/application-runtime/routing/routing-service.d.ts +34 -2
  1088. package/dist/react-sdk/application-runtime/routing/routing-service.js +1 -1
  1089. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +197 -19
  1090. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  1091. package/dist/react-sdk/domain-application-context/BackendDataProvider.js +1 -1
  1092. package/dist/react-sdk/domain-application-context/DomainLifecycleBoundary.js +1 -1
  1093. package/dist/react-sdk/domain-application-context/FrontendDataProvider.js +1 -1
  1094. package/dist/react-sdk/domain-application-context/PublishedDataProvider.js +1 -1
  1095. package/dist/react-sdk/domain-context/common-hooks/index.d.ts +9 -0
  1096. package/dist/react-sdk/domain-context/common-hooks/index.js +1 -0
  1097. package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.d.ts +23 -0
  1098. package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.js +1 -0
  1099. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +41 -0
  1100. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  1101. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +5 -4
  1102. package/dist/react-sdk/domain-context/component-hooks/index.d.ts +1 -0
  1103. package/dist/react-sdk/domain-context/component-hooks/index.js +1 -0
  1104. package/dist/react-sdk/domain-context/component-hooks/use-component.js +1 -1
  1105. package/dist/react-sdk/domain-context/entity-hooks/use-domain-entity-state.js +1 -1
  1106. package/dist/react-sdk/domain-context/entity-hooks/use-entity-price.js +1 -1
  1107. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-id.js +1 -1
  1108. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-state.js +1 -1
  1109. package/dist/react-sdk/domain-context/index.d.ts +9 -1
  1110. package/dist/react-sdk/domain-context/index.js +1 -1
  1111. package/dist/react-sdk/domain-context/system-hooks/composition-hooks.js +1 -1
  1112. package/dist/react-sdk/domain-context/system-hooks/dimension-hooks.js +1 -1
  1113. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.d.ts +8 -0
  1114. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.js +1 -0
  1115. package/dist/react-sdk/domain-context/system-hooks/hover-hooks.js +1 -1
  1116. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.d.ts +24 -0
  1117. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.js +1 -0
  1118. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +11 -0
  1119. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  1120. package/dist/react-sdk/domain-context/system-hooks/selection-hooks.js +1 -1
  1121. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.d.ts +32 -0
  1122. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.js +1 -0
  1123. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.d.ts +57 -0
  1124. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.js +1 -0
  1125. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.d.ts +61 -0
  1126. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.js +1 -0
  1127. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.d.ts +20 -0
  1128. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -0
  1129. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  1130. package/dist/react-sdk/handlers/FinalizeActionRunner.d.ts +13 -0
  1131. package/dist/react-sdk/handlers/FinalizeActionRunner.js +1 -0
  1132. package/dist/react-sdk/handlers/FinalizeActionsHost.d.ts +10 -0
  1133. package/dist/react-sdk/handlers/FinalizeActionsHost.js +1 -0
  1134. package/dist/react-sdk/handlers/FinalizeActionsProvider.d.ts +11 -0
  1135. package/dist/react-sdk/handlers/FinalizeActionsProvider.js +1 -0
  1136. package/dist/react-sdk/handlers/finalize-actions-context.d.ts +6 -0
  1137. package/dist/react-sdk/handlers/finalize-actions-context.js +1 -0
  1138. package/dist/react-sdk/handlers/finalize-actions-store.d.ts +23 -0
  1139. package/dist/react-sdk/handlers/finalize-actions-store.js +1 -0
  1140. package/dist/react-sdk/handlers/index.d.ts +6 -0
  1141. package/dist/react-sdk/handlers/index.js +1 -1
  1142. package/dist/react-sdk/handlers/use-finalize-action.d.ts +32 -0
  1143. package/dist/react-sdk/handlers/use-finalize-action.js +1 -0
  1144. package/dist/react-sdk/handlers/use-finalize-actions.d.ts +53 -0
  1145. package/dist/react-sdk/handlers/use-finalize-actions.js +1 -0
  1146. package/dist/react-sdk/index.d.ts +2 -0
  1147. package/dist/react-sdk/index.js +1 -1
  1148. package/dist/react-sdk/loading-state/LoaderHost.d.ts +20 -0
  1149. package/dist/react-sdk/loading-state/LoaderHost.js +1 -0
  1150. package/dist/react-sdk/loading-state/built-in-loading-phase.d.ts +9 -0
  1151. package/dist/react-sdk/loading-state/built-in-loading-phase.js +1 -0
  1152. package/dist/react-sdk/loading-state/create-app-loader.d.ts +18 -0
  1153. package/dist/react-sdk/loading-state/create-app-loader.js +1 -0
  1154. package/dist/react-sdk/loading-state/index.d.ts +4 -2
  1155. package/dist/react-sdk/loading-state/index.js +1 -1
  1156. package/dist/react-sdk/loading-state/{LoadingStateProvider.d.ts → loading-state-hooks.d.ts} +3 -12
  1157. package/dist/react-sdk/loading-state/loading-state-hooks.js +1 -0
  1158. package/dist/react-sdk/page-elements/ConfigurationNotFoundPagePropsProvider.d.ts +17 -0
  1159. package/dist/react-sdk/page-elements/ConfigurationNotFoundPagePropsProvider.js +1 -0
  1160. package/dist/react-sdk/page-elements/ConfiguratorErrorPagePropsProvider.d.ts +17 -0
  1161. package/dist/react-sdk/page-elements/ConfiguratorErrorPagePropsProvider.js +1 -0
  1162. package/dist/react-sdk/page-elements/configurator-error-page-props.d.ts +20 -0
  1163. package/dist/react-sdk/page-elements/configurator-error-page-props.js +1 -0
  1164. package/dist/react-sdk/page-elements/create-configuration-not-found-page.d.ts +15 -0
  1165. package/dist/react-sdk/page-elements/create-configuration-not-found-page.js +1 -0
  1166. package/dist/react-sdk/page-elements/create-configurator-error-page.d.ts +14 -0
  1167. package/dist/react-sdk/page-elements/create-configurator-error-page.js +1 -0
  1168. package/dist/react-sdk/page-elements/create-preset-ui.d.ts +9 -0
  1169. package/dist/react-sdk/page-elements/create-preset-ui.js +1 -0
  1170. package/dist/react-sdk/page-elements/index.d.ts +6 -0
  1171. package/dist/react-sdk/page-elements/index.js +1 -0
  1172. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.d.ts +36 -0
  1173. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.js +1 -0
  1174. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.d.ts +44 -0
  1175. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.js +1 -0
  1176. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.d.ts +38 -0
  1177. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.js +1 -0
  1178. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.d.ts +30 -0
  1179. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.js +1 -0
  1180. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.d.ts +30 -0
  1181. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.js +1 -0
  1182. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.d.ts +9 -0
  1183. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.js +1 -0
  1184. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.d.ts +9 -0
  1185. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.js +1 -0
  1186. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.d.ts +10 -0
  1187. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.js +1 -0
  1188. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.d.ts +9 -0
  1189. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.js +1 -0
  1190. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.d.ts +9 -0
  1191. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.js +1 -0
  1192. package/dist/react-sdk/scene-control-elements/index.d.ts +11 -0
  1193. package/dist/react-sdk/scene-control-elements/index.js +1 -0
  1194. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.d.ts +5 -0
  1195. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.js +1 -0
  1196. package/dist/react-sdk/session/NotAuthenticatedPage.d.ts +4 -0
  1197. package/dist/react-sdk/session/NotAuthenticatedPage.js +1 -1
  1198. package/dist/react-sdk/session/SessionServiceProvider.js +1 -1
  1199. package/dist/react-sdk/web-component/create-web-component.js +1 -1
  1200. package/dist/react-sdk/web-component/god-mode/god-mode-registry.d.ts +30 -0
  1201. package/dist/react-sdk/web-component/god-mode/god-mode-registry.js +1 -0
  1202. package/dist/react-sdk/web-component/god-mode/index.d.ts +1 -0
  1203. package/dist/react-sdk/web-component/god-mode/index.js +1 -0
  1204. package/dist/ui-sdk/icons/__generated/Lightbulb.d.ts +3 -0
  1205. package/dist/ui-sdk/icons/__generated/Lightbulb.js +1 -0
  1206. package/dist/ui-sdk/icons/__generated/XCircle.d.ts +3 -0
  1207. package/dist/ui-sdk/icons/__generated/XCircle.js +1 -0
  1208. package/dist/ui-sdk/icons/__generated/index.d.ts +4 -0
  1209. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  1210. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  1211. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +9 -0
  1212. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.js +1 -1
  1213. package/dist/ui-sdk/responsive-application/index.d.ts +1 -0
  1214. package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +59 -0
  1215. package/dist/ui-sdk/responsive-application/responsive-state-store.js +1 -0
  1216. package/dist/ui-sdk/responsive-application/use-store-responsive-info.d.ts +7 -0
  1217. package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -0
  1218. package/dist/ui-sdk/theme/types.d.ts +5 -1
  1219. package/dist/webhook/builders/webhook-builder.js +1 -1
  1220. package/package.json +58 -36
  1221. package/schema/domain-spec.json +1341 -217
  1222. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  1223. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  1224. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  1225. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -94
  1226. package/dist/application-spec/generate-application/code/templates/nvmrc.d.ts +0 -1
  1227. package/dist/application-spec/generate-application/code/templates/nvmrc.js +0 -2
  1228. package/dist/application-spec/generate-application/code/templates/package-json.d.ts +0 -10
  1229. package/dist/application-spec/generate-application/code/templates/package-json.js +0 -1
  1230. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  1231. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  1232. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  1233. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  1234. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  1235. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  1236. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  1237. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  1238. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  1239. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  1240. package/dist/application-spec/generate-application/code/templates/webhook-implementation.d.ts +0 -1
  1241. package/dist/application-spec/generate-application/code/templates/webhook-implementation.js +0 -7
  1242. package/dist/configurator/common/frontend-analytics.js +0 -1
  1243. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.d.ts +0 -4
  1244. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.js +0 -1
  1245. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.d.ts +0 -4
  1246. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.js +0 -1
  1247. package/dist/domain/application/element-registration.js +0 -1
  1248. package/dist/domain/application/handler-registration.js +0 -1
  1249. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -22
  1250. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  1251. package/dist/domain/application/resource-builder.d.ts +0 -13
  1252. package/dist/domain/application/resource-builder.js +0 -1
  1253. package/dist/domain/core/relation/relation-implementation.d.ts +0 -7
  1254. package/dist/domain/domain-runtime/spec/invariant-builder.d.ts +0 -26
  1255. package/dist/domain/domain-runtime/spec/invariant-builder.js +0 -1
  1256. package/dist/domain/domain-runtime/spec/resolve-action-modules.js +0 -1
  1257. package/dist/domain/domain-runtime/spec/resolve-component-optic-modules.js +0 -1
  1258. package/dist/domain/domain-runtime/spec/resolve-expression-modules.js +0 -1
  1259. package/dist/domain/domain-runtime/spec/resolve-invariant-modules.d.ts +0 -6
  1260. package/dist/domain/domain-runtime/spec/resolve-invariant-modules.js +0 -1
  1261. package/dist/domain/extensions/client-side-image.d.ts +0 -14
  1262. package/dist/domain/extensions/client-side-image.js +0 -1
  1263. package/dist/domain/extensions/save-template-thumbnail.js +0 -1
  1264. package/dist/domain/project-modules/index.d.ts +0 -1
  1265. package/dist/domain/project-modules/index.js +0 -1
  1266. package/dist/domain/project-modules/project-modules.js +0 -1
  1267. package/dist/phoenix/commands/generate-project-files.d.ts +0 -6
  1268. package/dist/phoenix/commands/generate-project-files.js +0 -1
  1269. package/dist/react-sdk/application-runtime/runtime/god-mode.d.ts +0 -19
  1270. package/dist/react-sdk/application-runtime/runtime/god-mode.js +0 -1
  1271. package/dist/react-sdk/loading-state/LoadingStateProvider.js +0 -1
  1272. package/dist/react-sdk/loading-state/loading-state-manager.d.ts +0 -32
  1273. package/dist/react-sdk/loading-state/loading-state-manager.js +0 -1
  1274. /package/dist/{domain/core/relation/relation-implementation.js → application-spec/core/expressions/relation-expression-params.js} +0 -0
  1275. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  1276. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  1277. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
@@ -48,51 +48,20 @@ export type MigrateFunction<LATEST_ENTITIES extends DomainEntity<string>> = (ver
48
48
  state: ReadonlyArray<DomainEntity<string>>;
49
49
  }, options: MigrateFunctionOptions) => readonly LATEST_ENTITIES[];
50
50
  /**
51
- * Builder for the state migration function.
51
+ * Creates the function that migrates a state of any registered version of the model to the latest
52
+ * one. The state is validated against the reflections of its own version, and again after every
53
+ * migration against the reflections of the version that migration yields.
54
+ *
55
+ * @param modelVersions the entity reflections of every version of the model, keyed by version
56
+ * @param latestVersion the version the state is migrated to
57
+ * @param migrations the migration to each version above the first: the one under key `n` takes a
58
+ * state of version `n - 1` to version `n`
52
59
  * @example
53
-
54
- export const migrateState = MigrateFunctionBuilder
55
-
56
- // the reflections are used for validation and sanitization
57
- .fromVersions({
58
- 1: v1Reflections,
59
- 2: v2Reflections,
60
- 3: v3Reflections,
61
- })
62
-
63
- // the latest version of the model
64
- .to(2)
65
-
66
- // the migrations between the versions
67
- .using({
68
- 2: migrationToV2,
69
- 3: migrationToV3,
70
- })
71
-
72
- .build()
73
-
60
+ * export const migrate = createMigrateFunction(
61
+ * { 1: v1Reflections, 2: v2Reflections, 3: v3Reflections },
62
+ * 3,
63
+ * { 2: migrationToV2, 3: migrationToV3 }
64
+ * )
74
65
  */
75
- export declare const MigrateFunctionBuilder: {
76
- /**
77
- * Provide the entity reflections for all versions of the model.
78
- */
79
- fromVersions: <VERSIONS extends Record<number, EntityReflections<any>>>(modelVersions: VERSIONS) => {
80
- /**
81
- * Specify the latest version of the model. I.e. the version to which the state will be migrated.
82
- */
83
- to: <LATEST extends keyof VERSIONS & number>(latestVersion: LATEST) => {
84
- /**
85
- * Provide the migrations between each consecutive version of the model.
86
- *
87
- * Migration with index `i` should migrate the state from version `i - 1` to version `i`.
88
- */
89
- using: (migrations: Record<Exclude<keyof VERSIONS, 1>, Migration<any, any>>) => {
90
- /**
91
- * Finally, build the migration function.
92
- */
93
- build: () => MigrateFunction<EntitiesOfReflections<VERSIONS[LATEST]>>;
94
- };
95
- };
96
- };
97
- };
66
+ export declare const createMigrateFunction: <VERSIONS extends Record<number, EntityReflections<any>>, LATEST extends keyof VERSIONS & number>(modelVersions: VERSIONS, latestVersion: LATEST, migrations: Record<Exclude<keyof VERSIONS, 1>, Migration<any, any>>) => MigrateFunction<EntitiesOfReflections<VERSIONS[LATEST]>>;
98
67
  export {};
@@ -1 +1 @@
1
- import e from"lodash-es/pick.js";export class StateMigrationError extends Error{constructor(e){super(e),this.name="StateMigrationError"}}export const isStateMigrationError=e=>e instanceof StateMigrationError;let t=(t,r,i,o)=>t.map(t=>{let n=r[t.type];if(!n)throw new StateMigrationError(`Unknown entity type "${t.type}". The state contains an entity whose type is not registered in the domain model for this version. Fix: register the entity type in the domain spec, or remove/migrate the stale entity from the preset or configuration data.`);if(n._meta.validator(t))return t;if(i){let r=e(t,Object.keys(n._meta.schema.properties));if(n._meta.validator(t))return o?.error(`Entity ${t.type}#${t.id} had extra fields that had to be trimmed: ${Object.keys(r)}`),r}throw new StateMigrationError(`Entity "${t.type}#${t.id}" does not match its schema in the current domain model. Validation errors: ${JSON.stringify(n._meta.validator.errors)}. Fix: update the entity data to match the schema, add a migration that transforms older data into the current shape, or re-register the schema if it changed.`)});export const MigrateFunctionBuilder={fromVersions:e=>({to:r=>({using:i=>({build:()=>(o,{logger:n,trimExtraProperties:a})=>{let s=e[o.version];if(!s)throw new StateMigrationError(`Unknown model version ${o.version}. The state declares a version that has no registered reflections. Fix: register the version in MigrateFunctionBuilder.fromVersions({ ... }), or correct the version stored on the state.`);let d=t(o.state,s,a,n);o.version===r?n?.debug(`State is already in the latest version ${r}`):n?.debug(`Migrating state from version ${o.version} to ${r}`);for(let s=o.version;s<r;s++){n?.debug(`Applying intermediate migration to version ${s+1}`);let h=e[s+1];if(!h)throw new StateMigrationError(`Unknown model version ${s+1} while migrating from ${o.version} to ${r}. An intermediate version has no registered reflections. Fix: register version ${s+1} in MigrateFunctionBuilder.fromVersions({ ... }).`);let g=i[s+1];if(!g)throw new StateMigrationError(`Missing migration from version ${s} to ${s+1}. No migration is registered for this step while migrating to ${r}. Fix: add the migration in MigrateFunctionBuilder.using({ ${s+1}: ... }).`);d=t(g(d),h,a,n)}if(!e[o.version])throw new StateMigrationError(`Unknown model version ${o.version}. The state declares a version that has no registered reflections. Fix: register the version in MigrateFunctionBuilder.fromVersions({ ... }), or correct the version stored on the state.`);return d}})})})};
1
+ import t from"lodash-es/pick.js";export class StateMigrationError extends Error{constructor(t){super(t),this.name="StateMigrationError"}}export const isStateMigrationError=t=>t instanceof StateMigrationError;let e=(e,r,i,o)=>e.map(e=>{let n=r[e.type];if(!n)throw new StateMigrationError(`Unknown entity type "${e.type}". The state contains an entity whose type is not registered in the domain model for this version. Fix: register the entity type in the domain spec, or remove/migrate the stale entity from the preset or configuration data.`);if(n._meta.validator(e))return e;if(i){let r=t(e,Object.keys(n._meta.schema.properties));if(n._meta.validator(e))return o?.error(`Entity ${e.type}#${e.id} had extra fields that had to be trimmed: ${Object.keys(r)}`),r}throw new StateMigrationError(`Entity "${e.type}#${e.id}" does not match its schema in the current domain model. Validation errors: ${JSON.stringify(n._meta.validator.errors)}. Fix: update the entity data to match the schema, add a migration that transforms older data into the current shape, or re-register the schema if it changed.`)});export const createMigrateFunction=(t,r,i)=>(o,{logger:n,trimExtraProperties:a})=>{let s=t[o.version];if(!s)throw new StateMigrationError(`Unknown model version ${o.version}. The state declares a version that has no registered reflections. Fix: register the version in the model versions passed to createMigrateFunction, or correct the version stored on the state.`);let d=e(o.state,s,a,n);o.version===r?n?.debug(`State is already in the latest version ${r}`):n?.debug(`Migrating state from version ${o.version} to ${r}`);for(let s=o.version;s<r;s++){n?.debug(`Applying intermediate migration to version ${s+1}`);let h=t[s+1];if(!h)throw new StateMigrationError(`Unknown model version ${s+1} while migrating from ${o.version} to ${r}. An intermediate version has no registered reflections. Fix: register version ${s+1} in the model versions passed to createMigrateFunction.`);let g=i[s+1];if(!g)throw new StateMigrationError(`Missing migration from version ${s} to ${s+1}. No migration is registered for this step while migrating to ${r}. Fix: add the migration under key ${s+1} in the migrations passed to createMigrateFunction.`);d=e(g(d),h,a,n)}return d};
@@ -6,4 +6,4 @@ export interface DomainState<ENTITIES extends DomainEntity<string>> {
6
6
  readonly ephemeralRecords: ReadonlyArray<ComponentSnapshot<SystemComponentTypeConstraint>>;
7
7
  }
8
8
  export type DomainStateFactory<ENTITIES extends DomainEntity<string>> = (entities: readonly ENTITIES[], ephemeralRecords: ReadonlyArray<ComponentSnapshot<SystemComponentTypeConstraint>>, rootEntityType: ENTITIES['type']) => DomainState<ENTITIES>;
9
- export declare const createInitialDomainState: <ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES>(entities: readonly ENTITIES[], rootEntityType: ALLOWED_ROOT_ENTITIES['type']) => DomainState<ENTITIES>;
9
+ export declare const createInitialDomainState: <ENTITIES extends DomainEntity<string>>(entities: readonly ENTITIES[], rootEntityType: ENTITIES['type']) => DomainState<ENTITIES>;
@@ -1,6 +1,6 @@
1
1
  import { type ExtendedJsonSchema } from '@salsita-ai/common/utils';
2
2
  import { type $DomainEntity, type $DomainEntityReflection, type ActionDefinition, type AliasMap, type AliasedExpressions, type AnyActionImplementations, type DomainEntity, DomainFactory, type EntityByType, type EntityReflections, type MigrateFunction, type SchemaOfObject } from './core/index.js';
3
- import type { ProjectModule } from './project-modules/index.js';
3
+ import { type ProjectModule } from './domain-runtime/index.js';
4
4
  type $EntityReflections<ENTITIES extends DomainEntity<string>> = {
5
5
  [TYPE in ENTITIES['type']]: $DomainEntityReflection<$DomainEntity<EntityByType<ENTITIES, TYPE>>>;
6
6
  };
@@ -24,11 +24,17 @@ export declare class DomainBuilder<ENTITIES extends DomainEntity<string>, ALLOWE
24
24
  withMigrate(migration: MigrateFunction<ENTITIES>): DomainBuilder<ENTITIES, ALLOWED_ROOT_ENTITIES, ALIASES, $MAP, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA>;
25
25
  withExpressions(implementation: AliasedExpressions<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ALIASES>): DomainBuilder<ENTITIES, ALLOWED_ROOT_ENTITIES, ALIASES, $MAP, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA>;
26
26
  /**
27
- * Adds the expressions of the `src/expressions/` files, as the generated barrel lists them. Each file
28
- * is checked against the folder's contract and added on its own, so an expression defined twice is
29
- * reported with both files instead of being overwritten by file order.
27
+ * Adds the expressions of the `src/expressions/` files, as the generated barrel lists them. The
28
+ * files are merged by `mergeExpressionModules`, which checks each one and throws every wrong file,
29
+ * every expression defined twice and every expression the domain already has, such as a generated
30
+ * one, together as one `ImplementationErrors` of `DUPLICATE_DEFINITION`s.
30
31
  */
31
32
  withExpressionModules(modules: readonly ProjectModule[]): DomainBuilder<ENTITIES, ALLOWED_ROOT_ENTITIES, ALIASES, $MAP, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA>;
33
+ /**
34
+ * Adds expressions already expanded to entity types, each with its origin. An expression that the
35
+ * domain, or an earlier one of the list, defines for the same entity type is an error.
36
+ */
37
+ private withEntityExpressions;
32
38
  /** Declares the actions of the domain, as the generated `domain-spec.ts` reads them from the spec's `actions` section. */
33
39
  withActions(actions: readonly ActionDefinition[]): DomainBuilder<ENTITIES, ALLOWED_ROOT_ENTITIES, ALIASES, $MAP, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA>;
34
40
  /** Adds the action implementations of the `src/actions/` files, as the generated barrel lists them, after checking each file against the folder's contract. */
@@ -1 +1 @@
1
- import{DomainFactory as t,MigrateFunctionBuilder as i,expandAlias as e}from"./core/index.js";import{resolveActionModules as s,resolveExpressionModules as n}from"./domain-runtime/index.js";import{withProfilerLabel as a}from"./utils/profiler-label.js";export class DomainBuilder{entities;aliasMap;$entityReflections;allowedRootEntityTypes;implemented;modelVersion;publishedData;sessionData;frontendData;backendData;migrate;isAdminDomain;actions;actionImplementations;constructor(t,i,e,s,n,a,o,h,l,r,m,d,p,c){this.entities=t,this.aliasMap=i,this.$entityReflections=e,this.allowedRootEntityTypes=s,this.implemented=n,this.modelVersion=a,this.publishedData=o,this.sessionData=h,this.frontendData=l,this.backendData=r,this.migrate=m,this.isAdminDomain=d,this.actions=p,this.actionImplementations=c}static from(t,e,s,n,a,o,h,l,r,m){let d=i.fromVersions({1:t}).to(1).using({}).build();return new DomainBuilder(t,e,s,n,{},a,o,h,l,r,d,m,{},{})}withMigrate(t){return new DomainBuilder(this.entities,this.aliasMap,this.$entityReflections,this.allowedRootEntityTypes,this.implemented,this.modelVersion,this.publishedData,this.sessionData,this.frontendData,this.backendData,t,this.isAdminDomain,this.actions,this.actionImplementations)}withExpressions(t){let i={...this.implemented};return Object.entries(t).forEach(([t,s])=>{e(this.aliasMap,t).forEach(e=>{let n={...i[e]};i[e]=n,Object.entries(s).forEach(([i,s])=>{let o=n[i];if(o)throw Error(`Duplicate expression ${e}.${i}: The expression is defined on both ${t} and ${o.origin.typeOrAlias}, which would lead to ambiguous usage. Please ensure that expressions are only defined once.`);n[i]={...s,evaluate:a(`${e}_${i}`,s.evaluate),origin:{name:i,typeOrAlias:t}}})})}),new DomainBuilder(this.entities,this.aliasMap,this.$entityReflections,this.allowedRootEntityTypes,i,this.modelVersion,this.publishedData,this.sessionData,this.frontendData,this.backendData,this.migrate,this.isAdminDomain,this.actions,this.actionImplementations)}withExpressionModules(t){return n(t,this.aliasMap).reduce((t,i)=>t.withExpressions(i.expressions),this)}withActions(t){return new DomainBuilder(this.entities,this.aliasMap,this.$entityReflections,this.allowedRootEntityTypes,this.implemented,this.modelVersion,this.publishedData,this.sessionData,this.frontendData,this.backendData,this.migrate,this.isAdminDomain,Object.fromEntries(t.map(t=>[t.name,t])),this.actionImplementations)}withActionModules(t){return this.withActionImplementations(s(t))}withActionImplementations(t){return new DomainBuilder(this.entities,this.aliasMap,this.$entityReflections,this.allowedRootEntityTypes,this.implemented,this.modelVersion,this.publishedData,this.sessionData,this.frontendData,this.backendData,this.migrate,this.isAdminDomain,this.actions,{...this.actionImplementations,...t})}build=()=>{let e=this.implemented,s=this.migrate??i.fromVersions({1:this.entities}).to(1).using({}).build();return new t({aliasMap:this.aliasMap,entityReflections:this.entities,$entityReflections:this.$entityReflections,expressions:e,allowedRootEntityTypes:this.allowedRootEntityTypes,modelVersion:this.modelVersion,migrate:s,publishedData:this.publishedData,sessionData:this.sessionData,frontendData:this.frontendData,backendData:this.backendData,isAdminDomain:this.isAdminDomain,actions:this.actions,actionImplementations:this.actionImplementations})}}
1
+ import{DomainFactory as t,createMigrateFunction as i,expandAlias as e}from"./core/index.js";import{mergeExpressionModules as s,resolveActionModules as n}from"./domain-runtime/index.js";import{withProfilerLabel as a}from"./utils/profiler-label.js";export class DomainBuilder{entities;aliasMap;$entityReflections;allowedRootEntityTypes;implemented;modelVersion;publishedData;sessionData;frontendData;backendData;migrate;isAdminDomain;actions;actionImplementations;constructor(t,i,e,s,n,a,o,h,l,m,r,d,p,c){this.entities=t,this.aliasMap=i,this.$entityReflections=e,this.allowedRootEntityTypes=s,this.implemented=n,this.modelVersion=a,this.publishedData=o,this.sessionData=h,this.frontendData=l,this.backendData=m,this.migrate=r,this.isAdminDomain=d,this.actions=p,this.actionImplementations=c}static from(t,e,s,n,a,o,h,l,m,r){let d=i({1:t},1,{});return new DomainBuilder(t,e,s,n,{},a,o,h,l,m,d,r,{},{})}withMigrate(t){return new DomainBuilder(this.entities,this.aliasMap,this.$entityReflections,this.allowedRootEntityTypes,this.implemented,this.modelVersion,this.publishedData,this.sessionData,this.frontendData,this.backendData,t,this.isAdminDomain,this.actions,this.actionImplementations)}withExpressions(t){let i=Object.entries(t);return this.withEntityExpressions(i.flatMap(([t,i])=>e(this.aliasMap,t).flatMap(e=>Object.entries(i).map(([i,s])=>({type:e,expression:{...s,origin:{name:i,typeOrAlias:t}}})))))}withExpressionModules(t){let i=new Map(Object.entries(this.implemented).map(([t,i])=>[t,new Set(Object.keys(i))]));return this.withEntityExpressions(Object.entries(s(t,this.aliasMap,void 0,i)).flatMap(([t,i])=>Object.values(i).map(i=>({type:t,expression:i}))))}withEntityExpressions(t){let i={...this.implemented};return t.forEach(({type:t,expression:e})=>{let{name:s,typeOrAlias:n}=e.origin,o={...i[t]},h=o[s];if(h)throw Error(`Duplicate expression ${t}.${s}: The expression is defined on both ${n} and ${h.origin.typeOrAlias}, which would lead to ambiguous usage. Please ensure that expressions are only defined once.`);o[s]={...e,evaluate:a(`${t}_${s}`,e.evaluate)},i[t]=o}),new DomainBuilder(this.entities,this.aliasMap,this.$entityReflections,this.allowedRootEntityTypes,i,this.modelVersion,this.publishedData,this.sessionData,this.frontendData,this.backendData,this.migrate,this.isAdminDomain,this.actions,this.actionImplementations)}withActions(t){return new DomainBuilder(this.entities,this.aliasMap,this.$entityReflections,this.allowedRootEntityTypes,this.implemented,this.modelVersion,this.publishedData,this.sessionData,this.frontendData,this.backendData,this.migrate,this.isAdminDomain,Object.fromEntries(t.map(t=>[t.name,t])),this.actionImplementations)}withActionModules(t){return this.withActionImplementations(n(t))}withActionImplementations(t){return new DomainBuilder(this.entities,this.aliasMap,this.$entityReflections,this.allowedRootEntityTypes,this.implemented,this.modelVersion,this.publishedData,this.sessionData,this.frontendData,this.backendData,this.migrate,this.isAdminDomain,this.actions,{...this.actionImplementations,...t})}build=()=>{let e=this.implemented,s=this.migrate??i({1:this.entities},1,{});return new t({aliasMap:this.aliasMap,entityReflections:this.entities,$entityReflections:this.$entityReflections,expressions:e,allowedRootEntityTypes:this.allowedRootEntityTypes,modelVersion:this.modelVersion,migrate:s,publishedData:this.publishedData,sessionData:this.sessionData,frontendData:this.frontendData,backendData:this.backendData,isAdminDomain:this.isAdminDomain,actions:this.actions,actionImplementations:this.actionImplementations})}}
@@ -2,7 +2,7 @@ export { type AnalyticsSystem, NoopAnalyticsSystem, type AnalyticsEvent, Analyti
2
2
  export { NavigationUpdateTag, isInitialNavigationUpdate, isNavigationUpdate, isInitialViewUpdate, isViewUpdate, isInitialSelectionUpdate, isSelectUpdate, isDeselectUpdate, isInitialFullscreenUpdate, isToggleFullscreenUpdate, isInitialDebugUpdate, isInitialViewportUpdate, isSetViewportUpdate, isInitialDragUpdate, isDragStartUpdate, isDragEndUpdate, isInitialToolUpdate, isToolUpdate, isExportUpdate, createAutoSelectionTransformer, NavigationSystem, type NavigationSystemContext, createResetSelectionOnNavigationTransformer, createNavigationOnSelectionTransformer, createNavigationOnDeselectTransformer, createSelectParentOnDeselectionTransformer, createNavigationOnSelectionChangeTransformer, type AnyNavigationSystem, } from './navigation-system/index.js';
3
3
  export { StoreSystem, type TransformerRegistration, type UpdateTransformer, type TransformerLogFunction, type Transformers, type StateSliceName, type StateEmissionKind, type CommitPreparedOutcome, nextDomainEntityId, getIdSequence, applyUpdates, SystemState, SystemStateInitialUpdateTag, SystemStateUpdateTag, type SystemStateContext, type AnyCreateTransformersFactory, type AnyStoreSystem, type Unregister, } from './store-system/index.js';
4
4
  export { createRefReplaceTransformer, createCascadeDeletesTransformer, createCascadeRefPruningTransformer, createCreateEntityRefsTransformer, } from './relation-transformers/index.js';
5
- export { type CanBeUndonePredicate, type CanBeUndoneContext, type UndoCapabilities, UndoSystem, UNDO_REDO_RESET_TAG, isUndoRedoReset, type AnyUndoSystem, } from './undo-system.js';
5
+ export { type CanBeUndonePredicate, type CanBeUndoneContext, type UndoCapabilities, type UndoStep, UndoSystem, UNDO_REDO_RESET_TAG, isUndoRedoReset, type AnyUndoSystem, } from './undo-system.js';
6
6
  export { DimensionSystem, type AnyDimensionSystem, type DimensionSystemContext, type AngleDimensionViolation, type DistanceDimensionViolation, type GenericDimensionViolation, } from './dimension-system/index.js';
7
7
  export { ActionSystem, type AnyActionSystem, type ActionSystemContext } from './action-system/index.js';
8
8
  export { RecipeCookerSystem, type AnyRecipeCookerSystem, type RecipeCookerSystemContext, ReplaceRecipeUpdateTag, isReplaceEntityUpdate, type IsReplaceRecipeUpdate, CreateRecipeUpdateTag, isCreateEntityUpdate, type IsCreateRecipeUpdate, } from './recipe-system/index.js';
@@ -53,6 +53,11 @@ export declare class StoreSystem<ENTITIES extends DomainEntity<string>, $MAP ext
53
53
  private readonly _context;
54
54
  readonly stateSlices: Readonly<Record<StateSliceName, ObservableWithLastValue<StateEmission<ENTITIES, $MAP>>>>;
55
55
  get isInitialized(): boolean;
56
+ /**
57
+ * True while a change the user is making, such as a drag, is staged and neither committed nor
58
+ * rolled back. A hover is shown through a staged emission too, but stages no updates.
59
+ */
60
+ get hasStagedUpdates(): boolean;
56
61
  private _onBeforeCommitHooks;
57
62
  private readonly committed;
58
63
  private readonly potentiallyInvalid;
@@ -1,2 +1,2 @@
1
- import{CompositeKeyMap as e,assertExistence as t,isEqualArray as i}from"@salsita-ai/common/utils";import{domainEntityTypeFromId as r,dragStateComponent as o,getComponentSystemFilterState as s,hoverStateComponent as n,isEqualComponentInstance as a,isSystemViewportStateComponentSnapshot as d,isVirtualEntityId as m,selectionStateComponent as l,systemUpdateFactory as c,systemVirtualEntityId as p}from"../../core/index.js";import{projectedEntitiesComponent as h}from"../../system-components/index.js";import{cloneEvalCache as v,createEvalCacheToken as f,getEvalCache as g,setEvalCache as u}from"../../utils/eval-cache.js";import{createCascadeDeletesTransformer as y,createCascadeRefPruningTransformer as S}from"../relation-transformers/index.js";import{applyUpdates as I}from"./apply-updates.js";import{LifecycleStateSlice as _}from"./lifecycle-state-slice.js";import{mergeReconciliationsUpdates as x,reconcileProjectedEntities as T}from"./reconcile-projected-entities.js";let E={uninitializedError:"StoreSystem is not initialized."},k=f({clone:e=>e}),w=class InvalidInitialStateError extends Error{emission;childError;constructor(e,t,i){let r="";"uncaught"===e.validity.severity&&(r=`: ${e.validity.error.message}`),("fatal"===e.validity.severity||"fixable"===e.validity.severity)&&(r=`: ${e.validity.entityViolations.map(e=>{let i=e.violation.message;return null!=i?t(i):e.violation.type}).join(", ")}`),super(`Initial state is not valid! Severity: ${e.validity.severity}, Cause: ${r}`),this.emission=e,this.childError=i,this.name="InvalidInitialStateError"}},b=(e,t)=>{try{return e()}catch(e){throw t(e),e}};export class StoreSystem{_context;stateSlices;get isInitialized(){return this.committed.isInitialized}_onBeforeCommitHooks=[];committed=new _(E);potentiallyInvalid=new _(E);rendered=new _(E);stagedUpdates=void 0;transformToDataUpdates=(e,t)=>{let i=!1,r=e.map(e=>"modifyComponent"===e.kind?(i=!0,this.componentModificationToDataUpdate(e,t)):e);return i?r:e};createInitialTransformPipe=()=>[{transformer:this.transformToDataUpdates,priority:1/0,registrationToken:{},name:"TransformToDataUpdates"}];transformPipe=this.createInitialTransformPipe();_cascadeDeletesTransformer=(...e)=>(this._cascadeDeletesTransformerMemo??=y(this._context.selectors.getCompositionProjections()))(...e);_cascadeDeletesTransformerMemo;_refPruningTransformer=(...e)=>(this._refPruningTransformerMemo??=S(this._context.selectors.getComponentReader()))(...e);_refPruningTransformerMemo;_deselectOnDeleteTransformer=(e,t)=>{let i=new Set(e.filter(e=>"deleteEntity"===e.kind).map(e=>e.entityId));if(0===i.size)return e;let r=s(t).selectedEntityId;return r&&i.has(r)?[...e,c.EphemeralRecordModification({componentInstance:{entityId:p,componentType:l},updateTag:"AutoDeselectRemovedProjectedEntity",writableState:{selectedEntityId:t.rootEntityId}})]:e};constructor(e){this._context=e,this.stateSlices={committed:this.committed.observable,rendered:this.rendered.observable,potentiallyInvalid:this.potentiallyInvalid.observable}}_validateState=e=>this._context.selectors.getValidationProjections().validateState(e);initialize=()=>{let e=this._context.selectors.getInitialDomainState();this.stagedUpdates=void 0;let t=this._validateState(e),i={kind:"reset",state:e,validity:t,tag:void 0,transformationLog:void 0},r=i;if(!r.validity.valid&&"fatal"===r.validity.severity||"fixable"===r.validity.severity){this._context.domainServicesSelectors.getLogger().debug("Trying to fix initial emission:",r);let e=r.state,{transformedUpdates:t,transformationLog:i}=this.applyTransformers([],e,"committed"),o=I(this.transformToDataUpdates(t,e),e);v(e,o),r={kind:"reset",state:o,validity:this._validateState(o),tag:"fixed",transformationLog:i}}if(!r.validity.valid){if(this._context.domainServicesSelectors.getLogger().error("Invalid initial emission:",{initialEmission:i,fixedEmission:r}),"uncaught"===r.validity.severity)throw new w(r,this._context.domainServicesSelectors.getResolveLocalizable(),r.validity.error??void 0);throw new w(r,this._context.domainServicesSelectors.getResolveLocalizable())}this.committed.next(r),this.rendered.next(r),this.potentiallyInvalid.next(r)};registerTransformer(e,i,r){let o={};return((e,i,r)=>{let o=0;for(;o<e.length&&0>=r(t(e[o]),i);)o++;e.splice(o,0,i)})(this.transformPipe,{registrationToken:o,transformer:i,priority:e,name:r},(e,t)=>e.priority===t.priority?0:e.priority<t.priority?-1:1),()=>{let e=this.transformPipe.findIndex(e=>e.registrationToken===o);-1!==e&&this.transformPipe.splice(e,1)}}onBeforeCommit(e){return this._onBeforeCommitHooks.push(e),()=>{this._onBeforeCommitHooks=this._onBeforeCommitHooks.filter(t=>t!==e)}}componentModificationToDataUpdate=(e,t)=>{let i=e.entityId;if(!m(i)){let t=this._context.selectors.getComponentReaderIndexes().opticMap.get(r(i))?.get(e.componentInstance.componentType)?.get(e.componentInstance.instanceName);if(t?.kind==="simple"){let r=t.write(e.writableState);return{kind:"modifyDomainEntity",entityId:i,updateTag:e.updateTag,stateDelta:r,hint:e.hint,agentHint:e.agentHint,origin:e}}}let o=t.ephemeralRecords.find(t=>a(t.componentInstance,e.componentInstance));if(o)return{kind:"modifyEphemeralRecord",entityId:e.entityId,updateTag:e.updateTag,componentInstance:o.componentInstance,writableState:e.writableState,hint:e.hint,agentHint:e.agentHint};throw Error(`Component ${e.componentInstance.componentType.name} is not attached on entity #${e.entityId}`)};getNewState=(e,t)=>{let i=I(this.transformToDataUpdates(e,t),t);return v(this.rendered.isInitialized?this.rendered.value.state:t,i),i};applyTransformers(e,t,i){let r=this._context.environmentSelectors.getEnvironmentIsDev()?[]:void 0;return{transformedUpdates:this.transformPipe.reduce((e,{transformer:o,name:s})=>{let n,a=r?[]:void 0,d=a?(e,t,i)=>{n=e,a.push({phase:e,message:t,data:i})}:void 0,m=b(()=>o(e,t,i,d),o=>{this._context.domainServicesSelectors.getLogger().error("Error while applying transformer!",{name:s,updates:e,previousState:t,kind:i,transformationLog:r},o instanceof Error?o:Error(String(o)))});return a&&r&&r.push({name:s,status:n??(m===e?"no-event":"apply"),entries:a,updatesIn:e,updatesOut:m}),m},e),transformationLog:r}}_updateProjectedEntities(e,t,r){if(!e.validity.valid)return e;let o=this._context.selectors.getComponentReader().readManyComponents({componentTypes:[h]},e.state),s=g(e.previousState,k);if(s&&i(s,o))return e;let n=0,a=e,d=[];for(;a.validity.valid;){n++;let i=T(a.state.entities,o,t);if(0===i.length)break;if(n>10)throw Error(`Maximum number of reconciliation rounds reached: 10. Projected entities seem to be recursively depending on themselves.
1
+ import{CompositeKeyMap as e,assertExistence as t,isEqualArray as i}from"@salsita-ai/common/utils";import{domainEntityTypeFromId as r,dragStateComponent as o,getComponentSystemFilterState as s,hoverStateComponent as n,isEqualComponentInstance as a,isSystemViewportStateComponentSnapshot as d,isVirtualEntityId as m,selectionStateComponent as l,systemUpdateFactory as c,systemVirtualEntityId as p}from"../../core/index.js";import{projectedEntitiesComponent as h}from"../../system-components/index.js";import{cloneEvalCache as v,createEvalCacheToken as f,getEvalCache as g,setEvalCache as u}from"../../utils/eval-cache.js";import{createCascadeDeletesTransformer as y,createCascadeRefPruningTransformer as S}from"../relation-transformers/index.js";import{applyUpdates as I}from"./apply-updates.js";import{LifecycleStateSlice as _}from"./lifecycle-state-slice.js";import{mergeReconciliationsUpdates as x,reconcileProjectedEntities as T}from"./reconcile-projected-entities.js";let E={uninitializedError:"StoreSystem is not initialized."},k=f({clone:e=>e}),w=class InvalidInitialStateError extends Error{emission;childError;constructor(e,t,i){let r="";"uncaught"===e.validity.severity&&(r=`: ${e.validity.error.message}`),("fatal"===e.validity.severity||"fixable"===e.validity.severity)&&(r=`: ${e.validity.entityViolations.map(e=>{let i=e.violation.message;return null!=i?t(i):e.violation.type}).join(", ")}`),super(`Initial state is not valid! Severity: ${e.validity.severity}, Cause: ${r}`),this.emission=e,this.childError=i,this.name="InvalidInitialStateError"}},b=(e,t)=>{try{return e()}catch(e){throw t(e),e}};export class StoreSystem{_context;stateSlices;get isInitialized(){return this.committed.isInitialized}get hasStagedUpdates(){return void 0!==this.stagedUpdates}_onBeforeCommitHooks=[];committed=new _(E);potentiallyInvalid=new _(E);rendered=new _(E);stagedUpdates=void 0;transformToDataUpdates=(e,t)=>{let i=!1,r=e.map(e=>"modifyComponent"===e.kind?(i=!0,this.componentModificationToDataUpdate(e,t)):e);return i?r:e};createInitialTransformPipe=()=>[{transformer:this.transformToDataUpdates,priority:1/0,registrationToken:{},name:"TransformToDataUpdates"}];transformPipe=this.createInitialTransformPipe();_cascadeDeletesTransformer=(...e)=>(this._cascadeDeletesTransformerMemo??=y(this._context.selectors.getCompositionProjections()))(...e);_cascadeDeletesTransformerMemo;_refPruningTransformer=(...e)=>(this._refPruningTransformerMemo??=S(this._context.selectors.getComponentReader()))(...e);_refPruningTransformerMemo;_deselectOnDeleteTransformer=(e,t)=>{let i=new Set(e.filter(e=>"deleteEntity"===e.kind).map(e=>e.entityId));if(0===i.size)return e;let r=s(t).selectedEntityId;return r&&i.has(r)?[...e,c.EphemeralRecordModification({componentInstance:{entityId:p,componentType:l},updateTag:"AutoDeselectRemovedProjectedEntity",writableState:{selectedEntityId:t.rootEntityId}})]:e};constructor(e){this._context=e,this.stateSlices={committed:this.committed.observable,rendered:this.rendered.observable,potentiallyInvalid:this.potentiallyInvalid.observable}}_validateState=e=>this._context.selectors.getValidationProjections().validateState(e);initialize=()=>{let e=this._context.selectors.getInitialDomainState();this.stagedUpdates=void 0;let t=this._validateState(e),i={kind:"reset",state:e,validity:t,tag:void 0,transformationLog:void 0},r=i;if(!r.validity.valid&&"fatal"===r.validity.severity||"fixable"===r.validity.severity){this._context.domainServicesSelectors.getLogger().debug("Trying to fix initial emission:",r);let e=r.state,{transformedUpdates:t,transformationLog:i}=this.applyTransformers([],e,"committed"),o=I(this.transformToDataUpdates(t,e),e);v(e,o),r={kind:"reset",state:o,validity:this._validateState(o),tag:"fixed",transformationLog:i}}if(!r.validity.valid){if(this._context.domainServicesSelectors.getLogger().error("Invalid initial emission:",{initialEmission:i,fixedEmission:r}),"uncaught"===r.validity.severity)throw new w(r,this._context.domainServicesSelectors.getResolveLocalizable(),r.validity.error??void 0);throw new w(r,this._context.domainServicesSelectors.getResolveLocalizable())}this.committed.next(r),this.rendered.next(r),this.potentiallyInvalid.next(r)};registerTransformer(e,i,r){let o={};return((e,i,r)=>{let o=0;for(;o<e.length&&0>=r(t(e[o]),i);)o++;e.splice(o,0,i)})(this.transformPipe,{registrationToken:o,transformer:i,priority:e,name:r},(e,t)=>e.priority===t.priority?0:e.priority<t.priority?-1:1),()=>{let e=this.transformPipe.findIndex(e=>e.registrationToken===o);-1!==e&&this.transformPipe.splice(e,1)}}onBeforeCommit(e){return this._onBeforeCommitHooks.push(e),()=>{this._onBeforeCommitHooks=this._onBeforeCommitHooks.filter(t=>t!==e)}}componentModificationToDataUpdate=(e,t)=>{let i=e.entityId;if(!m(i)){let t=this._context.selectors.getComponentReaderIndexes().opticMap.get(r(i))?.get(e.componentInstance.componentType)?.get(e.componentInstance.instanceName);if(t?.kind==="simple"){let r=t.write(e.writableState);return{kind:"modifyDomainEntity",entityId:i,updateTag:e.updateTag,stateDelta:r,hint:e.hint,agentHint:e.agentHint,origin:e}}}let o=t.ephemeralRecords.find(t=>a(t.componentInstance,e.componentInstance));if(o)return{kind:"modifyEphemeralRecord",entityId:e.entityId,updateTag:e.updateTag,componentInstance:o.componentInstance,writableState:e.writableState,hint:e.hint,agentHint:e.agentHint};throw Error(`Component ${e.componentInstance.componentType.name} is not attached on entity #${e.entityId}`)};getNewState=(e,t)=>{let i=I(this.transformToDataUpdates(e,t),t);return v(this.rendered.isInitialized?this.rendered.value.state:t,i),i};applyTransformers(e,t,i){let r=this._context.environmentSelectors.getEnvironmentIsDev()?[]:void 0;return{transformedUpdates:this.transformPipe.reduce((e,{transformer:o,name:s})=>{let n,a=r?[]:void 0,d=a?(e,t,i)=>{n=e,a.push({phase:e,message:t,data:i})}:void 0,m=b(()=>o(e,t,i,d),o=>{this._context.domainServicesSelectors.getLogger().error("Error while applying transformer!",{name:s,updates:e,previousState:t,kind:i,transformationLog:r},o instanceof Error?o:Error(String(o)))});return a&&r&&r.push({name:s,status:n??(m===e?"no-event":"apply"),entries:a,updatesIn:e,updatesOut:m}),m},e),transformationLog:r}}_updateProjectedEntities(e,t,r){if(!e.validity.valid)return e;let o=this._context.selectors.getComponentReader().readManyComponents({componentTypes:[h]},e.state),s=g(e.previousState,k);if(s&&i(s,o))return e;let n=0,a=e,d=[];for(;a.validity.valid;){n++;let i=T(a.state.entities,o,t);if(0===i.length)break;if(n>10)throw Error(`Maximum number of reconciliation rounds reached: 10. Projected entities seem to be recursively depending on themselves.
2
2
  If expressions populating 'projectedEntities' components rely on other projected entities, make sure that the dependencies do not have cycles.`);let s=(d=x(d,i)).map(e=>e.dataUpdate),m=this._cascadeDeletesTransformer(s,e.previousState,r,void 0,t),l=this._refPruningTransformer(m,e.previousState,r,void 0,t),c=this._deselectOnDeleteTransformer(l,e.previousState,r,void 0,t);if(!(a=this.prepareStateEmissionWithoutTransformation([...t,...c],e.previousState,r)).validity.valid)return this._context.domainServicesSelectors.getLogger().error("Reconciliation of projected entities led to an invalid state! Reconciliation skipped.",{emission:a}),e;o=this._context.selectors.getComponentReader().readManyComponents({componentTypes:[h]},a.state)}return u(a.state,k,o),a}prepareStateEmission(e,t,i){let{transformedUpdates:r,transformationLog:o}=this.applyTransformers(e,t,i),s=this.prepareStateEmissionWithoutTransformation(r,t,i);return{...this._updateProjectedEntities(s,r,i),transformationLog:o}}emissionCache=new e([Map,WeakMap,WeakMap,WeakMap,WeakMap]);getEmissionCacheKey=(e,t,i)=>[e,t,i,this._context.selectors.getStoreRuntimeDependencies(),this._context.selectors.getExpressionContext()];prepareStateEmissionWithoutTransformation=(e,t,i)=>{let r=this.getEmissionCacheKey(i,t,e),o=this.emissionCache.get(r);if(o)return o;let s=b(()=>this.transformToDataUpdates(e,t),r=>{this._context.domainServicesSelectors.getLogger().error("Error while transforming updates to data updates!",{updates:e,previousState:t,kind:i},r instanceof Error?r:Error(String(r)))}),n=b(()=>I(s,t),r=>{this._context.domainServicesSelectors.getLogger().error("Error while applying updates!",{updates:e,previousState:t,kind:i,dataUpdates:s},r instanceof Error?r:Error(String(r)))});v(this.rendered.isInitialized?this.rendered.value.state:t,n);let a=this._validateState(n);"uncaught"===a.severity&&this._context.domainServicesSelectors.getLogger().error("There was an uncaught validation error:",{updates:e,dataUpdates:s,previousState:t,newState:n,kind:i},a.error);let d={kind:i,previousState:t,state:n,updates:s,validity:a,transformationLog:void 0};return this.emissionCache.set(r,d),d};stage(e,t=!0){this.stagedUpdates=e;let i=this.prepareStateEmission(e,this.committed.value.state,"staged");return t&&this.emit(i),i}emit(e){"staged"===e.kind?e.validity.valid&&this.rendered.nextIfDifferent(e):(e.validity.valid?(this.committed.nextIfDifferent(e),this.rendered.nextIfDifferent(e)):this.rendered.nextIfDifferent(this.committed.value),this.potentiallyInvalid.nextIfDifferent(e))}commit=()=>{if(void 0===this.stagedUpdates)return;let e=this.prepareStateEmission(this.stagedUpdates,this.committed.value.state,"committed"),t=()=>{if(this._onBeforeCommitHooks.some(i=>!1===i(e,t))){this._context.domainServicesSelectors.getLogger().debug("Commit was canceled by one of the onBeforeCommit hooks! Resetting rendered state.",e),this.rollback();return}this.stagedUpdates=void 0,this._context.domainServicesSelectors.getLogger().debug("commit",e),this.emit(e)};t()};commitPrepared=e=>{if("committed"!==e.kind||!e.validity.valid)throw Error(`commitPrepared received a ${e.validity.valid?e.kind:"invalid"} emission, but only a valid committed emission can become the committed state. Prepare the emission with kind "committed" and check its validity before committing it.`);let t=()=>e.previousState===this.committed.value.state;if(!t())return"conflict";let i=()=>{t()?r():this._context.domainServicesSelectors.getLogger().warn("A held commit was dropped, because the committed state changed since it was prepared.",e)},r=()=>this._onBeforeCommitHooks.some(t=>!1===t(e,i))?(this._context.domainServicesSelectors.getLogger().debug("A prepared commit was held by one of the onBeforeCommit hooks.",e),!1):(this._context.domainServicesSelectors.getLogger().debug("commitPrepared",e),this.stagedUpdates=void 0,this.emit(e),!0);return r()?"committed":"held"};rollback=()=>{void 0!==this.stagedUpdates&&(this.stagedUpdates=void 0,this.emit(this.committed.value))};_resetInteractionState(e){return e.ephemeralRecords.some(e=>{let t;return(t=e.componentInstance.componentType)===n||t===o})?{...e,ephemeralRecords:e.ephemeralRecords.map(e=>e.componentInstance.componentType===n?{...e,state:{hoveredEntityId:null}}:e.componentInstance.componentType===o?{...e,state:{draggedEntityId:null}}:e)}:e}_preserveViewportState(e,t){let i=t.ephemeralRecords.find(d),r=e.ephemeralRecords.filter(e=>!d(e));return{...e,ephemeralRecords:i?[...r,i]:r}}reset(e,t){let i=this.committed.value.state,r=this._preserveViewportState(e,i),o=this._resetInteractionState(r),s=this._validateState(o);if(!s.valid)throw Error("Cannot reset to an invalid state");this.stagedUpdates=void 0,this.emit({kind:"reset",state:o,validity:s,tag:t,transformationLog:void 0})}stageAndCommit(e){if(0!==e.length){this.stagedUpdates=e;try{this.commit()}finally{this.stagedUpdates=void 0}}}}
@@ -1,10 +1,31 @@
1
1
  import type { ObservableWithLastValue } from '@salsita-ai/common/utils';
2
- import type { $DomainEntity, DomainEntity, ResetStateEmission, StateEmission } from '../core/index.js';
2
+ import type { $DomainEntity, DomainEntity, DomainState, ResetStateEmission, StateEmission } from '../core/index.js';
3
3
  import type { DomainContextSelectors } from '../domain-runtime/index.js';
4
4
  export interface UndoCapabilities {
5
5
  readonly canUndo: boolean;
6
6
  readonly canRedo: boolean;
7
7
  }
8
+ /**
9
+ * One step of the undo history: a state that undo and redo return to.
10
+ *
11
+ * A step is made by an undoable change. The non-undoable commits made on top of it afterwards, such
12
+ * as a selection or a navigation, do not make steps of their own; returning to the step keeps them,
13
+ * so undoing a later change does not also take back what the user selected since. A step therefore
14
+ * holds two states: the one that identifies it and the one it returns to.
15
+ */
16
+ export interface UndoStep<ENTITIES extends DomainEntity<string>> {
17
+ /**
18
+ * The state the undoable change committed. It identifies the step and never changes, so a caller
19
+ * that knows which state its own change committed can tell whether that change is the step the
20
+ * configuration is at.
21
+ */
22
+ readonly committedState: DomainState<ENTITIES>;
23
+ /**
24
+ * What undo or redo resets the store to: `committedState` plus the non-undoable commits made on
25
+ * top of it before the next undoable change.
26
+ */
27
+ readonly restoreState: DomainState<ENTITIES>;
28
+ }
8
29
  export interface CanBeUndoneContext<ENTITIES extends DomainEntity<string>, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>> {
9
30
  oldEmission: StateEmission<ENTITIES, $MAP>;
10
31
  newEmission: StateEmission<ENTITIES, $MAP>;
@@ -39,6 +60,12 @@ export declare class UndoSystem<ENTITIES extends DomainEntity<string>, $MAP exte
39
60
  private _activeIsUndoable;
40
61
  private readonly _canSubject;
41
62
  readonly can$: ObservableWithLastValue<UndoCapabilities>;
63
+ private readonly _tipSubject;
64
+ /**
65
+ * The step the configuration is at: the top of the stack, or the step an undo or redo returned to.
66
+ * Nothing while the stack is empty, before the first undoable change and after a reset.
67
+ */
68
+ readonly tip$: ObservableWithLastValue<UndoStep<ENTITIES> | undefined>;
42
69
  constructor(_context: UndoSystemContext);
43
70
  initialize: () => void;
44
71
  /**
@@ -1 +1 @@
1
- import{BehaviorSubject as t,pairwise as e}from"rxjs";let s=t=>t.oldEmission.state.entities!==t.newEmission.state.entities;export const UNDO_REDO_RESET_TAG={};export const isUndoRedoReset=t=>"reset"===t.kind&&t.tag===UNDO_REDO_RESET_TAG;export class UndoSystem{_context;_stack=[];_currentIndex=-1;_activeIsUndoable;_canSubject=new t({canUndo:!1,canRedo:!1});can$=this._canSubject;constructor(t){this._context=t,this._context.selectors.getStoreSystem().stateSlices.committed.pipe(e()).subscribe(([t,e])=>{if("reset"===e.kind&&e.tag!==UNDO_REDO_RESET_TAG)return void this.resetStack();let n=this._activeIsUndoable?.handler??s;("reset"!==e.kind||e.tag!==UNDO_REDO_RESET_TAG)&&n({oldEmission:t,newEmission:e})&&(this._stack=[...this._stack.slice(0,this._currentIndex),t.state,e.state],this._currentIndex=this._stack.length-1,this._refresh())})}initialize=()=>{this.resetStack()};registerIsUndoable(t){let e={handler:t};return this._activeIsUndoable=e,()=>{this._activeIsUndoable===e&&(this._activeIsUndoable=void 0)}}resetStack(){this._stack=[],this._currentIndex=-1,this._refresh()}_refresh(){this._canSubject.next({canUndo:this.canUndo(),canRedo:this.canRedo()})}canUndo(){return this._currentIndex>0}canRedo(){return this._currentIndex<this._stack.length-1}undo(){let t=this._stack[this._currentIndex-1];void 0!==t&&(this._currentIndex--,this._context.selectors.getStoreSystem().reset(t,UNDO_REDO_RESET_TAG),this._refresh())}redo(){let t=this._stack[this._currentIndex+1];void 0!==t&&(this._currentIndex++,this._context.selectors.getStoreSystem().reset(t,UNDO_REDO_RESET_TAG),this._refresh())}}
1
+ import{BehaviorSubject as t,pairwise as e}from"rxjs";let s=t=>t.oldEmission.state.entities!==t.newEmission.state.entities;export const UNDO_REDO_RESET_TAG={};export const isUndoRedoReset=t=>"reset"===t.kind&&t.tag===UNDO_REDO_RESET_TAG;export class UndoSystem{_context;_stack=[];_currentIndex=-1;_activeIsUndoable;_canSubject=new t({canUndo:!1,canRedo:!1});can$=this._canSubject;_tipSubject=new t(void 0);tip$=this._tipSubject;constructor(t){this._context=t,this._context.selectors.getStoreSystem().stateSlices.committed.pipe(e()).subscribe(([t,e])=>{if("reset"===e.kind&&e.tag!==UNDO_REDO_RESET_TAG)return void this.resetStack();let i=this._activeIsUndoable?.handler??s;if("reset"===e.kind&&e.tag===UNDO_REDO_RESET_TAG||!i({oldEmission:t,newEmission:e}))return;let r=this._stack[this._currentIndex],n={committedState:r?.committedState??t.state,restoreState:t.state},c={committedState:e.state,restoreState:e.state};this._stack=[...this._stack.slice(0,this._currentIndex),n,c],this._currentIndex=this._stack.length-1,this._refresh()})}initialize=()=>{this.resetStack()};registerIsUndoable(t){let e={handler:t};return this._activeIsUndoable=e,()=>{this._activeIsUndoable===e&&(this._activeIsUndoable=void 0)}}resetStack(){this._stack=[],this._currentIndex=-1,this._refresh()}_refresh(){this._canSubject.next({canUndo:this.canUndo(),canRedo:this.canRedo()}),this._tipSubject.next(this._stack[this._currentIndex])}canUndo(){return this._currentIndex>0}canRedo(){return this._currentIndex<this._stack.length-1}undo(){let t=this._stack[this._currentIndex-1];void 0!==t&&(this._currentIndex--,this._context.selectors.getStoreSystem().reset(t.restoreState,UNDO_REDO_RESET_TAG),this._refresh())}redo(){let t=this._stack[this._currentIndex+1];void 0!==t&&(this._currentIndex++,this._context.selectors.getStoreSystem().reset(t.restoreState,UNDO_REDO_RESET_TAG),this._refresh())}}
@@ -1,3 +1,4 @@
1
+ import { AccessLevel } from '@salsita-ai/contracts/api';
1
2
  import type { OverridesSelectorState, OverridesSelectors } from '../overrides/index.js';
2
3
  import type { AccessService, ApplicationAccessInfo } from './types.js';
3
4
  /**
@@ -17,24 +18,28 @@ export declare const requireAccessService: (applicationName: 'configurator' | 'a
17
18
  export declare const createAccessInfoSelectors: (context: Context) => {
18
19
  selectConfiguratorRawAccessInfo: import("@salsita-ai/common/utils").Selector<AccessSelectorState, {
19
20
  raw: string;
21
+ access: AccessLevel;
20
22
  viewMode: boolean;
21
23
  revisionId: string | undefined;
22
24
  configurationId: string;
23
25
  } | null>;
24
26
  selectAdminRawAccessInfo: import("@salsita-ai/common/utils").Selector<AccessSelectorState, {
25
27
  raw: string;
28
+ access: AccessLevel;
26
29
  viewMode: boolean;
27
30
  revisionId: string | undefined;
28
31
  configurationId: string;
29
32
  } | null>;
30
33
  selectConfiguratorAccessInfo: import("@salsita-ai/common/utils").Selector<AccessSelectorState, {
31
34
  raw: string;
35
+ access: AccessLevel;
32
36
  viewMode: boolean;
33
37
  revisionId: string | undefined;
34
38
  configurationId: string;
35
39
  }>;
36
40
  selectAdminAccessInfo: import("@salsita-ai/common/utils").Selector<AccessSelectorState, {
37
41
  raw: string;
42
+ access: AccessLevel;
38
43
  viewMode: boolean;
39
44
  revisionId: string | undefined;
40
45
  configurationId: string;
@@ -47,24 +52,28 @@ export declare const createAccessInfoSelectors: (context: Context) => {
47
52
  selectAdminConfigurationId: import("@salsita-ai/common/utils").Selector<AccessSelectorState, string>;
48
53
  getConfiguratorRawAccessInfo: () => {
49
54
  raw: string;
55
+ access: AccessLevel;
50
56
  viewMode: boolean;
51
57
  revisionId: string | undefined;
52
58
  configurationId: string;
53
59
  } | null;
54
60
  getAdminRawAccessInfo: () => {
55
61
  raw: string;
62
+ access: AccessLevel;
56
63
  viewMode: boolean;
57
64
  revisionId: string | undefined;
58
65
  configurationId: string;
59
66
  } | null;
60
67
  getConfiguratorAccessInfo: () => {
61
68
  raw: string;
69
+ access: AccessLevel;
62
70
  viewMode: boolean;
63
71
  revisionId: string | undefined;
64
72
  configurationId: string;
65
73
  };
66
74
  getAdminAccessInfo: () => {
67
75
  raw: string;
76
+ access: AccessLevel;
68
77
  viewMode: boolean;
69
78
  revisionId: string | undefined;
70
79
  configurationId: string;
@@ -1 +1 @@
1
- import{createSelector as e}from"@salsita-ai/common/utils";let c=e=>Error(`Cannot read ${e} access info because valid access is not loaded. Access info is written by the ${e} lifecycle after token validation. Move this read into the loaded ${e} lifecycle.`),i=e=>({accessInfo:e,configurationId:e.configurationId});export const requireAccessService=(e,i)=>{if(null===i)throw c(e);return i};export const createAccessInfoSelectors=n=>{let{getState:o,overridesSelectors:r}=n,s=e.withTypes(),t=s([s.leaf(e=>e.access.configuratorAccessInfo)],e=>e),a=s([s.leaf(e=>e.access.adminAccessInfo)],e=>e),l=s([t],e=>{if(null===e)throw c("configurator");return e}),f=s([a],e=>{if(null===e)throw c("admin");return e}),u=s([t,r.selectAccessService,r.selectAccessLevel],(e,c,n)=>{var o;let r,s,t=c??(null===e?null:i(e));return null===t||null===n?t:(o={configurationId:t.configurationId,...void 0===t.accessInfo.revisionId?{}:{revisionId:t.accessInfo.revisionId},access:n},r=e=>btoa(JSON.stringify(e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),s=`${r({alg:"none",typ:"JWT"})}.${r(o)}.`,{configurationId:t.configurationId,accessInfo:{raw:s,viewMode:"read-revision"===n,revisionId:t.accessInfo.revisionId,configurationId:t.configurationId}})}),d=s([a,r.selectAccessService],(e,c)=>null!==c?c:null===e?null:i(e)),g=s([u],e=>requireAccessService("configurator",e)),I=s([d],e=>requireAccessService("admin",e)),A=s([g],e=>e.configurationId),v=s([I],e=>e.configurationId);return{selectConfiguratorRawAccessInfo:t,selectAdminRawAccessInfo:a,selectConfiguratorAccessInfo:l,selectAdminAccessInfo:f,selectConfiguratorRawAccessService:u,selectAdminRawAccessService:d,selectConfiguratorAccessService:g,selectAdminAccessService:I,selectConfiguratorConfigurationId:A,selectAdminConfigurationId:v,getConfiguratorRawAccessInfo:()=>t(o()),getAdminRawAccessInfo:()=>a(o()),getConfiguratorAccessInfo:()=>l(o()),getAdminAccessInfo:()=>f(o()),getConfiguratorRawAccessService:()=>u(o()),getAdminRawAccessService:()=>d(o()),getConfiguratorAccessService:()=>g(o()),getAdminAccessService:()=>I(o()),getConfiguratorConfigurationId:()=>A(o()),getAdminConfigurationId:()=>v(o())}};
1
+ import{createSelector as e}from"@salsita-ai/common/utils";import{AccessLevel as c}from"@salsita-ai/contracts/api";let i=e=>Error(`Cannot read ${e} access info because valid access is not loaded. Access info is written by the ${e} lifecycle after token validation. Move this read into the loaded ${e} lifecycle.`),n=e=>({accessInfo:e,configurationId:e.configurationId});export const requireAccessService=(e,c)=>{if(null===c)throw i(e);return c};export const createAccessInfoSelectors=o=>{let{getState:r,overridesSelectors:s}=o,t=e.withTypes(),a=t([t.leaf(e=>e.access.configuratorAccessInfo)],e=>e),l=t([t.leaf(e=>e.access.adminAccessInfo)],e=>e),f=t([a],e=>{if(null===e)throw i("configurator");return e}),u=t([l],e=>{if(null===e)throw i("admin");return e}),d=t([a,s.selectAccessService,s.selectAccessLevel],(e,i,o)=>{var r;let s,t,a=i??(null===e?null:n(e));return null===a||null===o?a:(r={configurationId:a.configurationId,...void 0===a.accessInfo.revisionId?{}:{revisionId:a.accessInfo.revisionId},access:o},s=e=>btoa(JSON.stringify(e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),t=`${s({alg:"none",typ:"JWT"})}.${s(r)}.`,{configurationId:a.configurationId,accessInfo:{raw:t,access:"owner"===o?c.Owner:"read-revision"===o?c.ReadRevision:c.Read,viewMode:"read-revision"===o,revisionId:a.accessInfo.revisionId,configurationId:a.configurationId}})}),g=t([l,s.selectAccessService],(e,c)=>null!==c?c:null===e?null:n(e)),I=t([d],e=>requireAccessService("configurator",e)),v=t([g],e=>requireAccessService("admin",e)),A=t([I],e=>e.configurationId),m=t([v],e=>e.configurationId);return{selectConfiguratorRawAccessInfo:a,selectAdminRawAccessInfo:l,selectConfiguratorAccessInfo:f,selectAdminAccessInfo:u,selectConfiguratorRawAccessService:d,selectAdminRawAccessService:g,selectConfiguratorAccessService:I,selectAdminAccessService:v,selectConfiguratorConfigurationId:A,selectAdminConfigurationId:m,getConfiguratorRawAccessInfo:()=>a(r()),getAdminRawAccessInfo:()=>l(r()),getConfiguratorAccessInfo:()=>f(r()),getAdminAccessInfo:()=>u(r()),getConfiguratorRawAccessService:()=>d(r()),getAdminRawAccessService:()=>g(r()),getConfiguratorAccessService:()=>I(r()),getAdminAccessService:()=>v(r()),getConfiguratorConfigurationId:()=>A(r()),getAdminConfigurationId:()=>m(r())}};
@@ -1,5 +1,7 @@
1
+ import { AccessLevel } from '@salsita-ai/contracts/api';
1
2
  export declare const decodeAccessInfo: (accessToken: string, configurationId: string) => {
2
3
  raw: string;
4
+ access: AccessLevel;
3
5
  viewMode: boolean;
4
6
  revisionId: string | undefined;
5
7
  configurationId: string;
@@ -1 +1 @@
1
- import{jwtDecode as o}from"jwt-decode";import{AccessLevel as e}from"@salsita-ai/contracts/api";export const decodeAccessInfo=(i,r)=>{try{let n=o(i),t=n.exp;if(void 0!==t&&t<Date.now()/1e3||n.configurationId!==r)return null;return{raw:i,viewMode:n.access===e.ReadRevision,revisionId:n.revisionId,configurationId:n.configurationId}}catch(o){return null}};
1
+ import{jwtDecode as e}from"jwt-decode";import{AccessLevel as o}from"@salsita-ai/contracts/api";export const decodeAccessInfo=(i,r)=>{try{let c=e(i),n=c.exp;if(void 0!==n&&n<Date.now()/1e3||c.configurationId!==r)return null;return{raw:i,access:c.access,viewMode:c.access===o.ReadRevision,revisionId:c.revisionId,configurationId:c.configurationId}}catch(e){return null}};
@@ -1,4 +1,4 @@
1
- import { type AnyDomain, type AnyDomainFactory, type DomainComponentOptic, type DomainEntity, type DomainMode, type SystemComponentTypeConstraint } from '../../core/index.js';
1
+ import { type AnyDomain, type AnyDomainFactory, type DomainComponentOptic, type DomainMode, type SystemComponentTypeConstraint } from '../../core/index.js';
2
2
  import { type AnyActionSystem, type AnyDimensionSystem, type AnyDomainContextSystems, type AnyNavigationSystem, type AnyRecipeCookerSystem, type AnyStoreSystem, type AnyUndoSystem } from '../../domain-context/index.js';
3
3
  import { type AnyBlenderProjections, type AnyCollisionProjections, type AnyCompositionProjections, type AnyConstraintProjections, type AnyPositionProjections, type AnyProjectedEntitiesProjections, type AnySnappingProjections, type AnyValidationProjections } from '../../projections/index.js';
4
4
  import { type AnySketchingProjections } from '../../sketching/sketching-projections.js';
@@ -15,17 +15,18 @@ import { type AnyComponentReader } from './component-reader.js';
15
15
  import { DomainContext } from './domain-context.js';
16
16
  import type { AnyExpressionContext } from './expression-context.js';
17
17
  import type { ApplicationDomainContextState, DomainApplicationType, DomainContextInitializationContext, DomainContextInitializationIdentity, DomainContextInitializationState, InitializableSystem, SchemaCoherence } from './types.js';
18
- type ComponentOptic<ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>> = DomainComponentOptic<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ENTITIES, SystemComponentTypeConstraint>;
18
+ /** A component optic of any project, for any component type. */
19
+ type ComponentOptic = DomainComponentOptic<any, any, any, any, any, any, SystemComponentTypeConstraint>;
19
20
  /**
20
21
  * Lookup indexes derived from the current component optics. The component reader and the
21
22
  * component write systems share this representation so a runtime optic update is observed
22
23
  * consistently across reads and writes.
23
24
  */
24
- export interface ComponentReaderIndexes<ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>> {
25
- readonly opticMap: ReadonlyMap<ENTITIES['type'], ReadonlyMap<SystemComponentTypeConstraint, ReadonlyMap<string, ComponentOptic<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA>>>>;
26
- readonly allComponentTypes: ReadonlyMap<ENTITIES['type'], ReadonlySet<SystemComponentTypeConstraint>>;
27
- readonly allComponentInstanceNames: ReadonlyMap<ENTITIES['type'], ReadonlyMap<SystemComponentTypeConstraint, ReadonlySet<string>>>;
28
- readonly dynamicInstanceNames: ReadonlyMap<ENTITIES['type'], ReadonlyMap<SystemComponentTypeConstraint, readonly string[]>>;
25
+ export interface ComponentReaderIndexes {
26
+ readonly opticMap: ReadonlyMap<string, ReadonlyMap<SystemComponentTypeConstraint, ReadonlyMap<string, ComponentOptic>>>;
27
+ readonly allComponentTypes: ReadonlyMap<string, ReadonlySet<SystemComponentTypeConstraint>>;
28
+ readonly allComponentInstanceNames: ReadonlyMap<string, ReadonlyMap<SystemComponentTypeConstraint, ReadonlySet<string>>>;
29
+ readonly dynamicInstanceNames: ReadonlyMap<string, ReadonlyMap<SystemComponentTypeConstraint, readonly string[]>>;
29
30
  }
30
31
  interface Context {
31
32
  readonly applicationType: DomainApplicationType;
@@ -69,7 +70,7 @@ export declare const createDomainContextSelectors: (context: Context) => {
69
70
  selectAliasMap: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, import("../../index.js").AnyAliasMap>;
70
71
  selectAllowedRootEntityTypes: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, import("../../index.js").AnyAllowedRootEntityTypes>;
71
72
  selectEntityReflections: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, import("../../index.js").AnyEntityReflections>;
72
- selectMigrate: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, import("../../index.js").MigrateFunction<DomainEntity<string>>>;
73
+ selectMigrate: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, import("../../index.js").MigrateFunction<import("../../index.js").DomainEntity<string>>>;
73
74
  selectLatestMode: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, DomainMode>;
74
75
  selectLatestConfigurationId: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, string | null>;
75
76
  selectLatestSessionContext: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, DomainSessionContext> | import("@salsita-ai/common/utils").Selector<SessionContextSelectorState, DomainSessionContext | null>;
@@ -81,9 +82,9 @@ export declare const createDomainContextSelectors: (context: Context) => {
81
82
  selectIsViewMode: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, boolean>;
82
83
  selectInitializationState: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, DomainContextInitializationState>;
83
84
  selectComponentOptics: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, readonly import("../../index.js").AnyDomainComponentOptic[]>;
84
- selectComponentReaderIndexes: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, ComponentReaderIndexes<any, any, any, any, any>>;
85
+ selectComponentReaderIndexes: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, ComponentReaderIndexes>;
85
86
  selectStoreRuntimeDependencies: import("@salsita-ai/common/utils").Selector<DomainContextSelectorState, {
86
- componentReaderIndexes: ComponentReaderIndexes<any, any, any, any, any>;
87
+ componentReaderIndexes: ComponentReaderIndexes;
87
88
  domainExpressions: import("../../index.js").AnyExpressions;
88
89
  allowedRootEntityTypes: import("../../index.js").AnyAllowedRootEntityTypes;
89
90
  }>;
@@ -120,12 +121,13 @@ export declare const createDomainContextSelectors: (context: Context) => {
120
121
  getAliasMap: () => import("../../index.js").AnyAliasMap;
121
122
  getAllowedRootEntityTypes: () => import("../../index.js").AnyAllowedRootEntityTypes;
122
123
  getEntityReflections: () => import("../../index.js").AnyEntityReflections;
123
- getMigrate: () => import("../../index.js").MigrateFunction<DomainEntity<string>>;
124
+ getMigrate: () => import("../../index.js").MigrateFunction<import("../../index.js").DomainEntity<string>>;
124
125
  getActiveMode: () => DomainMode;
125
126
  getIsInitialized: () => boolean;
126
- getComponentReaderIndexes: () => ComponentReaderIndexes<any, any, any, any, any>;
127
+ getIsViewMode: () => boolean;
128
+ getComponentReaderIndexes: () => ComponentReaderIndexes;
127
129
  getStoreRuntimeDependencies: () => {
128
- componentReaderIndexes: ComponentReaderIndexes<any, any, any, any, any>;
130
+ componentReaderIndexes: ComponentReaderIndexes;
129
131
  domainExpressions: import("../../index.js").AnyExpressions;
130
132
  allowedRootEntityTypes: import("../../index.js").AnyAllowedRootEntityTypes;
131
133
  };
@@ -1 +1 @@
1
- import{createSelector as e}from"@salsita-ai/common/utils";import{Domain as t,createInitialDomainState as n}from"../../core/index.js";import{ActionSystem as o,DimensionSystem as i,NavigationSystem as a,RecipeCookerSystem as s,StoreSystem as r,UndoSystem as c}from"../../domain-context/index.js";import{BlenderProjections as l,CollisionProjections as m,CompositionProjections as d,ConstraintProjections as g,PositionProjections as f,ProjectedEntitiesProjections as u,SnappingProjections as p,ValidationProjections as y}from"../../projections/index.js";import{SketchingProjections as w}from"../../sketching/sketching-projections.js";import{requireAccessService as h}from"../access/index.js";import{prepareActionImplementations as S,prepareDomainExpressions as x}from"../spec/index.js";import{ComponentReader as C}from"./component-reader.js";import{DomainContext as D}from"./domain-context.js";let j=e.withTypes(),v=[],I={},P={role:"admin",data:I},M=e=>{if(null!==e)return e;throw Error("Cannot read the session role and data because the domain session context is not set. The session context is written into the domain runtime by the session lifecycle after authentication. Move this read into the loaded session lifecycle.")};export const createDomainContextSelectors=e=>{let{applicationType:A,getState:R,actions:E,specSelectors:T,accessSelectors:b,webComponentSelectors:$,domainDataSelectors:k,sessionContextSelectors:N,domainServicesSelectors:z,environmentSelectors:L,getExtensionSystems:V}=e,B="configurator"===A?T.selectConfiguratorSpec:T.selectAdminSpec,F="configurator"===A?b.selectConfiguratorRawAccessService:b.selectAdminRawAccessService,W=j.leaf(e=>e.domainContext[A]),_=j([W],e=>e.initializationContext),q=j([_],e=>{if(null===e)throw Error(`Domain lifecycle context is not available for ${A}! Read it from an active domain lifecycle.`);return e}),O=j([W],e=>e.executionMode),U=j([W],e=>e.isInitialized),G=j([B],e=>e.factory),H=j([B],e=>e.expressions),J=j([B],e=>e.actions),K=j([B],e=>e.actionImplementations),Q=j([J,K],S),X=j([B],e=>e.$entityReflections),Y=j([H,X],(e,t)=>x({expressions:e,$entityReflections:t})),Z=j([B],e=>e.modelVersion),ee=j([B],e=>e.aliasMap),et=j([B],e=>e.allowedRootEntityTypes),en=j([B],e=>e.entityReflections),eo=j([B],e=>e.migrate),ei=j([O,$.selectReadonly,F],(e,t,n)=>"finalize"===e?"finalize":h(A,n).accessInfo.viewMode||t?"read":"owner"),ea=j([F],e=>e?.configurationId??null),es="configurator"===A?N.selectSessionContext:j([],()=>P),er=j([es],e=>e?.role??null),ec=j([es],e=>e?.data??null),el=j([j.leaf(e=>e.loadedData)],e=>"configurator"===A?e.configuratorLoadedData:e.adminLoadedData),em=j([el],e=>e?.schemaIdentity??null),ed=j([el,G],(e,t)=>{if(null===e)return"coherent";let n=e.schemaIdentity;return void 0===n?"missing-stamp":n===t?"coherent":"schema-mismatch"}),eg=j([ea,er,ec,em,ed],(e,t,n,o,i)=>null===e||null===t||null===n||null===o||"coherent"!==i?null:{configurationId:e,role:t,schemaIdentity:o,sessionData:n}),ef=j([F,$.selectReadonly],(e,t)=>e?.accessInfo.viewMode===!0||t),eu=j([eg,_,U,ef],(e,t,n,o)=>{let i=null!==e&&null!==t&&n&&t.configurationId===e.configurationId&&t.role===e.role&&t.schemaIdentity===e.schemaIdentity&&t.sessionData===e.sessionData;return{identity:e,isCurrent:i,isViewMode:o}}),ep=j([B],e=>e.componentOptics),ey=j([ep],e=>(e=>{let t=new Map,n=new Map,o=new Map,i=new Map;for(let n of e)for(let e of n.entityTypes){let o=t.get(e);o||(o=new Map,t.set(e,o));let a=o.get(n.componentType);if(a||(a=new Map,o.set(n.componentType,a)),a.has(n.instanceName))throw Error(`Component instance ${n.instanceName} already exists for type ${n.componentType.name} in entity ${e}. This is likely a bug in the component definition! InstanceNames must be unique within an entity and component.`);if(a.set(n.instanceName,n),"dynamic"===n.kind){let t=i.get(e);t||(t=new Map,i.set(e,t));let o=t.get(n.componentType)??[],a=o.find(e=>{var t;return t=n.instanceName,e.startsWith(`${t}_`)||t.startsWith(`${e}_`)});if(a)throw Error(`Cannot register dynamic component instance ${n.instanceName} for component ${n.componentType.name} on entity ${e} because it overlaps with dynamic instance ${a}. Rename one dynamic instance so compound names cannot be ambiguous.`);t.set(n.componentType,[...o,n.instanceName])}}for(let[e,i]of t.entries()){n.set(e,new Set(i.keys()));let t=new Map;for(let[n,a]of(o.set(e,t),i.entries()))t.set(n,new Set(a.keys()))}return{opticMap:t,allComponentTypes:n,allComponentInstanceNames:o,dynamicInstanceNames:i}})(e)),ew=j([ey,Y,et],(e,t,n)=>({componentReaderIndexes:e,domainExpressions:t,allowedRootEntityTypes:n})),eh=j([B],e=>e.navigationStates),eS=j([B],e=>e.viewStates),ex="configurator"===A?j([T.selectConfiguratorSpec],e=>e.toolStates):j([],()=>v),eC="configurator"===A?j([T.selectConfiguratorSpec],e=>e.exportStates):j([],()=>v),eD="configurator"===A?j([T.selectConfiguratorSpec],e=>e.createTransformers):j([],()=>void 0),ej=j([el],e=>{if(null===e)throw Error(`Loaded data is not available for ${A}! Loaded data is written after the configuration fetch succeeds and before the domain context initialization starts.`);return e}),ev=j([ej,G],(e,t)=>n(t.validateAndMigrateState(e.initialEntities,e.modelVersion),e.rootEntityType)),eI="configurator"===A?k.selectConfiguratorFrontendData:k.selectAdminFrontendData,eP="configurator"===A?k.selectConfiguratorBackendData:k.selectAdminBackendData,eM="configurator"===A?k.selectConfiguratorPublishedData:k.selectAdminPublishedData,eA="configurator"===A?j([N.selectSessionContext],e=>M(e).role):j([],()=>"admin"),eR="configurator"===A?j([N.selectSessionContext],e=>M(e).data):j([],()=>I),eE=j([ea,ei,eA,eR,ej],(e,t,n,o,i)=>({configurationId:e,mode:t,role:n,schemaIdentity:i.schemaIdentity,sessionData:o})),eT=j([q],e=>e.mode),eb=j([q],e=>{let t=e.configurationId;if(null===t)throw Error(`Configuration id is not available for ${A}! Read it from an active interactive domain lifecycle.`);return t}),e$=j([q],e=>e.role),ek=j([q],e=>e.sessionData),eN=j([eT,e$,ek,eI,eP,eM,eo],(e,t,n,o,i,a,s)=>({mode:e,role:t,sessionData:n,frontendData:o,backendData:i,publishedData:a,migrate:s,domain:eL,componentReader:eV,positionProjections:eq,sketchingProjections:e_,collisionProjections:eO,constraintProjections:eG,snappingProjections:eU,projectedEntitiesProjections:eH})),ez={selectApplicationSpec:B,selectRawAccessService:F,selectDomainContextState:W,selectInitializationContext:_,selectActiveInitializationContext:q,selectExecutionMode:O,selectIsInitialized:U,selectFactory:G,selectSpecExpressions:H,select$SpecEntityReflections:X,selectDomainExpressions:Y,selectModelVersion:Z,selectAliasMap:ee,selectAllowedRootEntityTypes:et,selectEntityReflections:en,selectMigrate:eo,selectLatestMode:ei,selectLatestConfigurationId:ea,selectLatestSessionContext:es,selectLatestRoleOrNull:er,selectLatestSessionDataOrNull:ec,selectLatestSchemaIdentity:em,selectSchemaCoherence:ed,selectInitializationIdentity:eg,selectIsViewMode:ef,selectInitializationState:eu,selectComponentOptics:ep,selectComponentReaderIndexes:ey,selectStoreRuntimeDependencies:ew,selectNavigationStates:eh,selectViewStates:eS,selectToolStates:ex,selectExportStates:eC,selectCreateTransformers:eD,selectLatestLoadedData:el,selectLoadedData:ej,selectInitialDomainState:ev,selectFrontendData:eI,selectBackendData:eP,selectPublishedData:eM,selectLatestRole:eA,selectLatestSessionData:eR,selectNextInitializationContext:eE,selectActiveMode:eT,selectActiveConfigurationId:eb,selectActiveRole:e$,selectActiveSessionData:ek,selectExpressionContext:eN,getInitializationContext:()=>_(R()),getInitializationState:()=>eu(R()),getNextInitializationContext:()=>eE(R()),getLatestLoadedData:()=>el(R()),getSchemaCoherence:()=>ed(R()),getActiveConfigurationId:()=>eb(R()),getFactory:()=>G(R()),getDomainExpressions:()=>Y(R()),getActionDefinitions:()=>J(R()),getActionImplementations:()=>Q(R()),getModelVersion:()=>Z(R()),getAliasMap:()=>ee(R()),getAllowedRootEntityTypes:()=>et(R()),getEntityReflections:()=>en(R()),getMigrate:()=>eo(R()),getActiveMode:()=>eT(R()),getIsInitialized:()=>U(R()),getComponentReaderIndexes:()=>ey(R()),getStoreRuntimeDependencies:()=>ew(R()),getNavigationStates:()=>eh(R()),getViewStates:()=>eS(R()),getToolStates:()=>ex(R()),getExportStates:()=>eC(R()),getCreateTransformers:()=>eD(R()),getLoadedData:()=>ej(R()),getInitialDomainState:()=>ev(R()),getFrontendData:()=>eI(R()),getBackendData:()=>eP(R()),getPublishedData:()=>eM(R()),getActiveRole:()=>e$(R()),getActiveSessionData:()=>ek(R()),getDomain:()=>eL,getComponentReader:()=>eV,getCompositionProjections:()=>eB,getDimensionSystem:()=>eF,getValidationProjections:()=>eW,getSketchingProjections:()=>e_,getPositionProjections:()=>eq,getCollisionProjections:()=>eO,getSnappingProjections:()=>eU,getConstraintProjections:()=>eG,getProjectedEntitiesProjections:()=>eH,getStoreSystem:()=>eJ,getNavigationSystem:()=>eK,getUndoSystem:()=>eQ,getRecipeCookerSystem:()=>eX,getActionSystem:()=>eY,getBlenderProjections:()=>eZ,getExpressionContext:()=>eN(R()),getDomainSystems:function(){return e0},getDomainContext:function(){return e1}},eL=new t({selectors:ez}),eV=new C({selectors:ez}),eB=new d({selectors:ez}),eF=new i({selectors:ez}),eW=new y({selectors:ez}),e_=new w({selectors:ez}),eq=new f({selectors:ez}),eO=new m({selectors:ez}),eU=new p({selectors:ez}),eG=new g({selectors:ez}),eH=new u({selectors:ez}),eJ=new r({selectors:ez,domainServicesSelectors:z,environmentSelectors:L}),eK=new a({selectors:ez,domainServicesSelectors:z}),eQ=new c({selectors:ez}),eX=new s({selectors:ez}),eY=new o({selectors:ez}),eZ=new l({selectors:ez,domainServicesSelectors:z}),e0={domainContextSelectors:ez,domain:eL,componentReader:eV,compositionProjections:eB,blenderProjections:eZ,validationProjections:eW,storeSystem:eJ,navigationSystem:eK,dimensionSystem:eF,undoSystem:eQ,recipeCooker:eX,actionSystem:eY,sketchingProjections:e_,collisionProjections:eO,positionProjections:eq,snappingProjections:eU,projectedEntitiesProjections:eH,constraintProjections:eG},e1=new D({selectors:ez,actions:E,getExtensionSystems:V});return ez};
1
+ import{createSelector as e}from"@salsita-ai/common/utils";import{Domain as t,createInitialDomainState as n}from"../../core/index.js";import{ActionSystem as o,DimensionSystem as i,NavigationSystem as a,RecipeCookerSystem as s,StoreSystem as r,UndoSystem as c}from"../../domain-context/index.js";import{BlenderProjections as l,CollisionProjections as d,CompositionProjections as m,ConstraintProjections as g,PositionProjections as f,ProjectedEntitiesProjections as u,SnappingProjections as p,ValidationProjections as y}from"../../projections/index.js";import{SketchingProjections as w}from"../../sketching/sketching-projections.js";import{requireAccessService as h}from"../access/index.js";import{prepareActionImplementations as S,prepareDomainExpressions as x}from"../spec/index.js";import{ComponentReader as C}from"./component-reader.js";import{DomainContext as D}from"./domain-context.js";let j=e.withTypes(),I=[],v={},P={role:"admin",data:v},M=e=>{if(null!==e)return e;throw Error("Cannot read the session role and data because the domain session context is not set. The session context is written into the domain runtime by the session lifecycle after authentication. Move this read into the loaded session lifecycle.")};export const createDomainContextSelectors=e=>{let{applicationType:A,getState:R,actions:E,specSelectors:T,accessSelectors:b,webComponentSelectors:$,domainDataSelectors:k,sessionContextSelectors:N,domainServicesSelectors:z,environmentSelectors:L,getExtensionSystems:V}=e,B="configurator"===A?T.selectConfiguratorSpec:T.selectAdminSpec,F="configurator"===A?b.selectConfiguratorRawAccessService:b.selectAdminRawAccessService,W=j.leaf(e=>e.domainContext[A]),_=j([W],e=>e.initializationContext),q=j([_],e=>{if(null===e)throw Error(`Domain lifecycle context is not available for ${A}! Read it from an active domain lifecycle.`);return e}),O=j([W],e=>e.executionMode),U=j([W],e=>e.isInitialized),G=j([B],e=>e.factory),H=j([B],e=>e.expressions),J=j([B],e=>e.actions),K=j([B],e=>e.actionImplementations),Q=j([J,K],S),X=j([B],e=>e.$entityReflections),Y=j([H,X],(e,t)=>x({expressions:e,$entityReflections:t})),Z=j([B],e=>e.modelVersion),ee=j([B],e=>e.aliasMap),et=j([B],e=>e.allowedRootEntityTypes),en=j([B],e=>e.entityReflections),eo=j([B],e=>e.migrate),ei=j([O,$.selectReadonly,F],(e,t,n)=>"finalize"===e?"finalize":h(A,n).accessInfo.viewMode||t?"read":"owner"),ea=j([F],e=>e?.configurationId??null),es="configurator"===A?N.selectSessionContext:j([],()=>P),er=j([es],e=>e?.role??null),ec=j([es],e=>e?.data??null),el=j([j.leaf(e=>e.loadedData)],e=>"configurator"===A?e.configuratorLoadedData:e.adminLoadedData),ed=j([el],e=>e?.schemaIdentity??null),em=j([el,G],(e,t)=>{if(null===e)return"coherent";let n=e.schemaIdentity;return void 0===n?"missing-stamp":n===t?"coherent":"schema-mismatch"}),eg=j([ea,er,ec,ed,em,F],(e,t,n,o,i,a)=>null===e||null===a||null===t||null===n||null===o||"coherent"!==i?null:{access:a.accessInfo.access,configurationId:e,role:t,schemaIdentity:o,sessionData:n}),ef=j([F,$.selectReadonly],(e,t)=>e?.accessInfo.viewMode===!0||t),eu=j([eg,_,U,ef],(e,t,n,o)=>{let i=null!==e&&null!==t&&n&&t.access===e.access&&t.configurationId===e.configurationId&&t.role===e.role&&t.schemaIdentity===e.schemaIdentity&&t.sessionData===e.sessionData;return{identity:e,isCurrent:i,isViewMode:o}}),ep=j([B],e=>e.componentOptics),ey=j([ep],e=>(e=>{let t=new Map,n=new Map,o=new Map,i=new Map;for(let n of e)for(let e of n.entityTypes){let o=t.get(e);o||(o=new Map,t.set(e,o));let a=o.get(n.componentType);if(a||(a=new Map,o.set(n.componentType,a)),a.has(n.instanceName))throw Error(`Component instance ${n.instanceName} already exists for type ${n.componentType.name} in entity ${e}. This is likely a bug in the component definition! InstanceNames must be unique within an entity and component.`);if(a.set(n.instanceName,n),"dynamic"===n.kind){let t=i.get(e);t||(t=new Map,i.set(e,t));let o=t.get(n.componentType)??[],a=o.find(e=>{var t;return t=n.instanceName,e.startsWith(`${t}_`)||t.startsWith(`${e}_`)});if(a)throw Error(`Cannot register dynamic component instance ${n.instanceName} for component ${n.componentType.name} on entity ${e} because it overlaps with dynamic instance ${a}. Rename one dynamic instance so compound names cannot be ambiguous.`);t.set(n.componentType,[...o,n.instanceName])}}for(let[e,i]of t.entries()){n.set(e,new Set(i.keys()));let t=new Map;for(let[n,a]of(o.set(e,t),i.entries()))t.set(n,new Set(a.keys()))}return{opticMap:t,allComponentTypes:n,allComponentInstanceNames:o,dynamicInstanceNames:i}})(e)),ew=j([ey,Y,et],(e,t,n)=>({componentReaderIndexes:e,domainExpressions:t,allowedRootEntityTypes:n})),eh=j([B],e=>e.navigationStates),eS=j([B],e=>e.viewStates),ex="configurator"===A?j([T.selectConfiguratorSpec],e=>e.toolStates):j([],()=>I),eC="configurator"===A?j([T.selectConfiguratorSpec],e=>e.exportStates):j([],()=>I),eD="configurator"===A?j([T.selectConfiguratorSpec],e=>e.createTransformers):j([],()=>void 0),ej=j([el],e=>{if(null===e)throw Error(`Loaded data is not available for ${A}! Loaded data is written after the configuration fetch succeeds and before the domain context initialization starts.`);return e}),eI=j([ej,G],(e,t)=>n(t.validateAndMigrateState(e.initialEntities,e.modelVersion),e.rootEntityType)),ev="configurator"===A?k.selectConfiguratorFrontendData:k.selectAdminFrontendData,eP="configurator"===A?k.selectConfiguratorBackendData:k.selectAdminBackendData,eM="configurator"===A?k.selectConfiguratorPublishedData:k.selectAdminPublishedData,eA="configurator"===A?j([N.selectSessionContext],e=>M(e).role):j([],()=>"admin"),eR="configurator"===A?j([N.selectSessionContext],e=>M(e).data):j([],()=>v),eE=j([ea,ei,eA,eR,ej,F],(e,t,n,o,i,a)=>({access:a?.accessInfo.access??null,configurationId:e,mode:t,role:n,schemaIdentity:i.schemaIdentity,sessionData:o})),eT=j([q],e=>e.mode),eb=j([q],e=>{let t=e.configurationId;if(null===t)throw Error(`Configuration id is not available for ${A}! Read it from an active interactive domain lifecycle.`);return t}),e$=j([q],e=>e.role),ek=j([q],e=>e.sessionData),eN=j([eT,e$,ek,ev,eP,eM,eo],(e,t,n,o,i,a,s)=>({mode:e,role:t,sessionData:n,frontendData:o,backendData:i,publishedData:a,migrate:s,domain:eL,componentReader:eV,positionProjections:eq,sketchingProjections:e_,collisionProjections:eO,constraintProjections:eG,snappingProjections:eU,projectedEntitiesProjections:eH})),ez={selectApplicationSpec:B,selectRawAccessService:F,selectDomainContextState:W,selectInitializationContext:_,selectActiveInitializationContext:q,selectExecutionMode:O,selectIsInitialized:U,selectFactory:G,selectSpecExpressions:H,select$SpecEntityReflections:X,selectDomainExpressions:Y,selectModelVersion:Z,selectAliasMap:ee,selectAllowedRootEntityTypes:et,selectEntityReflections:en,selectMigrate:eo,selectLatestMode:ei,selectLatestConfigurationId:ea,selectLatestSessionContext:es,selectLatestRoleOrNull:er,selectLatestSessionDataOrNull:ec,selectLatestSchemaIdentity:ed,selectSchemaCoherence:em,selectInitializationIdentity:eg,selectIsViewMode:ef,selectInitializationState:eu,selectComponentOptics:ep,selectComponentReaderIndexes:ey,selectStoreRuntimeDependencies:ew,selectNavigationStates:eh,selectViewStates:eS,selectToolStates:ex,selectExportStates:eC,selectCreateTransformers:eD,selectLatestLoadedData:el,selectLoadedData:ej,selectInitialDomainState:eI,selectFrontendData:ev,selectBackendData:eP,selectPublishedData:eM,selectLatestRole:eA,selectLatestSessionData:eR,selectNextInitializationContext:eE,selectActiveMode:eT,selectActiveConfigurationId:eb,selectActiveRole:e$,selectActiveSessionData:ek,selectExpressionContext:eN,getInitializationContext:()=>_(R()),getInitializationState:()=>eu(R()),getNextInitializationContext:()=>eE(R()),getLatestLoadedData:()=>el(R()),getSchemaCoherence:()=>em(R()),getActiveConfigurationId:()=>eb(R()),getFactory:()=>G(R()),getDomainExpressions:()=>Y(R()),getActionDefinitions:()=>J(R()),getActionImplementations:()=>Q(R()),getModelVersion:()=>Z(R()),getAliasMap:()=>ee(R()),getAllowedRootEntityTypes:()=>et(R()),getEntityReflections:()=>en(R()),getMigrate:()=>eo(R()),getActiveMode:()=>eT(R()),getIsInitialized:()=>U(R()),getIsViewMode:()=>ef(R()),getComponentReaderIndexes:()=>ey(R()),getStoreRuntimeDependencies:()=>ew(R()),getNavigationStates:()=>eh(R()),getViewStates:()=>eS(R()),getToolStates:()=>ex(R()),getExportStates:()=>eC(R()),getCreateTransformers:()=>eD(R()),getLoadedData:()=>ej(R()),getInitialDomainState:()=>eI(R()),getFrontendData:()=>ev(R()),getBackendData:()=>eP(R()),getPublishedData:()=>eM(R()),getActiveRole:()=>e$(R()),getActiveSessionData:()=>ek(R()),getDomain:()=>eL,getComponentReader:()=>eV,getCompositionProjections:()=>eB,getDimensionSystem:()=>eF,getValidationProjections:()=>eW,getSketchingProjections:()=>e_,getPositionProjections:()=>eq,getCollisionProjections:()=>eO,getSnappingProjections:()=>eU,getConstraintProjections:()=>eG,getProjectedEntitiesProjections:()=>eH,getStoreSystem:()=>eJ,getNavigationSystem:()=>eK,getUndoSystem:()=>eQ,getRecipeCookerSystem:()=>eX,getActionSystem:()=>eY,getBlenderProjections:()=>eZ,getExpressionContext:()=>eN(R()),getDomainSystems:function(){return e0},getDomainContext:function(){return e1}},eL=new t({selectors:ez}),eV=new C({selectors:ez}),eB=new m({selectors:ez}),eF=new i({selectors:ez}),eW=new y({selectors:ez}),e_=new w({selectors:ez}),eq=new f({selectors:ez}),eO=new d({selectors:ez}),eU=new p({selectors:ez}),eG=new g({selectors:ez}),eH=new u({selectors:ez}),eJ=new r({selectors:ez,domainServicesSelectors:z,environmentSelectors:L}),eK=new a({selectors:ez,domainServicesSelectors:z}),eQ=new c({selectors:ez}),eX=new s({selectors:ez}),eY=new o({selectors:ez}),eZ=new l({selectors:ez,domainServicesSelectors:z}),e0={domainContextSelectors:ez,domain:eL,componentReader:eV,compositionProjections:eB,blenderProjections:eZ,validationProjections:eW,storeSystem:eJ,navigationSystem:eK,dimensionSystem:eF,undoSystem:eQ,recipeCooker:eX,actionSystem:eY,sketchingProjections:e_,collisionProjections:eO,positionProjections:eq,snappingProjections:eU,projectedEntitiesProjections:eH,constraintProjections:eG},e1=new D({selectors:ez,actions:E,getExtensionSystems:V});return ez};
@@ -1,4 +1,4 @@
1
- import type { SessionRole } from '@salsita-ai/contracts/api';
1
+ import type { AccessLevel, SessionRole } from '@salsita-ai/contracts/api';
2
2
  import type { AnyDomainFactory, DomainMode } from '../../core/index.js';
3
3
  /** A retained system that refreshes its configuration-owned state on every initialization. */
4
4
  export interface InitializableSystem {
@@ -26,6 +26,7 @@ export type DomainExecutionMode = 'interactive' | 'finalize';
26
26
  export type SchemaCoherence = 'coherent' | 'schema-mismatch' | 'missing-stamp';
27
27
  /** Runtime inputs that identify the interactive configuration rendered by a lifecycle host. */
28
28
  export interface DomainContextInitializationIdentity {
29
+ readonly access: AccessLevel;
29
30
  readonly configurationId: string;
30
31
  readonly role: SessionRole;
31
32
  readonly schemaIdentity: AnyDomainFactory;
@@ -33,6 +34,8 @@ export interface DomainContextInitializationIdentity {
33
34
  }
34
35
  /** Inputs captured by the latest successful domain-context initialization. */
35
36
  export interface DomainContextInitializationContext {
37
+ /** Token access captured with the session inputs; finalization has no interactive access. */
38
+ readonly access: AccessLevel | null;
36
39
  /** Finalization has no interactive access and therefore no configuration id. */
37
40
  readonly configurationId: string | null;
38
41
  readonly mode: DomainMode;