@salsita-ai/sdk 0.50.0-develop.bd84173265 → 0.50.0-develop.bded01bb03

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 (297) hide show
  1. package/README.md +8 -4
  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/errors/diagnostic-codes.d.ts +1 -0
  13. package/dist/application-spec/errors/diagnostic-codes.js +1 -1
  14. package/dist/application-spec/errors/diagnostic-messages.d.ts +1 -0
  15. package/dist/application-spec/errors/diagnostic-messages.js +1 -1
  16. package/dist/application-spec/generate-application/code/common/code-imports.js +1 -1
  17. package/dist/application-spec/generate-application/code/common/env-reader.js +2 -2
  18. package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
  19. package/dist/application-spec/generate-application/code/common/index.js +1 -1
  20. package/dist/application-spec/generate-application/code/common/single-quoted-string.d.ts +6 -0
  21. package/dist/application-spec/generate-application/code/common/single-quoted-string.js +1 -0
  22. package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
  23. package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +5 -7
  24. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  25. package/dist/application-spec/generate-application/code/story-files.js +1 -1
  26. package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -0
  27. package/dist/application-spec/generate-application/code/templates/common/format-property-key.d.ts +7 -0
  28. package/dist/application-spec/generate-application/code/templates/common/format-property-key.js +1 -0
  29. package/dist/application-spec/generate-application/code/templates/common/schema-to-type-string.js +3 -3
  30. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +35 -0
  31. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +5 -0
  32. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.d.ts +1 -0
  33. package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.js +1 -0
  34. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.d.ts +1 -1
  35. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +6 -6
  36. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +59 -63
  37. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +8 -0
  38. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
  39. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-presets.js +1 -1
  40. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +13 -13
  41. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.d.ts +1 -1
  42. package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.js +2 -2
  43. package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +2 -1
  44. package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
  45. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.d.ts +43 -0
  46. package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +31 -0
  47. package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
  48. package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
  49. package/dist/application-spec/generate-application/code/templates/globals.js +24 -43
  50. package/dist/application-spec/generate-application/code/templates/index.d.ts +2 -2
  51. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  52. package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
  53. package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +1 -1
  54. package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +5 -5
  55. package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +2 -2
  56. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  57. package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +2 -2
  58. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +13 -2
  59. package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -2
  60. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
  61. package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
  62. package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
  63. package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
  64. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
  65. package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
  66. package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
  67. package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
  68. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
  69. package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
  70. package/dist/application-spec/generate-application/code/templates/story/phx-module.d.ts +8 -2
  71. package/dist/application-spec/generate-application/code/templates/story/phx-module.js +15 -3
  72. package/dist/application-spec/generate-application/code/templates/story/wrapper.d.ts +3 -0
  73. package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -1
  74. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +2 -1
  75. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +1 -1
  76. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +2 -1
  77. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  78. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +8 -2
  79. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  80. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +2 -1
  81. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +1 -1
  82. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +2 -1
  83. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  84. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +2 -1
  85. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  86. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +2 -1
  87. package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +1 -1
  88. package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +3 -0
  89. package/dist/application-spec/generate-application/runtime/sections/component-optic.js +1 -1
  90. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +5 -3
  91. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  92. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +9 -5
  93. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  94. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +3 -1
  95. package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.js +1 -1
  96. package/dist/application-spec/generate-application/runtime/spec-code/index.d.ts +2 -0
  97. package/dist/application-spec/generate-application/runtime/spec-code/index.js +1 -0
  98. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +18 -0
  99. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.js +1 -0
  100. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.d.ts +17 -0
  101. package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.js +1 -0
  102. package/dist/application-spec/generate-application/runtime-spec/index.d.ts +1 -0
  103. package/dist/application-spec/generate-application/runtime-spec/index.js +1 -1
  104. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +40 -0
  105. package/dist/application-spec/generate-application/runtime-spec/spec-code-id.js +1 -0
  106. package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
  107. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +9 -4
  108. package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -1
  109. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
  110. package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
  111. package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
  112. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +3 -1
  113. package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
  114. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.d.ts +12 -0
  115. package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.js +1 -0
  116. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +1 -1
  117. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  118. package/dist/configurator/common/configurator-interface.d.ts +11 -2
  119. package/dist/configurator/common/configurator-interface.js +1 -1
  120. package/dist/configurator/common/index.d.ts +2 -2
  121. package/dist/configurator/common/index.js +1 -1
  122. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +12 -0
  123. package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -0
  124. package/dist/configurator/configuration-not-found-page/index.d.ts +1 -0
  125. package/dist/configurator/configuration-not-found-page/index.js +1 -0
  126. package/dist/configurator/configurator-context/PresetSelectionProvider.js +1 -1
  127. package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
  128. package/dist/configurator/pages/DefaultNotAuthenticatedPage.d.ts +8 -0
  129. package/dist/configurator/pages/DefaultNotAuthenticatedPage.js +1 -0
  130. package/dist/configurator/pages/DefaultPresetUi.d.ts +7 -0
  131. package/dist/configurator/pages/DefaultPresetUi.js +1 -0
  132. package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
  133. package/dist/configurator/pages/RootPage.js +1 -1
  134. package/dist/configurator/pages/default-configurator-elements.d.ts +4 -1
  135. package/dist/configurator/pages/default-configurator-elements.js +1 -1
  136. package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +1 -1
  137. package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +1 -1
  138. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.d.ts +4 -0
  139. package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.js +1 -0
  140. package/dist/configurator/preset-screen-elements/PresetPageActionElement.d.ts +4 -0
  141. package/dist/configurator/preset-screen-elements/PresetPageActionElement.js +1 -0
  142. package/dist/configurator/preset-screen-elements/index.d.ts +2 -0
  143. package/dist/configurator/preset-screen-elements/index.js +1 -0
  144. package/dist/configurator/scene/scene-controls/DeleteEntityFab.js +1 -1
  145. package/dist/configurator/scene/scene-controls/SelectionHotspot.js +1 -1
  146. package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +1 -1
  147. package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
  148. package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -1
  149. package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +9 -0
  150. package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -0
  151. package/dist/configurator/ui/assistant/resource-image/index.d.ts +3 -0
  152. package/dist/configurator/ui/assistant/resource-image/index.js +1 -0
  153. package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +11 -0
  154. package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -0
  155. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.d.ts +5 -0
  156. package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.js +1 -0
  157. package/dist/configurator/ui/assistant/streamed-markdown.js +1 -1
  158. package/dist/configurator/ui/assistant/use-follow-stream.js +1 -1
  159. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.d.ts +1 -1
  160. package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.js +1 -1
  161. package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
  162. package/dist/configurator/ui/configurator-layout/slots/services/Services.js +1 -1
  163. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.d.ts +1 -1
  164. package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.js +1 -1
  165. package/dist/configurator/ui/legacy/layout/common/CommonFinalizeButton.js +1 -1
  166. package/dist/configurator/ui/legacy/layout/common/CommonSummaryButton.js +1 -1
  167. package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
  168. package/dist/configurator/ui/legacy/layout/common/ResponsiveFinalizeButton.js +1 -1
  169. package/dist/configurator/ui/legacy/layout/common/SummaryReadLayout.js +1 -1
  170. package/dist/configurator/ui/legacy/layout/simple/SimpleOwnerLayout.js +1 -1
  171. package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
  172. package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
  173. package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
  174. package/dist/configurator/ui/legacy/layout/steps/StepsSidebarFooter.js +1 -1
  175. package/dist/configurator/ui/legacy/layout/tabs/TabsOwnerLayout.js +1 -1
  176. package/dist/configurator/ui/legacy/toolbar/common/DimensionUnitSelector.js +1 -1
  177. package/dist/configurator/ui/legacy/toolbar/common/MeasurementsIndicatorsSwitch.js +1 -1
  178. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/FullscreenToolbarAction.js +1 -1
  179. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/HelpToolbarAction.js +1 -1
  180. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/MeasurementsToolbarAction.js +1 -1
  181. package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/UndoRedoToolbarGroup.js +1 -1
  182. package/dist/configurator/ui/phoenix-layout-elements/EnterFullscreenToolbarButton.js +1 -1
  183. package/dist/configurator/ui/phoenix-layout-elements/ExitFullscreenToolbarButton.js +1 -1
  184. package/dist/configurator/ui/phoenix-layout-elements/HelpToolbarButton.js +1 -1
  185. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.d.ts +1 -0
  186. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.js +1 -1
  187. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.d.ts +1 -0
  188. package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.js +1 -1
  189. package/dist/configurator/ui/phoenix-layout-elements/MeasurementsToolbarButton.js +1 -1
  190. package/dist/configurator/ui/phoenix-layout-elements/RedoToolbarButton.js +1 -1
  191. package/dist/configurator/ui/phoenix-layout-elements/UndoToolbarButton.js +1 -1
  192. package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
  193. package/dist/configurator/ui/phoenix-layout-elements/header/common/horizontal-tabs/DesktopHorizontalTabs.js +1 -1
  194. package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
  195. package/dist/configurator/ui/phoenix-layout-elements/measurements/DimensionUnitSelector.js +1 -1
  196. package/dist/configurator/ui/phoenix-layout-elements/measurements/MeasurementsIndicatorsSwitch.js +1 -1
  197. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/BasicFinalizeButton.js +1 -1
  198. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/CustomFinalizeButton.js +1 -1
  199. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/EnterSummaryButton.js +1 -1
  200. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/NextStepButton.js +1 -1
  201. package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
  202. package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
  203. package/dist/configurator/ui/preset-layout/PresetUi.d.ts +4 -0
  204. package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
  205. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.d.ts +10 -0
  206. package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -0
  207. package/dist/configurator/ui/save-message-snackbars/index.d.ts +1 -0
  208. package/dist/configurator/ui/save-message-snackbars/index.js +1 -0
  209. package/dist/docs/index.json +1 -1
  210. package/dist/docs/layouts/custom-layout.mdx +8 -7
  211. package/dist/docs/other-features/not-found-404.mdx +1 -1
  212. package/dist/docs/phoenix/clerk-sign-in.mdx +1 -1
  213. package/dist/docs/phoenix/configurator-interface.mdx +51 -22
  214. package/dist/docs/phoenix/getting-started.mdx +5 -3
  215. package/dist/docs/phoenix/layout-slots.mdx +19 -19
  216. package/dist/docs/phoenix/localization.mdx +2 -0
  217. package/dist/docs/phoenix/migration-guide.mdx +3 -3
  218. package/dist/docs/phoenix/phoenix-cli.mdx +22 -11
  219. package/dist/docs/phoenix/project-structure.mdx +45 -27
  220. package/dist/docs/phoenix/quickstart.mdx +7 -7
  221. package/dist/docs/phoenix/sdk-builder-workflow.mdx +6 -6
  222. package/dist/docs/phoenix/testing.mdx +8 -0
  223. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  224. package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +12 -11
  225. package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -1
  226. package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +1 -1
  227. package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -1
  228. package/dist/domain/domain-runtime/spec/selectors.js +1 -1
  229. package/dist/editor/Editor.d.ts +7 -0
  230. package/dist/editor/Editor.js +1 -1
  231. package/dist/editor/mocks/CreateMockYaml.js +2 -2
  232. package/dist/editor/mocks/EditorMockContext.d.ts +2 -0
  233. package/dist/editor/mocks/EditorMockContext.js +1 -1
  234. package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
  235. package/dist/legacy/domain-cli/utils/cache.js +1 -1
  236. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +10 -11
  237. package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +9 -10
  238. package/dist/phoenix/application-spec/application-spec-builder.d.ts +0 -2
  239. package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
  240. package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +0 -2
  241. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  242. package/dist/phoenix/application-spec/generate-project-files.d.ts +0 -2
  243. package/dist/phoenix/cli.js +1 -1
  244. package/dist/phoenix/commands/build.js +1 -1
  245. package/dist/phoenix/commands/clean.js +1 -1
  246. package/dist/phoenix/commands/deploy.js +2 -2
  247. package/dist/phoenix/commands/deps/deps.d.ts +22 -1
  248. package/dist/phoenix/commands/deps/deps.js +2 -2
  249. package/dist/phoenix/commands/deps/index.d.ts +1 -1
  250. package/dist/phoenix/commands/deps/index.js +1 -1
  251. package/dist/phoenix/commands/deps/sdk-manifest.js +1 -1
  252. package/dist/phoenix/commands/dev.js +4 -4
  253. package/dist/phoenix/commands/init.d.ts +17 -5
  254. package/dist/phoenix/commands/init.js +1 -1
  255. package/dist/phoenix/commands/link.js +1 -1
  256. package/dist/phoenix/commands/sync.js +1 -1
  257. package/dist/phoenix/commands/unlink.js +1 -1
  258. package/dist/phoenix/services/application-spec-project-watcher.d.ts +0 -2
  259. package/dist/phoenix/services/application-spec-project-watcher.js +2 -2
  260. package/dist/phoenix/utils/index.d.ts +2 -1
  261. package/dist/phoenix/utils/index.js +1 -1
  262. package/dist/phoenix/utils/package-info.d.ts +0 -9
  263. package/dist/phoenix/utils/package-info.js +1 -1
  264. package/dist/phoenix/utils/package-manager/index.d.ts +2 -0
  265. package/dist/phoenix/utils/package-manager/index.js +1 -0
  266. package/dist/phoenix/utils/package-manager/package-manager-commands.d.ts +19 -0
  267. package/dist/phoenix/utils/package-manager/package-manager-commands.js +1 -0
  268. package/dist/phoenix/utils/package-manager/pnpm-project.d.ts +9 -0
  269. package/dist/phoenix/utils/package-manager/pnpm-project.js +1 -0
  270. package/dist/react-sdk/application-runtime/common-services/analytics/index.d.ts +1 -0
  271. package/dist/react-sdk/application-runtime/common-services/analytics/index.js +1 -1
  272. package/dist/react-sdk/domain-application-context/DomainLifecycleBoundary.js +1 -1
  273. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +15 -4
  274. package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -1
  275. package/dist/react-sdk/domain-context/index.d.ts +2 -0
  276. package/dist/react-sdk/domain-context/index.js +1 -1
  277. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.d.ts +61 -0
  278. package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.js +1 -0
  279. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.d.ts +20 -0
  280. package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -0
  281. package/dist/react-sdk/handlers/index.d.ts +1 -0
  282. package/dist/react-sdk/handlers/index.js +1 -1
  283. package/dist/react-sdk/handlers/use-finalize-action.js +1 -0
  284. package/dist/react-sdk/session/NotAuthenticatedPage.d.ts +4 -0
  285. package/dist/react-sdk/session/NotAuthenticatedPage.js +1 -1
  286. package/dist/ui-sdk/theme/types.d.ts +1 -1
  287. package/package.json +3 -3
  288. package/dist/application-spec/generate-application/code/templates/nvmrc.d.ts +0 -1
  289. package/dist/application-spec/generate-application/code/templates/nvmrc.js +0 -2
  290. package/dist/application-spec/generate-application/code/templates/package-json.d.ts +0 -10
  291. package/dist/application-spec/generate-application/code/templates/package-json.js +0 -1
  292. package/dist/configurator/common/use-finalize-action.js +0 -1
  293. package/dist/phoenix/commands/generate-project-files.d.ts +0 -6
  294. package/dist/phoenix/commands/generate-project-files.js +0 -1
  295. /package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.d.ts +0 -0
  296. /package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.js +0 -0
  297. /package/dist/{configurator/common → react-sdk/handlers}/use-finalize-action.d.ts +0 -0
