@salsita-ai/sdk 0.50.0-develop.97a772d197 → 0.50.0-develop.98166fe7c3

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 (1046) hide show
  1. package/README.md +14 -13
  2. package/dist/admin/create-admin-pages-from-spec.d.ts +1 -1
  3. package/dist/admin/default-admin-elements.d.ts +9 -0
  4. package/dist/admin/default-admin-elements.js +1 -0
  5. package/dist/admin/default-elements/built-in-entity-element.d.ts +10 -0
  6. package/dist/admin/default-elements/built-in-entity-element.js +1 -0
  7. package/dist/admin/default-elements/built-in-layout-element.d.ts +10 -0
  8. package/dist/admin/default-elements/built-in-layout-element.js +1 -0
  9. package/dist/admin/default-elements/index.d.ts +2 -0
  10. package/dist/admin/default-elements/index.js +1 -0
  11. package/dist/admin/index.d.ts +1 -0
  12. package/dist/admin/index.js +1 -1
  13. package/dist/application-spec/caching/content-diff.js +1 -1
  14. package/dist/application-spec/core/application-file.d.ts +0 -2
  15. package/dist/application-spec/core/application-file.js +1 -1
  16. package/dist/application-spec/core/components/component-filter.d.ts +53 -0
  17. package/dist/application-spec/core/components/component-filter.js +1 -0
  18. package/dist/application-spec/core/components/index.d.ts +2 -0
  19. package/dist/application-spec/core/components/index.js +1 -0
  20. package/dist/application-spec/core/components/sdk-code-ref.d.ts +9 -0
  21. package/dist/application-spec/core/components/sdk-code-ref.js +1 -0
  22. package/dist/application-spec/core/enhanced-json-value.d.ts +0 -68
  23. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  24. package/dist/application-spec/core/expressions/index.d.ts +2 -0
  25. package/dist/application-spec/core/expressions/index.js +1 -0
  26. package/dist/application-spec/core/expressions/relation-expression-params.d.ts +11 -0
  27. package/dist/application-spec/core/expressions/sdk-expression-implementation.d.ts +24 -0
  28. package/dist/application-spec/core/expressions/sdk-expression-implementation.js +1 -0
  29. package/dist/application-spec/core/index.d.ts +2 -0
  30. package/dist/application-spec/core/index.js +1 -1
  31. package/dist/application-spec/core/json-value.d.ts +1 -1
  32. package/dist/application-spec/{core → enhanced-json}/eval-to-constant.d.ts +1 -1
  33. package/dist/application-spec/enhanced-json/index.d.ts +4 -0
  34. package/dist/application-spec/enhanced-json/index.js +1 -0
  35. package/dist/application-spec/enhanced-json/is-enhanced-json-array.d.ts +2 -0
  36. package/dist/application-spec/enhanced-json/is-enhanced-json-array.js +1 -0
  37. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.d.ts +18 -0
  38. package/dist/application-spec/enhanced-json/resolve-enhanced-json-value.js +1 -0
  39. package/dist/application-spec/enhanced-json/schema-from-value.d.ts +24 -0
  40. package/dist/application-spec/enhanced-json/schema-from-value.js +1 -0
  41. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.d.ts +14 -0
  42. package/dist/application-spec/enhanced-json/stringify-enhanced-json-value.js +1 -0
  43. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.d.ts +12 -0
  44. package/dist/application-spec/enhanced-json/validate-enhanced-json-value-caps.js +1 -0
  45. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.d.ts +13 -0
  46. package/dist/application-spec/enhanced-json/validate-no-legacy-code-ref.js +1 -0
  47. package/dist/application-spec/errors/diagnostic-codes.d.ts +14 -0
  48. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  49. package/dist/application-spec/errors/diagnostic-messages.d.ts +17 -0
  50. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  51. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  52. package/dist/application-spec/generate-application/code/generate-application-code.d.ts +3 -2
  53. package/dist/application-spec/generate-application/code/generate-application-code.js +1 -1
  54. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +19 -9
  55. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  56. package/dist/application-spec/generate-application/code/standalone-app-files.d.ts +2 -2
  57. package/dist/application-spec/generate-application/code/standalone-app-files.js +1 -1
  58. package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -0
  59. package/dist/application-spec/generate-application/code/templates/configurator-config.js +6 -4
  60. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +4 -4
  61. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.d.ts +4 -2
  62. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-defaults.js +1 -1
  63. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +56 -56
  64. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +1 -1
  65. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  66. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-phx-globals.js +3 -0
  67. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-relation-expressions.js +1 -1
  68. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.d.ts +6 -8
  69. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +11 -11
  70. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +1 -1
  71. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  72. package/dist/application-spec/generate-application/code/templates/domain-spec.js +12 -12
  73. package/dist/application-spec/generate-application/code/templates/domain.js +3 -3
  74. package/dist/application-spec/generate-application/code/templates/eslint-config.d.ts +5 -0
  75. package/dist/application-spec/generate-application/code/templates/eslint-config.js +4 -5
  76. package/dist/application-spec/generate-application/code/templates/frontend-config.js +3 -5
  77. package/dist/application-spec/generate-application/code/templates/gitignore.js +0 -3
  78. package/dist/application-spec/generate-application/code/templates/globals.js +7 -4
  79. package/dist/application-spec/generate-application/code/templates/index.d.ts +3 -8
  80. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  81. package/dist/application-spec/generate-application/code/templates/lingui-rc.d.ts +5 -0
  82. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +4 -4
  83. package/dist/application-spec/generate-application/code/templates/package-json.js +1 -1
  84. package/dist/application-spec/generate-application/code/templates/prettier-config.d.ts +5 -0
  85. package/dist/application-spec/generate-application/code/templates/prettier-config.js +4 -5
  86. package/dist/application-spec/generate-application/code/templates/root-tsconfig.d.ts +6 -0
  87. package/dist/application-spec/generate-application/code/templates/root-tsconfig.js +2 -0
  88. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  89. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +66 -42
  90. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +9 -3
  91. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  92. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +24 -18
  93. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +6 -8
  94. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
  95. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
  96. package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
  97. package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
  98. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
  99. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
  100. package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
  101. package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
  102. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
  103. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
  104. package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
  105. package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
  106. package/dist/application-spec/generate-application/code/templates/webhook-builders.js +4 -3
  107. package/dist/application-spec/generate-application/code/templates/webhook-index.d.ts +6 -1
  108. package/dist/application-spec/generate-application/code/templates/webhook-index.js +10 -1
  109. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -3
  110. package/dist/application-spec/generate-application/index.d.ts +2 -0
  111. package/dist/application-spec/generate-application/index.js +1 -1
  112. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +4 -3
  113. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +7 -3
  114. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  115. package/dist/application-spec/generate-application/runtime/admin-runtime/states-runtime.d.ts +2 -2
  116. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +13 -7
  117. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  118. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +4 -3
  119. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +6 -4
  120. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  121. package/dist/application-spec/generate-application/runtime/configurator-runtime/states-runtime.d.ts +2 -2
  122. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +43 -0
  123. package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.js +1 -0
  124. package/dist/application-spec/generate-application/runtime/factory-data/index.d.ts +3 -0
  125. package/dist/application-spec/generate-application/runtime/factory-data/index.js +1 -0
  126. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +13 -0
  127. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -0
  128. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +16 -0
  129. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -0
  130. package/dist/application-spec/generate-application/runtime/migrations/index.d.ts +1 -0
  131. package/dist/application-spec/generate-application/runtime/migrations/index.js +1 -0
  132. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +53 -0
  133. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.js +1 -0
  134. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +2 -2
  135. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +1 -1
  136. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  137. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +2 -1
  138. package/dist/application-spec/generate-application/runtime/sections/data-runtime.d.ts +4 -4
  139. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +3 -2
  140. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  141. package/dist/application-spec/generate-application/runtime/sections/theme-runtime.d.ts +2 -2
  142. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +4 -6
  143. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.d.ts +9 -0
  144. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.js +1 -0
  145. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.d.ts +8 -0
  146. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.js +1 -0
  147. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +27 -0
  148. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.js +1 -0
  149. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +5 -0
  150. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -0
  151. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +68 -0
  152. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -0
  153. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +40 -0
  154. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.js +1 -0
  155. package/dist/application-spec/index.d.ts +1 -0
  156. package/dist/application-spec/index.js +1 -1
  157. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +34 -0
  158. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  159. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.d.ts +16 -0
  160. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.js +9 -0
  161. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts +9 -0
  162. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
  163. package/dist/application-spec/parse-application-files/categorize/module-analysis.d.ts +1 -1
  164. package/dist/application-spec/parse-application-files/categorize/module-analysis.js +1 -1
  165. package/dist/application-spec/parse-application-files/raw-spec/parse-yaml-spec-file.js +1 -1
  166. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.d.ts +16 -3
  167. package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
  168. package/dist/application-spec/parse-application-files/raw-spec/raw-spec-file.js +1 -1
  169. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  170. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  171. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  172. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  173. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.d.ts +3 -0
  174. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js +1 -0
  175. package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +5 -0
  176. package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -0
  177. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.d.ts +6 -0
  178. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.js +1 -0
  179. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.d.ts +8 -0
  180. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.js +1 -0
  181. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts +10 -0
  182. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.js +1 -0
  183. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.d.ts +98 -0
  184. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.js +1 -0
  185. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts +13 -0
  186. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js +1 -0
  187. package/dist/application-spec/parse-application-files/spec/components/bindings/index.d.ts +2 -0
  188. package/dist/application-spec/parse-application-files/spec/components/bindings/index.js +1 -1
  189. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.d.ts +24 -0
  190. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js +1 -0
  191. package/dist/application-spec/parse-application-files/spec/components/component-entry.d.ts +1 -9
  192. package/dist/application-spec/parse-application-files/spec/components/component-entry.js +1 -1
  193. package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +1 -54
  194. package/dist/application-spec/parse-application-files/spec/components/component-filter.js +1 -1
  195. package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts +8 -0
  196. package/dist/application-spec/parse-application-files/spec/components/component-state-type.js +1 -0
  197. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts +13 -0
  198. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js +1 -0
  199. package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -1
  200. package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
  201. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.d.ts +14 -0
  202. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.js +1 -0
  203. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +6 -0
  204. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  205. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +7 -4
  206. package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
  207. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +24 -0
  208. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -0
  209. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.d.ts +13 -0
  210. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.js +1 -0
  211. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
  212. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
  213. package/dist/application-spec/parse-application-files/spec/expressions/expression.d.ts +1 -28
  214. package/dist/application-spec/parse-application-files/spec/expressions/expression.js +1 -1
  215. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -3
  216. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  217. package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
  218. package/dist/application-spec/parse-application-files/spec/expressions/index.js +1 -1
  219. package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
  220. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +3 -1
  221. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  222. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +2 -2
  223. package/dist/application-spec/parse-application-files/spec/invariants/invariants.js +1 -1
  224. package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +7 -2
  225. package/dist/application-spec/parse-application-files/spec/model/defaults.js +1 -1
  226. package/dist/application-spec/parse-application-files/spec/model/index.d.ts +1 -0
  227. package/dist/application-spec/parse-application-files/spec/model/index.js +1 -1
  228. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.d.ts +10 -0
  229. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.js +1 -0
  230. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.d.ts +25 -0
  231. package/dist/application-spec/parse-application-files/spec/relations/reference-field-type.js +1 -0
  232. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.d.ts +46 -0
  233. package/dist/application-spec/parse-application-files/spec/relations/relation-field-mismatch.js +1 -0
  234. package/dist/application-spec/parse-application-files/spec/relations/relations.d.ts +4 -3
  235. package/dist/application-spec/parse-application-files/spec/relations/relations.js +1 -1
  236. package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
  237. package/dist/application-spec/parse-application-files/spec/sections/infra.d.ts +2 -0
  238. package/dist/application-spec/parse-application-files/spec/sections/infra.js +1 -1
  239. package/dist/client/authorized-client.d.ts +3 -1
  240. package/dist/client/authorized-client.js +1 -1
  241. package/dist/client/contract.d.ts +34 -0
  242. package/dist/client/contract.js +1 -1
  243. package/dist/client/index.d.ts +2 -2
  244. package/dist/client/index.js +1 -1
  245. package/dist/client/local-authorized-client.d.ts +3 -1
  246. package/dist/client/local-authorized-client.js +1 -1
  247. package/dist/client/memory-authorized-client.d.ts +3 -1
  248. package/dist/client/memory-authorized-client.js +1 -1
  249. package/dist/client/phoenix-api.d.ts +797 -121
  250. package/dist/configurator/application-runtime/extensions/create-configurator-extensions.js +1 -1
  251. package/dist/configurator/application-runtime/extensions/selectors.d.ts +3 -1
  252. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  253. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +126 -2
  254. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  255. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +7 -1
  256. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  257. package/dist/configurator/application-runtime/extensions/systems/drag-and-drop-system/drag-and-drop-system.d.ts +3 -3
  258. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +20 -4
  259. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  260. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.d.ts +11 -0
  261. package/dist/configurator/application-runtime/extensions/systems/graphql-system/inject-assistant-lenses.js +1 -0
  262. package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
  263. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.d.ts +2 -2
  264. package/dist/configurator/application-runtime/extensions/systems/layout-system/layout-system.js +1 -1
  265. package/dist/configurator/common/configurator-interface.d.ts +26 -1
  266. package/dist/configurator/common/configurator-interface.js +1 -1
  267. package/dist/configurator/common/frontend-analytics.d.ts +2 -0
  268. package/dist/configurator/common/frontend-analytics.js +1 -1
  269. package/dist/configurator/common/index.d.ts +2 -0
  270. package/dist/configurator/common/index.js +1 -1
  271. package/dist/configurator/common/use-finalize-action.d.ts +31 -0
  272. package/dist/configurator/common/use-finalize-action.js +1 -0
  273. package/dist/configurator/common/use-reset-camera.d.ts +6 -0
  274. package/dist/configurator/common/use-reset-camera.js +1 -0
  275. package/dist/configurator/configurator-context/configurator-hooks/layout-hooks.d.ts +1 -1
  276. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +7 -0
  277. package/dist/configurator/pages/DefaultConfiguratorLayout.js +1 -0
  278. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  279. package/dist/configurator/pages/configurator-layout-name.d.ts +2 -0
  280. package/dist/configurator/pages/configurator-layout-name.js +1 -0
  281. package/dist/configurator/pages/default-configurator-elements.d.ts +8 -0
  282. package/dist/configurator/pages/default-configurator-elements.js +1 -0
  283. package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +10 -0
  284. package/dist/configurator/pages/default-elements/built-in-entity-element.js +1 -0
  285. package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +10 -0
  286. package/dist/configurator/pages/default-elements/built-in-layout-element.js +1 -0
  287. package/dist/configurator/pages/default-elements/domain-control-elements.d.ts +6 -0
  288. package/dist/configurator/pages/default-elements/domain-control-elements.js +1 -0
  289. package/dist/configurator/pages/default-elements/index.d.ts +4 -0
  290. package/dist/configurator/pages/default-elements/index.js +1 -0
  291. package/dist/configurator/pages/default-elements/recipe-panel-elements.d.ts +3 -0
  292. package/dist/configurator/pages/default-elements/recipe-panel-elements.js +1 -0
  293. package/dist/configurator/pages/default-elements/sidebar-footer-elements.d.ts +7 -0
  294. package/dist/configurator/pages/default-elements/sidebar-footer-elements.js +1 -0
  295. package/dist/configurator/pages/default-elements/toolbar-elements.d.ts +7 -0
  296. package/dist/configurator/pages/default-elements/toolbar-elements.js +1 -0
  297. package/dist/configurator/pages/index.d.ts +1 -0
  298. package/dist/configurator/pages/index.js +1 -1
  299. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragHandle.d.ts +1 -1
  300. package/dist/configurator/scene/scene-controls/hotspot-drag-handle/HotspotDragSceneHandle.d.ts +1 -1
  301. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicator.d.ts +1 -1
  302. package/dist/configurator/scene/scene-entity/dimension-indicators/DimensionIndicatorInternal.d.ts +1 -1
  303. package/dist/configurator/scene/scene-entity/drag-and-drop/shared.d.ts +2 -2
  304. package/dist/configurator/scene/scene-entity/drag-and-drop/use-drag-object.d.ts +1 -1
  305. package/dist/configurator/scene/scene-entity/materials/RemoteReplacedMaterial.js +1 -1
  306. package/dist/configurator/scene/scene-entity/objects/SceneEntityObjectTextDecal.d.ts +1 -1
  307. package/dist/configurator/ui/assistant/AssistantChips.d.ts +8 -2
  308. package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
  309. package/dist/configurator/ui/assistant/AssistantComposer.d.ts +2 -1
  310. package/dist/configurator/ui/assistant/AssistantComposer.js +1 -1
  311. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -2
  312. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  313. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  314. package/dist/configurator/ui/assistant/AssistantThread.d.ts +6 -2
  315. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  316. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +13 -0
  317. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -0
  318. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.d.ts +22 -0
  319. package/dist/configurator/ui/assistant/entity-link/entity-link-selection.js +1 -0
  320. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +27 -0
  321. package/dist/configurator/ui/assistant/entity-link/entity-link-state.js +1 -0
  322. package/dist/configurator/ui/assistant/entity-link/index.d.ts +2 -0
  323. package/dist/configurator/ui/assistant/entity-link/index.js +1 -0
  324. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +19 -0
  325. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -0
  326. package/dist/configurator/ui/assistant/form/built-in-form-registry.d.ts +10 -0
  327. package/dist/configurator/ui/assistant/form/built-in-form-registry.js +1 -0
  328. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +11 -0
  329. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -0
  330. package/dist/configurator/ui/assistant/form/describe-build-errors.d.ts +6 -0
  331. package/dist/configurator/ui/assistant/form/describe-build-errors.js +1 -0
  332. package/dist/configurator/ui/assistant/form/form-element-definition.d.ts +14 -0
  333. package/dist/configurator/ui/assistant/form/form-element-definition.js +1 -0
  334. package/dist/configurator/ui/assistant/form/form-model.d.ts +38 -0
  335. package/dist/configurator/ui/assistant/form/form-model.js +1 -0
  336. package/dist/configurator/ui/assistant/form/form-registry.d.ts +31 -0
  337. package/dist/configurator/ui/assistant/form/form-registry.js +8 -0
  338. package/dist/configurator/ui/assistant/form/form-state.d.ts +4 -0
  339. package/dist/configurator/ui/assistant/form/form-state.js +1 -0
  340. package/dist/configurator/ui/assistant/form/index.d.ts +2 -0
  341. package/dist/configurator/ui/assistant/form/index.js +1 -0
  342. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +9 -0
  343. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -0
  344. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +13 -0
  345. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -0
  346. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +3 -0
  347. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -0
  348. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +3 -0
  349. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -0
  350. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +3 -0
  351. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -0
  352. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +3 -0
  353. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -0
  354. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +34 -0
  355. package/dist/configurator/ui/assistant/form-elements/form-element-props.js +1 -0
  356. package/dist/configurator/ui/assistant/form-elements/index.d.ts +5 -0
  357. package/dist/configurator/ui/assistant/form-elements/index.js +1 -0
  358. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +16 -0
  359. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -0
  360. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.d.ts +34 -0
  361. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.js +1 -0
  362. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.d.ts +25 -0
  363. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.js +1 -0
  364. package/dist/configurator/ui/assistant/reference-link/index.d.ts +3 -0
  365. package/dist/configurator/ui/assistant/reference-link/index.js +1 -0
  366. package/dist/configurator/ui/assistant/reference-link/reference-styles.d.ts +12 -0
  367. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -0
  368. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.d.ts +8 -0
  369. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.js +1 -0
  370. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +2 -0
  371. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  372. package/dist/configurator/ui/assistant/thread-items.d.ts +21 -3
  373. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  374. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.d.ts +1 -0
  375. package/dist/configurator/ui/configurator-layout/sidebar-keys/index.js +1 -0
  376. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.d.ts +11 -0
  377. package/dist/configurator/ui/configurator-layout/sidebar-keys/sidebar-keys.js +1 -0
  378. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.d.ts +101 -0
  379. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/DesktopSidebar.js +16 -0
  380. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.d.ts +1 -0
  381. package/dist/configurator/ui/configurator-layout/slots/desktop-sidebar/index.js +1 -0
  382. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.d.ts +4 -4
  383. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  384. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.d.ts +3 -6
  385. package/dist/configurator/ui/configurator-layout/slots/services/SideEffects.js +1 -1
  386. package/dist/configurator/ui/configurator-layout/slots/slots.d.ts +1 -0
  387. package/dist/configurator/ui/configurator-layout/slots/slots.js +1 -1
  388. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.d.ts +0 -74
  389. package/dist/configurator/ui/configurator-layout/universal/DesktopLayout.js +5 -20
  390. package/dist/configurator/ui/configurator-layout/universal/DesktopPreview.js +1 -1
  391. package/dist/configurator/ui/configurator-layout/universal/MobileLayout.js +4 -4
  392. package/dist/configurator/ui/configurator-layout/universal/MobilePreview.js +1 -1
  393. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.d.ts +47 -0
  394. package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -0
  395. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.d.ts +11 -26
  396. package/dist/configurator/ui/configurator-layout/universal/use-scene-safe-area.js +1 -1
  397. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.d.ts +2 -2
  398. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.d.ts +2 -2
  399. package/dist/docs/complex-use-cases/filtered-controls-with-fix-dialog.mdx +16 -19
  400. package/dist/docs/complex-use-cases/sketching.mdx +0 -38
  401. package/dist/docs/controls/select-attribute/cardselect.mdx +9 -13
  402. package/dist/docs/controls/select-child-entity/cardselect.mdx +1 -0
  403. package/dist/docs/dimensions/3d-scene-integration/dimension-indicators.mdx +2 -2
  404. package/dist/docs/dimensions/3d-scene-integration/editable-angle-indicator.mdx +1 -1
  405. package/dist/docs/dimensions/3d-scene-integration/editable-distance-dimension-indicator.mdx +1 -1
  406. package/dist/docs/dimensions/3d-scene-integration/list-selector-dimension-indicator.mdx +1 -1
  407. package/dist/docs/drag-and-drop/drag-handle.mdx +1 -1
  408. package/dist/docs/drag-and-drop/hotspot-handle.mdx +1 -1
  409. package/dist/docs/drag-and-drop/planes.mdx +1 -1
  410. package/dist/docs/drag-and-drop/rotatable.mdx +2 -2
  411. package/dist/docs/fabs/basic.mdx +2 -2
  412. package/dist/docs/index.json +42 -1
  413. package/dist/docs/integrations/woocommerce/local-development.mdx +1 -1
  414. package/dist/docs/layouts/custom-layout.mdx +2434 -0
  415. package/dist/docs/layouts/header/fixed.mdx +2 -2
  416. package/dist/docs/layouts/header/floating.mdx +2 -2
  417. package/dist/docs/layouts/sidebar/in-a-custom-layout.mdx +380 -0
  418. package/dist/docs/layouts/sidebar-footer/basic.mdx +32 -77
  419. package/dist/docs/other-features/client-side-rendering/declarative.mdx +1 -1
  420. package/dist/docs/other-features/side-effects.mdx +8 -11
  421. package/dist/docs/other-features/transformers.mdx +4 -0
  422. package/dist/docs/other-features/violation-messages.mdx +52 -56
  423. package/dist/docs/phoenix/application-states.mdx +9 -7
  424. package/dist/docs/phoenix/components.mdx +6 -0
  425. package/dist/docs/phoenix/configurator-interface.mdx +237 -80
  426. package/dist/docs/phoenix/deployments.mdx +2 -6
  427. package/dist/docs/phoenix/domain-model.mdx +6 -0
  428. package/dist/docs/phoenix/expression-context.mdx +11 -3
  429. package/dist/docs/phoenix/finalization.mdx +1 -1
  430. package/dist/docs/phoenix/getting-started.mdx +3 -2
  431. package/dist/docs/phoenix/layout-slots.mdx +116 -0
  432. package/dist/docs/phoenix/localization.mdx +10 -6
  433. package/dist/docs/phoenix/migration-guide.mdx +21 -8
  434. package/dist/docs/phoenix/phoenix-cli.mdx +73 -37
  435. package/dist/docs/phoenix/project-structure.mdx +46 -20
  436. package/dist/docs/phoenix/quickstart.mdx +2 -2
  437. package/dist/docs/phoenix/sdk-builder-workflow.mdx +3 -3
  438. package/dist/docs/phoenix/testing.mdx +140 -0
  439. package/dist/docs/phoenix/webhook-membership.mdx +10 -9
  440. package/dist/docs/phoenix/webhooks.mdx +23 -6
  441. package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
  442. package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +26 -11
  443. package/dist/domain/admin-domain/implementation/common-admin-publish.d.ts +1 -2
  444. package/dist/domain/admin-domain/index.d.ts +7 -2
  445. package/dist/domain/admin-domain/index.js +1 -1
  446. package/dist/domain/application/GetApplicationWrapperHandler.d.ts +2 -2
  447. package/dist/domain/application/GetThemeHandler.d.ts +1 -1
  448. package/dist/domain/application/GetWebComponentOptions.d.ts +1 -1
  449. package/dist/domain/application/admin-page-factories.d.ts +1 -2
  450. package/dist/domain/application/application-config.d.ts +9 -26
  451. package/dist/domain/application/assistant/assistant-fields.d.ts +12 -0
  452. package/dist/domain/application/assistant/assistant-fields.js +1 -0
  453. package/dist/domain/application/assistant/assistant-form-elements.d.ts +28 -0
  454. package/dist/domain/application/assistant/assistant-form-elements.js +1 -0
  455. package/dist/domain/application/assistant/assistant-manifest.d.ts +9 -1
  456. package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +38 -2
  457. package/dist/domain/application/assistant/assistant-resolved-manifest.js +1 -1
  458. package/dist/domain/application/assistant/build-assistant-lenses.d.ts +14 -0
  459. package/dist/domain/application/assistant/build-assistant-lenses.js +5 -0
  460. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  461. package/dist/domain/application/assistant/create-assistant-execution-schema.d.ts +32 -0
  462. package/dist/domain/application/assistant/create-assistant-execution-schema.js +1 -0
  463. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  464. package/dist/domain/application/assistant/index.d.ts +8 -1
  465. package/dist/domain/application/assistant/index.js +1 -1
  466. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.d.ts +20 -0
  467. package/dist/domain/application/assistant/session-setup/AssistantSetupHandler.js +1 -0
  468. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.d.ts +10 -0
  469. package/dist/domain/application/assistant/session-setup/apply-assistant-setup.js +1 -0
  470. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.d.ts +48 -0
  471. package/dist/domain/application/assistant/session-setup/assistant-setup-manifest.js +1 -0
  472. package/dist/domain/application/assistant/session-setup/create-session-assistant.d.ts +15 -0
  473. package/dist/domain/application/assistant/session-setup/create-session-assistant.js +1 -0
  474. package/dist/domain/application/assistant/session-setup/index.d.ts +4 -0
  475. package/dist/domain/application/assistant/session-setup/index.js +1 -0
  476. package/dist/domain/application/assistant-mutations.d.ts +2 -1
  477. package/dist/domain/application/assistant-recipe-groups.d.ts +4 -2
  478. package/dist/domain/application/configurator-builder.d.ts +5 -2
  479. package/dist/domain/application/configurator-builder.js +1 -1
  480. package/dist/domain/application/create-initial-published-data.d.ts +6 -7
  481. package/dist/domain/application/index.d.ts +1 -5
  482. package/dist/domain/application/index.js +1 -1
  483. package/dist/domain/application/published-data/DataRowValidatorHandler.d.ts +1 -1
  484. package/dist/domain/application/published-data/FilterPublishedChunksHandler.d.ts +1 -1
  485. package/dist/domain/application/published-data/MapPublishedChunkedDataHandler.d.ts +1 -1
  486. package/dist/domain/application/published-data/MapPublishedRevisionDataHandler.d.ts +1 -1
  487. package/dist/domain/application/published-data/SheetValidatorHandler.d.ts +1 -1
  488. package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
  489. package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
  490. package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
  491. package/dist/domain/application/published-data/map-published-chunked-data.d.ts +3 -3
  492. package/dist/domain/application/published-data/map-published-data.d.ts +7 -3
  493. package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
  494. package/dist/domain/available-system-components.js +1 -1
  495. package/dist/domain/core/action/action-factory.d.ts +2 -2
  496. package/dist/domain/core/action/action.d.ts +19 -14
  497. package/dist/domain/core/component/domain-component-optic.d.ts +29 -40
  498. package/dist/domain/core/component/domain-component-optic.js +2 -2
  499. package/dist/domain/core/component/legacy-filter.d.ts +2 -17
  500. package/dist/domain/core/component/system-component-filter.d.ts +36 -18
  501. package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
  502. package/dist/domain/core/data-schema/data-cell-value.js +1 -0
  503. package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
  504. package/dist/domain/core/data-schema/data-schema-array-field.js +1 -0
  505. package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
  506. package/dist/domain/core/data-schema/data-schema-field-object.js +1 -0
  507. package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
  508. package/dist/domain/core/data-schema/data-schema-field.js +1 -0
  509. package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
  510. package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
  511. package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
  512. package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
  513. package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
  514. package/dist/domain/core/data-schema/data-schema.js +1 -0
  515. package/dist/domain/core/data-schema/index.d.ts +7 -0
  516. package/dist/domain/core/data-schema/index.js +1 -0
  517. package/dist/domain/core/domain.d.ts +2 -2
  518. package/dist/domain/core/emission/index.d.ts +8 -0
  519. package/dist/domain/core/emission/index.js +1 -0
  520. package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
  521. package/dist/domain/core/emission/reset-state-emission.js +1 -0
  522. package/dist/domain/core/emission/state-emission.d.ts +4 -0
  523. package/dist/domain/core/emission/state-emission.js +1 -0
  524. package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
  525. package/dist/domain/core/emission/state-update-emission.js +1 -0
  526. package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
  527. package/dist/domain/core/emission/state-validation-result.js +1 -0
  528. package/dist/domain/core/emission/transformation-log.d.ts +2 -0
  529. package/dist/domain/core/emission/transformation-log.js +1 -0
  530. package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
  531. package/dist/domain/core/emission/transformer-log-entry.js +1 -0
  532. package/dist/domain/core/emission/transformer-log.d.ts +11 -0
  533. package/dist/domain/core/emission/transformer-log.js +1 -0
  534. package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
  535. package/dist/domain/core/emission/transformer-phase.js +1 -0
  536. package/dist/domain/core/expression/aliased-expressions.d.ts +2 -2
  537. package/dist/domain/core/expression/constant-expressions.d.ts +16 -8
  538. package/dist/domain/core/expression/constant-expressions.js +1 -1
  539. package/dist/domain/core/expression/custom-expression.d.ts +20 -7
  540. package/dist/domain/core/expression/custom-expression.js +1 -1
  541. package/dist/domain/core/expression/expression.d.ts +15 -17
  542. package/dist/domain/core/index.d.ts +2 -0
  543. package/dist/domain/core/invariant/custom-invariants.d.ts +8 -16
  544. package/dist/domain/core/invariant/index.d.ts +1 -1
  545. package/dist/domain/core/invariant/index.js +1 -1
  546. package/dist/domain/core/invariant/invariants.d.ts +4 -70
  547. package/dist/domain/core/invariant/invariants.js +1 -1
  548. package/dist/domain/core/invariant/violation.d.ts +51 -3
  549. package/dist/domain/core/invariant/violation.js +1 -1
  550. package/dist/domain/core/model/model.d.ts +1 -1
  551. package/dist/domain/core/recipe/recipes.d.ts +18 -50
  552. package/dist/domain/core/recipe/recipes.js +1 -1
  553. package/dist/domain/core/relation/all-of-type-relation.d.ts +8 -21
  554. package/dist/domain/core/relation/all-of-type-relation.js +1 -1
  555. package/dist/domain/core/relation/direct-relation.d.ts +13 -24
  556. package/dist/domain/core/relation/index.d.ts +0 -1
  557. package/dist/domain/core/relation/indirect-relation.d.ts +12 -67
  558. package/dist/domain/core/relation/indirect-relation.js +1 -1
  559. package/dist/domain/core/relation/reference-component.d.ts +2 -2
  560. package/dist/domain/core/relation/relation-factory.d.ts +19 -15
  561. package/dist/domain/core/relation/relation-factory.js +1 -1
  562. package/dist/domain/core/schema/extended-schema-validator.js +1 -1
  563. package/dist/domain/core/state/migrations.d.ts +14 -45
  564. package/dist/domain/core/state/migrations.js +1 -1
  565. package/dist/domain/core/state/state.d.ts +1 -1
  566. package/dist/domain/domain-builder.d.ts +1 -1
  567. package/dist/domain/domain-builder.js +1 -1
  568. package/dist/domain/domain-context/action-system/action-system.d.ts +2 -2
  569. package/dist/domain/domain-context/action-system/action-system.js +1 -1
  570. package/dist/domain/domain-context/action-system/index.d.ts +1 -0
  571. package/dist/domain/domain-context/action-system/index.js +1 -0
  572. package/dist/domain/domain-context/analytics-system/index.d.ts +2 -0
  573. package/dist/domain/domain-context/analytics-system/index.js +1 -0
  574. package/dist/domain/domain-context/create-transformer.d.ts +1 -1
  575. package/dist/domain/domain-context/dimension-system/dimension-system.d.ts +2 -2
  576. package/dist/domain/domain-context/dimension-system/dimension-system.js +1 -1
  577. package/dist/domain/domain-context/dimension-system/index.d.ts +1 -0
  578. package/dist/domain/domain-context/dimension-system/index.js +1 -0
  579. package/dist/domain/domain-context/domain-context-systems.d.ts +7 -7
  580. package/dist/domain/domain-context/index.d.ts +8 -17
  581. package/dist/domain/domain-context/index.js +1 -1
  582. package/dist/domain/domain-context/navigation-system/index.d.ts +3 -0
  583. package/dist/domain/domain-context/navigation-system/index.js +1 -0
  584. package/dist/domain/domain-context/navigation-system/navigation-system.d.ts +2 -3
  585. package/dist/domain/domain-context/navigation-system/navigation-system.js +1 -1
  586. package/dist/domain/domain-context/navigation-system/selection-transformers.d.ts +1 -1
  587. package/dist/domain/domain-context/recipe-system/index.d.ts +1 -0
  588. package/dist/domain/domain-context/recipe-system/index.js +1 -0
  589. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +1 -1
  590. package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
  591. package/dist/domain/domain-context/relation-transformers/cascade-deletes.d.ts +2 -2
  592. package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.d.ts +2 -2
  593. package/dist/domain/domain-context/relation-transformers/create-entity-refs.d.ts +2 -2
  594. package/dist/domain/domain-context/relation-transformers/index.d.ts +4 -0
  595. package/dist/domain/domain-context/relation-transformers/index.js +1 -0
  596. package/dist/domain/domain-context/relation-transformers/replace-refs.d.ts +2 -2
  597. package/dist/domain/domain-context/store-system/index.d.ts +4 -0
  598. package/dist/domain/domain-context/store-system/index.js +1 -0
  599. package/dist/domain/domain-context/store-system/reconcile-projected-entities.js +1 -1
  600. package/dist/domain/domain-context/store-system/store-system.d.ts +2 -35
  601. package/dist/domain/domain-context/store-system/store-system.js +2 -2
  602. package/dist/domain/domain-context/store-system/system-state.d.ts +1 -1
  603. package/dist/domain/domain-context/transformers/actions-builder.js +1 -1
  604. package/dist/domain/domain-context/transformers/auto-snap-transformer.d.ts +5 -7
  605. package/dist/domain/domain-context/transformers/auto-snap-transformer.js +1 -1
  606. package/dist/domain/domain-context/transformers/chain-builder.d.ts +1 -1
  607. package/dist/domain/domain-context/transformers/context.d.ts +2 -3
  608. package/dist/domain/domain-context/transformers/context.js +1 -1
  609. package/dist/domain/domain-context/transformers/entity-builder.js +1 -1
  610. package/dist/domain/domain-context/transformers/index.d.ts +1 -1
  611. package/dist/domain/domain-context/transformers/index.js +1 -1
  612. package/dist/domain/domain-context/transformers/when-builder.d.ts +2 -3
  613. package/dist/domain/domain-context/transformers/when-builder.js +1 -1
  614. package/dist/domain/domain-context/undo-system.d.ts +29 -3
  615. package/dist/domain/domain-context/undo-system.js +1 -1
  616. package/dist/domain/domain-runtime/access/selectors.d.ts +9 -0
  617. package/dist/domain/domain-runtime/access/selectors.js +1 -1
  618. package/dist/domain/domain-runtime/access/types.d.ts +2 -0
  619. package/dist/domain/domain-runtime/access/types.js +1 -1
  620. package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
  621. package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
  622. package/dist/domain/domain-runtime/domain-context/domain-context.js +1 -1
  623. package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
  624. package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
  625. package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
  626. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
  627. package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
  628. package/dist/domain/domain-runtime/domain-context/selectors.d.ts +18 -22
  629. package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
  630. package/dist/domain/domain-runtime/domain-context/types.d.ts +4 -1
  631. package/dist/domain/domain-runtime/domain-runtime.d.ts +84 -68
  632. package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +19 -0
  633. package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -0
  634. package/dist/domain/domain-runtime/errors/implementation-error.d.ts +46 -0
  635. package/dist/domain/domain-runtime/errors/implementation-error.js +1 -0
  636. package/dist/domain/domain-runtime/errors/implementation-errors.d.ts +13 -0
  637. package/dist/domain/domain-runtime/errors/implementation-errors.js +1 -0
  638. package/dist/domain/domain-runtime/errors/index.d.ts +4 -0
  639. package/dist/domain/domain-runtime/errors/index.js +1 -0
  640. package/dist/domain/domain-runtime/errors/to-implementation-errors.d.ts +10 -0
  641. package/dist/domain/domain-runtime/errors/to-implementation-errors.js +1 -0
  642. package/dist/domain/domain-runtime/index.d.ts +1 -0
  643. package/dist/domain/domain-runtime/index.js +1 -1
  644. package/dist/domain/domain-runtime/spec/create-violation-expressions.d.ts +24 -0
  645. package/dist/domain/domain-runtime/spec/create-violation-expressions.js +1 -0
  646. package/dist/domain/domain-runtime/spec/index.d.ts +2 -0
  647. package/dist/domain/domain-runtime/spec/index.js +1 -1
  648. package/dist/domain/domain-runtime/spec/initialize.d.ts +11 -0
  649. package/dist/domain/domain-runtime/spec/initialize.js +1 -1
  650. package/dist/domain/{application → domain-runtime/spec/module-checks}/element-registration.d.ts +2 -2
  651. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -0
  652. package/dist/domain/{application → domain-runtime/spec/module-checks}/handler-registration.d.ts +1 -1
  653. package/dist/domain/domain-runtime/spec/module-checks/handler-registration.js +1 -0
  654. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +8 -0
  655. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -0
  656. package/dist/domain/{project-modules → domain-runtime/spec/module-checks}/project-modules.d.ts +8 -17
  657. package/dist/domain/domain-runtime/spec/module-checks/project-modules.js +1 -0
  658. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.d.ts +4 -0
  659. package/dist/domain/domain-runtime/spec/module-checks/resolve-action-modules.js +1 -0
  660. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.d.ts +4 -0
  661. package/dist/domain/domain-runtime/spec/module-checks/resolve-component-optic-modules.js +1 -0
  662. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +15 -0
  663. package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -0
  664. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.d.ts +22 -0
  665. package/dist/domain/domain-runtime/spec/module-checks/resolve-imported-transformers.js +1 -0
  666. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.d.ts +6 -0
  667. package/dist/domain/domain-runtime/spec/module-checks/resolve-invariant-modules.js +1 -0
  668. package/dist/domain/domain-runtime/spec/selectors.d.ts +5 -6
  669. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  670. package/dist/domain/domain-runtime/spec/types.d.ts +5 -2
  671. package/dist/domain/{system-components → extensions}/attribute-switch.d.ts +1 -1
  672. package/dist/domain/extensions/attribute-switch.js +1 -0
  673. package/dist/domain/{system-components → extensions}/canvas-config.d.ts +1 -1
  674. package/dist/domain/{system-components → extensions}/child-entity-recipe-hierarchy.d.ts +1 -1
  675. package/dist/domain/extensions/child-entity-recipe-hierarchy.js +1 -0
  676. package/dist/domain/{system-components → extensions}/client-side-image.d.ts +2 -2
  677. package/dist/domain/{system-components → extensions}/client-side-image.js +1 -1
  678. package/dist/domain/{system-components → extensions}/common/angle-indicator-schema.d.ts +3 -3
  679. package/dist/domain/extensions/common/angle-indicator-schema.js +1 -0
  680. package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.d.ts +2 -2
  681. package/dist/domain/extensions/common/index.d.ts +4 -0
  682. package/dist/domain/extensions/common/index.js +1 -0
  683. package/dist/domain/{system-components → extensions}/custom-header.d.ts +1 -1
  684. package/dist/domain/extensions/custom-header.js +1 -0
  685. package/dist/domain/{system-components → extensions}/custom-price-footer.js +1 -1
  686. package/dist/domain/{system-components → extensions}/custom-sidebar-footer.d.ts +1 -1
  687. package/dist/domain/extensions/custom-sidebar-footer.js +1 -0
  688. package/dist/domain/{system-components → extensions}/editable-angle-indicator.d.ts +3 -2
  689. package/dist/domain/extensions/editable-angle-indicator.js +1 -0
  690. package/dist/domain/{system-components → extensions}/editable-distance-dimension-indicator.d.ts +3 -2
  691. package/dist/domain/extensions/editable-distance-dimension-indicator.js +1 -0
  692. package/dist/domain/{system-components → extensions}/editable-offset-indicator.d.ts +3 -2
  693. package/dist/domain/extensions/editable-offset-indicator.js +1 -0
  694. package/dist/domain/{system-components → extensions}/editable-size-indicator.d.ts +2 -1
  695. package/dist/domain/extensions/editable-size-indicator.js +1 -0
  696. package/dist/domain/{system-components → extensions}/entity-header.d.ts +1 -1
  697. package/dist/domain/extensions/entity-header.js +1 -0
  698. package/dist/domain/{system-components → extensions}/finalize-component.js +1 -1
  699. package/dist/domain/extensions/fit-selection-orthographic-camera-component.js +1 -0
  700. package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.js +1 -1
  701. package/dist/domain/{system-components → extensions}/horizontal-tabs.d.ts +2 -2
  702. package/dist/domain/extensions/index.d.ts +69 -0
  703. package/dist/domain/extensions/index.js +1 -0
  704. package/dist/domain/{system-components → extensions}/list-selector-dimension-indicator.d.ts +3 -2
  705. package/dist/domain/extensions/list-selector-dimension-indicator.js +1 -0
  706. package/dist/domain/{system-components → extensions}/navigation-steps.d.ts +2 -2
  707. package/dist/domain/extensions/offset-indicator.js +1 -0
  708. package/dist/domain/{system-components → extensions}/property-page.d.ts +1 -1
  709. package/dist/domain/extensions/property-page.js +1 -0
  710. package/dist/domain/{system-components → extensions}/replace-entity-recipe-hierarchy.d.ts +1 -1
  711. package/dist/domain/extensions/replace-entity-recipe-hierarchy.js +1 -0
  712. package/dist/domain/{system-components → extensions}/rotation-handle.d.ts +2 -2
  713. package/dist/domain/{system-components → extensions}/save-template-thumbnail.d.ts +2 -2
  714. package/dist/domain/{system-components → extensions}/save-template-thumbnail.js +1 -1
  715. package/dist/domain/{system-components → extensions}/scene-entity-add-fab.d.ts +1 -1
  716. package/dist/domain/extensions/scene-entity-add-fab.js +1 -0
  717. package/dist/domain/{system-components → extensions}/scene-entity-animation.js +1 -1
  718. package/dist/domain/{system-components → extensions}/scene-entity-delete-fab.d.ts +1 -1
  719. package/dist/domain/extensions/scene-entity-delete-fab.js +1 -0
  720. package/dist/domain/{system-components → extensions}/scene-entity-html-hotspot.d.ts +1 -1
  721. package/dist/domain/extensions/scene-entity-html-hotspot.js +1 -0
  722. package/dist/domain/{system-components → extensions}/scene-entity-navigation-hotspot.d.ts +1 -1
  723. package/dist/domain/extensions/scene-entity-navigation-hotspot.js +1 -0
  724. package/dist/domain/{system-components → extensions}/scene-entity-object-html-hotspot.d.ts +1 -1
  725. package/dist/domain/extensions/scene-entity-object-html-hotspot.js +1 -0
  726. package/dist/domain/{system-components → extensions}/scene-entity-select-hotspot.d.ts +1 -1
  727. package/dist/domain/extensions/scene-entity-select-hotspot.js +1 -0
  728. package/dist/domain/{system-components → extensions}/sketching-edit.d.ts +1 -1
  729. package/dist/domain/extensions/sketching-edit.js +1 -0
  730. package/dist/domain/{system-components → extensions}/summary-component.js +1 -1
  731. package/dist/domain/{system-components → extensions}/tool-menu-fab.d.ts +1 -1
  732. package/dist/domain/extensions/tool-menu-fab.js +1 -0
  733. package/dist/domain/{system-components → extensions}/toolbar.d.ts +1 -1
  734. package/dist/domain/extensions/toolbar.js +1 -0
  735. package/dist/domain/index.d.ts +1 -1
  736. package/dist/domain/index.js +1 -1
  737. package/dist/domain/mocks/create-mock-domain-context.d.ts +1 -1
  738. package/dist/domain/mocks/create-mock-domain-runtime-services.d.ts +1 -1
  739. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +28 -19
  740. package/dist/domain/mocks/create-mock-domain-runtime.js +1 -1
  741. package/dist/domain/mocks/create-mock-domain.d.ts +1 -1
  742. package/dist/domain/mocks/create-mock-domain.js +1 -1
  743. package/dist/domain/mocks/create-mock-state.d.ts +2 -2
  744. package/dist/domain/mocks/create-test-application-config.d.ts +59 -0
  745. package/dist/domain/mocks/create-test-application-config.js +1 -0
  746. package/dist/domain/mocks/index.d.ts +1 -0
  747. package/dist/domain/mocks/index.js +1 -1
  748. package/dist/domain/projections/blender-projections/blender-projections.d.ts +1 -2
  749. package/dist/domain/projections/blender-projections/camera.d.ts +2 -2
  750. package/dist/domain/projections/collision-projections.d.ts +1 -1
  751. package/dist/domain/projections/composition-projections.d.ts +1 -1
  752. package/dist/domain/projections/constraint-projections.d.ts +1 -1
  753. package/dist/domain/projections/index.d.ts +1 -1
  754. package/dist/domain/projections/position-projections.d.ts +1 -1
  755. package/dist/domain/projections/projected-entities-projections.d.ts +1 -1
  756. package/dist/domain/projections/snapping-projections.d.ts +1 -1
  757. package/dist/domain/projections/validation-projections.d.ts +3 -19
  758. package/dist/domain/sketching/sketching-projections.d.ts +1 -1
  759. package/dist/domain/system-components/application-config.d.ts +2 -2
  760. package/dist/domain/system-components/child-entity-selection.js +1 -1
  761. package/dist/domain/system-components/collision-box-geometry.d.ts +4 -2
  762. package/dist/domain/system-components/collision-geometry.d.ts +4 -2
  763. package/dist/domain/system-components/collision-point-geometry.d.ts +4 -2
  764. package/dist/domain/system-components/common/index.d.ts +0 -4
  765. package/dist/domain/system-components/common/index.js +1 -1
  766. package/dist/domain/system-components/common/material-override-schema.d.ts +2 -2
  767. package/dist/domain/system-components/common/recipes.d.ts +21 -3
  768. package/dist/domain/system-components/common/recipes.js +1 -1
  769. package/dist/domain/system-components/common/scene-entity-control-schema.d.ts +3 -0
  770. package/dist/domain/system-components/common/scene-entity-control-schema.js +1 -1
  771. package/dist/domain/system-components/constraint.d.ts +10 -23
  772. package/dist/domain/system-components/drag-handle.d.ts +1 -1
  773. package/dist/domain/system-components/drag-handle.js +1 -1
  774. package/dist/domain/system-components/fit-entity-orthographic-camera-component.js +1 -1
  775. package/dist/domain/system-components/fit-entity-perspective-camera-component.js +1 -1
  776. package/dist/domain/system-components/fit-root-orthographic-camera-component.js +1 -1
  777. package/dist/domain/system-components/fit-root-perspective-camera-component.js +1 -1
  778. package/dist/domain/system-components/hotspot-drag-handle.d.ts +1 -1
  779. package/dist/domain/system-components/hotspot-drag-handle.js +1 -1
  780. package/dist/domain/system-components/index.d.ts +0 -68
  781. package/dist/domain/system-components/index.js +1 -1
  782. package/dist/domain/system-components/material-swatch.js +1 -1
  783. package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
  784. package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
  785. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
  786. package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
  787. package/dist/domain/system-components/scene-entity-material-override.d.ts +1 -1
  788. package/dist/domain/system-components/scene-entity-object-material-override.d.ts +1 -1
  789. package/dist/domain/system-components/scene-entity-object-text-decal.d.ts +1 -1
  790. package/dist/domain/system-components/scene-entity-object-transimissive-material-override.d.ts +1 -1
  791. package/dist/domain/system-components/scene-entity-transimissive-material-override.d.ts +1 -1
  792. package/dist/domain/system-components/static-orthographic-camera-component.js +1 -1
  793. package/dist/domain/system-components/static-perspective-camera-component.js +1 -1
  794. package/dist/domain/utils/eval-cache.d.ts +1 -1
  795. package/dist/domain/utils/map-nested-object.d.ts +1 -1
  796. package/dist/domain/utils/memo-eval.d.ts +2 -2
  797. package/dist/editor/domain-editors/use-implementation-files.d.ts +1 -2
  798. package/dist/editor/mocks/EditorMockContext.js +1 -1
  799. package/dist/globals/index.d.ts +2 -0
  800. package/dist/i18n/locales/cs/messages.js +1 -1
  801. package/dist/i18n/locales/da/messages.js +1 -1
  802. package/dist/i18n/locales/de/messages.js +1 -1
  803. package/dist/i18n/locales/de-AT/messages.js +1 -1
  804. package/dist/i18n/locales/en/messages.js +1 -1
  805. package/dist/i18n/locales/en-AU/messages.js +1 -1
  806. package/dist/i18n/locales/en-GB/messages.js +1 -1
  807. package/dist/i18n/locales/es/messages.js +1 -1
  808. package/dist/i18n/locales/fr/messages.js +1 -1
  809. package/dist/i18n/locales/hu/messages.js +1 -1
  810. package/dist/i18n/locales/it/messages.js +1 -1
  811. package/dist/i18n/locales/nl/messages.js +1 -1
  812. package/dist/i18n/locales/pl/messages.js +1 -1
  813. package/dist/i18n/locales/pt/messages.js +1 -1
  814. package/dist/i18n/locales/ro/messages.js +1 -1
  815. package/dist/i18n/locales/sk/messages.js +1 -1
  816. package/dist/i18n/locales/tr/messages.js +1 -1
  817. package/dist/legacy/domain-cli/gen/configurator-builder.js +13 -12
  818. package/dist/legacy/domain-cli/gen/constant-expressions.js +1 -3
  819. package/dist/legacy/domain-cli/gen/defaults.js +1 -7
  820. package/dist/legacy/domain-cli/gen/implementation.js +7 -11
  821. package/dist/legacy/domain-cli/gen/invariants.js +7 -6
  822. package/dist/legacy/domain-cli/gen/relations.js +1 -1
  823. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  824. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  825. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +160 -148
  826. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
  827. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
  828. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
  829. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +7 -0
  830. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/domain-index.js +17 -15
  831. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.d.ts +1 -1
  832. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
  833. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +15 -14
  834. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-configurator.js +14 -12
  835. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +14 -13
  836. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-configurator.js +13 -11
  837. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  838. package/dist/phoenix/application-spec/generate-application-spec-story.js +2 -2
  839. package/dist/phoenix/application-spec/project-files.js +1 -1
  840. package/dist/phoenix/bin.d.ts +2 -0
  841. package/dist/phoenix/bin.js +2 -0
  842. package/dist/phoenix/check-configs/built-in-eslint-config.d.ts +9 -0
  843. package/dist/phoenix/check-configs/built-in-eslint-config.js +1 -0
  844. package/dist/phoenix/check-configs/eslint-config.d.ts +10 -0
  845. package/dist/phoenix/check-configs/eslint-config.js +1 -0
  846. package/dist/phoenix/check-configs/index.d.ts +8 -0
  847. package/dist/phoenix/check-configs/index.js +1 -0
  848. package/dist/phoenix/check-configs/typescript-project.d.ts +5 -0
  849. package/dist/phoenix/check-configs/typescript-project.js +1 -0
  850. package/dist/phoenix/cli.d.ts +0 -1
  851. package/dist/phoenix/cli.js +1 -2
  852. package/dist/phoenix/commands/check.js +1 -1
  853. package/dist/phoenix/commands/deploy.js +1 -1
  854. package/dist/phoenix/commands/deps/deps.d.ts +52 -0
  855. package/dist/phoenix/commands/deps/deps.js +3 -0
  856. package/dist/phoenix/commands/deps/index.d.ts +1 -0
  857. package/dist/phoenix/commands/deps/index.js +1 -0
  858. package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
  859. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
  860. package/dist/phoenix/commands/dev.js +5 -5
  861. package/dist/phoenix/commands/fix.js +1 -1
  862. package/dist/phoenix/commands/index.d.ts +1 -0
  863. package/dist/phoenix/commands/index.js +1 -1
  864. package/dist/phoenix/commands/init.d.ts +4 -4
  865. package/dist/phoenix/commands/init.js +1 -1
  866. package/dist/phoenix/commands/prettier.js +1 -1
  867. package/dist/phoenix/services/application-spec-project-watcher.d.ts +2 -0
  868. package/dist/phoenix/services/application-spec-project-watcher.js +3 -3
  869. package/dist/phoenix/services/lingui.d.ts +8 -0
  870. package/dist/phoenix/services/lingui.js +1 -1
  871. package/dist/phoenix/services/source-archive.d.ts +1 -0
  872. package/dist/phoenix/services/source-archive.js +1 -1
  873. package/dist/phoenix/services/swc.js +1 -1
  874. package/dist/phoenix/services/vite-config.js +1 -1
  875. package/dist/phoenix/utils/git/index.d.ts +1 -0
  876. package/dist/phoenix/utils/git/index.js +1 -0
  877. package/dist/phoenix/utils/git/is-inside-git-repository.d.ts +6 -0
  878. package/dist/phoenix/utils/git/is-inside-git-repository.js +1 -0
  879. package/dist/phoenix/utils/index.d.ts +3 -1
  880. package/dist/phoenix/utils/index.js +1 -1
  881. package/dist/phoenix/utils/node-version/index.d.ts +1 -0
  882. package/dist/phoenix/utils/node-version/index.js +1 -0
  883. package/dist/phoenix/utils/node-version/supported-node-version.d.ts +12 -0
  884. package/dist/phoenix/utils/node-version/supported-node-version.js +4 -0
  885. package/dist/phoenix/utils/run-command.d.ts +11 -0
  886. package/dist/phoenix/utils/run-command.js +1 -1
  887. package/dist/phoenix/utils/sdk-tool/index.d.ts +1 -0
  888. package/dist/phoenix/utils/sdk-tool/index.js +1 -0
  889. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.d.ts +15 -0
  890. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.js +1 -0
  891. package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +2 -0
  892. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  893. package/dist/react-sdk/application-runtime/routing/access-service.d.ts +1 -0
  894. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +53 -36
  895. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  896. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +30 -0
  897. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -0
  898. package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +9 -9
  899. package/dist/react-sdk/domain-context/index.d.ts +2 -1
  900. package/dist/react-sdk/domain-context/index.js +1 -1
  901. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.d.ts +11 -0
  902. package/dist/react-sdk/domain-context/system-hooks/navigation-hooks.js +1 -1
  903. package/dist/react-sdk/domain-controls/hooks/use-angle-dimension.d.ts +1 -1
  904. package/dist/ui-sdk/theme/types.d.ts +1 -1
  905. package/dist/webhook/builders/common.d.ts +5 -0
  906. package/dist/webhook/builders/webhook-builder.js +1 -1
  907. package/package.json +46 -35
  908. package/schema/domain-spec.json +1201 -217
  909. package/dist/application-spec/generate-application/code/templates/env-ci.d.ts +0 -1
  910. package/dist/application-spec/generate-application/code/templates/env-ci.js +0 -25
  911. package/dist/application-spec/generate-application/code/templates/env-example.d.ts +0 -1
  912. package/dist/application-spec/generate-application/code/templates/env-example.js +0 -90
  913. package/dist/application-spec/generate-application/code/templates/prettier-ignore.d.ts +0 -1
  914. package/dist/application-spec/generate-application/code/templates/prettier-ignore.js +0 -6
  915. package/dist/application-spec/generate-application/code/templates/private-assets-readme.d.ts +0 -1
  916. package/dist/application-spec/generate-application/code/templates/private-assets-readme.js +0 -24
  917. package/dist/application-spec/generate-application/code/templates/public-assets-readme.d.ts +0 -1
  918. package/dist/application-spec/generate-application/code/templates/public-assets-readme.js +0 -24
  919. package/dist/application-spec/generate-application/code/templates/readme.d.ts +0 -1
  920. package/dist/application-spec/generate-application/code/templates/readme.js +0 -23
  921. package/dist/application-spec/generate-application/code/templates/skills/agents-md.d.ts +0 -1
  922. package/dist/application-spec/generate-application/code/templates/skills/agents-md.js +0 -2
  923. package/dist/application-spec/generate-application/code/templates/webhook-implementation.d.ts +0 -1
  924. package/dist/application-spec/generate-application/code/templates/webhook-implementation.js +0 -7
  925. package/dist/domain/application/element-registration.js +0 -1
  926. package/dist/domain/application/handler-registration.js +0 -1
  927. package/dist/domain/application/resolve-imported-transformers.d.ts +0 -23
  928. package/dist/domain/application/resolve-imported-transformers.js +0 -1
  929. package/dist/domain/application/resource-builder.d.ts +0 -13
  930. package/dist/domain/application/resource-builder.js +0 -1
  931. package/dist/domain/core/relation/relation-implementation.d.ts +0 -7
  932. package/dist/domain/project-modules/index.d.ts +0 -1
  933. package/dist/domain/project-modules/index.js +0 -1
  934. package/dist/domain/project-modules/project-modules.js +0 -1
  935. package/dist/domain/system-components/attribute-switch.js +0 -1
  936. package/dist/domain/system-components/child-entity-recipe-hierarchy.js +0 -1
  937. package/dist/domain/system-components/common/angle-indicator-schema.js +0 -1
  938. package/dist/domain/system-components/custom-header.js +0 -1
  939. package/dist/domain/system-components/custom-sidebar-footer.js +0 -1
  940. package/dist/domain/system-components/editable-angle-indicator.js +0 -1
  941. package/dist/domain/system-components/editable-distance-dimension-indicator.js +0 -1
  942. package/dist/domain/system-components/editable-offset-indicator.js +0 -1
  943. package/dist/domain/system-components/editable-size-indicator.js +0 -1
  944. package/dist/domain/system-components/entity-header.js +0 -1
  945. package/dist/domain/system-components/fit-selection-orthographic-camera-component.js +0 -1
  946. package/dist/domain/system-components/list-selector-dimension-indicator.js +0 -1
  947. package/dist/domain/system-components/offset-indicator.js +0 -1
  948. package/dist/domain/system-components/property-page.js +0 -1
  949. package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +0 -1
  950. package/dist/domain/system-components/scene-entity-add-fab.js +0 -1
  951. package/dist/domain/system-components/scene-entity-delete-fab.js +0 -1
  952. package/dist/domain/system-components/scene-entity-html-hotspot.js +0 -1
  953. package/dist/domain/system-components/scene-entity-navigation-hotspot.js +0 -1
  954. package/dist/domain/system-components/scene-entity-object-html-hotspot.js +0 -1
  955. package/dist/domain/system-components/scene-entity-select-hotspot.js +0 -1
  956. package/dist/domain/system-components/sketching-edit.js +0 -1
  957. package/dist/domain/system-components/tool-menu-fab.js +0 -1
  958. package/dist/domain/system-components/toolbar.js +0 -1
  959. /package/dist/{domain/core/relation/relation-implementation.js → application-spec/core/expressions/relation-expression-params.js} +0 -0
  960. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.d.ts +0 -0
  961. /package/dist/application-spec/{core → enhanced-json}/eval-code-uses-self.js +0 -0
  962. /package/dist/application-spec/{core → enhanced-json}/eval-to-constant.js +0 -0
  963. /package/dist/domain/{system-components → extensions}/angle-indicator.d.ts +0 -0
  964. /package/dist/domain/{system-components → extensions}/angle-indicator.js +0 -0
  965. /package/dist/domain/{system-components → extensions}/autorotate-camera-component.d.ts +0 -0
  966. /package/dist/domain/{system-components → extensions}/autorotate-camera-component.js +0 -0
  967. /package/dist/domain/{system-components → extensions}/basic-sidebar-footer.d.ts +0 -0
  968. /package/dist/domain/{system-components → extensions}/basic-sidebar-footer.js +0 -0
  969. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.d.ts +0 -0
  970. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.js +0 -0
  971. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.d.ts +0 -0
  972. /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.js +0 -0
  973. /package/dist/domain/{system-components → extensions}/canvas-config.js +0 -0
  974. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.d.ts +0 -0
  975. /package/dist/domain/{system-components → extensions}/canvas-custom-environment.js +0 -0
  976. /package/dist/domain/{system-components → extensions}/canvas-padding.d.ts +0 -0
  977. /package/dist/domain/{system-components → extensions}/canvas-padding.js +0 -0
  978. /package/dist/domain/{system-components → extensions}/canvas-preset-environment.d.ts +0 -0
  979. /package/dist/domain/{system-components → extensions}/canvas-preset-environment.js +0 -0
  980. /package/dist/domain/{system-components → extensions}/color-value.d.ts +0 -0
  981. /package/dist/domain/{system-components → extensions}/color-value.js +0 -0
  982. /package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.js +0 -0
  983. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.d.ts +0 -0
  984. /package/dist/domain/{system-components → extensions}/common/dimension-indicators.js +0 -0
  985. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.d.ts +0 -0
  986. /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.js +0 -0
  987. /package/dist/domain/{system-components → extensions}/custom-price-footer.d.ts +0 -0
  988. /package/dist/domain/{system-components → extensions}/dimension-indicator.d.ts +0 -0
  989. /package/dist/domain/{system-components → extensions}/dimension-indicator.js +0 -0
  990. /package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.d.ts +0 -0
  991. /package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.js +0 -0
  992. /package/dist/domain/{system-components → extensions}/finalize-action.d.ts +0 -0
  993. /package/dist/domain/{system-components → extensions}/finalize-action.js +0 -0
  994. /package/dist/domain/{system-components → extensions}/finalize-component.d.ts +0 -0
  995. /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.d.ts +0 -0
  996. /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.d.ts +0 -0
  997. /package/dist/domain/{system-components → extensions}/fixed-header.d.ts +0 -0
  998. /package/dist/domain/{system-components → extensions}/fixed-header.js +0 -0
  999. /package/dist/domain/{system-components → extensions}/floating-header.d.ts +0 -0
  1000. /package/dist/domain/{system-components → extensions}/floating-header.js +0 -0
  1001. /package/dist/domain/{system-components → extensions}/hidden-header.d.ts +0 -0
  1002. /package/dist/domain/{system-components → extensions}/hidden-header.js +0 -0
  1003. /package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.d.ts +0 -0
  1004. /package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.js +0 -0
  1005. /package/dist/domain/{system-components → extensions}/horizontal-tabs.js +0 -0
  1006. /package/dist/domain/{system-components → extensions}/multilingual-text-value.d.ts +0 -0
  1007. /package/dist/domain/{system-components → extensions}/multilingual-text-value.js +0 -0
  1008. /package/dist/domain/{system-components → extensions}/navigation-steps.js +0 -0
  1009. /package/dist/domain/{system-components → extensions}/offset-anchors.d.ts +0 -0
  1010. /package/dist/domain/{system-components → extensions}/offset-anchors.js +0 -0
  1011. /package/dist/domain/{system-components → extensions}/offset-indicator.d.ts +0 -0
  1012. /package/dist/domain/{system-components → extensions}/offset.d.ts +0 -0
  1013. /package/dist/domain/{system-components → extensions}/offset.js +0 -0
  1014. /package/dist/domain/{system-components → extensions}/other-action.d.ts +0 -0
  1015. /package/dist/domain/{system-components → extensions}/other-action.js +0 -0
  1016. /package/dist/domain/{system-components → extensions}/read-sidebar-footer.d.ts +0 -0
  1017. /package/dist/domain/{system-components → extensions}/read-sidebar-footer.js +0 -0
  1018. /package/dist/domain/{system-components → extensions}/rotatable.d.ts +0 -0
  1019. /package/dist/domain/{system-components → extensions}/rotatable.js +0 -0
  1020. /package/dist/domain/{system-components → extensions}/rotation-handle.js +0 -0
  1021. /package/dist/domain/{system-components → extensions}/scene-entity-animation.d.ts +0 -0
  1022. /package/dist/domain/{system-components → extensions}/scene-entity-control.d.ts +0 -0
  1023. /package/dist/domain/{system-components → extensions}/scene-entity-control.js +0 -0
  1024. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.d.ts +0 -0
  1025. /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.js +0 -0
  1026. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.d.ts +0 -0
  1027. /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.js +0 -0
  1028. /package/dist/domain/{system-components → extensions}/selectable-component.d.ts +0 -0
  1029. /package/dist/domain/{system-components → extensions}/selectable-component.js +0 -0
  1030. /package/dist/domain/{system-components → extensions}/sidebar-tabs.d.ts +0 -0
  1031. /package/dist/domain/{system-components → extensions}/sidebar-tabs.js +0 -0
  1032. /package/dist/domain/{system-components → extensions}/simple-summary.d.ts +0 -0
  1033. /package/dist/domain/{system-components → extensions}/simple-summary.js +0 -0
  1034. /package/dist/domain/{system-components → extensions}/size.d.ts +0 -0
  1035. /package/dist/domain/{system-components → extensions}/size.js +0 -0
  1036. /package/dist/domain/{system-components → extensions}/sketching-draw.d.ts +0 -0
  1037. /package/dist/domain/{system-components → extensions}/sketching-draw.js +0 -0
  1038. /package/dist/domain/{system-components → extensions}/summary-component.d.ts +0 -0
  1039. /package/dist/domain/{system-components → extensions}/text-value.d.ts +0 -0
  1040. /package/dist/domain/{system-components → extensions}/text-value.js +0 -0
  1041. /package/dist/domain/{system-components → extensions}/tool-controls.d.ts +0 -0
  1042. /package/dist/domain/{system-components → extensions}/tool-controls.js +0 -0
  1043. /package/dist/domain/{system-components → extensions}/universal-sidebar-footer.d.ts +0 -0
  1044. /package/dist/domain/{system-components → extensions}/universal-sidebar-footer.js +0 -0
  1045. /package/dist/domain/{system-components → extensions}/view-controls.d.ts +0 -0
  1046. /package/dist/domain/{system-components → extensions}/view-controls.js +0 -0
