@salsita-ai/sdk 0.50.0-develop.a926ccd94f → 0.50.0-develop.a9ee99dc86

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 (1895) hide show
  1. package/README.md +20 -15
  2. package/dist/admin/create-admin-pages-from-spec.d.ts +1 -1
  3. package/dist/admin/default-admin-elements.d.ts +9 -0
  4. package/dist/admin/default-admin-elements.js +1 -0
  5. package/dist/admin/default-elements/built-in-entity-element.d.ts +10 -0
  6. package/dist/admin/default-elements/built-in-entity-element.js +1 -0
  7. package/dist/admin/default-elements/built-in-layout-element.d.ts +10 -0
  8. package/dist/admin/default-elements/built-in-layout-element.js +1 -0
  9. package/dist/admin/default-elements/index.d.ts +2 -0
  10. package/dist/admin/default-elements/index.js +1 -0
  11. package/dist/admin/index.d.ts +1 -0
  12. package/dist/admin/index.js +1 -1
  13. package/dist/application-spec/caching/content-diff.js +1 -1
  14. package/dist/application-spec/core/application-file.d.ts +0 -2
  15. package/dist/application-spec/core/application-file.js +1 -1
  16. package/dist/application-spec/core/components/component-filter.d.ts +53 -0
  17. package/dist/application-spec/core/components/component-filter.js +1 -0
  18. package/dist/application-spec/core/components/index.d.ts +2 -0
  19. package/dist/application-spec/core/components/index.js +1 -0
  20. package/dist/application-spec/core/components/sdk-code-ref.d.ts +9 -0
  21. package/dist/application-spec/core/components/sdk-code-ref.js +1 -0
  22. package/dist/application-spec/core/enhanced-json-value.d.ts +0 -68
  23. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  24. package/dist/application-spec/core/expressions/index.d.ts +2 -0
  25. package/dist/application-spec/core/expressions/index.js +1 -0
  26. package/dist/application-spec/core/expressions/relation-expression-params.d.ts +11 -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/enhanced-json/eval-to-constant.d.ts +14 -0
  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 +14 -0
  48. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  49. package/dist/application-spec/errors/diagnostic-messages.d.ts +17 -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 +2 -0
  54. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  55. package/dist/application-spec/generate-application/code/common/project-module-list.d.ts +8 -0
  56. package/dist/application-spec/generate-application/code/common/project-module-list.js +3 -0
  57. package/dist/application-spec/generate-application/code/common/single-quoted-string.d.ts +6 -0
  58. package/dist/application-spec/generate-application/code/common/single-quoted-string.js +1 -0
  59. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  60. package/dist/application-spec/generate-application/code/generate-application-code.d.ts +3 -2
  61. package/dist/application-spec/generate-application/code/generate-application-code.js +1 -1
  62. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +22 -14
  63. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  64. package/dist/application-spec/generate-application/code/standalone-app-files.d.ts +2 -2
  65. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  66. package/dist/application-spec/generate-application/code/story-files.js +1 -1
  67. package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -0
  68. package/dist/application-spec/generate-application/code/templates/admin-domain-code.d.ts +1 -2
  69. package/dist/application-spec/generate-application/code/templates/admin-domain-code.js +6 -14
  70. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.d.ts +1 -2
  71. package/dist/application-spec/generate-application/code/templates/admin-frontend-code.js +4 -4
  72. package/dist/application-spec/generate-application/code/templates/common/format-property-key.d.ts +7 -0
  73. package/dist/application-spec/generate-application/code/templates/common/format-property-key.js +1 -0
  74. package/dist/application-spec/generate-application/code/templates/common/schema-to-type-string.js +3 -3
  75. package/dist/application-spec/generate-application/code/templates/configurator-config.js +6 -4
  76. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.d.ts +1 -2
  77. package/dist/application-spec/generate-application/code/templates/configurator-domain-code.js +7 -16
  78. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.d.ts +1 -2
  79. package/dist/application-spec/generate-application/code/templates/configurator-frontend-code.js +7 -9
  80. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +35 -0
  81. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +5 -0
  82. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.d.ts +1 -0
  83. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.js +1 -0
  84. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.d.ts +2 -2
  85. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-assistant.js +1 -1
  86. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.d.ts +1 -1
  87. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +7 -7
  88. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  89. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  90. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +72 -76
  91. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +9 -1
  92. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  93. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  94. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-presets.js +1 -1
  95. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  96. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  97. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +21 -21
  98. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.d.ts +1 -1
  99. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.js +2 -2
  100. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +3 -2
  101. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  102. package/dist/application-spec/generate-application/code/templates/domain-spec.js +12 -12
  103. package/dist/application-spec/generate-application/code/templates/domain.js +5 -5
  104. package/dist/application-spec/generate-application/code/templates/eslint-config.d.ts +5 -0
  105. package/dist/application-spec/generate-application/code/templates/eslint-config.js +4 -5
  106. package/dist/application-spec/generate-application/code/templates/frontend-config.js +3 -5
  107. package/dist/application-spec/generate-application/code/templates/gitignore.js +0 -3
  108. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.d.ts +43 -0
  109. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +31 -0
  110. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
  111. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  112. package/dist/application-spec/generate-application/code/templates/globals.js +24 -43
  113. package/dist/application-spec/generate-application/code/templates/index.d.ts +4 -10
  114. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  115. package/dist/application-spec/generate-application/code/templates/lingui-rc.d.ts +5 -0
  116. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +4 -4
  117. package/dist/application-spec/generate-application/code/templates/prettier-config.d.ts +5 -0
  118. package/dist/application-spec/generate-application/code/templates/prettier-config.js +4 -5
  119. package/dist/application-spec/generate-application/code/templates/root-tsconfig.d.ts +6 -0
  120. package/dist/application-spec/generate-application/code/templates/root-tsconfig.js +2 -0
  121. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  122. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +93 -41
  123. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +5 -5
  124. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +10 -4
  125. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  126. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.d.ts +1 -0
  127. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +6 -0
  128. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +60 -16
  129. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +19 -7
  130. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
  131. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
  132. package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
  133. package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
  134. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
  135. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
  136. package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
  137. package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
  138. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
  139. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
  140. package/dist/application-spec/generate-application/code/templates/story/phx-module.d.ts +8 -2
  141. package/dist/application-spec/generate-application/code/templates/story/phx-module.js +15 -3
  142. package/dist/application-spec/generate-application/code/templates/story/wrapper.d.ts +3 -0
  143. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -1
  144. package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
  145. package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
  146. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +9 -4
  147. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +6 -1
  148. package/dist/application-spec/generate-application/code/templates/webhook-index.js +10 -1
  149. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -3
  150. package/dist/application-spec/generate-application/index.d.ts +2 -0
  151. package/dist/application-spec/generate-application/index.js +1 -1
  152. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +6 -4
  153. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +1 -1
  154. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +8 -3
  155. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  156. package/dist/application-spec/generate-application/runtime/admin-runtime/states-runtime.d.ts +2 -2
  157. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +19 -7
  158. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  159. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +6 -4
  160. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +1 -1
  161. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +7 -4
  162. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  163. package/dist/application-spec/generate-application/runtime/configurator-runtime/states-runtime.d.ts +2 -2
  164. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +43 -0
  165. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.js +1 -0
  166. package/dist/application-spec/generate-application/runtime/factory-data/index.d.ts +3 -0
  167. package/dist/application-spec/generate-application/runtime/factory-data/index.js +1 -0
  168. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +13 -0
  169. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -0
  170. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +16 -0
  171. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -0
  172. package/dist/application-spec/generate-application/runtime/migrations/index.d.ts +1 -0
  173. package/dist/application-spec/generate-application/runtime/migrations/index.js +1 -0
  174. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +53 -0
  175. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +1 -0
  176. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +5 -4
  177. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.js +1 -1
  178. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +3 -2
  179. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  180. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +2 -1
  181. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +1 -1
  182. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +5 -1
  183. package/dist/application-spec/generate-application/runtime/sections/component-optic.js +1 -1
  184. package/dist/application-spec/generate-application/runtime/sections/data-runtime.d.ts +4 -4
  185. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +7 -4
  186. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  187. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +9 -5
  188. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  189. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +3 -1
  190. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.js +1 -1
  191. package/dist/application-spec/generate-application/runtime/sections/theme-runtime.d.ts +2 -2
  192. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +4 -6
  193. package/dist/application-spec/generate-application/runtime/spec-code/index.d.ts +2 -0
  194. package/dist/application-spec/generate-application/runtime/spec-code/index.js +1 -0
  195. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +18 -0
  196. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.js +1 -0
  197. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.d.ts +17 -0
  198. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.d.ts +9 -0
  199. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.js +1 -0
  200. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.d.ts +8 -0
  201. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.js +1 -0
  202. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +27 -0
  203. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.js +1 -0
  204. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +5 -0
  205. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -0
  206. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +68 -0
  207. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -0
  208. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +40 -0
  209. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.js +1 -0
  210. package/dist/application-spec/index.d.ts +1 -0
  211. package/dist/application-spec/index.js +1 -1
  212. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +34 -0
  213. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  214. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.d.ts +16 -0
  215. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.js +9 -0
  216. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts +9 -0
  217. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
  218. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  219. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  220. package/dist/application-spec/parse-application-files/raw-spec/parse-yaml-spec-file.js +1 -1
  221. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +16 -3
  222. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  223. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  224. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  225. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  226. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  227. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  228. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.d.ts +3 -0
  229. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js +1 -0
  230. package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +5 -0
  231. package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -0
  232. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.d.ts +6 -0
  233. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.js +1 -0
  234. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.d.ts +8 -0
  235. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.js +1 -0
  236. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts +10 -0
  237. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.js +1 -0
  238. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.d.ts +98 -0
  239. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.js +1 -0
  240. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts +13 -0
  241. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js +1 -0
  242. package/dist/application-spec/parse-application-files/spec/components/bindings/index.d.ts +2 -0
  243. package/dist/application-spec/parse-application-files/spec/components/bindings/index.js +1 -1
  244. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.d.ts +24 -0
  245. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js +1 -0
  246. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  247. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  248. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  249. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  250. package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts +8 -0
  251. package/dist/application-spec/parse-application-files/spec/components/component-state-type.js +1 -0
  252. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts +13 -0
  253. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js +1 -0
  254. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  255. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  256. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.d.ts +14 -0
  257. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.js +1 -0
  258. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +6 -0
  259. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  260. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +7 -4
  261. package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
  262. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +24 -0
  263. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -0
  264. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.d.ts +13 -0
  265. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
  266. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
  267. package/dist/application-spec/parse-application-files/spec/expressions/expression.d.ts +1 -28
  268. package/dist/application-spec/parse-application-files/spec/expressions/expression.js +1 -1
  269. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -3
  270. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  271. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  272. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  273. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  274. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +3 -1
  275. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  276. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +2 -2
  277. package/dist/application-spec/parse-application-files/spec/invariants/invariants.js +1 -1
  278. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  279. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  280. package/dist/application-spec/parse-application-files/spec/model/index.d.ts +1 -0
  281. package/dist/application-spec/parse-application-files/spec/model/index.js +1 -1
  282. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.d.ts +10 -0
  283. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.js +1 -0
  284. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  285. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  286. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  287. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  288. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  289. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  290. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.d.ts +3 -8
  291. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-field-type.js +1 -1
  292. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +9 -43
  293. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  294. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-server-settings.d.ts +2 -2
  295. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.d.ts +5 -21
  296. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  297. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  298. package/dist/client/authorized-client.d.ts +3 -1
  299. package/dist/client/authorized-client.js +1 -1
  300. package/dist/client/contract.d.ts +34 -0
  301. package/dist/client/contract.js +1 -1
  302. package/dist/client/index.d.ts +2 -2
  303. package/dist/client/index.js +1 -1
  304. package/dist/client/local-authorized-client.d.ts +3 -1
  305. package/dist/client/local-authorized-client.js +1 -1
  306. package/dist/client/memory-authorized-client.d.ts +3 -1
  307. package/dist/client/memory-authorized-client.js +1 -1
  308. package/dist/client/phoenix-api.d.ts +761 -57
  309. package/dist/configurator/ConfiguratorApp.js +1 -1
  310. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.d.ts +2 -0
  311. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.js +5 -0
  312. package/dist/configurator/app-loader-content/app-loader-content-name.d.ts +5 -0
  313. package/dist/configurator/app-loader-content/app-loader-content-name.js +1 -0
  314. package/dist/configurator/app-loader-content/index.d.ts +2 -0
  315. package/dist/configurator/app-loader-content/index.js +1 -0
  316. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  317. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  318. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  319. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +282 -13
  320. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  321. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.d.ts +85 -0
  322. package/dist/configurator/application-runtime/extensions/systems/assistant-system/change-recorder.js +1 -0
  323. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +14 -3
  324. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  325. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.d.ts +1 -1
  326. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  327. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.d.ts +12 -0
  328. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.js +1 -0
  329. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +4 -0
  330. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  331. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +36 -5
  332. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  333. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  334. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  335. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.d.ts +9 -0
  336. package/dist/configurator/application-runtime/extensions/systems/graphql-system/side-effects.js +1 -0
  337. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  338. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  339. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  340. package/dist/configurator/common/configurator-interface.d.ts +136 -4
  341. package/dist/configurator/common/configurator-interface.js +1 -1
  342. package/dist/configurator/common/index.d.ts +3 -1
  343. package/dist/configurator/common/index.js +1 -1
  344. package/dist/configurator/common/use-reset-camera.d.ts +6 -0
  345. package/dist/configurator/common/use-reset-camera.js +1 -0
  346. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +12 -0
  347. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -0
  348. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.d.ts +9 -0
  349. package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.js +1 -0
  350. package/dist/configurator/configuration-not-found-page/index.d.ts +2 -0
  351. package/dist/configurator/configuration-not-found-page/index.js +1 -0
  352. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +12 -0
  353. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -0
  354. package/dist/configurator/configurator-context/PresetSelectionProvider.js +1 -1
  355. package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
  356. package/dist/configurator/configurator-context/ViewportStateSync.d.ts +2 -2
  357. package/dist/configurator/configurator-context/ViewportStateSync.js +1 -1
  358. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +7 -1
  359. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.d.ts +6 -0
  360. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.js +1 -0
  361. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.d.ts +12 -0
  362. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.js +1 -0
  363. package/dist/configurator/configurator-error-page/create-configurator-error-page.d.ts +9 -0
  364. package/dist/configurator/configurator-error-page/create-configurator-error-page.js +1 -0
  365. package/dist/configurator/configurator-error-page/index.d.ts +3 -0
  366. package/dist/configurator/configurator-error-page/index.js +1 -0
  367. package/dist/configurator/index.d.ts +3 -1
  368. package/dist/configurator/index.js +1 -1
  369. package/dist/configurator/pages/ConfiguratorErrorPage.d.ts +0 -1
  370. package/dist/configurator/pages/ConfiguratorErrorPage.js +1 -1
  371. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  372. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +7 -0
  373. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  374. package/dist/configurator/pages/DefaultNotAuthenticatedPage.d.ts +8 -0
  375. package/dist/configurator/pages/DefaultNotAuthenticatedPage.js +1 -0
  376. package/dist/configurator/pages/DefaultPresetUi.d.ts +7 -0
  377. package/dist/configurator/pages/DefaultPresetUi.js +1 -0
  378. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  379. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  380. package/dist/configurator/pages/PresetCreationErrorPage.d.ts +1 -1
  381. package/dist/configurator/pages/PresetCreationErrorPage.js +1 -1
  382. package/dist/configurator/pages/RootPage.js +1 -1
  383. package/dist/configurator/pages/configurator-layout-name.d.ts +2 -0
  384. package/dist/configurator/pages/configurator-layout-name.js +1 -0
  385. package/dist/configurator/pages/default-configurator-elements.d.ts +13 -0
  386. package/dist/configurator/pages/default-configurator-elements.js +1 -0
  387. package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +10 -0
  388. package/dist/configurator/pages/default-elements/built-in-entity-element.js +1 -0
  389. package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +10 -0
  390. package/dist/configurator/pages/default-elements/built-in-layout-element.js +1 -0
  391. package/dist/configurator/pages/default-elements/domain-control-elements.d.ts +6 -0
  392. package/dist/configurator/pages/default-elements/domain-control-elements.js +1 -0
  393. package/dist/configurator/pages/default-elements/index.d.ts +5 -0
  394. package/dist/configurator/pages/default-elements/index.js +1 -0
  395. package/dist/configurator/pages/default-elements/recipe-panel-elements.d.ts +3 -0
  396. package/dist/configurator/pages/default-elements/recipe-panel-elements.js +1 -0
  397. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.d.ts +3 -0
  398. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.js +1 -0
  399. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.d.ts +3 -0
  400. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.js +1 -0
  401. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.d.ts +3 -0
  402. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.js +1 -0
  403. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.d.ts +3 -0
  404. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.js +1 -0
  405. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.d.ts +3 -0
  406. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.js +1 -0
  407. package/dist/configurator/pages/default-elements/scene-controls/index.d.ts +6 -0
  408. package/dist/configurator/pages/default-elements/scene-controls/index.js +1 -0
  409. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.d.ts +6 -0
  410. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.js +1 -0
  411. package/dist/configurator/pages/default-elements/sidebar-footer-elements.d.ts +7 -0
  412. package/dist/configurator/pages/default-elements/sidebar-footer-elements.js +1 -0
  413. package/dist/configurator/pages/default-elements/toolbar-elements.d.ts +7 -0
  414. package/dist/configurator/pages/default-elements/toolbar-elements.js +1 -0
  415. package/dist/configurator/pages/error-boundaries/GeneralErrorBoundary.js +1 -1
  416. package/dist/configurator/pages/index.d.ts +1 -0
  417. package/dist/configurator/pages/index.js +1 -1
  418. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.d.ts +4 -0
  419. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.js +1 -0
  420. package/dist/configurator/preset-screen-elements/PresetPageActionElement.d.ts +4 -0
  421. package/dist/configurator/preset-screen-elements/PresetPageActionElement.js +1 -0
  422. package/dist/configurator/preset-screen-elements/index.d.ts +2 -0
  423. package/dist/configurator/preset-screen-elements/index.js +1 -0
  424. package/dist/configurator/scene/index.d.ts +1 -0
  425. package/dist/configurator/scene/index.js +1 -1
  426. package/dist/configurator/scene/scene-controls/DeleteEntityFab.js +1 -1
  427. package/dist/configurator/scene/scene-controls/SelectionHotspot.js +1 -1
  428. package/dist/configurator/scene/scene-controls/ToolFab.d.ts +4 -0
  429. package/dist/configurator/scene/scene-controls/ToolFab.js +1 -1
  430. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  431. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  432. package/dist/configurator/scene/scene-controls/use-scene-control-tooltip.d.ts +2 -1
  433. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  434. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  435. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  436. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  437. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  438. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  439. package/dist/configurator/scene/scene-entity/scene-controls/SceneEntityHtmlHotspots.js +1 -1
  440. package/dist/configurator/toolbar-actions/index.d.ts +2 -0
  441. package/dist/configurator/toolbar-actions/index.js +1 -0
  442. package/dist/configurator/toolbar-actions/use-assistant-panel.d.ts +18 -0
  443. package/dist/configurator/toolbar-actions/use-assistant-panel.js +1 -0
  444. package/dist/configurator/toolbar-actions/use-measurements.d.ts +35 -0
  445. package/dist/configurator/toolbar-actions/use-measurements.js +1 -0
  446. package/dist/configurator/ui/assistant/AssistantChips.d.ts +8 -2
  447. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  448. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +3 -7
  449. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -1
  450. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -2
  451. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  452. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  453. package/dist/configurator/ui/assistant/AssistantThread.d.ts +7 -8
  454. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  455. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +8 -0
  456. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -0
  457. package/dist/configurator/ui/assistant/alert/index.d.ts +2 -0
  458. package/dist/configurator/ui/assistant/alert/index.js +1 -0
  459. package/dist/configurator/ui/assistant/alert/remark-alerts.d.ts +10 -0
  460. package/dist/configurator/ui/assistant/alert/remark-alerts.js +1 -0
  461. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  462. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  463. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  464. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  465. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  466. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  467. package/dist/configurator/ui/assistant/entity-link/index.d.ts +2 -0
  468. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  469. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +19 -0
  470. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -0
  471. package/dist/configurator/ui/assistant/form/built-in-form-registry.d.ts +10 -0
  472. package/dist/configurator/ui/assistant/form/built-in-form-registry.js +1 -0
  473. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +12 -0
  474. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -0
  475. package/dist/configurator/ui/assistant/form/describe-build-errors.d.ts +6 -0
  476. package/dist/configurator/ui/assistant/form/describe-build-errors.js +1 -0
  477. package/dist/configurator/ui/assistant/form/form-element-definition.d.ts +14 -0
  478. package/dist/configurator/ui/assistant/form/form-model.d.ts +39 -0
  479. package/dist/configurator/ui/assistant/form/form-registry.d.ts +31 -0
  480. package/dist/configurator/ui/assistant/form/form-registry.js +8 -0
  481. package/dist/configurator/ui/assistant/form/form-state.d.ts +4 -0
  482. package/dist/configurator/ui/assistant/form/index.d.ts +2 -0
  483. package/dist/configurator/ui/assistant/form/index.js +1 -0
  484. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +10 -0
  485. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -0
  486. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +13 -0
  487. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -0
  488. package/dist/configurator/ui/assistant/form-elements/FormCard.d.ts +9 -0
  489. package/dist/configurator/ui/assistant/form-elements/FormCard.js +1 -0
  490. package/dist/configurator/ui/assistant/form-elements/FormConfirm.d.ts +9 -0
  491. package/dist/configurator/ui/assistant/form-elements/FormConfirm.js +1 -0
  492. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +6 -0
  493. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -0
  494. package/dist/configurator/ui/assistant/form-elements/FormNumber.d.ts +9 -0
  495. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -0
  496. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +6 -0
  497. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -0
  498. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +6 -0
  499. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -0
  500. package/dist/configurator/ui/assistant/form-elements/FormSwatch.d.ts +10 -0
  501. package/dist/configurator/ui/assistant/form-elements/FormSwatch.js +1 -0
  502. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +6 -0
  503. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -0
  504. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.d.ts +10 -0
  505. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.js +1 -0
  506. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +38 -0
  507. package/dist/configurator/ui/assistant/form-elements/index.d.ts +9 -0
  508. package/dist/configurator/ui/assistant/form-elements/index.js +1 -0
  509. package/dist/configurator/ui/assistant/index.d.ts +1 -1
  510. package/dist/configurator/ui/assistant/index.js +1 -1
  511. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +16 -0
  512. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -0
  513. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.d.ts +34 -0
  514. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.js +1 -0
  515. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.d.ts +25 -0
  516. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.js +1 -0
  517. package/dist/configurator/ui/assistant/reference-link/index.d.ts +3 -0
  518. package/dist/configurator/ui/assistant/reference-link/index.js +1 -0
  519. package/dist/configurator/ui/assistant/reference-link/reference-styles.d.ts +12 -0
  520. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -0
  521. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.d.ts +8 -0
  522. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.js +1 -0
  523. package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +9 -0
  524. package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -0
  525. package/dist/configurator/ui/assistant/resource-image/index.d.ts +3 -0
  526. package/dist/configurator/ui/assistant/resource-image/index.js +1 -0
  527. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +2 -0
  528. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -0
  529. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.d.ts +5 -0
  530. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.js +1 -0
  531. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +4 -2
  532. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  533. package/dist/configurator/ui/assistant/thread-items.d.ts +22 -4
  534. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  535. package/dist/configurator/ui/assistant/tool-chip.d.ts +8 -1
  536. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  537. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -1
  538. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.d.ts +5 -0
  539. package/dist/configurator/ui/assistant/use-is-assistant-panel-open.js +1 -0
  540. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  541. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  542. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  543. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  544. package/dist/configurator/ui/configurator-layout/slots/canvas/LayoutCanvas.js +1 -1
  545. package/dist/configurator/ui/configurator-layout/slots/canvas/SharedCanvas.js +1 -1
  546. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.d.ts +101 -0
  547. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  548. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  549. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  550. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.d.ts +1 -1
  551. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.js +1 -1
  552. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  553. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  554. package/dist/configurator/ui/configurator-layout/slots/services/Services.js +1 -1
  555. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  556. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  557. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.d.ts +1 -1
  558. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.js +1 -1
  559. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  560. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  561. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +0 -74
  562. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  563. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  564. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  565. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +2 -2
  566. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  567. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  568. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  569. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  570. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  571. package/dist/configurator/ui/legacy/layout/common/CommonFinalizeButton.js +1 -1
  572. package/dist/configurator/ui/legacy/layout/common/CommonSummaryButton.js +1 -1
  573. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  574. package/dist/configurator/ui/legacy/layout/common/ReactiveInterfaceLayout.js +1 -1
  575. package/dist/configurator/ui/legacy/layout/common/ResponsiveFinalizeButton.js +1 -1
  576. package/dist/configurator/ui/legacy/layout/common/SummaryReadLayout.js +1 -1
  577. package/dist/configurator/ui/legacy/layout/simple/SimpleOwnerLayout.js +1 -1
  578. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  579. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  580. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  581. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  582. package/dist/configurator/ui/legacy/layout/steps/StepsSidebarFooter.js +1 -1
  583. package/dist/configurator/ui/legacy/layout/tabs/TabsOwnerLayout.js +1 -1
  584. package/dist/configurator/ui/legacy/toolbar/common/DimensionUnitSelector.js +1 -1
  585. package/dist/configurator/ui/legacy/toolbar/common/MeasurementsIndicatorsSwitch.js +1 -1
  586. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/FullscreenToolbarAction.js +1 -1
  587. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/HelpToolbarAction.js +1 -1
  588. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/MeasurementsToolbarAction.js +1 -1
  589. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/UndoRedoToolbarGroup.js +1 -1
  590. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.js +2 -6
  591. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.d.ts +2 -2
  592. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -1
  593. package/dist/configurator/ui/phoenix-layout-elements/EnterFullscreenToolbarButton.js +1 -1
  594. package/dist/configurator/ui/phoenix-layout-elements/ExitFullscreenToolbarButton.js +1 -1
  595. package/dist/configurator/ui/phoenix-layout-elements/HelpToolbarButton.js +1 -1
  596. package/dist/configurator/ui/phoenix-layout-elements/LanguageMenuAction.js +1 -1
  597. package/dist/configurator/ui/phoenix-layout-elements/LanguageToolbarButton.js +1 -1
  598. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.d.ts +1 -0
  599. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.js +1 -1
  600. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.d.ts +1 -0
  601. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.js +1 -1
  602. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsMenuAction.js +1 -1
  603. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsToolbarButton.js +1 -1
  604. package/dist/configurator/ui/phoenix-layout-elements/RedoToolbarButton.js +1 -1
  605. package/dist/configurator/ui/phoenix-layout-elements/ShareToolbarButton.js +1 -1
  606. package/dist/configurator/ui/phoenix-layout-elements/UndoToolbarButton.js +1 -1
  607. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  608. package/dist/configurator/ui/phoenix-layout-elements/header/common/horizontal-tabs/DesktopHorizontalTabs.js +1 -1
  609. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.d.ts +1 -1
  610. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.js +1 -1
  611. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -8
  612. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  613. package/dist/configurator/ui/phoenix-layout-elements/measurements/DimensionUnitSelector.js +1 -1
  614. package/dist/configurator/ui/phoenix-layout-elements/measurements/MeasurementsIndicatorsSwitch.js +1 -1
  615. package/dist/configurator/ui/phoenix-layout-elements/share/ShareModal.js +1 -1
  616. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.d.ts +7 -8
  617. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.js +1 -1
  618. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/BasicFinalizeButton.js +1 -1
  619. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/CustomFinalizeButton.js +1 -1
  620. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/EnterSummaryButton.js +1 -1
  621. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/FinalizeActions.js +1 -1
  622. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/NextStepButton.js +1 -1
  623. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  624. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  625. package/dist/configurator/ui/preset-layout/PresetUi.d.ts +4 -0
  626. package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
  627. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.d.ts +10 -0
  628. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -0
  629. package/dist/configurator/ui/save-message-snackbars/index.d.ts +1 -0
  630. package/dist/configurator/ui/save-message-snackbars/index.js +1 -0
  631. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +100 -117
  632. package/dist/docs/complex-use-cases/focus-mode.mdx +2 -0
  633. package/dist/docs/complex-use-cases/navigation-reset-selection.mdx +18 -12
  634. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  635. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  636. package/dist/docs/controls/select-child-entity/cardselect.mdx +1 -0
  637. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  638. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  639. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  640. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  641. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  642. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  643. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  644. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  645. package/dist/docs/fabs/basic.mdx +6 -2
  646. package/dist/docs/index.json +42 -1
  647. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  648. package/dist/docs/layouts/custom-layout.mdx +2437 -0
  649. package/dist/docs/layouts/custom-price.mdx +14 -16
  650. package/dist/docs/layouts/header/fixed.mdx +2 -2
  651. package/dist/docs/layouts/header/floating.mdx +2 -2
  652. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  653. package/dist/docs/layouts/sidebar/tabs.mdx +24 -21
  654. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  655. package/dist/docs/layouts/toolbar.mdx +3 -1
  656. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  657. package/dist/docs/other-features/domain-actions.mdx +1 -1
  658. package/dist/docs/other-features/error-5xx.mdx +1 -1
  659. package/dist/docs/other-features/navigation-hotspot.mdx +2 -0
  660. package/dist/docs/other-features/not-found-404.mdx +1 -1
  661. package/dist/docs/other-features/side-effects.mdx +76 -45
  662. package/dist/docs/other-features/transformers.mdx +5 -1
  663. package/dist/docs/other-features/violation-messages.mdx +52 -56
  664. package/dist/docs/phoenix/admin.mdx +9 -24
  665. package/dist/docs/phoenix/application-states.mdx +9 -7
  666. package/dist/docs/phoenix/clerk-sign-in.mdx +1 -1
  667. package/dist/docs/phoenix/components.mdx +6 -0
  668. package/dist/docs/phoenix/configurator-interface.mdx +399 -81
  669. package/dist/docs/phoenix/deployments.mdx +3 -7
  670. package/dist/docs/phoenix/domain-model.mdx +6 -0
  671. package/dist/docs/phoenix/expression-context.mdx +11 -3
  672. package/dist/docs/phoenix/finalization.mdx +1 -1
  673. package/dist/docs/phoenix/getting-started.mdx +7 -4
  674. package/dist/docs/phoenix/layout-slots.mdx +116 -0
  675. package/dist/docs/phoenix/localization.mdx +13 -28
  676. package/dist/docs/phoenix/migration-guide.mdx +24 -11
  677. package/dist/docs/phoenix/phoenix-cli.mdx +192 -66
  678. package/dist/docs/phoenix/project-structure.mdx +86 -35
  679. package/dist/docs/phoenix/quickstart.mdx +9 -9
  680. package/dist/docs/phoenix/sdk-builder-workflow.mdx +19 -18
  681. package/dist/docs/phoenix/testing.mdx +148 -0
  682. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  683. package/dist/docs/phoenix/webhooks.mdx +23 -6
  684. package/dist/docs/recipes-and-delete/recipe-hierarchy-selection.mdx +15 -13
  685. package/dist/docs/relations/hierarchy.mdx +13 -2
  686. package/dist/docs/selection-and-highlight/hotspots.mdx +2 -0
  687. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  688. package/dist/domain/admin-domain/__generated/enhanced-model.d.ts +1 -2
  689. package/dist/domain/admin-domain/__generated/model/versions/v1.d.ts +1 -1
  690. package/dist/domain/admin-domain/__generated/model/versions/v2.d.ts +1 -1
  691. package/dist/domain/admin-domain/__generated/model/versions/v3.d.ts +1 -1
  692. package/dist/domain/admin-domain/__generated/model/versions/v4.d.ts +1 -1
  693. package/dist/domain/admin-domain/__generated/model/versions/v5.d.ts +1 -1
  694. package/dist/domain/admin-domain/__generated/model/versions/v6.d.ts +2 -2
  695. package/dist/domain/admin-domain/__generated/model/versions/v6.js +1 -1
  696. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -14
  697. package/dist/domain/admin-domain/implementation/common-admin-migrations.d.ts +1 -1
  698. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  699. package/dist/domain/admin-domain/index.d.ts +9 -5
  700. package/dist/domain/admin-domain/index.js +1 -1
  701. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  702. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  703. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  704. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  705. package/dist/domain/application/application-config.d.ts +30 -97
  706. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  707. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  708. package/dist/domain/application/assistant/assistant-manifest.d.ts +71 -0
  709. package/dist/domain/application/assistant/assistant-manifest.js +1 -0
  710. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +131 -0
  711. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -0
  712. package/dist/domain/application/assistant/assistant-value-type.d.ts +9 -0
  713. package/dist/domain/application/assistant/assistant-value-type.js +1 -0
  714. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  715. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  716. package/dist/domain/application/assistant/build-assistant-manifest.d.ts +4 -0
  717. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -0
  718. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  719. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  720. package/dist/domain/application/assistant/form/assistant-form-elements.d.ts +163 -0
  721. package/dist/domain/application/assistant/form/assistant-form-elements.js +1 -0
  722. package/dist/domain/application/assistant/form/assistant-resource-path.d.ts +10 -0
  723. package/dist/domain/application/assistant/form/assistant-resource-path.js +1 -0
  724. package/dist/domain/application/assistant/form/get-assistant-form-value-attribute.d.ts +6 -0
  725. package/dist/domain/application/assistant/form/get-assistant-form-value-attribute.js +1 -0
  726. package/dist/domain/application/assistant/form/index.d.ts +4 -0
  727. package/dist/domain/application/assistant/form/index.js +1 -0
  728. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +6 -0
  729. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -0
  730. package/dist/domain/application/assistant/index.d.ts +10 -0
  731. package/dist/domain/application/assistant/index.js +1 -0
  732. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  733. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  734. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  735. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  736. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +48 -0
  737. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  738. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  739. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  740. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  741. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  742. package/dist/domain/application/assistant-field-options.d.ts +2 -3
  743. package/dist/domain/application/assistant-mutations.d.ts +3 -5
  744. package/dist/domain/application/assistant-mutations.js +1 -1
  745. package/dist/domain/application/assistant-recipe-groups.d.ts +6 -8
  746. package/dist/domain/application/configurator-builder.d.ts +36 -18
  747. package/dist/domain/application/configurator-builder.js +1 -1
  748. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  749. package/dist/domain/application/index.d.ts +3 -6
  750. package/dist/domain/application/index.js +1 -1
  751. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  752. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  753. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  754. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  755. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  756. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  757. package/dist/domain/application/published-data/create-finalize-admin-domain.d.ts +1 -2
  758. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  759. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  760. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +3 -3
  761. package/dist/domain/application/published-data/map-published-data.d.ts +7 -4
  762. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  763. package/dist/domain/available-system-components.js +1 -1
  764. package/dist/domain/core/action/action-factory.d.ts +11 -0
  765. package/dist/domain/core/action/action.d.ts +71 -0
  766. package/dist/domain/core/action/action.js +1 -0
  767. package/dist/domain/core/action/index.d.ts +2 -0
  768. package/dist/domain/core/action/index.js +1 -0
  769. package/dist/domain/core/component/component-reader-types.d.ts +43 -0
  770. package/dist/domain/core/component/component-reader-types.js +1 -0
  771. package/dist/domain/core/component/debug-state-component.d.ts +14 -0
  772. package/dist/domain/core/component/debug-state-component.js +1 -0
  773. package/dist/domain/core/component/domain-component-optic.d.ts +65 -0
  774. package/dist/domain/core/component/domain-component-optic.js +16 -0
  775. package/dist/domain/core/component/drag-state-component.d.ts +16 -0
  776. package/dist/domain/core/component/drag-state-component.js +1 -0
  777. package/dist/domain/core/component/export-state-component.d.ts +15 -0
  778. package/dist/domain/core/component/export-state-component.js +1 -0
  779. package/dist/domain/core/component/fullscreen-state-component.d.ts +14 -0
  780. package/dist/domain/core/component/fullscreen-state-component.js +1 -0
  781. package/dist/domain/core/component/group-components-by-entity-id-and-name.d.ts +8 -0
  782. package/dist/domain/core/component/group-components-by-entity-id-and-name.js +1 -0
  783. package/dist/domain/core/component/hover-state-component.d.ts +14 -0
  784. package/dist/domain/core/component/hover-state-component.js +1 -0
  785. package/dist/domain/core/component/index.d.ts +18 -0
  786. package/dist/domain/core/component/index.js +1 -0
  787. package/dist/domain/core/component/legacy-filter.d.ts +498 -0
  788. package/dist/domain/core/component/navigation-state-component.d.ts +15 -0
  789. package/dist/domain/core/component/navigation-state-component.js +1 -0
  790. package/dist/domain/core/component/selection-state-component.d.ts +14 -0
  791. package/dist/domain/core/component/selection-state-component.js +1 -0
  792. package/dist/domain/core/component/system-component-builder.d.ts +11 -0
  793. package/dist/domain/core/component/system-component-builder.js +1 -0
  794. package/dist/domain/core/component/system-component-filter.d.ts +811 -0
  795. package/dist/domain/core/component/system-virtual-entity.js +1 -0
  796. package/dist/domain/core/component/tool-state-component.d.ts +14 -0
  797. package/dist/domain/core/component/tool-state-component.js +1 -0
  798. package/dist/domain/core/component/updates.d.ts +123 -0
  799. package/dist/domain/core/component/view-state-component.d.ts +14 -0
  800. package/dist/domain/core/component/view-state-component.js +1 -0
  801. package/dist/domain/core/component/viewport-state-component.d.ts +29 -0
  802. package/dist/domain/core/component/viewport-state-component.js +1 -0
  803. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  804. package/dist/domain/core/data-schema/data-cell-value.js +1 -0
  805. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  806. package/dist/domain/core/data-schema/data-schema-array-field.js +1 -0
  807. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  808. package/dist/domain/core/data-schema/data-schema-field-object.js +1 -0
  809. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  810. package/dist/domain/core/data-schema/data-schema-field.js +1 -0
  811. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  812. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  813. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  814. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  815. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  816. package/dist/domain/core/data-schema/data-schema.js +1 -0
  817. package/dist/domain/core/data-schema/index.d.ts +7 -0
  818. package/dist/domain/core/data-schema/index.js +1 -0
  819. package/dist/domain/core/decoder/create-decoder.d.ts +6 -0
  820. package/dist/domain/core/decoder/create-decoder.js +1 -0
  821. package/dist/domain/core/decoder/decoder.d.ts +6 -0
  822. package/dist/domain/core/decoder/decoder.js +1 -0
  823. package/dist/domain/core/decoder/index.d.ts +2 -0
  824. package/dist/domain/core/decoder/index.js +1 -0
  825. package/dist/domain/core/domain-factory.d.ts +4 -5
  826. package/dist/domain/core/domain-factory.js +1 -1
  827. package/dist/domain/core/domain.d.ts +4 -5
  828. package/dist/domain/core/domain.js +1 -1
  829. package/dist/domain/core/emission/index.d.ts +8 -0
  830. package/dist/domain/core/emission/index.js +1 -0
  831. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  832. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  833. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  834. package/dist/domain/core/emission/state-emission.js +1 -0
  835. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  836. package/dist/domain/core/emission/state-update-emission.js +1 -0
  837. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  838. package/dist/domain/core/emission/state-validation-result.js +1 -0
  839. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  840. package/dist/domain/core/emission/transformation-log.js +1 -0
  841. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  842. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  843. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  844. package/dist/domain/core/emission/transformer-log.js +1 -0
  845. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  846. package/dist/domain/core/emission/transformer-phase.js +1 -0
  847. package/dist/domain/core/expression/aliased-expressions.d.ts +10 -0
  848. package/dist/domain/core/expression/aliased-expressions.js +1 -0
  849. package/dist/domain/core/expression/constant-expressions.d.ts +16 -0
  850. package/dist/domain/core/expression/constant-expressions.js +1 -0
  851. package/dist/domain/core/expression/custom-expression.d.ts +25 -0
  852. package/dist/domain/core/expression/custom-expression.js +1 -0
  853. package/dist/domain/core/expression/expression.d.ts +46 -0
  854. package/dist/domain/core/expression/expression.js +1 -0
  855. package/dist/domain/core/expression/index.d.ts +4 -0
  856. package/dist/domain/core/expression/index.js +1 -0
  857. package/dist/domain/core/index.d.ts +13 -17
  858. package/dist/domain/core/index.js +1 -1
  859. package/dist/domain/core/invariant/builtin-invariant.d.ts +5 -0
  860. package/dist/domain/core/invariant/custom-invariants.d.ts +13 -0
  861. package/dist/domain/core/invariant/custom-invariants.js +1 -0
  862. package/dist/domain/core/invariant/index.d.ts +5 -0
  863. package/dist/domain/core/invariant/index.js +1 -0
  864. package/dist/domain/core/invariant/invariants.d.ts +10 -0
  865. package/dist/domain/core/invariant/invariants.js +1 -0
  866. package/dist/domain/core/invariant/violation-component.js +1 -0
  867. package/dist/domain/core/invariant/violation.d.ts +133 -0
  868. package/dist/domain/core/invariant/violation.js +1 -0
  869. package/dist/domain/core/model/component.d.ts +46 -0
  870. package/dist/domain/core/model/index.d.ts +6 -0
  871. package/dist/domain/core/model/index.js +1 -0
  872. package/dist/domain/core/model/model.d.ts +127 -0
  873. package/dist/domain/core/model/reflection.d.ts +114 -0
  874. package/dist/domain/core/model/reflection.js +1 -0
  875. package/dist/domain/core/recipe/index.d.ts +1 -0
  876. package/dist/domain/core/recipe/index.js +1 -0
  877. package/dist/domain/core/recipe/recipes.d.ts +23 -0
  878. package/dist/domain/core/recipe/recipes.js +1 -0
  879. package/dist/domain/core/relation/all-of-type-relation.d.ts +19 -0
  880. package/dist/domain/core/relation/all-of-type-relation.js +1 -0
  881. package/dist/domain/core/relation/component-factories.d.ts +14 -0
  882. package/dist/domain/core/relation/component-factories.js +1 -0
  883. package/dist/domain/core/relation/composed-of.d.ts +12 -0
  884. package/dist/domain/core/relation/composed-of.js +1 -0
  885. package/dist/domain/core/relation/direct-relation.d.ts +17 -0
  886. package/dist/domain/core/relation/index.d.ts +8 -0
  887. package/dist/domain/core/relation/index.js +1 -0
  888. package/dist/domain/core/relation/indirect-relation.d.ts +25 -0
  889. package/dist/domain/core/relation/indirect-relation.js +1 -0
  890. package/dist/domain/core/relation/reference-component.d.ts +17 -0
  891. package/dist/domain/core/relation/reference-component.js +1 -0
  892. package/dist/domain/core/relation/reference-field.d.ts +7 -0
  893. package/dist/domain/core/relation/reference-field.js +1 -0
  894. package/dist/domain/core/relation/relation-factory.d.ts +22 -0
  895. package/dist/domain/core/relation/relation-factory.js +1 -0
  896. package/dist/domain/core/schema/enhanced-json-schema.js +1 -0
  897. package/dist/domain/core/schema/extended-schema-validator.js +1 -0
  898. package/dist/domain/core/schema/index.d.ts +3 -0
  899. package/dist/domain/core/schema/index.js +1 -0
  900. package/dist/domain/core/schema/schema-validator.js +1 -0
  901. package/dist/domain/core/state/id-sequence.d.ts +15 -0
  902. package/dist/domain/core/state/id-sequence.js +1 -0
  903. package/dist/domain/core/state/index.d.ts +3 -0
  904. package/dist/domain/core/state/index.js +1 -0
  905. package/dist/domain/core/state/migrations.d.ts +67 -0
  906. package/dist/domain/core/state/migrations.js +1 -0
  907. package/dist/domain/core/state/state.d.ts +9 -0
  908. package/dist/domain/domain-builder.d.ts +11 -11
  909. package/dist/domain/domain-builder.js +1 -1
  910. package/dist/domain/domain-context/action-system/action-system.d.ts +2 -4
  911. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  912. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  913. package/dist/domain/domain-context/action-system/index.js +1 -0
  914. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  915. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  916. package/dist/domain/domain-context/create-transformer.d.ts +2 -2
  917. package/dist/domain/domain-context/dimension-system/dimension-state.js +1 -1
  918. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +3 -4
  919. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  920. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  921. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  922. package/dist/domain/domain-context/domain-context-systems.d.ts +8 -10
  923. package/dist/domain/domain-context/index.d.ts +8 -18
  924. package/dist/domain/domain-context/index.js +1 -1
  925. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  926. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  927. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +5 -8
  928. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  929. package/dist/domain/domain-context/navigation-system/navigation-updates.d.ts +1 -12
  930. package/dist/domain/domain-context/navigation-system/navigation-updates.js +1 -1
  931. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +2 -2
  932. package/dist/domain/domain-context/navigation-system/selection-transformers.js +1 -1
  933. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  934. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  935. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +2 -4
  936. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  937. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +3 -3
  938. package/dist/domain/domain-context/relation-transformers/cascade-deletes.js +1 -1
  939. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +3 -3
  940. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.js +1 -1
  941. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +3 -3
  942. package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
  943. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  944. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  945. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +3 -3
  946. package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
  947. package/dist/domain/domain-context/store-system/apply-updates.d.ts +1 -3
  948. package/dist/domain/domain-context/store-system/apply-updates.js +1 -1
  949. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  950. package/dist/domain/domain-context/store-system/index.js +1 -0
  951. package/dist/domain/domain-context/store-system/next-domain-entity-id.d.ts +1 -13
  952. package/dist/domain/domain-context/store-system/next-domain-entity-id.js +1 -1
  953. package/dist/domain/domain-context/store-system/reconcile-projected-entities.d.ts +1 -2
  954. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  955. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -39
  956. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  957. package/dist/domain/domain-context/store-system/system-state.d.ts +2 -4
  958. package/dist/domain/domain-context/store-system/system-state.js +1 -1
  959. package/dist/domain/domain-context/transformers/actions-builder.d.ts +1 -2
  960. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  961. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +6 -10
  962. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  963. package/dist/domain/domain-context/transformers/chain-builder.d.ts +3 -3
  964. package/dist/domain/domain-context/transformers/context.d.ts +2 -7
  965. package/dist/domain/domain-context/transformers/context.js +1 -1
  966. package/dist/domain/domain-context/transformers/entity-builder.d.ts +1 -5
  967. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  968. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  969. package/dist/domain/domain-context/transformers/index.js +1 -1
  970. package/dist/domain/domain-context/transformers/then-builder.d.ts +1 -2
  971. package/dist/domain/domain-context/transformers/then-builder.js +1 -1
  972. package/dist/domain/domain-context/transformers/when-builder.d.ts +3 -9
  973. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  974. package/dist/domain/domain-context/undo-system.d.ts +29 -3
  975. package/dist/domain/domain-context/undo-system.js +1 -1
  976. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  977. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  978. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  979. package/dist/domain/domain-runtime/access/types.js +1 -1
  980. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  981. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  982. package/dist/domain/domain-runtime/domain-context/component-reader.d.ts +1 -4
  983. package/dist/domain/domain-runtime/domain-context/component-reader.js +1 -1
  984. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  985. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  986. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  987. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  988. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  989. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  990. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +19 -25
  991. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  992. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  993. package/dist/domain/domain-runtime/domain-runtime.d.ts +88 -72
  994. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +19 -0
  995. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  996. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  997. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  998. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  999. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  1000. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  1001. package/dist/domain/domain-runtime/errors/index.js +1 -0
  1002. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  1003. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  1004. package/dist/domain/domain-runtime/index.d.ts +1 -0
  1005. package/dist/domain/domain-runtime/index.js +1 -1
  1006. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  1007. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  1008. package/dist/domain/domain-runtime/spec/index.d.ts +5 -0
  1009. package/dist/domain/domain-runtime/spec/index.js +1 -1
  1010. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  1011. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  1012. package/dist/domain/domain-runtime/spec/memoize-expression.d.ts +16 -0
  1013. package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +111 -0
  1014. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  1015. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.d.ts +34 -0
  1016. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  1017. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  1018. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  1019. package/dist/domain/domain-runtime/spec/module-checks/project-modules.d.ts +32 -0
  1020. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  1021. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  1022. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  1023. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  1024. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  1025. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  1026. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  1027. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  1028. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  1029. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  1030. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  1031. package/dist/domain/domain-runtime/spec/prepare-action-implementations.d.ts +15 -0
  1032. package/dist/domain/domain-runtime/spec/prepare-action-implementations.js +5 -0
  1033. package/dist/domain/domain-runtime/spec/prepare-domain-expressions.d.ts +16 -0
  1034. package/dist/domain/domain-runtime/spec/selectors.d.ts +7 -8
  1035. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  1036. package/dist/domain/domain-runtime/spec/types.d.ts +8 -6
  1037. package/dist/domain/extensions/angle-indicator.d.ts +21 -0
  1038. package/dist/domain/extensions/angle-indicator.js +1 -0
  1039. package/dist/domain/extensions/attribute-switch.d.ts +8 -0
  1040. package/dist/domain/extensions/attribute-switch.js +1 -0
  1041. package/dist/domain/extensions/autorotate-camera-component.d.ts +19 -0
  1042. package/dist/domain/extensions/autorotate-camera-component.js +1 -0
  1043. package/dist/domain/extensions/basic-sidebar-footer.d.ts +8 -0
  1044. package/dist/domain/extensions/basic-sidebar-footer.js +1 -0
  1045. package/dist/domain/extensions/camera-based-hidden-entity-object.js +1 -0
  1046. package/dist/domain/extensions/camera-based-hidden-entity.js +1 -0
  1047. package/dist/domain/extensions/canvas-config.d.ts +87 -0
  1048. package/dist/domain/extensions/canvas-config.js +1 -0
  1049. package/dist/domain/extensions/canvas-custom-environment.js +1 -0
  1050. package/dist/domain/extensions/canvas-padding.d.ts +25 -0
  1051. package/dist/domain/extensions/canvas-padding.js +1 -0
  1052. package/dist/domain/extensions/canvas-preset-environment.d.ts +37 -0
  1053. package/dist/domain/extensions/canvas-preset-environment.js +1 -0
  1054. package/dist/domain/extensions/child-entity-recipe-hierarchy.d.ts +21 -0
  1055. package/dist/domain/extensions/child-entity-recipe-hierarchy.js +1 -0
  1056. package/dist/domain/extensions/client-side-image.d.ts +14 -0
  1057. package/dist/domain/extensions/client-side-image.js +1 -0
  1058. package/dist/domain/extensions/color-value.js +1 -0
  1059. package/dist/domain/extensions/common/angle-indicator-schema.d.ts +292 -0
  1060. package/dist/domain/extensions/common/angle-indicator-schema.js +1 -0
  1061. package/dist/domain/extensions/common/dimension-indicator-schema.d.ts +607 -0
  1062. package/dist/domain/extensions/common/dimension-indicator-schema.js +1 -0
  1063. package/dist/domain/extensions/common/index.d.ts +4 -0
  1064. package/dist/domain/extensions/common/index.js +1 -0
  1065. package/dist/domain/extensions/custom-header.d.ts +11 -0
  1066. package/dist/domain/extensions/custom-header.js +1 -0
  1067. package/dist/domain/extensions/custom-price-footer.js +1 -0
  1068. package/dist/domain/extensions/custom-sidebar-footer.d.ts +11 -0
  1069. package/dist/domain/extensions/custom-sidebar-footer.js +1 -0
  1070. package/dist/domain/extensions/dimension-indicator.d.ts +31 -0
  1071. package/dist/domain/extensions/dimension-indicator.js +1 -0
  1072. package/dist/domain/extensions/editable-angle-indicator.d.ts +39 -0
  1073. package/dist/domain/extensions/editable-angle-indicator.js +1 -0
  1074. package/dist/domain/extensions/editable-distance-dimension-indicator.d.ts +43 -0
  1075. package/dist/domain/extensions/editable-distance-dimension-indicator.js +1 -0
  1076. package/dist/domain/extensions/editable-offset-indicator.d.ts +42 -0
  1077. package/dist/domain/extensions/editable-offset-indicator.js +1 -0
  1078. package/dist/domain/extensions/editable-size-indicator.d.ts +39 -0
  1079. package/dist/domain/extensions/editable-size-indicator.js +1 -0
  1080. package/dist/domain/extensions/entity-header.d.ts +22 -0
  1081. package/dist/domain/extensions/entity-header.js +1 -0
  1082. package/dist/domain/extensions/exit-tool-mode-fab.d.ts +25 -0
  1083. package/dist/domain/extensions/exit-tool-mode-fab.js +1 -0
  1084. package/dist/domain/extensions/finalize-action.d.ts +20 -0
  1085. package/dist/domain/extensions/finalize-action.js +1 -0
  1086. package/dist/domain/extensions/finalize-component.js +1 -0
  1087. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -0
  1088. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -0
  1089. package/dist/domain/extensions/fixed-header.d.ts +10 -0
  1090. package/dist/domain/extensions/fixed-header.js +1 -0
  1091. package/dist/domain/extensions/floating-header.d.ts +10 -0
  1092. package/dist/domain/extensions/floating-header.js +1 -0
  1093. package/dist/domain/extensions/hidden-header.d.ts +8 -0
  1094. package/dist/domain/extensions/hidden-header.js +1 -0
  1095. package/dist/domain/extensions/hidden-sidebar-footer.d.ts +21 -0
  1096. package/dist/domain/extensions/hidden-sidebar-footer.js +1 -0
  1097. package/dist/domain/extensions/horizontal-tabs.d.ts +28 -0
  1098. package/dist/domain/extensions/horizontal-tabs.js +1 -0
  1099. package/dist/domain/extensions/index.d.ts +69 -0
  1100. package/dist/domain/extensions/index.js +1 -0
  1101. package/dist/domain/extensions/list-selector-dimension-indicator.d.ts +31 -0
  1102. package/dist/domain/extensions/list-selector-dimension-indicator.js +1 -0
  1103. package/dist/domain/extensions/multilingual-text-value.js +1 -0
  1104. package/dist/domain/extensions/navigation-steps.d.ts +19 -0
  1105. package/dist/domain/extensions/navigation-steps.js +1 -0
  1106. package/dist/domain/extensions/offset-anchors.d.ts +20 -0
  1107. package/dist/domain/extensions/offset-anchors.js +1 -0
  1108. package/dist/domain/extensions/offset-indicator.d.ts +83 -0
  1109. package/dist/domain/extensions/offset-indicator.js +1 -0
  1110. package/dist/domain/extensions/offset.d.ts +31 -0
  1111. package/dist/domain/extensions/offset.js +1 -0
  1112. package/dist/domain/extensions/other-action.d.ts +14 -0
  1113. package/dist/domain/extensions/other-action.js +1 -0
  1114. package/dist/domain/extensions/property-page.d.ts +16 -0
  1115. package/dist/domain/extensions/property-page.js +1 -0
  1116. package/dist/domain/extensions/read-sidebar-footer.d.ts +8 -0
  1117. package/dist/domain/extensions/read-sidebar-footer.js +1 -0
  1118. package/dist/domain/extensions/replace-entity-recipe-hierarchy.d.ts +21 -0
  1119. package/dist/domain/extensions/replace-entity-recipe-hierarchy.js +1 -0
  1120. package/dist/domain/extensions/rotatable.js +1 -0
  1121. package/dist/domain/extensions/rotation-handle.d.ts +53 -0
  1122. package/dist/domain/extensions/rotation-handle.js +1 -0
  1123. package/dist/domain/extensions/save-template-thumbnail.d.ts +14 -0
  1124. package/dist/domain/extensions/save-template-thumbnail.js +1 -0
  1125. package/dist/domain/extensions/scene-entity-add-fab.d.ts +32 -0
  1126. package/dist/domain/extensions/scene-entity-add-fab.js +1 -0
  1127. package/dist/domain/extensions/scene-entity-animation.js +1 -0
  1128. package/dist/domain/extensions/scene-entity-control.js +1 -0
  1129. package/dist/domain/extensions/scene-entity-delete-fab.d.ts +19 -0
  1130. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -0
  1131. package/dist/domain/extensions/scene-entity-floor-object.js +1 -0
  1132. package/dist/domain/extensions/scene-entity-html-hotspot.d.ts +27 -0
  1133. package/dist/domain/extensions/scene-entity-html-hotspot.js +1 -0
  1134. package/dist/domain/extensions/scene-entity-navigation-hotspot.d.ts +20 -0
  1135. package/dist/domain/extensions/scene-entity-navigation-hotspot.js +1 -0
  1136. package/dist/domain/extensions/scene-entity-object-html-hotspot.d.ts +31 -0
  1137. package/dist/domain/extensions/scene-entity-object-html-hotspot.js +1 -0
  1138. package/dist/domain/extensions/scene-entity-select-hotspot.d.ts +5 -0
  1139. package/dist/domain/extensions/scene-entity-select-hotspot.js +1 -0
  1140. package/dist/domain/extensions/scene-entity-wall-object.js +1 -0
  1141. package/dist/domain/extensions/selectable-component.js +1 -0
  1142. package/dist/domain/extensions/sidebar-tabs.d.ts +29 -0
  1143. package/dist/domain/extensions/sidebar-tabs.js +1 -0
  1144. package/dist/domain/extensions/simple-summary.js +1 -0
  1145. package/dist/domain/extensions/size.d.ts +21 -0
  1146. package/dist/domain/extensions/size.js +1 -0
  1147. package/dist/domain/extensions/sketching-draw.d.ts +17 -0
  1148. package/dist/domain/extensions/sketching-draw.js +1 -0
  1149. package/dist/domain/extensions/sketching-edit.d.ts +28 -0
  1150. package/dist/domain/extensions/sketching-edit.js +1 -0
  1151. package/dist/domain/extensions/summary-component.js +1 -0
  1152. package/dist/domain/extensions/text-value.js +1 -0
  1153. package/dist/domain/extensions/tool-controls.js +1 -0
  1154. package/dist/domain/extensions/tool-menu-fab.d.ts +40 -0
  1155. package/dist/domain/extensions/tool-menu-fab.js +1 -0
  1156. package/dist/domain/extensions/toolbar.d.ts +13 -0
  1157. package/dist/domain/extensions/toolbar.js +1 -0
  1158. package/dist/domain/extensions/universal-sidebar-footer.d.ts +12 -0
  1159. package/dist/domain/extensions/universal-sidebar-footer.js +1 -0
  1160. package/dist/domain/extensions/view-controls.js +1 -0
  1161. package/dist/domain/index.d.ts +2 -32
  1162. package/dist/domain/index.js +1 -1
  1163. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  1164. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  1165. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +30 -21
  1166. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  1167. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  1168. package/dist/domain/mocks/create-mock-domain.js +1 -1
  1169. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  1170. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  1171. package/dist/domain/mocks/create-test-application-config.js +1 -0
  1172. package/dist/domain/mocks/index.d.ts +1 -0
  1173. package/dist/domain/mocks/index.js +1 -1
  1174. package/dist/domain/projections/blender-projections/blender-projections.d.ts +2 -3
  1175. package/dist/domain/projections/blender-projections/blender-projections.js +1 -1
  1176. package/dist/domain/projections/blender-projections/camera.d.ts +2 -2
  1177. package/dist/domain/projections/collision-projections.d.ts +1 -1
  1178. package/dist/domain/projections/composition-projections.d.ts +1 -1
  1179. package/dist/domain/projections/composition-projections.js +1 -1
  1180. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  1181. package/dist/domain/projections/index.d.ts +1 -1
  1182. package/dist/domain/projections/position-projections.d.ts +1 -1
  1183. package/dist/domain/projections/projected-entities-projections.d.ts +2 -3
  1184. package/dist/domain/projections/snap-matching.d.ts +1 -2
  1185. package/dist/domain/projections/snap-utils.d.ts +1 -2
  1186. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  1187. package/dist/domain/projections/validation-projections.d.ts +3 -20
  1188. package/dist/domain/projections/validation-projections.js +1 -1
  1189. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  1190. package/dist/domain/system-components/admin-sidebar.d.ts +1 -1
  1191. package/dist/domain/system-components/admin-sidebar.js +1 -1
  1192. package/dist/domain/system-components/angle-dimension.js +1 -1
  1193. package/dist/domain/system-components/application-config.d.ts +3 -3
  1194. package/dist/domain/system-components/application-config.js +1 -1
  1195. package/dist/domain/system-components/attribute-selection.js +1 -1
  1196. package/dist/domain/system-components/bounding-box-component.d.ts +1 -1
  1197. package/dist/domain/system-components/bounding-box-component.js +1 -1
  1198. package/dist/domain/system-components/bounding-sphere-component.d.ts +1 -1
  1199. package/dist/domain/system-components/bounding-sphere-component.js +1 -1
  1200. package/dist/domain/system-components/child-entity-recipes.d.ts +1 -1
  1201. package/dist/domain/system-components/child-entity-recipes.js +1 -1
  1202. package/dist/domain/system-components/child-entity-selection.d.ts +1 -2
  1203. package/dist/domain/system-components/child-entity-selection.js +1 -1
  1204. package/dist/domain/system-components/collision-box-geometry.d.ts +5 -3
  1205. package/dist/domain/system-components/collision-box-geometry.js +1 -1
  1206. package/dist/domain/system-components/collision-geometries.d.ts +1 -1
  1207. package/dist/domain/system-components/collision-geometry.d.ts +5 -3
  1208. package/dist/domain/system-components/collision-geometry.js +1 -1
  1209. package/dist/domain/system-components/collision-point-geometry.d.ts +5 -3
  1210. package/dist/domain/system-components/collision-point-geometry.js +1 -1
  1211. package/dist/domain/system-components/common/index.d.ts +0 -4
  1212. package/dist/domain/system-components/common/index.js +1 -1
  1213. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  1214. package/dist/domain/system-components/common/recipes.d.ts +21 -4
  1215. package/dist/domain/system-components/common/recipes.js +1 -1
  1216. package/dist/domain/system-components/common/scene-entity-control-schema.d.ts +3 -0
  1217. package/dist/domain/system-components/common/scene-entity-control-schema.js +1 -1
  1218. package/dist/domain/system-components/constraint.d.ts +11 -24
  1219. package/dist/domain/system-components/constraint.js +1 -1
  1220. package/dist/domain/system-components/create-blueprint.d.ts +1 -1
  1221. package/dist/domain/system-components/custom-scene-entity.d.ts +1 -1
  1222. package/dist/domain/system-components/custom-scene-entity.js +1 -1
  1223. package/dist/domain/system-components/detail.js +1 -1
  1224. package/dist/domain/system-components/distance-dimension-select.d.ts +1 -1
  1225. package/dist/domain/system-components/distance-dimension-select.js +1 -1
  1226. package/dist/domain/system-components/distance-dimension.d.ts +1 -1
  1227. package/dist/domain/system-components/distance-dimension.js +1 -1
  1228. package/dist/domain/system-components/drag-handle.d.ts +2 -2
  1229. package/dist/domain/system-components/drag-handle.js +1 -1
  1230. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  1231. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  1232. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  1233. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  1234. package/dist/domain/system-components/generic-dimension.d.ts +1 -1
  1235. package/dist/domain/system-components/generic-dimension.js +1 -1
  1236. package/dist/domain/system-components/hidden-entity.js +1 -1
  1237. package/dist/domain/system-components/hotspot-drag-handle.d.ts +2 -3
  1238. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  1239. package/dist/domain/system-components/index.d.ts +0 -68
  1240. package/dist/domain/system-components/index.js +1 -1
  1241. package/dist/domain/system-components/material-override-property-transition.js +1 -1
  1242. package/dist/domain/system-components/material-override-transformer.js +1 -1
  1243. package/dist/domain/system-components/material-swatch.js +1 -1
  1244. package/dist/domain/system-components/navigation-page.js +1 -1
  1245. package/dist/domain/system-components/navigation-panel-list.js +1 -1
  1246. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  1247. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  1248. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  1249. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  1250. package/dist/domain/system-components/pivot-point.d.ts +1 -1
  1251. package/dist/domain/system-components/pivot-point.js +1 -1
  1252. package/dist/domain/system-components/price.js +1 -1
  1253. package/dist/domain/system-components/projected-entities.d.ts +1 -1
  1254. package/dist/domain/system-components/projected-entities.js +1 -1
  1255. package/dist/domain/system-components/replace-entity-recipes.d.ts +1 -1
  1256. package/dist/domain/system-components/replace-entity-recipes.js +1 -1
  1257. package/dist/domain/system-components/scene-entity-ambient-light.js +1 -1
  1258. package/dist/domain/system-components/scene-entity-box-object.js +1 -1
  1259. package/dist/domain/system-components/scene-entity-directional-light.js +1 -1
  1260. package/dist/domain/system-components/scene-entity-local-material-override.js +1 -1
  1261. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  1262. package/dist/domain/system-components/scene-entity-material-override.js +1 -1
  1263. package/dist/domain/system-components/scene-entity-object-clip.js +1 -1
  1264. package/dist/domain/system-components/scene-entity-object-decal.js +1 -1
  1265. package/dist/domain/system-components/scene-entity-object-group.js +1 -1
  1266. package/dist/domain/system-components/scene-entity-object-local-material-override.js +1 -1
  1267. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  1268. package/dist/domain/system-components/scene-entity-object-material-override.js +1 -1
  1269. package/dist/domain/system-components/scene-entity-object-properties.js +1 -1
  1270. package/dist/domain/system-components/scene-entity-object-remote-material-override.js +1 -1
  1271. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  1272. package/dist/domain/system-components/scene-entity-object-text-decal.js +1 -1
  1273. package/dist/domain/system-components/scene-entity-object-transformer.js +1 -1
  1274. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  1275. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.js +1 -1
  1276. package/dist/domain/system-components/scene-entity-object.js +1 -1
  1277. package/dist/domain/system-components/scene-entity-point-light.js +1 -1
  1278. package/dist/domain/system-components/scene-entity-properties.js +1 -1
  1279. package/dist/domain/system-components/scene-entity-rect-area-light.js +1 -1
  1280. package/dist/domain/system-components/scene-entity-remote-material-override.js +1 -1
  1281. package/dist/domain/system-components/scene-entity-remote-object.js +1 -1
  1282. package/dist/domain/system-components/scene-entity-spot-light.js +1 -1
  1283. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  1284. package/dist/domain/system-components/scene-entity-transimissive-material-override.js +1 -1
  1285. package/dist/domain/system-components/sketching-line.d.ts +1 -1
  1286. package/dist/domain/system-components/sketching-line.js +1 -1
  1287. package/dist/domain/system-components/sketching-rectangle.d.ts +1 -1
  1288. package/dist/domain/system-components/sketching-rectangle.js +1 -1
  1289. package/dist/domain/system-components/sketching.d.ts +1 -1
  1290. package/dist/domain/system-components/sketching.js +1 -1
  1291. package/dist/domain/system-components/snap-axis.d.ts +1 -1
  1292. package/dist/domain/system-components/snap-axis.js +1 -1
  1293. package/dist/domain/system-components/snap-edge.d.ts +1 -1
  1294. package/dist/domain/system-components/snap-edge.js +1 -1
  1295. package/dist/domain/system-components/snap-plane.d.ts +1 -1
  1296. package/dist/domain/system-components/snap-plane.js +1 -1
  1297. package/dist/domain/system-components/snap-point.d.ts +1 -1
  1298. package/dist/domain/system-components/snap-point.js +1 -1
  1299. package/dist/domain/system-components/static-orthographic-camera-component.d.ts +1 -1
  1300. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  1301. package/dist/domain/system-components/static-perspective-camera-component.d.ts +1 -1
  1302. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  1303. package/dist/domain/utils/eval-cache.d.ts +2 -3
  1304. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  1305. package/dist/domain/utils/memo-eval.d.ts +2 -4
  1306. package/dist/editor/Editor.d.ts +7 -0
  1307. package/dist/editor/Editor.js +1 -1
  1308. package/dist/editor/domain-editors/use-implementation-files.d.ts +8 -8
  1309. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  1310. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  1311. package/dist/editor/mocks/CreateMockYaml.js +2 -2
  1312. package/dist/editor/mocks/EditorMockContext.d.ts +2 -0
  1313. package/dist/editor/mocks/EditorMockContext.js +1 -1
  1314. package/dist/editor/variants/VariantAnswerFooter.d.ts +17 -0
  1315. package/dist/editor/variants/VariantAnswerFooter.js +1 -0
  1316. package/dist/editor/variants/VariantPreviewHandler.d.ts +6 -0
  1317. package/dist/editor/variants/VariantPreviewHandler.js +1 -0
  1318. package/dist/editor/variants/variant-preview-styles.d.ts +49 -0
  1319. package/dist/editor/variants/variant-preview-styles.js +1 -0
  1320. package/dist/globals/index.d.ts +2 -0
  1321. package/dist/i18n/locales/cs/messages.js +1 -1
  1322. package/dist/i18n/locales/da/messages.js +1 -1
  1323. package/dist/i18n/locales/de/messages.js +1 -1
  1324. package/dist/i18n/locales/de-AT/messages.js +1 -1
  1325. package/dist/i18n/locales/en/messages.js +1 -1
  1326. package/dist/i18n/locales/en-AU/messages.js +1 -1
  1327. package/dist/i18n/locales/en-GB/messages.js +1 -1
  1328. package/dist/i18n/locales/es/messages.js +1 -1
  1329. package/dist/i18n/locales/fr/messages.js +1 -1
  1330. package/dist/i18n/locales/hu/messages.js +1 -1
  1331. package/dist/i18n/locales/it/messages.js +1 -1
  1332. package/dist/i18n/locales/nl/messages.js +1 -1
  1333. package/dist/i18n/locales/pl/messages.js +1 -1
  1334. package/dist/i18n/locales/pt/messages.js +1 -1
  1335. package/dist/i18n/locales/ro/messages.js +1 -1
  1336. package/dist/i18n/locales/sk/messages.js +1 -1
  1337. package/dist/i18n/locales/tr/messages.js +1 -1
  1338. package/dist/legacy/domain-cli/gen/configurator-builder.js +30 -16
  1339. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  1340. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  1341. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  1342. package/dist/legacy/domain-cli/gen/invariants.js +7 -6
  1343. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  1344. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  1345. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  1346. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +160 -148
  1347. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  1348. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  1349. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  1350. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +7 -0
  1351. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  1352. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.d.ts +1 -1
  1353. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
  1354. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +18 -18
  1355. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +16 -15
  1356. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +24 -24
  1357. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +16 -15
  1358. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.d.ts +7 -2
  1359. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/generator-shared.js +8 -12
  1360. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.d.ts +1 -1
  1361. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/index.js +1 -1
  1362. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/webhook-builders.js +7 -7
  1363. package/dist/phoenix/application-spec/application-spec-builder.d.ts +0 -2
  1364. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  1365. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +0 -2
  1366. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  1367. package/dist/phoenix/application-spec/generate-application-spec-story.js +2 -2
  1368. package/dist/phoenix/application-spec/generate-project-files.d.ts +0 -2
  1369. package/dist/phoenix/application-spec/project-files.js +1 -1
  1370. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +4 -3
  1371. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  1372. package/dist/phoenix/bin.d.ts +2 -0
  1373. package/dist/phoenix/bin.js +2 -0
  1374. package/dist/phoenix/check-configs/built-in-eslint-config.d.ts +9 -0
  1375. package/dist/phoenix/check-configs/built-in-eslint-config.js +1 -0
  1376. package/dist/phoenix/check-configs/eslint-config.d.ts +10 -0
  1377. package/dist/phoenix/check-configs/eslint-config.js +1 -0
  1378. package/dist/phoenix/check-configs/index.d.ts +8 -0
  1379. package/dist/phoenix/check-configs/index.js +1 -0
  1380. package/dist/phoenix/check-configs/typescript-project.d.ts +5 -0
  1381. package/dist/phoenix/check-configs/typescript-project.js +1 -0
  1382. package/dist/phoenix/cli.d.ts +0 -1
  1383. package/dist/phoenix/cli.js +1 -2
  1384. package/dist/phoenix/commands/build.js +1 -1
  1385. package/dist/phoenix/commands/check.js +1 -1
  1386. package/dist/phoenix/commands/clean.js +1 -1
  1387. package/dist/phoenix/commands/deploy.js +2 -2
  1388. package/dist/phoenix/commands/deps/deps.d.ts +73 -0
  1389. package/dist/phoenix/commands/deps/deps.js +3 -0
  1390. package/dist/phoenix/commands/deps/index.d.ts +1 -0
  1391. package/dist/phoenix/commands/deps/index.js +1 -0
  1392. package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
  1393. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
  1394. package/dist/phoenix/commands/dev.js +5 -5
  1395. package/dist/phoenix/commands/fix.js +1 -1
  1396. package/dist/phoenix/commands/index.d.ts +2 -0
  1397. package/dist/phoenix/commands/index.js +1 -1
  1398. package/dist/phoenix/commands/init.d.ts +17 -5
  1399. package/dist/phoenix/commands/init.js +1 -1
  1400. package/dist/phoenix/commands/link.js +1 -1
  1401. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  1402. package/dist/phoenix/commands/prepare-local-environment-command.js +1 -1
  1403. package/dist/phoenix/commands/prettier.js +1 -1
  1404. package/dist/phoenix/commands/story-dev.js +2 -2
  1405. package/dist/phoenix/commands/sync.js +1 -1
  1406. package/dist/phoenix/commands/unlink.js +1 -1
  1407. package/dist/phoenix/commands/variants.d.ts +35 -0
  1408. package/dist/phoenix/commands/variants.js +1 -0
  1409. package/dist/phoenix/editor-server/commands-router.d.ts +68 -1
  1410. package/dist/phoenix/editor-server/commands-router.js +1 -1
  1411. package/dist/phoenix/editor-server/editor-router.d.ts +65 -0
  1412. package/dist/phoenix/editor-server/editor-server.d.ts +3 -3
  1413. package/dist/phoenix/editor-server/editor-server.js +1 -1
  1414. package/dist/phoenix/editor-server/protocol.d.ts +1 -0
  1415. package/dist/phoenix/editor-server/spec-router.js +1 -1
  1416. package/dist/phoenix/editor-server/trpc.d.ts +3 -0
  1417. package/dist/phoenix/scripts/build-admin.js +1 -1
  1418. package/dist/phoenix/services/application-spec-project-watcher.d.ts +15 -4
  1419. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  1420. package/dist/phoenix/services/index.d.ts +4 -0
  1421. package/dist/phoenix/services/index.js +1 -1
  1422. package/dist/phoenix/services/lingui.d.ts +8 -0
  1423. package/dist/phoenix/services/lingui.js +1 -1
  1424. package/dist/phoenix/services/phoenix-application.d.ts +21 -0
  1425. package/dist/phoenix/services/phoenix-application.js +1 -0
  1426. package/dist/phoenix/services/phoenix-store.d.ts +48 -0
  1427. package/dist/phoenix/services/phoenix-store.js +1 -0
  1428. package/dist/phoenix/services/phx-variant-previews-plugin.d.ts +9 -0
  1429. package/dist/phoenix/services/phx-variant-previews-plugin.js +1 -0
  1430. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  1431. package/dist/phoenix/services/source-archive.d.ts +1 -0
  1432. package/dist/phoenix/services/source-archive.js +1 -1
  1433. package/dist/phoenix/services/swc.js +1 -1
  1434. package/dist/phoenix/services/variant-file-session.d.ts +36 -0
  1435. package/dist/phoenix/services/variant-file-session.js +1 -0
  1436. package/dist/phoenix/services/variant-preview-service.d.ts +80 -0
  1437. package/dist/phoenix/services/variant-preview-service.js +1 -0
  1438. package/dist/phoenix/services/vite-config.js +1 -1
  1439. package/dist/phoenix/utils/git/index.d.ts +1 -0
  1440. package/dist/phoenix/utils/git/index.js +1 -0
  1441. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  1442. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  1443. package/dist/phoenix/utils/index.d.ts +5 -2
  1444. package/dist/phoenix/utils/index.js +1 -1
  1445. package/dist/phoenix/utils/node-version/index.d.ts +1 -0
  1446. package/dist/phoenix/utils/node-version/index.js +1 -0
  1447. package/dist/phoenix/utils/node-version/supported-node-version.d.ts +12 -0
  1448. package/dist/phoenix/utils/node-version/supported-node-version.js +4 -0
  1449. package/dist/phoenix/utils/package-info.d.ts +0 -9
  1450. package/dist/phoenix/utils/package-info.js +1 -1
  1451. package/dist/phoenix/utils/package-manager/index.d.ts +2 -0
  1452. package/dist/phoenix/utils/package-manager/index.js +1 -0
  1453. package/dist/phoenix/utils/package-manager/package-manager-commands.d.ts +19 -0
  1454. package/dist/phoenix/utils/package-manager/package-manager-commands.js +1 -0
  1455. package/dist/phoenix/utils/package-manager/pnpm-project.d.ts +9 -0
  1456. package/dist/phoenix/utils/package-manager/pnpm-project.js +1 -0
  1457. package/dist/phoenix/utils/run-command.d.ts +11 -0
  1458. package/dist/phoenix/utils/run-command.js +1 -1
  1459. package/dist/phoenix/utils/sdk-tool/index.d.ts +1 -0
  1460. package/dist/phoenix/utils/sdk-tool/index.js +1 -0
  1461. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.d.ts +15 -0
  1462. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.js +1 -0
  1463. package/dist/react-sdk/application-runtime/common-services/analytics/frontend-analytics.d.ts +52 -0
  1464. package/dist/react-sdk/application-runtime/common-services/analytics/frontend-analytics.js +1 -0
  1465. package/dist/react-sdk/application-runtime/common-services/analytics/index.d.ts +1 -0
  1466. package/dist/react-sdk/application-runtime/common-services/analytics/index.js +1 -1
  1467. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +2 -0
  1468. package/dist/react-sdk/application-runtime/hooks/use-domain-application-props.d.ts +5 -2
  1469. package/dist/react-sdk/application-runtime/hooks/use-spec.d.ts +1 -1
  1470. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.d.ts +1 -1
  1471. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  1472. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  1473. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +57 -40
  1474. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  1475. package/dist/react-sdk/domain-application-context/DomainLifecycleBoundary.js +1 -1
  1476. package/dist/react-sdk/domain-context/common-hooks/index.d.ts +8 -0
  1477. package/dist/react-sdk/domain-context/common-hooks/index.js +1 -0
  1478. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +41 -0
  1479. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  1480. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +9 -9
  1481. package/dist/react-sdk/domain-context/component-hooks/index.d.ts +1 -0
  1482. package/dist/react-sdk/domain-context/component-hooks/index.js +1 -0
  1483. package/dist/react-sdk/domain-context/component-hooks/use-component.js +1 -1
  1484. package/dist/react-sdk/domain-context/entity-hooks/use-domain-entity-state.js +1 -1
  1485. package/dist/react-sdk/domain-context/entity-hooks/use-entity-price.js +1 -1
  1486. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-id.js +1 -1
  1487. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-state.js +1 -1
  1488. package/dist/react-sdk/domain-context/index.d.ts +8 -1
  1489. package/dist/react-sdk/domain-context/index.js +1 -1
  1490. package/dist/react-sdk/domain-context/system-hooks/composition-hooks.js +1 -1
  1491. package/dist/react-sdk/domain-context/system-hooks/dimension-hooks.js +1 -1
  1492. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.d.ts +8 -0
  1493. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.js +1 -0
  1494. package/dist/react-sdk/domain-context/system-hooks/hover-hooks.js +1 -1
  1495. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.d.ts +24 -0
  1496. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.js +1 -0
  1497. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +11 -0
  1498. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  1499. package/dist/react-sdk/domain-context/system-hooks/selection-hooks.js +1 -1
  1500. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.d.ts +32 -0
  1501. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.js +1 -0
  1502. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.d.ts +57 -0
  1503. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.js +1 -0
  1504. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.d.ts +61 -0
  1505. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.js +1 -0
  1506. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.d.ts +20 -0
  1507. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -0
  1508. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  1509. package/dist/react-sdk/elements/configurator-error-page-props.d.ts +20 -0
  1510. package/dist/react-sdk/elements/configurator-error-page-props.js +1 -0
  1511. package/dist/react-sdk/elements/index.d.ts +1 -0
  1512. package/dist/react-sdk/handlers/FinalizeActionRunner.d.ts +13 -0
  1513. package/dist/react-sdk/handlers/FinalizeActionRunner.js +1 -0
  1514. package/dist/react-sdk/handlers/FinalizeActionsHost.d.ts +10 -0
  1515. package/dist/react-sdk/handlers/FinalizeActionsHost.js +1 -0
  1516. package/dist/react-sdk/handlers/FinalizeActionsProvider.d.ts +11 -0
  1517. package/dist/react-sdk/handlers/FinalizeActionsProvider.js +1 -0
  1518. package/dist/react-sdk/handlers/finalize-actions-context.d.ts +6 -0
  1519. package/dist/react-sdk/handlers/finalize-actions-context.js +1 -0
  1520. package/dist/react-sdk/handlers/finalize-actions-store.d.ts +23 -0
  1521. package/dist/react-sdk/handlers/finalize-actions-store.js +1 -0
  1522. package/dist/react-sdk/handlers/index.d.ts +6 -0
  1523. package/dist/react-sdk/handlers/index.js +1 -1
  1524. package/dist/react-sdk/handlers/use-finalize-action.d.ts +32 -0
  1525. package/dist/react-sdk/handlers/use-finalize-action.js +1 -0
  1526. package/dist/react-sdk/handlers/use-finalize-actions.d.ts +53 -0
  1527. package/dist/react-sdk/handlers/use-finalize-actions.js +1 -0
  1528. package/dist/react-sdk/index.d.ts +2 -0
  1529. package/dist/react-sdk/index.js +1 -1
  1530. package/dist/react-sdk/loading-state/loading-state-manager.d.ts +5 -0
  1531. package/dist/react-sdk/loading-state/loading-state-manager.js +1 -1
  1532. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.d.ts +25 -0
  1533. package/dist/react-sdk/responsive-state/ResponsiveStateProvider.js +1 -0
  1534. package/dist/react-sdk/responsive-state/canvas-padding.d.ts +14 -0
  1535. package/dist/react-sdk/responsive-state/canvas-padding.js +1 -0
  1536. package/dist/react-sdk/responsive-state/index.d.ts +5 -0
  1537. package/dist/react-sdk/responsive-state/index.js +1 -0
  1538. package/dist/react-sdk/responsive-state/responsive-state-manager.d.ts +111 -0
  1539. package/dist/react-sdk/responsive-state/responsive-state-manager.js +1 -0
  1540. package/dist/react-sdk/responsive-state/use-responsive-state-manager.d.ts +10 -0
  1541. package/dist/react-sdk/responsive-state/use-responsive-state-manager.js +1 -0
  1542. package/dist/react-sdk/responsive-state/use-responsive-state.d.ts +11 -0
  1543. package/dist/react-sdk/responsive-state/use-responsive-state.js +1 -0
  1544. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.d.ts +36 -0
  1545. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.js +1 -0
  1546. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.d.ts +44 -0
  1547. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.js +1 -0
  1548. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.d.ts +38 -0
  1549. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.js +1 -0
  1550. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.d.ts +30 -0
  1551. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.js +1 -0
  1552. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.d.ts +30 -0
  1553. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.js +1 -0
  1554. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.d.ts +9 -0
  1555. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.js +1 -0
  1556. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.d.ts +9 -0
  1557. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.js +1 -0
  1558. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.d.ts +10 -0
  1559. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.js +1 -0
  1560. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.d.ts +9 -0
  1561. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.js +1 -0
  1562. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.d.ts +9 -0
  1563. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.js +1 -0
  1564. package/dist/react-sdk/scene-control-elements/index.d.ts +11 -0
  1565. package/dist/react-sdk/scene-control-elements/index.js +1 -0
  1566. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.d.ts +5 -0
  1567. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.js +1 -0
  1568. package/dist/react-sdk/session/NotAuthenticatedPage.d.ts +4 -0
  1569. package/dist/react-sdk/session/NotAuthenticatedPage.js +1 -1
  1570. package/dist/ui-sdk/common/use-viewport-size.d.ts +4 -1
  1571. package/dist/ui-sdk/common/use-viewport-size.js +1 -1
  1572. package/dist/ui-sdk/icons/__generated/Lightbulb.d.ts +3 -0
  1573. package/dist/ui-sdk/icons/__generated/Lightbulb.js +1 -0
  1574. package/dist/ui-sdk/icons/__generated/XCircle.d.ts +3 -0
  1575. package/dist/ui-sdk/icons/__generated/XCircle.js +1 -0
  1576. package/dist/ui-sdk/icons/__generated/index.d.ts +4 -0
  1577. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  1578. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  1579. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +9 -0
  1580. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.js +1 -1
  1581. package/dist/ui-sdk/responsive-application/index.d.ts +1 -0
  1582. package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +57 -0
  1583. package/dist/ui-sdk/responsive-application/responsive-state-store.js +1 -0
  1584. package/dist/ui-sdk/responsive-application/use-store-responsive-info.d.ts +7 -0
  1585. package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -0
  1586. package/dist/ui-sdk/theme/types.d.ts +1 -1
  1587. package/dist/webhook/builders/common.d.ts +8 -0
  1588. package/dist/webhook/builders/webhook-builder.d.ts +1 -1
  1589. package/dist/webhook/builders/webhook-builder.js +1 -1
  1590. package/package.json +49 -37
  1591. package/schema/domain-spec.json +1201 -217
  1592. package/dist/application-spec/core/eval-to-constant.d.ts +0 -14
  1593. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  1594. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  1595. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  1596. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -90
  1597. package/dist/application-spec/generate-application/code/templates/nvmrc.d.ts +0 -1
  1598. package/dist/application-spec/generate-application/code/templates/nvmrc.js +0 -2
  1599. package/dist/application-spec/generate-application/code/templates/package-json.d.ts +0 -10
  1600. package/dist/application-spec/generate-application/code/templates/package-json.js +0 -1
  1601. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  1602. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  1603. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  1604. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  1605. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  1606. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  1607. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  1608. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  1609. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  1610. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  1611. package/dist/application-spec/generate-application/code/templates/webhook-implementation.d.ts +0 -1
  1612. package/dist/application-spec/generate-application/code/templates/webhook-implementation.js +0 -7
  1613. package/dist/configurator/assistant/index.d.ts +0 -1
  1614. package/dist/configurator/assistant/index.js +0 -1
  1615. package/dist/configurator/assistant/use-assistant-chat.d.ts +0 -30
  1616. package/dist/configurator/assistant/use-assistant-chat.js +0 -1
  1617. package/dist/configurator/common/frontend-analytics.d.ts +0 -46
  1618. package/dist/configurator/common/frontend-analytics.js +0 -1
  1619. package/dist/configurator/ui/assistant/AssistantPanelProvider.d.ts +0 -42
  1620. package/dist/configurator/ui/assistant/AssistantPanelProvider.js +0 -1
  1621. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.d.ts +0 -4
  1622. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.js +0 -1
  1623. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.d.ts +0 -4
  1624. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.js +0 -1
  1625. package/dist/domain/actions/action-factory.d.ts +0 -10
  1626. package/dist/domain/actions/prepare-action-implementations.d.ts +0 -15
  1627. package/dist/domain/actions/prepare-action-implementations.js +0 -5
  1628. package/dist/domain/application/element-registration.d.ts +0 -105
  1629. package/dist/domain/application/element-registration.js +0 -1
  1630. package/dist/domain/application/handler-registration.d.ts +0 -29
  1631. package/dist/domain/application/handler-registration.js +0 -1
  1632. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -13
  1633. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  1634. package/dist/domain/application/resource-builder.d.ts +0 -13
  1635. package/dist/domain/application/resource-builder.js +0 -1
  1636. package/dist/domain/components/component-reader-types.d.ts +0 -44
  1637. package/dist/domain/components/debug-state-component.d.ts +0 -14
  1638. package/dist/domain/components/debug-state-component.js +0 -1
  1639. package/dist/domain/components/domain-component-optic.d.ts +0 -76
  1640. package/dist/domain/components/domain-component-optic.js +0 -16
  1641. package/dist/domain/components/drag-state-component.d.ts +0 -16
  1642. package/dist/domain/components/drag-state-component.js +0 -1
  1643. package/dist/domain/components/export-state-component.d.ts +0 -15
  1644. package/dist/domain/components/export-state-component.js +0 -1
  1645. package/dist/domain/components/fullscreen-state-component.d.ts +0 -14
  1646. package/dist/domain/components/fullscreen-state-component.js +0 -1
  1647. package/dist/domain/components/group-components-by-entity-id-and-name.d.ts +0 -9
  1648. package/dist/domain/components/group-components-by-entity-id-and-name.js +0 -1
  1649. package/dist/domain/components/hover-state-component.d.ts +0 -14
  1650. package/dist/domain/components/hover-state-component.js +0 -1
  1651. package/dist/domain/components/index.d.ts +0 -2
  1652. package/dist/domain/components/index.js +0 -1
  1653. package/dist/domain/components/legacy-filter.d.ts +0 -513
  1654. package/dist/domain/components/navigation-state-component.d.ts +0 -15
  1655. package/dist/domain/components/navigation-state-component.js +0 -1
  1656. package/dist/domain/components/selection-state-component.d.ts +0 -14
  1657. package/dist/domain/components/selection-state-component.js +0 -1
  1658. package/dist/domain/components/system-component-builder.d.ts +0 -12
  1659. package/dist/domain/components/system-component-builder.js +0 -1
  1660. package/dist/domain/components/system-component-filter.d.ts +0 -793
  1661. package/dist/domain/components/system-virtual-entity.js +0 -1
  1662. package/dist/domain/components/tool-state-component.d.ts +0 -14
  1663. package/dist/domain/components/tool-state-component.js +0 -1
  1664. package/dist/domain/components/updates.d.ts +0 -108
  1665. package/dist/domain/components/view-state-component.d.ts +0 -14
  1666. package/dist/domain/components/view-state-component.js +0 -1
  1667. package/dist/domain/components/viewport-state-component.d.ts +0 -29
  1668. package/dist/domain/components/viewport-state-component.js +0 -1
  1669. package/dist/domain/core/action.d.ts +0 -67
  1670. package/dist/domain/core/component.d.ts +0 -46
  1671. package/dist/domain/core/expression.d.ts +0 -50
  1672. package/dist/domain/core/json-schema.js +0 -1
  1673. package/dist/domain/core/migrations.d.ts +0 -99
  1674. package/dist/domain/core/migrations.js +0 -1
  1675. package/dist/domain/core/model.d.ts +0 -127
  1676. package/dist/domain/core/reflection.d.ts +0 -114
  1677. package/dist/domain/core/reflection.js +0 -1
  1678. package/dist/domain/core/state.d.ts +0 -10
  1679. package/dist/domain/domain-context/recipe-system/recipes.d.ts +0 -57
  1680. package/dist/domain/domain-context/recipe-system/recipes.js +0 -1
  1681. package/dist/domain/expressions/constant-expressions.d.ts +0 -9
  1682. package/dist/domain/expressions/constant-expressions.js +0 -1
  1683. package/dist/domain/expressions/custom-expression.d.ts +0 -13
  1684. package/dist/domain/expressions/custom-expression.js +0 -1
  1685. package/dist/domain/expressions/index.d.ts +0 -1
  1686. package/dist/domain/expressions/index.js +0 -1
  1687. package/dist/domain/expressions/memoize-expression.d.ts +0 -17
  1688. package/dist/domain/expressions/prepare-domain-expressions.d.ts +0 -16
  1689. package/dist/domain/invariants/builtin-invariant.d.ts +0 -5
  1690. package/dist/domain/invariants/custom-invariants.d.ts +0 -22
  1691. package/dist/domain/invariants/custom-invariants.js +0 -1
  1692. package/dist/domain/invariants/invariants.d.ts +0 -68
  1693. package/dist/domain/invariants/invariants.js +0 -1
  1694. package/dist/domain/invariants/violation-component.js +0 -1
  1695. package/dist/domain/invariants/violation.d.ts +0 -85
  1696. package/dist/domain/invariants/violation.js +0 -1
  1697. package/dist/domain/relations/all-of-type-relation.d.ts +0 -33
  1698. package/dist/domain/relations/all-of-type-relation.js +0 -1
  1699. package/dist/domain/relations/component-factories.d.ts +0 -15
  1700. package/dist/domain/relations/component-factories.js +0 -1
  1701. package/dist/domain/relations/composed-of.d.ts +0 -12
  1702. package/dist/domain/relations/composed-of.js +0 -1
  1703. package/dist/domain/relations/direct-relation.d.ts +0 -29
  1704. package/dist/domain/relations/indirect-relation.d.ts +0 -81
  1705. package/dist/domain/relations/indirect-relation.js +0 -1
  1706. package/dist/domain/relations/reference-component.d.ts +0 -18
  1707. package/dist/domain/relations/reference-component.js +0 -1
  1708. package/dist/domain/relations/reference-field.d.ts +0 -7
  1709. package/dist/domain/relations/relation-factory.d.ts +0 -19
  1710. package/dist/domain/relations/relation-factory.js +0 -1
  1711. package/dist/domain/relations/relation-implementation.d.ts +0 -8
  1712. package/dist/domain/system-components/angle-indicator.d.ts +0 -21
  1713. package/dist/domain/system-components/angle-indicator.js +0 -1
  1714. package/dist/domain/system-components/attribute-switch.d.ts +0 -8
  1715. package/dist/domain/system-components/attribute-switch.js +0 -1
  1716. package/dist/domain/system-components/autorotate-camera-component.d.ts +0 -19
  1717. package/dist/domain/system-components/autorotate-camera-component.js +0 -1
  1718. package/dist/domain/system-components/basic-sidebar-footer.d.ts +0 -8
  1719. package/dist/domain/system-components/basic-sidebar-footer.js +0 -1
  1720. package/dist/domain/system-components/camera-based-hidden-entity-object.js +0 -1
  1721. package/dist/domain/system-components/camera-based-hidden-entity.js +0 -1
  1722. package/dist/domain/system-components/canvas-config.d.ts +0 -87
  1723. package/dist/domain/system-components/canvas-config.js +0 -1
  1724. package/dist/domain/system-components/canvas-custom-environment.js +0 -1
  1725. package/dist/domain/system-components/canvas-padding.d.ts +0 -25
  1726. package/dist/domain/system-components/canvas-padding.js +0 -1
  1727. package/dist/domain/system-components/canvas-preset-environment.d.ts +0 -37
  1728. package/dist/domain/system-components/canvas-preset-environment.js +0 -1
  1729. package/dist/domain/system-components/child-entity-recipe-hierarchy.d.ts +0 -21
  1730. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +0 -1
  1731. package/dist/domain/system-components/client-side-image.d.ts +0 -14
  1732. package/dist/domain/system-components/client-side-image.js +0 -1
  1733. package/dist/domain/system-components/color-value.js +0 -1
  1734. package/dist/domain/system-components/common/angle-indicator-schema.d.ts +0 -292
  1735. package/dist/domain/system-components/common/angle-indicator-schema.js +0 -1
  1736. package/dist/domain/system-components/common/dimension-indicator-schema.d.ts +0 -607
  1737. package/dist/domain/system-components/common/dimension-indicator-schema.js +0 -1
  1738. package/dist/domain/system-components/custom-header.d.ts +0 -11
  1739. package/dist/domain/system-components/custom-header.js +0 -1
  1740. package/dist/domain/system-components/custom-price-footer.js +0 -1
  1741. package/dist/domain/system-components/custom-sidebar-footer.d.ts +0 -11
  1742. package/dist/domain/system-components/custom-sidebar-footer.js +0 -1
  1743. package/dist/domain/system-components/dimension-indicator.d.ts +0 -31
  1744. package/dist/domain/system-components/dimension-indicator.js +0 -1
  1745. package/dist/domain/system-components/editable-angle-indicator.d.ts +0 -38
  1746. package/dist/domain/system-components/editable-angle-indicator.js +0 -1
  1747. package/dist/domain/system-components/editable-distance-dimension-indicator.d.ts +0 -42
  1748. package/dist/domain/system-components/editable-distance-dimension-indicator.js +0 -1
  1749. package/dist/domain/system-components/editable-offset-indicator.d.ts +0 -41
  1750. package/dist/domain/system-components/editable-offset-indicator.js +0 -1
  1751. package/dist/domain/system-components/editable-size-indicator.d.ts +0 -38
  1752. package/dist/domain/system-components/editable-size-indicator.js +0 -1
  1753. package/dist/domain/system-components/entity-header.d.ts +0 -22
  1754. package/dist/domain/system-components/entity-header.js +0 -1
  1755. package/dist/domain/system-components/exit-tool-mode-fab.d.ts +0 -25
  1756. package/dist/domain/system-components/exit-tool-mode-fab.js +0 -1
  1757. package/dist/domain/system-components/finalize-action.d.ts +0 -20
  1758. package/dist/domain/system-components/finalize-action.js +0 -1
  1759. package/dist/domain/system-components/finalize-component.js +0 -1
  1760. package/dist/domain/system-components/fit-selection-orthographic-camera-component.js +0 -1
  1761. package/dist/domain/system-components/fit-selection-perspective-camera-component.js +0 -1
  1762. package/dist/domain/system-components/fixed-header.d.ts +0 -10
  1763. package/dist/domain/system-components/fixed-header.js +0 -1
  1764. package/dist/domain/system-components/floating-header.d.ts +0 -10
  1765. package/dist/domain/system-components/floating-header.js +0 -1
  1766. package/dist/domain/system-components/hidden-header.d.ts +0 -8
  1767. package/dist/domain/system-components/hidden-header.js +0 -1
  1768. package/dist/domain/system-components/hidden-sidebar-footer.d.ts +0 -21
  1769. package/dist/domain/system-components/hidden-sidebar-footer.js +0 -1
  1770. package/dist/domain/system-components/horizontal-tabs.d.ts +0 -28
  1771. package/dist/domain/system-components/horizontal-tabs.js +0 -1
  1772. package/dist/domain/system-components/list-selector-dimension-indicator.d.ts +0 -30
  1773. package/dist/domain/system-components/list-selector-dimension-indicator.js +0 -1
  1774. package/dist/domain/system-components/multilingual-text-value.js +0 -1
  1775. package/dist/domain/system-components/navigation-steps.d.ts +0 -19
  1776. package/dist/domain/system-components/navigation-steps.js +0 -1
  1777. package/dist/domain/system-components/offset-anchors.d.ts +0 -20
  1778. package/dist/domain/system-components/offset-anchors.js +0 -1
  1779. package/dist/domain/system-components/offset-indicator.d.ts +0 -84
  1780. package/dist/domain/system-components/offset-indicator.js +0 -1
  1781. package/dist/domain/system-components/offset.d.ts +0 -31
  1782. package/dist/domain/system-components/offset.js +0 -1
  1783. package/dist/domain/system-components/other-action.d.ts +0 -14
  1784. package/dist/domain/system-components/other-action.js +0 -1
  1785. package/dist/domain/system-components/property-page.d.ts +0 -16
  1786. package/dist/domain/system-components/property-page.js +0 -1
  1787. package/dist/domain/system-components/read-sidebar-footer.d.ts +0 -8
  1788. package/dist/domain/system-components/read-sidebar-footer.js +0 -1
  1789. package/dist/domain/system-components/replace-entity-recipe-hierarchy.d.ts +0 -21
  1790. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +0 -1
  1791. package/dist/domain/system-components/rotatable.js +0 -1
  1792. package/dist/domain/system-components/rotation-handle.d.ts +0 -53
  1793. package/dist/domain/system-components/rotation-handle.js +0 -1
  1794. package/dist/domain/system-components/save-template-thumbnail.d.ts +0 -14
  1795. package/dist/domain/system-components/save-template-thumbnail.js +0 -1
  1796. package/dist/domain/system-components/scene-entity-add-fab.d.ts +0 -32
  1797. package/dist/domain/system-components/scene-entity-add-fab.js +0 -1
  1798. package/dist/domain/system-components/scene-entity-animation.js +0 -1
  1799. package/dist/domain/system-components/scene-entity-control.js +0 -1
  1800. package/dist/domain/system-components/scene-entity-delete-fab.d.ts +0 -19
  1801. package/dist/domain/system-components/scene-entity-delete-fab.js +0 -1
  1802. package/dist/domain/system-components/scene-entity-floor-object.js +0 -1
  1803. package/dist/domain/system-components/scene-entity-html-hotspot.d.ts +0 -27
  1804. package/dist/domain/system-components/scene-entity-html-hotspot.js +0 -1
  1805. package/dist/domain/system-components/scene-entity-navigation-hotspot.d.ts +0 -20
  1806. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +0 -1
  1807. package/dist/domain/system-components/scene-entity-object-html-hotspot.d.ts +0 -31
  1808. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +0 -1
  1809. package/dist/domain/system-components/scene-entity-select-hotspot.d.ts +0 -5
  1810. package/dist/domain/system-components/scene-entity-select-hotspot.js +0 -1
  1811. package/dist/domain/system-components/scene-entity-wall-object.js +0 -1
  1812. package/dist/domain/system-components/selectable-component.js +0 -1
  1813. package/dist/domain/system-components/sidebar-tabs.d.ts +0 -29
  1814. package/dist/domain/system-components/sidebar-tabs.js +0 -1
  1815. package/dist/domain/system-components/simple-summary.js +0 -1
  1816. package/dist/domain/system-components/size.d.ts +0 -21
  1817. package/dist/domain/system-components/size.js +0 -1
  1818. package/dist/domain/system-components/sketching-draw.d.ts +0 -17
  1819. package/dist/domain/system-components/sketching-draw.js +0 -1
  1820. package/dist/domain/system-components/sketching-edit.d.ts +0 -28
  1821. package/dist/domain/system-components/sketching-edit.js +0 -1
  1822. package/dist/domain/system-components/summary-component.js +0 -1
  1823. package/dist/domain/system-components/text-value.js +0 -1
  1824. package/dist/domain/system-components/tool-controls.js +0 -1
  1825. package/dist/domain/system-components/tool-menu-fab.d.ts +0 -40
  1826. package/dist/domain/system-components/tool-menu-fab.js +0 -1
  1827. package/dist/domain/system-components/toolbar.d.ts +0 -13
  1828. package/dist/domain/system-components/toolbar.js +0 -1
  1829. package/dist/domain/system-components/universal-sidebar-footer.d.ts +0 -12
  1830. package/dist/domain/system-components/universal-sidebar-footer.js +0 -1
  1831. package/dist/domain/system-components/view-controls.js +0 -1
  1832. package/dist/phoenix/application-spec/generate-assistant-prompt.d.ts +0 -12
  1833. package/dist/phoenix/application-spec/generate-assistant-prompt.js +0 -1
  1834. package/dist/phoenix/commands/generate-project-files.d.ts +0 -6
  1835. package/dist/phoenix/commands/generate-project-files.js +0 -1
  1836. /package/dist/{domain/components/component-reader-types.js → application-spec/core/expressions/relation-expression-params.js} +0 -0
  1837. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  1838. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  1839. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
  1840. /package/dist/{domain/core/action.js → application-spec/generate-application/runtime/spec-code/spec-code-module.js} +0 -0
  1841. /package/dist/{domain/core/enhanced-json-schema.js → application-spec/parse-application-files/spec/expressions/expression-read.js} +0 -0
  1842. /package/dist/{domain/core/schema-validator.js → configurator/ui/assistant/form/form-element-definition.js} +0 -0
  1843. /package/dist/{domain/relations/reference-field.js → configurator/ui/assistant/form/form-model.js} +0 -0
  1844. /package/dist/{domain/relations/relation-implementation.js → configurator/ui/assistant/form/form-state.js} +0 -0
  1845. /package/dist/{domain/core/expression.js → configurator/ui/assistant/form-elements/form-element-props.js} +0 -0
  1846. /package/dist/domain/{actions → core/action}/action-factory.js +0 -0
  1847. /package/dist/domain/{components → core/component}/legacy-filter.js +0 -0
  1848. /package/dist/domain/{components → core/component}/system-component-filter.js +0 -0
  1849. /package/dist/domain/{components → core/component}/system-virtual-entity.d.ts +0 -0
  1850. /package/dist/domain/{components → core/component}/updates.js +0 -0
  1851. /package/dist/domain/{invariants → core/invariant}/builtin-invariant.js +0 -0
  1852. /package/dist/domain/{invariants → core/invariant}/violation-component.d.ts +0 -0
  1853. /package/dist/domain/core/{alias.d.ts → model/alias.d.ts} +0 -0
  1854. /package/dist/domain/core/{alias.js → model/alias.js} +0 -0
  1855. /package/dist/domain/core/{common-definitions.d.ts → model/common-definitions.d.ts} +0 -0
  1856. /package/dist/domain/core/{common-definitions.js → model/common-definitions.js} +0 -0
  1857. /package/dist/domain/core/{component.js → model/component.js} +0 -0
  1858. /package/dist/domain/core/{model.js → model/model.js} +0 -0
  1859. /package/dist/domain/core/{preset.d.ts → model/preset.d.ts} +0 -0
  1860. /package/dist/domain/core/{preset.js → model/preset.js} +0 -0
  1861. /package/dist/domain/{relations → core/relation}/direct-relation.js +0 -0
  1862. /package/dist/domain/core/{schema-validator-ajv.d.ts → schema/create-ajv-schema-validator.d.ts} +0 -0
  1863. /package/dist/domain/core/{schema-validator-ajv.js → schema/create-ajv-schema-validator.js} +0 -0
  1864. /package/dist/domain/core/{schema-validator-csp.d.ts → schema/create-csp-schema-validator.d.ts} +0 -0
  1865. /package/dist/domain/core/{schema-validator-csp.js → schema/create-csp-schema-validator.js} +0 -0
  1866. /package/dist/domain/core/{enhanced-json-schema.d.ts → schema/enhanced-json-schema.d.ts} +0 -0
  1867. /package/dist/domain/core/{json-schema.d.ts → schema/extended-schema-validator.d.ts} +0 -0
  1868. /package/dist/domain/core/{schema-validator.d.ts → schema/schema-validator.d.ts} +0 -0
  1869. /package/dist/domain/core/{state.js → state/state.js} +0 -0
  1870. /package/dist/domain/{expressions → domain-runtime/spec}/memoize-expression.js +0 -0
  1871. /package/dist/domain/{expressions → domain-runtime/spec}/prepare-domain-expressions.js +0 -0
  1872. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.d.ts +0 -0
  1873. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.d.ts +0 -0
  1874. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.d.ts +0 -0
  1875. /package/dist/domain/{system-components → extensions}/color-value.d.ts +0 -0
  1876. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.d.ts +0 -0
  1877. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.js +0 -0
  1878. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.d.ts +0 -0
  1879. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.js +0 -0
  1880. /package/dist/domain/{system-components → extensions}/custom-price-footer.d.ts +0 -0
  1881. /package/dist/domain/{system-components → extensions}/finalize-component.d.ts +0 -0
  1882. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.d.ts +0 -0
  1883. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.d.ts +0 -0
  1884. /package/dist/domain/{system-components → extensions}/multilingual-text-value.d.ts +0 -0
  1885. /package/dist/domain/{system-components → extensions}/rotatable.d.ts +0 -0
  1886. /package/dist/domain/{system-components → extensions}/scene-entity-animation.d.ts +0 -0
  1887. /package/dist/domain/{system-components → extensions}/scene-entity-control.d.ts +0 -0
  1888. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.d.ts +0 -0
  1889. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.d.ts +0 -0
  1890. /package/dist/domain/{system-components → extensions}/selectable-component.d.ts +0 -0
  1891. /package/dist/domain/{system-components → extensions}/simple-summary.d.ts +0 -0
  1892. /package/dist/domain/{system-components → extensions}/summary-component.d.ts +0 -0
  1893. /package/dist/domain/{system-components → extensions}/text-value.d.ts +0 -0
  1894. /package/dist/domain/{system-components → extensions}/tool-controls.d.ts +0 -0
  1895. /package/dist/domain/{system-components → extensions}/view-controls.d.ts +0 -0
