@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.
- package/README.md +8 -4
- package/dist/admin/default-admin-elements.d.ts +9 -0
- package/dist/admin/default-admin-elements.js +1 -0
- package/dist/admin/default-elements/built-in-entity-element.d.ts +10 -0
- package/dist/admin/default-elements/built-in-entity-element.js +1 -0
- package/dist/admin/default-elements/built-in-layout-element.d.ts +10 -0
- package/dist/admin/default-elements/built-in-layout-element.js +1 -0
- package/dist/admin/default-elements/index.d.ts +2 -0
- package/dist/admin/default-elements/index.js +1 -0
- package/dist/admin/index.d.ts +1 -0
- package/dist/admin/index.js +1 -1
- package/dist/application-spec/errors/diagnostic-codes.d.ts +1 -0
- package/dist/application-spec/errors/diagnostic-codes.js +1 -1
- package/dist/application-spec/errors/diagnostic-messages.d.ts +1 -0
- package/dist/application-spec/errors/diagnostic-messages.js +1 -1
- package/dist/application-spec/generate-application/code/common/code-imports.js +1 -1
- package/dist/application-spec/generate-application/code/common/env-reader.js +2 -2
- package/dist/application-spec/generate-application/code/common/index.d.ts +1 -0
- package/dist/application-spec/generate-application/code/common/index.js +1 -1
- package/dist/application-spec/generate-application/code/common/single-quoted-string.d.ts +6 -0
- package/dist/application-spec/generate-application/code/common/single-quoted-string.js +1 -0
- package/dist/application-spec/generate-application/code/domain-runtime-files.js +1 -1
- package/dist/application-spec/generate-application/code/project-scaffolding.d.ts +5 -7
- package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
- package/dist/application-spec/generate-application/code/story-files.js +1 -1
- package/dist/application-spec/generate-application/code/templates/admin-config.js +3 -0
- package/dist/application-spec/generate-application/code/templates/common/format-property-key.d.ts +7 -0
- package/dist/application-spec/generate-application/code/templates/common/format-property-key.js +1 -0
- package/dist/application-spec/generate-application/code/templates/common/schema-to-type-string.js +3 -3
- package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.d.ts +35 -0
- package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/domain-factory-types.js +5 -0
- package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.d.ts +1 -0
- package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.js +1 -0
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.d.ts +1 -1
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-component-optics.js +6 -6
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +59 -63
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +8 -0
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-presets.js +1 -1
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js +13 -13
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.d.ts +1 -1
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.js +2 -2
- package/dist/application-spec/generate-application/code/templates/domain-spec/index.d.ts +2 -1
- package/dist/application-spec/generate-application/code/templates/domain-spec/index.js +1 -1
- package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.d.ts +43 -0
- package/dist/application-spec/generate-application/code/templates/global-definition/generate-phx-types.js +31 -0
- package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts +1 -0
- package/dist/application-spec/generate-application/code/templates/global-definition/index.js +1 -1
- package/dist/application-spec/generate-application/code/templates/globals.js +24 -43
- package/dist/application-spec/generate-application/code/templates/index.d.ts +2 -2
- package/dist/application-spec/generate-application/code/templates/index.js +1 -1
- package/dist/application-spec/generate-application/code/templates/skills/phoenix-cli-skill.js +1 -1
- package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +1 -1
- package/dist/application-spec/generate-application/code/templates/skills/phoenix-feedback-skill.js +5 -5
- package/dist/application-spec/generate-application/code/templates/skills/phoenix-review-skill.js +2 -2
- package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
- package/dist/application-spec/generate-application/code/templates/skills/phoenix-variants-skill.js +2 -2
- package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +13 -2
- package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +2 -2
- package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.d.ts +58 -0
- package/dist/application-spec/generate-application/code/templates/spec-code/collect-spec-code.js +1 -0
- package/dist/application-spec/generate-application/code/templates/spec-code/index.d.ts +2 -0
- package/dist/application-spec/generate-application/code/templates/spec-code/index.js +1 -0
- package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.d.ts +18 -0
- package/dist/application-spec/generate-application/code/templates/spec-code/spec-code.js +41 -0
- package/dist/application-spec/generate-application/code/templates/spec-messages/index.d.ts +1 -0
- package/dist/application-spec/generate-application/code/templates/spec-messages/index.js +1 -0
- package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.d.ts +20 -0
- package/dist/application-spec/generate-application/code/templates/spec-messages/spec-messages.js +6 -0
- package/dist/application-spec/generate-application/code/templates/story/phx-module.d.ts +8 -2
- package/dist/application-spec/generate-application/code/templates/story/phx-module.js +15 -3
- package/dist/application-spec/generate-application/code/templates/story/wrapper.d.ts +3 -0
- package/dist/application-spec/generate-application/code/templates/story/wrapper.js +2 -1
- package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +2 -1
- package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +2 -1
- package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +8 -2
- package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +2 -1
- package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +2 -1
- package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +2 -1
- package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
- package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.d.ts +2 -1
- package/dist/application-spec/generate-application/runtime/sections/build-user-bound-optic.js +1 -1
- package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +3 -0
- package/dist/application-spec/generate-application/runtime/sections/component-optic.js +1 -1
- package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +5 -3
- package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +9 -5
- package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +3 -1
- package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/spec-code/index.d.ts +2 -0
- package/dist/application-spec/generate-application/runtime/spec-code/index.js +1 -0
- package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +18 -0
- package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.js +1 -0
- package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.d.ts +17 -0
- package/dist/application-spec/generate-application/runtime/spec-code/spec-code-module.js +1 -0
- package/dist/application-spec/generate-application/runtime-spec/index.d.ts +1 -0
- package/dist/application-spec/generate-application/runtime-spec/index.js +1 -1
- package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +40 -0
- package/dist/application-spec/generate-application/runtime-spec/spec-code-id.js +1 -0
- package/dist/application-spec/parse-application-files/categorize/categorize-files.js +1 -1
- package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +9 -4
- package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.js +1 -1
- package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.d.ts +9 -0
- package/dist/application-spec/parse-application-files/spec/expressions/expression-value-type.js +1 -0
- package/dist/application-spec/parse-application-files/spec/expressions/expressions.js +1 -1
- package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +3 -1
- package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.d.ts +12 -0
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/close-unclosed-braces.js +1 -0
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +1 -1
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
- package/dist/configurator/common/configurator-interface.d.ts +11 -2
- package/dist/configurator/common/configurator-interface.js +1 -1
- package/dist/configurator/common/index.d.ts +2 -2
- package/dist/configurator/common/index.js +1 -1
- package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +12 -0
- package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -0
- package/dist/configurator/configuration-not-found-page/index.d.ts +1 -0
- package/dist/configurator/configuration-not-found-page/index.js +1 -0
- package/dist/configurator/configurator-context/PresetSelectionProvider.js +1 -1
- package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
- package/dist/configurator/pages/DefaultNotAuthenticatedPage.d.ts +8 -0
- package/dist/configurator/pages/DefaultNotAuthenticatedPage.js +1 -0
- package/dist/configurator/pages/DefaultPresetUi.d.ts +7 -0
- package/dist/configurator/pages/DefaultPresetUi.js +1 -0
- package/dist/configurator/pages/NewConfiguratorPage.js +1 -1
- package/dist/configurator/pages/RootPage.js +1 -1
- package/dist/configurator/pages/default-configurator-elements.d.ts +4 -1
- package/dist/configurator/pages/default-configurator-elements.js +1 -1
- package/dist/configurator/pages/default-elements/built-in-entity-element.d.ts +1 -1
- package/dist/configurator/pages/default-elements/built-in-layout-element.d.ts +1 -1
- package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.d.ts +4 -0
- package/dist/configurator/preset-screen-elements/PresetDeviceNotSupportedElement.js +1 -0
- package/dist/configurator/preset-screen-elements/PresetPageActionElement.d.ts +4 -0
- package/dist/configurator/preset-screen-elements/PresetPageActionElement.js +1 -0
- package/dist/configurator/preset-screen-elements/index.d.ts +2 -0
- package/dist/configurator/preset-screen-elements/index.js +1 -0
- package/dist/configurator/scene/scene-controls/DeleteEntityFab.js +1 -1
- package/dist/configurator/scene/scene-controls/SelectionHotspot.js +1 -1
- package/dist/configurator/ui/assistant/AssistantMarkdown.d.ts +1 -1
- package/dist/configurator/ui/assistant/AssistantMarkdown.js +1 -1
- package/dist/configurator/ui/assistant/entity-link/AssistantEntityLink.js +1 -1
- package/dist/configurator/ui/assistant/resource-image/AssistantImage.d.ts +9 -0
- package/dist/configurator/ui/assistant/resource-image/AssistantImage.js +1 -0
- package/dist/configurator/ui/assistant/resource-image/index.d.ts +3 -0
- package/dist/configurator/ui/assistant/resource-image/index.js +1 -0
- package/dist/configurator/ui/assistant/resource-image/resource-path.d.ts +11 -0
- package/dist/configurator/ui/assistant/resource-image/resource-path.js +1 -0
- package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.d.ts +5 -0
- package/dist/configurator/ui/assistant/resource-image/use-resource-image-url.js +1 -0
- package/dist/configurator/ui/assistant/streamed-markdown.js +1 -1
- package/dist/configurator/ui/assistant/use-follow-stream.js +1 -1
- package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.d.ts +1 -1
- package/dist/configurator/ui/configurator-layout/slots/mobile-tabs/use-mobile-tabs.js +1 -1
- package/dist/configurator/ui/configurator-layout/slots/services/InvariantViolations.js +1 -1
- package/dist/configurator/ui/configurator-layout/slots/services/Services.js +1 -1
- package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.d.ts +1 -1
- package/dist/configurator/ui/configurator-layout/slots/sidebar-tabs/use-sidebar-tabs.js +1 -1
- package/dist/configurator/ui/legacy/layout/common/CommonFinalizeButton.js +1 -1
- package/dist/configurator/ui/legacy/layout/common/CommonSummaryButton.js +1 -1
- package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
- package/dist/configurator/ui/legacy/layout/common/ResponsiveFinalizeButton.js +1 -1
- package/dist/configurator/ui/legacy/layout/common/SummaryReadLayout.js +1 -1
- package/dist/configurator/ui/legacy/layout/simple/SimpleOwnerLayout.js +1 -1
- package/dist/configurator/ui/legacy/layout/simple/SimpleTopNavigation.js +1 -1
- package/dist/configurator/ui/legacy/layout/steps/StepsNavigation.js +1 -1
- package/dist/configurator/ui/legacy/layout/steps/StepsOwnerLayout.js +1 -1
- package/dist/configurator/ui/legacy/layout/steps/StepsSidebarFooter.js +1 -1
- package/dist/configurator/ui/legacy/layout/tabs/TabsOwnerLayout.js +1 -1
- package/dist/configurator/ui/legacy/toolbar/common/DimensionUnitSelector.js +1 -1
- package/dist/configurator/ui/legacy/toolbar/common/MeasurementsIndicatorsSwitch.js +1 -1
- package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/FullscreenToolbarAction.js +1 -1
- package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/HelpToolbarAction.js +1 -1
- package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/MeasurementsToolbarAction.js +1 -1
- package/dist/configurator/ui/legacy/toolbar/desktop-toolbar/UndoRedoToolbarGroup.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/EnterFullscreenToolbarButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/ExitFullscreenToolbarButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/HelpToolbarButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.d.ts +1 -0
- package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomOwnerUi.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.d.ts +1 -0
- package/dist/configurator/ui/phoenix-layout-elements/LayoutCustomReadUi.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/MeasurementsToolbarButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/RedoToolbarButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/UndoToolbarButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/header/common/back-button/use-go-back-action.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/header/common/horizontal-tabs/DesktopHorizontalTabs.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/header/common/step-navigation/StepsNavigation.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/measurements/DimensionUnitSelector.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/measurements/MeasurementsIndicatorsSwitch.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/basic/BasicFinalizeButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/CustomFinalizeButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/EnterSummaryButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/NextStepButton.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
- package/dist/configurator/ui/preset-layout/CategoryPresetUi.js +1 -1
- package/dist/configurator/ui/preset-layout/PresetUi.d.ts +4 -0
- package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
- package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.d.ts +10 -0
- package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -0
- package/dist/configurator/ui/save-message-snackbars/index.d.ts +1 -0
- package/dist/configurator/ui/save-message-snackbars/index.js +1 -0
- package/dist/docs/index.json +1 -1
- package/dist/docs/layouts/custom-layout.mdx +8 -7
- package/dist/docs/other-features/not-found-404.mdx +1 -1
- package/dist/docs/phoenix/clerk-sign-in.mdx +1 -1
- package/dist/docs/phoenix/configurator-interface.mdx +51 -22
- package/dist/docs/phoenix/getting-started.mdx +5 -3
- package/dist/docs/phoenix/layout-slots.mdx +19 -19
- package/dist/docs/phoenix/localization.mdx +2 -0
- package/dist/docs/phoenix/migration-guide.mdx +3 -3
- package/dist/docs/phoenix/phoenix-cli.mdx +22 -11
- package/dist/docs/phoenix/project-structure.mdx +45 -27
- package/dist/docs/phoenix/quickstart.mdx +7 -7
- package/dist/docs/phoenix/sdk-builder-workflow.mdx +6 -6
- package/dist/docs/phoenix/testing.mdx +8 -0
- package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
- package/dist/domain/domain-runtime/spec/module-checks/element-registration.d.ts +12 -11
- package/dist/domain/domain-runtime/spec/module-checks/element-registration.js +1 -1
- package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +1 -1
- package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -1
- package/dist/domain/domain-runtime/spec/selectors.js +1 -1
- package/dist/editor/Editor.d.ts +7 -0
- package/dist/editor/Editor.js +1 -1
- package/dist/editor/mocks/CreateMockYaml.js +2 -2
- package/dist/editor/mocks/EditorMockContext.d.ts +2 -0
- package/dist/editor/mocks/EditorMockContext.js +1 -1
- package/dist/legacy/domain-cli/utils/cache.d.ts +1 -1
- package/dist/legacy/domain-cli/utils/cache.js +1 -1
- package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-admin.js +10 -11
- package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/frontend-embedded-admin.js +9 -10
- package/dist/phoenix/application-spec/application-spec-builder.d.ts +0 -2
- package/dist/phoenix/application-spec/application-spec-builder.js +1 -1
- package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +0 -2
- package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
- package/dist/phoenix/application-spec/generate-project-files.d.ts +0 -2
- package/dist/phoenix/cli.js +1 -1
- package/dist/phoenix/commands/build.js +1 -1
- package/dist/phoenix/commands/clean.js +1 -1
- package/dist/phoenix/commands/deploy.js +2 -2
- package/dist/phoenix/commands/deps/deps.d.ts +22 -1
- package/dist/phoenix/commands/deps/deps.js +2 -2
- package/dist/phoenix/commands/deps/index.d.ts +1 -1
- package/dist/phoenix/commands/deps/index.js +1 -1
- package/dist/phoenix/commands/deps/sdk-manifest.js +1 -1
- package/dist/phoenix/commands/dev.js +4 -4
- package/dist/phoenix/commands/init.d.ts +17 -5
- package/dist/phoenix/commands/init.js +1 -1
- package/dist/phoenix/commands/link.js +1 -1
- package/dist/phoenix/commands/sync.js +1 -1
- package/dist/phoenix/commands/unlink.js +1 -1
- package/dist/phoenix/services/application-spec-project-watcher.d.ts +0 -2
- package/dist/phoenix/services/application-spec-project-watcher.js +2 -2
- package/dist/phoenix/utils/index.d.ts +2 -1
- package/dist/phoenix/utils/index.js +1 -1
- package/dist/phoenix/utils/package-info.d.ts +0 -9
- package/dist/phoenix/utils/package-info.js +1 -1
- package/dist/phoenix/utils/package-manager/index.d.ts +2 -0
- package/dist/phoenix/utils/package-manager/index.js +1 -0
- package/dist/phoenix/utils/package-manager/package-manager-commands.d.ts +19 -0
- package/dist/phoenix/utils/package-manager/package-manager-commands.js +1 -0
- package/dist/phoenix/utils/package-manager/pnpm-project.d.ts +9 -0
- package/dist/phoenix/utils/package-manager/pnpm-project.js +1 -0
- package/dist/react-sdk/application-runtime/common-services/analytics/index.d.ts +1 -0
- package/dist/react-sdk/application-runtime/common-services/analytics/index.js +1 -1
- package/dist/react-sdk/domain-application-context/DomainLifecycleBoundary.js +1 -1
- package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.d.ts +15 -4
- package/dist/react-sdk/domain-context/common-hooks/use-configurator-messages.js +1 -1
- package/dist/react-sdk/domain-context/index.d.ts +2 -0
- package/dist/react-sdk/domain-context/index.js +1 -1
- package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.d.ts +61 -0
- package/dist/react-sdk/domain-context/system-hooks/tab-navigation-hooks.js +1 -0
- package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.d.ts +20 -0
- package/dist/react-sdk/domain-context/system-hooks/undo-redo-hooks.js +1 -0
- package/dist/react-sdk/handlers/index.d.ts +1 -0
- package/dist/react-sdk/handlers/index.js +1 -1
- package/dist/react-sdk/handlers/use-finalize-action.js +1 -0
- package/dist/react-sdk/session/NotAuthenticatedPage.d.ts +4 -0
- package/dist/react-sdk/session/NotAuthenticatedPage.js +1 -1
- package/dist/ui-sdk/theme/types.d.ts +1 -1
- package/package.json +3 -3
- package/dist/application-spec/generate-application/code/templates/nvmrc.d.ts +0 -1
- package/dist/application-spec/generate-application/code/templates/nvmrc.js +0 -2
- package/dist/application-spec/generate-application/code/templates/package-json.d.ts +0 -10
- package/dist/application-spec/generate-application/code/templates/package-json.js +0 -1
- package/dist/configurator/common/use-finalize-action.js +0 -1
- package/dist/phoenix/commands/generate-project-files.d.ts +0 -6
- package/dist/phoenix/commands/generate-project-files.js +0 -1
- /package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.d.ts +0 -0
- /package/dist/{configurator/common → react-sdk/application-runtime/common-services/analytics}/frontend-analytics.js +0 -0
- /package/dist/{configurator/common → react-sdk/handlers}/use-finalize-action.d.ts +0 -0
package/dist/application-spec/generate-application/code/templates/common/schema-to-type-string.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{COMMON_SHORT_PREFIX as e,INTERNAL_REF_PATTERN as r,extractPhxDefName as n}from"../../../../core/index.js";let
|
|
2
|
-
${
|
|
3
|
-
}`},
|
|
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';
|
package/dist/application-spec/generate-application/code/templates/domain-spec/factory-types/index.js
ADDED
|
@@ -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
|
|
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{
|
|
2
|
-
${l}`);
|
|
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
|
|
6
|
-
${
|
|
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===
|
|
9
|
-
${
|
|
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{
|
|
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
|
-
}`},
|
|
4
|
-
${g.map(e=>` readonly ${String(e)}: DomainEntityReflection<${
|
|
5
|
-
}`);else{let n=`${y}${e.version}.`,{entityDecls:t,entityNames:a}=
|
|
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
|
-
})(),`),
|
|
10
|
+
})(),`),et.push(` readonly ${e.version}: {
|
|
11
11
|
${a.map(e=>` readonly ${e}: DomainEntityReflection<${n}${e}>`).join("\n")}
|
|
12
|
-
}`)}let
|
|
13
|
-
const ${
|
|
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 = ${
|
|
16
|
-
const componentOptics = ${
|
|
17
|
-
const valueExpressions = ${
|
|
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<${
|
|
21
|
-
const createRecipe = createRecipeFactory<${
|
|
22
|
-
${
|
|
23
|
-
}
|
|
24
|
-
${
|
|
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
|
-
${
|
|
26
|
+
${ex}
|
|
33
27
|
|
|
34
28
|
${k.join("\n")}
|
|
35
29
|
|
|
36
|
-
${
|
|
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
|
-
${
|
|
41
|
+
${U}
|
|
46
42
|
} as const
|
|
47
43
|
|
|
48
44
|
const model = {
|
|
49
|
-
${
|
|
50
|
-
${z}
|
|
51
|
-
${G}
|
|
45
|
+
${U}
|
|
52
46
|
${q}
|
|
47
|
+
${K}
|
|
48
|
+
${Q}
|
|
53
49
|
} as const
|
|
54
50
|
|
|
55
|
-
${
|
|
56
|
-
${U}
|
|
51
|
+
${W.length>0?W.join("\n")+"\n":""}
|
|
57
52
|
${X}
|
|
53
|
+
${Z}
|
|
58
54
|
const $entityReflections = {
|
|
59
|
-
${
|
|
55
|
+
${Y}
|
|
60
56
|
}
|
|
61
57
|
|
|
62
58
|
const enhancedModel = {
|
|
63
|
-
${
|
|
59
|
+
${ee}
|
|
64
60
|
} as const
|
|
65
61
|
|
|
66
|
-
const implementCustomExpressions = createCustomExpressionFactory${
|
|
67
|
-
${
|
|
62
|
+
const implementCustomExpressions = createCustomExpressionFactory${eh}()
|
|
63
|
+
${ev}${eE}
|
|
68
64
|
${eR}
|
|
69
65
|
|
|
70
66
|
const modelVersions = {
|
|
71
|
-
${
|
|
67
|
+
${en.join("\n")}
|
|
72
68
|
} as const
|
|
73
|
-
const attachComponent = DomainComponentOpticBuilder.from${
|
|
69
|
+
const attachComponent = DomainComponentOpticBuilder.from${eh}(aliases)
|
|
74
70
|
|
|
75
|
-
${
|
|
76
|
-
${
|
|
71
|
+
${ef}
|
|
72
|
+
${h?` const commonInvariants = implementCustomInvariants(commonAdminViolationExpressions)
|
|
77
73
|
|
|
78
|
-
const createMapPublishedRevisionDataHandler = createMapPublishedRevisionDataHandlerFactory<${
|
|
79
|
-
const createMapPublishedChunkedDataHandler = createMapPublishedChunkedDataHandlerFactory<${
|
|
80
|
-
`:"\n const createAssistantSetupHandler = createAssistantSetupHandlerFactory<SessionData, AnyDomainEntity, $Map, ActionTypes>()\n"}${
|
|
81
|
-
${
|
|
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${
|
|
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
|
-
${
|
|
94
|
-
${
|
|
95
|
-
).withExpressions(valueExpressions)${
|
|
96
|
-
attachComponent,${
|
|
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,${
|
|
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
|
-
${
|
|
115
|
-
${
|
|
116
|
-
${
|
|
117
|
-
${
|
|
118
|
-
${
|
|
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
|
-
${
|
|
125
|
-
${
|
|
126
|
-
${
|
|
127
|
-
${
|
|
128
|
-
} = ${
|
|
129
|
-
|
|
130
|
-
const ${
|
|
131
|
-
const ${
|
|
132
|
-
const ${
|
|
133
|
-
export { ${
|
|
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;
|
package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{stringifyMsgMacroCode as t}from"../../../../core/index.js";let
|
|
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")};
|
package/dist/application-spec/generate-application/code/templates/domain-spec/generate-presets.js
CHANGED
|
@@ -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
|
|
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
|
]`};
|
package/dist/application-spec/generate-application/code/templates/domain-spec/generate-resources.js
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import{P as e,match as t}from"ts-pattern";export const generateResourcesLiteral=
|
|
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:
|
|
3
|
+
name: ${r(e.name)},
|
|
4
4
|
},`).with({type:"Csv"},e=>{let t=e.s3Key?`,
|
|
5
|
-
s3Key:
|
|
5
|
+
s3Key: ${r(e.s3Key)}`:"";return` {
|
|
6
6
|
type: 'Csv',
|
|
7
|
-
name:
|
|
7
|
+
name: ${r(e.name)}${t},
|
|
8
8
|
},`}).with({type:"Pdf"},e=>{let t=e.s3Key?`,
|
|
9
|
-
s3Key:
|
|
9
|
+
s3Key: ${r(e.s3Key)}`:"";return` {
|
|
10
10
|
type: 'Pdf',
|
|
11
|
-
name:
|
|
11
|
+
name: ${r(e.name)}${t},
|
|
12
12
|
},`}).with({type:"Image",clientGenerated:!0,s3Key:e.string},e=>` {
|
|
13
13
|
type: 'Image',
|
|
14
|
-
name:
|
|
14
|
+
name: ${r(e.name)},
|
|
15
15
|
clientGenerated: true,
|
|
16
|
-
s3Key:
|
|
16
|
+
s3Key: ${r(e.s3Key)},
|
|
17
17
|
},`).with({type:"Image",exists:!0,url:e.string},e=>` {
|
|
18
18
|
type: 'Image',
|
|
19
|
-
name:
|
|
19
|
+
name: ${r(e.name)},
|
|
20
20
|
exists: true,
|
|
21
|
-
url:
|
|
21
|
+
url: ${r(e.url)},
|
|
22
22
|
},`).with({type:"Image"},e=>` {
|
|
23
23
|
type: 'Image',
|
|
24
|
-
name:
|
|
25
|
-
s3Key:
|
|
24
|
+
name: ${r(e.name)},
|
|
25
|
+
s3Key: ${r(e.s3Key)},
|
|
26
26
|
},`).exhaustive());return`[
|
|
27
|
-
${
|
|
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
|
|
package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AdminStates, ConfiguratorStates } from '../../../../parse-application-files/spec/index.js';
|
|
2
|
-
import type
|
|
2
|
+
import { type ApplicationTypeImportRegistrar, type CodeImports } from '../../common/index.js';
|
|
3
3
|
interface StateConstantsProps {
|
|
4
4
|
readonly configuratorStates: ConfiguratorStates;
|
|
5
5
|
readonly adminStates: AdminStates;
|
package/dist/application-spec/generate-application/code/templates/domain-spec/generate-states.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
let
|
|
2
|
-
const ${
|
|
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
|
+
}`}};
|
package/dist/application-spec/generate-application/code/templates/global-definition/index.d.ts
CHANGED
|
@@ -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';
|
package/dist/application-spec/generate-application/code/templates/global-definition/index.js
CHANGED
|
@@ -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";
|