@salsita-ai/sdk 0.50.0-develop.5f7528aea8 → 0.50.0-develop.5fb57b988e

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 (1604) hide show
  1. package/README.md +24 -15
  2. package/dist/admin/default-admin-elements.d.ts +9 -0
  3. package/dist/admin/default-admin-elements.js +1 -0
  4. package/dist/admin/default-elements/built-in-entity-element.d.ts +10 -0
  5. package/dist/admin/default-elements/built-in-entity-element.js +1 -0
  6. package/dist/admin/default-elements/built-in-layout-element.d.ts +10 -0
  7. package/dist/admin/default-elements/built-in-layout-element.js +1 -0
  8. package/dist/admin/default-elements/index.d.ts +2 -0
  9. package/dist/admin/default-elements/index.js +1 -0
  10. package/dist/admin/index.d.ts +1 -0
  11. package/dist/admin/index.js +1 -1
  12. package/dist/application/index.d.ts +1 -0
  13. package/dist/application/index.js +1 -1
  14. package/dist/application/mount-application.d.ts +1 -1
  15. package/dist/application/mount-application.js +1 -1
  16. package/dist/application/mount-configurator.d.ts +19 -0
  17. package/dist/application/mount-configurator.js +1 -0
  18. package/dist/application/mounted-application-runtime.d.ts +4 -0
  19. package/dist/application/mounted-application-runtime.js +1 -0
  20. package/dist/application/register-web-component.d.ts +2 -0
  21. package/dist/application/register-web-component.js +1 -0
  22. package/dist/application-spec/caching/content-diff.js +1 -1
  23. package/dist/application-spec/core/application-file.d.ts +0 -2
  24. package/dist/application-spec/core/application-file.js +1 -1
  25. package/dist/application-spec/core/enhanced-json-value.d.ts +2 -99
  26. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  27. package/dist/application-spec/core/index.d.ts +1 -1
  28. package/dist/application-spec/core/index.js +1 -1
  29. package/dist/application-spec/core/json-schema.d.ts +2 -52
  30. package/dist/application-spec/core/json-value.d.ts +1 -1
  31. package/dist/application-spec/core/markers/index.d.ts +1 -1
  32. package/dist/application-spec/core/markers/index.js +1 -1
  33. package/dist/application-spec/core/markers/msg-marker.d.ts +2 -28
  34. package/dist/application-spec/core/markers/msg-marker.js +1 -1
  35. package/dist/application-spec/core/markers/raw-eval-write-marker.d.ts +1 -1
  36. package/dist/application-spec/core/markers/raw-eval-write-marker.js +1 -1
  37. package/dist/application-spec/core/markers/raw-read-write-marker.js +1 -1
  38. package/dist/application-spec/{core → enhanced-json}/eval-to-constant.d.ts +1 -1
  39. package/dist/application-spec/enhanced-json/index.d.ts +4 -0
  40. package/dist/application-spec/enhanced-json/index.js +1 -0
  41. package/dist/application-spec/enhanced-json/is-enhanced-json-array.d.ts +2 -0
  42. package/dist/application-spec/enhanced-json/is-enhanced-json-array.js +1 -0
  43. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.d.ts +18 -0
  44. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.js +1 -0
  45. package/dist/application-spec/enhanced-json/schema-from-value.d.ts +24 -0
  46. package/dist/application-spec/enhanced-json/schema-from-value.js +1 -0
  47. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.d.ts +14 -0
  48. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.js +1 -0
  49. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.d.ts +12 -0
  50. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.js +1 -0
  51. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.d.ts +13 -0
  52. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.js +1 -0
  53. package/dist/application-spec/errors/diagnostic-codes.d.ts +27 -1
  54. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  55. package/dist/application-spec/errors/diagnostic-messages.d.ts +38 -2
  56. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  57. package/dist/application-spec/generate-application/code/common/code-imports.js +1 -1
  58. package/dist/application-spec/generate-application/code/common/env-reader.js +2 -2
  59. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  60. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  61. package/dist/application-spec/generate-application/code/common/single-quoted-string.d.ts +6 -0
  62. package/dist/application-spec/generate-application/code/common/single-quoted-string.js +1 -0
  63. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  64. package/dist/application-spec/generate-application/code/generate-application-code.d.ts +3 -2
  65. package/dist/application-spec/generate-application/code/generate-application-code.js +1 -1
  66. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +15 -14
  67. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  68. package/dist/application-spec/generate-application/code/standalone-app-files.d.ts +2 -2
  69. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  70. package/dist/application-spec/generate-application/code/story-files.js +1 -1
  71. package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -0
  72. package/dist/application-spec/generate-application/code/templates/application-types.js +6 -6
  73. package/dist/application-spec/generate-application/code/templates/common/doc-comment.d.ts +2 -0
  74. package/dist/application-spec/generate-application/code/templates/common/doc-comment.js +1 -0
  75. package/dist/application-spec/generate-application/code/templates/common/format-property-key.d.ts +7 -0
  76. package/dist/application-spec/generate-application/code/templates/common/format-property-key.js +1 -0
  77. package/dist/application-spec/generate-application/code/templates/common/schema-to-type-string.js +3 -3
  78. package/dist/application-spec/generate-application/code/templates/configurator-config.js +6 -4
  79. package/dist/application-spec/generate-application/code/templates/configurator-globals.d.ts +2 -1
  80. package/dist/application-spec/generate-application/code/templates/configurator-globals.js +19 -6
  81. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +35 -0
  82. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +5 -0
  83. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.d.ts +1 -0
  84. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.js +1 -0
  85. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.d.ts +1 -1
  86. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +7 -7
  87. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  88. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  89. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +67 -73
  90. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +8 -0
  91. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  92. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  93. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-presets.js +1 -1
  94. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  95. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +21 -21
  96. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.d.ts +1 -1
  97. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.js +2 -2
  98. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +3 -2
  99. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  100. package/dist/application-spec/generate-application/code/templates/domain-spec.js +12 -12
  101. package/dist/application-spec/generate-application/code/templates/eslint-config.d.ts +5 -0
  102. package/dist/application-spec/generate-application/code/templates/eslint-config.js +4 -5
  103. package/dist/application-spec/generate-application/code/templates/frontend-config.js +3 -5
  104. package/dist/application-spec/generate-application/code/templates/gitignore.js +0 -3
  105. package/dist/application-spec/generate-application/code/templates/global-definition/generate-action-types.js +7 -7
  106. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.d.ts +12 -0
  107. package/dist/application-spec/generate-application/code/templates/global-definition/generate-assistant-form-element-types.js +7 -0
  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 +33 -0
  110. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +2 -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 +5 -9
  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 +1 -1
  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 +9 -3
  125. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.d.ts +10 -0
  126. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.js +7 -0
  127. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  128. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +2 -2
  129. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +33 -7
  130. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -2
  131. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
  132. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
  133. package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
  134. package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
  135. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
  136. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
  137. package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
  138. package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
  139. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
  140. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
  141. package/dist/application-spec/generate-application/code/templates/story/phx-module.d.ts +8 -2
  142. package/dist/application-spec/generate-application/code/templates/story/phx-module.js +15 -3
  143. package/dist/application-spec/generate-application/code/templates/story/wrapper.d.ts +3 -0
  144. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +4 -5
  145. package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
  146. package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
  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/implementations/phx-application-types.d.ts +25 -0
  151. package/dist/application-spec/generate-application/implementations/phx-application-types.js +1 -0
  152. package/dist/application-spec/generate-application/implementations/phx-domain.d.ts +36 -0
  153. package/dist/application-spec/generate-application/implementations/phx-domain.js +1 -0
  154. package/dist/application-spec/generate-application/implementations/phx-model.d.ts +24 -0
  155. package/dist/application-spec/generate-application/implementations/phx-model.js +1 -0
  156. package/dist/application-spec/generate-application/implementations/phx.d.ts +22 -0
  157. package/dist/application-spec/generate-application/implementations/phx.js +1 -0
  158. package/dist/application-spec/generate-application/index.d.ts +4 -0
  159. package/dist/application-spec/generate-application/index.js +1 -1
  160. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +6 -5
  161. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +1 -1
  162. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +12 -4
  163. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  164. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.d.ts +16 -0
  165. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.js +1 -0
  166. package/dist/application-spec/generate-application/runtime/admin-runtime/states-runtime.d.ts +2 -2
  167. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +35 -8
  168. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  169. package/dist/application-spec/generate-application/runtime/application-spec-slice.d.ts +71 -0
  170. package/dist/application-spec/generate-application/runtime/application-spec-slice.js +1 -0
  171. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +7 -6
  172. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +1 -1
  173. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +12 -5
  174. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  175. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.d.ts +16 -0
  176. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.js +1 -0
  177. package/dist/application-spec/generate-application/runtime/configurator-runtime/states-runtime.d.ts +2 -2
  178. package/dist/application-spec/generate-application/runtime/create-application.d.ts +57 -0
  179. package/dist/application-spec/generate-application/runtime/create-application.js +1 -0
  180. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +42 -0
  181. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.js +1 -0
  182. package/dist/application-spec/generate-application/runtime/factory-data/index.d.ts +3 -0
  183. package/dist/application-spec/generate-application/runtime/factory-data/index.js +1 -0
  184. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +13 -0
  185. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -0
  186. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +15 -0
  187. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -0
  188. package/dist/application-spec/generate-application/runtime/generate-runtime-instance.d.ts +1 -1
  189. package/dist/application-spec/generate-application/runtime/generate-runtime-instance.js +1 -1
  190. package/dist/application-spec/generate-application/runtime/index.d.ts +8 -0
  191. package/dist/application-spec/generate-application/runtime/index.js +1 -0
  192. package/dist/application-spec/generate-application/runtime/migrations/index.d.ts +1 -0
  193. package/dist/application-spec/generate-application/runtime/migrations/index.js +1 -0
  194. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +53 -0
  195. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +1 -0
  196. package/dist/application-spec/generate-application/runtime/sections/actions-runtime.d.ts +1 -2
  197. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +2 -2
  198. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +3 -2
  199. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  200. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +3 -2
  201. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +1 -1
  202. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +6 -3
  203. package/dist/application-spec/generate-application/runtime/sections/component-optic.js +1 -1
  204. package/dist/application-spec/generate-application/runtime/sections/data-runtime.d.ts +4 -4
  205. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +14 -6
  206. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  207. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +10 -7
  208. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  209. package/dist/application-spec/generate-application/runtime/sections/preset-runtime.d.ts +2 -3
  210. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +4 -2
  211. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.js +1 -1
  212. package/dist/application-spec/generate-application/runtime/sections/theme-runtime.d.ts +2 -2
  213. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +3 -3
  214. package/dist/application-spec/generate-application/runtime/spec-code/index.d.ts +2 -0
  215. package/dist/application-spec/generate-application/runtime/spec-code/index.js +1 -0
  216. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +18 -0
  217. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.js +1 -0
  218. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.d.ts +17 -0
  219. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.js +1 -0
  220. package/dist/application-spec/generate-application/runtime/spec-runtime.d.ts +21 -0
  221. package/dist/application-spec/generate-application/runtime/spec-runtime.js +1 -0
  222. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.d.ts +9 -0
  223. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.js +1 -0
  224. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.d.ts +8 -0
  225. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.js +1 -0
  226. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +28 -0
  227. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.js +1 -0
  228. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +5 -0
  229. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -0
  230. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +168 -0
  231. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -0
  232. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +40 -0
  233. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.js +1 -0
  234. package/dist/application-spec/index.d.ts +1 -0
  235. package/dist/application-spec/index.js +1 -1
  236. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +34 -0
  237. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  238. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.d.ts +16 -0
  239. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.js +9 -0
  240. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts +9 -0
  241. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
  242. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  243. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  244. package/dist/application-spec/parse-application-files/merge/merged-assistant.d.ts +13 -4
  245. package/dist/application-spec/parse-application-files/merge/merged-assistant.js +1 -1
  246. package/dist/application-spec/parse-application-files/merge/merged-infra.d.ts +4 -11
  247. package/dist/application-spec/parse-application-files/merge/merged-transformers.d.ts +2 -4
  248. package/dist/application-spec/parse-application-files/parse-application-files.js +1 -1
  249. package/dist/application-spec/parse-application-files/raw-spec/parse-yaml-spec-file.js +1 -1
  250. package/dist/application-spec/parse-application-files/raw-spec/raw-acl.d.ts +2 -2
  251. package/dist/application-spec/parse-application-files/raw-spec/raw-acl.js +1 -1
  252. package/dist/application-spec/parse-application-files/raw-spec/raw-admin-pages.d.ts +3 -24
  253. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +72 -24
  254. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  255. package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.d.ts +1 -1
  256. package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.js +1 -1
  257. package/dist/application-spec/parse-application-files/raw-spec/raw-resources.d.ts +19 -64
  258. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  259. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-pages.d.ts +3 -20
  260. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  261. package/dist/application-spec/parse-application-files/spec/application/admin-spec/states.d.ts +3 -5
  262. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  263. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/states.d.ts +3 -8
  264. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  265. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  266. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.d.ts +3 -0
  267. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js +1 -0
  268. package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +5 -0
  269. package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -0
  270. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.d.ts +6 -0
  271. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.js +1 -0
  272. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.d.ts +8 -0
  273. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.js +1 -0
  274. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts +10 -0
  275. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.js +1 -0
  276. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.d.ts +98 -0
  277. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.js +1 -0
  278. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts +13 -0
  279. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js +1 -0
  280. package/dist/application-spec/parse-application-files/spec/components/bindings/index.d.ts +2 -0
  281. package/dist/application-spec/parse-application-files/spec/components/bindings/index.js +1 -1
  282. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.d.ts +24 -0
  283. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js +1 -0
  284. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding.d.ts +3 -13
  285. package/dist/application-spec/parse-application-files/spec/components/bindings/write-binding.d.ts +4 -32
  286. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +3 -62
  287. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  288. package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts +8 -0
  289. package/dist/application-spec/parse-application-files/spec/components/component-state-type.js +1 -0
  290. package/dist/application-spec/parse-application-files/spec/components/components.d.ts +3 -4
  291. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts +13 -0
  292. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js +1 -0
  293. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -2
  294. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  295. package/dist/application-spec/parse-application-files/spec/components/sdk-component-entry.d.ts +1 -1
  296. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.d.ts +14 -0
  297. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.js +1 -0
  298. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +8 -3
  299. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  300. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +9 -7
  301. package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
  302. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +24 -0
  303. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -0
  304. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.d.ts +13 -0
  305. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.js +1 -0
  306. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
  307. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
  308. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +12 -30
  309. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  310. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -2
  311. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  312. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.d.ts +4 -71
  313. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  314. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +5 -3
  315. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  316. package/dist/application-spec/parse-application-files/spec/invariants/invariant.d.ts +5 -21
  317. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +6 -16
  318. package/dist/application-spec/parse-application-files/spec/invariants/invariants.js +1 -1
  319. package/dist/application-spec/parse-application-files/spec/model/aliases.d.ts +3 -9
  320. package/dist/application-spec/parse-application-files/spec/model/common-types.d.ts +6 -14
  321. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +6 -31
  322. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  323. package/dist/application-spec/parse-application-files/spec/model/entity-types.d.ts +3 -8
  324. package/dist/application-spec/parse-application-files/spec/model/index.d.ts +1 -0
  325. package/dist/application-spec/parse-application-files/spec/model/index.js +1 -1
  326. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.d.ts +10 -0
  327. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.js +1 -0
  328. package/dist/application-spec/parse-application-files/spec/model/model-version-key.d.ts +3 -3
  329. package/dist/application-spec/parse-application-files/spec/model/names/action-name.d.ts +3 -7
  330. package/dist/application-spec/parse-application-files/spec/model/names/alias-name.d.ts +3 -7
  331. package/dist/application-spec/parse-application-files/spec/model/names/entity-or-alias-name.d.ts +3 -8
  332. package/dist/application-spec/parse-application-files/spec/model/names/entity-type-name.d.ts +3 -8
  333. package/dist/application-spec/parse-application-files/spec/model/names/expression-name.d.ts +3 -6
  334. package/dist/application-spec/parse-application-files/spec/model/names/instance-name.d.ts +3 -7
  335. package/dist/application-spec/parse-application-files/spec/model/names/invariant-name.d.ts +3 -3
  336. package/dist/application-spec/parse-application-files/spec/model/names/shape-property-name.d.ts +3 -11
  337. package/dist/application-spec/parse-application-files/spec/model/names/violation-type-name.d.ts +3 -3
  338. package/dist/application-spec/parse-application-files/spec/model/presets.d.ts +6 -29
  339. package/dist/application-spec/parse-application-files/spec/sections/actions.d.ts +6 -23
  340. package/dist/application-spec/parse-application-files/spec/sections/app-metadata.d.ts +3 -18
  341. package/dist/application-spec/parse-application-files/spec/sections/application-version.d.ts +3 -7
  342. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.d.ts +9 -0
  343. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-form-elements.js +1 -0
  344. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.d.ts +4 -1
  345. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  346. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant.js +1 -1
  347. package/dist/application-spec/parse-application-files/spec/sections/data-spec/chunks.d.ts +6 -23
  348. package/dist/application-spec/parse-application-files/spec/sections/data-spec/custom-data-spec.d.ts +1 -16
  349. package/dist/application-spec/parse-application-files/spec/sections/data-spec/data-entry-key.d.ts +3 -9
  350. package/dist/application-spec/parse-application-files/spec/sections/data-spec/data-spec.d.ts +1 -10
  351. package/dist/application-spec/parse-application-files/spec/sections/data-spec/swatch-data-spec.d.ts +1 -14
  352. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  353. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  354. package/dist/application-spec/parse-application-files/spec/sections/state-value.d.ts +3 -7
  355. package/dist/application-spec/parse-application-files/spec/sections/theme.d.ts +3 -10
  356. package/dist/application-spec/parse-application-files/spec/sections/transformers.d.ts +4 -11
  357. package/dist/application-spec/parse-application-files/spec/sections/ui.d.ts +3 -12
  358. package/dist/client/authorized-client.d.ts +3 -1
  359. package/dist/client/authorized-client.js +1 -1
  360. package/dist/client/contract.d.ts +30 -1
  361. package/dist/client/contract.js +1 -1
  362. package/dist/client/index.d.ts +1 -1
  363. package/dist/client/local-authorized-client.d.ts +3 -1
  364. package/dist/client/local-authorized-client.js +1 -1
  365. package/dist/client/memory-authorized-client.d.ts +4 -1
  366. package/dist/client/memory-authorized-client.js +1 -1
  367. package/dist/client/phoenix-api.d.ts +834 -116
  368. package/dist/configurator/ConfiguratorApp.js +1 -1
  369. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.d.ts +2 -0
  370. package/dist/configurator/app-loader-content/DefaultAppLoaderContent.js +5 -0
  371. package/dist/configurator/app-loader-content/index.d.ts +1 -0
  372. package/dist/configurator/app-loader-content/index.js +1 -0
  373. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  374. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  375. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  376. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +105 -9
  377. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  378. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +58 -9
  379. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  380. package/dist/configurator/application-runtime/extensions/systems/camera-control-system/camera-control-system.d.ts +1 -1
  381. package/dist/configurator/application-runtime/extensions/systems/canvas-system.d.ts +8 -0
  382. package/dist/configurator/application-runtime/extensions/systems/canvas-system.js +1 -1
  383. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  384. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.d.ts +8 -0
  385. package/dist/configurator/application-runtime/extensions/systems/export-system/export-busy-error.js +1 -0
  386. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.d.ts +23 -1
  387. package/dist/configurator/application-runtime/extensions/systems/export-system/export-system.js +1 -1
  388. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.d.ts +12 -0
  389. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.js +1 -0
  390. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +82 -55
  391. package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
  392. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +85 -7
  393. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  394. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  395. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  396. package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.d.ts +40 -0
  397. package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.js +1 -0
  398. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.d.ts +14 -5
  399. package/dist/configurator/application-runtime/extensions/systems/image-rendering-system/image-rendering-system.js +1 -1
  400. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  401. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  402. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  403. package/dist/configurator/common/configurator-interface.d.ts +145 -5
  404. package/dist/configurator/common/configurator-interface.js +1 -1
  405. package/dist/configurator/common/index.d.ts +3 -1
  406. package/dist/configurator/common/index.js +1 -1
  407. package/dist/configurator/common/use-reset-camera.d.ts +6 -0
  408. package/dist/configurator/common/use-reset-camera.js +1 -0
  409. package/dist/configurator/configuration-not-found-page/BuiltInConfigurationNotFoundPage.d.ts +5 -0
  410. package/dist/configurator/configuration-not-found-page/BuiltInConfigurationNotFoundPage.js +1 -0
  411. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +6 -0
  412. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -0
  413. package/dist/configurator/configuration-not-found-page/index.d.ts +2 -0
  414. package/dist/configurator/configuration-not-found-page/index.js +1 -0
  415. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +12 -0
  416. package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -0
  417. package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
  418. package/dist/configurator/configurator-context/ViewportStateSync.d.ts +2 -2
  419. package/dist/configurator/configurator-context/ViewportStateSync.js +1 -1
  420. package/dist/configurator/configurator-context/configurator-hooks/index.d.ts +0 -1
  421. package/dist/configurator/configurator-context/configurator-hooks/index.js +1 -1
  422. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +11 -1
  423. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.js +1 -1
  424. package/dist/configurator/configurator-context/index.d.ts +0 -5
  425. package/dist/configurator/configurator-context/index.js +1 -1
  426. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.d.ts +6 -0
  427. package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.js +1 -0
  428. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.d.ts +7 -0
  429. package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.js +1 -0
  430. package/dist/configurator/configurator-error-page/index.d.ts +2 -0
  431. package/dist/configurator/configurator-error-page/index.js +1 -0
  432. package/dist/configurator/index.d.ts +10 -0
  433. package/dist/configurator/index.js +1 -1
  434. package/dist/configurator/pages/ConfiguratorErrorPage.d.ts +0 -1
  435. package/dist/configurator/pages/ConfiguratorErrorPage.js +1 -1
  436. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  437. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +3 -2
  438. package/dist/configurator/pages/DefaultNotAuthenticatedPage.d.ts +8 -0
  439. package/dist/configurator/pages/DefaultNotAuthenticatedPage.js +1 -0
  440. package/dist/configurator/pages/DefaultPresetUi.d.ts +7 -0
  441. package/dist/configurator/pages/DefaultPresetUi.js +1 -0
  442. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  443. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  444. package/dist/configurator/pages/PresetCreationErrorPage.d.ts +1 -1
  445. package/dist/configurator/pages/PresetCreationErrorPage.js +1 -1
  446. package/dist/configurator/pages/RootPage.js +1 -1
  447. package/dist/configurator/pages/configurator-layout-name.d.ts +2 -0
  448. package/dist/configurator/pages/configurator-layout-name.js +1 -0
  449. package/dist/configurator/pages/default-configurator-elements.d.ts +13 -0
  450. package/dist/configurator/pages/default-configurator-elements.js +1 -0
  451. package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +10 -0
  452. package/dist/configurator/pages/default-elements/built-in-entity-element.js +1 -0
  453. package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +10 -0
  454. package/dist/configurator/pages/default-elements/built-in-layout-element.js +1 -0
  455. package/dist/configurator/pages/default-elements/domain-control-elements.d.ts +6 -0
  456. package/dist/configurator/pages/default-elements/domain-control-elements.js +1 -0
  457. package/dist/configurator/pages/default-elements/index.d.ts +5 -0
  458. package/dist/configurator/pages/default-elements/index.js +1 -0
  459. package/dist/configurator/pages/default-elements/recipe-panel-elements.d.ts +3 -0
  460. package/dist/configurator/pages/default-elements/recipe-panel-elements.js +1 -0
  461. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.d.ts +3 -0
  462. package/dist/configurator/pages/default-elements/scene-controls/BuiltInAddEntityFab.js +1 -0
  463. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.d.ts +3 -0
  464. package/dist/configurator/pages/default-elements/scene-controls/BuiltInDeleteEntityFab.js +1 -0
  465. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.d.ts +3 -0
  466. package/dist/configurator/pages/default-elements/scene-controls/BuiltInNavigationHotspot.js +1 -0
  467. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.d.ts +3 -0
  468. package/dist/configurator/pages/default-elements/scene-controls/BuiltInSelectionHotspot.js +1 -0
  469. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.d.ts +3 -0
  470. package/dist/configurator/pages/default-elements/scene-controls/BuiltInToolMenuFab.js +1 -0
  471. package/dist/configurator/pages/default-elements/scene-controls/index.d.ts +6 -0
  472. package/dist/configurator/pages/default-elements/scene-controls/index.js +1 -0
  473. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.d.ts +6 -0
  474. package/dist/configurator/pages/default-elements/scene-controls/scene-control-elements.js +1 -0
  475. package/dist/configurator/pages/default-elements/sidebar-footer-elements.d.ts +7 -0
  476. package/dist/configurator/pages/default-elements/sidebar-footer-elements.js +1 -0
  477. package/dist/configurator/pages/default-elements/toolbar-elements.d.ts +7 -0
  478. package/dist/configurator/pages/default-elements/toolbar-elements.js +1 -0
  479. package/dist/configurator/pages/error-boundaries/DevContextFallback.js +1 -1
  480. package/dist/configurator/pages/error-boundaries/DevLoadingFallback.js +1 -1
  481. package/dist/configurator/pages/error-boundaries/GeneralErrorBoundary.js +1 -1
  482. package/dist/configurator/pages/error-boundaries/LoadingErrorBoundary.js +1 -1
  483. package/dist/configurator/pages/index.d.ts +1 -0
  484. package/dist/configurator/pages/index.js +1 -1
  485. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.d.ts +4 -0
  486. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.js +1 -0
  487. package/dist/configurator/preset-screen-elements/PresetPageActionElement.d.ts +4 -0
  488. package/dist/configurator/preset-screen-elements/PresetPageActionElement.js +1 -0
  489. package/dist/configurator/preset-screen-elements/index.d.ts +2 -0
  490. package/dist/configurator/preset-screen-elements/index.js +1 -0
  491. package/dist/configurator/scene/index.d.ts +1 -0
  492. package/dist/configurator/scene/index.js +1 -1
  493. package/dist/configurator/scene/scene-controls/DeleteEntityFab.js +1 -1
  494. package/dist/configurator/scene/scene-controls/SelectionHotspot.js +1 -1
  495. package/dist/configurator/scene/scene-controls/ToolFab.d.ts +4 -0
  496. package/dist/configurator/scene/scene-controls/ToolFab.js +1 -1
  497. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  498. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  499. package/dist/configurator/scene/scene-controls/use-scene-control-tooltip.d.ts +2 -1
  500. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  501. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  502. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  503. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  504. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  505. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  506. package/dist/configurator/scene/scene-entity/scene-controls/SceneEntityHtmlHotspots.js +1 -1
  507. package/dist/configurator/toolbar-actions/index.d.ts +3 -0
  508. package/dist/configurator/toolbar-actions/index.js +1 -0
  509. package/dist/configurator/toolbar-actions/use-assistant-panel.d.ts +18 -0
  510. package/dist/configurator/toolbar-actions/use-assistant-panel.js +1 -0
  511. package/dist/configurator/toolbar-actions/use-measurements.d.ts +35 -0
  512. package/dist/configurator/toolbar-actions/use-measurements.js +1 -0
  513. package/dist/configurator/toolbar-actions/use-toolbar-actions.d.ts +100 -0
  514. package/dist/configurator/toolbar-actions/use-toolbar-actions.js +1 -0
  515. package/dist/configurator/toolbar-actions/use-toolbar-help.d.ts +7 -0
  516. package/dist/configurator/toolbar-actions/use-toolbar-help.js +1 -0
  517. package/dist/configurator/ui/assistant/AssistantChips.d.ts +10 -3
  518. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  519. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +6 -0
  520. package/dist/configurator/ui/assistant/AssistantComposer.js +2 -1
  521. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -2
  522. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  523. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  524. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  525. package/dist/configurator/ui/assistant/alert/AssistantAlert.d.ts +8 -0
  526. package/dist/configurator/ui/assistant/alert/AssistantAlert.js +1 -0
  527. package/dist/configurator/ui/assistant/alert/index.d.ts +2 -0
  528. package/dist/configurator/ui/assistant/alert/index.js +1 -0
  529. package/dist/configurator/ui/assistant/alert/remark-alerts.d.ts +10 -0
  530. package/dist/configurator/ui/assistant/alert/remark-alerts.js +1 -0
  531. package/dist/configurator/ui/assistant/attachments/MessageImages.d.ts +11 -0
  532. package/dist/configurator/ui/assistant/attachments/MessageImages.js +1 -0
  533. package/dist/configurator/ui/assistant/attachments/index.d.ts +2 -0
  534. package/dist/configurator/ui/assistant/attachments/index.js +1 -0
  535. package/dist/configurator/ui/assistant/attachments/prepare-image.d.ts +19 -0
  536. package/dist/configurator/ui/assistant/attachments/prepare-image.js +1 -0
  537. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  538. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  539. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  540. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  541. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  542. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  543. package/dist/configurator/ui/assistant/entity-link/index.d.ts +2 -0
  544. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  545. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +19 -0
  546. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -0
  547. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +11 -0
  548. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -0
  549. package/dist/configurator/ui/assistant/form/describe-build-errors.d.ts +6 -0
  550. package/dist/configurator/ui/assistant/form/describe-build-errors.js +1 -0
  551. package/dist/configurator/ui/assistant/form/form-model.d.ts +37 -0
  552. package/dist/configurator/ui/assistant/form/form-model.js +1 -0
  553. package/dist/configurator/ui/assistant/form/form-state.d.ts +4 -0
  554. package/dist/configurator/ui/assistant/form/form-state.js +1 -0
  555. package/dist/configurator/ui/assistant/form/index.d.ts +4 -0
  556. package/dist/configurator/ui/assistant/form/index.js +1 -0
  557. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +10 -0
  558. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -0
  559. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +13 -0
  560. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -0
  561. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.d.ts +3 -0
  562. package/dist/configurator/ui/assistant/form/registry/built-in-form-elements.js +1 -0
  563. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.d.ts +31 -0
  564. package/dist/configurator/ui/assistant/form/registry/create-assistant-form-element.js +1 -0
  565. package/dist/configurator/ui/assistant/form/registry/form-element-definition.d.ts +16 -0
  566. package/dist/configurator/ui/assistant/form/registry/form-element-definition.js +1 -0
  567. package/dist/configurator/ui/assistant/form/registry/form-registry.d.ts +31 -0
  568. package/dist/configurator/ui/assistant/form/registry/form-registry.js +1 -0
  569. package/dist/configurator/ui/assistant/form/registry/index.d.ts +6 -0
  570. package/dist/configurator/ui/assistant/form/registry/index.js +1 -0
  571. package/dist/configurator/ui/assistant/form/registry/use-form-registry.d.ts +8 -0
  572. package/dist/configurator/ui/assistant/form/registry/use-form-registry.js +1 -0
  573. package/dist/configurator/ui/assistant/form-elements/FormCard.d.ts +9 -0
  574. package/dist/configurator/ui/assistant/form-elements/FormCard.js +1 -0
  575. package/dist/configurator/ui/assistant/form-elements/FormConfirm.d.ts +9 -0
  576. package/dist/configurator/ui/assistant/form-elements/FormConfirm.js +1 -0
  577. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +6 -0
  578. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -0
  579. package/dist/configurator/ui/assistant/form-elements/FormNumber.d.ts +9 -0
  580. package/dist/configurator/ui/assistant/form-elements/FormNumber.js +1 -0
  581. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +6 -0
  582. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -0
  583. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +6 -0
  584. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -0
  585. package/dist/configurator/ui/assistant/form-elements/FormSwatch.d.ts +10 -0
  586. package/dist/configurator/ui/assistant/form-elements/FormSwatch.js +1 -0
  587. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +6 -0
  588. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -0
  589. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.d.ts +10 -0
  590. package/dist/configurator/ui/assistant/form-elements/clamp-form-number.js +1 -0
  591. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +38 -0
  592. package/dist/configurator/ui/assistant/form-elements/form-element-props.js +1 -0
  593. package/dist/configurator/ui/assistant/form-elements/index.d.ts +9 -0
  594. package/dist/configurator/ui/assistant/form-elements/index.js +1 -0
  595. package/dist/configurator/ui/assistant/index.d.ts +3 -0
  596. package/dist/configurator/ui/assistant/index.js +1 -1
  597. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +16 -0
  598. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -0
  599. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.d.ts +34 -0
  600. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.js +1 -0
  601. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.d.ts +25 -0
  602. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.js +1 -0
  603. package/dist/configurator/ui/assistant/reference-link/index.d.ts +3 -0
  604. package/dist/configurator/ui/assistant/reference-link/index.js +1 -0
  605. package/dist/configurator/ui/assistant/reference-link/reference-styles.d.ts +12 -0
  606. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -0
  607. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.d.ts +8 -0
  608. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.js +1 -0
  609. package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +9 -0
  610. package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -0
  611. package/dist/configurator/ui/assistant/resource-image/index.d.ts +3 -0
  612. package/dist/configurator/ui/assistant/resource-image/index.js +1 -0
  613. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +2 -0
  614. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -0
  615. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.d.ts +5 -0
  616. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.js +1 -0
  617. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +9 -0
  618. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -0
  619. package/dist/configurator/ui/assistant/screenshots/index.d.ts +3 -0
  620. package/dist/configurator/ui/assistant/screenshots/index.js +1 -0
  621. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +22 -0
  622. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -0
  623. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.d.ts +8 -0
  624. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.js +1 -0
  625. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +4 -2
  626. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  627. package/dist/configurator/ui/assistant/thread-items.d.ts +10 -1
  628. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  629. package/dist/configurator/ui/assistant/tool-chip.d.ts +19 -9
  630. package/dist/configurator/ui/assistant/tool-chip.js +1 -1
  631. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -1
  632. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  633. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  634. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  635. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  636. package/dist/configurator/ui/configurator-layout/slots/canvas/GPUAccelerationDisabled.js +1 -1
  637. package/dist/configurator/ui/configurator-layout/slots/canvas/LayoutCanvas.js +1 -1
  638. package/dist/configurator/ui/configurator-layout/slots/canvas/SharedCanvas.js +1 -1
  639. package/dist/configurator/ui/configurator-layout/slots/canvas/WebGLNotSupported.js +1 -1
  640. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.d.ts +101 -0
  641. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  642. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  643. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  644. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.d.ts +1 -1
  645. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.js +1 -1
  646. package/dist/configurator/ui/configurator-layout/slots/readonly-banner/CloneToEditDialog.js +1 -1
  647. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  648. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  649. package/dist/configurator/ui/configurator-layout/slots/services/Services.js +1 -1
  650. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  651. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  652. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.d.ts +1 -1
  653. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.js +1 -1
  654. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  655. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  656. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +0 -74
  657. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  658. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  659. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.d.ts +5 -0
  660. package/dist/configurator/ui/configurator-layout/universal/ExportingOverlay.js +1 -0
  661. package/dist/configurator/ui/configurator-layout/universal/Layout.js +1 -1
  662. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  663. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +1 -1
  664. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -1
  665. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +1 -1
  666. package/dist/configurator/ui/index.d.ts +1 -0
  667. package/dist/configurator/ui/index.js +1 -1
  668. package/dist/configurator/ui/legacy/chat/MobileChat.js +1 -1
  669. package/dist/configurator/ui/legacy/layout/common/CommonFinalizeButton.js +1 -1
  670. package/dist/configurator/ui/legacy/layout/common/CommonSummaryButton.js +1 -1
  671. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  672. package/dist/configurator/ui/legacy/layout/common/ReactiveInterfaceLayout.js +1 -1
  673. package/dist/configurator/ui/legacy/layout/common/ResponsiveFinalizeButton.js +1 -1
  674. package/dist/configurator/ui/legacy/layout/common/SummaryReadLayout.js +1 -1
  675. package/dist/configurator/ui/legacy/layout/simple/SimpleOwnerLayout.js +1 -1
  676. package/dist/configurator/ui/legacy/layout/simple/SimpleSidebar.js +1 -1
  677. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  678. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  679. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  680. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  681. package/dist/configurator/ui/legacy/layout/steps/StepsSideBar.js +1 -1
  682. package/dist/configurator/ui/legacy/layout/steps/StepsSidebarFooter.js +1 -1
  683. package/dist/configurator/ui/legacy/layout/tabs/TabsOwnerLayout.js +1 -1
  684. package/dist/configurator/ui/legacy/layout/tabs/TabsSidebar.js +1 -1
  685. package/dist/configurator/ui/legacy/toolbar/common/DimensionUnitSelector.js +1 -1
  686. package/dist/configurator/ui/legacy/toolbar/common/MeasurementsIndicatorsSwitch.js +1 -1
  687. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/FullscreenToolbarAction.js +1 -1
  688. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/HelpToolbarAction.js +1 -1
  689. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/MeasurementsToolbarAction.js +1 -1
  690. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/UndoRedoToolbarGroup.js +1 -1
  691. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.d.ts +0 -7
  692. package/dist/configurator/ui/phoenix-layout-elements/AppLoader.js +2 -6
  693. package/dist/configurator/ui/phoenix-layout-elements/AssistantToolbarButton.js +1 -1
  694. package/dist/configurator/ui/phoenix-layout-elements/EnterFullscreenToolbarButton.js +1 -1
  695. package/dist/configurator/ui/phoenix-layout-elements/ExitFullscreenToolbarButton.js +1 -1
  696. package/dist/configurator/ui/phoenix-layout-elements/HelpToolbarButton.js +1 -1
  697. package/dist/configurator/ui/phoenix-layout-elements/LanguageMenuAction.js +1 -1
  698. package/dist/configurator/ui/phoenix-layout-elements/LanguageToolbarButton.js +1 -1
  699. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.d.ts +1 -0
  700. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.js +1 -1
  701. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.d.ts +1 -0
  702. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.js +1 -1
  703. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsMenuAction.js +1 -1
  704. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsToolbarButton.js +1 -1
  705. package/dist/configurator/ui/phoenix-layout-elements/RedoToolbarButton.js +1 -1
  706. package/dist/configurator/ui/phoenix-layout-elements/ShareToolbarButton.js +1 -1
  707. package/dist/configurator/ui/phoenix-layout-elements/UndoToolbarButton.js +1 -1
  708. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  709. package/dist/configurator/ui/phoenix-layout-elements/header/common/horizontal-tabs/DesktopHorizontalTabs.js +1 -1
  710. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.d.ts +1 -1
  711. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/DesktopNavigationSteps.js +1 -1
  712. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -8
  713. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  714. package/dist/configurator/ui/phoenix-layout-elements/index.d.ts +8 -1
  715. package/dist/configurator/ui/phoenix-layout-elements/index.js +1 -1
  716. package/dist/configurator/ui/phoenix-layout-elements/measurements/DimensionUnitSelector.js +1 -1
  717. package/dist/configurator/ui/phoenix-layout-elements/measurements/MeasurementsIndicatorsSwitch.js +1 -1
  718. package/dist/configurator/ui/phoenix-layout-elements/share/ShareModal.js +1 -1
  719. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.d.ts +7 -8
  720. package/dist/configurator/ui/phoenix-layout-elements/share/use-share.js +1 -1
  721. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/BasicFinalizeButton.js +1 -1
  722. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/use-basic-sidebar-footer.js +1 -1
  723. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/CustomFinalizeButton.js +1 -1
  724. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/EnterSummaryButton.js +1 -1
  725. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/FinalizeActions.js +1 -1
  726. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/NextStepButton.js +1 -1
  727. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  728. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  729. package/dist/configurator/ui/preset-layout/PresetUi.d.ts +4 -2
  730. package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
  731. package/dist/configurator/ui/preset-layout/index.d.ts +6 -1
  732. package/dist/configurator/ui/preset-layout/index.js +1 -1
  733. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.d.ts +10 -0
  734. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -0
  735. package/dist/configurator/ui/save-message-snackbars/index.d.ts +1 -0
  736. package/dist/configurator/ui/save-message-snackbars/index.js +1 -0
  737. package/dist/docs/3d-scene/cameras/custom.mdx +4 -2
  738. package/dist/docs/complex-use-cases/focus-mode.mdx +2 -0
  739. package/dist/docs/controls/select-child-entity/cardselect.mdx +1 -0
  740. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  741. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  742. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  743. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  744. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  745. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  746. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  747. package/dist/docs/drag-and-drop/room-planner.mdx +1 -1
  748. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  749. package/dist/docs/fabs/basic.mdx +6 -2
  750. package/dist/docs/index.json +136 -1
  751. package/dist/docs/integrations/webcomponent-api/basics.mdx +2 -0
  752. package/dist/docs/layouts/custom-layout.mdx +2597 -0
  753. package/dist/docs/layouts/gallery/ardent-compressor.mdx +3516 -0
  754. package/dist/docs/layouts/gallery/corvid-drone.mdx +3428 -0
  755. package/dist/docs/layouts/gallery/fenwick-window.mdx +2803 -0
  756. package/dist/docs/layouts/gallery/ferrule-bar-station.mdx +6567 -0
  757. package/dist/docs/layouts/gallery/kestrel-kettle.mdx +1858 -0
  758. package/dist/docs/layouts/gallery/nightjar-guitar.mdx +3698 -0
  759. package/dist/docs/layouts/gallery/sunfold-solar.mdx +2683 -0
  760. package/dist/docs/layouts/gallery/tidepool-aquascape.mdx +5203 -0
  761. package/dist/docs/layouts/header/fixed.mdx +2 -2
  762. package/dist/docs/layouts/header/floating.mdx +2 -2
  763. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  764. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  765. package/dist/docs/other-features/client-side-rendering/declarative.mdx +2 -2
  766. package/dist/docs/other-features/error-5xx.mdx +1 -1
  767. package/dist/docs/other-features/navigation-hotspot.mdx +2 -0
  768. package/dist/docs/other-features/not-found-404.mdx +1 -1
  769. package/dist/docs/other-features/transformers.mdx +4 -0
  770. package/dist/docs/phoenix/application-states.mdx +9 -7
  771. package/dist/docs/phoenix/clerk-sign-in.mdx +1 -1
  772. package/dist/docs/phoenix/components.mdx +6 -0
  773. package/dist/docs/phoenix/configurator-interface.mdx +309 -23
  774. package/dist/docs/phoenix/deployments.mdx +2 -6
  775. package/dist/docs/phoenix/domain-model.mdx +6 -1
  776. package/dist/docs/phoenix/finalization.mdx +1 -1
  777. package/dist/docs/phoenix/getting-started.mdx +6 -3
  778. package/dist/docs/phoenix/layout-slots.mdx +137 -0
  779. package/dist/docs/phoenix/localization.mdx +10 -6
  780. package/dist/docs/phoenix/migration-guide.mdx +27 -14
  781. package/dist/docs/phoenix/phoenix-cli.mdx +109 -25
  782. package/dist/docs/phoenix/project-structure.mdx +80 -38
  783. package/dist/docs/phoenix/quickstart.mdx +7 -7
  784. package/dist/docs/phoenix/sdk-builder-workflow.mdx +14 -12
  785. package/dist/docs/phoenix/sessions-and-access.mdx +2 -0
  786. package/dist/docs/phoenix/testing.mdx +148 -0
  787. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  788. package/dist/docs/phoenix/webhooks.mdx +26 -5
  789. package/dist/docs/selection-and-highlight/hotspots.mdx +2 -0
  790. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  791. package/dist/domain/admin-domain/index.js +1 -1
  792. package/dist/domain/application/application-config.d.ts +9 -25
  793. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  794. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  795. package/dist/domain/application/assistant/assistant-manifest.d.ts +38 -5
  796. package/dist/domain/application/assistant/assistant-manifest.js +1 -1
  797. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +48 -9
  798. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  799. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  800. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  801. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  802. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  803. package/dist/domain/application/assistant/form/assistant-form-element-name.d.ts +11 -0
  804. package/dist/domain/application/assistant/form/assistant-form-element-name.js +8 -0
  805. package/dist/domain/application/assistant/form/assistant-form-elements.d.ts +174 -0
  806. package/dist/domain/application/assistant/form/assistant-form-elements.js +1 -0
  807. package/dist/domain/application/assistant/form/assistant-resource-path.d.ts +10 -0
  808. package/dist/domain/application/assistant/form/assistant-resource-path.js +1 -0
  809. package/dist/domain/application/assistant/form/index.d.ts +4 -0
  810. package/dist/domain/application/assistant/form/index.js +1 -0
  811. package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +3 -0
  812. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  813. package/dist/domain/application/assistant/index.d.ts +8 -2
  814. package/dist/domain/application/assistant/index.js +1 -1
  815. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  816. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  817. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  818. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  819. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +48 -0
  820. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  821. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  822. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  823. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  824. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  825. package/dist/domain/application/assistant-mutations.js +1 -1
  826. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -1
  827. package/dist/domain/application/configurator-builder.d.ts +11 -2
  828. package/dist/domain/application/configurator-builder.js +1 -1
  829. package/dist/domain/application/index.d.ts +1 -2
  830. package/dist/domain/application/index.js +1 -1
  831. package/dist/domain/application/standard-properties.js +1 -1
  832. package/dist/domain/application/web-component-property.d.ts +3 -1
  833. package/dist/domain/application/web-component-property.js +1 -1
  834. package/dist/domain/available-system-components/available-system-components.d.ts +11 -0
  835. package/dist/domain/available-system-components/available-system-components.js +1 -0
  836. package/dist/domain/available-system-components/index.d.ts +1 -0
  837. package/dist/domain/available-system-components/index.js +1 -0
  838. package/dist/domain/core/component/domain-component-optic.d.ts +1 -2
  839. package/dist/domain/core/component/system-component-filter.d.ts +15 -2
  840. package/dist/domain/core/expression/constant-expressions.d.ts +16 -8
  841. package/dist/domain/core/invariant/violation.d.ts +50 -2
  842. package/dist/domain/core/invariant/violation.js +1 -1
  843. package/dist/domain/core/model/model.d.ts +1 -1
  844. package/dist/domain/core/recipe/recipes.d.ts +18 -50
  845. package/dist/domain/core/recipe/recipes.js +1 -1
  846. package/dist/domain/core/schema/extended-schema-validator.js +1 -1
  847. package/dist/domain/core/state/state.d.ts +1 -1
  848. package/dist/domain/{domain-builder.d.ts → domain-builder/domain-builder.d.ts} +11 -5
  849. package/dist/domain/domain-builder/domain-builder.js +1 -0
  850. package/dist/domain/domain-builder/index.d.ts +1 -0
  851. package/dist/domain/domain-builder/index.js +1 -0
  852. package/dist/domain/domain-context/index.d.ts +1 -1
  853. package/dist/domain/domain-context/store-system/store-system.d.ts +5 -0
  854. package/dist/domain/domain-context/store-system/store-system.js +1 -1
  855. package/dist/domain/domain-context/undo-system.d.ts +28 -1
  856. package/dist/domain/domain-context/undo-system.js +1 -1
  857. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  858. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  859. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  860. package/dist/domain/domain-runtime/access/types.js +1 -1
  861. package/dist/domain/domain-runtime/application.d.ts +39 -0
  862. package/dist/domain/domain-runtime/application.js +1 -0
  863. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +15 -13
  864. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  865. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  866. package/dist/domain/domain-runtime/domain-runtime.d.ts +76 -20
  867. package/dist/domain/domain-runtime/domain-runtime.js +1 -1
  868. package/dist/domain/domain-runtime/environment/initialize.d.ts +1 -1
  869. package/dist/domain/domain-runtime/environment/types.d.ts +1 -1
  870. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +21 -0
  871. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  872. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  873. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  874. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  875. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  876. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  877. package/dist/domain/domain-runtime/errors/index.js +1 -0
  878. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  879. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  880. package/dist/domain/domain-runtime/index.d.ts +2 -0
  881. package/dist/domain/domain-runtime/index.js +1 -1
  882. package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
  883. package/dist/domain/domain-runtime/spec/index.js +1 -1
  884. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  885. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  886. package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +27 -12
  887. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -1
  888. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.d.ts +12 -0
  889. package/dist/domain/domain-runtime/spec/module-checks/find-assistant-form-element-errors.js +1 -0
  890. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +3 -1
  891. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -1
  892. package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.d.ts +23 -0
  893. package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.js +1 -0
  894. package/dist/domain/domain-runtime/spec/module-checks/project-modules.d.ts +8 -1
  895. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -1
  896. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -1
  897. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +3 -4
  898. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -1
  899. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -1
  900. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -1
  901. package/dist/domain/domain-runtime/spec/selectors.d.ts +3 -1
  902. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  903. package/dist/domain/domain-runtime/spec/types.d.ts +2 -0
  904. package/dist/domain/domain-runtime/web-component/actions.d.ts +3 -0
  905. package/dist/domain/domain-runtime/web-component/actions.js +1 -1
  906. package/dist/domain/domain-runtime/web-component/initialize.d.ts +1 -0
  907. package/dist/domain/domain-runtime/web-component/initialize.js +1 -1
  908. package/dist/domain/domain-runtime/web-component/selectors.d.ts +2 -0
  909. package/dist/domain/domain-runtime/web-component/selectors.js +1 -1
  910. package/dist/domain/domain-runtime/web-component/types.d.ts +6 -3
  911. package/dist/domain/extensions/attribute-switch.d.ts +1 -1
  912. package/dist/domain/extensions/attribute-switch.js +1 -1
  913. package/dist/domain/extensions/canvas-config.d.ts +1 -1
  914. package/dist/domain/extensions/common/angle-indicator-schema.d.ts +2 -2
  915. package/dist/domain/extensions/common/dimension-indicator-schema.d.ts +2 -2
  916. package/dist/domain/extensions/editable-angle-indicator.d.ts +1 -1
  917. package/dist/domain/extensions/editable-distance-dimension-indicator.d.ts +1 -1
  918. package/dist/domain/extensions/editable-offset-indicator.d.ts +1 -1
  919. package/dist/domain/extensions/editable-offset-indicator.js +1 -1
  920. package/dist/domain/extensions/export-images/agent-screenshot.d.ts +30 -0
  921. package/dist/domain/extensions/export-images/agent-screenshot.js +1 -0
  922. package/dist/domain/extensions/export-images/client-side-image.d.ts +14 -0
  923. package/dist/domain/extensions/export-images/client-side-image.js +1 -0
  924. package/dist/domain/extensions/export-images/index.d.ts +3 -0
  925. package/dist/domain/extensions/export-images/index.js +1 -0
  926. package/dist/domain/extensions/{save-template-thumbnail.d.ts → export-images/save-template-thumbnail.d.ts} +4 -4
  927. package/dist/domain/extensions/export-images/save-template-thumbnail.js +1 -0
  928. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -1
  929. package/dist/domain/extensions/fit-selection-perspective-camera-component.js +1 -1
  930. package/dist/domain/extensions/horizontal-tabs.d.ts +2 -2
  931. package/dist/domain/extensions/index.d.ts +1 -2
  932. package/dist/domain/extensions/index.js +1 -1
  933. package/dist/domain/extensions/list-selector-dimension-indicator.d.ts +1 -1
  934. package/dist/domain/extensions/navigation-steps.d.ts +2 -2
  935. package/dist/domain/extensions/offset-indicator.js +1 -1
  936. package/dist/domain/extensions/rotation-handle.d.ts +2 -2
  937. package/dist/domain/extensions/scene-entity-animation.js +1 -1
  938. package/dist/domain/index.d.ts +3 -2
  939. package/dist/domain/index.js +1 -1
  940. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  941. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +27 -9
  942. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  943. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  944. package/dist/domain/mocks/create-mock-domain.js +1 -1
  945. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  946. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  947. package/dist/domain/mocks/create-test-application-config.js +1 -0
  948. package/dist/domain/mocks/index.d.ts +1 -0
  949. package/dist/domain/mocks/index.js +1 -1
  950. package/dist/domain/projections/blender-projections/camera.d.ts +1 -1
  951. package/dist/domain/spec/application/admin-pages-section.d.ts +29 -0
  952. package/dist/domain/spec/application/admin-pages-section.js +1 -0
  953. package/dist/domain/spec/application/admin-pages.d.ts +26 -0
  954. package/dist/domain/spec/application/admin-pages.js +1 -0
  955. package/dist/domain/spec/application/admin-states.d.ts +5 -0
  956. package/dist/domain/spec/application/admin-states.js +1 -0
  957. package/dist/domain/spec/application/configurator-states.d.ts +8 -0
  958. package/dist/domain/spec/application/configurator-states.js +1 -0
  959. package/dist/domain/spec/application/index.d.ts +5 -0
  960. package/dist/domain/spec/application/index.js +1 -0
  961. package/dist/domain/spec/components/bindings/index.d.ts +2 -0
  962. package/dist/domain/spec/components/bindings/index.js +1 -0
  963. package/dist/domain/spec/components/bindings/read-binding.d.ts +13 -0
  964. package/dist/domain/spec/components/bindings/read-binding.js +1 -0
  965. package/dist/domain/spec/components/bindings/write-binding.d.ts +32 -0
  966. package/dist/domain/spec/components/bindings/write-binding.js +1 -0
  967. package/dist/{application-spec/parse-application-files → domain}/spec/components/component-entry.d.ts +3 -11
  968. package/dist/domain/spec/components/component-entry.js +1 -0
  969. package/dist/domain/spec/components/component-filter.d.ts +54 -0
  970. package/dist/domain/spec/components/component-filter.js +1 -0
  971. package/dist/domain/spec/components/component-filters.d.ts +10 -0
  972. package/dist/domain/spec/components/component-filters.js +1 -0
  973. package/dist/domain/spec/components/components.d.ts +4 -0
  974. package/dist/domain/spec/components/components.js +1 -0
  975. package/dist/domain/spec/components/index.d.ts +6 -0
  976. package/dist/domain/spec/components/index.js +1 -0
  977. package/dist/domain/spec/components/sdk-code-ref.d.ts +9 -0
  978. package/dist/domain/spec/enhanced-json/enhanced-json-value.d.ts +30 -0
  979. package/dist/domain/spec/enhanced-json/enhanced-json-value.js +1 -0
  980. package/dist/domain/spec/enhanced-json/index.d.ts +1 -0
  981. package/dist/domain/spec/enhanced-json/index.js +1 -0
  982. package/dist/{application-spec/parse-application-files → domain}/spec/expressions/expression.d.ts +9 -30
  983. package/dist/domain/spec/expressions/expression.js +1 -0
  984. package/dist/domain/spec/expressions/expressions.d.ts +27 -0
  985. package/dist/domain/spec/expressions/expressions.js +1 -0
  986. package/dist/domain/spec/expressions/index.d.ts +5 -0
  987. package/dist/domain/spec/expressions/index.js +1 -0
  988. package/dist/domain/spec/expressions/memo-eval-plan.d.ts +70 -0
  989. package/dist/domain/spec/expressions/memo-eval-plan.js +1 -0
  990. package/dist/domain/spec/expressions/relation-expression-params.d.ts +11 -0
  991. package/dist/domain/spec/expressions/relation-expression-params.js +1 -0
  992. package/dist/domain/spec/expressions/sdk-expression-implementation.d.ts +24 -0
  993. package/dist/domain/spec/index.d.ts +9 -0
  994. package/dist/domain/spec/index.js +1 -0
  995. package/dist/domain/spec/invariants/index.d.ts +2 -0
  996. package/dist/domain/spec/invariants/index.js +1 -0
  997. package/dist/domain/spec/invariants/invariant.d.ts +24 -0
  998. package/dist/domain/spec/invariants/invariant.js +1 -0
  999. package/dist/domain/spec/invariants/invariants.d.ts +14 -0
  1000. package/dist/domain/spec/invariants/invariants.js +1 -0
  1001. package/dist/domain/spec/json-schema.d.ts +52 -0
  1002. package/dist/domain/spec/json-schema.js +1 -0
  1003. package/dist/domain/spec/markers/index.d.ts +3 -0
  1004. package/dist/domain/spec/markers/index.js +1 -0
  1005. package/dist/domain/spec/markers/msg-marker.d.ts +28 -0
  1006. package/dist/domain/spec/markers/msg-marker.js +1 -0
  1007. package/dist/domain/spec/model/aliases.d.ts +9 -0
  1008. package/dist/domain/spec/model/aliases.js +1 -0
  1009. package/dist/domain/spec/model/common-types.d.ts +15 -0
  1010. package/dist/domain/spec/model/common-types.js +1 -0
  1011. package/dist/domain/spec/model/defaults.d.ts +33 -0
  1012. package/dist/domain/spec/model/defaults.js +1 -0
  1013. package/dist/domain/spec/model/entity-types.d.ts +8 -0
  1014. package/dist/domain/spec/model/entity-types.js +1 -0
  1015. package/dist/domain/spec/model/index.d.ts +7 -0
  1016. package/dist/domain/spec/model/index.js +1 -0
  1017. package/dist/domain/spec/model/model-version-key.d.ts +3 -0
  1018. package/dist/domain/spec/model/model-version-key.js +1 -0
  1019. package/dist/domain/spec/model/names/action-name.d.ts +7 -0
  1020. package/dist/domain/spec/model/names/action-name.js +1 -0
  1021. package/dist/domain/spec/model/names/alias-name.d.ts +7 -0
  1022. package/dist/domain/spec/model/names/alias-name.js +1 -0
  1023. package/dist/domain/spec/model/names/entity-or-alias-name.d.ts +8 -0
  1024. package/dist/domain/spec/model/names/entity-or-alias-name.js +1 -0
  1025. package/dist/domain/spec/model/names/entity-type-name.d.ts +8 -0
  1026. package/dist/domain/spec/model/names/entity-type-name.js +1 -0
  1027. package/dist/domain/spec/model/names/expression-name.d.ts +6 -0
  1028. package/dist/domain/spec/model/names/expression-name.js +1 -0
  1029. package/dist/domain/spec/model/names/index.d.ts +9 -0
  1030. package/dist/domain/spec/model/names/index.js +1 -0
  1031. package/dist/domain/spec/model/names/instance-name.d.ts +7 -0
  1032. package/dist/domain/spec/model/names/instance-name.js +1 -0
  1033. package/dist/domain/spec/model/names/invariant-name.d.ts +3 -0
  1034. package/dist/domain/spec/model/names/invariant-name.js +1 -0
  1035. package/dist/domain/spec/model/names/shape-property-name.d.ts +11 -0
  1036. package/dist/domain/spec/model/names/shape-property-name.js +1 -0
  1037. package/dist/domain/spec/model/names/violation-type-name.d.ts +3 -0
  1038. package/dist/domain/spec/model/names/violation-type-name.js +1 -0
  1039. package/dist/domain/spec/model/presets.d.ts +30 -0
  1040. package/dist/domain/spec/model/presets.js +1 -0
  1041. package/dist/domain/spec/sections/actions.d.ts +23 -0
  1042. package/dist/domain/spec/sections/actions.js +1 -0
  1043. package/dist/domain/spec/sections/app-metadata.d.ts +18 -0
  1044. package/dist/domain/spec/sections/app-metadata.js +1 -0
  1045. package/dist/domain/spec/sections/application-version.d.ts +7 -0
  1046. package/dist/domain/spec/sections/application-version.js +1 -0
  1047. package/dist/domain/spec/sections/data-spec/chunks.d.ts +23 -0
  1048. package/dist/domain/spec/sections/data-spec/chunks.js +1 -0
  1049. package/dist/domain/spec/sections/data-spec/custom-data-spec-entry.d.ts +16 -0
  1050. package/dist/domain/spec/sections/data-spec/custom-data-spec-entry.js +1 -0
  1051. package/dist/domain/spec/sections/data-spec/data-entry-key.d.ts +9 -0
  1052. package/dist/domain/spec/sections/data-spec/data-entry-key.js +1 -0
  1053. package/dist/domain/spec/sections/data-spec/index.d.ts +5 -0
  1054. package/dist/domain/spec/sections/data-spec/index.js +1 -0
  1055. package/dist/domain/spec/sections/data-spec/parsed-data-spec-entries.d.ts +10 -0
  1056. package/dist/domain/spec/sections/data-spec/parsed-data-spec-entries.js +1 -0
  1057. package/dist/domain/spec/sections/data-spec/swatch-data-spec-entry.d.ts +14 -0
  1058. package/dist/domain/spec/sections/data-spec/swatch-data-spec-entry.js +1 -0
  1059. package/dist/domain/spec/sections/index.d.ts +9 -0
  1060. package/dist/domain/spec/sections/index.js +1 -0
  1061. package/dist/domain/spec/sections/infra/acl.d.ts +12 -0
  1062. package/dist/domain/spec/sections/infra/acl.js +1 -0
  1063. package/dist/domain/spec/sections/infra/index.d.ts +3 -0
  1064. package/dist/domain/spec/sections/infra/index.js +1 -0
  1065. package/dist/domain/spec/sections/infra/resource-entry.d.ts +46 -0
  1066. package/dist/domain/spec/sections/infra/resource-entry.js +1 -0
  1067. package/dist/domain/spec/sections/infra/resources-config.d.ts +10 -0
  1068. package/dist/domain/spec/sections/infra/resources-config.js +1 -0
  1069. package/dist/domain/spec/sections/state-value.d.ts +7 -0
  1070. package/dist/domain/spec/sections/state-value.js +1 -0
  1071. package/dist/domain/spec/sections/theme.d.ts +10 -0
  1072. package/dist/domain/spec/sections/theme.js +1 -0
  1073. package/dist/domain/spec/sections/transformers.d.ts +15 -0
  1074. package/dist/domain/spec/sections/transformers.js +1 -0
  1075. package/dist/domain/spec/sections/ui.d.ts +12 -0
  1076. package/dist/domain/spec/sections/ui.js +1 -0
  1077. package/dist/domain/system-components/application-config.d.ts +2 -2
  1078. package/dist/domain/system-components/child-entity-selection.js +1 -1
  1079. package/dist/domain/system-components/collision-box-geometry.d.ts +4 -2
  1080. package/dist/domain/system-components/collision-geometry.d.ts +4 -2
  1081. package/dist/domain/system-components/collision-point-geometry.d.ts +4 -2
  1082. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  1083. package/dist/domain/system-components/common/recipes.d.ts +21 -3
  1084. package/dist/domain/system-components/common/recipes.js +1 -1
  1085. package/dist/domain/system-components/common/scene-entity-control-schema.d.ts +3 -0
  1086. package/dist/domain/system-components/common/scene-entity-control-schema.js +1 -1
  1087. package/dist/domain/system-components/constraint.d.ts +10 -23
  1088. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  1089. package/dist/domain/system-components/drag-handle.js +1 -1
  1090. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  1091. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  1092. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  1093. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  1094. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -1
  1095. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  1096. package/dist/domain/system-components/material-swatch.js +1 -1
  1097. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  1098. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  1099. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  1100. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  1101. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  1102. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  1103. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  1104. package/dist/domain/system-definitions.js +1 -1
  1105. package/dist/domain/utils/eval-cache.d.ts +1 -1
  1106. package/dist/domain/utils/index.d.ts +2 -0
  1107. package/dist/domain/utils/index.js +1 -0
  1108. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  1109. package/dist/editor/Editor.d.ts +7 -0
  1110. package/dist/editor/Editor.js +1 -1
  1111. package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
  1112. package/dist/editor/domain-editors/apply-spec-update.d.ts +10 -2
  1113. package/dist/editor/domain-editors/apply-spec-update.js +1 -1
  1114. package/dist/editor/domain-editors/use-implementation-files.d.ts +6 -14
  1115. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  1116. package/dist/editor/graphql/GraphQLPanel.js +1 -1
  1117. package/dist/editor/mocks/CreateMockYaml.js +2 -2
  1118. package/dist/editor/mocks/EditorMockContext.d.ts +2 -0
  1119. package/dist/editor/mocks/EditorMockContext.js +1 -1
  1120. package/dist/editor/screenshot/ScreenshotHandler.js +1 -1
  1121. package/dist/globals/index.d.ts +2 -0
  1122. package/dist/i18n/locales/cs/messages.js +1 -1
  1123. package/dist/i18n/locales/da/messages.js +1 -1
  1124. package/dist/i18n/locales/de/messages.js +1 -1
  1125. package/dist/i18n/locales/de-AT/messages.js +1 -1
  1126. package/dist/i18n/locales/en/messages.js +1 -1
  1127. package/dist/i18n/locales/en-AU/messages.js +1 -1
  1128. package/dist/i18n/locales/en-GB/messages.js +1 -1
  1129. package/dist/i18n/locales/es/messages.js +1 -1
  1130. package/dist/i18n/locales/fr/messages.js +1 -1
  1131. package/dist/i18n/locales/hu/messages.js +1 -1
  1132. package/dist/i18n/locales/it/messages.js +1 -1
  1133. package/dist/i18n/locales/nl/messages.js +1 -1
  1134. package/dist/i18n/locales/pl/messages.js +1 -1
  1135. package/dist/i18n/locales/pt/messages.js +1 -1
  1136. package/dist/i18n/locales/ro/messages.js +1 -1
  1137. package/dist/i18n/locales/sk/messages.js +1 -1
  1138. package/dist/i18n/locales/tr/messages.js +1 -1
  1139. package/dist/legacy/domain-cli/gen/configurator-builder.js +13 -12
  1140. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -1
  1141. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  1142. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  1143. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  1144. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +176 -148
  1145. package/dist/legacy/domain-spec/spec/domain-spec.js +1 -1
  1146. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  1147. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  1148. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  1149. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +13 -1
  1150. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +15 -14
  1151. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +14 -12
  1152. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +14 -13
  1153. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +13 -11
  1154. package/dist/phoenix/application-spec/application-spec-builder.d.ts +0 -2
  1155. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  1156. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +1 -2
  1157. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  1158. package/dist/phoenix/application-spec/generate-application-spec-story.js +2 -2
  1159. package/dist/phoenix/application-spec/generate-project-files.d.ts +1 -2
  1160. package/dist/phoenix/application-spec/index.d.ts +1 -0
  1161. package/dist/phoenix/application-spec/index.js +1 -1
  1162. package/dist/phoenix/application-spec/project-files.js +1 -1
  1163. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +11 -0
  1164. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  1165. package/dist/phoenix/bin.d.ts +2 -0
  1166. package/dist/phoenix/bin.js +2 -0
  1167. package/dist/phoenix/check-configs/built-in-eslint-config.d.ts +9 -0
  1168. package/dist/phoenix/check-configs/built-in-eslint-config.js +1 -0
  1169. package/dist/phoenix/check-configs/eslint-config.d.ts +10 -0
  1170. package/dist/phoenix/check-configs/eslint-config.js +1 -0
  1171. package/dist/phoenix/check-configs/index.d.ts +8 -0
  1172. package/dist/phoenix/check-configs/index.js +1 -0
  1173. package/dist/phoenix/check-configs/typescript-project.d.ts +5 -0
  1174. package/dist/phoenix/check-configs/typescript-project.js +1 -0
  1175. package/dist/phoenix/cli.d.ts +0 -1
  1176. package/dist/phoenix/cli.js +1 -2
  1177. package/dist/phoenix/commands/activate-deployment.js +1 -1
  1178. package/dist/phoenix/commands/build.js +1 -1
  1179. package/dist/phoenix/commands/changelog.js +1 -1
  1180. package/dist/phoenix/commands/check.js +1 -1
  1181. package/dist/phoenix/commands/clean.js +1 -1
  1182. package/dist/phoenix/commands/cleanup-environment.js +2 -2
  1183. package/dist/phoenix/commands/create-environment.js +1 -1
  1184. package/dist/phoenix/commands/data.js +1 -1
  1185. package/dist/phoenix/commands/deploy.js +2 -2
  1186. package/dist/phoenix/commands/deployment-build-envs-command.js +1 -1
  1187. package/dist/phoenix/commands/deps/deps.d.ts +73 -0
  1188. package/dist/phoenix/commands/deps/deps.js +3 -0
  1189. package/dist/phoenix/commands/deps/index.d.ts +1 -0
  1190. package/dist/phoenix/commands/deps/index.js +1 -0
  1191. package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
  1192. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
  1193. package/dist/phoenix/commands/dev.js +4 -5
  1194. package/dist/phoenix/commands/docs.js +1 -1
  1195. package/dist/phoenix/commands/finish-deployment-command.js +1 -1
  1196. package/dist/phoenix/commands/fix.js +1 -1
  1197. package/dist/phoenix/commands/index.d.ts +1 -0
  1198. package/dist/phoenix/commands/index.js +1 -1
  1199. package/dist/phoenix/commands/init.d.ts +17 -5
  1200. package/dist/phoenix/commands/init.js +1 -1
  1201. package/dist/phoenix/commands/inspect-assets.js +1 -1
  1202. package/dist/phoenix/commands/link.js +1 -1
  1203. package/dist/phoenix/commands/list-environments.js +1 -1
  1204. package/dist/phoenix/commands/login.d.ts +4 -1
  1205. package/dist/phoenix/commands/login.js +2 -2
  1206. package/dist/phoenix/commands/prepare-deployment-command.js +2 -2
  1207. package/dist/phoenix/commands/prettier.js +1 -1
  1208. package/dist/phoenix/commands/register-deployment.js +1 -1
  1209. package/dist/phoenix/commands/scene.js +1 -1
  1210. package/dist/phoenix/commands/screenshot.js +1 -1
  1211. package/dist/phoenix/commands/state.js +1 -1
  1212. package/dist/phoenix/commands/story-build.js +3 -3
  1213. package/dist/phoenix/commands/story-create.js +1 -1
  1214. package/dist/phoenix/commands/story-dev.js +2 -2
  1215. package/dist/phoenix/commands/sync.js +1 -1
  1216. package/dist/phoenix/commands/unlink.js +1 -1
  1217. package/dist/phoenix/commands/variants.js +1 -1
  1218. package/dist/phoenix/editor-server/commands-router.js +1 -1
  1219. package/dist/phoenix/editor-server/editor-server.d.ts +2 -13
  1220. package/dist/phoenix/editor-server/editor-server.js +1 -1
  1221. package/dist/phoenix/editor-server/spec-router.js +1 -1
  1222. package/dist/phoenix/editor-server/trpc.d.ts +2 -12
  1223. package/dist/phoenix/lingui/index.d.ts +1 -0
  1224. package/dist/phoenix/lingui/index.js +1 -0
  1225. package/dist/phoenix/lingui/lingui.d.ts +18 -0
  1226. package/dist/phoenix/lingui/lingui.js +1 -0
  1227. package/dist/phoenix/services/application-spec-project-watcher.d.ts +13 -8
  1228. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  1229. package/dist/phoenix/services/cli-credentials.d.ts +3 -0
  1230. package/dist/phoenix/services/cli-credentials.js +1 -1
  1231. package/dist/phoenix/services/cli-exit.d.ts +5 -0
  1232. package/dist/phoenix/services/cli-exit.js +1 -0
  1233. package/dist/phoenix/services/deployment/deployment-preparation-service.d.ts +28 -0
  1234. package/dist/phoenix/services/deployment/deployment-preparation-service.js +1 -0
  1235. package/dist/phoenix/{commands → services/deployment}/generated-env-markers.d.ts +1 -0
  1236. package/dist/phoenix/services/deployment/generated-env-markers.js +1 -0
  1237. package/dist/phoenix/services/deployment/index.d.ts +2 -0
  1238. package/dist/phoenix/services/deployment/index.js +1 -0
  1239. package/dist/phoenix/services/index.d.ts +5 -1
  1240. package/dist/phoenix/services/index.js +1 -1
  1241. package/dist/phoenix/services/lingui-watcher.js +1 -1
  1242. package/dist/phoenix/services/phoenix-store.d.ts +3 -0
  1243. package/dist/phoenix/services/phoenix-store.js +1 -1
  1244. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  1245. package/dist/phoenix/services/session/editor-server-handle.d.ts +5 -0
  1246. package/dist/phoenix/services/session/editor-server-handle.js +1 -0
  1247. package/dist/phoenix/services/session/index.d.ts +2 -0
  1248. package/dist/phoenix/services/session/index.js +1 -0
  1249. package/dist/phoenix/services/session/phoenix-application.d.ts +82 -0
  1250. package/dist/phoenix/services/session/phoenix-application.js +2 -0
  1251. package/dist/phoenix/services/source-archive.d.ts +1 -0
  1252. package/dist/phoenix/services/source-archive.js +1 -1
  1253. package/dist/phoenix/services/swc.js +1 -1
  1254. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.d.ts +9 -0
  1255. package/dist/phoenix/services/telemetry/amplitude-telemetry-transport.js +1 -0
  1256. package/dist/phoenix/services/telemetry/index.d.ts +3 -0
  1257. package/dist/phoenix/services/telemetry/index.js +1 -0
  1258. package/dist/phoenix/services/telemetry/telemetry-client.d.ts +25 -0
  1259. package/dist/phoenix/services/telemetry/telemetry-client.js +1 -0
  1260. package/dist/phoenix/services/telemetry/telemetry-command.d.ts +2 -0
  1261. package/dist/phoenix/services/telemetry/telemetry-command.js +1 -0
  1262. package/dist/phoenix/services/telemetry/telemetry-event.d.ts +44 -0
  1263. package/dist/phoenix/services/telemetry/telemetry-event.js +1 -0
  1264. package/dist/phoenix/services/telemetry/telemetry-state.d.ts +25 -0
  1265. package/dist/phoenix/services/telemetry/telemetry-state.js +2 -0
  1266. package/dist/phoenix/services/vite-config.js +1 -1
  1267. package/dist/phoenix/utils/index.d.ts +4 -2
  1268. package/dist/phoenix/utils/index.js +1 -1
  1269. package/dist/phoenix/utils/node-version/index.d.ts +1 -0
  1270. package/dist/phoenix/utils/node-version/index.js +1 -0
  1271. package/dist/phoenix/utils/node-version/supported-node-version.d.ts +12 -0
  1272. package/dist/phoenix/utils/node-version/supported-node-version.js +4 -0
  1273. package/dist/phoenix/utils/package-info.d.ts +0 -9
  1274. package/dist/phoenix/utils/package-info.js +1 -1
  1275. package/dist/phoenix/utils/package-manager/index.d.ts +2 -0
  1276. package/dist/phoenix/utils/package-manager/index.js +1 -0
  1277. package/dist/phoenix/utils/package-manager/package-manager-commands.d.ts +19 -0
  1278. package/dist/phoenix/utils/package-manager/package-manager-commands.js +1 -0
  1279. package/dist/phoenix/utils/package-manager/pnpm-project.d.ts +9 -0
  1280. package/dist/phoenix/utils/package-manager/pnpm-project.js +1 -0
  1281. package/dist/phoenix/utils/run-command.d.ts +11 -0
  1282. package/dist/phoenix/utils/run-command.js +1 -1
  1283. package/dist/phoenix/utils/sdk-tool/index.d.ts +1 -0
  1284. package/dist/phoenix/utils/sdk-tool/index.js +1 -0
  1285. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.d.ts +15 -0
  1286. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.js +1 -0
  1287. package/dist/react-sdk/application-runtime/common-services/analytics/analytics-service.d.ts +1 -1
  1288. package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.d.ts +6 -0
  1289. package/dist/react-sdk/application-runtime/common-services/analytics/frontend-analytics.js +1 -0
  1290. package/dist/react-sdk/application-runtime/common-services/analytics/index.d.ts +1 -0
  1291. package/dist/react-sdk/application-runtime/common-services/analytics/index.js +1 -1
  1292. package/dist/react-sdk/application-runtime/common-services/initialize.d.ts +2 -2
  1293. package/dist/react-sdk/application-runtime/domain-application-context/chat-system.d.ts +1 -1
  1294. package/dist/react-sdk/application-runtime/hooks/index.d.ts +2 -0
  1295. package/dist/react-sdk/application-runtime/hooks/index.js +1 -1
  1296. package/dist/react-sdk/application-runtime/hooks/loading/index.d.ts +5 -0
  1297. package/dist/react-sdk/application-runtime/hooks/loading/index.js +1 -0
  1298. package/dist/react-sdk/application-runtime/hooks/loading/loader-host-context.d.ts +11 -0
  1299. package/dist/react-sdk/application-runtime/hooks/loading/loader-host-context.js +1 -0
  1300. package/dist/react-sdk/application-runtime/hooks/loading/use-is-awaiting-loading-phase.d.ts +8 -0
  1301. package/dist/react-sdk/application-runtime/hooks/loading/use-is-awaiting-loading-phase.js +1 -0
  1302. package/dist/react-sdk/application-runtime/hooks/loading/use-is-loader-hosted.d.ts +7 -0
  1303. package/dist/react-sdk/application-runtime/hooks/loading/use-is-loader-hosted.js +1 -0
  1304. package/dist/react-sdk/application-runtime/hooks/loading/use-loading-actions.d.ts +9 -0
  1305. package/dist/react-sdk/application-runtime/hooks/loading/use-loading-actions.js +1 -0
  1306. package/dist/react-sdk/application-runtime/hooks/loading/use-loading-application.d.ts +24 -0
  1307. package/dist/react-sdk/application-runtime/hooks/loading/use-loading-application.js +1 -0
  1308. package/dist/react-sdk/application-runtime/hooks/responsive/index.d.ts +3 -0
  1309. package/dist/react-sdk/application-runtime/hooks/responsive/index.js +1 -0
  1310. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.d.ts +9 -0
  1311. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.js +1 -0
  1312. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.d.ts +26 -0
  1313. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.js +1 -0
  1314. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.d.ts +10 -0
  1315. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.js +1 -0
  1316. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.d.ts +24 -0
  1317. package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.js +1 -0
  1318. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +7 -0
  1319. package/dist/react-sdk/application-runtime/hooks/use-access-service.js +1 -1
  1320. package/dist/react-sdk/application-runtime/hooks/use-phoenix-element-slots.d.ts +2 -1
  1321. package/dist/react-sdk/application-runtime/hooks/use-web-component-readonly-sync.d.ts +4 -11
  1322. package/dist/react-sdk/application-runtime/hooks/use-web-component-readonly-sync.js +1 -1
  1323. package/dist/react-sdk/application-runtime/hooks/use-web-component.d.ts +5 -0
  1324. package/dist/react-sdk/application-runtime/hooks/use-web-component.js +1 -1
  1325. package/dist/react-sdk/application-runtime/host-properties/actions.d.ts +15 -0
  1326. package/dist/react-sdk/application-runtime/host-properties/actions.js +1 -0
  1327. package/dist/react-sdk/application-runtime/host-properties/connect-host-properties.d.ts +30 -0
  1328. package/dist/react-sdk/application-runtime/host-properties/connect-host-properties.js +1 -0
  1329. package/dist/react-sdk/application-runtime/host-properties/domain-host-properties.d.ts +7 -0
  1330. package/dist/react-sdk/application-runtime/host-properties/domain-host-properties.js +1 -0
  1331. package/dist/react-sdk/application-runtime/host-properties/host-property-descriptors.d.ts +21 -0
  1332. package/dist/react-sdk/application-runtime/host-properties/host-property-descriptors.js +1 -0
  1333. package/dist/react-sdk/application-runtime/host-properties/host-property-scopes.d.ts +42 -0
  1334. package/dist/react-sdk/application-runtime/host-properties/host-property-scopes.js +1 -0
  1335. package/dist/react-sdk/application-runtime/host-properties/index.d.ts +8 -0
  1336. package/dist/react-sdk/application-runtime/host-properties/index.js +1 -0
  1337. package/dist/react-sdk/application-runtime/host-properties/initialize.d.ts +7 -0
  1338. package/dist/react-sdk/application-runtime/host-properties/initialize.js +1 -0
  1339. package/dist/react-sdk/application-runtime/host-properties/selectors.d.ts +54 -0
  1340. package/dist/react-sdk/application-runtime/host-properties/selectors.js +1 -0
  1341. package/dist/react-sdk/application-runtime/host-properties/types.d.ts +18 -0
  1342. package/dist/react-sdk/application-runtime/host-properties/types.js +1 -0
  1343. package/dist/react-sdk/application-runtime/index.d.ts +3 -0
  1344. package/dist/react-sdk/application-runtime/integration/initialize.d.ts +7 -6
  1345. package/dist/react-sdk/application-runtime/integration/initialize.js +1 -1
  1346. package/dist/react-sdk/application-runtime/integration/selectors.d.ts +11 -2
  1347. package/dist/react-sdk/application-runtime/integration/selectors.js +1 -1
  1348. package/dist/react-sdk/application-runtime/integration/types.d.ts +5 -2
  1349. package/dist/react-sdk/application-runtime/loading/actions.d.ts +45 -0
  1350. package/dist/react-sdk/application-runtime/loading/actions.js +1 -0
  1351. package/dist/react-sdk/application-runtime/loading/index.d.ts +4 -0
  1352. package/dist/react-sdk/application-runtime/loading/index.js +1 -0
  1353. package/dist/react-sdk/application-runtime/loading/initialize.d.ts +3 -0
  1354. package/dist/react-sdk/application-runtime/loading/initialize.js +1 -0
  1355. package/dist/react-sdk/application-runtime/loading/selectors.d.ts +18 -0
  1356. package/dist/react-sdk/application-runtime/loading/selectors.js +1 -0
  1357. package/dist/react-sdk/application-runtime/loading/types.d.ts +59 -0
  1358. package/dist/react-sdk/application-runtime/loading/types.js +1 -0
  1359. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  1360. package/dist/react-sdk/application-runtime/provider/ApplicationRuntime.d.ts +6 -0
  1361. package/dist/react-sdk/application-runtime/provider/ApplicationRuntime.js +1 -1
  1362. package/dist/react-sdk/application-runtime/provider/ApplicationType.d.ts +7 -0
  1363. package/dist/react-sdk/application-runtime/provider/ApplicationType.js +1 -1
  1364. package/dist/react-sdk/application-runtime/responsive/actions.d.ts +47 -0
  1365. package/dist/react-sdk/application-runtime/responsive/actions.js +1 -0
  1366. package/dist/react-sdk/application-runtime/responsive/index.d.ts +4 -0
  1367. package/dist/react-sdk/application-runtime/responsive/index.js +1 -0
  1368. package/dist/react-sdk/application-runtime/responsive/initialize.d.ts +3 -0
  1369. package/dist/react-sdk/application-runtime/responsive/initialize.js +1 -0
  1370. package/dist/react-sdk/application-runtime/responsive/selectors.d.ts +20 -0
  1371. package/dist/react-sdk/application-runtime/responsive/selectors.js +1 -0
  1372. package/dist/react-sdk/application-runtime/responsive/types.d.ts +104 -0
  1373. package/dist/react-sdk/application-runtime/responsive/types.js +1 -0
  1374. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  1375. package/dist/react-sdk/application-runtime/routing/routing-service.d.ts +34 -2
  1376. package/dist/react-sdk/application-runtime/routing/routing-service.js +1 -1
  1377. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +346 -26
  1378. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  1379. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/ConfiguratorRoutingProvider.d.ts +1 -1
  1380. package/dist/react-sdk/configurator-routing/ConfiguratorRoutingProvider.js +1 -0
  1381. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/OnGoToIndexHandler.d.ts +1 -2
  1382. package/dist/react-sdk/configurator-routing/OnGoToIndexHandler.js +1 -0
  1383. package/dist/react-sdk/configurator-routing/index.d.ts +3 -0
  1384. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/index.js +1 -1
  1385. package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/use-power-routing-lifecycle.d.ts +2 -0
  1386. package/dist/react-sdk/configurator-routing/use-power-routing-lifecycle.js +1 -0
  1387. package/dist/react-sdk/domain-application-context/BackendDataProvider.js +1 -1
  1388. package/dist/react-sdk/domain-application-context/ConfigurationPersistSystemFailureHandler.js +1 -1
  1389. package/dist/react-sdk/domain-application-context/DomainLifecycleBoundary.js +1 -1
  1390. package/dist/react-sdk/domain-application-context/FrontendDataProvider.js +1 -1
  1391. package/dist/react-sdk/domain-application-context/OnPresetLoadedHandler.js +1 -0
  1392. package/dist/react-sdk/domain-application-context/PublishedDataProvider.js +1 -1
  1393. package/dist/react-sdk/domain-application-context/chat-hooks.d.ts +4 -0
  1394. package/dist/react-sdk/domain-application-context/chat-hooks.js +1 -0
  1395. package/dist/react-sdk/domain-application-context/index.d.ts +2 -0
  1396. package/dist/react-sdk/domain-application-context/index.js +1 -1
  1397. package/dist/react-sdk/domain-context/common-hooks/index.d.ts +9 -0
  1398. package/dist/react-sdk/domain-context/common-hooks/index.js +1 -0
  1399. package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.d.ts +23 -0
  1400. package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.js +1 -0
  1401. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +41 -0
  1402. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  1403. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +5 -4
  1404. package/dist/react-sdk/domain-context/component-hooks/index.d.ts +1 -0
  1405. package/dist/react-sdk/domain-context/component-hooks/index.js +1 -0
  1406. package/dist/react-sdk/domain-context/component-hooks/use-component.js +1 -1
  1407. package/dist/react-sdk/domain-context/entity-hooks/use-domain-entity-state.js +1 -1
  1408. package/dist/react-sdk/domain-context/entity-hooks/use-entity-price.js +1 -1
  1409. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-id.js +1 -1
  1410. package/dist/react-sdk/domain-context/entity-hooks/use-root-entity-state.js +1 -1
  1411. package/dist/react-sdk/domain-context/index.d.ts +9 -1
  1412. package/dist/react-sdk/domain-context/index.js +1 -1
  1413. package/dist/react-sdk/domain-context/system-hooks/composition-hooks.js +1 -1
  1414. package/dist/react-sdk/domain-context/system-hooks/dimension-hooks.js +1 -1
  1415. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.d.ts +8 -0
  1416. package/dist/react-sdk/domain-context/system-hooks/generate-share-link-hooks.js +1 -0
  1417. package/dist/react-sdk/domain-context/system-hooks/hover-hooks.js +1 -1
  1418. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.d.ts +24 -0
  1419. package/dist/react-sdk/domain-context/system-hooks/locale-switch-hooks.js +1 -0
  1420. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +11 -0
  1421. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  1422. package/dist/react-sdk/domain-context/system-hooks/selection-hooks.js +1 -1
  1423. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.d.ts +32 -0
  1424. package/dist/react-sdk/domain-context/system-hooks/share-links-hooks.js +1 -0
  1425. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.d.ts +57 -0
  1426. package/dist/react-sdk/domain-context/system-hooks/step-navigation-hooks.js +1 -0
  1427. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.d.ts +61 -0
  1428. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.js +1 -0
  1429. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.d.ts +20 -0
  1430. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -0
  1431. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  1432. package/dist/react-sdk/handlers/FinalizeActionRunner.d.ts +13 -0
  1433. package/dist/react-sdk/handlers/FinalizeActionRunner.js +1 -0
  1434. package/dist/react-sdk/handlers/FinalizeActionsHost.d.ts +10 -0
  1435. package/dist/react-sdk/handlers/FinalizeActionsHost.js +1 -0
  1436. package/dist/react-sdk/handlers/FinalizeActionsProvider.d.ts +11 -0
  1437. package/dist/react-sdk/handlers/FinalizeActionsProvider.js +1 -0
  1438. package/dist/react-sdk/handlers/finalize-actions-context.d.ts +6 -0
  1439. package/dist/react-sdk/handlers/finalize-actions-context.js +1 -0
  1440. package/dist/react-sdk/handlers/finalize-actions-store.d.ts +23 -0
  1441. package/dist/react-sdk/handlers/finalize-actions-store.js +1 -0
  1442. package/dist/react-sdk/handlers/index.d.ts +6 -0
  1443. package/dist/react-sdk/handlers/index.js +1 -1
  1444. package/dist/react-sdk/handlers/use-finalize-action.d.ts +32 -0
  1445. package/dist/react-sdk/handlers/use-finalize-action.js +1 -0
  1446. package/dist/react-sdk/handlers/use-finalize-actions.d.ts +53 -0
  1447. package/dist/react-sdk/handlers/use-finalize-actions.js +1 -0
  1448. package/dist/react-sdk/index.d.ts +7 -0
  1449. package/dist/react-sdk/index.js +1 -1
  1450. package/dist/react-sdk/integration/IntegrationSubscription.js +1 -0
  1451. package/dist/react-sdk/integration/index.d.ts +1 -0
  1452. package/dist/react-sdk/integration/index.js +1 -0
  1453. package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.d.ts +8 -0
  1454. package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.js +1 -0
  1455. package/dist/react-sdk/lifecycle-providers/LifecycleProviders.js +1 -0
  1456. package/dist/react-sdk/lifecycle-providers/index.d.ts +2 -0
  1457. package/dist/react-sdk/lifecycle-providers/index.js +1 -0
  1458. package/dist/react-sdk/loading-state/LoaderHost.d.ts +20 -0
  1459. package/dist/react-sdk/loading-state/LoaderHost.js +1 -0
  1460. package/dist/react-sdk/loading-state/built-in-loading-phase.d.ts +9 -0
  1461. package/dist/react-sdk/loading-state/built-in-loading-phase.js +1 -0
  1462. package/dist/react-sdk/loading-state/create-app-loader.d.ts +18 -0
  1463. package/dist/react-sdk/loading-state/create-app-loader.js +1 -0
  1464. package/dist/react-sdk/loading-state/index.d.ts +4 -2
  1465. package/dist/react-sdk/loading-state/index.js +1 -1
  1466. package/dist/react-sdk/loading-state/{LoadingStateProvider.d.ts → loading-state-hooks.d.ts} +3 -12
  1467. package/dist/react-sdk/loading-state/loading-state-hooks.js +1 -0
  1468. package/dist/react-sdk/notifications/index.d.ts +1 -0
  1469. package/dist/react-sdk/notifications/index.js +1 -0
  1470. package/dist/react-sdk/notifications/snackbar-action-button.d.ts +30 -0
  1471. package/dist/react-sdk/notifications/snackbar-action-button.js +1 -0
  1472. package/dist/react-sdk/page-elements/ConfigurationNotFoundPagePropsProvider.d.ts +17 -0
  1473. package/dist/react-sdk/page-elements/ConfigurationNotFoundPagePropsProvider.js +1 -0
  1474. package/dist/react-sdk/page-elements/ConfiguratorErrorPagePropsProvider.d.ts +17 -0
  1475. package/dist/react-sdk/page-elements/ConfiguratorErrorPagePropsProvider.js +1 -0
  1476. package/dist/react-sdk/page-elements/configurator-error-page-props.d.ts +20 -0
  1477. package/dist/react-sdk/page-elements/configurator-error-page-props.js +1 -0
  1478. package/dist/react-sdk/page-elements/create-configuration-not-found-page.d.ts +15 -0
  1479. package/dist/react-sdk/page-elements/create-configuration-not-found-page.js +1 -0
  1480. package/dist/react-sdk/page-elements/create-configurator-error-page.d.ts +14 -0
  1481. package/dist/react-sdk/page-elements/create-configurator-error-page.js +1 -0
  1482. package/dist/react-sdk/page-elements/create-preset-ui.d.ts +9 -0
  1483. package/dist/react-sdk/page-elements/create-preset-ui.js +1 -0
  1484. package/dist/react-sdk/page-elements/index.d.ts +6 -0
  1485. package/dist/react-sdk/page-elements/index.js +1 -0
  1486. package/dist/react-sdk/preset-selection/PresetSelectionProvider.js +1 -0
  1487. package/dist/react-sdk/preset-selection/index.d.ts +1 -0
  1488. package/dist/react-sdk/preset-selection/index.js +1 -0
  1489. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.d.ts +36 -0
  1490. package/dist/react-sdk/scene-control-elements/AddEntityFabElement.js +1 -0
  1491. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.d.ts +44 -0
  1492. package/dist/react-sdk/scene-control-elements/DeleteEntityFabElement.js +1 -0
  1493. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.d.ts +38 -0
  1494. package/dist/react-sdk/scene-control-elements/NavigationHotspotElement.js +1 -0
  1495. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.d.ts +30 -0
  1496. package/dist/react-sdk/scene-control-elements/SelectionHotspotElement.js +1 -0
  1497. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.d.ts +30 -0
  1498. package/dist/react-sdk/scene-control-elements/ToolMenuFabElement.js +1 -0
  1499. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.d.ts +9 -0
  1500. package/dist/react-sdk/scene-control-elements/create-add-entity-fab.js +1 -0
  1501. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.d.ts +9 -0
  1502. package/dist/react-sdk/scene-control-elements/create-delete-entity-fab.js +1 -0
  1503. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.d.ts +10 -0
  1504. package/dist/react-sdk/scene-control-elements/create-navigation-hotspot.js +1 -0
  1505. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.d.ts +9 -0
  1506. package/dist/react-sdk/scene-control-elements/create-selection-hotspot.js +1 -0
  1507. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.d.ts +9 -0
  1508. package/dist/react-sdk/scene-control-elements/create-tool-menu-fab.js +1 -0
  1509. package/dist/react-sdk/scene-control-elements/index.d.ts +11 -0
  1510. package/dist/react-sdk/scene-control-elements/index.js +1 -0
  1511. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.d.ts +5 -0
  1512. package/dist/react-sdk/scene-control-elements/scene-control-tooltip-visibility.js +1 -0
  1513. package/dist/react-sdk/session/NotAuthenticatedPage.d.ts +4 -0
  1514. package/dist/react-sdk/session/NotAuthenticatedPage.js +1 -1
  1515. package/dist/react-sdk/session/SessionServiceProvider.js +1 -1
  1516. package/dist/react-sdk/web-component/create-web-component.js +1 -1
  1517. package/dist/react-sdk/web-component/god-mode/god-mode-registry.d.ts +30 -0
  1518. package/dist/react-sdk/web-component/god-mode/god-mode-registry.js +1 -0
  1519. package/dist/react-sdk/web-component/god-mode/index.d.ts +1 -0
  1520. package/dist/react-sdk/web-component/god-mode/index.js +1 -0
  1521. package/dist/ui-sdk/components/snackbar/Snackbar.d.ts +24 -3
  1522. package/dist/ui-sdk/components/snackbar/Snackbar.js +1 -1
  1523. package/dist/ui-sdk/icons/__generated/Lightbulb.d.ts +3 -0
  1524. package/dist/ui-sdk/icons/__generated/Lightbulb.js +1 -0
  1525. package/dist/ui-sdk/icons/__generated/Paperclip.d.ts +3 -0
  1526. package/dist/ui-sdk/icons/__generated/Paperclip.js +1 -0
  1527. package/dist/ui-sdk/icons/__generated/XCircle.d.ts +3 -0
  1528. package/dist/ui-sdk/icons/__generated/XCircle.js +1 -0
  1529. package/dist/ui-sdk/icons/__generated/index.d.ts +6 -0
  1530. package/dist/ui-sdk/icons/__generated/index.js +1 -1
  1531. package/dist/ui-sdk/icons/icons-registry.js +1 -1
  1532. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +9 -0
  1533. package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.js +1 -1
  1534. package/dist/ui-sdk/responsive-application/index.d.ts +1 -0
  1535. package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +59 -0
  1536. package/dist/ui-sdk/responsive-application/responsive-state-store.js +1 -0
  1537. package/dist/ui-sdk/responsive-application/use-store-responsive-info.d.ts +7 -0
  1538. package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -0
  1539. package/dist/ui-sdk/theme/types.d.ts +5 -1
  1540. package/dist/watch/glob-matcher.d.ts +4 -4
  1541. package/dist/watch/glob-matcher.js +1 -1
  1542. package/dist/watch/watch.d.ts +4 -4
  1543. package/dist/watch/watch.js +1 -1
  1544. package/dist/webhook/builders/webhook-builder.js +1 -1
  1545. package/package.json +58 -36
  1546. package/schema/domain-spec.json +1359 -217
  1547. package/dist/application-spec/generate-application/code/templates/nvmrc.d.ts +0 -1
  1548. package/dist/application-spec/generate-application/code/templates/nvmrc.js +0 -2
  1549. package/dist/application-spec/generate-application/code/templates/package-json.d.ts +0 -10
  1550. package/dist/application-spec/generate-application/code/templates/package-json.js +0 -1
  1551. package/dist/application-spec/generate-application/code/templates/webhook-implementation.d.ts +0 -1
  1552. package/dist/application-spec/generate-application/code/templates/webhook-implementation.js +0 -7
  1553. package/dist/configurator/common/frontend-analytics.js +0 -1
  1554. package/dist/configurator/configurator-context/ConfiguratorDataProvider.d.ts +0 -2
  1555. package/dist/configurator/configurator-context/ConfiguratorDataProvider.js +0 -1
  1556. package/dist/configurator/configurator-context/IntegrationSubscription.js +0 -1
  1557. package/dist/configurator/configurator-context/LifecycleProviders.js +0 -1
  1558. package/dist/configurator/configurator-context/OnPresetLoadedHandler.js +0 -1
  1559. package/dist/configurator/configurator-context/PresetSelectionProvider.js +0 -1
  1560. package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.d.ts +0 -1
  1561. package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.js +0 -1
  1562. package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +0 -1
  1563. package/dist/configurator/configurator-context/configurator-routing/OnGoToIndexHandler.js +0 -1
  1564. package/dist/configurator/configurator-context/configurator-routing/index.d.ts +0 -2
  1565. package/dist/configurator/configurator-context/configurator-routing/use-power-routing-lifecycle.js +0 -1
  1566. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.d.ts +0 -4
  1567. package/dist/configurator/ui/phoenix-layout-elements/language/use-locale-options.js +0 -1
  1568. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.d.ts +0 -4
  1569. package/dist/configurator/ui/phoenix-layout-elements/measurements/use-measurements-visibility.js +0 -1
  1570. package/dist/domain/application/resource-builder.d.ts +0 -13
  1571. package/dist/domain/application/resource-builder.js +0 -1
  1572. package/dist/domain/available-system-components.d.ts +0 -11
  1573. package/dist/domain/available-system-components.js +0 -1
  1574. package/dist/domain/domain-builder.js +0 -1
  1575. package/dist/domain/extensions/client-side-image.d.ts +0 -14
  1576. package/dist/domain/extensions/client-side-image.js +0 -1
  1577. package/dist/domain/extensions/save-template-thumbnail.js +0 -1
  1578. package/dist/phoenix/commands/generate-project-files.d.ts +0 -6
  1579. package/dist/phoenix/commands/generate-project-files.js +0 -1
  1580. package/dist/phoenix/commands/generated-env-markers.js +0 -1
  1581. package/dist/phoenix/services/lingui.d.ts +0 -7
  1582. package/dist/phoenix/services/lingui.js +0 -1
  1583. package/dist/phoenix/services/phoenix-application.d.ts +0 -21
  1584. package/dist/phoenix/services/phoenix-application.js +0 -1
  1585. package/dist/react-sdk/application-runtime/runtime/god-mode.d.ts +0 -19
  1586. package/dist/react-sdk/application-runtime/runtime/god-mode.js +0 -1
  1587. package/dist/react-sdk/loading-state/LoadingStateProvider.js +0 -1
  1588. package/dist/react-sdk/loading-state/loading-state-manager.d.ts +0 -32
  1589. package/dist/react-sdk/loading-state/loading-state-manager.js +0 -1
  1590. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  1591. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  1592. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
  1593. /package/dist/{application-spec/core → domain/spec/application}/application-instance.d.ts +0 -0
  1594. /package/dist/{application-spec/core → domain/spec/application}/application-instance.js +0 -0
  1595. /package/dist/{application-spec/parse-application-files/spec/components/component-entry.js → domain/spec/components/sdk-code-ref.js} +0 -0
  1596. /package/dist/{application-spec/parse-application-files/spec/expressions/expression.js → domain/spec/expressions/sdk-expression-implementation.js} +0 -0
  1597. /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.d.ts +0 -0
  1598. /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.js +0 -0
  1599. /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.d.ts +0 -0
  1600. /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.js +0 -0
  1601. /package/dist/{configurator/configurator-context → react-sdk/domain-application-context}/OnPresetLoadedHandler.d.ts +0 -0
  1602. /package/dist/{configurator/configurator-context → react-sdk/integration}/IntegrationSubscription.d.ts +0 -0
  1603. /package/dist/{configurator/configurator-context → react-sdk/lifecycle-providers}/LifecycleProviders.d.ts +0 -0
  1604. /package/dist/{configurator/configurator-context → react-sdk/preset-selection}/PresetSelectionProvider.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 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)})});
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 c=i.enum(["all",...u]),b=e=>{if(!e.application.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.application.variantPreviews};export const commandsRouter=l({getLogs:a.input(i.object({stream:c,beforeSeq:i.number().int().positive().optional(),limit:i.number().int().positive().max(500).default(200)})).query(({input:e,ctx:t})=>{if(!t.application.logs)return{entries:[],hasMore:!1,counts:null};let r=t.application.logs.query(e);return{entries:r.entries,hasMore:r.hasMore,counts:t.application.logs.allCounts()}}),onLog:a.subscription(({ctx:t})=>e(e=>t.application.logs?t.application.logs.subscribe(t=>{e.next(t)}):()=>{})),getTunnelState:a.query(({ctx:e})=>e.application.tunnelMonitor?{state:e.application.tunnelMonitor.state(),entries:e.application.tunnelMonitor.summaries()}:{state:null,entries:[]}),getTunnelRequest:a.input(i.object({seq:i.number().int().positive()})).query(({ctx:e,input:t})=>e.application.tunnelMonitor?.entry(t.seq)??null),onTunnelEvent:a.subscription(({ctx:t})=>e(e=>t.application.tunnelMonitor?t.application.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 c=r(e.output),b=Buffer.from(u.imageBase64,"base64");try{await t(c,b)}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(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.application.logs){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})=>b(t).open(e)),onVariantPreview:a.subscription(({ctx:t})=>e(e=>{let r=t.application.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})=>b(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})=>b(t).applyFiles(e)),submitVariantChoice:a.input(i.object({requestId:i.string(),choice:i.string().nullable()})).mutation(({input:e,ctx:t})=>b(t).submit(e)),closeVariantPreview:a.mutation(({ctx:e})=>e.application.variantPreviews?.close()??Promise.resolve({closed:!1})),claimVariantChoice:a.input(i.object({requestId:i.string()})).mutation(({input:e,ctx:t})=>{t.application.variantPreviews?.claim(e.requestId)})});
@@ -1,20 +1,9 @@
1
- import type { LogBus } from '../services/log-bus.js';
2
- import type { PhoenixApplication } from '../services/phoenix-application.js';
3
- import type { WebhookTunnelMonitor } from '../services/webhook-tunnel-monitor.js';
1
+ import type { EditorServerHandle, PhoenixApplication } from '../services/index.js';
4
2
  import type { Logger } from '../utils/index.js';
