@salsita-ai/sdk 0.50.0-develop.c1dcc73e88 → 0.50.0-develop.c4848d224b

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 (952) 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/relation-expression-params.js +1 -0
  27. package/dist/application-spec/core/expressions/sdk-expression-implementation.d.ts +24 -0
  28. package/dist/application-spec/core/expressions/sdk-expression-implementation.js +1 -0
  29. package/dist/application-spec/core/index.d.ts +2 -0
  30. package/dist/application-spec/core/index.js +1 -1
  31. package/dist/application-spec/core/json-value.d.ts +1 -1
  32. package/dist/application-spec/{core → enhanced-json}/eval-to-constant.d.ts +1 -1
  33. package/dist/application-spec/enhanced-json/index.d.ts +4 -0
  34. package/dist/application-spec/enhanced-json/index.js +1 -0
  35. package/dist/application-spec/enhanced-json/is-enhanced-json-array.d.ts +2 -0
  36. package/dist/application-spec/enhanced-json/is-enhanced-json-array.js +1 -0
  37. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.d.ts +18 -0
  38. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.js +1 -0
  39. package/dist/application-spec/enhanced-json/schema-from-value.d.ts +24 -0
  40. package/dist/application-spec/enhanced-json/schema-from-value.js +1 -0
  41. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.d.ts +14 -0
  42. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.js +1 -0
  43. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.d.ts +12 -0
  44. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.js +1 -0
  45. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.d.ts +13 -0
  46. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.js +1 -0
  47. package/dist/application-spec/errors/diagnostic-codes.d.ts +9 -0
  48. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  49. package/dist/application-spec/errors/diagnostic-messages.d.ts +12 -0
  50. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  51. package/dist/application-spec/generate-application/code/common/code-imports.js +1 -1
  52. package/dist/application-spec/generate-application/code/common/env-reader.js +2 -2
  53. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  54. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  55. package/dist/application-spec/generate-application/code/common/single-quoted-string.d.ts +6 -0
  56. package/dist/application-spec/generate-application/code/common/single-quoted-string.js +1 -0
  57. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  58. package/dist/application-spec/generate-application/code/generate-application-code.d.ts +3 -2
  59. package/dist/application-spec/generate-application/code/generate-application-code.js +1 -1
  60. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +15 -14
  61. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  62. package/dist/application-spec/generate-application/code/standalone-app-files.d.ts +2 -2
  63. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  64. package/dist/application-spec/generate-application/code/story-files.js +1 -1
  65. package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -0
  66. package/dist/application-spec/generate-application/code/templates/common/format-property-key.d.ts +7 -0
  67. package/dist/application-spec/generate-application/code/templates/common/format-property-key.js +1 -0
  68. package/dist/application-spec/generate-application/code/templates/common/schema-to-type-string.js +3 -3
  69. package/dist/application-spec/generate-application/code/templates/configurator-config.js +6 -4
  70. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +35 -0
  71. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +5 -0
  72. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.d.ts +1 -0
  73. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.js +1 -0
  74. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.d.ts +1 -1
  75. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +7 -7
  76. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  77. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +67 -70
  78. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +8 -0
  79. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  80. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  81. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-presets.js +1 -1
  82. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +13 -13
  83. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.d.ts +1 -1
  84. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.js +2 -2
  85. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +2 -1
  86. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  87. package/dist/application-spec/generate-application/code/templates/eslint-config.d.ts +5 -0
  88. package/dist/application-spec/generate-application/code/templates/eslint-config.js +4 -5
  89. package/dist/application-spec/generate-application/code/templates/frontend-config.js +3 -5
  90. package/dist/application-spec/generate-application/code/templates/gitignore.js +0 -3
  91. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.d.ts +43 -0
  92. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +31 -0
  93. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
  94. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  95. package/dist/application-spec/generate-application/code/templates/globals.js +24 -43
  96. package/dist/application-spec/generate-application/code/templates/index.d.ts +3 -3
  97. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  98. package/dist/application-spec/generate-application/code/templates/lingui-rc.d.ts +5 -0
  99. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +4 -4
  100. package/dist/application-spec/generate-application/code/templates/prettier-config.d.ts +5 -0
  101. package/dist/application-spec/generate-application/code/templates/prettier-config.js +4 -5
  102. package/dist/application-spec/generate-application/code/templates/root-tsconfig.d.ts +6 -0
  103. package/dist/application-spec/generate-application/code/templates/root-tsconfig.js +2 -0
  104. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  105. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +1 -1
  106. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +5 -5
  107. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +9 -3
  108. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  109. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +2 -2
  110. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +26 -7
  111. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -2
  112. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
  113. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
  114. package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
  115. package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
  116. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
  117. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
  118. package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
  119. package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
  120. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
  121. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
  122. package/dist/application-spec/generate-application/code/templates/story/phx-module.d.ts +8 -2
  123. package/dist/application-spec/generate-application/code/templates/story/phx-module.js +15 -3
  124. package/dist/application-spec/generate-application/code/templates/story/wrapper.d.ts +3 -0
  125. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -1
  126. package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
  127. package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
  128. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +6 -1
  129. package/dist/application-spec/generate-application/code/templates/webhook-index.js +10 -1
  130. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -3
  131. package/dist/application-spec/generate-application/index.d.ts +2 -0
  132. package/dist/application-spec/generate-application/index.js +1 -1
  133. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +6 -4
  134. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +1 -1
  135. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +8 -3
  136. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  137. package/dist/application-spec/generate-application/runtime/admin-runtime/states-runtime.d.ts +2 -2
  138. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +19 -5
  139. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  140. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +6 -4
  141. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +1 -1
  142. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +7 -2
  143. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  144. package/dist/application-spec/generate-application/runtime/configurator-runtime/states-runtime.d.ts +2 -2
  145. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +43 -0
  146. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.js +1 -0
  147. package/dist/application-spec/generate-application/runtime/factory-data/index.d.ts +3 -0
  148. package/dist/application-spec/generate-application/runtime/factory-data/index.js +1 -0
  149. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +13 -0
  150. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -0
  151. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +16 -0
  152. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -0
  153. package/dist/application-spec/generate-application/runtime/migrations/index.d.ts +1 -0
  154. package/dist/application-spec/generate-application/runtime/migrations/index.js +1 -0
  155. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +53 -0
  156. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +1 -0
  157. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +2 -2
  158. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +3 -2
  159. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  160. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +2 -1
  161. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +1 -1
  162. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +3 -0
  163. package/dist/application-spec/generate-application/runtime/sections/component-optic.js +1 -1
  164. package/dist/application-spec/generate-application/runtime/sections/data-runtime.d.ts +4 -4
  165. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +7 -4
  166. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  167. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +9 -5
  168. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  169. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +3 -1
  170. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.js +1 -1
  171. package/dist/application-spec/generate-application/runtime/sections/theme-runtime.d.ts +2 -2
  172. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +3 -3
  173. package/dist/application-spec/generate-application/runtime/spec-code/index.d.ts +2 -0
  174. package/dist/application-spec/generate-application/runtime/spec-code/index.js +1 -0
  175. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +18 -0
  176. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.js +1 -0
  177. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.d.ts +17 -0
  178. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.js +1 -0
  179. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.d.ts +9 -0
  180. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.js +1 -0
  181. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.d.ts +8 -0
  182. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.js +1 -0
  183. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +27 -0
  184. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.js +1 -0
  185. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +5 -0
  186. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -0
  187. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +68 -0
  188. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -0
  189. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +40 -0
  190. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.js +1 -0
  191. package/dist/application-spec/index.d.ts +1 -0
  192. package/dist/application-spec/index.js +1 -1
  193. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +34 -0
  194. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  195. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.d.ts +16 -0
  196. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.js +9 -0
  197. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts +9 -0
  198. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
  199. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  200. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  201. package/dist/application-spec/parse-application-files/raw-spec/parse-yaml-spec-file.js +1 -1
  202. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +16 -3
  203. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  204. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  205. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  206. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  207. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  208. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  209. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.d.ts +3 -0
  210. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js +1 -0
  211. package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +5 -0
  212. package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -0
  213. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.d.ts +6 -0
  214. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.js +1 -0
  215. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.d.ts +8 -0
  216. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.js +1 -0
  217. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts +10 -0
  218. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.js +1 -0
  219. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.d.ts +98 -0
  220. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.js +1 -0
  221. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts +13 -0
  222. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js +1 -0
  223. package/dist/application-spec/parse-application-files/spec/components/bindings/index.d.ts +2 -0
  224. package/dist/application-spec/parse-application-files/spec/components/bindings/index.js +1 -1
  225. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.d.ts +24 -0
  226. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js +1 -0
  227. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  228. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  229. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  230. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  231. package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts +8 -0
  232. package/dist/application-spec/parse-application-files/spec/components/component-state-type.js +1 -0
  233. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts +13 -0
  234. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js +1 -0
  235. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  236. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  237. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.d.ts +14 -0
  238. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.js +1 -0
  239. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +6 -0
  240. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  241. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +7 -4
  242. package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
  243. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +24 -0
  244. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -0
  245. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.d.ts +13 -0
  246. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.js +1 -0
  247. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
  248. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
  249. package/dist/application-spec/parse-application-files/spec/expressions/expression.d.ts +1 -28
  250. package/dist/application-spec/parse-application-files/spec/expressions/expression.js +1 -1
  251. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -3
  252. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  253. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  254. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  255. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  256. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +3 -1
  257. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  258. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +2 -2
  259. package/dist/application-spec/parse-application-files/spec/invariants/invariants.js +1 -1
  260. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  261. package/dist/application-spec/parse-application-files/spec/model/index.d.ts +1 -0
  262. package/dist/application-spec/parse-application-files/spec/model/index.js +1 -1
  263. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.d.ts +10 -0
  264. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.js +1 -0
  265. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  266. package/dist/client/phoenix-api.d.ts +463 -0
  267. package/dist/configurator/ConfiguratorApp.js +1 -1
  268. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.d.ts +2 -0
  269. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.js +5 -0
  270. package/dist/configurator/app-loader-content/app-loader-content-name.d.ts +5 -0
  271. package/dist/configurator/app-loader-content/app-loader-content-name.js +1 -0
  272. package/dist/configurator/app-loader-content/index.d.ts +2 -0
  273. package/dist/configurator/app-loader-content/index.js +1 -0
  274. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  275. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  276. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  277. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +38 -1
  278. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  279. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +7 -1
  280. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  281. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.d.ts +1 -1
  282. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  283. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.d.ts +12 -0
  284. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.js +1 -0
  285. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +20 -4
  286. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  287. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  288. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  289. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  290. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  291. package/dist/configurator/common/configurator-interface.d.ts +132 -4
  292. package/dist/configurator/common/configurator-interface.js +1 -1
  293. package/dist/configurator/common/index.d.ts +3 -1
  294. package/dist/configurator/common/index.js +1 -1
  295. package/dist/configurator/common/use-reset-camera.d.ts +6 -0
  296. package/dist/configurator/common/use-reset-camera.js +1 -0
  297. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +12 -0
  298. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -0
  299. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.d.ts +9 -0
  300. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.js +1 -0
  301. package/dist/configurator/configuration-not-found-page/index.d.ts +2 -0
  302. package/dist/configurator/configuration-not-found-page/index.js +1 -0
  303. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +12 -0
  304. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -0
  305. package/dist/configurator/configurator-context/PresetSelectionProvider.js +1 -1
  306. package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
  307. package/dist/configurator/configurator-context/ViewportStateSync.d.ts +2 -2
  308. package/dist/configurator/configurator-context/ViewportStateSync.js +1 -1
  309. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +7 -1
  310. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.d.ts +6 -0
  311. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.js +1 -0
  312. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.d.ts +12 -0
  313. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.js +1 -0
  314. package/dist/configurator/configurator-error-page/create-configurator-error-page.d.ts +9 -0
  315. package/dist/configurator/configurator-error-page/create-configurator-error-page.js +1 -0
  316. package/dist/configurator/configurator-error-page/index.d.ts +3 -0
  317. package/dist/configurator/configurator-error-page/index.js +1 -0
  318. package/dist/configurator/index.d.ts +3 -0
  319. package/dist/configurator/index.js +1 -1
  320. package/dist/configurator/pages/ConfiguratorErrorPage.d.ts +0 -1
  321. package/dist/configurator/pages/ConfiguratorErrorPage.js +1 -1
  322. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  323. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +3 -2
  324. package/dist/configurator/pages/DefaultNotAuthenticatedPage.d.ts +8 -0
  325. package/dist/configurator/pages/DefaultNotAuthenticatedPage.js +1 -0
  326. package/dist/configurator/pages/DefaultPresetUi.d.ts +7 -0
  327. package/dist/configurator/pages/DefaultPresetUi.js +1 -0
  328. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  329. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  330. package/dist/configurator/pages/PresetCreationErrorPage.d.ts +1 -1
  331. package/dist/configurator/pages/PresetCreationErrorPage.js +1 -1
  332. package/dist/configurator/pages/RootPage.js +1 -1
  333. package/dist/configurator/pages/configurator-layout-name.d.ts +2 -0
  334. package/dist/configurator/pages/configurator-layout-name.js +1 -0
  335. package/dist/configurator/pages/default-configurator-elements.d.ts +13 -0
  336. package/dist/configurator/pages/default-configurator-elements.js +1 -0
  337. package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +10 -0
  338. package/dist/configurator/pages/default-elements/built-in-entity-element.js +1 -0
  339. package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +10 -0
  340. package/dist/configurator/pages/default-elements/built-in-layout-element.js +1 -0
  341. package/dist/configurator/pages/default-elements/domain-control-elements.d.ts +6 -0
  342. package/dist/configurator/pages/default-elements/domain-control-elements.js +1 -0
  343. package/dist/configurator/pages/default-elements/index.d.ts +5 -0
  344. package/dist/configurator/pages/default-elements/index.js +1 -0
  345. package/dist/configurator/pages/default-elements/recipe-panel-elements.d.ts +3 -0
  346. package/dist/configurator/pages/default-elements/recipe-panel-elements.js +1 -0
  347. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.d.ts +3 -0
  348. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.js +1 -0
  349. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.d.ts +3 -0
  350. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.js +1 -0
  351. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.d.ts +3 -0
  352. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.js +1 -0
  353. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.d.ts +3 -0
  354. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.js +1 -0
  355. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.d.ts +3 -0
  356. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.js +1 -0
  357. package/dist/configurator/pages/default-elements/scene-controls/index.d.ts +6 -0
  358. package/dist/configurator/pages/default-elements/scene-controls/index.js +1 -0
  359. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.d.ts +6 -0
  360. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.js +1 -0
  361. package/dist/configurator/pages/default-elements/sidebar-footer-elements.d.ts +7 -0
  362. package/dist/configurator/pages/default-elements/sidebar-footer-elements.js +1 -0
  363. package/dist/configurator/pages/default-elements/toolbar-elements.d.ts +7 -0
  364. package/dist/configurator/pages/default-elements/toolbar-elements.js +1 -0
  365. package/dist/configurator/pages/error-boundaries/GeneralErrorBoundary.js +1 -1
  366. package/dist/configurator/pages/index.d.ts +1 -0
  367. package/dist/configurator/pages/index.js +1 -1
  368. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.d.ts +4 -0
  369. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.js +1 -0
  370. package/dist/configurator/preset-screen-elements/PresetPageActionElement.d.ts +4 -0
  371. package/dist/configurator/preset-screen-elements/PresetPageActionElement.js +1 -0
  372. package/dist/configurator/preset-screen-elements/index.d.ts +2 -0
  373. package/dist/configurator/preset-screen-elements/index.js +1 -0
  374. package/dist/configurator/scene/index.d.ts +1 -0
  375. package/dist/configurator/scene/index.js +1 -1
  376. package/dist/configurator/scene/scene-controls/DeleteEntityFab.js +1 -1
  377. package/dist/configurator/scene/scene-controls/SelectionHotspot.js +1 -1
  378. package/dist/configurator/scene/scene-controls/ToolFab.d.ts +4 -0
  379. package/dist/configurator/scene/scene-controls/ToolFab.js +1 -1
  380. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  381. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  382. package/dist/configurator/scene/scene-controls/use-scene-control-tooltip.d.ts +2 -1
  383. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  384. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  385. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  386. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  387. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  388. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  389. package/dist/configurator/scene/scene-entity/scene-controls/SceneEntityHtmlHotspots.js +1 -1
  390. package/dist/configurator/toolbar-actions/index.d.ts +2 -0
  391. package/dist/configurator/toolbar-actions/index.js +1 -0
  392. package/dist/configurator/toolbar-actions/use-assistant-panel.d.ts +18 -0
  393. package/dist/configurator/toolbar-actions/use-assistant-panel.js +1 -0
  394. package/dist/configurator/toolbar-actions/use-measurements.d.ts +35 -0
  395. package/dist/configurator/toolbar-actions/use-measurements.js +1 -0
  396. package/dist/configurator/ui/assistant/AssistantChips.d.ts +8 -2
  397. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  398. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -2
  399. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  400. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  401. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  402. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  403. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  404. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  405. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  406. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  407. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  408. package/dist/configurator/ui/assistant/entity-link/index.d.ts +2 -0
  409. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  410. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +19 -0
  411. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -0
  412. package/dist/configurator/ui/assistant/form/built-in-form-registry.d.ts +10 -0
  413. package/dist/configurator/ui/assistant/form/built-in-form-registry.js +1 -0
  414. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +11 -0
  415. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -0
  416. package/dist/configurator/ui/assistant/form/describe-build-errors.d.ts +6 -0
  417. package/dist/configurator/ui/assistant/form/describe-build-errors.js +1 -0
  418. package/dist/configurator/ui/assistant/form/form-element-definition.d.ts +14 -0
  419. package/dist/configurator/ui/assistant/form/form-element-definition.js +1 -0
  420. package/dist/configurator/ui/assistant/form/form-model.d.ts +38 -0
  421. package/dist/configurator/ui/assistant/form/form-model.js +1 -0
  422. package/dist/configurator/ui/assistant/form/form-registry.d.ts +31 -0
  423. package/dist/configurator/ui/assistant/form/form-registry.js +8 -0
  424. package/dist/configurator/ui/assistant/form/form-state.d.ts +4 -0
  425. package/dist/configurator/ui/assistant/form/form-state.js +1 -0
  426. package/dist/configurator/ui/assistant/form/index.d.ts +2 -0
  427. package/dist/configurator/ui/assistant/form/index.js +1 -0
  428. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +9 -0
  429. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -0
  430. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +13 -0
  431. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -0
  432. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +3 -0
  433. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -0
  434. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +3 -0
  435. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -0
  436. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +3 -0
  437. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -0
  438. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +3 -0
  439. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -0
  440. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +34 -0
  441. package/dist/configurator/ui/assistant/form-elements/form-element-props.js +1 -0
  442. package/dist/configurator/ui/assistant/form-elements/index.d.ts +5 -0
  443. package/dist/configurator/ui/assistant/form-elements/index.js +1 -0
  444. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +16 -0
  445. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -0
  446. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.d.ts +34 -0
  447. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.js +1 -0
  448. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.d.ts +25 -0
  449. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.js +1 -0
  450. package/dist/configurator/ui/assistant/reference-link/index.d.ts +3 -0
  451. package/dist/configurator/ui/assistant/reference-link/index.js +1 -0
  452. package/dist/configurator/ui/assistant/reference-link/reference-styles.d.ts +12 -0
  453. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -0
  454. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.d.ts +8 -0
  455. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.js +1 -0
  456. package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +9 -0
  457. package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -0
  458. package/dist/configurator/ui/assistant/resource-image/index.d.ts +3 -0
  459. package/dist/configurator/ui/assistant/resource-image/index.js +1 -0
  460. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +11 -0
  461. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -0
  462. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.d.ts +5 -0
  463. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.js +1 -0
  464. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +2 -0
  465. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  466. package/dist/configurator/ui/assistant/thread-items.d.ts +8 -1
  467. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  468. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -1
  469. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  470. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  471. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  472. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  473. package/dist/configurator/ui/configurator-layout/slots/canvas/LayoutCanvas.js +1 -1
  474. package/dist/configurator/ui/configurator-layout/slots/canvas/SharedCanvas.js +1 -1
  475. package/dist/configurator/ui/configurator-layout/{universal → slots/desktop-sidebar}/DesktopSidebar.d.ts +23 -14
  476. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  477. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  478. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  479. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.d.ts +1 -1
  480. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.js +1 -1
  481. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  482. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  483. package/dist/configurator/ui/configurator-layout/slots/services/Services.js +1 -1
  484. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  485. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  486. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.d.ts +1 -1
  487. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.js +1 -1
  488. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  489. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  490. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +1 -1
  491. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +2 -2
  492. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +1 -1
  493. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -1
  494. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +1 -1
  495. package/dist/configurator/ui/legacy/layout/common/CommonFinalizeButton.js +1 -1
  496. package/dist/configurator/ui/legacy/layout/common/CommonSummaryButton.js +1 -1
  497. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  498. package/dist/configurator/ui/legacy/layout/common/ReactiveInterfaceLayout.js +1 -1
  499. package/dist/configurator/ui/legacy/layout/common/ResponsiveFinalizeButton.js +1 -1
  500. package/dist/configurator/ui/legacy/layout/common/SummaryReadLayout.js +1 -1
  501. package/dist/configurator/ui/legacy/layout/simple/SimpleOwnerLayout.js +1 -1
  502. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  503. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  504. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  505. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  506. package/dist/configurator/ui/legacy/layout/steps/StepsSidebarFooter.js +1 -1
  507. package/dist/configurator/ui/legacy/layout/tabs/TabsOwnerLayout.js +1 -1
  508. package/dist/configurator/ui/legacy/toolbar/common/DimensionUnitSelector.js +1 -1
  509. package/dist/configurator/ui/legacy/toolbar/common/MeasurementsIndicatorsSwitch.js +1 -1
  510. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/FullscreenToolbarAction.js +1 -1
  511. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/HelpToolbarAction.js +1 -1
  512. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/MeasurementsToolbarAction.js +1 -1
  513. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/UndoRedoToolbarGroup.js +1 -1
  514. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.js +2 -6
  515. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -1
  516. package/dist/configurator/ui/phoenix-layout-elements/EnterFullscreenToolbarButton.js +1 -1
  517. package/dist/configurator/ui/phoenix-layout-elements/ExitFullscreenToolbarButton.js +1 -1
  518. package/dist/configurator/ui/phoenix-layout-elements/HelpToolbarButton.js +1 -1
  519. package/dist/configurator/ui/phoenix-layout-elements/LanguageMenuAction.js +1 -1
  520. package/dist/configurator/ui/phoenix-layout-elements/LanguageToolbarButton.js +1 -1
  521. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.d.ts +1 -0
  522. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.js +1 -1
  523. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.d.ts +1 -0
  524. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.js +1 -1
  525. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsMenuAction.js +1 -1
  526. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsToolbarButton.js +1 -1
  527. package/dist/configurator/ui/phoenix-layout-elements/RedoToolbarButton.js +1 -1
  528. package/dist/configurator/ui/phoenix-layout-elements/ShareToolbarButton.js +1 -1
  529. package/dist/configurator/ui/phoenix-layout-elements/UndoToolbarButton.js +1 -1
  530. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  531. package/dist/configurator/ui/phoenix-layout-elements/header/common/horizontal-tabs/DesktopHorizontalTabs.js +1 -1
  532. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.d.ts +1 -1
  533. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.js +1 -1
  534. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -8
  535. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  536. package/dist/configurator/ui/phoenix-layout-elements/measurements/DimensionUnitSelector.js +1 -1
  537. package/dist/configurator/ui/phoenix-layout-elements/measurements/MeasurementsIndicatorsSwitch.js +1 -1
  538. package/dist/configurator/ui/phoenix-layout-elements/share/ShareModal.js +1 -1
  539. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.d.ts +7 -8
  540. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.js +1 -1
  541. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/BasicFinalizeButton.js +1 -1
  542. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/CustomFinalizeButton.js +1 -1
  543. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/EnterSummaryButton.js +1 -1
  544. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/FinalizeActions.js +1 -1
  545. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/NextStepButton.js +1 -1
  546. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  547. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  548. package/dist/configurator/ui/preset-layout/PresetUi.d.ts +4 -0
  549. package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
  550. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.d.ts +10 -0
  551. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -0
  552. package/dist/configurator/ui/save-message-snackbars/index.d.ts +1 -0
  553. package/dist/configurator/ui/save-message-snackbars/index.js +1 -0
  554. package/dist/docs/complex-use-cases/focus-mode.mdx +2 -0
  555. package/dist/docs/controls/select-child-entity/cardselect.mdx +1 -0
  556. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  557. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  558. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  559. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  560. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  561. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  562. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  563. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  564. package/dist/docs/fabs/basic.mdx +6 -2
  565. package/dist/docs/index.json +42 -1
  566. package/dist/docs/layouts/custom-layout.mdx +2437 -0
  567. package/dist/docs/layouts/header/fixed.mdx +2 -2
  568. package/dist/docs/layouts/header/floating.mdx +2 -2
  569. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  570. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  571. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  572. package/dist/docs/other-features/error-5xx.mdx +1 -1
  573. package/dist/docs/other-features/navigation-hotspot.mdx +2 -0
  574. package/dist/docs/other-features/not-found-404.mdx +1 -1
  575. package/dist/docs/other-features/transformers.mdx +4 -0
  576. package/dist/docs/phoenix/application-states.mdx +9 -7
  577. package/dist/docs/phoenix/clerk-sign-in.mdx +1 -1
  578. package/dist/docs/phoenix/components.mdx +6 -0
  579. package/dist/docs/phoenix/configurator-interface.mdx +302 -23
  580. package/dist/docs/phoenix/deployments.mdx +2 -6
  581. package/dist/docs/phoenix/domain-model.mdx +2 -0
  582. package/dist/docs/phoenix/finalization.mdx +1 -1
  583. package/dist/docs/phoenix/getting-started.mdx +6 -3
  584. package/dist/docs/phoenix/layout-slots.mdx +116 -0
  585. package/dist/docs/phoenix/localization.mdx +10 -6
  586. package/dist/docs/phoenix/migration-guide.mdx +24 -11
  587. package/dist/docs/phoenix/phoenix-cli.mdx +72 -21
  588. package/dist/docs/phoenix/project-structure.mdx +72 -34
  589. package/dist/docs/phoenix/quickstart.mdx +7 -7
  590. package/dist/docs/phoenix/sdk-builder-workflow.mdx +7 -7
  591. package/dist/docs/phoenix/testing.mdx +148 -0
  592. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  593. package/dist/docs/phoenix/webhooks.mdx +21 -4
  594. package/dist/docs/selection-and-highlight/hotspots.mdx +2 -0
  595. package/dist/domain/application/application-config.d.ts +3 -1
  596. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  597. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  598. package/dist/domain/application/assistant/assistant-form-elements.d.ts +28 -0
  599. package/dist/domain/application/assistant/assistant-form-elements.js +1 -0
  600. package/dist/domain/application/assistant/assistant-manifest.d.ts +9 -1
  601. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +38 -2
  602. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -1
  603. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  604. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  605. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  606. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  607. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  608. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  609. package/dist/domain/application/assistant/index.d.ts +8 -1
  610. package/dist/domain/application/assistant/index.js +1 -1
  611. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  612. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  613. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  614. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  615. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +48 -0
  616. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  617. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  618. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  619. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  620. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  621. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -1
  622. package/dist/domain/application/configurator-builder.d.ts +5 -2
  623. package/dist/domain/application/configurator-builder.js +1 -1
  624. package/dist/domain/core/expression/constant-expressions.d.ts +16 -8
  625. package/dist/domain/core/invariant/violation.d.ts +50 -2
  626. package/dist/domain/core/invariant/violation.js +1 -1
  627. package/dist/domain/core/model/model.d.ts +1 -1
  628. package/dist/domain/core/schema/extended-schema-validator.js +1 -1
  629. package/dist/domain/domain-context/index.d.ts +1 -1
  630. package/dist/domain/domain-context/undo-system.d.ts +28 -1
  631. package/dist/domain/domain-context/undo-system.js +1 -1
  632. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  633. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  634. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  635. package/dist/domain/domain-runtime/access/types.js +1 -1
  636. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  637. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  638. package/dist/domain/domain-runtime/domain-runtime.d.ts +16 -0
  639. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +19 -0
  640. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  641. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  642. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  643. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  644. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  645. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  646. package/dist/domain/domain-runtime/errors/index.js +1 -0
  647. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  648. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  649. package/dist/domain/domain-runtime/index.d.ts +1 -0
  650. package/dist/domain/domain-runtime/index.js +1 -1
  651. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  652. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  653. package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +12 -11
  654. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -1
  655. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +1 -1
  656. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -1
  657. package/dist/domain/domain-runtime/spec/module-checks/project-modules.d.ts +8 -1
  658. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -1
  659. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -1
  660. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -1
  661. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -1
  662. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -1
  663. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  664. package/dist/domain/domain-runtime/spec/types.d.ts +2 -0
  665. package/dist/domain/extensions/attribute-switch.d.ts +1 -1
  666. package/dist/domain/extensions/attribute-switch.js +1 -1
  667. package/dist/domain/extensions/canvas-config.d.ts +1 -1
  668. package/dist/domain/extensions/client-side-image.d.ts +2 -2
  669. package/dist/domain/extensions/client-side-image.js +1 -1
  670. package/dist/domain/extensions/common/angle-indicator-schema.d.ts +2 -2
  671. package/dist/domain/extensions/common/dimension-indicator-schema.d.ts +2 -2
  672. package/dist/domain/extensions/editable-angle-indicator.d.ts +1 -1
  673. package/dist/domain/extensions/editable-distance-dimension-indicator.d.ts +1 -1
  674. package/dist/domain/extensions/editable-offset-indicator.d.ts +1 -1
  675. package/dist/domain/extensions/editable-offset-indicator.js +1 -1
  676. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -1
  677. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -1
  678. package/dist/domain/extensions/horizontal-tabs.d.ts +2 -2
  679. package/dist/domain/extensions/list-selector-dimension-indicator.d.ts +1 -1
  680. package/dist/domain/extensions/navigation-steps.d.ts +2 -2
  681. package/dist/domain/extensions/offset-indicator.js +1 -1
  682. package/dist/domain/extensions/rotation-handle.d.ts +2 -2
  683. package/dist/domain/extensions/save-template-thumbnail.d.ts +2 -2
  684. package/dist/domain/extensions/save-template-thumbnail.js +1 -1
  685. package/dist/domain/extensions/scene-entity-animation.js +1 -1
  686. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +9 -0
  687. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  688. package/dist/domain/mocks/create-mock-domain.js +1 -1
  689. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  690. package/dist/domain/mocks/create-test-application-config.js +1 -0
  691. package/dist/domain/mocks/index.d.ts +1 -0
  692. package/dist/domain/mocks/index.js +1 -1
  693. package/dist/domain/system-components/application-config.d.ts +2 -2
  694. package/dist/domain/system-components/child-entity-selection.js +1 -1
  695. package/dist/domain/system-components/collision-box-geometry.d.ts +4 -2
  696. package/dist/domain/system-components/collision-geometry.d.ts +4 -2
  697. package/dist/domain/system-components/collision-point-geometry.d.ts +4 -2
  698. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  699. package/dist/domain/system-components/common/recipes.d.ts +21 -3
  700. package/dist/domain/system-components/common/recipes.js +1 -1
  701. package/dist/domain/system-components/common/scene-entity-control-schema.d.ts +3 -0
  702. package/dist/domain/system-components/common/scene-entity-control-schema.js +1 -1
  703. package/dist/domain/system-components/constraint.d.ts +10 -23
  704. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  705. package/dist/domain/system-components/drag-handle.js +1 -1
  706. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  707. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  708. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  709. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  710. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -1
  711. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  712. package/dist/domain/system-components/material-swatch.js +1 -1
  713. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  714. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  715. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  716. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  717. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  718. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  719. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  720. package/dist/editor/Editor.d.ts +7 -0
  721. package/dist/editor/Editor.js +1 -1
  722. package/dist/editor/mocks/CreateMockYaml.js +2 -2
  723. package/dist/editor/mocks/EditorMockContext.d.ts +2 -0
  724. package/dist/editor/mocks/EditorMockContext.js +1 -1
  725. package/dist/globals/index.d.ts +2 -0
  726. package/dist/i18n/locales/cs/messages.js +1 -1
  727. package/dist/i18n/locales/da/messages.js +1 -1
  728. package/dist/i18n/locales/de/messages.js +1 -1
  729. package/dist/i18n/locales/de-AT/messages.js +1 -1
  730. package/dist/i18n/locales/en/messages.js +1 -1
  731. package/dist/i18n/locales/en-AU/messages.js +1 -1
  732. package/dist/i18n/locales/en-GB/messages.js +1 -1
  733. package/dist/i18n/locales/es/messages.js +1 -1
  734. package/dist/i18n/locales/fr/messages.js +1 -1
  735. package/dist/i18n/locales/hu/messages.js +1 -1
  736. package/dist/i18n/locales/it/messages.js +1 -1
  737. package/dist/i18n/locales/nl/messages.js +1 -1
  738. package/dist/i18n/locales/pl/messages.js +1 -1
  739. package/dist/i18n/locales/pt/messages.js +1 -1
  740. package/dist/i18n/locales/ro/messages.js +1 -1
  741. package/dist/i18n/locales/sk/messages.js +1 -1
  742. package/dist/i18n/locales/tr/messages.js +1 -1
  743. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -1
  744. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  745. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  746. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +160 -148
  747. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  748. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  749. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  750. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +7 -1
  751. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +15 -14
  752. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +14 -12
  753. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +14 -13
  754. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +13 -11
  755. package/dist/phoenix/application-spec/application-spec-builder.d.ts +0 -2
  756. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  757. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +0 -2
  758. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  759. package/dist/phoenix/application-spec/generate-application-spec-story.js +2 -2
  760. package/dist/phoenix/application-spec/generate-project-files.d.ts +0 -2
  761. package/dist/phoenix/application-spec/project-files.js +1 -1
  762. package/dist/phoenix/bin.d.ts +2 -0
  763. package/dist/phoenix/bin.js +2 -0
  764. package/dist/phoenix/check-configs/built-in-eslint-config.d.ts +9 -0
  765. package/dist/phoenix/check-configs/built-in-eslint-config.js +1 -0
  766. package/dist/phoenix/check-configs/eslint-config.d.ts +10 -0
  767. package/dist/phoenix/check-configs/eslint-config.js +1 -0
  768. package/dist/phoenix/check-configs/index.d.ts +8 -0
  769. package/dist/phoenix/check-configs/index.js +1 -0
  770. package/dist/phoenix/check-configs/typescript-project.d.ts +5 -0
  771. package/dist/phoenix/check-configs/typescript-project.js +1 -0
  772. package/dist/phoenix/cli.d.ts +0 -1
  773. package/dist/phoenix/cli.js +1 -2
  774. package/dist/phoenix/commands/build.js +1 -1
  775. package/dist/phoenix/commands/check.js +1 -1
  776. package/dist/phoenix/commands/clean.js +1 -1
  777. package/dist/phoenix/commands/deploy.js +2 -2
  778. package/dist/phoenix/commands/deps/deps.d.ts +73 -0
  779. package/dist/phoenix/commands/deps/deps.js +3 -0
  780. package/dist/phoenix/commands/deps/index.d.ts +1 -0
  781. package/dist/phoenix/commands/deps/index.js +1 -0
  782. package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
  783. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
  784. package/dist/phoenix/commands/dev.js +5 -5
  785. package/dist/phoenix/commands/fix.js +1 -1
  786. package/dist/phoenix/commands/index.d.ts +1 -0
  787. package/dist/phoenix/commands/index.js +1 -1
  788. package/dist/phoenix/commands/init.d.ts +17 -5
  789. package/dist/phoenix/commands/init.js +1 -1
  790. package/dist/phoenix/commands/link.js +1 -1
  791. package/dist/phoenix/commands/prettier.js +1 -1
  792. package/dist/phoenix/commands/sync.js +1 -1
  793. package/dist/phoenix/commands/unlink.js +1 -1
  794. package/dist/phoenix/services/application-spec-project-watcher.d.ts +2 -2
  795. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  796. package/dist/phoenix/services/lingui.d.ts +8 -0
  797. package/dist/phoenix/services/lingui.js +1 -1
  798. package/dist/phoenix/services/source-archive.d.ts +1 -0
  799. package/dist/phoenix/services/source-archive.js +1 -1
  800. package/dist/phoenix/services/swc.js +1 -1
  801. package/dist/phoenix/services/vite-config.js +1 -1
  802. package/dist/phoenix/utils/index.d.ts +4 -2
  803. package/dist/phoenix/utils/index.js +1 -1
  804. package/dist/phoenix/utils/node-version/index.d.ts +1 -0
  805. package/dist/phoenix/utils/node-version/index.js +1 -0
  806. package/dist/phoenix/utils/node-version/supported-node-version.d.ts +12 -0
  807. package/dist/phoenix/utils/node-version/supported-node-version.js +4 -0
  808. package/dist/phoenix/utils/package-info.d.ts +0 -9
  809. package/dist/phoenix/utils/package-info.js +1 -1
  810. package/dist/phoenix/utils/package-manager/index.d.ts +2 -0
  811. package/dist/phoenix/utils/package-manager/index.js +1 -0
  812. package/dist/phoenix/utils/package-manager/package-manager-commands.d.ts +19 -0
  813. package/dist/phoenix/utils/package-manager/package-manager-commands.js +1 -0
  814. package/dist/phoenix/utils/package-manager/pnpm-project.d.ts +9 -0
  815. package/dist/phoenix/utils/package-manager/pnpm-project.js +1 -0
  816. package/dist/phoenix/utils/run-command.d.ts +11 -0
  817. package/dist/phoenix/utils/run-command.js +1 -1
  818. package/dist/phoenix/utils/sdk-tool/index.d.ts +1 -0
  819. package/dist/phoenix/utils/sdk-tool/index.js +1 -0
  820. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.d.ts +15 -0
  821. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.js +1 -0
  822. package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.d.ts +6 -0
  823. package/dist/react-sdk/application-runtime/common-services/analytics/frontend-analytics.js +1 -0
  824. package/dist/react-sdk/application-runtime/common-services/analytics/index.d.ts +1 -0
  825. package/dist/react-sdk/application-runtime/common-services/analytics/index.js +1 -1
  826. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +2 -0
  827. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  828. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  829. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +17 -0
  830. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  831. package/dist/react-sdk/domain-application-context/DomainLifecycleBoundary.js +1 -1
  832. package/dist/react-sdk/domain-context/common-hooks/index.d.ts +8 -0
  833. package/dist/react-sdk/domain-context/common-hooks/index.js +1 -0
  834. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +41 -0
  835. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  836. package/dist/react-sdk/domain-context/component-hooks/index.d.ts +1 -0
  837. package/dist/react-sdk/domain-context/component-hooks/index.js +1 -0
  838. package/dist/react-sdk/domain-context/component-hooks/use-component.js +1 -1
  839. package/dist/react-sdk/domain-context/entity-hooks/use-domain-entity-state.js +1 -1
  840. package/dist/react-sdk/domain-context/entity-hooks/use-entity-price.js +1 -1
  841. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-id.js +1 -1
  842. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-state.js +1 -1
  843. package/dist/react-sdk/domain-context/index.d.ts +8 -1
  844. package/dist/react-sdk/domain-context/index.js +1 -1
  845. package/dist/react-sdk/domain-context/system-hooks/composition-hooks.js +1 -1
  846. package/dist/react-sdk/domain-context/system-hooks/dimension-hooks.js +1 -1
  847. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.d.ts +8 -0
  848. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.js +1 -0
  849. package/dist/react-sdk/domain-context/system-hooks/hover-hooks.js +1 -1
  850. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.d.ts +24 -0
  851. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.js +1 -0
  852. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +5 -0
  853. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  854. package/dist/react-sdk/domain-context/system-hooks/selection-hooks.js +1 -1
  855. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.d.ts +32 -0
  856. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.js +1 -0
  857. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.d.ts +57 -0
  858. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.js +1 -0
  859. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.d.ts +61 -0
  860. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.js +1 -0
  861. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.d.ts +20 -0
  862. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -0
  863. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  864. package/dist/react-sdk/elements/configurator-error-page-props.d.ts +20 -0
  865. package/dist/react-sdk/elements/configurator-error-page-props.js +1 -0
  866. package/dist/react-sdk/elements/index.d.ts +1 -0
  867. package/dist/react-sdk/handlers/FinalizeActionRunner.d.ts +13 -0
  868. package/dist/react-sdk/handlers/FinalizeActionRunner.js +1 -0
  869. package/dist/react-sdk/handlers/FinalizeActionsHost.d.ts +10 -0
  870. package/dist/react-sdk/handlers/FinalizeActionsHost.js +1 -0
  871. package/dist/react-sdk/handlers/FinalizeActionsProvider.d.ts +11 -0
  872. package/dist/react-sdk/handlers/FinalizeActionsProvider.js +1 -0
  873. package/dist/react-sdk/handlers/finalize-actions-context.d.ts +6 -0
  874. package/dist/react-sdk/handlers/finalize-actions-context.js +1 -0
  875. package/dist/react-sdk/handlers/finalize-actions-store.d.ts +23 -0
  876. package/dist/react-sdk/handlers/finalize-actions-store.js +1 -0
  877. package/dist/react-sdk/handlers/index.d.ts +6 -0
  878. package/dist/react-sdk/handlers/index.js +1 -1
  879. package/dist/react-sdk/handlers/use-finalize-action.d.ts +32 -0
  880. package/dist/react-sdk/handlers/use-finalize-action.js +1 -0
  881. package/dist/react-sdk/handlers/use-finalize-actions.d.ts +53 -0
  882. package/dist/react-sdk/handlers/use-finalize-actions.js +1 -0
  883. package/dist/react-sdk/index.d.ts +2 -0
  884. package/dist/react-sdk/index.js +1 -1
  885. package/dist/react-sdk/loading-state/loading-state-manager.d.ts +5 -0
  886. package/dist/react-sdk/loading-state/loading-state-manager.js +1 -1
  887. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.d.ts +25 -0
  888. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.js +1 -0
  889. package/dist/react-sdk/responsive-state/canvas-padding.d.ts +14 -0
  890. package/dist/react-sdk/responsive-state/canvas-padding.js +1 -0
  891. package/dist/react-sdk/responsive-state/index.d.ts +5 -0
  892. package/dist/react-sdk/responsive-state/index.js +1 -0
  893. package/dist/react-sdk/responsive-state/responsive-state-manager.d.ts +111 -0
  894. package/dist/react-sdk/responsive-state/responsive-state-manager.js +1 -0
  895. package/dist/react-sdk/responsive-state/use-responsive-state-manager.d.ts +10 -0
  896. package/dist/react-sdk/responsive-state/use-responsive-state-manager.js +1 -0
  897. package/dist/react-sdk/responsive-state/use-responsive-state.d.ts +11 -0
  898. package/dist/react-sdk/responsive-state/use-responsive-state.js +1 -0
  899. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.d.ts +36 -0
  900. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.js +1 -0
  901. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.d.ts +44 -0
  902. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.js +1 -0
  903. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.d.ts +38 -0
  904. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.js +1 -0
  905. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.d.ts +30 -0
  906. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.js +1 -0
  907. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.d.ts +30 -0
  908. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.js +1 -0
  909. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.d.ts +9 -0
  910. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.js +1 -0
  911. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.d.ts +9 -0
  912. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.js +1 -0
  913. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.d.ts +10 -0
  914. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.js +1 -0
  915. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.d.ts +9 -0
  916. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.js +1 -0
  917. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.d.ts +9 -0
  918. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.js +1 -0
  919. package/dist/react-sdk/scene-control-elements/index.d.ts +11 -0
  920. package/dist/react-sdk/scene-control-elements/index.js +1 -0
  921. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.d.ts +5 -0
  922. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.js +1 -0
  923. package/dist/react-sdk/session/NotAuthenticatedPage.d.ts +4 -0
  924. package/dist/react-sdk/session/NotAuthenticatedPage.js +1 -1
  925. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +9 -0
  926. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.js +1 -1
  927. package/dist/ui-sdk/responsive-application/index.d.ts +1 -0
  928. package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +57 -0
  929. package/dist/ui-sdk/responsive-application/responsive-state-store.js +1 -0
  930. package/dist/ui-sdk/responsive-application/use-store-responsive-info.d.ts +7 -0
  931. package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -0
  932. package/dist/ui-sdk/theme/types.d.ts +1 -1
  933. package/dist/webhook/builders/webhook-builder.js +1 -1
  934. package/package.json +48 -36
  935. package/schema/domain-spec.json +1201 -217
  936. package/dist/application-spec/generate-application/code/templates/nvmrc.d.ts +0 -1
  937. package/dist/application-spec/generate-application/code/templates/nvmrc.js +0 -2
  938. package/dist/application-spec/generate-application/code/templates/package-json.d.ts +0 -10
  939. package/dist/application-spec/generate-application/code/templates/package-json.js +0 -1
  940. package/dist/application-spec/generate-application/code/templates/webhook-implementation.d.ts +0 -1
  941. package/dist/application-spec/generate-application/code/templates/webhook-implementation.js +0 -7
  942. package/dist/configurator/common/frontend-analytics.js +0 -1
  943. package/dist/configurator/ui/configurator-layout/universal/DesktopSidebar.js +0 -16
  944. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.d.ts +0 -4
  945. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.js +0 -1
  946. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.d.ts +0 -4
  947. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.js +0 -1
  948. package/dist/phoenix/commands/generate-project-files.d.ts +0 -6
  949. package/dist/phoenix/commands/generate-project-files.js +0 -1
  950. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  951. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  952. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
