@salsita-ai/sdk 0.50.0-develop.d7ce7f7857 → 0.50.0-develop.d815756961

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 (513) hide show
  1. package/README.md +19 -14
  2. package/dist/admin/default-admin-elements.d.ts +9 -0
  3. package/dist/admin/default-admin-elements.js +1 -0
  4. package/dist/admin/default-elements/built-in-entity-element.d.ts +10 -0
  5. package/dist/admin/default-elements/built-in-entity-element.js +1 -0
  6. package/dist/admin/default-elements/built-in-layout-element.d.ts +10 -0
  7. package/dist/admin/default-elements/built-in-layout-element.js +1 -0
  8. package/dist/admin/default-elements/index.d.ts +2 -0
  9. package/dist/admin/default-elements/index.js +1 -0
  10. package/dist/admin/index.d.ts +1 -0
  11. package/dist/admin/index.js +1 -1
  12. package/dist/application-spec/caching/content-diff.js +1 -1
  13. package/dist/application-spec/core/application-file.d.ts +0 -2
  14. package/dist/application-spec/core/application-file.js +1 -1
  15. package/dist/application-spec/errors/diagnostic-codes.d.ts +5 -0
  16. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  17. package/dist/application-spec/errors/diagnostic-messages.d.ts +5 -0
  18. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  19. package/dist/application-spec/generate-application/code/common/code-imports.js +1 -1
  20. package/dist/application-spec/generate-application/code/common/env-reader.js +2 -2
  21. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  22. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  23. package/dist/application-spec/generate-application/code/common/single-quoted-string.d.ts +6 -0
  24. package/dist/application-spec/generate-application/code/common/single-quoted-string.js +1 -0
  25. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  26. package/dist/application-spec/generate-application/code/generate-application-code.d.ts +3 -2
  27. package/dist/application-spec/generate-application/code/generate-application-code.js +1 -1
  28. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +15 -14
  29. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  30. package/dist/application-spec/generate-application/code/story-files.js +1 -1
  31. package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -0
  32. package/dist/application-spec/generate-application/code/templates/common/format-property-key.d.ts +7 -0
  33. package/dist/application-spec/generate-application/code/templates/common/format-property-key.js +1 -0
  34. package/dist/application-spec/generate-application/code/templates/common/schema-to-type-string.js +3 -3
  35. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +35 -0
  36. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +5 -0
  37. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.d.ts +1 -0
  38. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.js +1 -0
  39. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.d.ts +1 -1
  40. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +6 -6
  41. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +59 -63
  42. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +8 -0
  43. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  44. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-presets.js +1 -1
  45. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +13 -13
  46. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.d.ts +1 -1
  47. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.js +2 -2
  48. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +2 -1
  49. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  50. package/dist/application-spec/generate-application/code/templates/eslint-config.d.ts +5 -0
  51. package/dist/application-spec/generate-application/code/templates/eslint-config.js +4 -5
  52. package/dist/application-spec/generate-application/code/templates/frontend-config.js +3 -5
  53. package/dist/application-spec/generate-application/code/templates/gitignore.js +0 -3
  54. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.d.ts +43 -0
  55. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +31 -0
  56. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
  57. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  58. package/dist/application-spec/generate-application/code/templates/globals.js +24 -44
  59. package/dist/application-spec/generate-application/code/templates/index.d.ts +3 -2
  60. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  61. package/dist/application-spec/generate-application/code/templates/lingui-rc.d.ts +5 -0
  62. package/dist/application-spec/generate-application/code/templates/lingui-rc.js +4 -4
  63. package/dist/application-spec/generate-application/code/templates/prettier-config.d.ts +5 -0
  64. package/dist/application-spec/generate-application/code/templates/prettier-config.js +4 -5
  65. package/dist/application-spec/generate-application/code/templates/root-tsconfig.d.ts +6 -0
  66. package/dist/application-spec/generate-application/code/templates/root-tsconfig.js +2 -0
  67. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  68. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +1 -1
  69. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +5 -5
  70. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +3 -3
  71. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  72. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +2 -2
  73. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +16 -4
  74. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -2
  75. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
  76. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
  77. package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
  78. package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
  79. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
  80. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
  81. package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
  82. package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
  83. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
  84. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
  85. package/dist/application-spec/generate-application/code/templates/story/phx-module.d.ts +8 -2
  86. package/dist/application-spec/generate-application/code/templates/story/phx-module.js +15 -3
  87. package/dist/application-spec/generate-application/code/templates/story/wrapper.d.ts +3 -0
  88. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -1
  89. package/dist/application-spec/generate-application/code/templates/tsconfig.d.ts +5 -0
  90. package/dist/application-spec/generate-application/code/templates/tsconfig.js +1 -1
  91. package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -3
  92. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +6 -4
  93. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +1 -1
  94. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +3 -2
  95. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  96. package/dist/application-spec/generate-application/runtime/admin-runtime/states-runtime.d.ts +2 -2
  97. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +13 -6
  98. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  99. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +6 -4
  100. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +1 -1
  101. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +3 -2
  102. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  103. package/dist/application-spec/generate-application/runtime/configurator-runtime/states-runtime.d.ts +2 -2
  104. package/dist/application-spec/generate-application/runtime/migrations/migration-runtime.d.ts +2 -2
  105. package/dist/application-spec/generate-application/runtime/sections/assistant-runtime.d.ts +2 -2
  106. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +2 -1
  107. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  108. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +2 -1
  109. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +1 -1
  110. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +3 -0
  111. package/dist/application-spec/generate-application/runtime/sections/component-optic.js +1 -1
  112. package/dist/application-spec/generate-application/runtime/sections/data-runtime.d.ts +4 -4
  113. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +7 -4
  114. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  115. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +9 -5
  116. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  117. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +3 -1
  118. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.js +1 -1
  119. package/dist/application-spec/generate-application/runtime/sections/theme-runtime.d.ts +2 -2
  120. package/dist/application-spec/generate-application/runtime/sections/transformers-runtime.d.ts +3 -3
  121. package/dist/application-spec/generate-application/runtime/spec-code/index.d.ts +2 -0
  122. package/dist/application-spec/generate-application/runtime/spec-code/index.js +1 -0
  123. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +18 -0
  124. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.js +1 -0
  125. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.d.ts +17 -0
  126. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.js +1 -0
  127. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.d.ts +9 -0
  128. package/dist/application-spec/generate-application/runtime-spec/decode-runtime-spec.js +1 -0
  129. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.d.ts +8 -0
  130. package/dist/application-spec/generate-application/runtime-spec/encode-runtime-spec.js +1 -0
  131. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +27 -0
  132. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.js +1 -0
  133. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +5 -0
  134. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -0
  135. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +68 -0
  136. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -0
  137. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +40 -0
  138. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.js +1 -0
  139. package/dist/application-spec/parse-application-files/categorize/categorize-files.d.ts +28 -0
  140. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  141. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.d.ts +16 -0
  142. package/dist/application-spec/parse-application-files/categorize/earlier-generated-editor-configs.js +9 -0
  143. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.d.ts +9 -0
  144. package/dist/application-spec/parse-application-files/categorize/earlier-generated-tsconfig.js +1 -0
  145. package/dist/application-spec/parse-application-files/raw-spec/parse-yaml-spec-file.js +1 -1
  146. package/dist/application-spec/parse-application-files/spec/application/admin-spec/admin-spec.js +1 -1
  147. package/dist/application-spec/parse-application-files/spec/application/configurator-spec/configurator-spec.js +1 -1
  148. package/dist/application-spec/parse-application-files/spec/common/index.d.ts +1 -0
  149. package/dist/application-spec/parse-application-files/spec/common/index.js +1 -1
  150. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.d.ts +3 -0
  151. package/dist/application-spec/parse-application-files/spec/common/value-type/format-value-type.js +1 -0
  152. package/dist/application-spec/parse-application-files/spec/common/value-type/index.d.ts +5 -0
  153. package/dist/application-spec/parse-application-files/spec/common/value-type/index.js +1 -0
  154. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.d.ts +6 -0
  155. package/dist/application-spec/parse-application-files/spec/common/value-type/intersect-value-types.js +1 -0
  156. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.d.ts +8 -0
  157. package/dist/application-spec/parse-application-files/spec/common/value-type/is-assignable-value-type.js +1 -0
  158. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.d.ts +10 -0
  159. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type-at.js +1 -0
  160. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.d.ts +98 -0
  161. package/dist/application-spec/parse-application-files/spec/common/value-type/value-type.js +1 -0
  162. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.d.ts +13 -0
  163. package/dist/application-spec/parse-application-files/spec/components/bindings/component-path.js +1 -0
  164. package/dist/application-spec/parse-application-files/spec/components/bindings/index.d.ts +2 -0
  165. package/dist/application-spec/parse-application-files/spec/components/bindings/index.js +1 -1
  166. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.d.ts +24 -0
  167. package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding-type.js +1 -0
  168. package/dist/application-spec/parse-application-files/spec/components/component-state-type.d.ts +8 -0
  169. package/dist/application-spec/parse-application-files/spec/components/component-state-type.js +1 -0
  170. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.d.ts +13 -0
  171. package/dist/application-spec/parse-application-files/spec/components/filter-criterion-types.js +1 -0
  172. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.d.ts +14 -0
  173. package/dist/application-spec/parse-application-files/spec/components/static-entity-id.js +1 -0
  174. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +6 -0
  175. package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
  176. package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +7 -4
  177. package/dist/application-spec/parse-application-files/spec/components/user-components.js +1 -1
  178. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +24 -0
  179. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -0
  180. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.d.ts +13 -0
  181. package/dist/application-spec/parse-application-files/spec/expressions/expression-read.js +1 -0
  182. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
  183. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
  184. package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +6 -2
  185. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  186. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +3 -1
  187. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  188. package/dist/application-spec/parse-application-files/spec/invariants/invariants.d.ts +2 -2
  189. package/dist/application-spec/parse-application-files/spec/invariants/invariants.js +1 -1
  190. package/dist/application-spec/parse-application-files/spec/model/index.d.ts +1 -0
  191. package/dist/application-spec/parse-application-files/spec/model/index.js +1 -1
  192. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.d.ts +10 -0
  193. package/dist/application-spec/parse-application-files/spec/model/model-type-resolution.js +1 -0
  194. package/dist/client/phoenix-api.d.ts +367 -0
  195. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +7 -1
  196. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  197. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.d.ts +12 -0
  198. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.js +1 -0
  199. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +1 -1
  200. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  201. package/dist/configurator/common/configurator-interface.d.ts +6 -2
  202. package/dist/configurator/common/configurator-interface.js +1 -1
  203. package/dist/configurator/common/index.d.ts +2 -2
  204. package/dist/configurator/common/index.js +1 -1
  205. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +12 -0
  206. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -0
  207. package/dist/configurator/configuration-not-found-page/index.d.ts +1 -0
  208. package/dist/configurator/configuration-not-found-page/index.js +1 -0
  209. package/dist/configurator/configurator-context/PresetSelectionProvider.js +1 -1
  210. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  211. package/dist/configurator/pages/DefaultConfiguratorLayout.d.ts +3 -2
  212. package/dist/configurator/pages/DefaultNotAuthenticatedPage.d.ts +8 -0
  213. package/dist/configurator/pages/DefaultNotAuthenticatedPage.js +1 -0
  214. package/dist/configurator/pages/DefaultPresetUi.d.ts +7 -0
  215. package/dist/configurator/pages/DefaultPresetUi.js +1 -0
  216. package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
  217. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  218. package/dist/configurator/pages/RootPage.js +1 -1
  219. package/dist/configurator/pages/default-configurator-elements.d.ts +5 -1
  220. package/dist/configurator/pages/default-configurator-elements.js +1 -1
  221. package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +10 -0
  222. package/dist/configurator/pages/default-elements/built-in-entity-element.js +1 -0
  223. package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +10 -0
  224. package/dist/configurator/pages/default-elements/built-in-layout-element.js +1 -0
  225. package/dist/configurator/pages/default-elements/domain-control-elements.d.ts +6 -0
  226. package/dist/configurator/pages/default-elements/domain-control-elements.js +1 -0
  227. package/dist/configurator/pages/default-elements/index.d.ts +4 -0
  228. package/dist/configurator/pages/default-elements/index.js +1 -0
  229. package/dist/configurator/pages/default-elements/recipe-panel-elements.d.ts +3 -0
  230. package/dist/configurator/pages/default-elements/recipe-panel-elements.js +1 -0
  231. package/dist/configurator/pages/default-elements/sidebar-footer-elements.d.ts +7 -0
  232. package/dist/configurator/pages/default-elements/sidebar-footer-elements.js +1 -0
  233. package/dist/configurator/pages/default-elements/toolbar-elements.d.ts +7 -0
  234. package/dist/configurator/pages/default-elements/toolbar-elements.js +1 -0
  235. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.d.ts +4 -0
  236. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.js +1 -0
  237. package/dist/configurator/preset-screen-elements/PresetPageActionElement.d.ts +4 -0
  238. package/dist/configurator/preset-screen-elements/PresetPageActionElement.js +1 -0
  239. package/dist/configurator/preset-screen-elements/index.d.ts +2 -0
  240. package/dist/configurator/preset-screen-elements/index.js +1 -0
  241. package/dist/configurator/scene/scene-controls/DeleteEntityFab.js +1 -1
  242. package/dist/configurator/scene/scene-controls/SelectionHotspot.js +1 -1
  243. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +7 -2
  244. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  245. package/dist/configurator/ui/assistant/AssistantPanel.js +1 -1
  246. package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
  247. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.d.ts +1 -1
  248. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -1
  249. package/dist/configurator/ui/assistant/entity-link/entity-link-state.d.ts +1 -1
  250. package/dist/configurator/ui/assistant/entity-link/index.d.ts +0 -1
  251. package/dist/configurator/ui/assistant/entity-link/index.js +1 -1
  252. package/dist/configurator/ui/assistant/form/AssistantForm.d.ts +19 -0
  253. package/dist/configurator/ui/assistant/form/AssistantForm.js +1 -0
  254. package/dist/configurator/ui/assistant/form/built-in-form-registry.d.ts +10 -0
  255. package/dist/configurator/ui/assistant/form/built-in-form-registry.js +1 -0
  256. package/dist/configurator/ui/assistant/form/compose-answer.d.ts +11 -0
  257. package/dist/configurator/ui/assistant/form/compose-answer.js +1 -0
  258. package/dist/configurator/ui/assistant/form/describe-build-errors.d.ts +6 -0
  259. package/dist/configurator/ui/assistant/form/describe-build-errors.js +1 -0
  260. package/dist/configurator/ui/assistant/form/form-element-definition.d.ts +14 -0
  261. package/dist/configurator/ui/assistant/form/form-element-definition.js +1 -0
  262. package/dist/configurator/ui/assistant/form/form-model.d.ts +38 -0
  263. package/dist/configurator/ui/assistant/form/form-model.js +1 -0
  264. package/dist/configurator/ui/assistant/form/form-registry.d.ts +31 -0
  265. package/dist/configurator/ui/assistant/form/form-registry.js +8 -0
  266. package/dist/configurator/ui/assistant/form/form-state.d.ts +4 -0
  267. package/dist/configurator/ui/assistant/form/form-state.js +1 -0
  268. package/dist/configurator/ui/assistant/form/index.d.ts +2 -0
  269. package/dist/configurator/ui/assistant/form/index.js +1 -0
  270. package/dist/configurator/ui/assistant/form/parse-form-block.d.ts +9 -0
  271. package/dist/configurator/ui/assistant/form/parse-form-block.js +1 -0
  272. package/dist/configurator/ui/assistant/form/read-form-attributes.d.ts +13 -0
  273. package/dist/configurator/ui/assistant/form/read-form-attributes.js +1 -0
  274. package/dist/configurator/ui/assistant/form-elements/FormGroup.d.ts +3 -0
  275. package/dist/configurator/ui/assistant/form-elements/FormGroup.js +1 -0
  276. package/dist/configurator/ui/assistant/form-elements/FormOptions.d.ts +3 -0
  277. package/dist/configurator/ui/assistant/form-elements/FormOptions.js +1 -0
  278. package/dist/configurator/ui/assistant/form-elements/FormReply.d.ts +3 -0
  279. package/dist/configurator/ui/assistant/form-elements/FormReply.js +1 -0
  280. package/dist/configurator/ui/assistant/form-elements/FormText.d.ts +3 -0
  281. package/dist/configurator/ui/assistant/form-elements/FormText.js +1 -0
  282. package/dist/configurator/ui/assistant/form-elements/form-element-props.d.ts +34 -0
  283. package/dist/configurator/ui/assistant/form-elements/form-element-props.js +1 -0
  284. package/dist/configurator/ui/assistant/form-elements/index.d.ts +5 -0
  285. package/dist/configurator/ui/assistant/form-elements/index.js +1 -0
  286. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.d.ts +16 -0
  287. package/dist/configurator/ui/assistant/reference-link/AssistantReferenceLink.js +1 -0
  288. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.d.ts +34 -0
  289. package/dist/configurator/ui/assistant/reference-link/assistant-link-target.js +1 -0
  290. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.d.ts +25 -0
  291. package/dist/configurator/ui/assistant/reference-link/assistant-reference-details.js +1 -0
  292. package/dist/configurator/ui/assistant/reference-link/index.d.ts +3 -0
  293. package/dist/configurator/ui/assistant/reference-link/index.js +1 -0
  294. package/dist/configurator/ui/assistant/reference-link/reference-styles.d.ts +12 -0
  295. package/dist/configurator/ui/assistant/reference-link/reference-styles.js +1 -0
  296. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.d.ts +8 -0
  297. package/dist/configurator/ui/assistant/reference-link/use-assistant-reference-details.js +1 -0
  298. package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +9 -0
  299. package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -0
  300. package/dist/configurator/ui/assistant/resource-image/index.d.ts +3 -0
  301. package/dist/configurator/ui/assistant/resource-image/index.js +1 -0
  302. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +11 -0
  303. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -0
  304. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.d.ts +5 -0
  305. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.js +1 -0
  306. package/dist/configurator/ui/assistant/streamed-markdown.d.ts +2 -0
  307. package/dist/configurator/ui/assistant/streamed-markdown.js +2 -2
  308. package/dist/configurator/ui/assistant/thread-items.d.ts +8 -1
  309. package/dist/configurator/ui/assistant/thread-items.js +1 -1
  310. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -1
  311. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  312. package/dist/configurator/ui/configurator-layout/slots/services/Services.js +1 -1
  313. package/dist/configurator/ui/legacy/layout/common/CommonFinalizeButton.js +1 -1
  314. package/dist/configurator/ui/legacy/layout/common/CommonSummaryButton.js +1 -1
  315. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  316. package/dist/configurator/ui/legacy/layout/common/ResponsiveFinalizeButton.js +1 -1
  317. package/dist/configurator/ui/legacy/layout/common/SummaryReadLayout.js +1 -1
  318. package/dist/configurator/ui/legacy/layout/simple/SimpleOwnerLayout.js +1 -1
  319. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  320. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  321. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  322. package/dist/configurator/ui/legacy/layout/steps/StepsSidebarFooter.js +1 -1
  323. package/dist/configurator/ui/legacy/layout/tabs/TabsOwnerLayout.js +1 -1
  324. package/dist/configurator/ui/legacy/toolbar/common/DimensionUnitSelector.js +1 -1
  325. package/dist/configurator/ui/legacy/toolbar/common/MeasurementsIndicatorsSwitch.js +1 -1
  326. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/FullscreenToolbarAction.js +1 -1
  327. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/HelpToolbarAction.js +1 -1
  328. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/MeasurementsToolbarAction.js +1 -1
  329. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/UndoRedoToolbarGroup.js +1 -1
  330. package/dist/configurator/ui/phoenix-layout-elements/EnterFullscreenToolbarButton.js +1 -1
  331. package/dist/configurator/ui/phoenix-layout-elements/ExitFullscreenToolbarButton.js +1 -1
  332. package/dist/configurator/ui/phoenix-layout-elements/HelpToolbarButton.js +1 -1
  333. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.d.ts +1 -0
  334. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.js +1 -1
  335. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.d.ts +1 -0
  336. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.js +1 -1
  337. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsToolbarButton.js +1 -1
  338. package/dist/configurator/ui/phoenix-layout-elements/RedoToolbarButton.js +1 -1
  339. package/dist/configurator/ui/phoenix-layout-elements/UndoToolbarButton.js +1 -1
  340. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  341. package/dist/configurator/ui/phoenix-layout-elements/header/common/horizontal-tabs/DesktopHorizontalTabs.js +1 -1
  342. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  343. package/dist/configurator/ui/phoenix-layout-elements/measurements/DimensionUnitSelector.js +1 -1
  344. package/dist/configurator/ui/phoenix-layout-elements/measurements/MeasurementsIndicatorsSwitch.js +1 -1
  345. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/BasicFinalizeButton.js +1 -1
  346. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/CustomFinalizeButton.js +1 -1
  347. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/EnterSummaryButton.js +1 -1
  348. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/NextStepButton.js +1 -1
  349. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  350. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  351. package/dist/configurator/ui/preset-layout/PresetUi.d.ts +4 -0
  352. package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
  353. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.d.ts +10 -0
  354. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -0
  355. package/dist/configurator/ui/save-message-snackbars/index.d.ts +1 -0
  356. package/dist/configurator/ui/save-message-snackbars/index.js +1 -0
  357. package/dist/docs/controls/select-child-entity/cardselect.mdx +1 -0
  358. package/dist/docs/fabs/basic.mdx +2 -2
  359. package/dist/docs/index.json +1 -1
  360. package/dist/docs/layouts/custom-layout.mdx +325 -15
  361. package/dist/docs/other-features/not-found-404.mdx +1 -1
  362. package/dist/docs/phoenix/clerk-sign-in.mdx +1 -1
  363. package/dist/docs/phoenix/components.mdx +6 -0
  364. package/dist/docs/phoenix/configurator-interface.mdx +39 -11
  365. package/dist/docs/phoenix/deployments.mdx +2 -6
  366. package/dist/docs/phoenix/domain-model.mdx +2 -0
  367. package/dist/docs/phoenix/getting-started.mdx +6 -3
  368. package/dist/docs/phoenix/layout-slots.mdx +9 -9
  369. package/dist/docs/phoenix/localization.mdx +10 -6
  370. package/dist/docs/phoenix/migration-guide.mdx +24 -11
  371. package/dist/docs/phoenix/phoenix-cli.mdx +48 -15
  372. package/dist/docs/phoenix/project-structure.mdx +63 -31
  373. package/dist/docs/phoenix/quickstart.mdx +7 -7
  374. package/dist/docs/phoenix/sdk-builder-workflow.mdx +7 -7
  375. package/dist/docs/phoenix/testing.mdx +8 -0
  376. package/dist/docs/phoenix/webhooks.mdx +4 -4
  377. package/dist/domain/application/assistant/assistant-form-elements.d.ts +28 -0
  378. package/dist/domain/application/assistant/assistant-form-elements.js +1 -0
  379. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  380. package/dist/domain/application/assistant/index.d.ts +2 -0
  381. package/dist/domain/application/assistant/index.js +1 -1
  382. package/dist/domain/application/assistant-recipe-groups.d.ts +3 -1
  383. package/dist/domain/core/schema/extended-schema-validator.js +1 -1
  384. package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +12 -11
  385. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -1
  386. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +1 -1
  387. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -1
  388. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  389. package/dist/domain/system-components/child-entity-selection.js +1 -1
  390. package/dist/domain/system-components/common/scene-entity-control-schema.d.ts +3 -0
  391. package/dist/domain/system-components/common/scene-entity-control-schema.js +1 -1
  392. package/dist/editor/Editor.d.ts +7 -0
  393. package/dist/editor/Editor.js +1 -1
  394. package/dist/editor/mocks/CreateMockYaml.js +2 -2
  395. package/dist/editor/mocks/EditorMockContext.d.ts +2 -0
  396. package/dist/editor/mocks/EditorMockContext.js +1 -1
  397. package/dist/globals/index.d.ts +2 -0
  398. package/dist/i18n/locales/cs/messages.js +1 -1
  399. package/dist/i18n/locales/da/messages.js +1 -1
  400. package/dist/i18n/locales/de/messages.js +1 -1
  401. package/dist/i18n/locales/de-AT/messages.js +1 -1
  402. package/dist/i18n/locales/en/messages.js +1 -1
  403. package/dist/i18n/locales/en-AU/messages.js +1 -1
  404. package/dist/i18n/locales/en-GB/messages.js +1 -1
  405. package/dist/i18n/locales/es/messages.js +1 -1
  406. package/dist/i18n/locales/fr/messages.js +1 -1
  407. package/dist/i18n/locales/hu/messages.js +1 -1
  408. package/dist/i18n/locales/it/messages.js +1 -1
  409. package/dist/i18n/locales/nl/messages.js +1 -1
  410. package/dist/i18n/locales/pl/messages.js +1 -1
  411. package/dist/i18n/locales/pt/messages.js +1 -1
  412. package/dist/i18n/locales/ro/messages.js +1 -1
  413. package/dist/i18n/locales/sk/messages.js +1 -1
  414. package/dist/i18n/locales/tr/messages.js +1 -1
  415. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  416. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  417. package/dist/legacy/domain-spec/__generated/domain-schema.d.ts +79 -80
  418. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +10 -11
  419. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +9 -10
  420. package/dist/phoenix/application-spec/application-spec-builder.d.ts +0 -2
  421. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  422. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +0 -2
  423. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  424. package/dist/phoenix/application-spec/generate-application-spec-story.js +2 -2
  425. package/dist/phoenix/application-spec/generate-project-files.d.ts +0 -2
  426. package/dist/phoenix/application-spec/project-files.js +1 -1
  427. package/dist/phoenix/bin.d.ts +2 -0
  428. package/dist/phoenix/bin.js +2 -0
  429. package/dist/phoenix/check-configs/built-in-eslint-config.d.ts +9 -0
  430. package/dist/phoenix/check-configs/built-in-eslint-config.js +1 -0
  431. package/dist/phoenix/check-configs/eslint-config.d.ts +10 -0
  432. package/dist/phoenix/check-configs/eslint-config.js +1 -0
  433. package/dist/phoenix/check-configs/index.d.ts +8 -0
  434. package/dist/phoenix/check-configs/index.js +1 -0
  435. package/dist/phoenix/check-configs/typescript-project.d.ts +5 -0
  436. package/dist/phoenix/check-configs/typescript-project.js +1 -0
  437. package/dist/phoenix/cli.d.ts +0 -1
  438. package/dist/phoenix/cli.js +1 -2
  439. package/dist/phoenix/commands/build.js +1 -1
  440. package/dist/phoenix/commands/check.js +1 -1
  441. package/dist/phoenix/commands/clean.js +1 -1
  442. package/dist/phoenix/commands/deploy.js +2 -2
  443. package/dist/phoenix/commands/deps/deps.d.ts +73 -0
  444. package/dist/phoenix/commands/deps/deps.js +3 -0
  445. package/dist/phoenix/commands/deps/index.d.ts +1 -0
  446. package/dist/phoenix/commands/deps/index.js +1 -0
  447. package/dist/phoenix/commands/deps/sdk-manifest.d.ts +12 -0
  448. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -0
  449. package/dist/phoenix/commands/dev.js +4 -4
  450. package/dist/phoenix/commands/fix.js +1 -1
  451. package/dist/phoenix/commands/index.d.ts +1 -0
  452. package/dist/phoenix/commands/index.js +1 -1
  453. package/dist/phoenix/commands/init.d.ts +17 -5
  454. package/dist/phoenix/commands/init.js +1 -1
  455. package/dist/phoenix/commands/link.js +1 -1
  456. package/dist/phoenix/commands/prettier.js +1 -1
  457. package/dist/phoenix/commands/sync.js +1 -1
  458. package/dist/phoenix/commands/unlink.js +1 -1
  459. package/dist/phoenix/services/application-spec-project-watcher.d.ts +0 -2
  460. package/dist/phoenix/services/application-spec-project-watcher.js +2 -2
  461. package/dist/phoenix/services/lingui.d.ts +8 -0
  462. package/dist/phoenix/services/lingui.js +1 -1
  463. package/dist/phoenix/services/swc.js +1 -1
  464. package/dist/phoenix/services/vite-config.js +1 -1
  465. package/dist/phoenix/utils/index.d.ts +4 -2
  466. package/dist/phoenix/utils/index.js +1 -1
  467. package/dist/phoenix/utils/node-version/index.d.ts +1 -0
  468. package/dist/phoenix/utils/node-version/index.js +1 -0
  469. package/dist/phoenix/utils/node-version/supported-node-version.d.ts +12 -0
  470. package/dist/phoenix/utils/node-version/supported-node-version.js +4 -0
  471. package/dist/phoenix/utils/package-info.d.ts +0 -9
  472. package/dist/phoenix/utils/package-info.js +1 -1
  473. package/dist/phoenix/utils/package-manager/index.d.ts +2 -0
  474. package/dist/phoenix/utils/package-manager/index.js +1 -0
  475. package/dist/phoenix/utils/package-manager/package-manager-commands.d.ts +19 -0
  476. package/dist/phoenix/utils/package-manager/package-manager-commands.js +1 -0
  477. package/dist/phoenix/utils/package-manager/pnpm-project.d.ts +9 -0
  478. package/dist/phoenix/utils/package-manager/pnpm-project.js +1 -0
  479. package/dist/phoenix/utils/run-command.d.ts +11 -0
  480. package/dist/phoenix/utils/run-command.js +1 -1
  481. package/dist/phoenix/utils/sdk-tool/index.d.ts +1 -0
  482. package/dist/phoenix/utils/sdk-tool/index.js +1 -0
  483. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.d.ts +15 -0
  484. package/dist/phoenix/utils/sdk-tool/resolve-sdk-tool-bin.js +1 -0
  485. package/dist/react-sdk/application-runtime/common-services/analytics/index.d.ts +1 -0
  486. package/dist/react-sdk/application-runtime/common-services/analytics/index.js +1 -1
  487. package/dist/react-sdk/domain-application-context/DomainLifecycleBoundary.js +1 -1
  488. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +15 -4
  489. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -1
  490. package/dist/react-sdk/domain-context/index.d.ts +1 -0
  491. package/dist/react-sdk/domain-context/index.js +1 -1
  492. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.d.ts +20 -0
  493. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -0
  494. package/dist/react-sdk/handlers/index.d.ts +1 -0
  495. package/dist/react-sdk/handlers/index.js +1 -1
  496. package/dist/react-sdk/handlers/use-finalize-action.js +1 -0
  497. package/dist/react-sdk/session/NotAuthenticatedPage.d.ts +4 -0
  498. package/dist/react-sdk/session/NotAuthenticatedPage.js +1 -1
  499. package/dist/ui-sdk/theme/types.d.ts +1 -1
  500. package/package.json +16 -12
  501. package/schema/domain-spec.json +86 -8
  502. package/dist/application-spec/generate-application/code/templates/nvmrc.d.ts +0 -1
  503. package/dist/application-spec/generate-application/code/templates/nvmrc.js +0 -2
  504. package/dist/application-spec/generate-application/code/templates/package-json.d.ts +0 -10
  505. package/dist/application-spec/generate-application/code/templates/package-json.js +0 -1
  506. package/dist/configurator/common/use-finalize-action.js +0 -1
  507. package/dist/configurator/ui/assistant/entity-link/entity-link-target.d.ts +0 -5
  508. package/dist/configurator/ui/assistant/entity-link/entity-link-target.js +0 -1
  509. package/dist/phoenix/commands/generate-project-files.d.ts +0 -6
  510. package/dist/phoenix/commands/generate-project-files.js +0 -1
  511. /package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.d.ts +0 -0
  512. /package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.js +0 -0
  513. /package/dist/{configurator/common → react-sdk/handlers}/use-finalize-action.d.ts +0 -0