@@ -1 +1 @@
1
- import{observable as e}from"@trpc/server/observable";import{writeFile as t}from"fs/promises";import{resolve as r}from"path";import{filter as s,firstValueFrom as o,timeout as n}from"rxjs";import{z as u}from"zod";import{LOG_STREAMS as i}from"../services/log-bus.js";import{publicProcedure as a,router as b}from"./trpc.js";let c=u.enum(["all",...i]);export const commandsRouter=b({getLogs:a.input(u.object({stream:c,beforeSeq:u.number().int().positive().optional(),limit:u.number().int().positive().max(500).default(200)})).query(({input:e,ctx:t})=>{if(!t.logBus)return{entries:[],hasMore:!1,counts:null};let r=t.logBus.query(e);return{entries:r.entries,hasMore:r.hasMore,counts:t.logBus.allCounts()}}),onLog:a.subscription(({ctx:t})=>e(e=>t.logBus?t.logBus.subscribe(t=>{e.next(t)}):()=>{})),getTunnelState:a.query(({ctx:e})=>e.tunnelMonitor?{state:e.tunnelMonitor.state(),entries:e.tunnelMonitor.summaries()}:{state:null,entries:[]}),getTunnelRequest:a.input(u.object({seq:u.number().int().positive()})).query(({ctx:e,input:t})=>e.tunnelMonitor?.entry(t.seq)??null),onTunnelEvent:a.subscription(({ctx:t})=>e(e=>t.tunnelMonitor?t.tunnelMonitor.subscribe(t=>{e.next(t)}):()=>{})),takeScreenshot:a.input(u.object({width:u.number().int().positive(),height:u.number().int().positive(),fileFormat:u.enum(["PNG","JPEG"]),output:u.string()})).mutation(async({input:e,ctx:u})=>{let i;if(0===u.pubsub.screenshotRequest$.observers.length)throw Error("No editor connected. Open the configurator in a browser");let a=crypto.randomUUID(),b=o(u.pubsub.screenshotResult$.pipe(s(e=>e.requestId===a),n(3e4)));u.pubsub.screenshotRequest$.next({requestId:a,width:e.width,height:e.height,fileFormat:e.fileFormat});try{i=await b}catch{throw Error("Screenshot timed out. Ensure configurator is fully loaded")}let c=r(e.output),l=Buffer.from(i.imageBase64,"base64");try{await t(c,l)}catch(e){throw Error(`Failed to save screenshot: ${e instanceof Error?e.message:String(e)}`)}return{filePath:c}}),onScreenshotRequest:a.subscription(({ctx:t})=>e(e=>{let r=t.pubsub.screenshotRequest$.subscribe({next:r=>{t.logger.debug(`Emitting screenshot request to subscriber: ${r.requestId}`),e.next(r)},error:r=>{t.logger.error(`Screenshot request subject error: ${r instanceof Error?r.message:String(r)}`),e.error(r)}});return()=>{t.logger.debug("Screenshot request subscription unsubscribed"),r.unsubscribe()}})),submitScreenshot:a.input(u.object({requestId:u.string(),imageBase64:u.string(),fileFormat:u.enum(["PNG","JPEG"])})).mutation(({input:e,ctx:t})=>{t.logger.debug(`Received screenshot result for request: ${e.requestId}`),t.pubsub.screenshotResult$.next({requestId:e.requestId,imageBase64:e.imageBase64,fileFormat:e.fileFormat})}),reportBrowserConsole:a.input(u.object({level:u.enum(["error","warn","info"]),message:u.string(),source:u.string().optional(),timestamp:u.string().optional()})).mutation(({input:e,ctx:t})=>{if(!t.logBus){let r=e.source?`browser:${e.source}`:"browser";t.logger.warn(`[${r}] ${e.message}`)}t.pubsub.browserConsole$.next({level:e.level,message:e.message,source:e.source,timestamp:e.timestamp})}),onBrowserConsole:a.subscription(({ctx:t})=>e(e=>{let r=t.pubsub.browserConsole$.subscribe({next:t=>{e.next(t)},error:r=>{t.logger.error(`Browser console subject error: ${r instanceof Error?r.message:String(r)}`),e.error(r)}});return()=>{r.unsubscribe()}})),getEditorState:a.input(u.object({sections:u.array(u.enum(["entities","navigation","validation"])).optional()})).mutation(async({input:e,ctx:t})=>{let r;if(0===t.pubsub.stateRequest$.observers.length)throw Error("No editor connected. Open the configurator in a browser");let u=crypto.randomUUID(),i=e.sections??["entities","navigation","validation"],a=o(t.pubsub.stateResult$.pipe(s(e=>e.requestId===u),n(1e4)));t.pubsub.stateRequest$.next({requestId:u,sections:i});try{r=await a}catch{throw Error("State request timed out. Ensure configurator is fully loaded")}return r.state}),onStateRequest:a.subscription(({ctx:t})=>e(e=>{let r=t.pubsub.stateRequest$.subscribe({next:r=>{t.logger.debug(`Emitting state request to subscriber: ${r.requestId}`),e.next(r)},error:r=>{t.logger.error(`State request subject error: ${r instanceof Error?r.message:String(r)}`),e.error(r)}});return()=>{t.logger.debug("State request subscription unsubscribed"),r.unsubscribe()}})),submitEditorState:a.input(u.object({requestId:u.string(),state:u.object({lifecycle:u.object({domainLoaded:u.boolean(),domainContextReady:u.boolean(),configuratorReady:u.boolean(),sessionAuthenticated:u.boolean(),editorMode:u.boolean()}),entities:u.array(u.record(u.unknown())).nullable(),navigation:u.record(u.unknown()).nullable(),validation:u.record(u.unknown()).nullable()})})).mutation(({input:e,ctx:t})=>{t.logger.debug(`Received editor state for request: ${e.requestId}`),t.pubsub.stateResult$.next({requestId:e.requestId,state:e.state})}),getEditorData:a.mutation(async({ctx:e})=>{let t;if(0===e.pubsub.dataRequest$.observers.length)throw Error("No editor connected. Open the configurator in a browser");let r=crypto.randomUUID(),u=o(e.pubsub.dataResult$.pipe(s(e=>e.requestId===r),n(1e4)));e.pubsub.dataRequest$.next({requestId:r});try{t=await u}catch{throw Error("Data request timed out. Ensure configurator is fully loaded")}return t.data}),onDataRequest:a.subscription(({ctx:t})=>e(e=>{let r=t.pubsub.dataRequest$.subscribe({next:r=>{t.logger.debug(`Emitting data request to subscriber: ${r.requestId}`),e.next(r)},error:r=>{t.logger.error(`Data request subject error: ${r instanceof Error?r.message:String(r)}`),e.error(r)}});return()=>{t.logger.debug("Data request subscription unsubscribed"),r.unsubscribe()}})),submitEditorData:a.input(u.object({requestId:u.string(),data:u.object({publishedData:u.record(u.unknown()).nullable(),frontendData:u.record(u.unknown()).nullable(),backendData:u.record(u.unknown()).nullable(),sessionData:u.record(u.unknown()).nullable(),accessData:u.record(u.unknown()).nullable(),webComponentProperties:u.record(u.unknown()).nullable()})})).mutation(({input:e,ctx:t})=>{t.logger.debug(`Received editor data for request: ${e.requestId}`),t.pubsub.dataResult$.next({requestId:e.requestId,data:e.data})}),getEditorScene:a.mutation(async({ctx:e})=>{let t;if(0===e.pubsub.sceneRequest$.observers.length)throw Error("No editor connected. Open the configurator in a browser");let r=crypto.randomUUID(),u=o(e.pubsub.sceneResult$.pipe(s(e=>e.requestId===r),n(1e4)));e.pubsub.sceneRequest$.next({requestId:r});try{t=await u}catch{throw Error("Scene request timed out. Ensure configurator is fully loaded")}return t.scene}),onSceneRequest:a.subscription(({ctx:t})=>e(e=>{let r=t.pubsub.sceneRequest$.subscribe({next:r=>{t.logger.debug(`Emitting scene request to subscriber: ${r.requestId}`),e.next(r)},error:r=>{t.logger.error(`Scene request subject error: ${r instanceof Error?r.message:String(r)}`),e.error(r)}});return()=>{t.logger.debug("Scene request subscription unsubscribed"),r.unsubscribe()}})),submitEditorScene:a.input(u.object({requestId:u.string(),scene:u.record(u.unknown()).nullable()})).mutation(({input:e,ctx:t})=>{t.logger.debug(`Received editor scene for request: ${e.requestId}`),t.pubsub.sceneResult$.next({requestId:e.requestId,scene:e.scene})})});
1
+ import{observable as e}from"@trpc/server/observable";import{writeFile as t}from"fs/promises";import{resolve as r}from"path";import{filter as s,firstValueFrom as n,timeout as o}from"rxjs";import{z as i}from"zod";import{LOG_STREAMS as u}from"../services/log-bus.js";import{publicProcedure as a,router as l}from"./trpc.js";let b=i.enum(["all",...u]),c=e=>{if(!e.variantPreviews)throw Error("Cannot preview variants: this session cannot rewrite project files, because it is not `phoenix dev`. Run `phoenix dev` in the project and try again");return e.variantPreviews};export const commandsRouter=l({getLogs:a.input(i.object({stream:b,beforeSeq:i.number().int().positive().optional(),limit:i.number().int().positive().max(500).default(200)})).query(({input:e,ctx:t})=>{if(!t.logBus)return{entries:[],hasMore:!1,counts:null};let r=t.logBus.query(e);return{entries:r.entries,hasMore:r.hasMore,counts:t.logBus.allCounts()}}),onLog:a.subscription(({ctx:t})=>e(e=>t.logBus?t.logBus.subscribe(t=>{e.next(t)}):()=>{})),getTunnelState:a.query(({ctx:e})=>e.tunnelMonitor?{state:e.tunnelMonitor.state(),entries:e.tunnelMonitor.summaries()}:{state:null,entries:[]}),getTunnelRequest:a.input(i.object({seq:i.number().int().positive()})).query(({ctx:e,input:t})=>e.tunnelMonitor?.entry(t.seq)??null),onTunnelEvent:a.subscription(({ctx:t})=>e(e=>t.tunnelMonitor?t.tunnelMonitor.subscribe(t=>{e.next(t)}):()=>{})),takeScreenshot:a.input(i.object({width:i.number().int().positive(),height:i.number().int().positive(),fileFormat:i.enum(["PNG","JPEG"]),output:i.string()})).mutation(async({input:e,ctx:i})=>{let u;if(0===i.pubsub.screenshotRequest$.observers.length)throw Error("No editor connected. Open the configurator in a browser");let a=crypto.randomUUID(),l=n(i.pubsub.screenshotResult$.pipe(s(e=>e.requestId===a),o(3e4)));i.pubsub.screenshotRequest$.next({requestId:a,width:e.width,height:e.height,fileFormat:e.fileFormat});try{u=await l}catch{throw Error("Screenshot timed out. Ensure configurator is fully loaded")}let b=r(e.output),c=Buffer.from(u.imageBase64,"base64");try{await t(b,c)}catch(e){throw Error(`Failed to save screenshot: ${e instanceof Error?e.message:String(e)}`)}return{filePath:b}}),onScreenshotRequest:a.subscription(({ctx:t})=>e(e=>{let r=t.pubsub.screenshotRequest$.subscribe({next:r=>{t.logger.debug(`Emitting screenshot request to subscriber: ${r.requestId}`),e.next(r)},error:r=>{t.logger.error(`Screenshot request subject error: ${r instanceof Error?r.message:String(r)}`),e.error(r)}});return()=>{t.logger.debug("Screenshot request subscription unsubscribed"),r.unsubscribe()}})),submitScreenshot:a.input(i.object({requestId:i.string(),imageBase64:i.string(),fileFormat:i.enum(["PNG","JPEG"])})).mutation(({input:e,ctx:t})=>{t.logger.debug(`Received screenshot result for request: ${e.requestId}`),t.pubsub.screenshotResult$.next({requestId:e.requestId,imageBase64:e.imageBase64,fileFormat:e.fileFormat})}),reportBrowserConsole:a.input(i.object({level:i.enum(["error","warn","info"]),message:i.string(),source:i.string().optional(),timestamp:i.string().optional()})).mutation(({input:e,ctx:t})=>{if(!t.logBus){let r=e.source?`browser:${e.source}`:"browser";t.logger.warn(`[${r}] ${e.message}`)}t.pubsub.browserConsole$.next({level:e.level,message:e.message,source:e.source,timestamp:e.timestamp})}),onBrowserConsole:a.subscription(({ctx:t})=>e(e=>{let r=t.pubsub.browserConsole$.subscribe({next:t=>{e.next(t)},error:r=>{t.logger.error(`Browser console subject error: ${r instanceof Error?r.message:String(r)}`),e.error(r)}});return()=>{r.unsubscribe()}})),getEditorState:a.input(i.object({sections:i.array(i.enum(["entities","navigation","validation"])).optional()})).mutation(async({input:e,ctx:t})=>{let r;if(0===t.pubsub.stateRequest$.observers.length)throw Error("No editor connected. Open the configurator in a browser");let i=crypto.randomUUID(),u=e.sections??["entities","navigation","validation"],a=n(t.pubsub.stateResult$.pipe(s(e=>e.requestId===i),o(1e4)));t.pubsub.stateRequest$.next({requestId:i,sections:u});try{r=await a}catch{throw Error("State request timed out. Ensure configurator is fully loaded")}return r.state}),onStateRequest:a.subscription(({ctx:t})=>e(e=>{let r=t.pubsub.stateRequest$.subscribe({next:r=>{t.logger.debug(`Emitting state request to subscriber: ${r.requestId}`),e.next(r)},error:r=>{t.logger.error(`State request subject error: ${r instanceof Error?r.message:String(r)}`),e.error(r)}});return()=>{t.logger.debug("State request subscription unsubscribed"),r.unsubscribe()}})),submitEditorState:a.input(i.object({requestId:i.string(),state:i.object({lifecycle:i.object({domainLoaded:i.boolean(),domainContextReady:i.boolean(),configuratorReady:i.boolean(),sessionAuthenticated:i.boolean(),editorMode:i.boolean()}),entities:i.array(i.record(i.unknown())).nullable(),navigation:i.record(i.unknown()).nullable(),validation:i.record(i.unknown()).nullable()})})).mutation(({input:e,ctx:t})=>{t.logger.debug(`Received editor state for request: ${e.requestId}`),t.pubsub.stateResult$.next({requestId:e.requestId,state:e.state})}),getEditorData:a.mutation(async({ctx:e})=>{let t;if(0===e.pubsub.dataRequest$.observers.length)throw Error("No editor connected. Open the configurator in a browser");let r=crypto.randomUUID(),i=n(e.pubsub.dataResult$.pipe(s(e=>e.requestId===r),o(1e4)));e.pubsub.dataRequest$.next({requestId:r});try{t=await i}catch{throw Error("Data request timed out. Ensure configurator is fully loaded")}return t.data}),onDataRequest:a.subscription(({ctx:t})=>e(e=>{let r=t.pubsub.dataRequest$.subscribe({next:r=>{t.logger.debug(`Emitting data request to subscriber: ${r.requestId}`),e.next(r)},error:r=>{t.logger.error(`Data request subject error: ${r instanceof Error?r.message:String(r)}`),e.error(r)}});return()=>{t.logger.debug("Data request subscription unsubscribed"),r.unsubscribe()}})),submitEditorData:a.input(i.object({requestId:i.string(),data:i.object({publishedData:i.record(i.unknown()).nullable(),frontendData:i.record(i.unknown()).nullable(),backendData:i.record(i.unknown()).nullable(),sessionData:i.record(i.unknown()).nullable(),accessData:i.record(i.unknown()).nullable(),webComponentProperties:i.record(i.unknown()).nullable()})})).mutation(({input:e,ctx:t})=>{t.logger.debug(`Received editor data for request: ${e.requestId}`),t.pubsub.dataResult$.next({requestId:e.requestId,data:e.data})}),getEditorScene:a.mutation(async({ctx:e})=>{let t;if(0===e.pubsub.sceneRequest$.observers.length)throw Error("No editor connected. Open the configurator in a browser");let r=crypto.randomUUID(),i=n(e.pubsub.sceneResult$.pipe(s(e=>e.requestId===r),o(1e4)));e.pubsub.sceneRequest$.next({requestId:r});try{t=await i}catch{throw Error("Scene request timed out. Ensure configurator is fully loaded")}return t.scene}),onSceneRequest:a.subscription(({ctx:t})=>e(e=>{let r=t.pubsub.sceneRequest$.subscribe({next:r=>{t.logger.debug(`Emitting scene request to subscriber: ${r.requestId}`),e.next(r)},error:r=>{t.logger.error(`Scene request subject error: ${r instanceof Error?r.message:String(r)}`),e.error(r)}});return()=>{t.logger.debug("Scene request subscription unsubscribed"),r.unsubscribe()}})),submitEditorScene:a.input(i.object({requestId:i.string(),scene:i.record(i.unknown()).nullable()})).mutation(({input:e,ctx:t})=>{t.logger.debug(`Received editor scene for request: ${e.requestId}`),t.pubsub.sceneResult$.next({requestId:e.requestId,scene:e.scene})}),previewVariants:a.input(i.object({title:i.string(),description:i.string(),variants:i.array(i.object({id:i.string(),kind:i.enum(["script","page"]),label:i.string(),description:i.string(),url:i.string().refine(e=>{try{let t=decodeURIComponent(new URL(e,"http://variant.invalid").pathname);return e.startsWith("/variants/")&&t.startsWith("/variants/")&&!t.includes("\\")&&!t.split("/").some(e=>"."===e||".."===e)}catch{return!1}},"Option URLs must stay below /variants/; use a file from the variant set")})).min(1),timeoutMs:i.number().int().positive().max(0x7fffffff)})).mutation(({input:e,ctx:t})=>c(t).open(e)),onVariantPreview:a.subscription(({ctx:t})=>e(e=>{let r=t.variantPreviews;if(!r)return e.next(null),()=>void 0;let s=r.request$.subscribe(t=>{e.next(t)});return()=>{s.unsubscribe()}})),getVariantBaseline:a.input(i.object({requestId:i.string()})).query(({input:e,ctx:t})=>c(t).getBaseline(e.requestId)),applyVariantFiles:a.input(i.object({requestId:i.string(),choice:i.string().nullable(),files:i.array(i.object({fileName:i.string(),content:i.string().nullable()}))})).mutation(({input:e,ctx:t})=>c(t).applyFiles(e)),submitVariantChoice:a.input(i.object({requestId:i.string(),choice:i.string().nullable()})).mutation(({input:e,ctx:t})=>c(t).submit(e)),closeVariantPreview:a.mutation(({ctx:e})=>e.variantPreviews?.close()??Promise.resolve({closed:!1})),claimVariantChoice:a.input(i.object({requestId:i.string()})).mutation(({input:e,ctx:t})=>{t.variantPreviews?.claim(e.requestId)})});
@@ -165,6 +165,71 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
165
165
  output: void;