@@ -1,5 +1,5 @@
1
1
  import type { I18n } from '@lingui/core';
2
- import type { Localizable } from '@salsita-ai/common/utils';
2
+ import { type Localizable } from '@salsita-ai/common/utils';
3
3
  import type { StateEmission } from '../emission/index.js';
4
4
  import type { $DomainEntity, DomainEntity, EntityId } from '../model/index.js';
5
5
  /**
@@ -66,7 +66,55 @@ export declare const ViolationSchema: {
66
66
  readonly enum: ("fatal" | "fixable" | "notice" | "warning")[];
67
67
  };
68
68
  readonly message: {
69
- readonly type: 'string';
69
+ readonly anyOf: [{
70
+ readonly type: 'string';
71
+ }, {
72
+ readonly type: 'object';
73
+ readonly properties: {
74
+ readonly id: {
75
+ readonly type: 'string';
76
+ };
77
+ readonly comment: {
78
+ readonly type: 'string';
79
+ };
80
+ readonly message: {
81
+ readonly type: 'string';
82
+ };
83
+ readonly values: {
84
+ readonly type: 'object';
85
+ readonly additionalProperties: true;
86
+ };
87
+ };
88
+ readonly required: ["id"];
89
+ readonly additionalProperties: false;
90
+ readonly import: [{
91
+ readonly module: '@lingui/core';
92
+ readonly member: 'MessageDescriptor';
93
+ }];
94
+ readonly tsType: 'MessageDescriptor';
95
+ }, {
96
+ readonly import: [{
97
+ readonly module: '@salsita-ai/sdk/common/utils';
98
+ readonly member: 'MultilingualString';
99
+ }];
100
+ readonly tsType: 'MultilingualString';
101
+ readonly type: 'object';
102
+ readonly properties: {
103
+ readonly $lang: {
104
+ readonly type: 'object';
105
+ readonly additionalProperties: {
106
+ readonly type: 'string';
107
+ };
108
+ };
109
+ };
110
+ readonly required: ["$lang"];
111
+ readonly additionalProperties: false;
112
+ }];
113
+ readonly tsType: 'Localizable';
114
+ readonly import: [{
115
+ readonly module: '@salsita-ai/sdk/common/utils';
116
+ readonly member: 'Localizable';
117
+ }];
70
118
  };
71
119
  readonly controlViolationPriority: {
72
120
  readonly type: 'number';
@@ -1 +1 @@
1
- let e=["fatal","fixable","warning","notice"];export const compareSeverity=(t,i)=>e.indexOf(t)-e.indexOf(i);export const ViolationSchema={type:"object",properties:{type:{type:"string"},severity:{enum:e.slice()},message:{type:"string"},controlViolationPriority:{type:"number"}},required:["type","severity"],additionalProperties:!1};
1
+ import{MessageDescriptorSchema as e,MultilingualStringSchema as t}from"@salsita-ai/common/utils";let i=["fatal","fixable","warning","notice"];export const compareSeverity=(e,t)=>i.indexOf(e)-i.indexOf(t);export const ViolationSchema={type:"object",properties:{type:{type:"string"},severity:{enum:i.slice()},message:{anyOf:[{type:"string"},e,t],tsType:"Localizable",import:[{module:"@salsita-ai/sdk/common/utils",member:"Localizable"}]},controlViolationPriority:{type:"number"}},required:["type","severity"],additionalProperties:!1};
@@ -25,7 +25,7 @@ export declare const VirtualEntityIdSchema: {
25
25
  };
26
26
  export declare const createVirtualEntityId: (name: string) => VirtualEntityId;
27
27
  export declare const isVirtualEntityId: (value: EntityId<any>) => value is VirtualEntityId;
28
- export type DomainEntityId<TYPE extends string> = `${TYPE}-${number}` & {
28
+ export type DomainEntityId<TYPE extends string = string> = `${TYPE}-${number}` & {
29
29
  __brand: TYPE;
30
30
  };
31
31
  /**
@@ -1 +1 @@
1
- import{createAjvSchemaValidator as e}from"./create-ajv-schema-validator.js";import{createCspSchemaValidator as a}from"./create-csp-schema-validator.js";let t="csp-compatible"===globalThis.PHX_SCHEMA_VALIDATOR?a:e;export const getExtendedSchemaValidator=()=>{let e=t();return e.addKeyword("tsType"),e.addKeyword("import"),e.addKeyword("declared"),e};export const extendedSchemaValidator=getExtendedSchemaValidator();
1
+ import{createAjvSchemaValidator as e}from"./create-ajv-schema-validator.js";import{createCspSchemaValidator as a}from"./create-csp-schema-validator.js";export const getExtendedSchemaValidator=()=>{let t="csp-compatible"===globalThis.PHX_SCHEMA_VALIDATOR?a():e();return t.addKeyword("tsType"),t.addKeyword("import"),t.addKeyword("declared"),t};export const extendedSchemaValidator=getExtendedSchemaValidator();
@@ -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';
@@ -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 +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 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(),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),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,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: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: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:()=>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:()=>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 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,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;
@@ -272,24 +272,28 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
272
272
  access: {
273
273
  selectConfiguratorRawAccessInfo: import("@salsita-ai/common/utils").Selector<import("./index.js").AccessSelectorState, {
274
274
  raw: string;
275
+ access: import("@salsita-ai/contracts/api").AccessLevel;
275
276
  viewMode: boolean;
276
277
  revisionId: string | undefined;
277
278
  configurationId: string;
278
279
  } | null>;
279
280
  selectAdminRawAccessInfo: import("@salsita-ai/common/utils").Selector<import("./index.js").AccessSelectorState, {
280
281
  raw: string;
282
+ access: import("@salsita-ai/contracts/api").AccessLevel;
281
283
  viewMode: boolean;
282
284
  revisionId: string | undefined;
283
285
  configurationId: string;
284
286
  } | null>;
285
287
  selectConfiguratorAccessInfo: import("@salsita-ai/common/utils").Selector<import("./index.js").AccessSelectorState, {
286
288
  raw: string;
289
+ access: import("@salsita-ai/contracts/api").AccessLevel;
287
290
  viewMode: boolean;
288
291
  revisionId: string | undefined;
289
292
  configurationId: string;
290
293
  }>;
291
294
  selectAdminAccessInfo: import("@salsita-ai/common/utils").Selector<import("./index.js").AccessSelectorState, {
292
295
  raw: string;
296
+ access: import("@salsita-ai/contracts/api").AccessLevel;
293
297
  viewMode: boolean;
294
298
  revisionId: string | undefined;
295
299
  configurationId: string;
@@ -302,24 +306,28 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
302
306
  selectAdminConfigurationId: import("@salsita-ai/common/utils").Selector<import("./index.js").AccessSelectorState, string>;
303
307
  getConfiguratorRawAccessInfo: () => {
304
308
  raw: string;
309
+ access: import("@salsita-ai/contracts/api").AccessLevel;
305
310
  viewMode: boolean;
306
311
  revisionId: string | undefined;
307
312
  configurationId: string;
308
313
  } | null;
309
314
  getAdminRawAccessInfo: () => {
310
315
  raw: string;
316
+ access: import("@salsita-ai/contracts/api").AccessLevel;
311
317
  viewMode: boolean;
312
318
  revisionId: string | undefined;
313
319
  configurationId: string;
314
320
  } | null;
315
321
  getConfiguratorAccessInfo: () => {
316
322
  raw: string;
323
+ access: import("@salsita-ai/contracts/api").AccessLevel;
317
324
  viewMode: boolean;
318
325
  revisionId: string | undefined;
319
326
  configurationId: string;
320
327
  };
321
328
  getAdminAccessInfo: () => {
322
329
  raw: string;
330
+ access: import("@salsita-ai/contracts/api").AccessLevel;
323
331
  viewMode: boolean;
324
332
  revisionId: string | undefined;
325
333
  configurationId: string;
@@ -862,24 +870,28 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
862
870
  access: {
863
871
  selectConfiguratorRawAccessInfo: import("@salsita-ai/common/utils").Selector<import("./index.js").AccessSelectorState, {
864
872
  raw: string;
873
+ access: import("@salsita-ai/contracts/api").AccessLevel;
865
874
  viewMode: boolean;
866
875
  revisionId: string | undefined;
867
876
  configurationId: string;
868
877
  } | null>;
869
878
  selectAdminRawAccessInfo: import("@salsita-ai/common/utils").Selector<import("./index.js").AccessSelectorState, {
870
879
  raw: string;
880
+ access: import("@salsita-ai/contracts/api").AccessLevel;
871
881
  viewMode: boolean;
872
882
  revisionId: string | undefined;
873
883
  configurationId: string;
874
884
  } | null>;
875
885
  selectConfiguratorAccessInfo: import("@salsita-ai/common/utils").Selector<import("./index.js").AccessSelectorState, {
876
886
  raw: string;
887
+ access: import("@salsita-ai/contracts/api").AccessLevel;
877
888
  viewMode: boolean;
878
889
  revisionId: string | undefined;
879
890
  configurationId: string;
880
891
  }>;
881
892
  selectAdminAccessInfo: import("@salsita-ai/common/utils").Selector<import("./index.js").AccessSelectorState, {
882
893
  raw: string;
894
+ access: import("@salsita-ai/contracts/api").AccessLevel;
883
895
  viewMode: boolean;
884
896
  revisionId: string | undefined;
885
897
  configurationId: string;
@@ -892,24 +904,28 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
892
904
  selectAdminConfigurationId: import("@salsita-ai/common/utils").Selector<import("./index.js").AccessSelectorState, string>;
893
905
  getConfiguratorRawAccessInfo: () => {
894
906
  raw: string;
907
+ access: import("@salsita-ai/contracts/api").AccessLevel;
895
908
  viewMode: boolean;
896
909
  revisionId: string | undefined;
897
910
  configurationId: string;
898
911
  } | null;
899
912
  getAdminRawAccessInfo: () => {
900
913
  raw: string;
914
+ access: import("@salsita-ai/contracts/api").AccessLevel;
901
915
  viewMode: boolean;
902
916
  revisionId: string | undefined;
903
917
  configurationId: string;
904
918
  } | null;
905
919
  getConfiguratorAccessInfo: () => {
906
920
  raw: string;
921
+ access: import("@salsita-ai/contracts/api").AccessLevel;
907
922
  viewMode: boolean;
908
923
  revisionId: string | undefined;
909
924
  configurationId: string;
910
925
  };
911
926
  getAdminAccessInfo: () => {
912
927
  raw: string;
928
+ access: import("@salsita-ai/contracts/api").AccessLevel;
913
929
  viewMode: boolean;
914
930
  revisionId: string | undefined;
915
931
  configurationId: string;
@@ -0,0 +1,19 @@
1
+ import { type ImplementationError } from './implementation-error.js';
2
+ /**
3
+ * Gathers the implementation errors of one application start. Checks that do not depend on each
4
+ * other run through `attempt`, so that the failure of one does not hide the failures of the others.
5
+ */
6
+ export interface ImplementationErrorCollector {
7
+ /**
8
+ * Runs one independent check. An implementation error it throws is recorded and `fallback` is
9
+ * returned, so the checks after it still run. Anything else it throws propagates.
10
+ */
11
+ readonly attempt: <T>(check: () => T, fallback: T) => T;
12
+ readonly add: (error: ImplementationError) => void;
13
+ /**
14
+ * Throws the recorded errors as one {@link ImplementationErrors}, in the order they were
15
+ * recorded. Does nothing when there are none.
16
+ */
17
+ readonly throwIfAny: () => void;
18
+ }
19
+ export declare const createImplementationErrorCollector: () => ImplementationErrorCollector;
@@ -0,0 +1 @@
1
+ import{isImplementationError as r}from"./implementation-error.js";import{ImplementationErrors as t,isImplementationErrors as e}from"./implementation-errors.js";export const createImplementationErrorCollector=()=>{let o=[],n=r=>{o.push(r)};return{add:n,attempt:(t,o)=>{try{return t()}catch(t){if(e(t))return t.errors.forEach(n),o;if(r(t))return n(t),o;throw t}},throwIfAny:()=>{if(o.length>0)throw new t(o)}}};
@@ -0,0 +1,46 @@
1
+ /**
2
+ * What kind of mistake an {@link ImplementationError} reports. A host that shows the error, such as
3
+ * a webhook log, reads the code instead of parsing the message.
4
+ *
5
+ * - `MISSING_EXPORT`: a convention file exports nothing where its folder requires an export.
6
+ * - `INVALID_EXPORT`: a convention file exports a value that does not match its folder's contract.
7
+ * - `MISSING_IMPLEMENTATION`: the spec declares something that no project file implements.
8
+ * - `DUPLICATE_DEFINITION`: two files define what only one may define.
9
+ * - `INVALID_CONFIGURATION`: the application's configuration is incomplete or contradictory.
10
+ * - `STARTUP_FAILED`: project or SDK code threw while the application was starting.
11
+ */
12
+ export type ImplementationErrorCode = 'MISSING_EXPORT' | 'INVALID_EXPORT' | 'MISSING_IMPLEMENTATION' | 'DUPLICATE_DEFINITION' | 'INVALID_CONFIGURATION' | 'STARTUP_FAILED';
13
+ /** The parts an {@link ImplementationError} is made of. Its message is built from them. */
14
+ export interface ImplementationErrorProps {
15
+ readonly code: ImplementationErrorCode;
16
+ /** Project-relative path of the file to fix, or `null` when the mistake belongs to no single file. */
17
+ readonly origin: string | null;
18
+ /** What went wrong, without the file name and without a full stop. */
19
+ readonly problem: string;
20
+ /** What the SDK requires at that place, when the mistake is a wrong value. */
21
+ readonly expected?: string;
22
+ /** What it found instead. It is part of the message only together with `expected`. */
23
+ readonly received?: string;
24
+ /** What the developer can do to fix it, as one or more full sentences. */
25
+ readonly fix: string;
26
+ /** What was thrown, when the error reports a failure of other code. */
27
+ readonly cause?: unknown;
28
+ }
29
+ /**
30
+ * A mistake in a project's implementation that stops its application from starting: a convention
31
+ * file with the wrong export, a definition made twice, a project file that throws.
32
+ *
33
+ * The checks the domain runtime runs on a project's files throw it, so that every host of the
34
+ * runtime (the web component, the editor, a webhook) can tell it from a defect of its own and report
35
+ * it in its own medium. `message` is the whole report as one text; the fields hold its parts.
36
+ */
37
+ export declare class ImplementationError extends Error {
38
+ readonly code: ImplementationErrorCode;
39
+ readonly origin: string | null;
40
+ readonly problem: string;
41
+ readonly expected: string | null;
42
+ readonly received: string | null;
43
+ readonly fix: string;
44
+ constructor(props: ImplementationErrorProps);
45
+ }
46
+ export declare const isImplementationError: (error: unknown) => error is ImplementationError;
@@ -0,0 +1 @@
1
+ export class ImplementationError extends Error{code;origin;problem;expected;received;fix;constructor(e){let i,r,o;super((i=null===e.origin?"":` in ${e.origin}`,r=void 0===e.received?"":`, but got ${e.received}`,o=void 0===e.expected?"":`: expected ${e.expected}${r}`,`${e.problem}${i}${o}. ${e.fix}`),void 0===e.cause?void 0:{cause:e.cause}),this.name="ImplementationError",this.code=e.code,this.origin=e.origin,this.problem=e.problem,this.expected=e.expected??null,this.received=e.received??null,this.fix=e.fix}}export const isImplementationError=e=>e instanceof ImplementationError;
@@ -0,0 +1,13 @@
1
+ import type { ImplementationError } from './implementation-error.js';
2
+ /**
3
+ * Every {@link ImplementationError} one start of an application found, reported together, so that a
4
+ * developer with four wrong files reads four errors instead of fixing them one reload at a time.
5
+ *
6
+ * The message of a list with one error is that error's message. The message of a longer list is a
7
+ * headline with the count, followed by one numbered line per error in the order of `errors`.
8
+ */
9
+ export declare class ImplementationErrors extends Error {
10
+ readonly errors: readonly ImplementationError[];
11
+ constructor(errors: readonly ImplementationError[]);
12
+ }
13
+ export declare const isImplementationErrors: (error: unknown) => error is ImplementationErrors;
@@ -0,0 +1 @@
1
+ export class ImplementationErrors extends Error{errors;constructor(r){super((r=>{let[e]=r;return 1===r.length&&e?e.message:[`The application cannot start: ${r.length} implementation errors were found.`,...r.map((r,e)=>`${e+1}. ${r.message}`)].join("\n")})(r)),this.name="ImplementationErrors",this.errors=r}}export const isImplementationErrors=r=>r instanceof ImplementationErrors;
@@ -0,0 +1,4 @@
1
+ export { type ImplementationErrorCode, type ImplementationErrorProps, ImplementationError, isImplementationError, } from './implementation-error.js';
2
+ export { type ImplementationErrorCollector, createImplementationErrorCollector, } from './implementation-error-collector.js';
3
+ export { ImplementationErrors, isImplementationErrors } from './implementation-errors.js';
4
+ export { type StartupStage, toImplementationErrors } from './to-implementation-errors.js';
@@ -0,0 +1 @@
1
+ export{ImplementationError,isImplementationError}from"./implementation-error.js";export{createImplementationErrorCollector}from"./implementation-error-collector.js";export{ImplementationErrors,isImplementationErrors}from"./implementation-errors.js";export{toImplementationErrors}from"./to-implementation-errors.js";
@@ -0,0 +1,10 @@
1
+ import { ImplementationErrors } from './implementation-errors.js';
2
+ /** The step of an application start during which a failure that the SDK did not raise itself was caught. */
3
+ export type StartupStage = 'import' | 'initialize' | 'render';
4
+ /**
5
+ * Turns whatever stopped an application from starting into a list of implementation errors, so that
6
+ * a host handles one shape. A list is passed through and a single implementation error becomes a
7
+ * list of one. Anything else, such as a project file that throws while it loads, becomes one
8
+ * `STARTUP_FAILED` error that names the stage and keeps what was thrown as its `cause`.
9
+ */
10
+ export declare const toImplementationErrors: (error: unknown, stage: StartupStage) => ImplementationErrors;
@@ -0,0 +1 @@
1
+ import{ImplementationError as e,isImplementationError as i}from"./implementation-error.js";import{ImplementationErrors as t,isImplementationErrors as r}from"./implementation-errors.js";let n={import:"while its code was loading",initialize:"while its runtime was initializing",render:"while it was rendering"};export const toImplementationErrors=(o,a)=>r(o)?o:i(o)?new t([o]):new t([new e({code:"STARTUP_FAILED",origin:null,problem:`The application failed ${n[a]}: ${o instanceof Error?o.message:String(o)}`,fix:"Read the stack trace of the cause to find the file that threw, and fix the code it points to.",cause:o})]);
@@ -1,6 +1,7 @@
1
1
  export * from './domain-runtime.js';