@@ -2,7 +2,7 @@
2
2
  * Generates the files that configure the generated project itself.
3
3
  *
4
4
  * Membership criterion: a file belongs to this group when it describes the project rather than the
5
- * application — dependency and toolchain configuration, formatting rules, agent skills, and
5
+ * application — toolchain configuration, formatting rules, agent skills, and
6
6
  * the initial content a fresh project starts with. Nothing here is imported by the running
7
7
  * configurator or served by the deployed application.
8
8
  *
@@ -24,11 +24,12 @@ export declare const agentSkillRoots: readonly ['.claude/skills', '.agents/skill
24
24
  /**
25
25
  * Inputs required by generated-project configuration and initial project files.
26
26
  *
27
- * The SDK version pins the generated `package.json` dependency, `cliUseWorkspace` lets an explicit
28
- * CLI flag override the spec's workspace mode, and the optional name and description populate the
29
- * project metadata. The categorized files carry the project's existing `package.json` and `.gitignore`
30
- * so those templates can merge rather than clobber, and the legacy cursor rules and `CLAUDE.md` so the
31
- * SDK block can be stripped from them.
27
+ * The SDK version and the workspace mode decide whether the agent skills tell the agent to follow the
28
+ * canary builds; `cliUseWorkspace` lets an explicit CLI flag override the spec's workspace mode. The
29
+ * categorized files carry the project's existing `.gitignore` so its template can merge rather than
30
+ * clobber, the legacy cursor rules and `CLAUDE.md` so the
31
+ * SDK block can be stripped from them, and whether the root `tsconfig.json`, `eslint.config.js` and
32
+ * `prettier.config.js` are the ones earlier SDK versions generated, so they can be replaced.
32
33
  *
33
34
  * `projectInGitRepository` says whether the project folder is inside a git work tree. `.gitignore` is
34
35
  * generated only then: a project that is not under git has no use for the file, and one it already
@@ -42,24 +43,24 @@ export interface GenerateProjectScaffoldingOptions {
42
43
  readonly sdkVersion: string;
43
44
  readonly projectInGitRepository?: boolean;
44
45
  readonly cliUseWorkspace?: boolean;
45
- readonly name?: string;
46
- readonly description?: string;
47
46
  }
48
47
  /**
49
- * Project-root file buckets produced independently from the application runtime files.
48
+ * Project-root file buckets produced independently from the application runtime files, and the
49
+ * project configuration that lives in `.phoenix/`.
50
50
  *
51
51
  * The buckets are kept apart because they carry different write intent, which the caching layer
52
- * acts on: `generatedProjectFiles` are content-diffed and rewritten whenever they differ,
53
- * `initialProjectFiles` are written only when absent and are the project's to edit afterwards, and
54
- * `prettierFiles` are separated so a writer can emit the formatting configuration ahead of the
55
- * output it formats. `removedProjectFiles` lists project-relative paths of files earlier SDK versions
52
+ * acts on: `phoenixFiles` are paths relative to `.phoenix/` and join the application files there,
53
+ * rewritten whenever they differ and removed with the rest of the folder's stale output;
54
+ * `generatedProjectFiles` are content-diffed and rewritten whenever they differ, and
55
+ * `initialProjectFiles` are written only when absent and are the project's to edit afterwards.
56
+ * `removedProjectFiles` lists project-relative paths of files earlier SDK versions
56
57
  * generated that must no longer exist. As in the generated application bundle these buckets flow
57
58
  * into, they express that intent without implementing the write behavior themselves.
58
59
  */
59
60
  export interface GeneratedProjectScaffolding {
61
+ readonly phoenixFiles: readonly GeneratedApplicationFile[];
60
62
  readonly generatedProjectFiles: readonly GeneratedApplicationFile[];
61
63
  readonly initialProjectFiles: readonly GeneratedApplicationFile[];
62
- readonly prettierFiles: readonly GeneratedApplicationFile[];
63
64
  readonly removedProjectFiles: readonly string[];
64
65
  }
65
66
  export declare const generateProjectScaffolding: (options: GenerateProjectScaffoldingOptions) => GeneratedProjectScaffolding;
@@ -1,6 +1,6 @@
1
- import{GeneratedApplicationFile as e}from"../../core/index.js";import{followsCanaryBuilds as t,generateApplicationSpecEslintConfig as n,generateApplicationSpecFavicon as r,generateApplicationSpecGitignore as o,generateApplicationSpecNvmrc as i,generateApplicationSpecPackageJson as a,generateApplicationSpecPrettierConfig as c,generateApplicationSpecRobotsTxt as s,generateApplicationSpecTsconfig as l,generateLinguiRcFile as p,generatePhoenixCliSkill as f,generatePhoenixCreateConfiguratorSkill as m,generatePhoenixCreateConfiguratorSkillReferences as d,generatePhoenixFeedbackSkill as g,generatePhoenixReviewSkill as u,generatePhoenixSkill as x,generatePhoenixVariantsSkill as h,stripSdkMarkerContent as j}from"./templates/index.js";export const agentSkillRoots=[".claude/skills",".agents/skills"];let v=[{path:"CLAUDE.md",generatedPrefix:""},{path:".cursor/rules/phoenix.mdc",generatedPrefix:`---
1
+ import{GeneratedApplicationFile as e}from"../../core/index.js";import{followsCanaryBuilds as r,generateApplicationSpecEslintConfig as t,generateApplicationSpecFavicon as i,generateApplicationSpecGitignore as n,generateApplicationSpecPrettierConfig as a,generateApplicationSpecRobotsTxt as o,generateApplicationSpecRootTsconfig as l,generateApplicationSpecTsconfig as s,generateLinguiRcFile as c,generatePhoenixCliSkill as f,generatePhoenixCreateConfiguratorSkill as p,generatePhoenixCreateConfiguratorSkillReferences as d,generatePhoenixFeedbackSkill as m,generatePhoenixReviewSkill as g,generatePhoenixSkill as h,generatePhoenixVariantsSkill as u,stripSdkMarkerContent as j}from"./templates/index.js";export const agentSkillRoots=[".claude/skills",".agents/skills"];let x=[{path:"CLAUDE.md",generatedPrefix:""},{path:".cursor/rules/phoenix.mdc",generatedPrefix:`---
2
2
  description: Phoenix SDK project rules
3
3
  globs:
4
4
  alwaysApply: true
5
5
  ---
6
- `}],k=[".claude/commands/review.md",".cursor/commands/review.md"],b=(e,t)=>e.projectFiles.find(e=>e.file.name===t)?.file.content;export const generateProjectScaffolding=F=>{let P,{applicationSpec:w,categorizedFiles:C,sdkVersion:L,projectInGitRepository:S=!0,cliUseWorkspace:$,name:y,description:M}=F,A=b(C,"package.json"),D=b(C,".gitignore"),K=void 0!==$?$:w.appMetadata.workspace,R=(t=>{let n=[],r=[...k];for(let{path:o,generatedPrefix:i}of v){let a=b(t,o);if(void 0===a)continue;let c=j(a,i);void 0===c?r.push(o):c!==a&&n.push(e(o,c,{format:!1}))}return{strippedFiles:n,removedFiles:r}})(C);return{generatedProjectFiles:[e("package.json",a({sdkVersion:L,useWorkspace:K,useClerk:w.appMetadata.useClerk??!1,name:y,description:M,existingContent:A})),e(".nvmrc",i(),{format:!1}),e(".linguirc",p(w.configurator.ui.availableLocales),{format:!1}),e("tsconfig.json",l()),e("eslint.config.js",n()),...S?[e(".gitignore",o(D))]:[],...(P=[{name:"phoenix",content:x({checkLatestCanary:t({useWorkspace:K,sdkVersion:L})}),references:[]},{name:"phoenix-cli",content:f(),references:[]},{name:"phoenix-create-configurator",content:m(),references:d()},{name:"phoenix-feedback",content:g(),references:[]},{name:"phoenix-review",content:u(),references:[]},{name:"phoenix-variants",content:h(),references:[]}],agentSkillRoots.flatMap(t=>P.flatMap(n=>[e(`${t}/${n.name}/SKILL.md`,n.content),...n.references.map(r=>e(`${t}/${n.name}/${r.path}`,r.content))]))),...R.strippedFiles],initialProjectFiles:[e("public/favicon.ico",r(),{binary:!0}),e("public/robots.txt",s(),{format:!1})],prettierFiles:[e("prettier.config.js",c())],removedProjectFiles:R.removedFiles}};
6
+ `}],P=[".claude/commands/review.md",".cursor/commands/review.md"],v=(e,r)=>e.projectFiles.find(e=>e.file.name===r)?.file.content;export const generateProjectScaffolding=F=>{let E,G,{applicationSpec:b,categorizedFiles:k,sdkVersion:w,projectInGitRepository:L=!0,cliUseWorkspace:S}=F,$=v(k,".gitignore"),y=void 0!==S?S:b.appMetadata.workspace,C=(r=>{let t=[],i=[...P];for(let{path:n,generatedPrefix:a}of x){let o=v(r,n);if(void 0===o)continue;let l=j(o,a);void 0===l?i.push(n):l!==o&&t.push(e(n,l,{format:!1}))}return{strippedFiles:t,removedFiles:i}})(k),M={generatedProjectFiles:(E=[{file:e("tsconfig.json",l()),hasEarlierGenerated:k.hasEarlierGeneratedTsconfig},{file:e("eslint.config.js",t()),hasEarlierGenerated:k.hasEarlierGeneratedEslintConfig},{file:e("prettier.config.js",a()),hasEarlierGenerated:k.hasEarlierGeneratedPrettierConfig}]).filter(e=>e.hasEarlierGenerated).map(e=>e.file),initialProjectFiles:E.filter(e=>!e.hasEarlierGenerated).map(e=>e.file)};return{phoenixFiles:[e("tsconfig.json",s()),e(".linguirc",c(b.configurator.ui.availableLocales),{format:!1})],generatedProjectFiles:[...M.generatedProjectFiles,...L?[e(".gitignore",n($))]:[],...(G=[{name:"phoenix",content:h({checkLatestCanary:r({useWorkspace:y,sdkVersion:w})}),references:[]},{name:"phoenix-cli",content:f(),references:[]},{name:"phoenix-create-configurator",content:p(),references:d()},{name:"phoenix-feedback",content:m(),references:[]},{name:"phoenix-review",content:g(),references:[]},{name:"phoenix-variants",content:u(),references:[]}],agentSkillRoots.flatMap(r=>G.flatMap(t=>[e(`${r}/${t.name}/SKILL.md`,t.content),...t.references.map(i=>e(`${r}/${t.name}/${i.path}`,i.content))]))),...C.strippedFiles],initialProjectFiles:[...M.initialProjectFiles,e("public/favicon.ico",i(),{binary:!0}),e("public/robots.txt",o(),{format:!1})],removedProjectFiles:C.removedFiles}};
@@ -1 +1 @@
1
- import{GeneratedApplicationFile as e,isTextFile as t}from"../../core/index.js";import{generateDomainRuntimeFiles as i,modulePhxBindingStrategy as r}from"./domain-runtime-files.js";import{generateApplicationSpecStoryDevDeclaration as o,generateApplicationSpecStoryPhxModule as a,generateApplicationSpecStoryRawProjectFiles as n,generateApplicationSpecStoryWrapper as s,generateLinguiRcFile as l}from"./templates/index.js";let p=".phoenix";export const getStoryTextFiles=e=>{let i=e.files.find(e=>"binary"===e.kind);if(i)throw Error(`Cannot build application-spec story: "${i.name}" is binary. Stories inline text project files only; remove the binary asset or demonstrate this project in a demo instead.`);return e.files.filter(t)};export const generateApplicationSpecStoryFiles=t=>{let{application:c,phxDefinitions:m,rawProjectFiles:f,storyFolderName:d,storyName:u}=t,y=getStoryTextFiles(f);return[...i({applicationSpec:c.applicationSpec,categorizedFiles:c.categorizedFiles,phxDefinitions:m,includeDefaultEnvs:!1},r).map(t=>e(`${p}/${t.path}`,t.content,{binary:t.binary,format:t.format})),e(".linguirc",l([...c.applicationSpec.configurator.ui.availableLocales]),{format:!1}),e(`${p}/phx.ts`,a()),e(`${p}/raw-project-files.ts`,n(y,f.envs)),e(`${p}/${u}.tsx`,s(d,c.rawMockTemplates.templates)),e(`${p}/story-dev-virtual-module.d.ts`,o(d))]};
1
+ import{GeneratedApplicationFile as e,isTextFile as t}from"../../core/index.js";import{generateDomainRuntimeFiles as i,modulePhxBindingStrategy as r}from"./domain-runtime-files.js";import{generateApplicationSpecStoryDevDeclaration as o,generateApplicationSpecStoryPhxModule as a,generateApplicationSpecStoryRawProjectFiles as n,generateApplicationSpecStoryWrapper as s,generateLinguiRcFile as l}from"./templates/index.js";let p=".phoenix";export const getStoryTextFiles=e=>{let i=e.files.find(e=>"binary"===e.kind);if(i)throw Error(`Cannot build application-spec story: "${i.name}" is binary. Stories inline text project files only; remove the binary asset or demonstrate this project in a demo instead.`);return e.files.filter(t)};export const generateApplicationSpecStoryFiles=t=>{let{application:c,phxDefinitions:m,rawProjectFiles:f,storyFolderName:d,storyName:u}=t,y=getStoryTextFiles(f);return[...i({applicationSpec:c.applicationSpec,categorizedFiles:c.categorizedFiles,phxDefinitions:m,includeDefaultEnvs:!1},r).map(t=>e(`${p}/${t.path}`,t.content,{binary:t.binary,format:t.format})),e(".linguirc",l([...c.applicationSpec.configurator.ui.availableLocales]),{format:!1}),e(`${p}/phx.ts`,a(c.applicationSpec)),e(`${p}/raw-project-files.ts`,n(y,f.envs)),e(`${p}/${u}.tsx`,s(d,c.rawMockTemplates.templates)),e(`${p}/story-dev-virtual-module.d.ts`,o(d))]};
@@ -1,4 +1,6 @@
1
1
  import{autoHeader as n}from"../common/file-headers.js";export const generateApplicationSpecAdminConfig=()=>`${n("admin-config.ts","Admin configurator config — builds admin interface and wires admin components/elements.")}
2
+ import { defaultAdminElements } from '@salsita-ai/sdk/admin'
3
+
2
4
  import { configuratorConfig } from './configurator-config.js'
3
5
  import { adminInterface } from './admin-globals.js'
4
6
  import { customAdminComponentOptics } from './admin-domain-code.js'
@@ -9,5 +11,6 @@ export const adminConfig = configuratorConfig
9
11
  .withInterface(adminInterface)
10
12
  .withAdminComponentOptics(customAdminComponentOptics)
11
13
  .withAdminComponentOptics(customFrontendAdminComponentOptics)
14
+ .withDefaultElements(defaultAdminElements)
12
15
  .withElements([...customElements, ...customAdminElements])
13
16
  `;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Writes a property name taken from the YAML spec (a key of a JSON schema's `properties`) as the
3
+ * key of a generated TypeScript type member. An ASCII identifier stays bare, so generated code for
4
+ * such names reads as before; any other name (`my-key`, `Children's`, `1st`, `with space`, `größe`)
5
+ * becomes a string literal, which TypeScript accepts for every name.
6
+ */
7
+ export declare const formatPropertyKey: (key: string) => string;
@@ -0,0 +1 @@
1
+ let t=/^[A-Za-z_$][\w$]*$/;export const formatPropertyKey=e=>t.test(e)?e:JSON.stringify(e);
@@ -1,3 +1,3 @@
1
- import{COMMON_SHORT_PREFIX as e,INTERNAL_REF_PATTERN as r,extractPhxDefName as n}from"../../../../core/index.js";let t=(e,r,n)=>{let t=e.importModuleOverrides?.[n]??r;e.typeOnlyImports?e.imports?.addTypeImport(t,n):e.imports?.addImport(t,n)},i={string:"string",number:"number",integer:"number",boolean:"boolean",null:"null",object:"Record<string, unknown>",array:"readonly unknown[]"},o=e=>null===e?"null":"string"==typeof e?`'${e}'`:"number"==typeof e||"boolean"==typeof e?String(e):"unknown",a=(e,r)=>{if("object"==typeof e.additionalProperties){let n=schemaToTypeString(e.additionalProperties,r);return`Readonly<Record<string, ${n}>>`}if(!e.properties)return"Record<string, unknown>";let n=new Set(e.required??[]),t=Object.entries(e.properties);if(0===t.length)return"Record<string, never>";let i=t.map(([e,t])=>{let i=schemaToTypeString(t,r),o=n.has(e)?"":"?";return` readonly ${e}${o}: ${i}`});return`{
2
- ${i.join("\n")}
3
- }`},p=(e,r)=>{let{items:n}=e;if(Array.isArray(n)){let e=n.map(e=>schemaToTypeString(e,r)).join(", ");return`readonly [${e}]`}let t=schemaToTypeString(n,r);return t.includes(" | ")||t.includes(" & ")?`readonly (${t})[]`:`readonly ${t}[]`};export const schemaToTypeString=(l,m)=>{if(l.tsType){if(m.imports&&l.import)for(let e of l.import)t(m,e.module,e.member);return l.tsType}if(l.$ref){let e=n(l.$ref);if(void 0!==e){var s;let r,n,i=m.phxDefinitions[e];if(m.imports&&i?.import)for(let e of i.import)t(m,e.module,e.member);return s=l.references,r=m.phxDefinitions[e],"DomainEntityId"===(n=r?.tsType)?s?`${s}['id']`:"DomainEntityId<string>":"DomainEntity"===n?s??"DomainEntity<string>":"$DomainEntity"===n?s?`$${s}`:"$DomainEntity<string>":n||"unknown"}}if(l.$ref){if(l.$ref.startsWith(e))return l.$ref.slice(e.length);let n=r.exec(l.$ref);return n?n[2]??"unknown":"unknown"}if(l.enum)return l.enum.map(o).join(" | ");if(l.anyOf)return l.anyOf.map(e=>schemaToTypeString(e,m)).join(" | ");if(l.oneOf)return l.oneOf.map(e=>schemaToTypeString(e,m)).join(" | ");if(l.allOf)return l.allOf.map(e=>{let r=schemaToTypeString(e,m);return r.includes("|")?`(${r})`:r}).join(" & ");if("array"===l.type&&l.items)return p(l,m);if("object"===l.type)return a(l,m);if("string"==typeof l.type)return i[l.type]??"unknown";if(Array.isArray(l.type)){let e;return e=l.type,e.map(e=>"array"===e&&l.items?p(l,m):"object"===e?a(l,m):i[e]??"unknown").join(" | ")}return"unknown"};
1
+ import{COMMON_SHORT_PREFIX as e,INTERNAL_REF_PATTERN as r,extractPhxDefName as n}from"../../../../core/index.js";import{formatPropertyKey as t}from"./format-property-key.js";let i=(e,r,n)=>{let t=e.importModuleOverrides?.[n]??r;e.typeOnlyImports?e.imports?.addTypeImport(t,n):e.imports?.addImport(t,n)},o={string:"string",number:"number",integer:"number",boolean:"boolean",null:"null",object:"Record<string, unknown>",array:"readonly unknown[]"},l=e=>null===e?"null":"string"==typeof e?`'${e.replaceAll("\\","\\\\").replaceAll("'","\\'").replaceAll("\n","\\n").replaceAll("\r","\\r")}'`:"number"==typeof e||"boolean"==typeof e?String(e):"unknown",p=(e,r)=>{if("object"==typeof e.additionalProperties){let n=schemaToTypeString(e.additionalProperties,r);return`Readonly<Record<string, ${n}>>`}if(!e.properties)return"Record<string, unknown>";let n=new Set(e.required??[]),i=Object.entries(e.properties);if(0===i.length)return"Record<string, never>";let o=i.map(([e,i])=>{let o=schemaToTypeString(i,r),l=n.has(e)?"":"?";return` readonly ${t(e)}${l}: ${o}`});return`{
2
+ ${o.join("\n")}
3
+ }`},a=(e,r)=>{let{items:n}=e;if(Array.isArray(n)){let e=n.map(e=>schemaToTypeString(e,r)).join(", ");return`readonly [${e}]`}let t=schemaToTypeString(n,r);return t.includes(" | ")||t.includes(" & ")?`readonly (${t})[]`:`readonly ${t}[]`};export const schemaToTypeString=(t,m)=>{if(t.tsType){if(m.imports&&t.import)for(let e of t.import)i(m,e.module,e.member);return t.tsType}if(t.$ref){let e=n(t.$ref);if(void 0!==e){var s;let r,n,o=m.phxDefinitions[e];if(m.imports&&o?.import)for(let e of o.import)i(m,e.module,e.member);return s=t.references,r=m.phxDefinitions[e],"DomainEntityId"===(n=r?.tsType)?s?`${s}['id']`:"DomainEntityId<string>":"DomainEntity"===n?s??"DomainEntity<string>":"$DomainEntity"===n?s?`$${s}`:"$DomainEntity<string>":n||"unknown"}}if(t.$ref){if(t.$ref.startsWith(e))return t.$ref.slice(e.length);let n=r.exec(t.$ref);return n?n[2]??"unknown":"unknown"}if(t.enum)return t.enum.map(l).join(" | ");if(t.anyOf)return t.anyOf.map(e=>schemaToTypeString(e,m)).join(" | ");if(t.oneOf)return t.oneOf.map(e=>schemaToTypeString(e,m)).join(" | ");if(t.allOf)return t.allOf.map(e=>{let r=schemaToTypeString(e,m);return r.includes("|")?`(${r})`:r}).join(" & ");if("array"===t.type&&t.items)return a(t,m);if("object"===t.type)return p(t,m);if("string"==typeof t.type)return o[t.type]??"unknown";if(Array.isArray(t.type)){let e;return e=t.type,e.map(e=>"array"===e&&t.items?a(t,m):"object"===e?p(t,m):o[e]??"unknown").join(" | ")}return"unknown"};
@@ -0,0 +1,35 @@
1
+ import type { Expressions, ModelVersion } from '../../../../../parse-application-files/index.js';
2
+ /**
3
+ * The types one generated domain closes its factories and reflections with.
4
+ *
5
+ * `domain-spec.ts` writes them where it builds the domain's values, and the `phx` declarations
6
+ * (`globals.d.ts`, a story's `phx.ts`) write them where they declare those values' types, so both
7
+ * name the same types.
8
+ */
9
+ export interface DomainFactoryTypes {
10
+ /** Entities, root entities, `$Map`, the three data types and the aliases, in the factories' order. */
11
+ readonly typeArguments: string;
12
+ /** What the domain runtime adds to the expression context. */
13
+ readonly contextExtension: string;
14
+ /** The systems the domain runtime hands to an action. */
15
+ readonly systems: string;
16
+ /** The type of the domain's `model`: one reflection per entity, alias, common type and shape. */
17
+ readonly modelType: string;
18
+ /** The type of the domain's `enhancedModel`: one enhanced reflection per entity and alias. */
19
+ readonly enhancedModelType: string;
20
+ /** The enhanced reflection type of one entity or alias, with the names of its constant expressions. */
21
+ readonly enhancedReflectionType: (reflectionClass: EnhancedReflectionClass, name: string) => string;
22
+ }
23
+ /** Enhanced reflection classes that receive module-level constants through their constructor. */
24
+ export type EnhancedReflectionClass = '$DomainEntityReflection' | 'EnhancedAliasReflection';
25
+ interface DomainFactoryTypesSpec {
26
+ readonly latestModel: ModelVersion;
27
+ readonly expressions: Expressions;
28
+ }
29
+ /**
30
+ * Builds the type strings of a domain.
31
+ *
32
+ * @param typePrefix The namespace the domain's types live in (`Admin` for the admin domain), or `''`.
33
+ */
34
+ export declare const getDomainFactoryTypes: (domainSpec: DomainFactoryTypesSpec, typePrefix: string) => DomainFactoryTypes;
35
+ export {};
@@ -0,0 +1,5 @@
1
+ export const getDomainFactoryTypes=(e,t)=>{let n=t?`${t}.`:"",{entityTypes:a}=e.latestModel,o=[...e.latestModel.aliases].map(([e])=>String(e)),i=[...e.latestModel.commonTypes],$=[...e.latestModel.shapes].map(([e])=>`${e}Shape`),s=new Map([...e.expressions.constants].map(([e,t])=>[String(e),t])),l=(e,t)=>{let a=[...s.get(t)?.keys()??[]],o=a.length>0?`, ${a.map(e=>`'${e}'`).join(" | ")}`:"";return`${e}<${n}$${t}${o}>`},m=[...a.map(e=>` readonly ${String(e)}: DomainEntityReflection<${n}${String(e)}>`),...o.map(e=>` readonly ${e}: RawAliasReflection<${n}${e}>`),...i.map(([e,t])=>{let a,o=(a=t.schema.enum,a?.length&&a.every(e=>"string"==typeof e))?"EnumLike":"SchemaReflection";return` readonly ${e}: ${o}<${n}${e}>`}),...$.map(e=>` readonly ${e}: SchemaReflection<unknown>`)].join("\n"),r=[...a.map(e=>` readonly $${String(e)}: ${l("$DomainEntityReflection",String(e))}`),...o.map(e=>` readonly $${e}: ${l("EnhancedAliasReflection",e)}`)].join("\n");return{typeArguments:`${n}AnyDomainEntity, ${n}RootEntity, ${n}$Map, PublishedData, SessionData, FrontendData, ${n}Aliases`,contextExtension:`RuntimeExpressionContext<${n}AnyDomainEntity>`,systems:`DomainContextSystems<${n}AnyDomainEntity, ${n}RootEntity, ${n}$Map, NavigationState, ViewState, ToolState, ExportState>`,modelType:`{
2
+ ${m}
3
+ }`,enhancedModelType:`{
4
+ ${r}
5
+ }`,enhancedReflectionType:l}};
@@ -0,0 +1 @@
1
+ export { getDomainFactoryTypes, type DomainFactoryTypes, type EnhancedReflectionClass } from './domain-factory-types.js';
@@ -0,0 +1 @@
1
+ export{getDomainFactoryTypes}from"./domain-factory-types.js";
@@ -1,5 +1,5 @@
1
1
  import { type ComponentEntry } from '../../../../parse-application-files/spec/index.js';
2
- import type { CodeImports } from '../../common/index.js';
2
+ import { type CodeImports } from '../../common/index.js';
3
3
  /**
4
4
  * Generates the `componentOptics` array code from unified ComponentEntry[].
5
5
  * Walks all entries and dispatches on implementation.kind.
@@ -1,10 +1,10 @@
1
- import{match as e}from"ts-pattern";import{isSdkCodeRef as t}from"../../../../core/index.js";import{generateMemoEvalPlanCode as i}from"./generate-memo-eval-plan-code.js";let a="@salsita-ai/sdk/domain",r={createAdminCustomPageRead:a,createAdminCustomSidebarRead:a,createAdminDataPageRead:a,createAdminDataTableSidebarRead:a,createAdminNavigationPanelRead:a,createAdminPresetCategoryPageRead:a,createAdminPresetCategorySelectionRead:a,createAdminPresetCategorySelectionWrite:a,createAdminPresetCategorySidebarRead:a,createAdminPresetListPageRead:a,createAdminPresetSidebarRead:a,createAdminRecipeCollectionPageRead:a,createAdminRecipeSidebarRead:a},n=(e,i)=>{i.addImport(r[e.sdkFunction]??a,e.sdkFunction);let n=e.params.map(e=>t(e)?e.$codeRef:"string"==typeof e?`'${e}'`:JSON.stringify(e));return`${e.sdkFunction}(${n.join(", ")})`},d=e=>0===e.length?"":e.map(e=>{if("root"===e.kind)return`.withFilter(self => (self.${e.target}))`;let t=Object.entries(e).filter(([e,t])=>"kind"!==e&&void 0!==t).map(([e,t])=>`${e}: ${"dynamic"===t.kind?`self => (self.${t.target})`:"eval"===t.kind?`self => (${t.code})`:JSON.stringify(t.value)}`);return`.withGradualFilter({ ${t.join(", ")} })`}).join(""),o=(t,i)=>e(t).with({kind:"primitive"},({assertFn:e})=>`typeof ${i} === '${"assertNumber"===e?"number":"assertBoolean"===e?"boolean":"string"}'`).with({kind:"declaredType"},({typeName:e})=>`${e}.is(${i})`).with({kind:"declaredTypeId"},({referencedType:e})=>`${e}.isId(${i})`).with({kind:"literal"},({value:e})=>`${i} === ${JSON.stringify(e)}`).with({kind:"anyOf"},({assertions:e})=>e.map(e=>`(${o(e,i)})`).join(" || ")).with({kind:"none"},()=>"true").exhaustive(),s=(t,i)=>{if(0===t.length)return"() => ({})";let r=t.map(t=>e(t.assertion).with({kind:"primitive"},({assertFn:e})=>(i.addImport(a,e),`${e}(state.${t.propKey})`)).with({kind:"declaredType"},({typeName:e})=>`${e}.assert(state.${t.propKey})`).with({kind:"declaredTypeId"},({referencedType:e})=>`${e}.assertId(state.${t.propKey})`).with({kind:"literal"},e=>{let i=o(e,`state.${t.propKey}`);return`if (!(${i})) throw new Error('Expected ${t.propKey} to match its declared schema')`}).with({kind:"anyOf"},e=>{let i=o(e,`state.${t.propKey}`);return`if (!(${i})) throw new Error('Expected ${t.propKey} to match one of its declared schemas')`}).with({kind:"none"},()=>void 0).exhaustive()).filter(e=>void 0!==e),n=t.map(e=>`${JSON.stringify(e.entityField)}: state.${e.propKey}`).join(", ");return 0===r.length?`(state) => ({ ${n} })`:`(state) => { ${r.join("; ")}; return { ${n} } }`},l=" ";export const generateComponentOpticsCode=(t,r)=>{let o=[];for(let m of t){let t=m.isAlias?"withAlias":"withEntity",p=`${m.componentName}Component`;r.addImport(a,p);let $=` attachComponent.withComponent(${p}, '${m.instanceName}', true).${t}('${m.typeOrAlias}')`;e(m.implementation).with({kind:"userBound"},({implementation:e,filters:t,plan:a})=>{let n=d(t.items),m=`${$}${n}`,p=s("composite"===e.kind?e.writeBindings:[],r),c=i(a,r).replaceAll("\n",`
2
- ${l}`);o.push(`${m}.attach(
1
+ import{match as e}from"ts-pattern";import{isSdkCodeRef as t}from"../../../../core/index.js";import{toSingleQuotedString as i}from"../../common/index.js";import{generateMemoEvalPlanCode as a}from"./generate-memo-eval-plan-code.js";let r="@salsita-ai/sdk/domain",n={createAdminCustomPageRead:r,createAdminCustomSidebarRead:r,createAdminDataPageRead:r,createAdminDataTableSidebarRead:r,createAdminNavigationPanelRead:r,createAdminPresetCategoryPageRead:r,createAdminPresetCategorySelectionRead:r,createAdminPresetCategorySelectionWrite:r,createAdminPresetCategorySidebarRead:r,createAdminPresetListPageRead:r,createAdminPresetSidebarRead:r,createAdminRecipeCollectionPageRead:r,createAdminRecipeSidebarRead:r},d=(e,a)=>{a.addImport(n[e.sdkFunction]??r,e.sdkFunction);let d=e.params.map(e=>t(e)?e.$codeRef:"string"==typeof e?i(e):JSON.stringify(e));return`${e.sdkFunction}(${d.join(", ")})`},o=e=>0===e.length?"":e.map(e=>{if("root"===e.kind)return`.withFilter(self => (self.${e.target}))`;let t=Object.entries(e).filter(([e,t])=>"kind"!==e&&void 0!==t).map(([e,t])=>`${e}: ${"dynamic"===t.kind?`self => (self.${t.target})`:"eval"===t.kind?`self => (${t.code})`:JSON.stringify(t.value)}`);return`.withGradualFilter({ ${t.join(", ")} })`}).join(""),s=(t,i)=>e(t).with({kind:"primitive"},({assertFn:e})=>`typeof ${i} === '${"assertNumber"===e?"number":"assertBoolean"===e?"boolean":"string"}'`).with({kind:"declaredType"},({typeName:e})=>`${e}.is(${i})`).with({kind:"declaredTypeId"},({referencedType:e})=>`${e}.isId(${i})`).with({kind:"literal"},({value:e})=>`${i} === ${JSON.stringify(e)}`).with({kind:"anyOf"},({assertions:e})=>e.map(e=>`(${s(e,i)})`).join(" || ")).with({kind:"none"},()=>"true").exhaustive(),m=(t,i)=>{if(0===t.length)return"() => ({})";let a=t.map(t=>e(t.assertion).with({kind:"primitive"},({assertFn:e})=>(i.addImport(r,e),`${e}(state.${t.propKey})`)).with({kind:"declaredType"},({typeName:e})=>`${e}.assert(state.${t.propKey})`).with({kind:"declaredTypeId"},({referencedType:e})=>`${e}.assertId(state.${t.propKey})`).with({kind:"literal"},e=>{let i=s(e,`state.${t.propKey}`);return`if (!(${i})) throw new Error('Expected ${t.propKey} to match its declared schema')`}).with({kind:"anyOf"},e=>{let i=s(e,`state.${t.propKey}`);return`if (!(${i})) throw new Error('Expected ${t.propKey} to match one of its declared schemas')`}).with({kind:"none"},()=>void 0).exhaustive()).filter(e=>void 0!==e),n=t.map(e=>`${JSON.stringify(e.entityField)}: state.${e.propKey}`).join(", ");return 0===a.length?`(state) => ({ ${n} })`:`(state) => { ${a.join("; ")}; return { ${n} } }`},l=" ";export const generateComponentOpticsCode=(t,i)=>{let n=[];for(let s of t){let t=s.isAlias?"withAlias":"withEntity",p=`${s.componentName}Component`;i.addImport(r,p);let $=` attachComponent.withComponent(${p}, '${s.instanceName}', true).${t}('${s.typeOrAlias}')`;e(s.implementation).with({kind:"userBound"},({implementation:e,filters:t,plan:r})=>{let d=o(t.items),s=`${$}${d}`,p=m("composite"===e.kind?e.writeBindings:[],i),c=a(r,i).replaceAll("\n",`
2
+ ${l}`);n.push(`${s}.attach(
3
3
  ${l}${c},
4
4
  ${l}${p}
5
- )`)}).with({kind:"sdk"},({readFactory:e,writeFactory:t})=>{let i=d(m.implementation.filters.items),a=`${$}${i}`,s=n(e,r),l=n(t,r);o.push(`${a}.attach(
6
- ${s},
5
+ )`)}).with({kind:"sdk"},({readFactory:e,writeFactory:t})=>{let a=o(s.implementation.filters.items),r=`${$}${a}`,m=d(e,i),l=d(t,i);n.push(`${r}.attach(
6
+ ${m},
7
7
  ${l}
8
- )`)}).exhaustive()}return 0===o.length?"[] as const":`[
9
- ${o.join(",\n")}
8
+ )`)}).exhaustive()}return 0===n.length?"[] as const":`[
9
+ ${n.join(",\n")}
10
10
  ] as const`};
@@ -1,87 +1,83 @@
1
- import{skipApplicationTypeImports as e}from"../../common/index.js";import{generateComponentOpticsCode as n}from"./generate-component-optics.js";import{generateDefaultsBlock as t}from"./generate-defaults.js";import{generateInvariantsBlock as a}from"./generate-invariants.js";import{generateRelationExpressionsCode as o}from"./generate-relation-expressions.js";import{generateStaticValueCode as i}from"./generate-static-value-code.js";import{generateValueExpressionsCode as s}from"./generate-value-expressions.js";let r="@salsita-ai/sdk/domain",m=(e,n,t)=>{let a=[],o=[];for(let i of e.modelVersion.entitySchemas){let e=JSON.stringify(i.shapeSchema,null,2);a.push(`${t}const ${i.entityType} = new DomainEntityReflection<${n}${i.entityType}>('${i.entityType}', [${e}])`),o.push(String(i.entityType))}return{entityDecls:a.join("\n"),entityNames:o}};export const generateDomainBlock=l=>{let{domainSpec:$,invariants:p,actions:c,typePrefix:d,versionNsPrefix:y,isAdmin:u,modelVersionsExportName:h,relationExpressionsExportName:S,componentOpticsExportName:f,valueExpressionsExportName:D,createRecipeExportName:E,imports:R,registerApplicationTypeImports:A=e}=l;R.addImport(r,"$DomainEntityReflection"),R.addImport(r,"DomainBuilder"),R.addImport(r,"DomainComponentOpticBuilder"),R.addImport(r,"DomainEntityReflection"),R.addImport(r,"EnhancedAliasReflection"),R.addImport(r,"RawAliasReflection"),R.addImport(r,"SchemaReflection"),R.addImport(r,"createCustomExpressionFactory"),R.addImport(r,"createCustomInvariantFactory"),u&&(R.addImport(r,"commonAdminCustomExpressions"),R.addImport(r,"commonAdminViolationExpressions"),R.addImport(r,"createMapPublishedRevisionDataHandlerFactory"),R.addImport(r,"createMapPublishedChunkedDataHandlerFactory"),R.addImport(r,"createDataRowValidatorHandler"),R.addImport(r,"createSheetValidatorHandler")),u||R.addImport(r,"createAssistantSetupHandlerFactory"),R.addTypeImport(r,"RuntimeExpressionContext"),R.addTypeImport(r,"SchemaOfObject"),c&&(R.addImport(r,"createActionFactory"),R.addTypeImport(r,"ActionDefinition"),R.addTypeImport(r,"DomainContextSystems"));let{entityTypes:g,entitySchemas:x}=$.latestModel,v=[...$.latestModel.aliases],j=v.map(([e])=>String(e)),C=j.includes("RootEntity")?"RootEntity":"AnyDomainEntity",{resolvedVersions:I}=$,M=I.latestVersion,H=d?`${d}.`:"",w=new Map([...$.expressions.constants].map(([e,n])=>[String(e),n])),F=(e,n)=>{let t=[...w.get(n)?.keys()??[]],a=t.length>0?`, ${t.map(e=>`'${e}'`).join(" | ")}`:"";return`${e}<${H}$${n}${a}>`},P=e=>{let n=w.get(e);if(!n)return"{}";let t=[...n].map(([e,n])=>{let t=i(n,R).replaceAll("\n","\n ");return` ${e}: ${t},`});return`{
1
+ import{skipApplicationTypeImports as e}from"../../common/index.js";import{getDomainFactoryTypes as n}from"./factory-types/index.js";import{generateComponentOpticsCode as t}from"./generate-component-optics.js";import{generateDefaultsBlock as a}from"./generate-defaults.js";import{generateInvariantsBlock as o}from"./generate-invariants.js";import{generateRelationExpressionsCode as i}from"./generate-relation-expressions.js";import{generateStaticValueCode as s}from"./generate-static-value-code.js";import{generateValueExpressionsCode as r}from"./generate-value-expressions.js";let m="@salsita-ai/sdk/domain",l=(e,n,t)=>{let a=[],o=[];for(let i of e.modelVersion.entitySchemas){let e=JSON.stringify(i.shapeSchema,null,2);a.push(`${t}const ${i.entityType} = new DomainEntityReflection<${n}${i.entityType}>('${i.entityType}', [${e}])`),o.push(String(i.entityType))}return{entityDecls:a.join("\n"),entityNames:o}};export const generateDomainBlock=p=>{let{domainSpec:c,invariants:$,actions:d,typePrefix:u,versionNsPrefix:y,isAdmin:h,modelVersionsExportName:f,relationExpressionsExportName:D,componentOpticsExportName:S,valueExpressionsExportName:E,createRecipeExportName:A,imports:R,registerApplicationTypeImports:x=e}=p;R.addImport(m,"$DomainEntityReflection"),R.addImport(m,"DomainBuilder"),R.addImport(m,"DomainComponentOpticBuilder"),R.addImport(m,"DomainEntityReflection"),R.addImport(m,"EnhancedAliasReflection"),R.addImport(m,"RawAliasReflection"),R.addImport(m,"SchemaReflection"),R.addImport(m,"createCustomExpressionFactory"),R.addImport(m,"createCustomInvariantFactory"),h&&(R.addImport(m,"commonAdminCustomExpressions"),R.addImport(m,"commonAdminViolationExpressions"),R.addImport(m,"createMapPublishedRevisionDataHandlerFactory"),R.addImport(m,"createMapPublishedChunkedDataHandlerFactory"),R.addImport(m,"createDataRowValidatorHandler"),R.addImport(m,"createSheetValidatorHandler")),h||R.addImport(m,"createAssistantSetupHandlerFactory"),R.addTypeImport(m,"RuntimeExpressionContext"),R.addTypeImport(m,"SchemaOfObject"),d&&(R.addImport(m,"createActionFactory"),R.addTypeImport(m,"ActionDefinition"),R.addTypeImport(m,"DomainContextSystems"));let{entityTypes:g,entitySchemas:v}=c.latestModel,I=[...c.latestModel.aliases],j=I.map(([e])=>String(e)),C=j.includes("RootEntity")?"RootEntity":"AnyDomainEntity",{resolvedVersions:M}=c,H=M.latestVersion,F=u?`${u}.`:"",P=new Map([...c.expressions.constants].map(([e,n])=>[String(e),n])),b=n(c,u),{enhancedReflectionType:w}=b,T=e=>{let n=P.get(e);if(!n)return"{}";let t=[...n].map(([e,n])=>{let t=s(n,R).replaceAll("\n","\n ");return` ${e}: ${t},`});return`{
2
2
  ${t.join("\n")}
3
- }`},b=x.map(e=>{let n=JSON.stringify(e.shapeSchema,null,2);return` const ${e.entityType} = new DomainEntityReflection<${H}${e.entityType}>('${e.entityType}', [${n}])`}),k=v.map(([e,n])=>{let t=n.map(String).join(", ");return` const ${e} = new RawAliasReflection<${H}${e}>('${e}', [${t}])`}),T=[...$.latestModel.commonTypes],V=T.map(([e])=>String(e)),O=I.versionedModels.filter(e=>!e.isLatest).map(e=>`${y}${e.version}`);A(R,[...u?["Admin",...O]:[...g.map(String),...j,...V,...g.map(e=>`$${String(e)}`),...j.map(e=>`$${e}`),"Aliases","$Map",...O,...c?["ActionTypes","NavigationState","ViewState","ToolState","ExportState"]:[]],"PublishedData","SessionData","FrontendData",...u?[]:["BackendData"]]);let B=T.map(([e,n])=>{let t=JSON.stringify(n.runtimeSchema,null,2);return n.schema.enum?.length&&n.schema.enum.every(e=>"string"==typeof e)?` const ${e}: EnumLike<${H}${e}> = new EnumReflection('${e}', ${t}) as EnumLike<${H}${e}>`:` const ${e}: SchemaReflection<${H}${e}> = new SchemaReflection('${e}', ${t})`}),N=[...$.latestModel.shapes],J=N.map(([e,n])=>{let t=JSON.stringify(n.runtimeSchema,null,2);return` const ${e}Shape = new SchemaReflection('${e}Shape', ${t})`}),L=N.map(([e])=>`${e}Shape`),_=j.map(e=>` ${e}: ${e}.types,`).join("\n"),z=j.map(e=>` ${e},`).join("\n"),G=V.map(e=>` ${e},`).join("\n"),q=L.map(e=>` ${e},`).join("\n"),K=g.map(e=>` ${e},`).join("\n"),Q=[];for(let[e,n]of $.expressions.expressions)n.size>0&&Q.push(` const ${e}Expressions = ${JSON.stringify([...n.keys()])}`);let U=g.map(e=>{let n=$.expressions.entityExpressions.get(e),t=(n?.shapeGroups??[]).map(e=>`${e}Expressions`),a=t.length>0?t.map(e=>`...${e}`).join(", "):"",o=F("$DomainEntityReflection",String(e));return` const $${e}: ${o} = new ${o}('${e}', [${a}], ${P(String(e))})`}).join("\n"),W=g.map(e=>` ${e}: $${e},`).join("\n"),X=v.map(([e,n])=>{let t=n.map(e=>JSON.stringify(String(e))).join(", "),a=F("EnhancedAliasReflection",String(e));return` const $${e}: ${a} = new ${a}('$${e}', [${t}], ${P(String(e))})`}).join("\n"),Y=[...g.map(String),...j].map(e=>` $${e},`).join("\n"),Z=[],ee=[];for(let e of I.versionedModels)if(e.isLatest)Z.push(` ${e.version}: entities,`),ee.push(` readonly ${e.version}: {
4
- ${g.map(e=>` readonly ${String(e)}: DomainEntityReflection<${H}${String(e)}>`).join("\n")}
5
- }`);else{let n=`${y}${e.version}.`,{entityDecls:t,entityNames:a}=m(e,n," "),o=a.map(e=>` ${e},`).join("\n");Z.push(` ${e.version}: (() => {
3
+ }`},k=v.map(e=>{let n=JSON.stringify(e.shapeSchema,null,2);return` const ${e.entityType} = new DomainEntityReflection<${F}${e.entityType}>('${e.entityType}', [${n}])`}),O=I.map(([e,n])=>{let t=n.map(String).join(", ");return` const ${e} = new RawAliasReflection<${F}${e}>('${e}', [${t}])`}),V=[...c.latestModel.commonTypes],B=V.map(([e])=>String(e)),N=M.versionedModels.filter(e=>!e.isLatest).map(e=>`${y}${e.version}`);x(R,[...h?["Admin",...N]:[...g.map(String),...j,...B,...g.map(e=>`$${String(e)}`),...j.map(e=>`$${e}`),"Aliases","$Map",...N,...d?["ActionTypes","NavigationState","ViewState","ToolState","ExportState"]:[]],"PublishedData","SessionData","FrontendData",...h?[]:["BackendData"]]);let J=V.map(([e,n])=>{let t=JSON.stringify(n.runtimeSchema,null,2);return n.schema.enum?.length&&n.schema.enum.every(e=>"string"==typeof e)?` const ${e}: EnumLike<${F}${e}> = new EnumReflection('${e}', ${t}) as EnumLike<${F}${e}>`:` const ${e}: SchemaReflection<${F}${e}> = new SchemaReflection('${e}', ${t})`}),L=[...c.latestModel.shapes],_=L.map(([e,n])=>{let t=JSON.stringify(n.runtimeSchema,null,2);return` const ${e}Shape = new SchemaReflection('${e}Shape', ${t})`}),z=L.map(([e])=>`${e}Shape`),G=j.map(e=>` ${e}: ${e}.types,`).join("\n"),q=j.map(e=>` ${e},`).join("\n"),K=B.map(e=>` ${e},`).join("\n"),Q=z.map(e=>` ${e},`).join("\n"),U=g.map(e=>` ${e},`).join("\n"),W=[];for(let[e,n]of c.expressions.expressions)n.size>0&&W.push(` const ${e}Expressions = ${JSON.stringify([...n.keys()])}`);let X=g.map(e=>{let n=c.expressions.entityExpressions.get(e),t=(n?.shapeGroups??[]).map(e=>`${e}Expressions`),a=t.length>0?t.map(e=>`...${e}`).join(", "):"",o=w("$DomainEntityReflection",String(e));return` const $${e}: ${o} = new ${o}('${e}', [${a}], ${T(String(e))})`}).join("\n"),Y=g.map(e=>` ${e}: $${e},`).join("\n"),Z=I.map(([e,n])=>{let t=n.map(e=>JSON.stringify(String(e))).join(", "),a=w("EnhancedAliasReflection",String(e));return` const $${e}: ${a} = new ${a}('$${e}', [${t}], ${T(String(e))})`}).join("\n"),ee=[...g.map(String),...j].map(e=>` $${e},`).join("\n"),en=[],et=[];for(let e of M.versionedModels)if(e.isLatest)en.push(` ${e.version}: entities,`),et.push(` readonly ${e.version}: {
4
+ ${g.map(e=>` readonly ${String(e)}: DomainEntityReflection<${F}${String(e)}>`).join("\n")}
5
+ }`);else{let n=`${y}${e.version}.`,{entityDecls:t,entityNames:a}=l(e,n," "),o=a.map(e=>` ${e},`).join("\n");en.push(` ${e.version}: (() => {
6
6
  ${t}
7
7
  return {
8
8
  ${o}
9
9
  } as const
10
- })(),`),ee.push(` readonly ${e.version}: {
10
+ })(),`),et.push(` readonly ${e.version}: {
11
11
  ${a.map(e=>` readonly ${e}: DomainEntityReflection<${n}${e}>`).join("\n")}
12
- }`)}let en=u?"adminDomainBuilder":"domainBuilder",et=u?"attachAdminComponent":"attachComponent",ea=u?"implementAdminCustomExpressions":"implementCustomExpressions",eo=u?"implementCustomAdminInvariants":"implementCustomInvariants",ei=u?"adminAliases":"aliases",es=u?"adminModel":"model",er=u?"adminEnhancedModel":"enhancedModel",em=u?"implementAdminRelation":"implementRelation",el=u?"__adminDomain":"__configuratorDomain",e$="PublishedData, SessionData, FrontendData",ep=`${H}AnyDomainEntity, ${H}RootEntity, ${H}$Map, ${e$}, ${H}Aliases`,ec=`<${ep}>`,ed=`RuntimeExpressionContext<${H}AnyDomainEntity>`,ey=`<${ep}, ${ed}>`,eu=`DomainContextSystems<${H}AnyDomainEntity, ${H}RootEntity, ${H}$Map, NavigationState, ViewState, ToolState, ExportState>`,eh=a(p,ep,ed,R),eS=(e,n)=>e===n?e:`${e}: ${n}`,ef=[...$.expressions.expressions.values()].some(e=>[...e.values()].some(e=>"relation"===e.implementation.kind));ef&&R.addImport(r,"createRelationFactory");let eD=ef?`
13
- const ${em} = createRelationFactory(aliases)
12
+ }`)}let ea=h?"adminDomainBuilder":"domainBuilder",eo=h?"attachAdminComponent":"attachComponent",ei=h?"implementAdminCustomExpressions":"implementCustomExpressions",es=h?"implementCustomAdminInvariants":"implementCustomInvariants",er=h?"adminAliases":"aliases",em=h?"adminModel":"model",el=h?"adminEnhancedModel":"enhancedModel",ep=h?"implementAdminRelation":"implementRelation",ec=h?"__adminDomain":"__configuratorDomain",e$=b.typeArguments,ed=`<${e$}>`,{contextExtension:eu,systems:ey}=b,eh=`<${e$}, ${eu}>`,ef=o($,e$,eu,R),eD=(e,n)=>e===n?e:`${e}: ${n}`,eS=[...c.expressions.expressions.values()].some(e=>[...e.values()].some(e=>"relation"===e.implementation.kind));eS&&R.addImport(m,"createRelationFactory");let eE=eS?`
13
+ const ${ep} = createRelationFactory(aliases)
14
14
 
15
- const relationExpressions = ${o($.expressions,em)}`:"\n const relationExpressions = {} as const",eE=`
16
- const componentOptics = ${n($.components,R)}`,eR=`
17
- const valueExpressions = ${s($.expressions,R,"implementCustomExpressions",u?{PresetCategory:"commonAdminCustomExpressions.PresetCategory"}:{})}`;R.addImport(r,"createRecipeFactory");let eA=t($.defaults,R),eg=[...c?.values()??[]].map(e=>({name:String(e.name),...void 0===e.description?{}:{description:e.description},params:e.paramsSchema})),ex=c?`
15
+ const relationExpressions = ${i(c.expressions,ep)}`:"\n const relationExpressions = {} as const",eA=`
16
+ const componentOptics = ${t(c.components,R)}`,eR=`
17
+ const valueExpressions = ${r(c.expressions,R,"implementCustomExpressions",h?{PresetCategory:"commonAdminCustomExpressions.PresetCategory"}:{})}`;R.addImport(m,"createRecipeFactory");let ex=a(c.defaults,R),eg=[...d?.values()??[]].map(e=>({name:String(e.name),...void 0===e.description?{}:{description:e.description},params:e.paramsSchema})),ev=d?`
18
18
  const actionDefinitions: readonly ActionDefinition[] = ${JSON.stringify(eg,null,2).replaceAll("\n","\n ")}
19
19
 
20
- const implementActions = createActionFactory<${H}AnyDomainEntity, ${H}RootEntity, ${e$}, ActionTypes, ${ed}, ${eu}>()`:"",ev=`
21
- const createRecipe = createRecipeFactory<${H}AnyDomainEntity>(aliases, AnyDomainEntity.reflections, defaults)`,ej=[...g.map(e=>` readonly ${String(e)}: DomainEntityReflection<${H}${String(e)}>`),...j.map(e=>` readonly ${e}: RawAliasReflection<${H}${e}>`),...T.map(([e,n])=>{let t=n.schema.enum?.length&&n.schema.enum.every(e=>"string"==typeof e)?"EnumLike":"SchemaReflection";return` readonly ${e}: ${t}<${H}${e}>`}),...L.map(e=>` readonly ${e}: SchemaReflection<unknown>`)].join("\n"),eC=`{
22
- ${ej}
23
- }`,eI=[...g.map(e=>` readonly $${String(e)}: ${F("$DomainEntityReflection",String(e))}`),...j.map(e=>` readonly $${e}: ${F("EnhancedAliasReflection",e)}`)].join("\n"),eM=`{
24
- ${eI}
25
- }`,eH=`{
26
- ${ee.join("\n")}
27
- }`;return`const ${el} = (() => {
28
- const modelVersion = ${M}
29
-
30
- ${eA}
20
+ const implementActions = createActionFactory<${F}AnyDomainEntity, ${F}RootEntity, PublishedData, SessionData, FrontendData, ActionTypes, ${eu}, ${ey}>()`:"",eI=`
21
+ const createRecipe = createRecipeFactory<${F}AnyDomainEntity>(aliases, AnyDomainEntity.reflections, defaults)`,{modelType:ej,enhancedModelType:eC}=b,eM=`{
22
+ ${et.join("\n")}
23
+ }`;return`const ${ec} = (() => {
24
+ const modelVersion = ${H}
31
25
 
32
- ${b.join("\n")}
26
+ ${ex}
33
27
 
34
28
  ${k.join("\n")}
35
29
 
36
- ${B.join("\n")}
30
+ ${O.join("\n")}
37
31
 
38
32
  ${J.join("\n")}
39
33
 
34
+ ${_.join("\n")}
35
+
40
36
  const aliases = {
41
- ${_}
37
+ ${G}
42
38
  } as const
43
39
 
44
40
  const entities = {
45
- ${K}
41
+ ${U}
46
42
  } as const
47
43
 
48
44
  const model = {
49
- ${K}
50
- ${z}
51
- ${G}
45
+ ${U}
52
46
  ${q}
47
+ ${K}
48
+ ${Q}
53
49
  } as const
54
50
 
55
- ${Q.length>0?Q.join("\n")+"\n":""}
56
- ${U}
51
+ ${W.length>0?W.join("\n")+"\n":""}
57
52
  ${X}
53
+ ${Z}
58
54
  const $entityReflections = {
59
- ${W}
55
+ ${Y}
60
56
  }
61
57
 
62
58
  const enhancedModel = {
63
- ${Y}
59
+ ${ee}
64
60
  } as const
65
61
 
66
- const implementCustomExpressions = createCustomExpressionFactory${ey}()
67
- ${ex}${eD}
62
+ const implementCustomExpressions = createCustomExpressionFactory${eh}()
63
+ ${ev}${eE}
68
64
  ${eR}
69
65
 
70
66
  const modelVersions = {
71
- ${Z.join("\n")}
67
+ ${en.join("\n")}
72
68
  } as const
73
- const attachComponent = DomainComponentOpticBuilder.from${ey}(aliases)
69
+ const attachComponent = DomainComponentOpticBuilder.from${eh}(aliases)
74
70
 
75
- ${eh}
76
- ${u?` const commonInvariants = implementCustomInvariants(commonAdminViolationExpressions)
71
+ ${ef}
72
+ ${h?` const commonInvariants = implementCustomInvariants(commonAdminViolationExpressions)
77
73
 
78
- const createMapPublishedRevisionDataHandler = createMapPublishedRevisionDataHandlerFactory<${H}AnyDomainEntity, ${H}RootEntity, ${H}$Map, PublishedData>()
79
- const createMapPublishedChunkedDataHandler = createMapPublishedChunkedDataHandlerFactory<${H}AnyDomainEntity, ${H}RootEntity, ${H}$Map>()
80
- `:"\n const createAssistantSetupHandler = createAssistantSetupHandlerFactory<SessionData, AnyDomainEntity, $Map, ActionTypes>()\n"}${eE}
81
- ${ev}
74
+ const createMapPublishedRevisionDataHandler = createMapPublishedRevisionDataHandlerFactory<${F}AnyDomainEntity, ${F}RootEntity, ${F}$Map, PublishedData>()
75
+ const createMapPublishedChunkedDataHandler = createMapPublishedChunkedDataHandlerFactory<${F}AnyDomainEntity, ${F}RootEntity, ${F}$Map>()
76
+ `:"\n const createAssistantSetupHandler = createAssistantSetupHandlerFactory<SessionData, AnyDomainEntity, $Map, ActionTypes>()\n"}${eA}
77
+ ${eI}
82
78
 
83
79
  return {
84
- domainBuilder: DomainBuilder.from${ec}(
80
+ domainBuilder: DomainBuilder.from${ed}(
85
81
  entities,
86
82
  aliases,
87
83
  $entityReflections,
@@ -90,13 +86,13 @@ ${ev}
90
86
  PublishedData,
91
87
  SessionData,
92
88
  FrontendData,
93
- ${u?"undefined":"BackendData"},
94
- ${u}
95
- ).withExpressions(valueExpressions)${c?".withActions(actionDefinitions)":""},
96
- attachComponent,${c?"\n implementActions,":""}
89
+ ${h?"undefined":"BackendData"},
90
+ ${h}
91
+ ).withExpressions(valueExpressions)${d?".withActions(actionDefinitions)":""},
92
+ attachComponent,${d?"\n implementActions,":""}
97
93
  implementCustomExpressions,
98
94
  implementCustomInvariants,
99
- aliases,${u?`
95
+ aliases,${h?`
100
96
  commonInvariants,
101
97
  createMapPublishedRevisionDataHandler,
102
98
  createMapPublishedChunkedDataHandler,`:"\n createAssistantSetupHandler,"}
@@ -111,23 +107,23 @@ ${ev}
111
107
  })()
112
108
 
113
109
  const {
114
- ${eS("domainBuilder",en)},
115
- ${eS("attachComponent",et)},
116
- ${eS("implementCustomExpressions",ea)},
117
- ${eS("implementCustomInvariants",eo)},
118
- ${eS("aliases",ei)},${u?`
110
+ ${eD("domainBuilder",ea)},
111
+ ${eD("attachComponent",eo)},
112
+ ${eD("implementCustomExpressions",ei)},
113
+ ${eD("implementCustomInvariants",es)},
114
+ ${eD("aliases",er)},${h?`
119
115
  commonInvariants: commonAdminInvariants,
120
116
  createMapPublishedRevisionDataHandler,
121
117
  createMapPublishedChunkedDataHandler,`:`
122
118
  implementActions,
123
119
  createAssistantSetupHandler,`}
124
- ${eS("relationExpressions",S)},
125
- ${eS("valueExpressions",D)},
126
- ${eS("componentOptics",f)},
127
- ${eS("createRecipe",E)},
128
- } = ${el}
129
-
130
- const ${es}: ${eC} = ${el}.model
131
- const ${er}: ${eM} = ${el}.enhancedModel
132
- const ${h}: ${eH} = ${el}.modelVersions
133
- export { ${en}, ${et}, ${ea}, ${eo}, ${ei}, ${u?"commonAdminInvariants, ":""}${es}, ${er}, ${S}, ${D}, ${f}, ${h}, ${E}${u?", createMapPublishedRevisionDataHandler, createMapPublishedChunkedDataHandler, createDataRowValidatorHandler, createSheetValidatorHandler":", implementActions, createAssistantSetupHandler"} }`};
120
+ ${eD("relationExpressions",D)},
121
+ ${eD("valueExpressions",E)},
122
+ ${eD("componentOptics",S)},
123
+ ${eD("createRecipe",A)},
124
+ } = ${ec}
125
+
126
+ const ${em}: ${ej} = ${ec}.model
127
+ const ${el}: ${eC} = ${ec}.enhancedModel
128
+ const ${f}: ${eM} = ${ec}.modelVersions
129
+ export { ${ea}, ${eo}, ${ei}, ${es}, ${er}, ${h?"commonAdminInvariants, ":""}${em}, ${el}, ${D}, ${E}, ${S}, ${f}, ${A}${h?", createMapPublishedRevisionDataHandler, createMapPublishedChunkedDataHandler, createDataRowValidatorHandler, createSheetValidatorHandler":", implementActions, createAssistantSetupHandler"} }`};
@@ -1,4 +1,12 @@
1
1
  import type { Invariants } from '../../../../parse-application-files/index.js';
2
2
  import type { CodeImports } from '../../common/index.js';
3
+ /**
4
+ * Emits the members of a domain's invariant blueprints: by entity type or alias, each invariant's name
5
+ * with what it reports (`boolean` for a static invariant, the union of its violation types otherwise).
6
+ * The custom-invariant factory is closed with them, in `domain-spec.ts` and in the `phx` declarations.
7
+ *
8
+ * @param indent The indentation of the members' lines.
9
+ */
10
+ export declare const generateInvariantBlueprintMembers: (invariants: Invariants, indent: string) => string;
3
11
  /** Emits the custom-invariant blueprint and factory declarations for one generated domain block. */
4
12
  export declare const generateInvariantsBlock: (invariants: Invariants, factoryGenerics: string, contextExtension: string, imports: CodeImports) => string;
@@ -1 +1 @@
1
- import{stringifyMsgMacroCode as t}from"../../../../core/index.js";let i=(i,o)=>"string"==typeof i?JSON.stringify(i):(o.addImport("@lingui/core/macro","msg"),t(i)),o=t=>"static"===t.kind?"boolean":t.violationTypes.map(t=>JSON.stringify(String(t))).join(" | ");export const generateInvariantsBlock=(t,e,n,r)=>{let{entries:s}=t,a=[" interface CustomInvariantBlueprints {"];for(let[t,i]of Object.entries(s)){for(let[e,n]of(a.push(` ${t}: {`),Object.entries(i)))a.push(` ${e}: ${o(n)}`);a.push(" }")}for(let[t,o]of(a.push(" }"," const staticViolations = {"),Object.entries(s))){let e=Object.values(o).filter(t=>"static"===t.kind);if(0!==e.length){for(let o of(a.push(` ${t}: {`),e)){let t=[`type: ${JSON.stringify(String(o.violationType))}`,`severity: ${JSON.stringify(o.severity)}`,`message: ${i(o.message,r)}`];void 0!==o.controlViolationPriority&&t.push(`controlViolationPriority: ${o.controlViolationPriority}`),a.push(` ${o.name}: { ${t.join(", ")} },`)}a.push(" },")}}return a.push(" } as const",` const implementCustomInvariants = createCustomInvariantFactory<${e}, CustomInvariantBlueprints, ${n}>()(staticViolations)`),a.join("\n")};
1
+ import{stringifyMsgMacroCode as t}from"../../../../core/index.js";let e=(e,i)=>"string"==typeof e?JSON.stringify(e):(i.addImport("@lingui/core/macro","msg"),t(e)),i=t=>"static"===t.kind?"boolean":t.violationTypes.map(t=>JSON.stringify(String(t))).join(" | ");export const generateInvariantBlueprintMembers=(t,e)=>{let n=[];for(let[o,r]of Object.entries(t.entries)){for(let[t,s]of(n.push(`${e}${o}: {`),Object.entries(r)))n.push(`${e} ${t}: ${i(s)}`);n.push(`${e}}`)}return n.join("\n")};export const generateInvariantsBlock=(t,i,n,o)=>{let{entries:r}=t,s=generateInvariantBlueprintMembers(t," "),a=[" interface CustomInvariantBlueprints {",...s?[s]:[]];for(let[t,i]of(a.push(" }"," const staticViolations = {"),Object.entries(r))){let n=Object.values(i).filter(t=>"static"===t.kind);if(0!==n.length){for(let i of(a.push(` ${t}: {`),n)){let t=[`type: ${JSON.stringify(String(i.violationType))}`,`severity: ${JSON.stringify(i.severity)}`,`message: ${e(i.message,o)}`];void 0!==i.controlViolationPriority&&t.push(`controlViolationPriority: ${i.controlViolationPriority}`),a.push(` ${i.name}: { ${t.join(", ")} },`)}a.push(" },")}}return a.push(" } as const",` const implementCustomInvariants = createCustomInvariantFactory<${i}, CustomInvariantBlueprints, ${n}>()(staticViolations)`),a.join("\n")};
@@ -1,3 +1,3 @@
1
- export const getReferencesTarget=e=>{if(e.references)return e.references;for(let t of["anyOf","oneOf"]){let i=e[t];if(i){for(let e of i)if(e.references)return e.references}}if(e.items){let t=Array.isArray(e.items)?e.items[0]:e.items;if(t)return getReferencesTarget(t)}};export const serializeEntityValue=(e,t,i)=>{if(t&&"string"==typeof e)return`"${e}" as ${i}${t}['id']`;if(t&&Array.isArray(e)){let r=e.map(e=>"string"==typeof e?`"${e}" as ${i}${t}['id']`:JSON.stringify(e));return`[${r.join(", ")}]`}return JSON.stringify(e)};export const generateEntityCode=(e,t,i,r)=>{let n=t.get(e.type),s=[];for(let[t,o]of(s.push(`${i}{`),s.push(`${i} type: '${e.type}',`),s.push(`${i} id: "${e.id}" as ${r}${e.type}['id'],`),Object.entries(e.properties))){let e=n?.shapeProperties[t],a=e?getReferencesTarget(e):void 0;s.push(`${i} ${t}: ${serializeEntityValue(o,a,r)},`)}return s.push(`${i}}`),s.join("\n")};let e=["name","description","img","imgAlt","detailTitle","detailDescription","tags"],t=(t,i)=>e.flatMap(e=>{let r=t[e];return void 0===r?[]:[`${i}${e}: ${JSON.stringify(r)},`]});export const generatePresetsCode=(e,i,r)=>{let{presets:n}=e;if(0===n.length)return;let s=r?`${r}.`:"",o=new Map(i.entitySchemas.map(e=>[String(e.entityType),e])),a=[];for(let e of n){let i=e.initialDomainEntities.map(e=>generateEntityCode(e,o," ",s)).join(",\n");a.push([" {",` rootEntityType: '${e.rootEntityType}',`,...t(e," ")," initialDomainEntities: [",`${i},`," ],"," }"].join("\n"))}return`[
1
+ export const getReferencesTarget=e=>{if(e.references)return e.references;for(let t of["anyOf","oneOf"]){let i=e[t];if(i){for(let e of i)if(e.references)return e.references}}if(e.items){let t=Array.isArray(e.items)?e.items[0]:e.items;if(t)return getReferencesTarget(t)}};export const serializeEntityValue=(e,t,i)=>{if(t&&"string"==typeof e)return`${JSON.stringify(e)} as ${i}${t}['id']`;if(t&&Array.isArray(e)){let r=e.map(e=>"string"==typeof e?`${JSON.stringify(e)} as ${i}${t}['id']`:JSON.stringify(e));return`[${r.join(", ")}]`}return JSON.stringify(e)};export const generateEntityCode=(e,t,i,r)=>{let n=t.get(e.type),s=[];for(let[t,o]of(s.push(`${i}{`),s.push(`${i} type: '${e.type}',`),s.push(`${i} id: ${JSON.stringify(e.id)} as ${r}${e.type}['id'],`),Object.entries(e.properties))){let e=n?.shapeProperties[t],a=e?getReferencesTarget(e):void 0;s.push(`${i} ${t}: ${serializeEntityValue(o,a,r)},`)}return s.push(`${i}}`),s.join("\n")};let e=["name","description","img","imgAlt","detailTitle","detailDescription","tags"],t=(t,i)=>e.flatMap(e=>{let r=t[e];return void 0===r?[]:[`${i}${e}: ${JSON.stringify(r)},`]});export const generatePresetsCode=(e,i,r)=>{let{presets:n}=e;if(0===n.length)return;let s=r?`${r}.`:"",o=new Map(i.entitySchemas.map(e=>[String(e.entityType),e])),a=[];for(let e of n){let i=e.initialDomainEntities.map(e=>generateEntityCode(e,o," ",s)).join(",\n");a.push([" {",` rootEntityType: '${e.rootEntityType}',`,...t(e," ")," initialDomainEntities: [",`${i},`," ],"," }"].join("\n"))}return`[
2
2
  ${a.join(",\n")}
3
3
  ]`};
@@ -1,30 +1,30 @@
1
- import{P as e,match as t}from"ts-pattern";export const generateResourcesLiteral=r=>{let n=r.map(r=>t(r).with({type:"ConfigurationLink"},e=>` {
1
+ import{P as e,match as t}from"ts-pattern";import{toSingleQuotedString as r}from"../../common/index.js";export const generateResourcesLiteral=n=>{let s=n.map(n=>t(n).with({type:"ConfigurationLink"},e=>` {
2
2
  type: 'ConfigurationLink',
3
- name: '${e.name}',
3
+ name: ${r(e.name)},
4
4
  },`).with({type:"Csv"},e=>{let t=e.s3Key?`,
5
- s3Key: '${e.s3Key}'`:"";return` {
5
+ s3Key: ${r(e.s3Key)}`:"";return` {
6
6
  type: 'Csv',
7
- name: '${e.name}'${t},
7
+ name: ${r(e.name)}${t},
8
8
  },`}).with({type:"Pdf"},e=>{let t=e.s3Key?`,
9
- s3Key: '${e.s3Key}'`:"";return` {
9
+ s3Key: ${r(e.s3Key)}`:"";return` {
10
10
  type: 'Pdf',
11
- name: '${e.name}'${t},
11
+ name: ${r(e.name)}${t},
12
12
  },`}).with({type:"Image",clientGenerated:!0,s3Key:e.string},e=>` {
13
13
  type: 'Image',
14
- name: '${e.name}',
14
+ name: ${r(e.name)},
15
15
  clientGenerated: true,
16
- s3Key: '${e.s3Key}',
16
+ s3Key: ${r(e.s3Key)},
17
17
  },`).with({type:"Image",exists:!0,url:e.string},e=>` {
18
18
  type: 'Image',
19
- name: '${e.name}',
19
+ name: ${r(e.name)},
20
20
  exists: true,
21
- url: '${e.url}',
21
+ url: ${r(e.url)},
22
22
  },`).with({type:"Image"},e=>` {
23
23
  type: 'Image',
24
- name: '${e.name}',
25
- s3Key: '${e.s3Key}',
24
+ name: ${r(e.name)},
25
+ s3Key: ${r(e.s3Key)},
26
26
  },`).exhaustive());return`[
27
- ${n.join("\n")}
27
+ ${s.join("\n")}
28
28
  ] as const`};export const generateResourcesCodegen=e=>{let t=e.infra.resources;if(void 0===t||0===t.length)return{preBlock:"",builderCall:""};let r=generateResourcesLiteral(t);return{preBlock:`
29
29
  // ---- Resources ----
30
30
 
@@ -1,5 +1,5 @@
1
1
  import type { AdminStates, ConfiguratorStates } from '../../../../parse-application-files/spec/index.js';
2
- import type { ApplicationTypeImportRegistrar, CodeImports } from '../../common/index.js';
2
+ import { type ApplicationTypeImportRegistrar, type CodeImports } from '../../common/index.js';
3
3
  interface StateConstantsProps {
4
4
  readonly configuratorStates: ConfiguratorStates;
5
5
  readonly adminStates: AdminStates;
@@ -1,2 +1,2 @@
1
- let e=[{typeName:"NavigationState",key:"navigationStates"},{typeName:"ViewState",key:"viewStates"},{typeName:"ToolState",key:"toolStates"},{typeName:"ExportState",key:"exportStates"}],t=[{typeName:"AdminNavigationState",key:"navigationStates"}],a=e=>{let t=e.values.map(e=>`'${e}'`).join(" | ");return`type ${e.typeName} = ${t}
2
- const ${e.typeName}: EnumLike<${e.typeName}> = new EnumReflection('${e.typeName}', { enum: ${JSON.stringify(e.values)} }) as EnumLike<${e.typeName}>`},n=e=>`const ${e.typeName}: EnumLike<${e.typeName}> = new EnumReflection('${e.typeName}', { enum: ${JSON.stringify(e.values)} }) as EnumLike<${e.typeName}>`,m=a=>[...e.map(({typeName:e,key:t})=>({typeName:e,values:a.configuratorStates[t]})),...t.map(({typeName:e,key:t})=>({typeName:e,values:a.adminStates[t]}))];export const generateStateConstants=e=>m(e).map(a).join("\n\n");export const generateImportedStateConstants=(e,t,a)=>{let p=m(e);return a(t,p.map(e=>e.typeName)),p.map(n).join("\n\n")};export const generateStateTypeDecls=(a,n)=>{let m=" ".repeat(n);return[...e.map(({typeName:e,key:t})=>{let n=a.configuratorStates[t].map(e=>`'${e}'`).join(" | ");return`${m}type ${e} = ${n}`}),...t.map(({typeName:e,key:t})=>{let n=a.adminStates[t].map(e=>`'${e}'`).join(" | ");return`${m}type ${e} = ${n}`})].join("\n")};
1
+ import{toSingleQuotedString as e}from"../../common/index.js";let t=[{typeName:"NavigationState",key:"navigationStates"},{typeName:"ViewState",key:"viewStates"},{typeName:"ToolState",key:"toolStates"},{typeName:"ExportState",key:"exportStates"}],a=[{typeName:"AdminNavigationState",key:"navigationStates"}],n=t=>{let a=t.values.map(e).join(" | ");return`type ${t.typeName} = ${a}
2
+ const ${t.typeName}: EnumLike<${t.typeName}> = new EnumReflection('${t.typeName}', { enum: ${JSON.stringify(t.values)} }) as EnumLike<${t.typeName}>`},m=e=>`const ${e.typeName}: EnumLike<${e.typeName}> = new EnumReflection('${e.typeName}', { enum: ${JSON.stringify(e.values)} }) as EnumLike<${e.typeName}>`,o=e=>[...t.map(({typeName:t,key:a})=>({typeName:t,values:e.configuratorStates[a]})),...a.map(({typeName:t,key:a})=>({typeName:t,values:e.adminStates[a]}))];export const generateStateConstants=e=>o(e).map(n).join("\n\n");export const generateImportedStateConstants=(e,t,a)=>{let n=o(e);return a(t,n.map(e=>e.typeName)),n.map(m).join("\n\n")};export const generateStateTypeDecls=(n,m)=>{let o=" ".repeat(m);return[...t.map(({typeName:t,key:a})=>{let m=n.configuratorStates[a].map(e).join(" | ");return`${o}type ${t} = ${m}`}),...a.map(({typeName:t,key:a})=>{let m=n.adminStates[a].map(e).join(" | ");return`${o}type ${t} = ${m}`})].join("\n")};
@@ -6,8 +6,9 @@ export { generateComponentOpticsCode } from './generate-component-optics.js';
6
6
  export { generateDataSchemaConstants } from './generate-data-schemas.js';
7
7
  export { generateChunksSpec, generateDataSpec } from './generate-data-spec.js';
8
8
  export { generateDefaultsBlock } from './generate-defaults.js';
9
+ export { getDomainFactoryTypes, type DomainFactoryTypes, type EnhancedReflectionClass } from './factory-types/index.js';
9
10
  export { generateDomainBlock, type DomainBlockOptions } from './generate-domain-block.js';
10
- export { generateInvariantsBlock } from './generate-invariants.js';
11
+ export { generateInvariantBlueprintMembers, generateInvariantsBlock } from './generate-invariants.js';
11
12
  export { generateLocaleCodegen } from './generate-locale.js';
12
13
  export { generatePhxExportsBlock, generatePhxGlobalsBlock } from './generate-phx-globals.js';
13
14
  export { generatePresetsCode } from './generate-presets.js';
@@ -1 +1 @@
1
- export{generateAclCall}from"./generate-acl.js";export{generateApplicationMetadataBlock}from"./generate-application-metadata.js";export{generateAssistantBlock}from"./generate-assistant.js";export{generateBaseConfiguratorBuilder}from"./generate-base-configurator-builder.js";export{generateComponentOpticsCode}from"./generate-component-optics.js";export{generateDataSchemaConstants}from"./generate-data-schemas.js";export{generateChunksSpec,generateDataSpec}from"./generate-data-spec.js";export{generateDefaultsBlock}from"./generate-defaults.js";export{generateDomainBlock}from"./generate-domain-block.js";export{generateInvariantsBlock}from"./generate-invariants.js";export{generateLocaleCodegen}from"./generate-locale.js";export{generatePhxExportsBlock,generatePhxGlobalsBlock}from"./generate-phx-globals.js";export{generatePresetsCode}from"./generate-presets.js";export{generateRelationExpressionsCode}from"./generate-relation-expressions.js";export{generateMemoEvalPlanCode}from"./generate-memo-eval-plan-code.js";export{generateResourcesLiteral,generateResourcesCodegen}from"./generate-resources.js";export{generateResourcesConfigCall}from"./generate-resources-config.js";export{generateImportedStateConstants,generateStateConstants,generateStateTypeDecls}from"./generate-states.js";export{generateTextLanguagesCall}from"./generate-text-languages.js";
1
+ export{generateAclCall}from"./generate-acl.js";export{generateApplicationMetadataBlock}from"./generate-application-metadata.js";export{generateAssistantBlock}from"./generate-assistant.js";export{generateBaseConfiguratorBuilder}from"./generate-base-configurator-builder.js";export{generateComponentOpticsCode}from"./generate-component-optics.js";export{generateDataSchemaConstants}from"./generate-data-schemas.js";export{generateChunksSpec,generateDataSpec}from"./generate-data-spec.js";export{generateDefaultsBlock}from"./generate-defaults.js";export{getDomainFactoryTypes}from"./factory-types/index.js";export{generateDomainBlock}from"./generate-domain-block.js";export{generateInvariantBlueprintMembers,generateInvariantsBlock}from"./generate-invariants.js";export{generateLocaleCodegen}from"./generate-locale.js";export{generatePhxExportsBlock,generatePhxGlobalsBlock}from"./generate-phx-globals.js";export{generatePresetsCode}from"./generate-presets.js";export{generateRelationExpressionsCode}from"./generate-relation-expressions.js";export{generateMemoEvalPlanCode}from"./generate-memo-eval-plan-code.js";export{generateResourcesLiteral,generateResourcesCodegen}from"./generate-resources.js";export{generateResourcesConfigCall}from"./generate-resources-config.js";export{generateImportedStateConstants,generateStateConstants,generateStateTypeDecls}from"./generate-states.js";export{generateTextLanguagesCall}from"./generate-text-languages.js";