5
3
  export interface EditorServerOptions {
6
4
  readonly port: number;
7
- readonly projectRoot: string;
8
5
  readonly application: PhoenixApplication;
9
6
  readonly logger: Logger;
10
7
  readonly debug?: boolean;
11
- /** Bound to this dev session; absent for offline and story sessions. */
12
- readonly prepareDeployment?: () => Promise<void>;
13
- readonly storyMode?: boolean;
14
- readonly logBus?: LogBus;
15
- readonly tunnelMonitor?: WebhookTunnelMonitor;
16
8
  }
17
- export declare const startEditorServer: ({ port, projectRoot, application, logger, prepareDeployment, storyMode, logBus, tunnelMonitor, }: EditorServerOptions) => {
18
- ready: Promise<void>;
19
- close: () => Promise<void>;
20
- };
9
+ export declare const startEditorServer: ({ port, application, logger }: EditorServerOptions) => EditorServerHandle;
@@ -1 +1 @@
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
+ 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:t,application:n,logger:i})=>{let s=new o({port:t}),c=e({wss:s,router:r,createContext:()=>({projectRoot:n.projectRoot,pubsub:n.pubsub,application:n,logger:i})});s.on("connection",(e,o)=>{let r=o.headers.origin??"unknown";i.info(`WS connected (clients: ${s.clients.size}, origin: ${r})`),e.on("error",e=>{i.warn(`WS error: ${e.message}`)}),e.once("close",(e,o)=>{i.info(`WS disconnected (clients: ${s.clients.size}, code: ${e}, reason: ${o.toString()||"none"})`)})}),s.on("error",e=>{i.error(`WebSocket server error: ${e.message}`)});let l=new Promise((e,o)=>{let r=()=>{s.off("error",n),i.info(`WebSocket Server listening on ws://localhost:${t}`),e()},n=e=>{s.off("listening",r),o(e)};s.once("listening",r),s.once("error",n)}),a=null;return{ready:l,close:()=>a||(i.info("Shutting down WebSocket server"),c.broadcastReconnectNotification(),a=new Promise((e,o)=>{let r=setTimeout(()=>{for(let e of s.clients)e.terminate()},3e3);s.close(t=>{clearTimeout(r),t?o(t):e()})}))}};
@@ -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 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
+ 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 i}from"path";import{z as r}from"zod";import{readApplicationFiles as p}from"../application-spec/index.js";import{exists as a}from"../utils/index.js";import{publicProcedure as s,router as n}from"./trpc.js";export const specRouter=n({getEditorConfig:s.query(()=>({specSync:!0})),prepareDeployment:s.mutation(async({ctx:o})=>{if(o.application.variantPreviews?.isOpen)throw new e({code:"BAD_REQUEST",message:"Deployment preparation is disabled during variant previews. Close the preview first."});if("story"===o.application.mode)throw new e({code:"BAD_REQUEST",message:"Deployment preparation is disabled in Storybook story mode."});if(!o.application.deploymentPreparation)throw new e({code:"BAD_REQUEST",message:"Deployment preparation requires a deployment configuration outside story mode."});await o.application.deploymentPreparation.prepare()}),requestSpecFiles:s.mutation(async({ctx:e})=>{let o="story"===e.application.mode?await p({projectRoot:e.projectRoot,envs:{}}):await p();e.pubsub.specFile$.next({rawProjectFiles:o,projectRoot:e.projectRoot})}),save:s.input(r.array(r.object({fileName:r.string(),content:r.string()}))).mutation(async({ctx:o,input:r})=>{if(o.application.variantPreviews?.isOpen)throw new e({code:"BAD_REQUEST",message:"Close the variant preview before editing source files."});for(let e of r){let r=i(o.projectRoot,e.fileName),p=i(o.projectRoot,e.fileName.split("/").slice(0,-1).join("/"));await a(p)&&await t(r,e.content)}}),onSpecChange:s.subscription(({ctx:e})=>o(o=>{let t=e.pubsub.specFile$.subscribe(e=>{o.next(e)});return()=>{t.unsubscribe()}}))});
@@ -1,21 +1,11 @@
1
- import type { LogBus } from '../services/log-bus.js';
1
+ import type { PhoenixApplication } from '../services/index.js';
2
2
  import type { PhoenixPubSub } from '../services/phoenix-pubsub.js';