@@ -1 +1 @@
1
- import{existsSync as e}from"fs";import{mkdir as n,readFile as t,writeFile as i}from"fs/promises";import{basename as o,dirname as r,join as p}from"path";import{ensureWorkspaceInstallSettings as a}from"../utils/index.js";import{starterSpecFiles as s}from"./init-starter-spec.js";let c="@salsita-ai/sdk",l=async e=>{let n=`Install the SDK first (\`pnpm add ${c}\`), then rerun \`pnpm phoenix init\`.`,i=JSON.parse(await t(e,"utf-8"));if("object"!=typeof i||null===i||Array.isArray(i))throw Error(`phoenix init could not read package.json because it is not a JSON object. ${n}`);if(!["dependencies","devDependencies"].some(e=>{let n=Reflect.get(i,e);return"object"==typeof n&&null!==n&&c in n}))throw Error(`phoenix init found no ${c} dependency in package.json. ${n}`);return{...i}},d=async e=>{for(let t of s){let o=p(e,t.path);await n(r(o),{recursive:!0}),await i(o,t.content)}},m=async(e,n)=>{let t=n.phoenix;await i(e,JSON.stringify({...n,phoenix:{..."object"==typeof t&&null!==t?t:{},applicationFlow:!0}},null,2)+"\n")};export const runInitCommand=async(t,{logger:i})=>{var r,s;let f,u=t.projectRoot??process.cwd(),h=p(u,"package.json");if(e(p(u,"spec")))throw Error("phoenix init found an existing spec/ folder. init only starts new projects, and writing a starter spec would overwrite or mix with the existing one. To update an existing project, run `pnpm phoenix sync`; to start over, run init in an empty project folder.");let w=e(h)?await l(h):(r=u,s=t.sdkVersion,{name:(f=o(r).toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^[._-]+|[-]+$/g,"")).length>0?f:"phoenix-configurator",private:!0,type:"module",dependencies:{[c]:s},devDependencies:{"@lingui/cli":"5.9.5","@lingui/swc-plugin":"5.11.0"}});i.step(`Writing the starter project to ${u}`),await n(u,{recursive:!0}),await d(u),await m(h,w),a(u),i.success(`Phoenix project created in ${u}.`),i.info("\nNext steps, in the project folder:\n pnpm install\n pnpm phoenix sync\n pnpm phoenix login <workspace>\n pnpm phoenix dev\n pnpm phoenix deploy\n\nDeveloping against a Studio development environment instead? Paste its .env block into .env before phoenix dev.")};
1
+ import{existsSync as e}from"fs";import{mkdir as n,readFile as t,writeFile as i}from"fs/promises";import{basename as o,dirname as r,join as p}from"path";import{ensureWorkspaceInstallSettings as s}from"../utils/index.js";import{starterSpecFiles as a}from"./init-starter-spec.js";let c="@salsita-ai/sdk",l={dev:"phoenix dev",build:"phoenix build",deploy:"phoenix deploy",check:"phoenix check",fix:"phoenix fix"},d=async e=>{let n=`Install the SDK first (\`pnpm add ${c}\`), then rerun \`pnpm phoenix init\`.`,i=JSON.parse(await t(e,"utf-8"));if("object"!=typeof i||null===i||Array.isArray(i))throw Error(`phoenix init could not read package.json because it is not a JSON object. ${n}`);if(!["dependencies","devDependencies"].some(e=>{let n=Reflect.get(i,e);return"object"==typeof n&&null!==n&&c in n}))throw Error(`phoenix init found no ${c} dependency in package.json. ${n}`);return{...i}},h=async e=>{for(let t of a){let o=p(e,t.path);await n(r(o),{recursive:!0}),await i(o,t.content)}},f=async(e,n)=>{let t=n.phoenix,o=n.scripts,r="object"==typeof o&&null!==o?o:{},p=Object.fromEntries(Object.entries(l).filter(([e])=>!(e in r)));await i(e,JSON.stringify({...n,scripts:{...r,...p},phoenix:{..."object"==typeof t&&null!==t?t:{},applicationFlow:!0}},null,2)+"\n")};export const runInitCommand=async(t,{logger:i})=>{var r,a;let u,m=t.projectRoot??process.cwd(),x=p(m,"package.json");if(e(p(m,"spec")))throw Error("phoenix init found an existing spec/ folder. init only starts new projects, and writing a starter spec would overwrite or mix with the existing one. To update an existing project, run `pnpm phoenix sync`; to start over, run init in an empty project folder.");let w=e(x)?await d(x):(r=m,a=t.sdkVersion,{name:(u=o(r).toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^[._-]+|[-]+$/g,"")).length>0?u:"phoenix-configurator",private:!0,type:"module",scripts:l,dependencies:{[c]:a},devDependencies:{"@lingui/cli":"5.9.5","@lingui/swc-plugin":"5.11.0"}});i.step(`Writing the starter project to ${m}`),await n(m,{recursive:!0}),await h(m),await f(x,w),s(m),i.success(`Phoenix project created in ${m}.`),i.info("\nNext steps, in the project folder:\n pnpm install\n pnpm phoenix sync\n pnpm phoenix login <workspace>\n pnpm phoenix dev\n pnpm phoenix deploy\n\nDeveloping against a Studio development environment instead? Paste its .env block into .env before phoenix dev.")};
@@ -1 +1 @@
1
- import{readFile as t,writeFile as e}from"fs/promises";import{globby as o}from"globby";import{resolve as r}from"path";import*as i from"prettier";let a=["**/node_modules/**","**/dist/**","**/.git/**","**/webhooks/index.ts`","**/frontend-configurator.ts`","**/frontend-admin.ts`","**/frontend-embedded-admin.ts`","pnpm-lock.yaml",".linguirc"];export const formatFiles=async(n,f)=>{let{logger:l}=f,s=await o("."===n?"**/*":n,{gitignore:!0,ignore:a}),c=0;for(let o of s)try{let a=r(o),n=await t(a,"utf-8"),f=await i.resolveConfig(a);if((await i.getFileInfo(a)).ignored)continue;let l=await i.format(n,{...f,filepath:a});l!==n&&(await e(a,l,"utf-8"),c++)}catch(t){}c>0&&l.info(`Formatted ${c} file${1!==c?"s":""}`)};export const checkFiles=async(e,n)=>{let{logger:f}=n,l=await o("."===e?"**/*":e,{gitignore:!0,ignore:a}),s=[];for(let e of l)try{let o=r(e),a=await t(o,"utf-8"),n=await i.resolveConfig(o);if((await i.getFileInfo(o)).ignored)continue;await i.check(a,{...n,filepath:o})||s.push(e)}catch(t){}return!(s.length>0)||(f.error(`Found ${s.length} unformatted file${1!==s.length?"s":""}:`),s.forEach(t=>{console.error(` - ${t}`)}),!1)};
1
+ import{readFile as t,writeFile as o}from"fs/promises";import{globby as e}from"globby";import{resolve as r}from"path";import*as i from"prettier";import{prettierrc as a}from"@salsita-ai/common/prettier";let n=["**/node_modules/**","**/dist/**","**/.git/**","**/.phoenix/**","**/locales/*/*.ts","pnpm-lock.yaml","pnpm-workspace.yaml","package-lock.json","npm-shrinkwrap.json","yarn.lock",".yarnrc.yml","bun.lock","bun.lockb",".linguirc"];export const formatFiles=async(l,f)=>{let{logger:c}=f,s=await e("."===l?"**/*":l,{gitignore:!0,ignore:n}),m=0;for(let e of s)try{let n=r(e),l=await t(n,"utf-8"),f=await i.resolveConfig(n)??a;if((await i.getFileInfo(n)).ignored)continue;let c=await i.format(l,{...f,filepath:n});c!==l&&(await o(n,c,"utf-8"),m++)}catch(t){}m>0&&c.info(`Formatted ${m} file${1!==m?"s":""}`)};export const checkFiles=async(o,l)=>{let{logger:f}=l,c=await e("."===o?"**/*":o,{gitignore:!0,ignore:n}),s=[];for(let o of c)try{let e=r(o),n=await t(e,"utf-8"),l=await i.resolveConfig(e)??a;if((await i.getFileInfo(e)).ignored)continue;await i.check(n,{...l,filepath:e})||s.push(o)}catch(t){}return!(s.length>0)||(f.error(`Found ${s.length} unformatted file${1!==s.length?"s":""}:`),s.forEach(t=>{console.error(` - ${t}`)}),!1)};
@@ -2,6 +2,8 @@ import { type ViteDevServer } from 'vite';
2
2
  import type { Logger } from '../utils/index.js';