2
2
  export * from './domain-context/index.js';
3
3
  export * from './domain-services/index.js';
4
+ export { type ImplementationErrorCode, type ImplementationErrorProps, type StartupStage, ImplementationError, ImplementationErrors, isImplementationError, isImplementationErrors, toImplementationErrors, } from './errors/index.js';
4
5
  export * from './spec/index.js';
5
6
  export * from './environment/index.js';
6
7
  export * from './access/index.js';
@@ -1 +1 @@
1
- export*from"./domain-runtime.js";export*from"./domain-context/index.js";export*from"./domain-services/index.js";export*from"./spec/index.js";export*from"./environment/index.js";export*from"./access/index.js";export*from"./overrides/index.js";export*from"./loaded-data/index.js";export*from"./domain-data/index.js";export*from"./session-context/index.js";export*from"./web-component/index.js";
1
+ export*from"./domain-runtime.js";export*from"./domain-context/index.js";export*from"./domain-services/index.js";export{ImplementationError,ImplementationErrors,isImplementationError,isImplementationErrors,toImplementationErrors}from"./errors/index.js";export*from"./spec/index.js";export*from"./environment/index.js";export*from"./access/index.js";export*from"./overrides/index.js";export*from"./loaded-data/index.js";export*from"./domain-data/index.js";export*from"./session-context/index.js";export*from"./web-component/index.js";
@@ -1,3 +1,14 @@
1
1
  import type { AnyApplicationConfig } from '../../application/index.js';