3
- import type { VariantPreviewService } from '../services/variant-preview-service.js';
4
- import type { WebhookTunnelMonitor } from '../services/webhook-tunnel-monitor.js';
5
3
  import type { Logger } from '../utils/index.js';
6
4
  export type Context = {
7
5
  readonly projectRoot: string;
8
6
  readonly pubsub: PhoenixPubSub;
9
7
  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;
12
- /** Bound to this dev session; absent for offline and story sessions. */
13
- readonly prepareDeployment?: () => Promise<void>;
14
- readonly storyMode?: boolean;
15
- /** Dev-server log buffer backing the editor Logs panel; absent in story mode. */
16
- readonly logBus?: LogBus;
17
- /** Dev-process tunnel state backing the editor Webhook Tunnel panel. */
18
- readonly tunnelMonitor?: WebhookTunnelMonitor;
8
+ readonly application: PhoenixApplication;
19
9
  };
20
10
  export declare const router: import("@trpc/server").TRPCRouterBuilder<{
21
11
  ctx: Context;
@@ -0,0 +1 @@
1
+ export { LINGUI_CONFIG_PATH, bootstrapLinguiCatalogs, compileLingui, extractAndCompileLingui } from './lingui.js';
@@ -0,0 +1 @@
1
+ export{LINGUI_CONFIG_PATH,bootstrapLinguiCatalogs,compileLingui,extractAndCompileLingui}from"./lingui.js";
@@ -0,0 +1,18 @@
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 is given this path and Vite loads its plugins from a fresh snapshot of this file, so a
5
+ * `.linguirc` that earlier SDK versions left in the project root is not read. The Lingui CLI searches
6
+ * the working directory instead only when the named file is missing; generation writes it with the rest
7
+ * of `.phoenix/` before Phoenix runs Lingui or Vite. Missing-catalog bootstrap compiles with a temporary
8
+ * copy that stages output while keeping every locale available for fallback reads.
9
+ */
10
+ export declare const LINGUI_CONFIG_PATH = ".phoenix/.linguirc";
11
+ interface LinguiCommandContext {
12
+ readonly logger: Logger;
13
+ }
14
+ export declare const compileLingui: (context: LinguiCommandContext) => Promise<void>;
15
+ export declare const extractAndCompileLingui: (context: LinguiCommandContext) => Promise<void>;
16
+ /** Creates only catalogs missing from a project's generated domain imports; continuous updates stay opt-in. */
17
+ export declare const bootstrapLinguiCatalogs: (locales: readonly string[], context: LinguiCommandContext) => Promise<void>;
18
+ export {};
@@ -0,0 +1 @@
1
+ import{constants as i}from"node:fs";import{copyFile as a,mkdir as t,mkdtemp as e,readFile as o,rm as n,writeFile as s}from"node:fs/promises";import{dirname as r,join as l}from"node:path";import{exists as c,runSdkTool as g}from"../utils/index.js";export const LINGUI_CONFIG_PATH=".phoenix/.linguirc";let p=async i=>{await g({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"}},i)};export const compileLingui=async i=>{await g({tool:{packageName:"@lingui/cli",binName:"lingui"},args:["compile","--config",LINGUI_CONFIG_PATH],description:"Compiling i18n messages",quiet:!0},i)};export const extractAndCompileLingui=async i=>{await p(i),await compileLingui(i)};export const bootstrapLinguiCatalogs=async(p,m)=>{let u,f=(await Promise.all(p.map(async i=>await c(`src/locales/${i}/messages.ts`)?[]:[i]))).flat();if(0!==f.length)try{m.logger.info(`Bootstrapping missing i18n catalogs: ${f.join(", ")}`);let n=(await Promise.all(f.map(async i=>await c(`src/locales/${i}/messages.po`)?[]:[i]))).flat();n.length>0&&await g({tool:{packageName:"@lingui/cli",binName:"lingui"},args:["extract","--config",LINGUI_CONFIG_PATH,"--locale",n.join(",")],description:"Extracting missing i18n catalogs",quiet:!0,extraEnv:{LC_ALL:"en_US.UTF-8"}},m);let p=JSON.parse(await o(LINGUI_CONFIG_PATH,"utf-8"));if("object"!=typeof p||null===p||Array.isArray(p))throw Error(`${LINGUI_CONFIG_PATH} is not a configuration object`);u=await e(".phoenix/lingui-bootstrap-");let N=l(u,".linguirc");for(let e of(await s(N,JSON.stringify({...p,catalogsMergePath:l(u,"compiled","{locale}","messages").replaceAll("\\","/")})),await g({tool:{packageName:"@lingui/cli",binName:"lingui"},args:["compile","--config",N],description:"Compiling missing i18n catalogs",quiet:!0},m),f)){let o=l("src","locales",e,"messages.ts");await t(r(o),{recursive:!0}),await a(l(u,"compiled",e,"messages.ts"),o,i.COPYFILE_EXCL)}}catch(i){throw Error(`Cannot bootstrap i18n catalogs for ${f.join(", ")}: ${i instanceof Error?i.message:String(i)}. Fix the reported Lingui error and restart phoenix dev, or run phoenix sync to update all catalogs.`,{cause:i})}finally{void 0!==u&&await n(u,{recursive:!0,force:!0})}};
@@ -1,23 +1,30 @@
1
1
  import { type ViteDevServer } from 'vite';
2
2
  import type { Logger } from '../utils/index.js';
3
+ import type { DeploymentPreparationService } from './deployment/index.js';
4
+ import type { LinguiWatcher } from './lingui-watcher.js';
3
5
  import type { PhoenixPubSub } from './phoenix-pubsub.js';
6
+ import type { PhoenixStore } from './phoenix-store.js';
4
7
  import type { VariantFileEdit } from './variant-file-session.js';
8
+ export declare const WATCH_PATTERNS: string[];
9
+ export declare const IGNORED_PATTERNS: string[];
5
10
  /** Configuration for {@link ApplicationSpecProjectWatcher}. */
6
11
  export interface ApplicationSpecProjectWatcherConfig {
7
12
  readonly pubsub: PhoenixPubSub;
8
13
  readonly logger: Logger;
9
- readonly onRebuilt?: () => void;
10
- readonly onViteServerChange?: (viteServer: ViteDevServer) => void;
11
14
  readonly sdkVersion: string;
12
15
  readonly projectSlug: string;
13
16
  readonly environmentSlug: string;
14
17
  readonly cliUseWorkspace?: boolean;
15
- readonly name?: string;
16
- readonly description?: string;
17
18
  readonly enableEditor: boolean;
18
19
  readonly inlineTemplates: boolean;
19
20
  readonly useServer: boolean;
20
21
  }
22
+ /** Services the watcher notifies after a rebuild; the store owns its replaceable Vite handle. */
23
+ export interface ApplicationSpecProjectWatcherContext {
24
+ readonly store: PhoenixStore;
25
+ readonly linguiWatcher: LinguiWatcher | undefined;
26
+ readonly deploymentPreparation: DeploymentPreparationService | undefined;
27
+ }
21
28
  /**
22
29
  * Application-spec project watcher with layered caching via {@link ApplicationSpecBuilder}:
23
30
  *
@@ -29,22 +36,20 @@ export interface ApplicationSpecProjectWatcherConfig {
29
36
  * Rebuilds are serialized via PromiseQueue(1).
30
37
  */
31
38
  export declare class ApplicationSpecProjectWatcher {
39
+ private readonly context;
32
40
  private watcher;
33
41
  private subscription;
34
42
  private readonly rebuildQueue;
35
43
  /** Each watcher event emits the changed source path; debounced + buffered into batches. */
36
44
  private readonly changeSubject$;
37
- private viteServer;
38
45
  private readonly pubsub;
39
46
  private readonly logger;
40
- private readonly onRebuilt?;
41
- private readonly onViteServerChange?;
42
47
  private readonly builder;
43
48
  private readonly useServer;
44
49
  private isShuttingDown;
45
50
  private suspended;
46
51
  private readonly heldChanges;
47
- constructor(config: ApplicationSpecProjectWatcherConfig);
52
+ constructor(config: ApplicationSpecProjectWatcherConfig, context: ApplicationSpecProjectWatcherContext);
48
53
  start(viteServer: ViteDevServer): void;
49
54
  /** Rebuilds a batch a variant comparison wrote, at once and without the server work of a source change. */
50
55
  applyVariantFiles(files: readonly VariantFileEdit[]): void;
@@ -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 h}from"../application-spec/application-spec-builder.js";import{logDiagnostics as a}from"../application-spec/metrics/index.js";import{syncTemplateFiles as c}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"],d=["src/locales/**/*.{ts,tsx}",".phoenix/**"];export class ApplicationSpecProjectWatcher{watcher=null;subscription=null;rebuildQueue=new t(1,1/0);changeSubject$=new i;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 h({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(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(){this.watcher=l(g,{ignored:d,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(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 c}from"vite";import{watch as a}from"#package/watch";import{ApplicationSpecBuilder as l}from"../application-spec/application-spec-builder.js";import{logDiagnostics as h}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=["package.json","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{context;watcher=null;subscription=null;rebuildQueue=new i(1,1/0);changeSubject$=new s;pubsub;logger;builder;useServer;isShuttingDown=!1;suspended=!1;heldChanges=new Set;constructor(e,t){this.context=t,this.pubsub=e.pubsub,this.logger=e.logger,this.builder=new l({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.context.store.viteServer$.next(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=a(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,!1))})})}async rebuild(t,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 l=await c();if(this.isShuttingDown)return;let h=await this.builder.build({compile:!s});if(this.isShuttingDown)return;if(a(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:g,changedFiles:d}=h,w=r.moduleGraph,b=Date.now(),f=new Set,m=process.cwd(),S=e=>{let t=w.getModulesByFile(n(e));if(t)for(let e of t)w.invalidateModule(e,f,b,!0)};for(let i of t)S(e(m,i));for(let t of d)S(e(m,`.phoenix/${t.path}`));if(this.pubsub.specFile$.next({rawProjectFiles:g.rawProjectFiles,projectRoot:process.cwd(),configurationSchemaHash:g.applicationSpec.configurator.configurationSchema.hash}),this.isShuttingDown)return;if(i){if(await r.close(),this.isShuttingDown)return;let e=await p({templateFiles:l});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&&!s){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.context.store.viteServer$.value;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 a=await this.builder.build({compile:!s});if(this.isShuttingDown)return;if(h(a.diagnostics,this.logger),!a.ok){for(let e of a.errors)this.logger.error(`[${e.code}] ${e.message}${e.file?` (${e.file})`:""}`);this.pubsub.specFile$.next({rawProjectFiles:a.rawProjectFiles,projectRoot:process.cwd()});return}let{application:l,changedFiles:d}=a;this.context.linguiWatcher?.trigger(),this.context.deploymentPreparation?.reportUnregisteredSpec(l.applicationSpec);let w=r.moduleGraph,f=Date.now(),b=new Set,m=process.cwd(),S=e=>{let t=w.getModulesByFile(c(e));if(t)for(let e of t)w.invalidateModule(e,b,f,!0)};for(let i of e)S(t(m,i));for(let e of d)S(t(m,`.phoenix/${e.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 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.context.store.viteServer$.next(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)}}}
@@ -5,6 +5,7 @@ import { z } from 'zod';
5
5
  declare const ServerCredentials: z.ZodObject<{
6
6
  token: z.ZodString;
7
7
  userId: z.ZodString;
8
+ customerId: z.ZodOptional<z.ZodString>;
8
9
  customerSlug: z.ZodString;
9
10
  customerName: z.ZodString;
10
11
  studioUrl: z.ZodOptional<z.ZodString>;
@@ -12,6 +13,7 @@ declare const ServerCredentials: z.ZodObject<{
12
13
  }, "strip", z.ZodTypeAny, {
13
14
  token: string;
14
15
  userId: string;
16
+ customerId?: string | undefined;
15
17
  customerSlug: string;
16
18
  customerName: string;
17
19
  studioUrl?: string | undefined;
@@ -19,6 +21,7 @@ declare const ServerCredentials: z.ZodObject<{
19
21
  }, {
20
22
  token: string;
21
23
  userId: string;
24
+ customerId?: string | undefined;
22
25
  customerSlug: string;
23
26
  customerName: string;
24
27
  studioUrl?: string | undefined;
@@ -1,2 +1,2 @@
1
- import{chmod as e,mkdir as r,readFile as t,writeFile as s}from"node:fs/promises";import{homedir as n}from"node:os";import{dirname as a,join as i}from"node:path";import{z as o}from"zod";let l=o.object({token:o.string().min(1),userId:o.string(),customerSlug:o.string(),customerName:o.string(),studioUrl:o.string().optional(),createdAt:o.string()}),c=o.object({version:o.literal(1),servers:o.record(o.string(),l)}),d={version:1,servers:{}};export const getCredentialsPath=()=>process.env.PHOENIX_CREDENTIALS_FILE??i(n(),".phoenix","credentials.json");let u=e=>new URL(e).origin,g=async()=>{let e;try{e=await t(getCredentialsPath(),"utf8")}catch(e){if(e instanceof Error&&"code"in e&&"ENOENT"===e.code)return d;throw e}let r=c.safeParse((e=>{try{return JSON.parse(e)}catch{return null}})(e));if(!r.success)throw Error(`The credentials file ${getCredentialsPath()} is not valid. Delete it and run \`phoenix login\` again.`);return r.data},m=async t=>{let n=getCredentialsPath();return await r(a(n),{recursive:!0,mode:448}),await s(n,`${JSON.stringify(t,null,2)}
1
+ import{chmod as e,mkdir as r,readFile as t,writeFile as s}from"node:fs/promises";import{homedir as n}from"node:os";import{dirname as i,join as o}from"node:path";import{z as a}from"zod";let l=a.object({token:a.string().min(1),userId:a.string(),customerId:a.string().uuid().optional(),customerSlug:a.string(),customerName:a.string(),studioUrl:a.string().optional(),createdAt:a.string()}),c=a.object({version:a.literal(1),servers:a.record(a.string(),l)}),d={version:1,servers:{}};export const getCredentialsPath=()=>process.env.PHOENIX_CREDENTIALS_FILE??o(n(),".phoenix","credentials.json");let u=e=>new URL(e).origin,g=async()=>{let e;try{e=await t(getCredentialsPath(),"utf8")}catch(e){if(e instanceof Error&&"code"in e&&"ENOENT"===e.code)return d;throw e}let r=c.safeParse((e=>{try{return JSON.parse(e)}catch{return null}})(e));if(!r.success)throw Error(`The credentials file ${getCredentialsPath()} is not valid. Delete it and run \`phoenix login\` again.`);return r.data},m=async t=>{let n=getCredentialsPath();return await r(i(n),{recursive:!0,mode:448}),await s(n,`${JSON.stringify(t,null,2)}
2
2
  `,{mode:384}),await e(n,384),n};export const getServerCredentials=async e=>(await g()).servers[u(e)]??null;export const saveServerCredentials=async(e,r)=>{let t=await g();return m({...t,servers:{...t.servers,[u(e)]:r}})};export const removeServerCredentials=async e=>{let r=await g(),{[u(e)]:t,...s}=r.servers;await m({...r,servers:s})};
@@ -0,0 +1,5 @@
1
+ type BeforeCliExit = (exitCode: number) => Promise<void>;
2
+ export declare const setBeforeCliExit: (handler: BeforeCliExit) => (() => void);
3
+ /** Gives the Phoenix CLI a chance to finish best-effort work, then preserves process.exit semantics. */
4
+ export declare const exitCli: (exitCode: number) => Promise<never>;
5
+ export {};
@@ -0,0 +1 @@
1
+ let t=null;export const setBeforeCliExit=e=>(t=e,()=>{t===e&&(t=null)});export const exitCli=async e=>{try{await t?.(e)}finally{process.exit(e)}};
@@ -0,0 +1,28 @@
1
+ import type { ApplicationSpec } from '#package/application-spec';
2
+ import type { Logger } from '../../utils/index.js';
3
+ import type { DevelopmentCredential } from '../development-credential.js';
4
+ import type { PhoenixStore } from '../phoenix-store.js';
5
+ /** The deployment identity a server-backed dev session prepares and checks after rebuilds. */
6
+ export interface DeploymentPreparationServiceProps {
7
+ readonly serverUrl: string;
8
+ readonly credential: DevelopmentCredential;
9
+ readonly projectSlug: string;
10
+ readonly environmentSlug: string;
11
+ readonly sdkVersion: string;
12
+ }
13
+ export interface DeploymentPreparationServiceContext {
14
+ readonly logger: Logger;
15
+ readonly store: PhoenixStore;
16
+ }
17
+ /** Prepares the active dev deployment and reports spec changes that require a session restart. */
18
+ export declare class DeploymentPreparationService {
19
+ private readonly props;
20
+ private readonly context;
21
+ constructor(props: DeploymentPreparationServiceProps, context: DeploymentPreparationServiceContext);
22
+ prepare(): Promise<void>;
23
+ prepareAtStartup(options: {
24
+ readonly skipUpload: boolean;
25
+ readonly debug: boolean;
26
+ }): Promise<void>;
27
+ reportUnregisteredSpec(applicationSpec: ApplicationSpec): Promise<void>;
28
+ }
@@ -0,0 +1 @@
1
+ import{mkdir as e}from"node:fs/promises";import{dirname as t}from"node:path";import{resolveGeneratedEnvFile as r}from"@salsita-ai/common/env";import{getDeploymentFingerprint as o}from"../../application-spec/index.js";import{prepareDevelopmentEnvironment as n}from"../prepare-development-environment.js";import{readGeneratedEnvMarkers as i}from"./generated-env-markers.js";export class DeploymentPreparationService{props;context;constructor(e,t){this.props=e,this.context=t}prepare(){return this.prepareAtStartup({skipUpload:!0,debug:!1})}async prepareAtStartup(o){let i=r(".");await e(t(i),{recursive:!0}),await n({serverUrl:this.props.serverUrl,projectSlug:this.props.projectSlug,environmentSlug:this.props.environmentSlug,credential:this.props.credential,outFile:i,skipUpload:o.skipUpload,overrideSchema:!0,debug:o.debug,projectVersion:this.props.sdkVersion},{logger:this.context.logger})}async reportUnregisteredSpec(e){try{let t=o(e),n=await i(r("."));if(!n||n.PHOENIX_DEPLOYMENT_FINGERPRINT===t)return void this.context.store.reportedFingerprint$.next(null);if(this.context.store.reportedFingerprint$.value===t)return;this.context.store.reportedFingerprint$.next(t),this.context.logger.error("The development deployment on the server still has the domain model and deployment settings it was prepared with, not the ones the spec now declares: a running phoenix dev cannot register a change, because its webhook tunnel and the preview stay bound to the deployment they started with. Restart phoenix dev to prepare the deployment again, then open the Preview address it prints rather than reloading a tab whose address has ?cid=, which loads a configuration saved with the earlier model.")}catch(e){this.context.logger.warn(`Could not compare the spec with the development deployment: ${e instanceof Error?e.message:String(e)}. After a domain model change, restart phoenix dev to register it.`)}}}
@@ -3,5 +3,6 @@ export interface GeneratedEnvMarkers {
3
3
  readonly PHOENIX_PROJECT_SLUG?: string;
4
4
  readonly PHOENIX_ENVIRONMENT_SLUG?: string;
5
5
  readonly PHOENIX_SERVER_URL?: string;
6
+ readonly PHOENIX_DEPLOYMENT_FINGERPRINT?: string;
6
7
  }
7
8
  export declare const readGeneratedEnvMarkers: (outFile: string) => Promise<GeneratedEnvMarkers | null>;
@@ -0,0 +1 @@
1
+ import{parse as E}from"dotenv";import{readFile as N}from"node:fs/promises";export const readGeneratedEnvMarkers=async r=>{try{let _=E(await N(r));return{DEPLOYMENT_ID:_.DEPLOYMENT_ID,PHOENIX_PROJECT_SLUG:_.PHOENIX_PROJECT_SLUG,PHOENIX_ENVIRONMENT_SLUG:_.PHOENIX_ENVIRONMENT_SLUG,PHOENIX_SERVER_URL:_.PHOENIX_SERVER_URL,PHOENIX_DEPLOYMENT_FINGERPRINT:_.PHOENIX_DEPLOYMENT_FINGERPRINT}}catch(E){if(E instanceof Error&&"code"in E&&"ENOENT"===E.code)return null;throw E}};
@@ -0,0 +1,2 @@
1
+ export { readGeneratedEnvMarkers } from './generated-env-markers.js';
2
+ export { DeploymentPreparationService } from './deployment-preparation-service.js';
@@ -0,0 +1 @@
1
+ export{readGeneratedEnvMarkers}from"./generated-env-markers.js";export{DeploymentPreparationService}from"./deployment-preparation-service.js";
@@ -1,13 +1,15 @@
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
3
  export { PhoenixStore } from './phoenix-store.js';
4
- export { PhoenixApplication } from './phoenix-application.js';
4
+ export { DeploymentPreparationService, readGeneratedEnvMarkers } from './deployment/index.js';
5
+ export { PhoenixApplication, type PhoenixApplicationProps, type PhoenixApplicationContext, type PhoenixDevelopmentOptions, type EditorServerHandle, } from './session/index.js';
5
6
  export { VariantFileSession } from './variant-file-session.js';
6
7
  export { VariantPreviewService } from './variant-preview-service.js';
7
8
  export { MockTemplateWatcher, type MockTemplateWatcherConfig } from './mock-template-watcher.js';
8
9
  export { ApplicationSpecProjectWatcher, type ApplicationSpecProjectWatcherConfig, } from './application-spec-project-watcher.js';
9
10
  export { ApplicationSpecStoryWatcher, type ApplicationSpecStoryWatcherConfig, } from './application-spec-story-watcher.js';
10
11
  export { LinguiWatcher, type LinguiWatcherConfig } from './lingui-watcher.js';
12
+ export { bootstrapLinguiCatalogs, extractAndCompileLingui } from '../lingui/index.js';
11
13
  export { loadMockTemplates, parseMockTemplateYaml, type LoadMockTemplatesResult, type ParsedMockTemplate, } from './spec-files.js';
12
14
  export { LOG_STREAMS, LogBus, type LogEntry, type LogLevel, type LogPage, type LogQuery, type LogStream, } from './log-bus.js';
13
15
  export { createBusLogger, type CreateBusLoggerOptions } from './bus-logger.js';
@@ -18,6 +20,8 @@ export { STORY_DEV_MARKER_PATH, readActiveStoryDevMarker, type StoryDevMarker }
18
20
  export { composeDefaultBanner } from './phx-banner-plugin.js';
19
21
  export { getViteBuildConfigs, getViteDevConfig, setViteLogSink, type ViteLogSink, type ViteLogSinkOptions, } from './vite-config.js';
20
22
  export { getServerCredentials, removeServerCredentials, saveServerCredentials } from './cli-credentials.js';
23
+ export { exitCli, setBeforeCliExit } from './cli-exit.js';
21
24
  export { createSourceArchive, extractSourceArchive } from './source-archive.js';
22
25
  export { resolveSignedInDevelopmentEnvironment } from './signed-in-development-environment.js';
26
+ export { createTelemetryClient, resolveTelemetryCommand, type CommandTelemetryAttempt, type TelemetryAssociation, type TelemetryClient, type TelemetryCommand, } from './telemetry/index.js';
23
27
  export { DEFAULT_PHOENIX_REGION, PHOENIX_REGIONS, PUBLIC_PHOENIX_REGIONS, getRegionServerUrl, getRegionStudioUrl, } from './phoenix-regions.js';
@@ -1 +1 @@
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
+ export{PhoenixPubSub}from"./phoenix-pubsub.js";export{PhoenixStore}from"./phoenix-store.js";export{DeploymentPreparationService,readGeneratedEnvMarkers}from"./deployment/index.js";export{PhoenixApplication}from"./session/index.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{bootstrapLinguiCatalogs,extractAndCompileLingui}from"../lingui/index.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{exitCli,setBeforeCliExit}from"./cli-exit.js";export{createSourceArchive,extractSourceArchive}from"./source-archive.js";export{resolveSignedInDevelopmentEnvironment}from"./signed-in-development-environment.js";export{createTelemetryClient,resolveTelemetryCommand}from"./telemetry/index.js";export{DEFAULT_PHOENIX_REGION,PHOENIX_REGIONS,PUBLIC_PHOENIX_REGIONS,getRegionServerUrl,getRegionStudioUrl}from"./phoenix-regions.js";
@@ -1 +1 @@
1
- import e from"promise-queue";import{Subject as t,buffer as i,debounceTime as s}from"rxjs";import{watch as r}from"#package/watch";import{compileLingui as n,extractAndCompileLingui as o}from"./lingui.js";let c=["src/**/*.{ts,tsx}","src/locales/**/*.po"],g=["src/locales/**/*.{ts,tsx}"];export class LinguiWatcher{watcher=null;subscription=null;runQueue=new e(1,1/0);changeSubject$=new t;logger;isShuttingDown=!1;constructor(e){this.logger=e.logger}start(){this.setupFileWatcher(),this.setupRunSubscription()}trigger(){this.changeSubject$.next("<codegen-rebuild>")}async close(){this.isShuttingDown=!0,this.watcher&&(await this.watcher.close(),this.watcher=null),this.subscription?.unsubscribe(),this.changeSubject$.complete()}setupFileWatcher(){this.watcher=r(c,{ignored:g,cwd:process.cwd(),ignoreInitial:!0,persistent:!0}),this.watcher.on("all",(e,t)=>{("change"===e||"add"===e||"unlink"===e)&&(this.logger.debug(`Lingui source ${e}: ${t}`),this.changeSubject$.next(t))}).on("error",e=>{this.logger.error(`Lingui watcher error: ${e instanceof Error?e.message:String(e)}`,e)})}setupRunSubscription(){let e=this.changeSubject$.pipe(s(200));this.subscription=this.changeSubject$.pipe(i(e)).subscribe(e=>{let t=e.some(e=>!e.endsWith(".po"));this.runQueue.add(async()=>{if(!this.isShuttingDown)try{t?(this.logger.info("Lingui sources changed, extracting and compiling i18n messages..."),await o({logger:this.logger})):(this.logger.info("Lingui catalogs changed, compiling i18n messages..."),await n({logger:this.logger}))}catch(e){this.logger.error(`Lingui update failed: ${e instanceof Error?e.message:String(e)}`,e)}})})}}
1
+ import e from"promise-queue";import{Subject as i,buffer as t,debounceTime as s}from"rxjs";import{watch as r}from"#package/watch";import{compileLingui as n,extractAndCompileLingui as o}from"../lingui/index.js";let c=["src/**/*.{ts,tsx}","src/locales/**/*.po"],g=["src/locales/**/*.{ts,tsx}"];export class LinguiWatcher{watcher=null;subscription=null;runQueue=new e(1,1/0);changeSubject$=new i;logger;isShuttingDown=!1;constructor(e){this.logger=e.logger}start(){this.setupFileWatcher(),this.setupRunSubscription()}trigger(){this.changeSubject$.next("<codegen-rebuild>")}async close(){this.isShuttingDown=!0,this.watcher&&(await this.watcher.close(),this.watcher=null),this.subscription?.unsubscribe(),this.changeSubject$.complete()}setupFileWatcher(){this.watcher=r(c,{ignored:g,cwd:process.cwd(),ignoreInitial:!0,persistent:!0}),this.watcher.on("all",(e,i)=>{("change"===e||"add"===e||"unlink"===e)&&(this.logger.debug(`Lingui source ${e}: ${i}`),this.changeSubject$.next(i))}).on("error",e=>{this.logger.error(`Lingui watcher error: ${e instanceof Error?e.message:String(e)}`,e)})}setupRunSubscription(){let e=this.changeSubject$.pipe(s(200));this.subscription=this.changeSubject$.pipe(t(e)).subscribe(e=>{let i=e.some(e=>!e.endsWith(".po"));this.runQueue.add(async()=>{if(!this.isShuttingDown)try{i?(this.logger.info("Lingui sources changed, extracting and compiling i18n messages..."),await o({logger:this.logger})):(this.logger.info("Lingui catalogs changed, compiling i18n messages..."),await n({logger:this.logger}))}catch(e){this.logger.error(`Lingui update failed: ${e instanceof Error?e.message:String(e)}`,e)}})})}}
@@ -1,4 +1,5 @@
1
1
  import { BehaviorSubject } from 'rxjs';
2
+ import type { ViteDevServer } from 'vite';
2
3
  /**
3
4
  * A frontend file script or standalone HTML proposal served from `.phoenix/variants/`.
4
5
  */
@@ -44,5 +45,7 @@ export interface VariantPreviewState {
44
45
  * editor server reaches it only through them. Events that carry no state stay on PhoenixPubSub.
45
46
  */
46
47
  export declare class PhoenixStore {
48
+ readonly viteServer$: BehaviorSubject<ViteDevServer | null>;
49
+ readonly reportedFingerprint$: BehaviorSubject<string | null>;
47
50
  readonly variantPreview$: BehaviorSubject<VariantPreviewState>;
48
51
  }
@@ -1 +1 @@
1
- import{BehaviorSubject as e}from"rxjs";export class PhoenixStore{variantPreview$=new e({open:null,activeChoice:null,unclaimed:null})}
1
+ import{BehaviorSubject as e}from"rxjs";export class PhoenixStore{viteServer$=new e(null);reportedFingerprint$=new e(null);variantPreview$=new e({open:null,activeChoice:null,unclaimed:null})}
@@ -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,...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})}
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:E}=n;p.step("Preparing development environment"),p.info(`Preparing development environment for project "${d}", environment "${m}"`);let g=i(c);p.debug(`Using server URL: ${c}`);let P=await t({skipUpload:f,logger:p});p.info("Preparing and activating the development deployment on the server...");let{data:b,error:$}=await g.POST("/environments/development/prepare",{body:{applicationVersion:P.applicationVersion,publishedDataHash:P.publishedDataHash,useAuthHook:P.useAuthHook,overrideSchema:u,configurationSchema:{version:P.schemaVersion,schema:P.schema},adminConfigurationSchema:P.adminSchema?{schema:P.adminSchema,version:P.adminSchemaVersion}:void 0,chat:P.chat,embeddings:P.embeddings,...P.assistant?{assistant:!0}:{},acl:{canCreate:P.aclCanCreate},privateFiles:[...P.assets.privateFilePaths],publicFiles:[...P.assets.publicFilePaths],sdkVersion:E},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(!b)throw Error("No data returned from server while preparing the development deployment.");let{environmentVariables:y,privateUploadUrls:N,publicUploadUrls:w}=b;if(f)p.debug("Skipping file upload");else{p.info("Uploading files to S3...");let e={privateFiles:[...P.assets.privateFilesFullPaths].map(e=>{let i=e.replace("assets/private/",""),t=N[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:[...P.assets.publicFilesFullPaths].map(e=>{let i=e.replace("assets/public/",""),t=w[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,PHOENIX_DEPLOYMENT_FINGERPRINT:P.fingerprint})}
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!")};
@@ -0,0 +1,5 @@
1
+ /** A session-owned editor transport, including the result of binding its port. */
2
+ export interface EditorServerHandle {
3
+ readonly ready: Promise<void>;
4
+ readonly close: () => Promise<void>;
5
+ }
@@ -0,0 +1,2 @@
1
+ export { PhoenixApplication, type PhoenixApplicationProps, type PhoenixApplicationContext, type PhoenixDevelopmentOptions, } from './phoenix-application.js';
2
+ export type { EditorServerHandle } from './editor-server-handle.js';
@@ -0,0 +1 @@
1
+ export{PhoenixApplication}from"./phoenix-application.js";
@@ -0,0 +1,82 @@
1
+ import { Subject } from 'rxjs';
2
+ import { createServer } from 'vite';
3
+ import { type Logger } from '../../utils/index.js';
4
+ import { DeploymentPreparationService } from '../deployment/index.js';
5
+ import { type DevelopmentCredential } from '../development-credential.js';
6
+ import { LinguiWatcher } from '../lingui-watcher.js';
7
+ import { LogBus } from '../log-bus.js';
8
+ import { type BrowserConsoleEvent, PhoenixPubSub } from '../phoenix-pubsub.js';
9
+ import { PhoenixStore } from '../phoenix-store.js';
10
+ import { VariantPreviewService } from '../variant-preview-service.js';
11
+ import { WebhookTunnelMonitor } from '../webhook-tunnel-monitor.js';
12
+ import type { EditorServerHandle } from './editor-server-handle.js';
13
+ /** Resolved inputs for one development session; the application constructs its service graph. */
14
+ export interface PhoenixDevelopmentOptions {
15
+ readonly sdkVersion: string;
16
+ readonly projectSlug: string;
17
+ readonly environmentSlug: string;
18
+ readonly cliUseWorkspace: boolean | undefined;
19
+ readonly enableEditor: boolean | undefined;
20
+ readonly debug: boolean;
21
+ readonly withLingui: boolean;
22
+ readonly persistenceMode: string | undefined;
23
+ readonly force: boolean;
24
+ readonly serverUrl: string | undefined;
25
+ readonly credential: DevelopmentCredential | undefined;
26
+ readonly skipUpload: boolean;
27
+ }
28
+ export interface PhoenixApplicationProps {
29
+ readonly projectRoot: string;
30
+ readonly mode: 'dev' | 'story';
31
+ readonly development: PhoenixDevelopmentOptions | undefined;
32
+ readonly editorPort: number | undefined;
33
+ }
34
+ /** Host adapters for the editor transport and terminal presentation at lifecycle boundaries. */
35
+ export interface PhoenixApplicationContext {
36
+ readonly logger: Logger;
37
+ readonly createEditorServer: (props: {
38
+ readonly port: number;
39
+ readonly application: PhoenixApplication;
40
+ readonly logger: Logger;
41
+ readonly debug: boolean;
42
+ }) => EditorServerHandle;
43
+ readonly onProjectPrepared: (logs: LogBus) => void;
44
+ readonly onStartupFailure: (error: unknown) => void;
45
+ readonly onBrowserConsole: (event: BrowserConsoleEvent, logs: LogBus) => void;
46
+ }
47
+ /** Composes, starts and closes one dev or story session, including resources acquired during a failed start. */
48
+ export declare class PhoenixApplication {
49
+ private readonly props;
50
+ private readonly context;
51
+ readonly store: PhoenixStore;
52
+ readonly pubsub: PhoenixPubSub;
53
+ readonly failures$: Subject<Error>;
54
+ private readonly logsValue;
55
+ private readonly tunnelMonitorValue;
56
+ private readonly deploymentPreparationValue;
57
+ private variantPreviewsValue;
58
+ private linguiWatcherValue;
59
+ private projectWatcher;
60
+ private storyWatcher;
61
+ private mockTemplateWatcher;
62
+ private editorServer;
63
+ private webhookTunnel;
64
+ private browserConsoleSubscription;
65
+ private startPromise;
66
+ private closePromise;
67
+ constructor(props: PhoenixApplicationProps, context: PhoenixApplicationContext);
68
+ get logs(): LogBus | undefined;
69
+ get tunnelMonitor(): WebhookTunnelMonitor | undefined;
70
+ get deploymentPreparation(): DeploymentPreparationService | undefined;
71
+ get projectRoot(): string;
72
+ get mode(): 'dev' | 'story';
73
+ get variantPreviews(): VariantPreviewService | undefined;
74
+ get linguiWatcher(): LinguiWatcher | undefined;
75
+ start(): Promise<Awaited<ReturnType<typeof createServer>> | undefined>;
76
+ close(): Promise<void>;
77
+ private startSession;
78
+ private startEditor;
79
+ private startDevelopment;
80
+ private assertStarting;
81
+ private closeResources;
82
+ }
@@ -0,0 +1,2 @@
1
+ import{Subject as e}from"rxjs";import{createServer as t}from"vite";import{resolveGeneratedEnvFile as o}from"@salsita-ai/common/env";import{generateProjectFiles as r,getDeploymentFingerprint as s}from"../../application-spec/index.js";import{exists as i}from"../../utils/index.js";import{buildWebhooks as n,webhookLogContext as a}from"../../webhooks/index.js";import{ApplicationSpecProjectWatcher as l}from"../application-spec-project-watcher.js";import{ApplicationSpecStoryWatcher as c}from"../application-spec-story-watcher.js";import{DeploymentPreparationService as h,readGeneratedEnvMarkers as p}from"../deployment/index.js";import{getDevelopmentCredentialHint as u}from"../development-credential.js";import{LinguiWatcher as m}from"../lingui-watcher.js";import{LogBus as g}from"../log-bus.js";import{MockTemplateWatcher as d}from"../mock-template-watcher.js";import{PhoenixPubSub as v}from"../phoenix-pubsub.js";import{PhoenixStore as w}from"../phoenix-store.js";import{VariantPreviewService as b}from"../variant-preview-service.js";import{getViteDevConfig as S}from"../vite-config.js";import{createWebhookTunnelTransport as E,readOrCreateTunnelSessionId as x,startWebhookService as f}from"../webhook-service/index.js";import{WebhookTunnelMonitor as P}from"../webhook-tunnel-monitor.js";export class PhoenixApplication{props;context;store=new w;pubsub=new v;failures$=new e;logsValue;tunnelMonitorValue;deploymentPreparationValue;variantPreviewsValue;linguiWatcherValue;projectWatcher;storyWatcher;mockTemplateWatcher;editorServer;webhookTunnel;browserConsoleSubscription;startPromise;closePromise;constructor(e,t){this.props=e,this.context=t;let o="dev"===e.mode?e.development:void 0,r=o&&(!o.persistenceMode||"server"===o.persistenceMode);this.logsValue="dev"===e.mode?new g:void 0,this.tunnelMonitorValue=r&&o.serverUrl?new P(o.serverUrl):void 0,this.deploymentPreparationValue=r&&o.serverUrl&&o.credential?new h({serverUrl:o.serverUrl,credential:o.credential,projectSlug:o.projectSlug,environmentSlug:o.environmentSlug,sdkVersion:o.sdkVersion},{store:this.store,get logger(){return t.logger}}):void 0}get logs(){return this.logsValue}get tunnelMonitor(){return this.tunnelMonitorValue}get deploymentPreparation(){return this.deploymentPreparationValue}get projectRoot(){return this.props.projectRoot}get mode(){return this.props.mode}get variantPreviews(){return this.variantPreviewsValue}get linguiWatcher(){return this.linguiWatcherValue}start(){return this.startPromise??=this.startSession(),this.startPromise}close(){return this.closePromise??=this.closeResources(this.context.logger),this.closePromise}async startSession(){try{if(this.assertStarting(),"story"===this.mode)return void await this.startEditor();let e=this.logs;if(!e)throw Error("Cannot start development: the application has no log bus.");return this.browserConsoleSubscription=this.pubsub.browserConsole$.subscribe(t=>this.context.onBrowserConsole(t,e)),await this.startDevelopment()}catch(e){throw this.closePromise||this.context.onStartupFailure(e),await this.close(),e}}async startEditor(){let e=this.props.editorPort;void 0!==e&&("dev"===this.mode&&this.context.logger.step("Starting editor WebSocket server"),this.editorServer=this.context.createEditorServer({port:e,application:this,logger:this.context.logger,debug:this.props.development?.debug??!1}),await this.editorServer.ready,this.assertStarting(),"dev"===this.mode&&this.context.logger.debug(`Editor WebSocket server started on port ${e}`),this.mockTemplateWatcher=new d({projectRoot:this.projectRoot,pubsub:this.pubsub,logger:this.context.logger}),this.mockTemplateWatcher.start(),"story"===this.mode&&(this.storyWatcher=new c({projectRoot:this.projectRoot,pubsub:this.pubsub,logger:this.context.logger}),this.storyWatcher.start()))}async startDevelopment(){let e=this.props.development,c=this.logs;if(!e||!c)throw Error("Cannot start development: session options are missing. Supply development options when constructing the application.");let{sdkVersion:h,projectSlug:g,environmentSlug:d,cliUseWorkspace:v,enableEditor:w,debug:P,withLingui:j,persistenceMode:y,force:k,serverUrl:V,credential:W,skipUpload:R}=e,{store:N,pubsub:T,deploymentPreparation:I,tunnelMonitor:_}=this;process.env.NODE_ENV="development",y&&(process.env.PERSISTENCE_MODE=y);let O=!y||"server"===y;if(O&&V&&(process.env.SERVER_URL=V),this.context.logger.step("Starting development mode"),!await i("spec"))throw Object.assign(Error('Spec folder not found. Run "phoenix init" first.'),{code:"SPEC_NOT_FOUND"});if(O&&(!V||!W))throw Error("Server persistence needs a server and a credential. Run `phoenix login <workspace>`, or create a development environment in Studio and paste its .env block into .env.");this.context.logger.step("Building project files");let{templateFiles:D,applicationSpec:$}=await r({sdkVersion:h,projectSlug:g,environmentSlug:d,cliUseWorkspace:v,enableEditor:w,withLingui:j,force:k},{logger:this.context.logger});if(this.assertStarting(),this.context.logger.success("Project files built successfully"),O&&V&&W){let e=o("."),t=await p(e);k||t?.PHOENIX_PROJECT_SLUG!==g||t.PHOENIX_ENVIRONMENT_SLUG!==d||t.PHOENIX_SERVER_URL!==V||t.PHOENIX_DEPLOYMENT_FINGERPRINT!==s($)?(this.context.logger.step("Preparing development deployment"),await I?.prepareAtStartup({skipUpload:R,debug:P})):this.context.logger.debug(`${e} matches the current development environment, skipping prepare`)}if(this.assertStarting(),this.context.onProjectPrepared(c),j?(this.linguiWatcherValue=new m({logger:this.context.logger}),this.linguiWatcherValue.start()):this.context.logger.warn("Continuous Lingui updates are disabled; missing catalogs were bootstrapped at startup. Pass --withLingui or set WITH_LINGUI=true to enable."),O&&(this.context.logger.step("Building webhooks"),await a.run("webhook",async()=>{await n({experimental:!0,skipNodeEnvOverride:!0,webhookEntryPoint:"./.phoenix/.swc/.phoenix/webhook.js"})})),O&&V&&W){let e=o("."),t=await p(e);if(!t?.DEPLOYMENT_ID)throw Error(`Webhook tunnel cannot start because ${e} has no DEPLOYMENT_ID. Rerun phoenix dev to prepare the development deployment.`);this.assertStarting();let r=await x();this.assertStarting();let s=await f({experimental:!0,transport:E({serverUrl:V,credential:W,projectSlug:g,environmentSlug:d}),rejectionHint:u(W,g),environmentSlug:d,deploymentId:t.DEPLOYMENT_ID,sessionId:r,onStatus:(e,o)=>{_?.setStatus(e,{deploymentId:t.DEPLOYMENT_ID,sessionId:r,message:o??null})},onRequest:e=>_?.record(e)});this.closePromise&&(await s.stop(),this.assertStarting()),this.webhookTunnel=s,_?.setStatus("waiting",{deploymentId:t.DEPLOYMENT_ID,sessionId:r}),s.stopped.catch(e=>{this.failures$.next(Error(`Webhook tunnel failed: ${e instanceof Error?e.message:String(e)}`)),this.close()}),this.context.logger.success("Webhook tunnel started")}this.assertStarting();let M=new l({pubsub:T,logger:this.context.logger,sdkVersion:h,projectSlug:g,environmentSlug:d,cliUseWorkspace:v,enableEditor:w??!0,inlineTemplates:!1,useServer:O},{store:N,linguiWatcher:this.linguiWatcherValue,deploymentPreparation:I});this.projectWatcher=M,this.variantPreviewsValue=new b({projectRoot:this.projectRoot},{store:N,logger:this.context.logger,projectWatcher:M}),w&&void 0!==this.props.editorPort&&await this.startEditor();let C=await S({templateFiles:D}),L=await t(C);return this.closePromise&&(await L.close(),this.assertStarting()),this.store.viteServer$.next(L),await L.listen(),this.assertStarting(),this.context.logger.step("Starting Vite dev server"),M.start(L),L}assertStarting(){if(this.closePromise)throw Error("Cannot continue startup: the session has already closed. Start a new Phoenix application.")}async closeResources(e){"dev"===this.mode&&e.debug("Shutting down...");let t="story"===this.mode?[{name:"story source watcher",close:()=>this.storyWatcher?.close()},{name:"mock-template watcher",close:()=>this.mockTemplateWatcher?.close()},{name:"editor server",close:()=>this.editorServer?.close()}]:[{name:"lingui watcher",close:()=>this.linguiWatcherValue?.close()},{name:"project watcher",close:()=>this.projectWatcher?.close()},{name:"mock template watcher",close:()=>this.mockTemplateWatcher?.close()},{name:"editor server",close:()=>this.editorServer?.close()},{name:"variant previews",close:()=>this.variantPreviewsValue?.dispose()},{name:"vite server",close:()=>this.store.viteServer$.value?.close()},{name:"webhook tunnel",close:()=>this.webhookTunnel?.stop()}],o=[];for(let r of t)try{"dev"===this.mode&&e.debug(`Shutting down ${r.name}`),await r.close()}catch(s){let t=s instanceof Error?s.message:String(s);"story"===this.mode?e.warn(`Failed to close the story-dev ${r.name}: ${t}. The process will continue shutting down.`):o.push(`${r.name}: ${t}`)}this.browserConsoleSubscription?.unsubscribe(),this.failures$.complete(),o.length>0&&e.warn(`Cleanup warnings:
2
+ ${o.join("\n ")}`),"dev"===this.mode&&e.debug("Shutdown complete")}}
@@ -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:$}};