3
3
  import type { PhoenixPubSub } from './phoenix-pubsub.js';
4
4
  import type { VariantFileEdit } from './variant-file-session.js';
5
+ export declare const WATCH_PATTERNS: string[];
6
+ export declare const IGNORED_PATTERNS: string[];
5
7
  /** Configuration for {@link ApplicationSpecProjectWatcher}. */
6
8
  export interface ApplicationSpecProjectWatcherConfig {
7
9
  readonly pubsub: PhoenixPubSub;
@@ -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 l}from"vite";import{watch as a}from"#package/watch";import{ApplicationSpecBuilder as h}from"../application-spec/application-spec-builder.js";import{logDiagnostics as c}from"../application-spec/metrics/index.js";import{syncTemplateFiles as u}from"../application-spec/template-files.js";import{buildWebhooks as p}from"../webhooks/index.js";import{getViteDevConfig as g}from"./vite-config.js";export const WATCH_PATTERNS=["spec/**/*.{yaml,yml}","src/**/*.{ts,tsx,yaml,yml,json,html,css}","templates/*.html",".env",".env.generated",".phoenix/.env.generated"];export const IGNORED_PATTERNS=["src/locales/**/*.{ts,tsx}",".phoenix/!(.env.generated)/**"];export class ApplicationSpecProjectWatcher{watcher=null;subscription=null;rebuildQueue=new i(1,1/0);changeSubject$=new s;viteServer=null;pubsub;logger;onRebuilt;onViteServerChange;builder;useServer;isShuttingDown=!1;suspended=!1;heldChanges=new Set;constructor(e){this.pubsub=e.pubsub,this.logger=e.logger,this.onRebuilt=e.onRebuilt,this.onViteServerChange=e.onViteServerChange,this.builder=new 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(){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.viteServer;if(!r)throw Error("Cannot rebuild the project: the watcher has no Vite server yet, because it was not started. Start the watcher before applying files");let o=await u();if(this.isShuttingDown)return;let a=await this.builder.build({compile:!s});if(this.isShuttingDown)return;if(c(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}this.onRebuilt?.();let{application:h,changedFiles:d}=a,w=r.moduleGraph,b=Date.now(),f=new Set,S=process.cwd(),m=e=>{let t=w.getModulesByFile(l(e));if(t)for(let e of t)w.invalidateModule(e,f,b,!0)};for(let i of e)m(t(S,i));for(let e of d)m(t(S,`.phoenix/${e.path}`));if(this.pubsub.specFile$.next({rawProjectFiles:h.rawProjectFiles,projectRoot:process.cwd(),configurationSchemaHash:h.applicationSpec.configurator.configurationSchema.hash}),this.isShuttingDown)return;if(i){if(await r.close(),this.isShuttingDown)return;let e=await g({templateFiles:o});if(this.isShuttingDown)return;let t=await n(e);if(this.isShuttingDown||(await t.listen(),this.isShuttingDown))return void await t.close();this.viteServer=t,this.onViteServerChange?.(t),this.logger.success("Vite server restarted (env changed)")}if(this.useServer&&!s){if(this.logger.step("Building webhooks"),await p({experimental:!0,skipNodeEnvOverride:!0,webhookEntryPoint:"./.phoenix/.swc/.phoenix/webhook.js",preserveExistingOutput:!0}),this.isShuttingDown)return;this.logger.success("Webhooks rebuilt successfully")}this.logger.success("Project files rebuilt successfully")}catch(e){this.logger.error(`Build failed: ${e instanceof Error?e.message:String(e)}`,e)}}}
@@ -1,4 +1,12 @@
1
1
  import { type Logger } from '../utils/index.js';
2
+ /**
3
+ * The project's Lingui configuration, which sync generates, relative to the project root. The Lingui
4
+ * CLI, the Lingui Vite plugin and the Lingui macros in the Vite builds are always given this path, so a
5
+ * `.linguirc` that earlier SDK versions left in the project root is not read. Lingui searches the
6
+ * working directory instead only when the named file is missing; generation writes it with the rest of
7
+ * `.phoenix/` before Phoenix runs Lingui or Vite.
8
+ */
9
+ export declare const LINGUI_CONFIG_PATH = ".phoenix/.linguirc";
2
10
  interface LinguiCommandContext {
3
11
  readonly logger: Logger;
4
12
  }
@@ -1 +1 @@
1
- import{runCommand as i}from"../utils/index.js";let n=async n=>{await i({command:"lingui",args:["extract"],description:"Extracting i18n messages",quiet:!0,extraEnv:{LC_ALL:"en_US.UTF-8"}},n)};export const compileLingui=async n=>{await i({command:"lingui",args:["compile"],description:"Compiling i18n messages",quiet:!0},n)};export const extractAndCompileLingui=async i=>{await n(i),await compileLingui(i)};
1
+ import{runSdkTool as i}from"../utils/index.js";export const LINGUI_CONFIG_PATH=".phoenix/.linguirc";let n=async n=>{await i({tool:{packageName:"@lingui/cli",binName:"lingui"},args:["extract","--config",LINGUI_CONFIG_PATH],description:"Extracting i18n messages",quiet:!0,extraEnv:{LC_ALL:"en_US.UTF-8"}},n)};export const compileLingui=async n=>{await i({tool:{packageName:"@lingui/cli",binName:"lingui"},args:["compile","--config",LINGUI_CONFIG_PATH],description:"Compiling i18n messages",quiet:!0},n)};export const extractAndCompileLingui=async i=>{await n(i),await compileLingui(i)};
@@ -3,6 +3,7 @@ export interface SourceArchive {
3
3
  readonly path: string;
4
4
  readonly fileCount: number;
5
5
  readonly size: number;
6
+ readonly hasConversationLog: boolean;
6
7
  readonly cleanup: () => Promise<void>;
7
8
  }
8
9
  /** What `extractSourceArchive` wrote and what it left out. */
@@ -1 +1 @@
1
- import{execFile as e}from"node:child_process";import{createReadStream as r,createWriteStream as t}from"node:fs";import{lstat as o,mkdir as i,mkdtemp as a,readdir as n,rm as s,stat as c,writeFile as l}from"node:fs/promises";import{tmpdir as h}from"node:os";import{dirname as p,join as f}from"node:path";import{Transform as d}from"node:stream";import{pipeline as w}from"node:stream/promises";import{promisify as m}from"node:util";import{createGunzip as u}from"node:zlib";import{extract as g}from"tar-stream";import{isProjectFile as y,listProjectEntries as v}from"../application-spec/project-files.js";let x=m(e);export const createSourceArchive=async e=>{let r=await Promise.all((await v(e)).map(async r=>({name:r,entry:await o(f(e,r))}))),t=r.filter(({entry:e})=>!e.isDirectory()&&(!e.isFile()||e.nlink>1)),i=r.filter(({entry:e})=>e.isFile()).map(({name:e})=>e);if(t.length>0)throw Error(`These project files are links or special files, which builds do not accept: ${t.map(({name:e})=>e).join(", ")}. Replace them with regular files and deploy again.`);if(0===i.length)throw Error(`No project files were found in ${e}, so there is nothing to deploy. Run phoenix deploy in the folder of an application-spec project.`);let n=await a(f(h(),"phoenix-deploy-")),p="sources.tgz",d=f(n,p),w=f(n,"files");try{await l(w,i.join("\0")),await x("tar",["-czf",p,"-C",e,"--null","-T",w],{cwd:n,env:{...process.env,COPYFILE_DISABLE:"1"}})}catch(r){await s(n,{recursive:!0,force:!0});let e=r instanceof Error?r.message:String(r);throw Error(`Packing the project with tar failed: ${e}. Check that tar is installed and on the PATH.`)}return{path:d,fileCount:i.length,size:(await c(d)).size,cleanup:()=>s(n,{recursive:!0,force:!0})}};let E=(e,...r)=>e instanceof Error&&"code"in e&&"string"==typeof e.code&&r.includes(e.code),j=async e=>{try{return 0===(await n(e)).length}catch(e){if(E(e,"ENOENT"))return!0;throw e}},T=class ArchiveRefusal extends Error{},b=e=>e.length>0&&!e.startsWith("/")&&!e.includes("\\")&&!/^[A-Za-z]:/.test(e)&&!/[\x00-\x1f\x7f]/.test(e)&&!e.split("/").includes("..");export const extractSourceArchive=async e=>{let o,a,{archivePath:n,targetDir:l}=e,h=(await c(n)).size;if(h>0xc800000)throw Error(`The source archive is ${h} bytes, over the 209715200 byte limit. Remove large files from the project and deploy again.`);if(!await j(l))throw Error(`The folder ${l} is not empty, and extracted sources must not mix with existing files. Extract into a new or empty folder.`);let m=g(),v=new AbortController,x=w(r(n),u(),(a=0,new d({transform(e,r,t){(a+=e.length)>0x40000000?t(new T("The source archive extracts to more than 1073741824 bytes. Remove large files from the project and deploy again.")):t(null,e)}})),m).catch(e=>{o??=e,v.abort()}),$=[],z=0,R=0;try{for await(let e of m){let{type:r}=e.header,o=e.header.name.replace(/^(\.\/)+/,""),a=JSON.stringify(o);if("directory"===r){e.resume();continue}if((R+=1)>1e5)throw new T("The source archive has more than 100000 files. Remove generated or unused files from the project and deploy again.");if(!b(o))throw new T(`The source archive contains ${a}, which is not a plain relative path inside the project. Pack the project with phoenix deploy.`);if("file"!==r)throw new T(`The source archive contains ${a}, which is a ${r??"special file"}. Builds accept only regular files; replace it with a regular file and deploy again.`);if(!y(o)){$.push(o),e.resume();continue}let n=f(l,...o.split("/"));try{await i(p(n),{recursive:!0}),await w(e,t(n,{flags:"wx"}),{signal:v.signal})}catch(e){if(E(e,"EEXIST","ENOTDIR","EISDIR"))throw new T(`The source archive contains ${a}, which repeats or collides with an earlier entry, so its content is ambiguous. Pack the project with phoenix deploy.`);throw e}z+=1}if(await x,void 0!==o)throw o}catch(t){let e=t instanceof T?t:o??t;if(m.destroy(),await x,await s(l,{recursive:!0,force:!0}),e instanceof T)throw e;let r=e instanceof Error?e.message:String(e);throw Error(`The source archive could not be read: ${r}. It is truncated or not a gzip tarball; pack the project with phoenix deploy.`)}return{fileCount:z,skipped:$}};
1
+ import{execFile as e}from"node:child_process";import{createReadStream as r,createWriteStream as t}from"node:fs";import{lstat as o,mkdir as i,mkdtemp as a,readdir as n,rm as s,stat as c,writeFile as l}from"node:fs/promises";import{tmpdir as h}from"node:os";import{dirname as p,join as f}from"node:path";import{Transform as d}from"node:stream";import{pipeline as w}from"node:stream/promises";import{promisify as m}from"node:util";import{createGunzip as u}from"node:zlib";import{extract as g}from"tar-stream";import{isProjectFile as y,listProjectEntries as v}from"../application-spec/project-files.js";let x=m(e);export const createSourceArchive=async e=>{let r=(await n(e)).includes("conversation.log"),t=[...await v(e),...r?["conversation.log"]:[]],i=await Promise.all(t.map(async r=>({name:r,entry:await o(f(e,r))})));if(i.some(({name:e,entry:r})=>"conversation.log"===e&&r.isDirectory()))throw Error("conversation.log is a directory. Replace it with a regular transcript file and deploy again.");let p=i.filter(({entry:e})=>!e.isDirectory()&&(!e.isFile()||e.nlink>1)),d=i.filter(({entry:e})=>e.isFile()).map(({name:e})=>e);if(p.length>0)throw Error(`These project files are links or special files, which builds do not accept: ${p.map(({name:e})=>e).join(", ")}. Replace them with regular files and deploy again.`);if(0===d.length)throw Error(`No project files were found in ${e}, so there is nothing to deploy. Run phoenix deploy in the folder of an application-spec project.`);let w=await a(f(h(),"phoenix-deploy-")),m="sources.tgz",u=f(w,m),g=f(w,"files");try{await l(g,d.join("\0")),await x("tar",["-czf",m,"-C",e,"--null","-T",g],{cwd:w,env:{...process.env,COPYFILE_DISABLE:"1"}})}catch(r){await s(w,{recursive:!0,force:!0});let e=r instanceof Error?r.message:String(r);throw Error(`Packing the project with tar failed: ${e}. Check that tar is installed and on the PATH.`)}return{path:u,fileCount:d.length,size:(await c(u)).size,hasConversationLog:r,cleanup:()=>s(w,{recursive:!0,force:!0})}};let E=(e,...r)=>e instanceof Error&&"code"in e&&"string"==typeof e.code&&r.includes(e.code),j=async e=>{try{return 0===(await n(e)).length}catch(e){if(E(e,"ENOENT"))return!0;throw e}},T=class ArchiveRefusal extends Error{},b=e=>e.length>0&&!e.startsWith("/")&&!e.includes("\\")&&!/^[A-Za-z]:/.test(e)&&!/[\x00-\x1f\x7f]/.test(e)&&!e.split("/").includes("..");export const extractSourceArchive=async e=>{let o,a,{archivePath:n,targetDir:l}=e,h=(await c(n)).size;if(h>0xc800000)throw Error(`The source archive is ${h} bytes, over the 209715200 byte limit. Remove large files from the project and deploy again.`);if(!await j(l))throw Error(`The folder ${l} is not empty, and extracted sources must not mix with existing files. Extract into a new or empty folder.`);let m=g(),v=new AbortController,x=w(r(n),u(),(a=0,new d({transform(e,r,t){(a+=e.length)>0x40000000?t(new T("The source archive extracts to more than 1073741824 bytes. Remove large files from the project and deploy again.")):t(null,e)}})),m).catch(e=>{o??=e,v.abort()}),$=[],R=0,z=0;try{for await(let e of m){let{type:r}=e.header,o=e.header.name.replace(/^(\.\/)+/,""),a=JSON.stringify(o);if("directory"===r){e.resume();continue}if((z+=1)>1e5)throw new T("The source archive has more than 100000 files. Remove generated or unused files from the project and deploy again.");if(!b(o))throw new T(`The source archive contains ${a}, which is not a plain relative path inside the project. Pack the project with phoenix deploy.`);if("file"!==r)throw new T(`The source archive contains ${a}, which is a ${r??"special file"}. Builds accept only regular files; replace it with a regular file and deploy again.`);if(!y(o)){$.push(o),e.resume();continue}let n=f(l,...o.split("/"));try{await i(p(n),{recursive:!0}),await w(e,t(n,{flags:"wx"}),{signal:v.signal})}catch(e){if(E(e,"EEXIST","ENOTDIR","EISDIR"))throw new T(`The source archive contains ${a}, which repeats or collides with an earlier entry, so its content is ambiguous. Pack the project with phoenix deploy.`);throw e}R+=1}if(await x,void 0!==o)throw o}catch(t){let e=t instanceof T?t:o??t;if(m.destroy(),await x,await s(l,{recursive:!0,force:!0}),e instanceof T)throw e;let r=e instanceof Error?e.message:String(e);throw Error(`The source archive could not be read: ${r}. It is truncated or not a gzip tarball; pack the project with phoenix deploy.`)}return{fileCount:R,skipped:$}};
@@ -1,3 +1,3 @@
1
- import{transform as e}from"@swc/core";import{remove as t}from"fs-extra";import{copyFile as s,mkdir as o,readFile as a,writeFile as i}from"fs/promises";import{globby as r}from"globby";import{dirname as c,relative as l,resolve as n}from"path";import{Subject as p}from"rxjs";import{watch as m}from"#package/watch";import{createLogger as w}from"../utils/index.js";let u=()=>({sourceMaps:!0,module:{type:"es6"},jsc:{target:"es2022",parser:{syntax:"typescript",tsx:!0},transform:{react:{runtime:"automatic"}},keepClassNames:!0,experimental:{plugins:[["@lingui/swc-plugin",{}]]}}}),d=async(e,t,a)=>{let i=process.cwd(),p=n(i,e),m=n(i,t),w=await r(["**/*.{html,css,json,txt,md}","**/.env*"],{cwd:p,ignore:["**/*.{spec,test}.{html,css,json,txt,md}","**/__tests__/**","**/__mocks__/**","**/tsconfig.json"],absolute:!1}),u=0,d=0;for(let e of w)try{let t=n(p,e),a=n(m,e);await o(c(a),{recursive:!0}),await s(t,a),u++}catch(t){d++,console.error(`Failed to copy ${l(i,n(p,e))}:`,t)}if(d>0)throw Error(`Failed to copy ${d} file(s)`);u>0&&a.debug(`Copied ${u} non-compilable file(s)`)};export const compileWithSwc=async(s,p)=>{let{sourceDir:m="src",outDir:f="./node_modules/.phoenix"}=s??{},g=p?.logger??w(),h=process.cwd(),x=n(h,m),_=n(h,f);await t(_);let y=await r(["**/*.{ts,tsx}"],{cwd:x,ignore:["**/*.{spec,test}.{ts,tsx}","**/__tests__/**","**/__mocks__/**"],absolute:!1}),b=u(),$=0,j=0;for(let t of y)try{let s=n(x,t),r=n(_,t.replace(/\.tsx?$/,".js")),l=await a(s,"utf-8"),p=await e(l,{...b,filename:s,sourceMaps:!0,outputPath:r});await o(c(r),{recursive:!0}),await i(r,p.code,"utf-8"),p.map&&await i(`${r}.map`,p.map,"utf-8"),$++}catch(e){j++,console.error(`Failed to compile ${l(h,n(x,t))}:`,e)}if(j>0)throw Error(`Failed to compile ${j} file(s)`);g.isDebug&&g.debug(`Compiled ${$} file(s) with swc`),await d(m,f,g)};let f=async(t,s,r)=>{let l=process.cwd(),p=n(l,s),m=n(l,r),w=u(),d=n(p,t),f=n(m,t.replace(/\.tsx?$/,".js")),g=await a(d,"utf-8"),h=await e(g,{...w,filename:d,sourceMaps:!0,outputPath:f});await o(c(f),{recursive:!0}),await i(f,h.code,"utf-8"),h.map&&await i(`${f}.map`,h.map,"utf-8")},g=async(e,t,a)=>{let i=process.cwd(),r=n(i,t),l=n(i,a),p=n(r,e),m=n(l,e);await o(c(m),{recursive:!0}),await s(p,m)};export const watchWithSwc=async(e,t)=>{let{sourceDir:s="src",outDir:o="./node_modules/.phoenix"}=e??{},a=t?.logger??w(),i=n(process.cwd(),s);a.isDebug&&a.step("Running initial SWC compilation"),await compileWithSwc({sourceDir:s,outDir:o},t),a.isDebug&&a.success("Initial compilation complete");let r=new p,c=m(["**/*.{ts,tsx,html,css,json,txt,md}","../.env*"],{cwd:i,ignored:["**/*.{spec,test}.{ts,tsx}","**/__tests__/**","**/cache.json"],persistent:!0,ignoreInitial:!0});return c.on("all",(e,t)=>{("change"===e||"add"===e)&&r.next({file:t,type:e})}),r.subscribe(async({file:e})=>{let t=l(i,n(i,e));try{e.match(/\.tsx?$/)?(await f(t,s,o),a.fileChanged(t)):(e.match(/\.(html|css|json|txt|md)$/)||e.match(/\.env/))&&(await g(t,s,o),a.fileChanged(t))}catch(e){a.error(`Failed to process ${t}`),a.isDebug&&console.error(e)}}),a.isDebug&&console.log(`
1
+ import{transform as e}from"@swc/core";import{remove as t}from"fs-extra";import{copyFile as s,mkdir as o,readFile as a,writeFile as r}from"fs/promises";import{globby as i}from"globby";import{createRequire as c}from"node:module";import{dirname as l,relative as n,resolve as p}from"path";import{Subject as m}from"rxjs";import{watch as w}from"#package/watch";import{createLogger as d}from"../utils/index.js";let u=()=>({sourceMaps:!0,module:{type:"es6"},jsc:{target:"es2022",parser:{syntax:"typescript",tsx:!0},transform:{react:{runtime:"automatic"}},keepClassNames:!0,experimental:{plugins:[[c(import.meta.url).resolve("@lingui/swc-plugin"),{}]]}}}),f=async(e,t,a)=>{let r=process.cwd(),c=p(r,e),m=p(r,t),w=await i(["**/*.{html,css,json,txt,md}","**/.env*"],{cwd:c,ignore:["**/*.{spec,test}.{html,css,json,txt,md}","**/__tests__/**","**/__mocks__/**","**/tsconfig.json",".env.generated"],absolute:!1}),d=0,u=0;for(let e of w)try{let t=p(c,e),a=p(m,e);await o(l(a),{recursive:!0}),await s(t,a),d++}catch(t){u++,console.error(`Failed to copy ${n(r,p(c,e))}:`,t)}if(u>0)throw Error(`Failed to copy ${u} file(s)`);d>0&&a.debug(`Copied ${d} non-compilable file(s)`)};export const compileWithSwc=async(s,c)=>{let{sourceDir:m="src",outDir:w="./node_modules/.phoenix"}=s??{},g=c?.logger??d(),h=process.cwd(),x=p(h,m),_=p(h,w);await t(_);let y=await i(["**/*.{ts,tsx}"],{cwd:x,ignore:["**/*.{spec,test}.{ts,tsx}","**/__tests__/**","**/__mocks__/**"],absolute:!1}),b=u(),$=0,j=0;for(let t of y)try{let s=p(x,t),i=p(_,t.replace(/\.tsx?$/,".js")),c=await a(s,"utf-8"),n=await e(c,{...b,filename:s,sourceMaps:!0,outputPath:i});await o(l(i),{recursive:!0}),await r(i,n.code,"utf-8"),n.map&&await r(`${i}.map`,n.map,"utf-8"),$++}catch(e){j++,console.error(`Failed to compile ${n(h,p(x,t))}:`,e)}if(j>0)throw Error(`Failed to compile ${j} file(s)`);g.isDebug&&g.debug(`Compiled ${$} file(s) with swc`),await f(m,w,g)};let g=async(t,s,i)=>{let c=process.cwd(),n=p(c,s),m=p(c,i),w=u(),d=p(n,t),f=p(m,t.replace(/\.tsx?$/,".js")),g=await a(d,"utf-8"),h=await e(g,{...w,filename:d,sourceMaps:!0,outputPath:f});await o(l(f),{recursive:!0}),await r(f,h.code,"utf-8"),h.map&&await r(`${f}.map`,h.map,"utf-8")},h=async(e,t,a)=>{let r=process.cwd(),i=p(r,t),c=p(r,a),n=p(i,e),m=p(c,e);await o(l(m),{recursive:!0}),await s(n,m)};export const watchWithSwc=async(e,t)=>{let{sourceDir:s="src",outDir:o="./node_modules/.phoenix"}=e??{},a=t?.logger??d(),r=p(process.cwd(),s);a.isDebug&&a.step("Running initial SWC compilation"),await compileWithSwc({sourceDir:s,outDir:o},t),a.isDebug&&a.success("Initial compilation complete");let i=new m,c=w(["**/*.{ts,tsx,html,css,json,txt,md}","../.env*"],{cwd:r,ignored:["**/*.{spec,test}.{ts,tsx}","**/__tests__/**","**/cache.json"],persistent:!0,ignoreInitial:!0});return c.on("all",(e,t)=>{("change"===e||"add"===e)&&i.next({file:t,type:e})}),i.subscribe(async({file:e})=>{let t=n(r,p(r,e));try{e.match(/\.tsx?$/)?(await g(t,s,o),a.fileChanged(t)):(e.match(/\.(html|css|json|txt|md)$/)||e.match(/\.env/))&&(await h(t,s,o),a.fileChanged(t))}catch(e){a.error(`Failed to process ${t}`),a.isDebug&&console.error(e)}}),a.isDebug&&console.log(`
2
2
  👀 Watching ${s} for changes...
3
3
  `),{stop:async()=>{await c.close(),a.isDebug&&a.info("SWC watcher stopped")}}};
@@ -1 +1 @@
1
- import{lingui as e}from"@lingui/vite-plugin";import i from"@vitejs/plugin-react";import{mkdir as t,readFile as n,writeFile as r}from"fs/promises";import o from"lodash-es/camelCase.js";import{createRequire as a}from"node:module";import{dirname as s,resolve as m}from"path";import{createLogger as l}from"vite";import p from"vite-plugin-css-injected-by-js";import{isUsingLocalSdk as d}from"../utils/package-info.js";import{loadFrontendConfigModule as f}from"./frontend-config.js";import{phxBannerPlugin as c}from"./phx-banner-plugin.js";import{phxCspNoncePlugin as g}from"./phx-csp-nonce-plugin.js";import{phxGlobalIsolationPlugin as u}from"./phx-global-isolation-plugin.js";import{phxLicensesPlugin as h}from"./phx-licenses-plugin.js";import{phxVariantPreviewsPlugin as S}from"./phx-variant-previews-plugin.js";let b=null;export const setViteLogSink=(e,i={})=>{b={sink:e,echo:i.echo??!1}};let y=["react","react-dom","three","@react-three/fiber","@react-three/drei","@react-three/postprocessing","its-fine","@emotion/react","@emotion/styled","@mui/material","@mui/system","@tanstack/react-query","rxjs"],O=e=>{let i=e.DEPLOYMENT_ID;if("string"!=typeof i)throw Error("DEPLOYMENT_ID is required in runtime config");return i};export const getViteDevConfig=async t=>{var n,r;let o,p,c=d(),g=f(),h=g.readRuntimeConfig(),x=g.frontendBuildConfig,D=Object.fromEntries((t?.templateFiles??[]).map(e=>[e,`.phoenix/${e}`]));return{...b&&{customLogger:(n=b.sink,r=b.echo,o=l(),{get hasWarned(){return o.hasWarned},info:(e,i)=>{n("info",e),r&&o.info(e,i)},warn:(e,i)=>{n("warn",e),r&&o.warn(e,i)},warnOnce:(e,i)=>{n("warn",e),r&&o.warnOnce(e,i)},error:(e,i)=>{n("error",e),r&&o.error(e,i)},clearScreen:e=>{r&&o.clearScreen(e)},hasErrorLogged:e=>o.hasErrorLogged(e)}),...b.echo?{}:{clearScreen:!1}},mode:"development",optimizeDeps:{exclude:["@swc/wasm-web"],...c&&{entries:["index.html","admin.html",...t?.templateFiles??[]],force:!0}},...c&&{resolve:{alias:(p=a(m(process.cwd(),"package.json")),y.flatMap(e=>{try{let i=s(p.resolve(`${e}/package.json`));return[{find:RegExp(`^${e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(/|$)`),replacement:`${i}$1`}]}catch{return[]}}))}},plugins:[i({babel:{plugins:["macros"]}}),e(),{name:"vite:runtime-config",apply:(e,i)=>"build"===i.command||"development"===i.mode,config:e=>{let i=g.readRuntimeConfig(),t=g.frontendBuildConfig;return{...e,define:{...e.define,"phx.frontendEnv":JSON.stringify(i),"globalThis.PHX_SCHEMA_VALIDATOR":JSON.stringify(t.jsonSchemaValidator),"globalThis.PHX_GLTF_DECODER":JSON.stringify(t.gltfDecoder)}}}},u({getDeploymentId:()=>O(g.readRuntimeConfig())}),S()],define:{"process.env":{},"import.meta.env.DEV":!0,"import.meta.env.PROD":!1,"phx.frontendEnv":JSON.stringify(h),"globalThis.PHX_SCHEMA_VALIDATOR":JSON.stringify(x.jsonSchemaValidator),"globalThis.PHX_GLTF_DECODER":JSON.stringify(x.gltfDecoder)},build:{rollupOptions:{input:{index:".phoenix/index.html",admin:".phoenix/admin.html",...D}}},root:m(process.cwd(),"./.phoenix"),server:{watch:{ignored:["./**/*.{ts,tsx}","./.swc/**","../spec/**","../src/**"]}}}};export const getViteBuildConfigs=async a=>{let l=f(),d=l.readRuntimeConfig(),S=l.frontendBuildConfig,b=h(),y=c({sdkVersion:a.sdkVersion,banner:a.banner}),x=[{name:"salsita-configurator",entryFile:"./configurator.ts",mainScriptPath:"./configurator.ts",htmlFiles:["./index.html",...{templateFiles:a.templateFiles}.templateFiles],main:!0,format:"iife"},{name:"salsita-admin",entryFile:"./admin.ts",mainScriptPath:"./admin.ts",htmlFiles:["./admin.html"],main:!1,format:"iife"},{name:"salsita-embedded-admin",entryFile:"./embedded-admin.ts",mainScriptPath:"./embedded-admin.ts",htmlFiles:[],main:!1,format:"es"},{name:"salsita-embedded-configurator",entryFile:"./embedded-configurator.ts",mainScriptPath:"./embedded-configurator.ts",htmlFiles:[],main:!1,format:"es"}].map(f=>({plugins:[i({babel:{plugins:["macros"]}}),e(),p({useStrictCSP:!0}),g(),u({getDeploymentId:()=>O(l.readRuntimeConfig())}),{name:"vite:lib-index",writeBundle:async()=>{if(!f.htmlFiles.length)return;let e="iife"===f.format?`${f.name}.iife.js`:`${f.name}.js`;for(let i of f.htmlFiles){if(f.main&&a.enableEditor&&"./index.html"===i)continue;let o=m("./.phoenix",i),l=m("./.phoenix/dist/frontend",i);await t(s(l),{recursive:!0});let p=(await n(o,"utf-8")).replace(f.mainScriptPath,e);await r(l,p,"utf-8")}}},b,y],build:{outDir:"./dist/frontend",chunkSizeWarningLimit:4e3,lib:{entry:f.entryFile,name:o(f.name),formats:[f.format],fileName:()=>"iife"===f.format?`${f.name}.iife.js`:`${f.name}.js`},rollupOptions:{external:[],output:{assetFileNames:`${f.name}.[ext]`}},minify:!0,emptyOutDir:!1},root:m(process.cwd(),"./.phoenix"),define:{"process.env":{},"process.env.NODE_ENV":JSON.stringify("production"),"phx.frontendEnv":JSON.stringify(d),"globalThis.PHX_SCHEMA_VALIDATOR":JSON.stringify(S.jsonSchemaValidator),"globalThis.PHX_GLTF_DECODER":JSON.stringify(S.gltfDecoder)}}));return a.enableEditor?[...x,{plugins:[i({babel:{plugins:["macros"]}}),e(),p({useStrictCSP:!0}),g(),b,y],build:{outDir:"./dist/frontend",chunkSizeWarningLimit:4e3,rollupOptions:{external:[]},minify:!0,emptyOutDir:!1},root:m(process.cwd(),"./.phoenix"),define:{"process.env":{},"process.env.NODE_ENV":JSON.stringify("production"),"phx.frontendEnv":JSON.stringify(d),"globalThis.PHX_SCHEMA_VALIDATOR":JSON.stringify(S.jsonSchemaValidator),"globalThis.PHX_GLTF_DECODER":JSON.stringify(S.gltfDecoder)}}]:x};
1
+ import{getConfig as e}from"@lingui/conf";import{lingui as i}from"@lingui/vite-plugin";import t from"@vitejs/plugin-react";import{mkdir as n,readFile as r,writeFile as o}from"fs/promises";import a from"lodash-es/camelCase.js";import{createRequire as s}from"node:module";import{dirname as l,resolve as m}from"path";import{createLogger as f}from"vite";import p from"vite-plugin-css-injected-by-js";import{isUsingLocalSdk as d}from"../utils/package-info.js";import{loadFrontendConfigModule as c}from"./frontend-config.js";import{LINGUI_CONFIG_PATH as g}from"./lingui.js";import{phxBannerPlugin as u}from"./phx-banner-plugin.js";import{phxCspNoncePlugin as h}from"./phx-csp-nonce-plugin.js";import{phxGlobalIsolationPlugin as b}from"./phx-global-isolation-plugin.js";import{phxLicensesPlugin as S}from"./phx-licenses-plugin.js";import{phxVariantPreviewsPlugin as y}from"./phx-variant-previews-plugin.js";let O=null;export const setViteLogSink=(e,i={})=>{O={sink:e,echo:i.echo??!1}};let x=["react","react-dom","three","@react-three/fiber","@react-three/drei","@react-three/postprocessing","its-fine","@emotion/react","@emotion/styled","@mui/material","@mui/system","@tanstack/react-query","rxjs"],D=()=>[s(import.meta.url).resolve("@lingui/babel-plugin-lingui-macro"),{linguiConfig:e({configPath:g})}],E=e=>{let i=e.DEPLOYMENT_ID;if("string"!=typeof i)throw Error("DEPLOYMENT_ID is required in runtime config");return i};export const getViteDevConfig=async e=>{var n,r;let o,a,p=d(),u=c(),h=u.readRuntimeConfig(),S=u.frontendBuildConfig,v=D(),j=Object.fromEntries((e?.templateFiles??[]).map(e=>[e,`.phoenix/${e}`]));return{...O&&{customLogger:(n=O.sink,r=O.echo,o=f(),{get hasWarned(){return o.hasWarned},info:(e,i)=>{n("info",e),r&&o.info(e,i)},warn:(e,i)=>{n("warn",e),r&&o.warn(e,i)},warnOnce:(e,i)=>{n("warn",e),r&&o.warnOnce(e,i)},error:(e,i)=>{n("error",e),r&&o.error(e,i)},clearScreen:e=>{r&&o.clearScreen(e)},hasErrorLogged:e=>o.hasErrorLogged(e)}),...O.echo?{}:{clearScreen:!1}},mode:"development",optimizeDeps:{exclude:["@swc/wasm-web"],...p&&{entries:["index.html","admin.html",...e?.templateFiles??[]],force:!0}},...p&&{resolve:{alias:(a=s(m(process.cwd(),"package.json")),x.flatMap(e=>{try{let i=l(a.resolve(`${e}/package.json`));return[{find:RegExp(`^${e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(/|$)`),replacement:`${i}$1`}]}catch{return[]}}))}},plugins:[t({babel:{plugins:[v]}}),i({configPath:g}),{name:"vite:runtime-config",apply:(e,i)=>"build"===i.command||"development"===i.mode,config:e=>{let i=u.readRuntimeConfig(),t=u.frontendBuildConfig;return{...e,define:{...e.define,"phx.frontendEnv":JSON.stringify(i),"globalThis.PHX_SCHEMA_VALIDATOR":JSON.stringify(t.jsonSchemaValidator),"globalThis.PHX_GLTF_DECODER":JSON.stringify(t.gltfDecoder)}}}},b({getDeploymentId:()=>E(u.readRuntimeConfig())}),y()],define:{"process.env":{},"import.meta.env.DEV":!0,"import.meta.env.PROD":!1,"phx.frontendEnv":JSON.stringify(h),"globalThis.PHX_SCHEMA_VALIDATOR":JSON.stringify(S.jsonSchemaValidator),"globalThis.PHX_GLTF_DECODER":JSON.stringify(S.gltfDecoder)},build:{rollupOptions:{input:{index:".phoenix/index.html",admin:".phoenix/admin.html",...j}}},root:m(process.cwd(),"./.phoenix"),server:{watch:{ignored:["./**/*.{ts,tsx}","./.swc/**","../spec/**","../src/**"]}}}};export const getViteBuildConfigs=async e=>{let s=c(),f=s.readRuntimeConfig(),d=s.frontendBuildConfig,y=D(),O=S(),x=u({sdkVersion:e.sdkVersion,banner:e.banner}),v=[{name:"salsita-configurator",entryFile:"./configurator.ts",mainScriptPath:"./configurator.ts",htmlFiles:["./index.html",...{templateFiles:e.templateFiles}.templateFiles],main:!0,format:"iife"},{name:"salsita-admin",entryFile:"./admin.ts",mainScriptPath:"./admin.ts",htmlFiles:["./admin.html"],main:!1,format:"iife"},{name:"salsita-embedded-admin",entryFile:"./embedded-admin.ts",mainScriptPath:"./embedded-admin.ts",htmlFiles:[],main:!1,format:"es"},{name:"salsita-embedded-configurator",entryFile:"./embedded-configurator.ts",mainScriptPath:"./embedded-configurator.ts",htmlFiles:[],main:!1,format:"es"}].map(c=>({plugins:[t({babel:{plugins:[y]}}),i({configPath:g}),p({useStrictCSP:!0}),h(),b({getDeploymentId:()=>E(s.readRuntimeConfig())}),{name:"vite:lib-index",writeBundle:async()=>{if(!c.htmlFiles.length)return;let i="iife"===c.format?`${c.name}.iife.js`:`${c.name}.js`;for(let t of c.htmlFiles){if(c.main&&e.enableEditor&&"./index.html"===t)continue;let a=m("./.phoenix",t),s=m("./.phoenix/dist/frontend",t);await n(l(s),{recursive:!0});let f=(await r(a,"utf-8")).replace(c.mainScriptPath,i);await o(s,f,"utf-8")}}},O,x],build:{outDir:"./dist/frontend",chunkSizeWarningLimit:4e3,lib:{entry:c.entryFile,name:a(c.name),formats:[c.format],fileName:()=>"iife"===c.format?`${c.name}.iife.js`:`${c.name}.js`},rollupOptions:{external:[],output:{assetFileNames:`${c.name}.[ext]`}},minify:!0,emptyOutDir:!1},root:m(process.cwd(),"./.phoenix"),define:{"process.env":{},"process.env.NODE_ENV":JSON.stringify("production"),"phx.frontendEnv":JSON.stringify(f),"globalThis.PHX_SCHEMA_VALIDATOR":JSON.stringify(d.jsonSchemaValidator),"globalThis.PHX_GLTF_DECODER":JSON.stringify(d.gltfDecoder)}}));return e.enableEditor?[...v,{plugins:[t({babel:{plugins:[y]}}),i({configPath:g}),p({useStrictCSP:!0}),h(),O,x],build:{outDir:"./dist/frontend",chunkSizeWarningLimit:4e3,rollupOptions:{external:[]},minify:!0,emptyOutDir:!1},root:m(process.cwd(),"./.phoenix"),define:{"process.env":{},"process.env.NODE_ENV":JSON.stringify("production"),"phx.frontendEnv":JSON.stringify(f),"globalThis.PHX_SCHEMA_VALIDATOR":JSON.stringify(d.jsonSchemaValidator),"globalThis.PHX_GLTF_DECODER":JSON.stringify(d.gltfDecoder)}}]:v};
@@ -0,0 +1 @@
1
+ export { isInsideGitRepository } from './is-inside-git-repository.js';
@@ -0,0 +1 @@
1
+ export{isInsideGitRepository}from"./is-inside-git-repository.js";
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Whether a folder is inside a git work tree: the folder or one of its parents, up to the file-system root, holds a
3
+ * `.git` entry. The entry is a directory in a plain checkout and a file in a linked worktree or a submodule; both
4
+ * count. Only the file system is read, so the answer does not depend on git being installed.
5
+ */
6
+ export declare const isInsideGitRepository: (folder: string) => boolean;
@@ -0,0 +1 @@
1
+ import{existsSync as t,realpathSync as r}from"fs";import{dirname as e,join as i,resolve as o}from"path";export const isInsideGitRepository=f=>{let n=(t=>{let e=o(t);try{return r(e)}catch{return e}})(f);for(;;){if(t(i(n,".git")))return!0;let r=e(n);if(r===n)return!1;n=r}};
@@ -4,9 +4,11 @@ export { formatEnvContent, formatEnvLine } from './env-file.js';
4
4
  export { parseChangelog, getLatestVersion, getVersion, paginateVersions, getVersionNumbers, type ChangelogVersion, type PaginatedVersions, } from './changelog-parser.js';
5
5
  export { createDirectoryFromYaml, exists, scanFolderForFiles, syncChangedFiles, syncExistingFolders, validateFolders, writeFileIfNotExists, writeFilesIfNotExists, writeRawFiles, } from './file-system.js';
6
6
  export { FileLogger } from './file-logger.js';
7
+ export { isInsideGitRepository } from './git/index.js';
7
8
  export { type Logger, type CreateLoggerOptions, createLogger } from './logger.js';
8
9
  export { addWorkspaceOverrides, ensureWorkspaceInstallSettings, getLocalOverrides, getSdkPackages, getWorkspaceDir, hasLocalOverrides, readPackageJson, removeWorkspaceOverrides, } from './package-info.js';
10
+ export { naturalCompare } from './natural-compare.js';
9
11
  export { toPascalCase } from './pascal-case.js';
10
12
  export { readGitCommit } from './read-git-commit.js';
11
- export { type RunCommandProps, runCommand } from './run-command.js';
13
+ export { type RunCommandProps, type RunSdkToolProps, runCommand, runSdkTool } from './run-command.js';
12
14
  export { type FileUploadInfo, type UploadLinksData, uploadFilesWithPresignedUrls, readUploadLinks, } from './upload-utils.js';
@@ -1 +1 @@
1
- export{askQuestion}from"./ask-question.js";export{checkBundleSizeBudgets}from"./check-bundle-size-budgets.js";export{formatEnvContent,formatEnvLine}from"./env-file.js";export{parseChangelog,getLatestVersion,getVersion,paginateVersions,getVersionNumbers}from"./changelog-parser.js";export{createDirectoryFromYaml,exists,scanFolderForFiles,syncChangedFiles,syncExistingFolders,validateFolders,writeFileIfNotExists,writeFilesIfNotExists,writeRawFiles}from"./file-system.js";export{FileLogger}from"./file-logger.js";export{createLogger}from"./logger.js";export{addWorkspaceOverrides,ensureWorkspaceInstallSettings,getLocalOverrides,getSdkPackages,getWorkspaceDir,hasLocalOverrides,readPackageJson,removeWorkspaceOverrides}from"./package-info.js";export{toPascalCase}from"./pascal-case.js";export{readGitCommit}from"./read-git-commit.js";export{runCommand}from"./run-command.js";export{uploadFilesWithPresignedUrls,readUploadLinks}from"./upload-utils.js";
1
+ export{askQuestion}from"./ask-question.js";export{checkBundleSizeBudgets}from"./check-bundle-size-budgets.js";export{formatEnvContent,formatEnvLine}from"./env-file.js";export{parseChangelog,getLatestVersion,getVersion,paginateVersions,getVersionNumbers}from"./changelog-parser.js";export{createDirectoryFromYaml,exists,scanFolderForFiles,syncChangedFiles,syncExistingFolders,validateFolders,writeFileIfNotExists,writeFilesIfNotExists,writeRawFiles}from"./file-system.js";export{FileLogger}from"./file-logger.js";export{isInsideGitRepository}from"./git/index.js";export{createLogger}from"./logger.js";export{addWorkspaceOverrides,ensureWorkspaceInstallSettings,getLocalOverrides,getSdkPackages,getWorkspaceDir,hasLocalOverrides,readPackageJson,removeWorkspaceOverrides}from"./package-info.js";export{naturalCompare}from"./natural-compare.js";export{toPascalCase}from"./pascal-case.js";export{readGitCommit}from"./read-git-commit.js";export{runCommand,runSdkTool}from"./run-command.js";export{uploadFilesWithPresignedUrls,readUploadLinks}from"./upload-utils.js";
@@ -0,0 +1 @@
1
+ export { assertSupportedNodeVersion, findUnsupportedNodeVersionMessage } from './supported-node-version.js';
@@ -0,0 +1 @@
1
+ export{assertSupportedNodeVersion,findUnsupportedNodeVersionMessage}from"./supported-node-version.js";
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Explains why the SDK cannot run on the given Node.js version, or returns `undefined` when the version satisfies the
3
+ * SDK's `engines.node` range.
4
+ */
5
+ export declare const findUnsupportedNodeVersionMessage: (version: string) => string | undefined;
6
+ /**
7
+ * Stops the process with a non-zero exit code when the running Node.js does not satisfy the SDK's `engines.node`
8
+ * range. The `phoenix` binary's entry module (`bin.ts`) calls it and only then loads `cli.ts` with a dynamic import:
9
+ * static imports are evaluated before the importing module's body, so on an older Node.js the CLI's own imports could
10
+ * fail with an unrelated error before a check in its body ran.
11
+ */
12
+ export declare const assertSupportedNodeVersion: () => void;
@@ -0,0 +1,4 @@
1
+ import{readFileSync as e}from"node:fs";import{satisfies as o}from"semver";import{z as s}from"zod";let r=s.object({name:s.string(),engines:s.object({node:s.string()})});export const findUnsupportedNodeVersionMessage=s=>{let{name:t,engines:n}=r.parse(JSON.parse(e(new URL("../../../../package.json",import.meta.url),"utf-8")));if(!o(s,n.node,{includePrerelease:!0}))return`${t} requires Node.js ${n.node}, but this is Node.js ${s}.
2
+ The SDK and the tools it runs use Node.js features that older versions do not have, so a command would fail part way through.
3
+ Switch to a Node.js version that satisfies ${n.node} and run the command again.`};export const assertSupportedNodeVersion=()=>{let e=findUnsupportedNodeVersionMessage(process.version);void 0!==e&&(process.stderr.write(`${e}
4
+ `),process.exit(1))};
@@ -1,4 +1,5 @@
1
1
  import type { Logger } from './logger.js';
2
+ import { type SdkTool } from './sdk-tool/index.js';
2
3
  export interface RunCommandProps {
3
4
  readonly command: string;
4
5
  readonly args: readonly string[];
@@ -7,6 +8,16 @@ export interface RunCommandProps {
7
8
  readonly cwd?: string;
8
9
  readonly extraEnv?: Record<string, string>;
9
10
  }
11
+ export interface RunSdkToolProps extends Omit<RunCommandProps, 'command'> {
12
+ readonly tool: SdkTool;
13
+ }
10
14
  export declare const runCommand: (props: RunCommandProps, context?: {
11
15
  readonly logger: Logger;
12
16
  }) => Promise<void>;
17
+ /**
18
+ * Runs a tool from the SDK's own installation with the Node.js that runs the CLI. It starts no shell, so paths
19
+ * with spaces reach the tool unchanged.
20
+ */
21
+ export declare const runSdkTool: (props: RunSdkToolProps, context?: {
22
+ readonly logger: Logger;
23
+ }) => Promise<void>;
@@ -1 +1 @@
1
- import{spawn as e}from"node:child_process";import{createLogger as r}from"./logger.js";export const runCommand=async(o,t)=>{let n=t?.logger??r(),{command:s,args:i,description:a,quiet:l=!1,cwd:c,extraEnv:d}=o;l?n.isDebug&&n.debug(`Running: ${s} ${i.join(" ")}`):n.step(a);let u=n.isDebug?"inherit":l?"pipe":"inherit";await new Promise((r,o)=>{let t=e(s,i,{stdio:u,shell:!0,cwd:c,env:d?{...process.env,...d}:void 0}),l=[],f=[],m=!1;t.stdout?.on("data",e=>l.push(Buffer.from(e))),t.stderr?.on("data",e=>f.push(Buffer.from(e))),t.once("error",e=>{m=!0,n.error(`${a} failed to execute`),n.error(`Error: ${e.message}`),o(Error(`Failed to execute command '${s}': ${e.message}. Ensure the command is installed and available in PATH.`))}),t.once("close",(e,t)=>{if(!m){if(0!==e){let r=null!==e?`exit code ${e}`:"unknown error (process was terminated or failed to start)";n.error(`${a} failed with ${r}`),t&&n.error(`Process was killed with signal: ${t}`),l.length>0&&console.error(Buffer.concat(l).toString()),f.length>0&&console.error(Buffer.concat(f).toString()),o(Error(`${a} failed with ${r}`));return}r()}})}),(!l||n.isDebug)&&n.success(`${a} completed`)};
1
+ import{spawn as e}from"node:child_process";import{createLogger as r}from"./logger.js";import{resolveSdkToolBin as o}from"./sdk-tool/index.js";let t=async(o,t)=>{let s=t?.logger??r(),{command:n,file:i,shell:a,startFailureHint:l,args:c,description:d,quiet:m=!1,cwd:u,extraEnv:f}=o;m?s.isDebug&&s.debug(`Running: ${n} ${c.join(" ")}`):s.step(d);let g=s.isDebug?"inherit":m?"pipe":"inherit";await new Promise((r,o)=>{let t=e(i,c,{stdio:g,shell:a,cwd:u,env:f?{...process.env,...f}:void 0}),m=[],p=[],h=!1;t.stdout?.on("data",e=>m.push(Buffer.from(e))),t.stderr?.on("data",e=>p.push(Buffer.from(e))),t.once("error",e=>{h=!0,s.error(`${d} failed to execute`),s.error(`Error: ${e.message}`),o(Error(`Failed to execute command '${n}': ${e.message}. ${l}`))}),t.once("close",(e,t)=>{if(!h){if(0!==e){let r=null!==e?`exit code ${e}`:"unknown error (process was terminated or failed to start)";s.error(`${d} failed with ${r}`),t&&s.error(`Process was killed with signal: ${t}`),m.length>0&&console.error(Buffer.concat(m).toString()),p.length>0&&console.error(Buffer.concat(p).toString()),o(Error(`${d} failed with ${r}`));return}r()}})}),(!m||s.isDebug)&&s.success(`${d} completed`)};export const runCommand=async(e,r)=>{await t({...e,file:e.command,shell:!0,startFailureHint:"Ensure the command is installed and available in PATH."},r)};export const runSdkTool=async(e,r)=>{let{tool:s,args:n,...i}=e;await t({...i,command:s.binName,file:process.execPath,args:[o(s),...n],shell:!1,startFailureHint:"Ensure Node.js can start this process."},r)};
@@ -0,0 +1 @@
1
+ export { type SdkTool, resolveSdkToolBin } from './resolve-sdk-tool-bin.js';
@@ -0,0 +1 @@
1
+ export{resolveSdkToolBin}from"./resolve-sdk-tool-bin.js";
@@ -0,0 +1,15 @@
1
+ /**
2
+ * A command-line tool the CLI runs, such as `tsc` for `phoenix check`. The SDK installs every such tool as one of
3
+ * its own `dependencies` and runs that copy, so the versions a project installs do not decide them.
4
+ */
5
+ export interface SdkTool {
6
+ /** The name the SDK's `package.json` lists the package under, the alias where the SDK installs it under one */
7
+ readonly packageName: string;
8
+ /** The name of the binary in the package's `bin` field */
9
+ readonly binName: string;
10
+ }
11
+ /**
12
+ * Returns the absolute path of a tool's binary in the SDK's own installation. It never looks at `PATH` or the
13
+ * project's `node_modules`, so the CLI runs the same tool in every project.
14
+ */
15
+ export declare const resolveSdkToolBin: (tool: SdkTool) => string;
@@ -0,0 +1 @@
1
+ import{existsSync as e,readFileSync as o}from"node:fs";import{createRequire as t}from"node:module";import{join as n,resolve as i}from"node:path";import{z as a}from"zod";let r=a.object({name:a.string(),bin:a.union([a.string(),a.record(a.string())]).optional()}),s=t(import.meta.url);export const resolveSdkToolBin=t=>{var a,p;let d=(o=>{let t=(s.resolve.paths(o)??[]).map(e=>n(e,o)).find(o=>e(n(o,"package.json")));if(void 0===t)throw Error(`Cannot find the package '${o}' in the installation of @salsita-ai/sdk. The SDK runs its own copy of it, so it is one of the SDK's dependencies. Reinstall the project's dependencies.`);return t})(t.packageName),l=(a=r.parse(JSON.parse(o(n(d,"package.json"),"utf-8"))),p=t.binName,"string"==typeof a.bin?a.name.replace(/^@[^/]+\//,"")===p?a.bin:void 0:a.bin?.[p]);if(void 0===l)throw Error(`The package '${t.packageName}' in the installation of @salsita-ai/sdk has no binary '${t.binName}'. The SDK expects it there to run it. Reinstall the project's dependencies.`);return i(d,l)};
@@ -12,12 +12,14 @@ export declare const useConfiguratorRawAccessService: () => AccessService | null
12
12
  export declare const useAdminRawAccessService: () => AccessService | null;
13
13
  export declare const useConfiguratorRawAccessInfo: () => {
14
14
  raw: string;
15
+ access: import("@salsita-ai/contracts/api").AccessLevel;
15
16
  viewMode: boolean;
16
17
  revisionId: string | undefined;
17
18
  configurationId: string;
18
19
  } | null;
19
20
  export declare const useAdminRawAccessInfo: () => {
20
21
  raw: string;
22
+ access: import("@salsita-ai/contracts/api").AccessLevel;
21
23
  viewMode: boolean;
22
24
  revisionId: string | undefined;
23
25
  configurationId: string;
@@ -1 +1 @@
1
- import{memoOnce as e}from"@salsita-ai/common/utils";import{createDomainRuntime as t,createMockDomainRuntimeServices as o,createMockSessionContext as n}from"#package/domain";import{createCommonServicesSelectors as s}from"../common-services/index.js";import{createDomainApplicationContextSelectors as i}from"../domain-application-context/index.js";import{createIntegrationActions as a,createIntegrationSelectors as r,initializeIntegration as c}from"../integration/index.js";import{createRoutingActions as m,createRoutingSelectors as d,initializeRouting as p}from"../routing/index.js";import{SessionService as l,createSessionRuntimeActions as S,createSessionRuntimeSelectors as g,initializeSessionRuntime as v}from"../session/index.js";import{createMockWebComponentApi as u}from"../web-component/index.js";export const createMockApplicationRuntime=(f,C)=>{var x;let b,y,w,A,D,k,E,I,h,j,R,T,O,L,F,{sessionData:M,mode:U,role:V}=C,z=o(),q=(x={webComponentOptions:C.webComponentOptions??f.mount.options,webComponentApi:C.webComponentApi??u()},w=v(),A=t({config:f,services:z,getExtensionSystems:e=>F[e].getInitializableSystems()}),D=new Set,k=()=>{D.forEach(e=>{e()})},b=c({actions:E=a({setIntegration:e=>{b=e(b),k()}})}),I=r({getState:()=>({integration:b})}),h=m({setRouting:e=>{y=e(y),k()}}),y=p(),j=d({getState:()=>({...A.getState(),routing:y}),actions:h,accessActions:A.actions.access,loadedDataActions:A.actions.loadedData,domainServicesSelectors:A.selectors.domainServices,overridesSelectors:A.selectors.overrides}),R=s({getState:()=>({...A.getState(),session:w}),environmentSelectors:A.selectors.environment,specSelectors:A.selectors.spec,accessSelectors:A.selectors.access,domainServicesSelectors:A.selectors.domainServices,webComponentOptions:x.webComponentOptions,webComponentApi:x.webComponentApi,getSessionService:()=>L(),routingSelectors:j}),T=S({setSessionRuntime:e=>{w=e(w),k()}}),O=g({getState:()=>({...A.getState(),session:w}),sessionContextSelectors:A.selectors.sessionContext}),L=e(()=>new l({getLogger:()=>A.selectors.domainServices.getLogger(),getAnalyticsService:()=>A.selectors.domainServices.getAnalyticsService(),getUnauthenticatedClient:R.getUnauthenticatedClient,environmentSelectors:A.selectors.environment,sessionActions:T,setSessionContext:A.actions.sessionContext.setSessionContext,sessionSelectors:O,specSelectors:A.selectors.spec})),F={configurator:i({applicationType:"configurator",commonServicesSelectors:R,domainServicesSelectors:A.selectors.domainServices,domainContextSelectors:A.selectors.domainContext.configurator,getApplicationRuntimeExtensions:()=>[]}),admin:i({applicationType:"admin",commonServicesSelectors:R,domainServicesSelectors:A.selectors.domainServices,domainContextSelectors:A.selectors.domainContext.admin,getApplicationRuntimeExtensions:()=>[]})},{subscribe:e=>{D.add(e);let t=A.subscribe(e);return()=>{D.delete(e),t()}},getState:()=>({...A.getState(),integration:b,routing:y,session:w}),selectors:{...A.selectors,commonServices:R,integration:I,routing:j,session:O,domainApplicationContext:F},actions:{...A.actions,integration:E,routing:h,session:T}}),B=q.getState().spec;return q.actions.spec.updateSpec({...B,configurator:{...B.configurator,createTransformers:e=>C.transformers.map(t=>t.transformer.register(e,t.priority??1/0))}}),q.actions.sessionContext.setSessionContext(n(V,M)),q.actions.access.setConfiguratorAccessInfo({raw:"mock-access-token",viewMode:"read"===U,revisionId:void 0,configurationId:"mock"}),q.actions.domainData.setDomainData({publishedData:C.publishedData,frontendData:C.frontendData,backendData:C.backendData}),q.actions.loadedData.completeConfiguratorLoad({initialRevisionId:"mock-revision",initialEntities:C.entities,modelVersion:f.domain.domainFactory.modelVersion,rootEntityType:C.rootEntityType,schemaIdentity:f.domain.domainFactory}),q};
1
+ import{memoOnce as e}from"@salsita-ai/common/utils";import{AccessLevel as t}from"@salsita-ai/contracts/api";import{createDomainRuntime as o,createMockDomainRuntimeServices as n,createMockSessionContext as s}from"#package/domain";import{createCommonServicesSelectors as i}from"../common-services/index.js";import{createDomainApplicationContextSelectors as a}from"../domain-application-context/index.js";import{createIntegrationActions as r,createIntegrationSelectors as c,initializeIntegration as m}from"../integration/index.js";import{createRoutingActions as d,createRoutingSelectors as p,initializeRouting as l}from"../routing/index.js";import{SessionService as S,createSessionRuntimeActions as g,createSessionRuntimeSelectors as v,initializeSessionRuntime as u}from"../session/index.js";import{createMockWebComponentApi as f}from"../web-component/index.js";export const createMockApplicationRuntime=(C,x)=>{var b;let w,y,A,D,k,E,I,R,h,j,O,T,L,F,M,{sessionData:U,mode:V,role:z}=x,q=n(),B=(b={webComponentOptions:x.webComponentOptions??C.mount.options,webComponentApi:x.webComponentApi??f()},A=u(),D=o({config:C,services:q,getExtensionSystems:e=>M[e].getInitializableSystems()}),k=new Set,E=()=>{k.forEach(e=>{e()})},w=m({actions:I=r({setIntegration:e=>{w=e(w),E()}})}),R=c({getState:()=>({integration:w})}),h=d({setRouting:e=>{y=e(y),E()}}),y=l(),j=p({getState:()=>({...D.getState(),routing:y}),actions:h,accessActions:D.actions.access,loadedDataActions:D.actions.loadedData,domainServicesSelectors:D.selectors.domainServices,overridesSelectors:D.selectors.overrides}),O=i({getState:()=>({...D.getState(),session:A}),environmentSelectors:D.selectors.environment,specSelectors:D.selectors.spec,accessSelectors:D.selectors.access,domainServicesSelectors:D.selectors.domainServices,webComponentOptions:b.webComponentOptions,webComponentApi:b.webComponentApi,getSessionService:()=>F(),routingSelectors:j}),T=g({setSessionRuntime:e=>{A=e(A),E()}}),L=v({getState:()=>({...D.getState(),session:A}),sessionContextSelectors:D.selectors.sessionContext}),F=e(()=>new S({getLogger:()=>D.selectors.domainServices.getLogger(),getAnalyticsService:()=>D.selectors.domainServices.getAnalyticsService(),getUnauthenticatedClient:O.getUnauthenticatedClient,environmentSelectors:D.selectors.environment,sessionActions:T,setSessionContext:D.actions.sessionContext.setSessionContext,sessionSelectors:L,specSelectors:D.selectors.spec})),M={configurator:a({applicationType:"configurator",commonServicesSelectors:O,domainServicesSelectors:D.selectors.domainServices,domainContextSelectors:D.selectors.domainContext.configurator,getApplicationRuntimeExtensions:()=>[]}),admin:a({applicationType:"admin",commonServicesSelectors:O,domainServicesSelectors:D.selectors.domainServices,domainContextSelectors:D.selectors.domainContext.admin,getApplicationRuntimeExtensions:()=>[]})},{subscribe:e=>{k.add(e);let t=D.subscribe(e);return()=>{k.delete(e),t()}},getState:()=>({...D.getState(),integration:w,routing:y,session:A}),selectors:{...D.selectors,commonServices:O,integration:R,routing:j,session:L,domainApplicationContext:M},actions:{...D.actions,integration:I,routing:h,session:T}}),G=B.getState().spec;return B.actions.spec.updateSpec({...G,configurator:{...G.configurator,createTransformers:e=>x.transformers.map(t=>t.transformer.register(e,t.priority??1/0))}}),B.actions.sessionContext.setSessionContext(s(z,U)),B.actions.access.setConfiguratorAccessInfo({raw:"mock-access-token",access:"read"===V?t.Read:t.Owner,viewMode:"read"===V,revisionId:void 0,configurationId:"mock"}),B.actions.domainData.setDomainData({publishedData:x.publishedData,frontendData:x.frontendData,backendData:x.backendData}),B.actions.loadedData.completeConfiguratorLoad({initialRevisionId:"mock-revision",initialEntities:x.entities,modelVersion:C.domain.domainFactory.modelVersion,rootEntityType:x.rootEntityType,schemaIdentity:C.domain.domainFactory}),B};
@@ -3,6 +3,7 @@ export declare const getAccessTokenFromLocalStorage: (configurationId: string) =
3
3
  export declare const removeAccessTokenFromLocalStorage: (configurationId: string) => void;
4
4
  export declare const getAccessInfo: (configurationId: string, accessToken?: string) => {
5
5
  raw: string;
6
+ access: import("@salsita-ai/contracts/api").AccessLevel;
6
7
  viewMode: boolean;
7
8
  revisionId: string | undefined;
8
9
  configurationId: string;