2
2
  import type { ApplicationSpec } from './types.js';
3
+ /**
4
+ * Builds the runtime spec of an application from its config.
5
+ *
6
+ * Project files reach the config unchecked; this is where each one is held to its folder's
7
+ * contract. Every file is checked on its own, and all the files that break their contract are
8
+ * thrown together as one `ImplementationErrors`. Its errors are ordered by folder (handlers,
9
+ * elements, transformers, configurator components, admin components) and inside a folder by the
10
+ * order of the config's list. No spec is returned when a file is wrong, so nothing that reads the
11
+ * spec, such as the transformer selection, runs on a list with a file missing and reports the
12
+ * mistake a second time.
13
+ */
3
14
  export declare const initializeSpec: (config: AnyApplicationConfig) => ApplicationSpec;
@@ -1 +1 @@
1
- import{SessionRole as e}from"@salsita-ai/contracts/api";import{resolveComponentOpticModules as t,resolveElementModules as a,resolveHandlerModules as n,resolveImportedTransformers as o,resolveTransformerModules as i}from"./module-checks/index.js";export const initializeSpec=s=>{let r=s.adminDomain.presets[0];if(!r)throw Error("Cannot register application spec because admin preset is required.");let m=n(s.handlers),c=a(s.elements),d=(e=>{let t={};for(let a of e)t[a.name]=(void 0)??a.name;return t})(m),l=(e=>{let t={},a=0;for(let n of e)if("entity"===n.type||"layout"===n.type)t[n.name]=(void 0)??n.name;else{let e=`icon:${a}`;t[e]=(void 0)??`${e}:${n.elements.length}`,a+=1}return t})(c),p=i(s.transformers?.importedTransformers??[]),y=s.transformers?.specTransformers??[];return{version:s.version,dataConfig:s.dataSpec??null,chunks:s.chunks,publishedDataHash:s.publishedDataHash,initialPublishedData:s.initialPublishedData,canCreate:s.features?.acl?.canCreate??Object.values(e),enableAdminRelease:s.features?.enableAdminRelease??!1,textLanguages:s.domain.textLanguages??s.adminDomain.textLanguages??["en"],baseResourcesUrl:s.resources?.baseResourcesUrl??s.defaultEnvs?.resourcesUrl??"",configurator:{factory:s.domain.domainFactory,presets:s.domain.presets,aliasMap:s.domain.domainFactory.context.aliasMap,entityReflections:s.domain.domainFactory.context.entityReflections,$entityReflections:s.domain.domainFactory.context.$entityReflections,expressions:s.domain.domainFactory.context.expressions,actions:s.domain.domainFactory.context.actions,actionImplementations:s.domain.domainFactory.context.actionImplementations,allowedRootEntityTypes:s.domain.domainFactory.context.allowedRootEntityTypes,migrate:s.domain.domainFactory.context.migrate,componentOptics:t(s.domain.componentOptics),createTransformers:e=>o(p,y,e),navigationStates:s.navigation?.navigationStates??[],viewStates:s.navigation?.viewStates??[],toolStates:s.navigation?.toolStates??[],exportStates:s.navigation?.exportStates??[],handlers:m,handlerHashes:d,elements:c,elementHashes:l,appLoader:s.ui?.appLoader??"universal",preview:s.ui?.preview??"auto",alwaysExpand:s.ui?.alwaysExpand??!1,theme:s.ui?.theme??{},assistant:s.assistant??null,deploymentQueryDisabled:s.resources?.deploymentQueryDisabled??!1,prefetchTextureUrls:s.resources?.prefetchTextureUrls??[],modelVersion:s.domain.domainFactory.modelVersion},admin:{factory:s.adminDomain.domainFactory,modelVersion:s.adminDomain.domainFactory.modelVersion,aliasMap:s.adminDomain.domainFactory.context.aliasMap,entityReflections:s.adminDomain.domainFactory.context.entityReflections,$entityReflections:s.adminDomain.domainFactory.context.$entityReflections,expressions:s.adminDomain.domainFactory.context.expressions,actions:s.adminDomain.domainFactory.context.actions,actionImplementations:s.adminDomain.domainFactory.context.actionImplementations,allowedRootEntityTypes:s.adminDomain.domainFactory.context.allowedRootEntityTypes,migrate:s.adminDomain.domainFactory.context.migrate,preset:r,componentOptics:t(s.adminDomain.componentOptics),navigationStates:s.adminNavigation?.navigationStates??[],viewStates:s.adminNavigation?.viewStates??[],handlers:m,handlerHashes:d,elements:c,elementHashes:l}}};
1
+ import{SessionRole as e}from"@salsita-ai/contracts/api";import{createImplementationErrorCollector as t}from"../errors/index.js";import{resolveComponentOpticModules as a,resolveElementModule as n,resolveHandlerModule as o,resolveImportedTransformers as i,resolveTransformerModule as s}from"./module-checks/index.js";let r=(e,t,a)=>e.flatMap(e=>a.attempt(()=>t(e),[]));export const initializeSpec=m=>{let c=m.adminDomain.presets[0];if(!c)throw Error("Cannot register application spec because admin preset is required.");let d=t(),l=r(m.handlers,o,d),p=r(m.elements,n,d),y=r(m.transformers?.importedTransformers??[],e=>[s(e)],d),u=r(m.domain.componentOptics,e=>a([e]),d),f=r(m.adminDomain.componentOptics,e=>a([e]),d);d.throwIfAny();let x=(e=>{let t={};for(let a of e)t[a.name]=(void 0)??a.name;return t})(l),g=(e=>{let t={},a=0;for(let n of e)if("entity"===n.type||"layout"===n.type)t[n.name]=(void 0)??n.name;else{let e=`icon:${a}`;t[e]=(void 0)??`${e}:${n.elements.length}`,a+=1}return t})(p),v=m.transformers?.specTransformers??[];return{version:m.version,dataConfig:m.dataSpec??null,chunks:m.chunks,publishedDataHash:m.publishedDataHash,initialPublishedData:m.initialPublishedData,canCreate:m.features?.acl?.canCreate??Object.values(e),enableAdminRelease:m.features?.enableAdminRelease??!1,textLanguages:m.domain.textLanguages??m.adminDomain.textLanguages??["en"],baseResourcesUrl:m.resources?.baseResourcesUrl??m.defaultEnvs?.resourcesUrl??"",configurator:{factory:m.domain.domainFactory,presets:m.domain.presets,aliasMap:m.domain.domainFactory.context.aliasMap,entityReflections:m.domain.domainFactory.context.entityReflections,$entityReflections:m.domain.domainFactory.context.$entityReflections,expressions:m.domain.domainFactory.context.expressions,actions:m.domain.domainFactory.context.actions,actionImplementations:m.domain.domainFactory.context.actionImplementations,allowedRootEntityTypes:m.domain.domainFactory.context.allowedRootEntityTypes,migrate:m.domain.domainFactory.context.migrate,componentOptics:u,createTransformers:e=>i(y,v,e),navigationStates:m.navigation?.navigationStates??[],viewStates:m.navigation?.viewStates??[],toolStates:m.navigation?.toolStates??[],exportStates:m.navigation?.exportStates??[],handlers:l,handlerHashes:x,elements:p,defaultElements:m.defaultElements??[],elementHashes:g,appLoader:m.ui?.appLoader??"universal",preview:m.ui?.preview??"auto",alwaysExpand:m.ui?.alwaysExpand??!1,theme:m.ui?.theme??{},assistant:m.assistant??null,deploymentQueryDisabled:m.resources?.deploymentQueryDisabled??!1,prefetchTextureUrls:m.resources?.prefetchTextureUrls??[],modelVersion:m.domain.domainFactory.modelVersion},admin:{factory:m.adminDomain.domainFactory,modelVersion:m.adminDomain.domainFactory.modelVersion,aliasMap:m.adminDomain.domainFactory.context.aliasMap,entityReflections:m.adminDomain.domainFactory.context.entityReflections,$entityReflections:m.adminDomain.domainFactory.context.$entityReflections,expressions:m.adminDomain.domainFactory.context.expressions,actions:m.adminDomain.domainFactory.context.actions,actionImplementations:m.adminDomain.domainFactory.context.actionImplementations,allowedRootEntityTypes:m.adminDomain.domainFactory.context.allowedRootEntityTypes,migrate:m.adminDomain.domainFactory.context.migrate,preset:c,componentOptics:f,navigationStates:m.adminNavigation?.navigationStates??[],viewStates:m.adminNavigation?.viewStates??[],handlers:l,handlerHashes:x,elements:p,elementHashes:g}}};