166
166
  meta: object;
167
167
  }>;
168
+ previewVariants: import("@trpc/server").TRPCMutationProcedure<{
169
+ input: {
170
+ title: string;
171
+ description: string;
172
+ variants: {
173
+ id: string;
174
+ kind: "page" | "script";
175
+ label: string;
176
+ description: string;
177
+ url: string;
178
+ }[];
179
+ timeoutMs: number;
180
+ };
181
+ output: import("../services/variant-preview-service.js").VariantPreviewOutcome;
182
+ meta: object;
183
+ }>;
184
+ onVariantPreview: import("@trpc/server/unstable-core-do-not-import").LegacyObservableSubscriptionProcedure<{
185
+ input: void;
186
+ output: import("./protocol.js").VariantPreviewRequest | null;
187
+ meta: object;
188
+ }>;
189
+ getVariantBaseline: import("@trpc/server").TRPCQueryProcedure<{
190
+ input: {
191
+ requestId: string;
192
+ };
193
+ output: {
194
+ readonly files: readonly import("../services/variant-file-session.js").VariantFileEdit[];
195
+ readonly choice: string | null;
196
+ };
197
+ meta: object;
198
+ }>;
199
+ applyVariantFiles: import("@trpc/server").TRPCMutationProcedure<{
200
+ input: {
201
+ requestId: string;
202
+ choice: string | null;
203
+ files: {
204
+ fileName: string;
205
+ content: string | null;
206
+ }[];
207
+ };
208
+ output: void;
209
+ meta: object;
210
+ }>;
211
+ submitVariantChoice: import("@trpc/server").TRPCMutationProcedure<{
212
+ input: {
213
+ requestId: string;
214
+ choice: string | null;
215
+ };
216
+ output: void;
217
+ meta: object;
218
+ }>;
219
+ closeVariantPreview: import("@trpc/server").TRPCMutationProcedure<{
220
+ input: void;
221
+ output: {
222
+ readonly closed: boolean;
223
+ };
224
+ meta: object;
225
+ }>;
226
+ claimVariantChoice: import("@trpc/server").TRPCMutationProcedure<{
227
+ input: {
228
+ requestId: string;
229
+ };
230
+ output: void;
231
+ meta: object;
232
+ }>;
168
233
  }> & import("@trpc/server").TRPCDecorateCreateRouterOptions<{
169
234
  saveMock: import("@trpc/server").TRPCMutationProcedure<{
170
235
  input: {
@@ -1,11 +1,11 @@
1
1
  import type { LogBus } from '../services/log-bus.js';
2
- import type { PhoenixPubSub } from '../services/phoenix-pubsub.js';
2
+ import type { PhoenixApplication } from '../services/phoenix-application.js';
3
3
  import type { WebhookTunnelMonitor } from '../services/webhook-tunnel-monitor.js';
4
4
  import type { Logger } from '../utils/index.js';
5
5
  export interface EditorServerOptions {
6
6
  readonly port: number;
7
7
  readonly projectRoot: string;
8
- readonly pubsub: PhoenixPubSub;
8
+ readonly application: PhoenixApplication;
9
9
  readonly logger: Logger;
10
10
  readonly debug?: boolean;
11
11
  /** Bound to this dev session; absent for offline and story sessions. */
@@ -14,7 +14,7 @@ export interface EditorServerOptions {
14
14
  readonly logBus?: LogBus;
15
15
  readonly tunnelMonitor?: WebhookTunnelMonitor;
16
16
  }
17
- export declare const startEditorServer: ({ port, projectRoot, pubsub, logger, prepareDeployment, storyMode, logBus, tunnelMonitor, }: EditorServerOptions) => {
17
+ export declare const startEditorServer: ({ port, projectRoot, application, logger, prepareDeployment, storyMode, logBus, tunnelMonitor, }: EditorServerOptions) => {
18
18
  ready: Promise<void>;
19
19
  close: () => Promise<void>;
20
20
  };
@@ -1 +1 @@
1
- import{applyWSSHandler as e}from"@trpc/server/adapters/ws";import{WebSocketServer as o}from"ws";import{appRouter as r}from"./editor-router.js";export const startEditorServer=({port:n,projectRoot:t,pubsub:i,logger:s,prepareDeployment:c,storyMode:l,logBus:a,tunnelMonitor:f})=>{let m=new o({port:n}),d=e({wss:m,router:r,createContext:()=>({projectRoot:t,pubsub:i,logger:s,prepareDeployment:c,storyMode:l,logBus:a,tunnelMonitor:f})});m.on("connection",(e,o)=>{let r=o.headers.origin??"unknown";s.info(`WS connected (clients: ${m.clients.size}, origin: ${r})`),e.on("error",e=>{s.warn(`WS error: ${e.message}`)}),e.once("close",(e,o)=>{s.info(`WS disconnected (clients: ${m.clients.size}, code: ${e}, reason: ${o.toString()||"none"})`)})}),m.on("error",e=>{s.error(`WebSocket server error: ${e.message}`)});let S=new Promise((e,o)=>{let r=()=>{m.off("error",t),s.info(`WebSocket Server listening on ws://localhost:${n}`),e()},t=e=>{m.off("listening",r),o(e)};m.once("listening",r),m.once("error",t)}),g=null;return{ready:S,close:()=>g||(s.info("Shutting down WebSocket server"),d.broadcastReconnectNotification(),g=new Promise((e,o)=>{let r=setTimeout(()=>{for(let e of m.clients)e.terminate()},3e3);m.close(n=>{clearTimeout(r),n?o(n):e()})}))}};
1
+ import{applyWSSHandler as e}from"@trpc/server/adapters/ws";import{WebSocketServer as r}from"ws";import{appRouter as o}from"./editor-router.js";export const startEditorServer=({port:n,projectRoot:t,application:i,logger:s,prepareDeployment:c,storyMode:l,logBus:a,tunnelMonitor:f})=>{let m=new r({port:n}),u=e({wss:m,router:o,createContext:()=>({projectRoot:t,pubsub:i.pubsub,variantPreviews:i.variantPreviews,logger:s,prepareDeployment:c,storyMode:l,logBus:a,tunnelMonitor:f})});m.on("connection",(e,r)=>{let o=r.headers.origin??"unknown";s.info(`WS connected (clients: ${m.clients.size}, origin: ${o})`),e.on("error",e=>{s.warn(`WS error: ${e.message}`)}),e.once("close",(e,r)=>{s.info(`WS disconnected (clients: ${m.clients.size}, code: ${e}, reason: ${r.toString()||"none"})`)})}),m.on("error",e=>{s.error(`WebSocket server error: ${e.message}`)});let w=new Promise((e,r)=>{let o=()=>{m.off("error",t),s.info(`WebSocket Server listening on ws://localhost:${n}`),e()},t=e=>{m.off("listening",o),r(e)};m.once("listening",o),m.once("error",t)}),d=null;return{ready:w,close:()=>d||(s.info("Shutting down WebSocket server"),u.broadcastReconnectNotification(),d=new Promise((e,r)=>{let o=setTimeout(()=>{for(let e of m.clients)e.terminate()},3e3);m.close(n=>{clearTimeout(o),n?r(n):e()})}))}};
@@ -1,3 +1,4 @@
1
1
  /** Internal browser/editor protocol. This entry has no runtime package mapping. */
2
2
  export type { AppRouter } from './editor-router.js';
3
3
  export type { DataRequest, EditorContextData, SceneRequest, EditorLifecycleStatus, StateRequest, ScreenshotRequest, } from '../services/phoenix-pubsub.js';
4
+ export type { VariantPreviewOption, VariantPreviewRequest } from '../services/phoenix-store.js';
@@ -1 +1 @@
1
- import{TRPCError as e}from"@trpc/server";import{observable as o}from"@trpc/server/observable";import{writeFile as t}from"fs/promises";import{join as r}from"path";import{z as i}from"zod";import{readApplicationFiles as p}from"../application-spec/index.js";import{exists as s}from"../utils/index.js";import{publicProcedure as n,router as a}from"./trpc.js";export const specRouter=a({getEditorConfig:n.query(()=>({specSync:!0})),prepareDeployment:n.mutation(async({ctx:o})=>{if(o.storyMode)throw new e({code:"BAD_REQUEST",message:"Deployment preparation is disabled in Storybook story mode."});if(!o.prepareDeployment)throw new e({code:"BAD_REQUEST",message:"Deployment preparation requires a deployment configuration outside story mode."});await o.prepareDeployment()}),requestSpecFiles:n.mutation(async({ctx:e})=>{let o=e.storyMode?await p({projectRoot:e.projectRoot,envs:{}}):await p();e.pubsub.specFile$.next({rawProjectFiles:o,projectRoot:e.projectRoot})}),save:n.input(i.array(i.object({fileName:i.string(),content:i.string()}))).mutation(async({ctx:e,input:o})=>{for(let i of o){let o=r(e.projectRoot,i.fileName),p=r(e.projectRoot,i.fileName.split("/").slice(0,-1).join("/"));await s(p)&&await t(o,i.content)}}),onSpecChange:n.subscription(({ctx:e})=>o(o=>{let t=e.pubsub.specFile$.subscribe(e=>{o.next(e)});return()=>{t.unsubscribe()}}))});
1
+ import{TRPCError as e}from"@trpc/server";import{observable as o}from"@trpc/server/observable";import{writeFile as t}from"fs/promises";import{join as r}from"path";import{z as i}from"zod";import{readApplicationFiles as s}from"../application-spec/index.js";import{exists as p}from"../utils/index.js";import{publicProcedure as a,router as n}from"./trpc.js";export const specRouter=n({getEditorConfig:a.query(()=>({specSync:!0})),prepareDeployment:a.mutation(async({ctx:o})=>{if(o.variantPreviews?.isOpen)throw new e({code:"BAD_REQUEST",message:"Deployment preparation is disabled during variant previews. Close the preview first."});if(o.storyMode)throw new e({code:"BAD_REQUEST",message:"Deployment preparation is disabled in Storybook story mode."});if(!o.prepareDeployment)throw new e({code:"BAD_REQUEST",message:"Deployment preparation requires a deployment configuration outside story mode."});await o.prepareDeployment()}),requestSpecFiles:a.mutation(async({ctx:e})=>{let o=e.storyMode?await s({projectRoot:e.projectRoot,envs:{}}):await s();e.pubsub.specFile$.next({rawProjectFiles:o,projectRoot:e.projectRoot})}),save:a.input(i.array(i.object({fileName:i.string(),content:i.string()}))).mutation(async({ctx:o,input:i})=>{if(o.variantPreviews?.isOpen)throw new e({code:"BAD_REQUEST",message:"Close the variant preview before editing source files."});for(let e of i){let i=r(o.projectRoot,e.fileName),s=r(o.projectRoot,e.fileName.split("/").slice(0,-1).join("/"));await p(s)&&await t(i,e.content)}}),onSpecChange:a.subscription(({ctx:e})=>o(o=>{let t=e.pubsub.specFile$.subscribe(e=>{o.next(e)});return()=>{t.unsubscribe()}}))});
@@ -1,11 +1,14 @@
1
1
  import type { LogBus } from '../services/log-bus.js';
2
2
  import type { PhoenixPubSub } from '../services/phoenix-pubsub.js';
3
+ import type { VariantPreviewService } from '../services/variant-preview-service.js';
3
4
  import type { WebhookTunnelMonitor } from '../services/webhook-tunnel-monitor.js';
4
5
  import type { Logger } from '../utils/index.js';
5
6
  export type Context = {
6
7
  readonly projectRoot: string;
7
8
  readonly pubsub: PhoenixPubSub;
8
9
  readonly logger: Logger;
10
+ /** The session's variant comparison; absent where project files cannot be rewritten, such as story-dev. */
11
+ readonly variantPreviews: VariantPreviewService | undefined;
9
12
  /** Bound to this dev session; absent for offline and story sessions. */
10
13
  readonly prepareDeployment?: () => Promise<void>;
11
14
  readonly storyMode?: boolean;
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node --stack-size=8192
2
- import{mkdir as e,readFile as o,rm as a,writeFile as r}from"node:fs/promises";import{dirname as t,join as i}from"node:path";import{format as s}from"prettier";import{prettierrc as n}from"@salsita-ai/common/prettier";import{buildPhoenixDefinitions as m,generateStandaloneCommonAdminFiles as c,parseCommonAdminSpec as p}from"#package/application-spec";import{getAllPhxDefinitions as l}from"#package/domain";import{swcEvalExpressionParser as d}from"../application-spec/swc-module-analyzer.js";let f=async e=>{try{return await o(e,"utf-8")}catch{return}},w=async(e,o)=>{let a=await s(o,{...n,filepath:e});await f(e)!==a&&await r(e,a)},v="./src/domain/admin-domain/__generated",h=m(l()),u=p(h,{evalExpressionParser:d});if(!u.ok)throw console.error(u.errors),Error("Common admin application spec contains errors");let j=c({enhancedModelImportPaths:{domainModel:"../../core/model.js",model:"./model/index.js",violation:"../../invariants/violation.js"},phxDefinitions:h,spec:u.value,versionImportPaths:{model:"../../../../core/model.js",reflection:"../../../../core/reflection.js"}});await e(v,{recursive:!0}),await Promise.all(j.map(async o=>{let a=i(v,o.path);await e(t(a),{recursive:!0}),await w(a,o.content)})),await a(i(v,"presets.ts"),{force:!0});
2
+ import{mkdir as e,readFile as r,rm as a,writeFile as o}from"node:fs/promises";import{dirname as i,join as t}from"node:path";import{format as n}from"prettier";import{prettierrc as s}from"@salsita-ai/common/prettier";import{buildPhoenixDefinitions as m,generateStandaloneCommonAdminFiles as c,parseCommonAdminSpec as p}from"#package/application-spec";import{getAllPhxDefinitions as l}from"#package/domain";import{swcEvalExpressionParser as d}from"../application-spec/swc-module-analyzer.js";let f=async e=>{try{return await r(e,"utf-8")}catch{return}},w=async(e,r)=>{let a=await n(r,{...s,filepath:e});await f(e)!==a&&await o(e,a)},h="./src/domain/admin-domain/__generated",u=m(l()),v=p(u,{evalExpressionParser:d});if(!v.ok)throw console.error(v.errors),Error("Common admin application spec contains errors");let j=c({enhancedModelImportPaths:{domainModel:"../../core/index.js",model:"./model/index.js",violation:"../../core/index.js"},phxDefinitions:u,spec:v.value,versionImportPaths:{model:"../../../../core/index.js",reflection:"../../../../core/index.js"}});await e(h,{recursive:!0}),await Promise.all(j.map(async r=>{let a=t(h,r.path);await e(i(a),{recursive:!0}),await w(a,r.content)})),await a(t(h,"presets.ts"),{force:!0});
@@ -1,9 +1,11 @@
1
1
  import { type ViteDevServer } from 'vite';
2
2
  import type { Logger } from '../utils/index.js';
3
3
  import type { PhoenixPubSub } from './phoenix-pubsub.js';
4
+ import type { VariantFileEdit } from './variant-file-session.js';
5
+ export declare const WATCH_PATTERNS: string[];
6
+ export declare const IGNORED_PATTERNS: string[];
4
7
  /** Configuration for {@link ApplicationSpecProjectWatcher}. */
5
8
  export interface ApplicationSpecProjectWatcherConfig {
6
- readonly viteServer: ViteDevServer;
7
9
  readonly pubsub: PhoenixPubSub;
8
10
  readonly logger: Logger;
9
11
  readonly onRebuilt?: () => void;
@@ -12,8 +14,6 @@ export interface ApplicationSpecProjectWatcherConfig {
12
14
  readonly projectSlug: string;
13
15
  readonly environmentSlug: string;
14
16
  readonly cliUseWorkspace?: boolean;
15
- readonly name?: string;
16
- readonly description?: string;
17
17
  readonly enableEditor: boolean;
18
18
  readonly inlineTemplates: boolean;
19
19
  readonly useServer: boolean;
@@ -42,8 +42,19 @@ export declare class ApplicationSpecProjectWatcher {
42
42
  private readonly builder;
43
43
  private readonly useServer;
44
44
  private isShuttingDown;
45
+ private suspended;
46
+ private readonly heldChanges;
45
47
  constructor(config: ApplicationSpecProjectWatcherConfig);
46
- start(): void;
48
+ start(viteServer: ViteDevServer): void;
49
+ /** Rebuilds a batch a variant comparison wrote, at once and without the server work of a source change. */
50
+ applyVariantFiles(files: readonly VariantFileEdit[]): void;
51
+ /**
52
+ * Holds source changes back until `resume`: a variant comparison rewrites files and rebuilds them itself,
53
+ * and a rebuild from the watcher would repeat that with the server work on top.
54
+ */
55
+ suspend(): void;
56
+ /** Rebuilds once for everything that changed while suspended, so no edit made meanwhile is lost. */
57
+ resume(): void;
47
58
  close(): Promise<void>;
48
59
  private setupFileWatcher;
49
60
  private setupRebuildSubscription;
@@ -1,4 +1,4 @@
1
- import{resolve as e}from"path";import t from"promise-queue";import{Subject as i,buffer as s,debounceTime as r}from"rxjs";import{createServer as o,normalizePath as n}from"vite";import{watch as l}from"#package/watch";import{ApplicationSpecBuilder as c}from"../application-spec/application-spec-builder.js";import{logDiagnostics as a}from"../application-spec/metrics/index.js";import{syncTemplateFiles as h}from"../application-spec/template-files.js";import{buildWebhooks as u}from"../webhooks/index.js";import{getViteDevConfig as p}from"./vite-config.js";let g=["spec/**/*.{yaml,yml}","src/**/*.{ts,tsx,yaml,yml,json,html,css}","templates/*.html",".env",".env.generated"],b=["src/locales/**/*.{ts,tsx}",".phoenix/**"];export class ApplicationSpecProjectWatcher{watcher=null;subscription=null;rebuildQueue=new t(1,1/0);changeSubject$=new i;viteServer;pubsub;logger;onRebuilt;onViteServerChange;builder;useServer;isShuttingDown=!1;constructor(e){this.viteServer=e.viteServer,this.pubsub=e.pubsub,this.logger=e.logger,this.onRebuilt=e.onRebuilt,this.onViteServerChange=e.onViteServerChange,this.builder=new c({logger:e.logger,sdkVersion:e.sdkVersion,projectSlug:e.projectSlug,environmentSlug:e.environmentSlug,cliUseWorkspace:e.cliUseWorkspace,name:e.name,description:e.description,enableEditor:e.enableEditor,inlineTemplates:e.inlineTemplates}),this.useServer=e.useServer}start(){this.setupFileWatcher(),this.setupRebuildSubscription()}async close(){this.isShuttingDown=!0,this.watcher&&(await this.watcher.close(),this.watcher=null),this.subscription?.unsubscribe(),this.changeSubject$.complete()}setupFileWatcher(){this.watcher=l(g,{ignored:b,cwd:process.cwd(),persistent:!0,ignoreInitial:!1}),this.watcher.on("all",(e,t)=>{("change"===e||"add"===e||"unlink"===e)&&(this.logger.info(`
2
- 📝 Detected ${e}: ${t}`),this.changeSubject$.next(t))})}setupRebuildSubscription(){let e=this.changeSubject$.pipe(r(10));this.subscription=this.changeSubject$.pipe(s(e)).subscribe(e=>{let t=new Set(e),i=t.has(".env");this.rebuildQueue.add(async()=>{this.isShuttingDown||(this.logger.info(`
1
+ import{mkdirSync as e}from"fs";import{resolve as t}from"path";import i from"promise-queue";import{Subject as s,buffer as r,debounceTime as o}from"rxjs";import{createServer as n,normalizePath as l}from"vite";import{watch as h}from"#package/watch";import{ApplicationSpecBuilder as a}from"../application-spec/application-spec-builder.js";import{logDiagnostics as c}from"../application-spec/metrics/index.js";import{syncTemplateFiles as u}from"../application-spec/template-files.js";import{buildWebhooks as p}from"../webhooks/index.js";import{getViteDevConfig as g}from"./vite-config.js";export const WATCH_PATTERNS=["spec/**/*.{yaml,yml}","src/**/*.{ts,tsx,yaml,yml,json,html,css}","templates/*.html",".env",".env.generated",".phoenix/.env.generated"];export const IGNORED_PATTERNS=["src/locales/**/*.{ts,tsx}",".phoenix/!(.env.generated)/**"];export class ApplicationSpecProjectWatcher{watcher=null;subscription=null;rebuildQueue=new i(1,1/0);changeSubject$=new s;viteServer=null;pubsub;logger;onRebuilt;onViteServerChange;builder;useServer;isShuttingDown=!1;suspended=!1;heldChanges=new Set;constructor(e){this.pubsub=e.pubsub,this.logger=e.logger,this.onRebuilt=e.onRebuilt,this.onViteServerChange=e.onViteServerChange,this.builder=new a({logger:e.logger,sdkVersion:e.sdkVersion,projectSlug:e.projectSlug,environmentSlug:e.environmentSlug,cliUseWorkspace:e.cliUseWorkspace,enableEditor:e.enableEditor,inlineTemplates:e.inlineTemplates}),this.useServer=e.useServer}start(e){this.viteServer=e,this.setupFileWatcher(),this.setupRebuildSubscription()}applyVariantFiles(e){this.rebuildQueue.add(async()=>{this.isShuttingDown||await this.rebuild(new Set(e.map(e=>e.fileName)),!1,!0)})}suspend(){this.suspended=!0}resume(){for(let e of(this.suspended=!1,this.heldChanges))this.changeSubject$.next(e);this.heldChanges.clear()}async close(){this.isShuttingDown=!0,this.watcher&&(await this.watcher.close(),this.watcher=null),this.subscription?.unsubscribe(),this.changeSubject$.complete()}setupFileWatcher(){e(t(process.cwd(),"src"),{recursive:!0}),this.watcher=h(WATCH_PATTERNS,{ignored:IGNORED_PATTERNS,cwd:process.cwd(),persistent:!0,ignoreInitial:!1}),this.watcher.on("all",(e,t)=>{if("change"===e||"add"===e||"unlink"===e){if(this.suspended)return void this.heldChanges.add(t);this.logger.info(`
2
+ 📝 Detected ${e}: ${t}`),this.changeSubject$.next(t)}})}setupRebuildSubscription(){let e=this.changeSubject$.pipe(o(10));this.subscription=this.changeSubject$.pipe(r(e)).subscribe(e=>{let t=new Set(e),i=t.has(".env");this.rebuildQueue.add(async()=>{this.isShuttingDown||(this.logger.info(`
3
3
  🔨 Rebuilding spec files...
4
- `),await this.rebuild(t,i))})})}async rebuild(t,i){try{let s=await h();if(this.isShuttingDown)return;let r=await this.builder.build();if(this.isShuttingDown)return;if(a(r.diagnostics,this.logger),!r.ok){for(let e of r.errors)this.logger.error(`[${e.code}] ${e.message}${e.file?` (${e.file})`:""}`);this.pubsub.specFile$.next({rawProjectFiles:r.rawProjectFiles,projectRoot:process.cwd()});return}this.onRebuilt?.();let{application:l,changedFiles:c}=r,g=this.viteServer.moduleGraph,b=Date.now(),w=new Set,d=process.cwd(),f=e=>{let t=g.getModulesByFile(n(e));if(t)for(let e of t)g.invalidateModule(e,w,b,!0)};for(let i of t)f(e(d,i));for(let t of c)f(e(d,`.phoenix/${t.path}`));if(this.pubsub.specFile$.next({rawProjectFiles:l.rawProjectFiles,projectRoot:process.cwd(),configurationSchemaHash:l.applicationSpec.configurator.configurationSchema.hash}),this.isShuttingDown)return;if(i){if(await this.viteServer.close(),this.isShuttingDown)return;let e=await p({templateFiles:s});if(this.isShuttingDown)return;let t=await o(e);if(this.isShuttingDown||(await t.listen(),this.isShuttingDown))return void await t.close();this.viteServer=t,this.onViteServerChange?.(t),this.logger.success("Vite server restarted (env changed)")}if(this.useServer){if(this.logger.step("Building webhooks"),await u({experimental:!0,skipNodeEnvOverride:!0,webhookEntryPoint:"./.phoenix/.swc/.phoenix/webhook.js",preserveExistingOutput:!0}),this.isShuttingDown)return;this.logger.success("Webhooks rebuilt successfully")}this.logger.success("Project files rebuilt successfully")}catch(e){this.logger.error(`Build failed: ${e instanceof Error?e.message:String(e)}`,e)}}}
4
+ `),await this.rebuild(t,i,!1))})})}async rebuild(e,i,s){try{let r=this.viteServer;if(!r)throw Error("Cannot rebuild the project: the watcher has no Vite server yet, because it was not started. Start the watcher before applying files");let o=await u();if(this.isShuttingDown)return;let h=await this.builder.build({compile:!s});if(this.isShuttingDown)return;if(c(h.diagnostics,this.logger),!h.ok){for(let e of h.errors)this.logger.error(`[${e.code}] ${e.message}${e.file?` (${e.file})`:""}`);this.pubsub.specFile$.next({rawProjectFiles:h.rawProjectFiles,projectRoot:process.cwd()});return}this.onRebuilt?.();let{application:a,changedFiles:d}=h,w=r.moduleGraph,b=Date.now(),f=new Set,S=process.cwd(),m=e=>{let t=w.getModulesByFile(l(e));if(t)for(let e of t)w.invalidateModule(e,f,b,!0)};for(let i of e)m(t(S,i));for(let e of d)m(t(S,`.phoenix/${e.path}`));if(this.pubsub.specFile$.next({rawProjectFiles:a.rawProjectFiles,projectRoot:process.cwd(),configurationSchemaHash:a.applicationSpec.configurator.configurationSchema.hash}),this.isShuttingDown)return;if(i){if(await r.close(),this.isShuttingDown)return;let e=await g({templateFiles:o});if(this.isShuttingDown)return;let t=await n(e);if(this.isShuttingDown||(await t.listen(),this.isShuttingDown))return void await t.close();this.viteServer=t,this.onViteServerChange?.(t),this.logger.success("Vite server restarted (env changed)")}if(this.useServer&&!s){if(this.logger.step("Building webhooks"),await p({experimental:!0,skipNodeEnvOverride:!0,webhookEntryPoint:"./.phoenix/.swc/.phoenix/webhook.js",preserveExistingOutput:!0}),this.isShuttingDown)return;this.logger.success("Webhooks rebuilt successfully")}this.logger.success("Project files rebuilt successfully")}catch(e){this.logger.error(`Build failed: ${e instanceof Error?e.message:String(e)}`,e)}}}
@@ -1,5 +1,9 @@
1
1
  export type { BrowserConsoleEvent, DataRequest, DataResult, EditorContextData, EditorLifecycleStatus, EditorStateData, MockTemplateUpdateEvent, SceneRequest, SceneResult, ScreenshotRequest, ScreenshotResult, SpecUpdateEvent, StateRequest, StateResult, StateSection, } from './phoenix-pubsub.js';
2
2
  export { PhoenixPubSub } from './phoenix-pubsub.js';
3
+ export { PhoenixStore } from './phoenix-store.js';
4
+ export { PhoenixApplication } from './phoenix-application.js';
5
+ export { VariantFileSession } from './variant-file-session.js';
6
+ export { VariantPreviewService } from './variant-preview-service.js';
3
7
  export { MockTemplateWatcher, type MockTemplateWatcherConfig } from './mock-template-watcher.js';
4
8
  export { ApplicationSpecProjectWatcher, type ApplicationSpecProjectWatcherConfig, } from './application-spec-project-watcher.js';
5
9
  export { ApplicationSpecStoryWatcher, type ApplicationSpecStoryWatcherConfig, } from './application-spec-story-watcher.js';
@@ -1 +1 @@
1
- export{PhoenixPubSub}from"./phoenix-pubsub.js";export{MockTemplateWatcher}from"./mock-template-watcher.js";export{ApplicationSpecProjectWatcher}from"./application-spec-project-watcher.js";export{ApplicationSpecStoryWatcher}from"./application-spec-story-watcher.js";export{LinguiWatcher}from"./lingui-watcher.js";export{loadMockTemplates,parseMockTemplateYaml}from"./spec-files.js";export{LOG_STREAMS,LogBus}from"./log-bus.js";export{createBusLogger}from"./bus-logger.js";export{patchConsole}from"./console-capture.js";export{WebhookTunnelMonitor}from"./webhook-tunnel-monitor.js";export{compileWithSwc,watchWithSwc}from"./swc.js";export{STORY_DEV_MARKER_PATH,readActiveStoryDevMarker}from"./story-dev-marker.js";export{composeDefaultBanner}from"./phx-banner-plugin.js";export{getViteBuildConfigs,getViteDevConfig,setViteLogSink}from"./vite-config.js";export{getServerCredentials,removeServerCredentials,saveServerCredentials}from"./cli-credentials.js";export{createSourceArchive,extractSourceArchive}from"./source-archive.js";export{resolveSignedInDevelopmentEnvironment}from"./signed-in-development-environment.js";export{DEFAULT_PHOENIX_REGION,PHOENIX_REGIONS,PUBLIC_PHOENIX_REGIONS,getRegionServerUrl,getRegionStudioUrl}from"./phoenix-regions.js";
1
+ export{PhoenixPubSub}from"./phoenix-pubsub.js";export{PhoenixStore}from"./phoenix-store.js";export{PhoenixApplication}from"./phoenix-application.js";export{VariantFileSession}from"./variant-file-session.js";export{VariantPreviewService}from"./variant-preview-service.js";export{MockTemplateWatcher}from"./mock-template-watcher.js";export{ApplicationSpecProjectWatcher}from"./application-spec-project-watcher.js";export{ApplicationSpecStoryWatcher}from"./application-spec-story-watcher.js";export{LinguiWatcher}from"./lingui-watcher.js";export{loadMockTemplates,parseMockTemplateYaml}from"./spec-files.js";export{LOG_STREAMS,LogBus}from"./log-bus.js";export{createBusLogger}from"./bus-logger.js";export{patchConsole}from"./console-capture.js";export{WebhookTunnelMonitor}from"./webhook-tunnel-monitor.js";export{compileWithSwc,watchWithSwc}from"./swc.js";export{STORY_DEV_MARKER_PATH,readActiveStoryDevMarker}from"./story-dev-marker.js";export{composeDefaultBanner}from"./phx-banner-plugin.js";export{getViteBuildConfigs,getViteDevConfig,setViteLogSink}from"./vite-config.js";export{getServerCredentials,removeServerCredentials,saveServerCredentials}from"./cli-credentials.js";export{createSourceArchive,extractSourceArchive}from"./source-archive.js";export{resolveSignedInDevelopmentEnvironment}from"./signed-in-development-environment.js";export{DEFAULT_PHOENIX_REGION,PHOENIX_REGIONS,PUBLIC_PHOENIX_REGIONS,getRegionServerUrl,getRegionStudioUrl}from"./phoenix-regions.js";
@@ -1,4 +1,12 @@
1
1
  import { type Logger } from '../utils/index.js';
2
+ /**
3
+ * The project's Lingui configuration, which sync generates, relative to the project root. The Lingui
4
+ * CLI, the Lingui Vite plugin and the Lingui macros in the Vite builds are always given this path, so a
5
+ * `.linguirc` that earlier SDK versions left in the project root is not read. Lingui searches the
6
+ * working directory instead only when the named file is missing; generation writes it with the rest of
7
+ * `.phoenix/` before Phoenix runs Lingui or Vite.
8
+ */
9
+ export declare const LINGUI_CONFIG_PATH = ".phoenix/.linguirc";
2
10
  interface LinguiCommandContext {
3
11
  readonly logger: Logger;
4
12
  }
@@ -1 +1 @@
1
- import{runCommand as i}from"../utils/index.js";let n=async n=>{await i({command:"lingui",args:["extract"],description:"Extracting i18n messages",quiet:!0,extraEnv:{LC_ALL:"en_US.UTF-8"}},n)};export const compileLingui=async n=>{await i({command:"lingui",args:["compile"],description:"Compiling i18n messages",quiet:!0},n)};export const extractAndCompileLingui=async i=>{await n(i),await compileLingui(i)};
1
+ import{runSdkTool as i}from"../utils/index.js";export const LINGUI_CONFIG_PATH=".phoenix/.linguirc";let n=async n=>{await i({tool:{packageName:"@lingui/cli",binName:"lingui"},args:["extract","--config",LINGUI_CONFIG_PATH],description:"Extracting i18n messages",quiet:!0,extraEnv:{LC_ALL:"en_US.UTF-8"}},n)};export const compileLingui=async n=>{await i({tool:{packageName:"@lingui/cli",binName:"lingui"},args:["compile","--config",LINGUI_CONFIG_PATH],description:"Compiling i18n messages",quiet:!0},n)};export const extractAndCompileLingui=async i=>{await n(i),await compileLingui(i)};
@@ -0,0 +1,21 @@
1
+ import type { PhoenixPubSub } from './phoenix-pubsub.js';
2
+ import type { PhoenixStore } from './phoenix-store.js';
3
+ import type { VariantPreviewService } from './variant-preview-service.js';
4
+ export interface PhoenixApplicationProps {
5
+ readonly store: PhoenixStore;
6
+ readonly pubsub: PhoenixPubSub;
7
+ /** Absent in a session that cannot rewrite project files, such as story-dev. */
8
+ readonly variantPreviews: VariantPreviewService | undefined;
9
+ }
10
+ /**
11
+ * One running dev session: its state, its event bus and the services built on them. The command that
12
+ * starts the session composes it once and hands it to the transports, so the editor server's routers get
13
+ * their services from here instead of from callbacks threaded through the command.
14
+ */
15
+ export declare class PhoenixApplication {
16
+ readonly store: PhoenixStore;
17
+ readonly pubsub: PhoenixPubSub;
18
+ readonly variantPreviews: VariantPreviewService | undefined;
19
+ constructor(props: PhoenixApplicationProps);
20
+ close(): Promise<void>;
21
+ }
@@ -0,0 +1 @@
1
+ export class PhoenixApplication{store;pubsub;variantPreviews;constructor(s){this.store=s.store,this.pubsub=s.pubsub,this.variantPreviews=s.variantPreviews}async close(){await this.variantPreviews?.dispose()}}
@@ -0,0 +1,48 @@
1
+ import { BehaviorSubject } from 'rxjs';
2
+ /**
3
+ * A frontend file script or standalone HTML proposal served from `.phoenix/variants/`.
4
+ */
5
+ export interface VariantPreviewOption {
6
+ /** File name without its suffix; the answer names the picked option by it. */
7
+ readonly id: string;
8
+ readonly kind: 'script' | 'page';
9
+ readonly label: string;
10
+ /** What sets this option apart from the others; may be empty. */
11
+ readonly description: string;
12
+ /** Address of the option's file on the dev server, with a version query that changes when the file does. */
13
+ readonly url: string;
14
+ }
15
+ /** CLI → browser request to show the options over the configurator and collect the builder's answer. */
16
+ export interface VariantPreviewRequest {
17
+ readonly requestId: string;
18
+ readonly title: string;
19
+ /** A line under the title saying what differs between the options; may be empty. */
20
+ readonly description: string;
21
+ readonly variants: readonly VariantPreviewOption[];
22
+ }
23
+ /** Browser → CLI answer; `choice` is the picked option id, or `null` for Original. */
24
+ export interface VariantPreviewResult {
25
+ readonly requestId: string;
26
+ readonly choice: string | null;
27
+ }
28
+ /** An answer no command was waiting for, kept with the request it answers until a command claims it. */
29
+ export interface UnclaimedVariantPreviewResult {
30
+ readonly request: VariantPreviewRequest;
31
+ readonly result: VariantPreviewResult;
32
+ }
33
+ /** Where the variant comparison of a dev session stands. Written by VariantPreviewService only. */
34
+ export interface VariantPreviewState {
35
+ /** The comparison the editor shows, or `null` when none is open. */
36
+ readonly open: VariantPreviewRequest | null;
37
+ /** The option whose edits are in the source files right now; `null` is the baseline. */
38
+ readonly activeChoice: string | null;
39
+ /** An answer given after the command that asked had stopped waiting. */
40
+ readonly unclaimed: UnclaimedVariantPreviewResult | null;
41
+ }
42
+ /**
43
+ * The state of one dev session. It holds values and no logic: services read and write it, and the
44
+ * editor server reaches it only through them. Events that carry no state stay on PhoenixPubSub.
45
+ */
46
+ export declare class PhoenixStore {
47
+ readonly variantPreview$: BehaviorSubject<VariantPreviewState>;
48
+ }
@@ -0,0 +1 @@
1
+ import{BehaviorSubject as e}from"rxjs";export class PhoenixStore{variantPreview$=new e({open:null,activeChoice:null,unclaimed:null})}
@@ -0,0 +1,9 @@
1
+ import type { Plugin } from 'vite';
2
+ export declare const isVariantPreviewFile: (root: string, file: string) => boolean;
3
+ /**
4
+ * Option files live under Vite's root and have no HMR boundary, so a change to one would reload the
5
+ * configurator behind the comparison. Listing the folder in `server.watch.ignored` would stop that too, but
6
+ * Vite would then never drop its cached transform, and a rewritten option or helper would be served stale.
7
+ * Answering the hot update with no modules keeps the invalidation and skips only the reload.
8
+ */
9
+ export declare const phxVariantPreviewsPlugin: () => Plugin;
@@ -0,0 +1 @@
1
+ import{toPosixPath as i}from"../utils/path.js";export const isVariantPreviewFile=(t,e)=>i(e).startsWith(`${i(t).replace(/\/+$/,"")}/variants/`);export const phxVariantPreviewsPlugin=()=>({name:"phx:variant-previews",hotUpdate({file:i}){return isVariantPreviewFile(this.environment.config.root,i)?[]:void 0}});
@@ -1,2 +1,2 @@
1
- import{writeFile as e}from"node:fs/promises";import{createApiBaseClient as i}from"#package/client";import{resolveApplicationSpecDeploymentData as t}from"../application-spec/index.js";import{formatEnvContent as r,uploadFilesWithPresignedUrls as a}from"../utils/index.js";import{getDevelopmentCredentialHint as o,getDevelopmentHeaders as s}from"./development-credential.js";export const prepareDevelopmentEnvironment=async(n,l)=>{let{logger:p}=l,{projectSlug:d,environmentSlug:m,serverUrl:c,credential:h,outFile:v,skipUpload:f,overrideSchema:u,projectVersion:g}=n;p.step("Preparing development environment"),p.info(`Preparing development environment for project "${d}", environment "${m}"`);let E=i(c);p.debug(`Using server URL: ${c}`);let b=await t({skipUpload:f,logger:p});p.info("Preparing and activating the development deployment on the server...");let{data:P,error:$}=await E.POST("/environments/development/prepare",{body:{applicationVersion:b.applicationVersion,publishedDataHash:b.publishedDataHash,useAuthHook:b.useAuthHook,overrideSchema:u,configurationSchema:{version:b.schemaVersion,schema:b.schema},adminConfigurationSchema:b.adminSchema?{schema:b.adminSchema,version:b.adminSchemaVersion}:void 0,chat:b.chat,embeddings:b.embeddings,assistant:b.assistant,acl:{canCreate:b.aclCanCreate},privateFiles:[...b.assets.privateFilePaths],publicFiles:[...b.assets.publicFilePaths],sdkVersion:g},headers:s(h,{projectSlug:d,environmentSlug:m})});if($)throw Error(`Failed to prepare development deployment for ${d}/${m} on ${c}: ${$.message}. ${o(h,d)}`);if(!P)throw Error("No data returned from server while preparing the development deployment.");let{environmentVariables:y,privateUploadUrls:w,publicUploadUrls:F}=P;if(f)p.debug("Skipping file upload");else{p.info("Uploading files to S3...");let e={privateFiles:[...b.assets.privateFilesFullPaths].map(e=>{let i=e.replace("assets/private/",""),t=w[i];if(!t)throw Error(`No upload URL provided for private file ${i}, the server did not return a presigned URL for this file, please verify the file exists in the assets/private directory.`);return{localPath:e,uploadUrl:t}}),publicFiles:[...b.assets.publicFilesFullPaths].map(e=>{let i=e.replace("assets/public/",""),t=F[i];if(!t)throw Error(`No upload URL provided for public file ${i}, the server did not return a presigned URL for this file, please verify the file exists in the assets/public directory.`);return{localPath:e,uploadUrl:t}})};await a(e,{logger:p})}try{await e(v,`${r({...y,PHOENIX_PROJECT_SLUG:d,PHOENIX_ENVIRONMENT_SLUG:m,PHOENIX_SERVER_URL:c})}
1
+ import{writeFile as e}from"node:fs/promises";import{createApiBaseClient as i}from"#package/client";import{resolveApplicationSpecDeploymentData as t}from"../application-spec/index.js";import{formatEnvContent as r,uploadFilesWithPresignedUrls as a}from"../utils/index.js";import{getDevelopmentCredentialHint as o,getDevelopmentHeaders as s}from"./development-credential.js";export const prepareDevelopmentEnvironment=async(n,l)=>{let{logger:p}=l,{projectSlug:d,environmentSlug:m,serverUrl:c,credential:h,outFile:v,skipUpload:f,overrideSchema:u,projectVersion:g}=n;p.step("Preparing development environment"),p.info(`Preparing development environment for project "${d}", environment "${m}"`);let E=i(c);p.debug(`Using server URL: ${c}`);let b=await t({skipUpload:f,logger:p});p.info("Preparing and activating the development deployment on the server...");let{data:P,error:$}=await E.POST("/environments/development/prepare",{body:{applicationVersion:b.applicationVersion,publishedDataHash:b.publishedDataHash,useAuthHook:b.useAuthHook,overrideSchema:u,configurationSchema:{version:b.schemaVersion,schema:b.schema},adminConfigurationSchema:b.adminSchema?{schema:b.adminSchema,version:b.adminSchemaVersion}:void 0,chat:b.chat,embeddings:b.embeddings,...b.assistant?{assistant:!0}:{},acl:{canCreate:b.aclCanCreate},privateFiles:[...b.assets.privateFilePaths],publicFiles:[...b.assets.publicFilePaths],sdkVersion:g},headers:s(h,{projectSlug:d,environmentSlug:m})});if($)throw Error(`Failed to prepare development deployment for ${d}/${m} on ${c}: ${$.message}. ${o(h,d)}`);if(!P)throw Error("No data returned from server while preparing the development deployment.");let{environmentVariables:y,privateUploadUrls:w,publicUploadUrls:F}=P;if(f)p.debug("Skipping file upload");else{p.info("Uploading files to S3...");let e={privateFiles:[...b.assets.privateFilesFullPaths].map(e=>{let i=e.replace("assets/private/",""),t=w[i];if(!t)throw Error(`No upload URL provided for private file ${i}, the server did not return a presigned URL for this file, please verify the file exists in the assets/private directory.`);return{localPath:e,uploadUrl:t}}),publicFiles:[...b.assets.publicFilesFullPaths].map(e=>{let i=e.replace("assets/public/",""),t=F[i];if(!t)throw Error(`No upload URL provided for public file ${i}, the server did not return a presigned URL for this file, please verify the file exists in the assets/public directory.`);return{localPath:e,uploadUrl:t}})};await a(e,{logger:p})}try{await e(v,`${r({...y,PHOENIX_PROJECT_SLUG:d,PHOENIX_ENVIRONMENT_SLUG:m,PHOENIX_SERVER_URL:c})}
2
2
  `),p.debug(`Environment variables written to ${v}`)}catch{throw Error(`Failed to write environment variables to file at ${v}, please verify you have write permissions to this location.`)}p.info(`Project: ${d}`),p.info(`Environment: ${m}`),p.info(`Deployment ID: ${y.DEPLOYMENT_ID}`),p.success("Development environment prepared successfully!")};
@@ -3,6 +3,7 @@ export interface SourceArchive {
3
3
  readonly path: string;
4
4
  readonly fileCount: number;
5
5
  readonly size: number;
6
+ readonly hasConversationLog: boolean;
6
7
  readonly cleanup: () => Promise<void>;
7
8
  }
8
9
  /** What `extractSourceArchive` wrote and what it left out. */
@@ -1 +1 @@
1
- import{execFile as e}from"node:child_process";import{createReadStream as r,createWriteStream as t}from"node:fs";import{lstat as o,mkdir as i,mkdtemp as a,readdir as n,rm as s,stat as c,writeFile as l}from"node:fs/promises";import{tmpdir as h}from"node:os";import{dirname as p,join as f}from"node:path";import{Transform as d}from"node:stream";import{pipeline as w}from"node:stream/promises";import{promisify as m}from"node:util";import{createGunzip as u}from"node:zlib";import{extract as g}from"tar-stream";import{isProjectFile as y,listProjectEntries as v}from"../application-spec/project-files.js";let x=m(e);export const createSourceArchive=async e=>{let r=await Promise.all((await v(e)).map(async r=>({name:r,entry:await o(f(e,r))}))),t=r.filter(({entry:e})=>!e.isDirectory()&&(!e.isFile()||e.nlink>1)),i=r.filter(({entry:e})=>e.isFile()).map(({name:e})=>e);if(t.length>0)throw Error(`These project files are links or special files, which builds do not accept: ${t.map(({name:e})=>e).join(", ")}. Replace them with regular files and deploy again.`);if(0===i.length)throw Error(`No project files were found in ${e}, so there is nothing to deploy. Run phoenix deploy in the folder of an application-spec project.`);let n=await a(f(h(),"phoenix-deploy-")),p="sources.tgz",d=f(n,p),w=f(n,"files");try{await l(w,i.join("\0")),await x("tar",["-czf",p,"-C",e,"--null","-T",w],{cwd:n,env:{...process.env,COPYFILE_DISABLE:"1"}})}catch(r){await s(n,{recursive:!0,force:!0});let e=r instanceof Error?r.message:String(r);throw Error(`Packing the project with tar failed: ${e}. Check that tar is installed and on the PATH.`)}return{path:d,fileCount:i.length,size:(await c(d)).size,cleanup:()=>s(n,{recursive:!0,force:!0})}};let E=(e,...r)=>e instanceof Error&&"code"in e&&"string"==typeof e.code&&r.includes(e.code),j=async e=>{try{return 0===(await n(e)).length}catch(e){if(E(e,"ENOENT"))return!0;throw e}},T=class ArchiveRefusal extends Error{},b=e=>e.length>0&&!e.startsWith("/")&&!e.includes("\\")&&!/^[A-Za-z]:/.test(e)&&!/[\x00-\x1f\x7f]/.test(e)&&!e.split("/").includes("..");export const extractSourceArchive=async e=>{let o,a,{archivePath:n,targetDir:l}=e,h=(await c(n)).size;if(h>0xc800000)throw Error(`The source archive is ${h} bytes, over the 209715200 byte limit. Remove large files from the project and deploy again.`);if(!await j(l))throw Error(`The folder ${l} is not empty, and extracted sources must not mix with existing files. Extract into a new or empty folder.`);let m=g(),v=new AbortController,x=w(r(n),u(),(a=0,new d({transform(e,r,t){(a+=e.length)>0x40000000?t(new T("The source archive extracts to more than 1073741824 bytes. Remove large files from the project and deploy again.")):t(null,e)}})),m).catch(e=>{o??=e,v.abort()}),$=[],z=0,R=0;try{for await(let e of m){let{type:r}=e.header,o=e.header.name.replace(/^(\.\/)+/,""),a=JSON.stringify(o);if("directory"===r){e.resume();continue}if((R+=1)>1e5)throw new T("The source archive has more than 100000 files. Remove generated or unused files from the project and deploy again.");if(!b(o))throw new T(`The source archive contains ${a}, which is not a plain relative path inside the project. Pack the project with phoenix deploy.`);if("file"!==r)throw new T(`The source archive contains ${a}, which is a ${r??"special file"}. Builds accept only regular files; replace it with a regular file and deploy again.`);if(!y(o)){$.push(o),e.resume();continue}let n=f(l,...o.split("/"));try{await i(p(n),{recursive:!0}),await w(e,t(n,{flags:"wx"}),{signal:v.signal})}catch(e){if(E(e,"EEXIST","ENOTDIR","EISDIR"))throw new T(`The source archive contains ${a}, which repeats or collides with an earlier entry, so its content is ambiguous. Pack the project with phoenix deploy.`);throw e}z+=1}if(await x,void 0!==o)throw o}catch(t){let e=t instanceof T?t:o??t;if(m.destroy(),await x,await s(l,{recursive:!0,force:!0}),e instanceof T)throw e;let r=e instanceof Error?e.message:String(e);throw Error(`The source archive could not be read: ${r}. It is truncated or not a gzip tarball; pack the project with phoenix deploy.`)}return{fileCount:z,skipped:$}};
1
+ import{execFile as e}from"node:child_process";import{createReadStream as r,createWriteStream as t}from"node:fs";import{lstat as o,mkdir as i,mkdtemp as a,readdir as n,rm as s,stat as c,writeFile as l}from"node:fs/promises";import{tmpdir as h}from"node:os";import{dirname as p,join as f}from"node:path";import{Transform as d}from"node:stream";import{pipeline as w}from"node:stream/promises";import{promisify as m}from"node:util";import{createGunzip as u}from"node:zlib";import{extract as g}from"tar-stream";import{isProjectFile as y,listProjectEntries as v}from"../application-spec/project-files.js";let x=m(e);export const createSourceArchive=async e=>{let r=(await n(e)).includes("conversation.log"),t=[...await v(e),...r?["conversation.log"]:[]],i=await Promise.all(t.map(async r=>({name:r,entry:await o(f(e,r))})));if(i.some(({name:e,entry:r})=>"conversation.log"===e&&r.isDirectory()))throw Error("conversation.log is a directory. Replace it with a regular transcript file and deploy again.");let p=i.filter(({entry:e})=>!e.isDirectory()&&(!e.isFile()||e.nlink>1)),d=i.filter(({entry:e})=>e.isFile()).map(({name:e})=>e);if(p.length>0)throw Error(`These project files are links or special files, which builds do not accept: ${p.map(({name:e})=>e).join(", ")}. Replace them with regular files and deploy again.`);if(0===d.length)throw Error(`No project files were found in ${e}, so there is nothing to deploy. Run phoenix deploy in the folder of an application-spec project.`);let w=await a(f(h(),"phoenix-deploy-")),m="sources.tgz",u=f(w,m),g=f(w,"files");try{await l(g,d.join("\0")),await x("tar",["-czf",m,"-C",e,"--null","-T",g],{cwd:w,env:{...process.env,COPYFILE_DISABLE:"1"}})}catch(r){await s(w,{recursive:!0,force:!0});let e=r instanceof Error?r.message:String(r);throw Error(`Packing the project with tar failed: ${e}. Check that tar is installed and on the PATH.`)}return{path:u,fileCount:d.length,size:(await c(u)).size,hasConversationLog:r,cleanup:()=>s(w,{recursive:!0,force:!0})}};let E=(e,...r)=>e instanceof Error&&"code"in e&&"string"==typeof e.code&&r.includes(e.code),j=async e=>{try{return 0===(await n(e)).length}catch(e){if(E(e,"ENOENT"))return!0;throw e}},T=class ArchiveRefusal extends Error{},b=e=>e.length>0&&!e.startsWith("/")&&!e.includes("\\")&&!/^[A-Za-z]:/.test(e)&&!/[\x00-\x1f\x7f]/.test(e)&&!e.split("/").includes("..");export const extractSourceArchive=async e=>{let o,a,{archivePath:n,targetDir:l}=e,h=(await c(n)).size;if(h>0xc800000)throw Error(`The source archive is ${h} bytes, over the 209715200 byte limit. Remove large files from the project and deploy again.`);if(!await j(l))throw Error(`The folder ${l} is not empty, and extracted sources must not mix with existing files. Extract into a new or empty folder.`);let m=g(),v=new AbortController,x=w(r(n),u(),(a=0,new d({transform(e,r,t){(a+=e.length)>0x40000000?t(new T("The source archive extracts to more than 1073741824 bytes. Remove large files from the project and deploy again.")):t(null,e)}})),m).catch(e=>{o??=e,v.abort()}),$=[],R=0,z=0;try{for await(let e of m){let{type:r}=e.header,o=e.header.name.replace(/^(\.\/)+/,""),a=JSON.stringify(o);if("directory"===r){e.resume();continue}if((z+=1)>1e5)throw new T("The source archive has more than 100000 files. Remove generated or unused files from the project and deploy again.");if(!b(o))throw new T(`The source archive contains ${a}, which is not a plain relative path inside the project. Pack the project with phoenix deploy.`);if("file"!==r)throw new T(`The source archive contains ${a}, which is a ${r??"special file"}. Builds accept only regular files; replace it with a regular file and deploy again.`);if(!y(o)){$.push(o),e.resume();continue}let n=f(l,...o.split("/"));try{await i(p(n),{recursive:!0}),await w(e,t(n,{flags:"wx"}),{signal:v.signal})}catch(e){if(E(e,"EEXIST","ENOTDIR","EISDIR"))throw new T(`The source archive contains ${a}, which repeats or collides with an earlier entry, so its content is ambiguous. Pack the project with phoenix deploy.`);throw e}R+=1}if(await x,void 0!==o)throw o}catch(t){let e=t instanceof T?t:o??t;if(m.destroy(),await x,await s(l,{recursive:!0,force:!0}),e instanceof T)throw e;let r=e instanceof Error?e.message:String(e);throw Error(`The source archive could not be read: ${r}. It is truncated or not a gzip tarball; pack the project with phoenix deploy.`)}return{fileCount:R,skipped:$}};
@@ -1,3 +1,3 @@
1
- import{transform as e}from"@swc/core";import{remove as t}from"fs-extra";import{copyFile as s,mkdir as o,readFile as a,writeFile as i}from"fs/promises";import{globby as r}from"globby";import{dirname as c,relative as l,resolve as n}from"path";import{Subject as p}from"rxjs";import{watch as m}from"#package/watch";import{createLogger as w}from"../utils/index.js";let u=()=>({sourceMaps:!0,module:{type:"es6"},jsc:{target:"es2022",parser:{syntax:"typescript",tsx:!0},transform:{react:{runtime:"automatic"}},keepClassNames:!0,experimental:{plugins:[["@lingui/swc-plugin",{}]]}}}),d=async(e,t,a)=>{let i=process.cwd(),p=n(i,e),m=n(i,t),w=await r(["**/*.{html,css,json,txt,md}","**/.env*"],{cwd:p,ignore:["**/*.{spec,test}.{html,css,json,txt,md}","**/__tests__/**","**/__mocks__/**","**/tsconfig.json"],absolute:!1}),u=0,d=0;for(let e of w)try{let t=n(p,e),a=n(m,e);await o(c(a),{recursive:!0}),await s(t,a),u++}catch(t){d++,console.error(`Failed to copy ${l(i,n(p,e))}:`,t)}if(d>0)throw Error(`Failed to copy ${d} file(s)`);u>0&&a.debug(`Copied ${u} non-compilable file(s)`)};export const compileWithSwc=async(s,p)=>{let{sourceDir:m="src",outDir:f="./node_modules/.phoenix"}=s??{},g=p?.logger??w(),h=process.cwd(),x=n(h,m),_=n(h,f);await t(_);let y=await r(["**/*.{ts,tsx}"],{cwd:x,ignore:["**/*.{spec,test}.{ts,tsx}","**/__tests__/**","**/__mocks__/**"],absolute:!1}),b=u(),$=0,j=0;for(let t of y)try{let s=n(x,t),r=n(_,t.replace(/\.tsx?$/,".js")),l=await a(s,"utf-8"),p=await e(l,{...b,filename:s,sourceMaps:!0,outputPath:r});await o(c(r),{recursive:!0}),await i(r,p.code,"utf-8"),p.map&&await i(`${r}.map`,p.map,"utf-8"),$++}catch(e){j++,console.error(`Failed to compile ${l(h,n(x,t))}:`,e)}if(j>0)throw Error(`Failed to compile ${j} file(s)`);g.isDebug&&g.debug(`Compiled ${$} file(s) with swc`),await d(m,f,g)};let f=async(t,s,r)=>{let l=process.cwd(),p=n(l,s),m=n(l,r),w=u(),d=n(p,t),f=n(m,t.replace(/\.tsx?$/,".js")),g=await a(d,"utf-8"),h=await e(g,{...w,filename:d,sourceMaps:!0,outputPath:f});await o(c(f),{recursive:!0}),await i(f,h.code,"utf-8"),h.map&&await i(`${f}.map`,h.map,"utf-8")},g=async(e,t,a)=>{let i=process.cwd(),r=n(i,t),l=n(i,a),p=n(r,e),m=n(l,e);await o(c(m),{recursive:!0}),await s(p,m)};export const watchWithSwc=async(e,t)=>{let{sourceDir:s="src",outDir:o="./node_modules/.phoenix"}=e??{},a=t?.logger??w(),i=n(process.cwd(),s);a.isDebug&&a.step("Running initial SWC compilation"),await compileWithSwc({sourceDir:s,outDir:o},t),a.isDebug&&a.success("Initial compilation complete");let r=new p,c=m(["**/*.{ts,tsx,html,css,json,txt,md}","../.env*"],{cwd:i,ignored:["**/*.{spec,test}.{ts,tsx}","**/__tests__/**","**/cache.json"],persistent:!0,ignoreInitial:!0});return c.on("all",(e,t)=>{("change"===e||"add"===e)&&r.next({file:t,type:e})}),r.subscribe(async({file:e})=>{let t=l(i,n(i,e));try{e.match(/\.tsx?$/)?(await f(t,s,o),a.fileChanged(t)):(e.match(/\.(html|css|json|txt|md)$/)||e.match(/\.env/))&&(await g(t,s,o),a.fileChanged(t))}catch(e){a.error(`Failed to process ${t}`),a.isDebug&&console.error(e)}}),a.isDebug&&console.log(`
1
+ import{transform as e}from"@swc/core";import{remove as t}from"fs-extra";import{copyFile as s,mkdir as o,readFile as a,writeFile as r}from"fs/promises";import{globby as i}from"globby";import{createRequire as c}from"node:module";import{dirname as l,relative as n,resolve as p}from"path";import{Subject as m}from"rxjs";import{watch as w}from"#package/watch";import{createLogger as d}from"../utils/index.js";let u=()=>({sourceMaps:!0,module:{type:"es6"},jsc:{target:"es2022",parser:{syntax:"typescript",tsx:!0},transform:{react:{runtime:"automatic"}},keepClassNames:!0,experimental:{plugins:[[c(import.meta.url).resolve("@lingui/swc-plugin"),{}]],cacheRoot:"node_modules/.cache/swc"}}}),f=async(e,t,a)=>{let r=process.cwd(),c=p(r,e),m=p(r,t),w=await i(["**/*.{html,css,json,txt,md}","**/.env*"],{cwd:c,ignore:["**/*.{spec,test}.{html,css,json,txt,md}","**/__tests__/**","**/__mocks__/**","**/tsconfig.json",".env.generated"],absolute:!1}),d=0,u=0;for(let e of w)try{let t=p(c,e),a=p(m,e);await o(l(a),{recursive:!0}),await s(t,a),d++}catch(t){u++,console.error(`Failed to copy ${n(r,p(c,e))}:`,t)}if(u>0)throw Error(`Failed to copy ${u} file(s)`);d>0&&a.debug(`Copied ${d} non-compilable file(s)`)};export const compileWithSwc=async(s,c)=>{let{sourceDir:m="src",outDir:w="./node_modules/.phoenix"}=s??{},g=c?.logger??d(),h=process.cwd(),_=p(h,m),x=p(h,w);await t(x);let y=await i(["**/*.{ts,tsx}"],{cwd:_,ignore:["**/*.{spec,test}.{ts,tsx}","**/__tests__/**","**/__mocks__/**"],absolute:!1}),b=u(),$=0,j=0;for(let t of y)try{let s=p(_,t),i=p(x,t.replace(/\.tsx?$/,".js")),c=await a(s,"utf-8"),n=await e(c,{...b,filename:s,sourceMaps:!0,outputPath:i});await o(l(i),{recursive:!0}),await r(i,n.code,"utf-8"),n.map&&await r(`${i}.map`,n.map,"utf-8"),$++}catch(e){j++,console.error(`Failed to compile ${n(h,p(_,t))}:`,e)}if(j>0)throw Error(`Failed to compile ${j} file(s)`);g.isDebug&&g.debug(`Compiled ${$} file(s) with swc`),await f(m,w,g)};let g=async(t,s,i)=>{let c=process.cwd(),n=p(c,s),m=p(c,i),w=u(),d=p(n,t),f=p(m,t.replace(/\.tsx?$/,".js")),g=await a(d,"utf-8"),h=await e(g,{...w,filename:d,sourceMaps:!0,outputPath:f});await o(l(f),{recursive:!0}),await r(f,h.code,"utf-8"),h.map&&await r(`${f}.map`,h.map,"utf-8")},h=async(e,t,a)=>{let r=process.cwd(),i=p(r,t),c=p(r,a),n=p(i,e),m=p(c,e);await o(l(m),{recursive:!0}),await s(n,m)};export const watchWithSwc=async(e,t)=>{let{sourceDir:s="src",outDir:o="./node_modules/.phoenix"}=e??{},a=t?.logger??d(),r=p(process.cwd(),s);a.isDebug&&a.step("Running initial SWC compilation"),await compileWithSwc({sourceDir:s,outDir:o},t),a.isDebug&&a.success("Initial compilation complete");let i=new m,c=w(["**/*.{ts,tsx,html,css,json,txt,md}","../.env*"],{cwd:r,ignored:["**/*.{spec,test}.{ts,tsx}","**/__tests__/**","**/cache.json"],persistent:!0,ignoreInitial:!0});return c.on("all",(e,t)=>{("change"===e||"add"===e)&&i.next({file:t,type:e})}),i.subscribe(async({file:e})=>{let t=n(r,p(r,e));try{e.match(/\.tsx?$/)?(await g(t,s,o),a.fileChanged(t)):(e.match(/\.(html|css|json|txt|md)$/)||e.match(/\.env/))&&(await h(t,s,o),a.fileChanged(t))}catch(e){a.error(`Failed to process ${t}`),a.isDebug&&console.error(e)}}),a.isDebug&&console.log(`
2
2
  👀 Watching ${s} for changes...
3
3
  `),{stop:async()=>{await c.close(),a.isDebug&&a.info("SWC watcher stopped")}}};
@@ -0,0 +1,36 @@
1
+ import type { Logger } from '../utils/index.js';
2
+ /** A baseline-relative edit collected by an option script; null removes the file. */
3
+ export interface VariantFileEdit {
4
+ readonly fileName: string;
5
+ readonly content: string | null;
6
+ }
7
+ /** Owns the baseline, file transactions and recovery for one live comparison. */
8
+ export declare class VariantFileSession {
9
+ private readonly props;
10
+ private readonly queue;
11
+ private readonly applied;
12
+ private readonly baseline;
13
+ private readonly contract;
14
+ private settled;
15
+ private constructor();
16
+ static create(props: {
17
+ readonly projectRoot: string;
18
+ readonly logger: Logger;
19
+ readonly onFilesChanged: (files: readonly VariantFileEdit[]) => void;
20
+ }): Promise<VariantFileSession>;
21
+ /**
22
+ * Restores the baseline a comparison left behind when its dev session ended without closing it. A file
23
+ * edited since then is left as it is, so the edit survives and the next dev session can still start.
24
+ */
25
+ static recover(projectRoot: string, logger: Logger): Promise<void>;
26
+ private static resolveFile;
27
+ getFiles(): readonly VariantFileEdit[];
28
+ apply(edits: readonly VariantFileEdit[]): Promise<void>;
29
+ finish(keep: boolean): Promise<void>;
30
+ /**
31
+ * Moves the files from what is applied now to `target`. A file edited outside the comparison is never
32
+ * overwritten: a switch is refused, so the builder sees why, while the end of the comparison keeps that
33
+ * file as it is and restores the others, so the comparison can always be closed.
34
+ */
35
+ private writeTarget;
36
+ }
@@ -0,0 +1 @@
1
+ import{mkdir as e,readFile as t,realpath as i,rename as a,rm as r,writeFile as s}from"node:fs/promises";import{dirname as o,join as n,relative as l,resolve as p,sep as c}from"node:path";import h from"promise-queue";import{z as d}from"zod";import{RawProjectFiles as f,RuntimeReferenceStore as m,TextFile as w,buildPhoenixDefinitions as u,isTextFile as g,parseApplicationFiles as v}from"#package/application-spec";import{generateAssistantPrompt as y,getAllPhxDefinitions as b}from"#package/domain";import{readApplicationFiles as S}from"../application-spec/application-spec-file-reader.js";import{swcEvalExpressionParser as F,swcModuleAnalyzer as N}from"../application-spec/swc-module-analyzer.js";let k=".phoenix/variant-recovery.json",j=d.array(d.object({fileName:d.string(),original:d.string().nullable(),applied:d.string().nullable(),previous:d.string().nullable().optional()})),E=e=>!e.includes("\\")&&!e.split("/").some(e=>".."===e||"."===e||""===e)&&(/^spec\/(?!admin\/).+\.yaml$/.test(e)||/^src\/(?:components|transformers|handlers|elements|_[^/]+)\/.+\.tsx?$/.test(e)),M=e=>`Left ${e} as it is: it was edited outside the variant comparison, so restoring the baseline would overwrite that edit. Review the file and remove what the option added to it`,$=async e=>{try{return await t(e,"utf8")}catch(e){if(e instanceof Error&&"code"in e&&"ENOENT"===e.code)return null;throw e}},C=async(t,i)=>{if(null===i)return void await r(t,{force:!0});await e(o(t),{recursive:!0});let n=`${t}.variant-${crypto.randomUUID()}`;try{await s(n,i),await a(n,t)}finally{await r(n,{force:!0})}},R=(e,t)=>{let i=v({rawProjectFiles:e,phxDefinitions:u(b())},{analyzer:N,evalExpressionParser:F,referenceStore:new m,logger:t});if(!i.ok)throw Error(`Cannot apply variant: ${i.errors.map(e=>`[${e.code}] ${e.message}`).join("\n")}`);let{configurator:a,admin:r,appMetadata:s,infra:o,dataSpec:n}=i.value.applicationSpec,l=i.value.categorizedFiles,p=new Set([...l.webhooks,...l.expressions,...l.actions,...l.invariants,...l.migrations,...l.adminMigrations,...l.adminExpressions,...l.adminInvariants,...l.handlers.filter(e=>"pinned"===e.webhookMembership||"named-handler"===e.webhookMembership),...l.components.filter(e=>"pinned"===e.webhookMembership),...l.adminComponents.filter(e=>"pinned"===e.webhookMembership)].flatMap(e=>[e.file.name,...e.deps]));return JSON.stringify({webhookFiles:e.files.filter(g).filter(e=>p.has(e.name)).sort((e,t)=>e.name.localeCompare(t.name)),appMetadata:s,infra:o,dataSpec:n,model:a.latestModel,schema:a.configurationSchema,dataSchemas:a.dataSchemas,adminModel:r.latestModel,adminSchema:r.configurationSchema,assistant:a.assistant?.sdl,assistantSettings:a.assistantServerSettings,assistantPrompt:a.assistant?y(a.assistant):null},(e,t)=>t instanceof Map?[...t.entries()]:t)};export class VariantFileSession{props;queue=new h(1,1/0);applied=new Map;baseline=new Map;contract;settled=!1;constructor(e){for(let t of(this.props=e,e.rawFiles.files))g(t)&&E(t.name)&&this.baseline.set(t.name,t.content);this.contract=R(e.rawFiles,e.logger)}static async create(e){await VariantFileSession.recover(e.projectRoot,e.logger);let t=await S({projectRoot:e.projectRoot,envs:{}});return new VariantFileSession({...e,rawFiles:t})}static async recover(e,t){let i=await $(n(e,k));if(null!==i){for(let a of j.parse(JSON.parse(i))){let i=await VariantFileSession.resolveFile(e,a.fileName),r=await $(i);if(r!==a.applied&&r!==a.original&&r!==a.previous){t.warn(M(a.fileName));continue}await C(i,a.original)}await r(n(e,k),{force:!0})}}static async resolveFile(e,t){if(!E(t))throw Error(`Cannot override ${t}: variants support frontend spec and TypeScript files only. Keep server code, dependencies, environment files and assets unchanged`);let a=await i(e),r=p(a,t),s=r;for(;;)try{let e=await i(s),r=l(a,e);if(".."===r||r.startsWith(`..${c}`))throw Error(`Cannot override ${t}: its symbolic link leaves the project`);if(e!==s)throw Error(`Cannot override ${t}: it uses a symbolic link. Variant edits require regular files so restoration preserves the original file`);break}catch(e){if(!(e instanceof Error&&"code"in e&&"ENOENT"===e.code))throw e;s=o(s)}return r}getFiles(){return[...this.baseline].map(([e,t])=>({fileName:e,content:t}))}apply(e){return this.queue.add(async()=>{if(this.settled)throw Error("This variant comparison has already ended");let t=new Map;for(let i of e){if(await VariantFileSession.resolveFile(this.props.projectRoot,i.fileName),t.has(i.fileName))throw Error(`Cannot apply variant: ${i.fileName} is specified twice`);t.set(i.fileName,i.content)}if(t.size>0){let e=this.props.rawFiles.files.filter(e=>!t.has(e.name));for(let[i,a]of t)null!==a&&e.push(w(i,a));if(R(f(e),this.props.logger)!==this.contract)throw Error("Cannot apply variant: it changes the model, schemas, data or deployment settings. Variants must need no server preparation")}await this.writeTarget(t,"refuse")})}finish(e){return this.queue.add(async()=>{this.settled||(e||await this.writeTarget(new Map,"keep"),await r(n(this.props.projectRoot,k),{force:!0}),this.settled=!0)})}async writeTarget(t,i){let a=new Set([...this.applied.keys(),...t.keys()]);if(0===a.size)return;let r=new Map;for(let e of a){let t=await VariantFileSession.resolveFile(this.props.projectRoot,e),a=this.applied.has(e)?this.applied.get(e):this.baseline.get(e)??null;if(await $(t)===a){r.set(e,t);continue}if("refuse"===i)throw Error(`Cannot switch variant: ${e} was edited outside the preview, and switching would overwrite that edit. Choose the option that is shown, or close the comparison with \`phoenix variants --close\`, which keeps the edit`);this.props.logger.warn(M(e))}let s=[...r.keys()].map(e=>({fileName:e,original:this.baseline.get(e)??null,previous:this.applied.has(e)?this.applied.get(e)??null:this.baseline.get(e)??null,applied:t.has(e)?t.get(e)??null:this.baseline.get(e)??null}));await e(n(this.props.projectRoot,".phoenix"),{recursive:!0}),await C(n(this.props.projectRoot,k),JSON.stringify(s));let o=new Map(this.applied);try{for(let e of s){let t=r.get(e.fileName);void 0!==t&&await C(t,e.applied)}}catch(e){for(let[e,t]of r)await C(t,o.has(e)?o.get(e)??null:this.baseline.get(e)??null);throw await C(n(this.props.projectRoot,k),JSON.stringify([...o].map(([e,t])=>({fileName:e,original:this.baseline.get(e)??null,applied:t})))),e}for(let[e,i]of(this.applied.clear(),t))this.applied.set(e,i);this.props.onFilesChanged(s.map(e=>({fileName:e.fileName,content:e.applied})))}}