@@ -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";
@@ -0,0 +1,43 @@
1
+ import type { ApplicationSpec } from '../../../../parse-application-files/index.js';
2
+ import type { CodeImports } from '../../common/index.js';
3
+ /**
4
+ * The types of the `phx` members, stated from SDK types and the project's generated types alone.
5
+ *
6
+ * Each member that the generated code builds with an SDK factory is declared as that factory's
7
+ * result for the type arguments the generated call states (`ReturnType<typeof factory<…>>`), so the
8
+ * declared type is the very type of the generated value; each member that is an SDK function as is
9
+ * is declared as that function's type; the model reflections are declared member by member.
10
+ *
11
+ * The factory results are named by type aliases local to the declaring file, and the members refer
12
+ * to those names. An editor cannot name a local alias where `phx` is used, so it shows the type
13
+ * itself, as it did when the members referred to the generated values; a member written as
14
+ * `ReturnType<typeof factory<…>>` in place would be shown as written, and printing it overflows the
15
+ * stack of the TypeScript 6 type printer.
16
+ */
17
+ export interface PhxTypes {
18
+ /** Declarations the member types refer to, to emit once beside them, outside `declare global`. */
19
+ readonly declarations: string;
20
+ /** `phx.domain`, its admin part included. */
21
+ readonly domainType: string;
22
+ /** `phx.frontend` without its admin part. */
23
+ readonly configuratorInterfaceType: string;
24
+ /** The generated application types the member types refer to. */
25
+ readonly applicationTypeNames: readonly string[];
26
+ }
27
+ /** The types of a generated project's global `phx`, which also has `phx.frontend.admin` and `phx.webhooks`. */
28
+ export interface GlobalPhxTypes extends PhxTypes {
29
+ /** `phx.frontend.admin`. */
30
+ readonly adminInterfaceType: string;
31
+ /** `phx.webhooks`. */
32
+ readonly webhooksType: string;
33
+ }
34
+ /**
35
+ * Generates the types of the `phx` members a story's module binding has (`domain` and
36
+ * `frontend`) and registers the SDK imports they need.
37
+ */
38
+ export declare const generatePhxTypes: (spec: ApplicationSpec, imports: CodeImports) => PhxTypes;
39
+ /**
40
+ * Generates the types of the members of a generated project's global `phx`, `phx.frontend.admin` and
41
+ * `phx.webhooks` included, and registers the SDK imports they need.
42
+ */
43
+ export declare const generateGlobalPhxTypes: (spec: ApplicationSpec, imports: CodeImports) => GlobalPhxTypes;
@@ -0,0 +1,31 @@
1
+ import{generateInvariantBlueprintMembers as e,getDomainFactoryTypes as t}from"../domain-spec/index.js";let a="CustomInvariantBlueprints",n="AdminCustomInvariantBlueprints",o=["authHandlerBuilder","webhookBuilder","taskFactory","finalizeHandlerBuilder","callbackBuilder","prefetchBuilder","dynamicResourcesFactory"],i=(e,t)=>e.replaceAll("\n",`
2
+ ${t}`),r=e=>{let t=(e.infra.resources??[]).map(e=>JSON.stringify(e.name));return["AnyDomainEntity","RootEntity","$Map","NavigationState","ViewState","ToolState","ExportState","PublishedData","SessionData","FrontendData","Admin.AnyDomainEntity","Admin.RootEntity","Admin.$Map","AdminNavigationState","never","FinalizeData","PrefetchedFinalizeData","FinalizeResult","CallbackData",t.length>0?[...new Set(t)].join(" | "):"never"].join(", ")},s=()=>{let e=new Map;return{member:(t,a)=>(e.set(t,a),t),declarations:()=>[...e].map(([e,t])=>`type ${e} = ${t}`).join("\n")}},d=(o,s,d)=>{for(let e of["$DomainEntityReflection","DomainComponentOpticBuilder","DomainContextSystems","DomainEntityReflection","EnhancedAliasReflection","EnumLike","RawAliasReflection","RuntimeExpressionContext","SchemaReflection","createActionFactory","createAssistantSetupHandlerFactory","createCustomExpressionFactory","createCustomInvariantFactory","createDataRowValidatorHandler","createMapPublishedChunkedDataHandlerFactory","createMapPublishedRevisionDataHandlerFactory","createRecipeFactory","createSheetValidatorHandler"])s.addTypeImport("@salsita-ai/sdk/domain",e);s.addTypeImport("@salsita-ai/sdk/configurator","createConfiguratorInterface");let l=t(o.configurator,""),p=t(o.admin,"Admin"),c=r(o),m=(e,t)=>t?`interface ${e} {
3
+ ${t}
4
+ }`:`interface ${e} {}`,{member:y}=d,u=`{
5
+ readonly model: ${i(l.modelType," ")}
6
+ readonly enhancedModel: ${i(l.enhancedModelType," ")}
7
+ readonly implementCustomExpressions: ${y("PhxImplementCustomExpressions",`ReturnType<typeof createCustomExpressionFactory<${l.typeArguments}, ${l.contextExtension}>>`)}
8
+ readonly implementCustomInvariants: ${y("PhxImplementCustomInvariants",`ReturnType<ReturnType<typeof createCustomInvariantFactory<${l.typeArguments}, ${a}, ${l.contextExtension}>>>`)}
9
+ readonly implementActions: ${y("PhxImplementActions",`ReturnType<typeof createActionFactory<AnyDomainEntity, RootEntity, PublishedData, SessionData, FrontendData, ActionTypes, ${l.contextExtension}, ${l.systems}>>`)}
10
+ readonly createAssistantSetupHandler: ${y("PhxCreateAssistantSetupHandler","ReturnType<typeof createAssistantSetupHandlerFactory<SessionData, AnyDomainEntity, $Map, ActionTypes>>")}
11
+ readonly attachComponent: ${y("PhxAttachComponent",`ReturnType<typeof DomainComponentOpticBuilder.from<${l.typeArguments}, ${l.contextExtension}>>`)}
12
+ readonly createRecipe: ${y("PhxCreateRecipe","ReturnType<typeof createRecipeFactory<AnyDomainEntity>>")}
13
+ readonly admin: {
14
+ readonly model: ${i(p.modelType," ")}
15
+ readonly enhancedModel: ${i(p.enhancedModelType," ")}
16
+ readonly implementCustomExpressions: ${y("PhxAdminImplementCustomExpressions",`ReturnType<typeof createCustomExpressionFactory<${p.typeArguments}, ${p.contextExtension}>>`)}
17
+ readonly implementCustomInvariants: ${y("PhxAdminImplementCustomInvariants",`ReturnType<ReturnType<typeof createCustomInvariantFactory<${p.typeArguments}, ${n}, ${p.contextExtension}>>>`)}
18
+ readonly attachComponent: ${y("PhxAdminAttachComponent",`ReturnType<typeof DomainComponentOpticBuilder.from<${p.typeArguments}, ${p.contextExtension}>>`)}
19
+ readonly createMapPublishedRevisionDataHandler: ${y("PhxAdminCreateMapPublishedRevisionDataHandler","ReturnType<typeof createMapPublishedRevisionDataHandlerFactory<Admin.AnyDomainEntity, Admin.RootEntity, Admin.$Map, PublishedData>>")}
20
+ readonly createMapPublishedChunkedDataHandler: ${y("PhxAdminCreateMapPublishedChunkedDataHandler","ReturnType<typeof createMapPublishedChunkedDataHandlerFactory<Admin.AnyDomainEntity, Admin.RootEntity, Admin.$Map>>")}
21
+ readonly createDataRowValidatorHandler: typeof createDataRowValidatorHandler
22
+ readonly createSheetValidatorHandler: typeof createSheetValidatorHandler
23
+ readonly createRecipe: ${y("PhxAdminCreateRecipe","ReturnType<typeof createRecipeFactory<Admin.AnyDomainEntity>>")}
24
+ }
25
+ }`,$=y("PhxFrontend",`ReturnType<typeof createConfiguratorInterface<${c}>>`),{latestModel:h}=o.configurator;return{declarations:[m(a,e(o.configurator.invariants," ")),m(n,e(o.admin.invariants," "))].join("\n\n"),domainType:u,configuratorInterfaceType:$,applicationTypeNames:[...h.entityTypes.map(String),...[...h.aliases].map(([e])=>String(e)),...[...h.commonTypes].map(([e])=>String(e)),...h.entityTypes.map(e=>`$${String(e)}`),...[...h.aliases].map(([e])=>`$${String(e)}`),"Aliases","$Map","ActionTypes","Admin","PublishedData","SessionData","FrontendData","BackendData","FinalizeData","PrefetchedFinalizeData","FinalizeResult","CallbackData","NavigationState","ViewState","ToolState","ExportState","AdminNavigationState"]}};export const generatePhxTypes=(e,t)=>{let a=s(),n=d(e,t,a);return{...n,declarations:`${n.declarations}
26
+
27
+ ${a.declarations()}`}};export const generateGlobalPhxTypes=(e,t)=>{let a=s(),{member:n}=a,i=d(e,t,a);t.addTypeImport("@salsita-ai/sdk/admin","createAdminInterface"),t.addTypeImport("@salsita-ai/sdk/webhook","createDomainWebhook");let l=r(e),p=n("PhxFrontendAdmin",`ReturnType<typeof createAdminInterface<${l}>>`),c=n("PhxWebhookBuilders",`ReturnType<typeof createDomainWebhook<${l}>>`),m=o.map(e=>` readonly ${e}: ${n(`PhxWebhooks${e.charAt(0).toUpperCase()}${e.slice(1)}`,`${c}['${e}']`)}`);return{...i,declarations:`${i.declarations}
28
+
29
+ ${a.declarations()}`,adminInterfaceType:p,webhooksType:`{
30
+ ${m.join("\n")}
31
+ }`}};
@@ -2,3 +2,4 @@ export { generateActionTypeDecls } from './generate-action-types.js';
2
2
  export { generateModelTypeDecls } from './generate-model-types.js';
3
3
  export { generateExpressionTypeDecls, generateEntityExpressionComposites } from './generate-expression-types.js';
4
4
  export { generateDataSchemaTypeDecls } from './generate-data-schema-types.js';
5
+ export { generateGlobalPhxTypes, generatePhxTypes, type GlobalPhxTypes, type PhxTypes } from './generate-phx-types.js';
@@ -1 +1 @@
1
- export{generateActionTypeDecls}from"./generate-action-types.js";export{generateModelTypeDecls}from"./generate-model-types.js";export{generateExpressionTypeDecls,generateEntityExpressionComposites}from"./generate-expression-types.js";export{generateDataSchemaTypeDecls}from"./generate-data-schema-types.js";
1
+ export{generateActionTypeDecls}from"./generate-action-types.js";export{generateModelTypeDecls}from"./generate-model-types.js";export{generateExpressionTypeDecls,generateEntityExpressionComposites}from"./generate-expression-types.js";export{generateDataSchemaTypeDecls}from"./generate-data-schema-types.js";export{generateGlobalPhxTypes,generatePhxTypes}from"./generate-phx-types.js";