@salsita-ai/sdk 0.50.0-develop.9440e83ee3 → 0.50.0-develop.95b896fd8c
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 +1 -1
- package/dist/application/index.d.ts +1 -0
- package/dist/application/index.js +1 -1
- package/dist/application/mount-application.d.ts +1 -1
- package/dist/application/mount-application.js +1 -1
- package/dist/application/mount-configurator.d.ts +19 -0
- package/dist/application/mount-configurator.js +1 -0
- package/dist/application/mounted-application-runtime.d.ts +4 -0
- package/dist/application/mounted-application-runtime.js +1 -0
- package/dist/application/register-web-component.d.ts +2 -0
- package/dist/application/register-web-component.js +1 -0
- package/dist/application-spec/core/enhanced-json-value.d.ts +2 -31
- package/dist/application-spec/core/enhanced-json-value.js +1 -1
- package/dist/application-spec/core/index.d.ts +1 -3
- package/dist/application-spec/core/index.js +1 -1
- package/dist/application-spec/core/json-schema.d.ts +2 -52
- package/dist/application-spec/core/markers/index.d.ts +1 -1
- package/dist/application-spec/core/markers/index.js +1 -1
- package/dist/application-spec/core/markers/msg-marker.d.ts +2 -28
- package/dist/application-spec/core/markers/msg-marker.js +1 -1
- package/dist/application-spec/core/markers/raw-eval-write-marker.d.ts +1 -1
- package/dist/application-spec/core/markers/raw-eval-write-marker.js +1 -1
- package/dist/application-spec/core/markers/raw-read-write-marker.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/project-scaffolding.js +2 -2
- package/dist/application-spec/generate-application/code/templates/index.d.ts +2 -6
- package/dist/application-spec/generate-application/code/templates/index.js +1 -1
- package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.d.ts +10 -0
- package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.js +7 -0
- package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
- package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +12 -6
- package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +1 -1
- package/dist/application-spec/generate-application/implementations/phx-application-types.d.ts +25 -0
- package/dist/application-spec/generate-application/implementations/phx-application-types.js +1 -0
- package/dist/application-spec/generate-application/implementations/phx-domain.d.ts +36 -0
- package/dist/application-spec/generate-application/implementations/phx-domain.js +1 -0
- package/dist/application-spec/generate-application/implementations/phx-model.d.ts +24 -0
- package/dist/application-spec/generate-application/implementations/phx-model.js +1 -0
- package/dist/application-spec/generate-application/implementations/phx.d.ts +22 -0
- package/dist/application-spec/generate-application/implementations/phx.js +1 -0
- package/dist/application-spec/generate-application/index.d.ts +2 -0
- package/dist/application-spec/generate-application/index.js +1 -1
- package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +3 -4
- package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +7 -4
- package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.d.ts +16 -0
- package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.js +1 -0
- package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +17 -4
- package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/application-spec-slice.d.ts +71 -0
- package/dist/application-spec/generate-application/runtime/application-spec-slice.js +1 -0
- package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +3 -4
- package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +7 -5
- package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.d.ts +16 -0
- package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.js +1 -0
- package/dist/application-spec/generate-application/runtime/create-application.d.ts +57 -0
- package/dist/application-spec/generate-application/runtime/create-application.js +1 -0
- package/dist/application-spec/generate-application/runtime/factory-data/factory-data-runtime.d.ts +2 -2
- package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.d.ts +1 -1
- package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -1
- package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +1 -1
- package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -1
- package/dist/application-spec/generate-application/runtime/generate-runtime-instance.d.ts +1 -1
- package/dist/application-spec/generate-application/runtime/generate-runtime-instance.js +1 -1
- package/dist/application-spec/generate-application/runtime/index.d.ts +8 -0
- package/dist/application-spec/generate-application/runtime/index.js +1 -0
- package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.d.ts +1 -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 +1 -1
- package/dist/application-spec/generate-application/runtime/sections/component-optic.d.ts +1 -2
- package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +9 -4
- 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 +1 -2
- package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
- package/dist/application-spec/generate-application/runtime/sections/preset-runtime.d.ts +2 -3
- package/dist/application-spec/generate-application/runtime/sections/reflection-constants-runtime.d.ts +1 -1
- package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +1 -1
- package/dist/application-spec/generate-application/runtime/spec-runtime.d.ts +21 -0
- package/dist/application-spec/generate-application/runtime/spec-runtime.js +1 -0
- package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +3 -2
- package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +44 -9
- package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -1
- package/dist/application-spec/generate-application/runtime-spec/spec-code-id.d.ts +1 -1
- package/dist/application-spec/parse-application-files/parse-application-files.js +1 -1
- package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.d.ts +1 -1
- package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.js +1 -1
- package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding.d.ts +3 -13
- package/dist/application-spec/parse-application-files/spec/components/bindings/write-binding.d.ts +4 -32
- package/dist/application-spec/parse-application-files/spec/components/component-filter.d.ts +4 -10
- package/dist/application-spec/parse-application-files/spec/components/components.d.ts +3 -4
- package/dist/application-spec/parse-application-files/spec/components/index.d.ts +1 -2
- package/dist/application-spec/parse-application-files/spec/components/index.js +1 -1
- package/dist/application-spec/parse-application-files/spec/components/sdk-component-entry.d.ts +1 -1
- package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts +2 -3
- package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js +1 -1
- package/dist/application-spec/parse-application-files/spec/components/user-components.d.ts +2 -3
- package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts +2 -2
- package/dist/application-spec/parse-application-files/spec/expressions/expressions.d.ts +7 -29
- package/dist/application-spec/parse-application-files/spec/expressions/index.d.ts +0 -1
- package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.d.ts +4 -71
- package/dist/application-spec/parse-application-files/spec/expressions/memo-eval-plan.js +1 -1
- package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts +2 -2
- package/dist/application-spec/parse-application-files/spec/model/aliases.d.ts +3 -9
- package/dist/application-spec/parse-application-files/spec/model/common-types.d.ts +6 -14
- package/dist/application-spec/parse-application-files/spec/model/defaults.d.ts +6 -31
- package/dist/application-spec/parse-application-files/spec/model/entity-types.d.ts +3 -8
- package/dist/application-spec/parse-application-files/spec/model/model-version-key.d.ts +3 -3
- package/dist/application-spec/parse-application-files/spec/model/names/action-name.d.ts +3 -7
- package/dist/application-spec/parse-application-files/spec/model/names/alias-name.d.ts +3 -7
- package/dist/application-spec/parse-application-files/spec/model/names/entity-or-alias-name.d.ts +3 -8
- package/dist/application-spec/parse-application-files/spec/model/names/entity-type-name.d.ts +3 -8
- package/dist/application-spec/parse-application-files/spec/model/names/expression-name.d.ts +3 -6
- package/dist/application-spec/parse-application-files/spec/model/names/instance-name.d.ts +3 -7
- package/dist/application-spec/parse-application-files/spec/model/names/invariant-name.d.ts +3 -3
- package/dist/application-spec/parse-application-files/spec/model/names/shape-property-name.d.ts +3 -11
- package/dist/application-spec/parse-application-files/spec/model/names/violation-type-name.d.ts +3 -3
- package/dist/application-spec/parse-application-files/spec/model/presets.d.ts +6 -29
- package/dist/application-spec/parse-application-files/spec/sections/assistant/assistant-schema.js +1 -1
- package/dist/client/authorized-client.d.ts +3 -1
- package/dist/client/authorized-client.js +1 -1
- package/dist/client/contract.d.ts +17 -0
- package/dist/client/index.d.ts +1 -1
- package/dist/client/local-authorized-client.d.ts +3 -1
- package/dist/client/local-authorized-client.js +1 -1
- package/dist/client/memory-authorized-client.d.ts +4 -1
- package/dist/client/memory-authorized-client.js +1 -1
- package/dist/client/phoenix-api.d.ts +228 -0
- package/dist/configurator/ConfiguratorApp.js +1 -1
- package/dist/configurator/app-loader-content/index.d.ts +0 -1
- package/dist/configurator/app-loader-content/index.js +1 -1
- package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +17 -3
- package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +42 -9
- package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.d.ts +15 -10
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/entity-meta.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +30 -9
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.d.ts +40 -0
- package/dist/configurator/application-runtime/extensions/systems/graphql-system/violations.js +1 -0
- package/dist/configurator/common/configurator-interface.d.ts +9 -6
- package/dist/configurator/common/configurator-interface.js +1 -1
- package/dist/configurator/configuration-not-found-page/BuiltInConfigurationNotFoundPage.d.ts +5 -0
- package/dist/configurator/configuration-not-found-page/BuiltInConfigurationNotFoundPage.js +1 -0
- package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.d.ts +0 -6
- package/dist/configurator/configuration-not-found-page/ConfigurationNotFoundPageElement.js +1 -1
- package/dist/configurator/configuration-not-found-page/index.d.ts +2 -2
- package/dist/configurator/configuration-not-found-page/index.js +1 -1
- package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.d.ts +3 -3
- package/dist/configurator/configurator-context/ConfiguratorResponsiveProvider.js +1 -1
- package/dist/configurator/configurator-context/PresetSelectionProvider.js +1 -1
- package/dist/configurator/configurator-context/PreviewContextProvider.js +1 -1
- package/dist/configurator/configurator-context/configurator-hooks/index.d.ts +0 -1
- package/dist/configurator/configurator-context/configurator-hooks/index.js +1 -1
- package/dist/configurator/configurator-context/index.d.ts +0 -4
- package/dist/configurator/configurator-context/index.js +1 -1
- package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.d.ts +3 -3
- package/dist/configurator/configurator-error-page/BuiltInConfiguratorErrorPage.js +1 -1
- package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.d.ts +0 -5
- package/dist/configurator/configurator-error-page/ConfiguratorErrorPageElement.js +1 -1
- package/dist/configurator/configurator-error-page/index.d.ts +1 -2
- package/dist/configurator/configurator-error-page/index.js +1 -1
- package/dist/configurator/index.d.ts +9 -2
- package/dist/configurator/index.js +1 -1
- package/dist/configurator/pages/ConfiguratorNotFoundPage.js +1 -1
- package/dist/configurator/pages/LoadedConfiguratorDetailPage.js +1 -1
- package/dist/configurator/pages/default-configurator-elements.js +1 -1
- package/dist/configurator/pages/error-boundaries/DevContextFallback.js +1 -1
- package/dist/configurator/pages/error-boundaries/DevLoadingFallback.js +1 -1
- package/dist/configurator/pages/error-boundaries/LoadingErrorBoundary.js +1 -1
- package/dist/configurator/ui/assistant/AssistantChips.js +1 -1
- package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +1 -1
- package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -1
- package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +12 -4
- package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -1
- package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.d.ts +8 -0
- package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.js +1 -0
- package/dist/configurator/ui/assistant/tool-chip.d.ts +15 -5
- package/dist/configurator/ui/assistant/tool-chip.js +1 -1
- package/dist/configurator/ui/configurator-layout/slots/canvas/GPUAccelerationDisabled.js +1 -1
- package/dist/configurator/ui/configurator-layout/slots/canvas/LayoutCanvas.js +1 -1
- package/dist/configurator/ui/configurator-layout/slots/canvas/SharedCanvas.js +1 -1
- package/dist/configurator/ui/configurator-layout/slots/canvas/WebGLNotSupported.js +1 -1
- package/dist/configurator/ui/configurator-layout/slots/readonly-banner/CloneToEditDialog.js +1 -1
- package/dist/configurator/ui/configurator-layout/universal/use-layout-scene-safe-area.js +1 -1
- package/dist/configurator/ui/legacy/chat/MobileChat.js +1 -1
- package/dist/configurator/ui/legacy/layout/common/CommonTopNavigation.js +1 -1
- package/dist/configurator/ui/legacy/layout/common/ReactiveInterfaceLayout.js +1 -1
- package/dist/configurator/ui/legacy/layout/simple/SimpleSidebar.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/StepsSideBar.js +1 -1
- package/dist/configurator/ui/legacy/layout/tabs/TabsSidebar.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/AppLoader.d.ts +0 -7
- package/dist/configurator/ui/phoenix-layout-elements/AppLoader.js +2 -2
- 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/step-navigation/StepsNavigation.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/index.d.ts +8 -1
- package/dist/configurator/ui/phoenix-layout-elements/index.js +1 -1
- package/dist/configurator/ui/phoenix-layout-elements/sidebar-footer/common/PreviousStepButton.js +1 -1
- package/dist/configurator/ui/preset-layout/PresetUi.d.ts +0 -2
- package/dist/configurator/ui/preset-layout/PresetUi.js +1 -1
- package/dist/configurator/ui/preset-layout/index.d.ts +6 -1
- package/dist/configurator/ui/preset-layout/index.js +1 -1
- package/dist/configurator/ui/save-message-snackbars/SaveMessageSnackbars.js +1 -1
- package/dist/docs/3d-scene/cameras/custom.mdx +4 -2
- package/dist/docs/index.json +78 -1
- package/dist/docs/integrations/webcomponent-api/basics.mdx +2 -0
- package/dist/docs/layouts/custom-layout.mdx +318 -158
- package/dist/docs/layouts/gallery/ardent-compressor.mdx +3516 -0
- package/dist/docs/layouts/gallery/corvid-drone.mdx +3428 -0
- package/dist/docs/layouts/gallery/fenwick-window.mdx +2803 -0
- package/dist/docs/layouts/gallery/ferrule-bar-station.mdx +6567 -0
- package/dist/docs/layouts/gallery/nightjar-guitar.mdx +3698 -0
- package/dist/docs/layouts/gallery/sunfold-solar.mdx +2683 -0
- package/dist/docs/layouts/gallery/tidepool-aquascape.mdx +5203 -0
- package/dist/docs/phoenix/configurator-interface.mdx +8 -6
- package/dist/docs/phoenix/domain-model.mdx +4 -1
- package/dist/docs/phoenix/phoenix-cli.mdx +14 -6
- package/dist/docs/phoenix/project-structure.mdx +21 -17
- package/dist/docs/phoenix/sdk-builder-workflow.mdx +6 -4
- package/dist/docs/phoenix/sessions-and-access.mdx +2 -0
- package/dist/docs/phoenix/webhooks.mdx +5 -1
- package/dist/domain/application/assistant/assistant-resolved-manifest.d.ts +2 -0
- package/dist/domain/application/assistant/build-assistant-lenses.js +3 -3
- package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
- package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
- package/dist/domain/application/configurator-builder.d.ts +7 -1
- package/dist/domain/application/configurator-builder.js +1 -1
- package/dist/domain/application/index.d.ts +1 -1
- package/dist/domain/application/index.js +1 -1
- package/dist/domain/application/standard-properties.js +1 -1
- package/dist/domain/application/web-component-property.d.ts +3 -1
- package/dist/domain/application/web-component-property.js +1 -1
- package/dist/domain/domain-builder.d.ts +9 -3
- package/dist/domain/domain-builder.js +1 -1
- package/dist/domain/domain-runtime/application.d.ts +39 -0
- package/dist/domain/domain-runtime/application.js +1 -0
- package/dist/domain/domain-runtime/domain-context/selectors.d.ts +1 -0
- package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
- package/dist/domain/domain-runtime/domain-runtime.d.ts +40 -4
- package/dist/domain/domain-runtime/domain-runtime.js +1 -1
- package/dist/domain/domain-runtime/environment/initialize.d.ts +1 -1
- package/dist/domain/domain-runtime/errors/implementation-error-collector.d.ts +2 -0
- package/dist/domain/domain-runtime/errors/implementation-error-collector.js +1 -1
- package/dist/domain/domain-runtime/index.d.ts +2 -1
- package/dist/domain/domain-runtime/index.js +1 -1
- package/dist/domain/domain-runtime/spec/index.d.ts +1 -1
- package/dist/domain/domain-runtime/spec/index.js +1 -1
- package/dist/domain/domain-runtime/spec/module-checks/index.d.ts +1 -0
- package/dist/domain/domain-runtime/spec/module-checks/index.js +1 -1
- package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.d.ts +23 -0
- package/dist/domain/domain-runtime/spec/module-checks/merge-expression-modules.js +1 -0
- package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.d.ts +3 -4
- package/dist/domain/domain-runtime/spec/module-checks/resolve-expression-modules.js +1 -1
- package/dist/domain/domain-runtime/web-component/actions.d.ts +3 -0
- package/dist/domain/domain-runtime/web-component/actions.js +1 -1
- package/dist/domain/domain-runtime/web-component/initialize.d.ts +1 -0
- package/dist/domain/domain-runtime/web-component/initialize.js +1 -1
- package/dist/domain/domain-runtime/web-component/selectors.d.ts +2 -0
- package/dist/domain/domain-runtime/web-component/selectors.js +1 -1
- package/dist/domain/domain-runtime/web-component/types.d.ts +6 -3
- package/dist/domain/index.d.ts +1 -0
- package/dist/domain/index.js +1 -1
- package/dist/domain/mocks/create-mock-domain-runtime.d.ts +7 -0
- package/dist/domain/spec/application/index.d.ts +1 -0
- package/dist/domain/spec/application/index.js +1 -0
- package/dist/domain/spec/components/bindings/index.d.ts +2 -0
- package/dist/domain/spec/components/bindings/read-binding.d.ts +13 -0
- package/dist/domain/spec/components/bindings/write-binding.d.ts +32 -0
- package/dist/{application-spec/parse-application-files → domain}/spec/components/component-entry.d.ts +3 -3
- package/dist/{application-spec/core → domain/spec}/components/component-filter.d.ts +3 -2
- package/dist/domain/spec/components/component-filters.d.ts +10 -0
- package/dist/domain/spec/components/components.d.ts +4 -0
- package/dist/domain/spec/components/components.js +1 -0
- package/dist/domain/spec/components/index.d.ts +6 -0
- package/dist/domain/spec/enhanced-json-value.d.ts +30 -0
- package/dist/domain/spec/enhanced-json-value.js +1 -0
- package/dist/{application-spec/parse-application-files → domain}/spec/expressions/expression.d.ts +9 -3
- package/dist/domain/spec/expressions/expression.js +1 -0
- package/dist/domain/spec/expressions/expressions.d.ts +27 -0
- package/dist/domain/spec/expressions/expressions.js +1 -0
- package/dist/domain/spec/expressions/index.d.ts +5 -0
- package/dist/domain/spec/expressions/memo-eval-plan.d.ts +70 -0
- package/dist/domain/spec/expressions/memo-eval-plan.js +1 -0
- package/dist/domain/spec/expressions/relation-expression-params.js +1 -0
- package/dist/domain/spec/index.d.ts +7 -0
- package/dist/domain/spec/index.js +1 -0
- package/dist/domain/spec/json-schema.d.ts +52 -0
- package/dist/domain/spec/json-schema.js +1 -0
- package/dist/domain/spec/markers/index.d.ts +3 -0
- package/dist/domain/spec/markers/index.js +1 -0
- package/dist/domain/spec/markers/msg-marker.d.ts +28 -0
- package/dist/domain/spec/markers/msg-marker.js +1 -0
- package/dist/domain/spec/model/aliases.d.ts +9 -0
- package/dist/domain/spec/model/aliases.js +1 -0
- package/dist/domain/spec/model/common-types.d.ts +15 -0
- package/dist/domain/spec/model/common-types.js +1 -0
- package/dist/domain/spec/model/defaults.d.ts +33 -0
- package/dist/domain/spec/model/defaults.js +1 -0
- package/dist/domain/spec/model/entity-types.d.ts +8 -0
- package/dist/domain/spec/model/entity-types.js +1 -0
- package/dist/domain/spec/model/index.d.ts +7 -0
- package/dist/domain/spec/model/index.js +1 -0
- package/dist/domain/spec/model/model-version-key.d.ts +3 -0
- package/dist/domain/spec/model/model-version-key.js +1 -0
- package/dist/domain/spec/model/names/action-name.d.ts +7 -0
- package/dist/domain/spec/model/names/action-name.js +1 -0
- package/dist/domain/spec/model/names/alias-name.d.ts +7 -0
- package/dist/domain/spec/model/names/alias-name.js +1 -0
- package/dist/domain/spec/model/names/entity-or-alias-name.d.ts +8 -0
- package/dist/domain/spec/model/names/entity-or-alias-name.js +1 -0
- package/dist/domain/spec/model/names/entity-type-name.d.ts +8 -0
- package/dist/domain/spec/model/names/entity-type-name.js +1 -0
- package/dist/domain/spec/model/names/expression-name.d.ts +6 -0
- package/dist/domain/spec/model/names/expression-name.js +1 -0
- package/dist/domain/spec/model/names/index.d.ts +9 -0
- package/dist/domain/spec/model/names/index.js +1 -0
- package/dist/domain/spec/model/names/instance-name.d.ts +7 -0
- package/dist/domain/spec/model/names/instance-name.js +1 -0
- package/dist/domain/spec/model/names/invariant-name.d.ts +3 -0
- package/dist/domain/spec/model/names/invariant-name.js +1 -0
- package/dist/domain/spec/model/names/shape-property-name.d.ts +11 -0
- package/dist/domain/spec/model/names/shape-property-name.js +1 -0
- package/dist/domain/spec/model/names/violation-type-name.d.ts +3 -0
- package/dist/domain/spec/model/names/violation-type-name.js +1 -0
- package/dist/domain/spec/model/presets.d.ts +30 -0
- package/dist/domain/spec/model/presets.js +1 -0
- package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
- package/dist/editor/domain-editors/apply-spec-update.d.ts +2 -1
- package/dist/editor/domain-editors/apply-spec-update.js +1 -1
- package/dist/editor/domain-editors/use-implementation-files.d.ts +6 -14
- package/dist/editor/domain-editors/use-implementation-files.js +1 -1
- package/dist/editor/graphql/GraphQLPanel.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/domain-spec/spec/domain-spec.js +1 -1
- package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/claude-md.d.ts +1 -1
- package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/cursor-rules.d.ts +1 -1
- package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.d.ts +1 -1
- package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/agents/shared-sdk-content.js +11 -5
- package/dist/phoenix/application-spec/generate-application-spec-project.d.ts +1 -0
- package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
- package/dist/phoenix/application-spec/generate-project-files.d.ts +1 -0
- package/dist/phoenix/application-spec/index.d.ts +1 -0
- package/dist/phoenix/application-spec/index.js +1 -1
- package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +11 -0
- package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
- package/dist/phoenix/bin.js +1 -1
- 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 +1 -1
- package/dist/phoenix/commands/dev.js +5 -5
- package/dist/phoenix/commands/generated-env-markers.d.ts +1 -0
- package/dist/phoenix/commands/generated-env-markers.js +1 -1
- package/dist/phoenix/commands/index.d.ts +1 -1
- package/dist/phoenix/commands/index.js +1 -1
- package/dist/phoenix/commands/sync.js +1 -1
- package/dist/phoenix/lingui/index.d.ts +1 -0
- package/dist/phoenix/lingui/index.js +1 -0
- package/dist/phoenix/{services → lingui}/lingui.d.ts +5 -2
- package/dist/phoenix/lingui/lingui.js +1 -0
- package/dist/phoenix/services/application-spec-project-watcher.d.ts +3 -1
- package/dist/phoenix/services/application-spec-project-watcher.js +2 -2
- package/dist/phoenix/services/index.d.ts +1 -0
- package/dist/phoenix/services/index.js +1 -1
- package/dist/phoenix/services/lingui-watcher.js +1 -1
- package/dist/phoenix/services/prepare-development-environment.js +1 -1
- package/dist/phoenix/services/vite-config.js +1 -1
- package/dist/react-sdk/application-runtime/common-services/analytics/analytics-service.d.ts +1 -1
- package/dist/react-sdk/application-runtime/common-services/initialize.d.ts +2 -2
- package/dist/react-sdk/application-runtime/domain-application-context/chat-system.d.ts +1 -1
- package/dist/react-sdk/application-runtime/hooks/index.d.ts +2 -0
- package/dist/react-sdk/application-runtime/hooks/index.js +1 -1
- package/dist/react-sdk/application-runtime/hooks/loading/index.d.ts +5 -0
- package/dist/react-sdk/application-runtime/hooks/loading/index.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/loading/loader-host-context.d.ts +11 -0
- package/dist/react-sdk/application-runtime/hooks/loading/loader-host-context.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-is-awaiting-loading-phase.d.ts +8 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-is-awaiting-loading-phase.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-is-loader-hosted.d.ts +7 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-is-loader-hosted.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-loading-actions.d.ts +9 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-loading-actions.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-loading-application.d.ts +24 -0
- package/dist/react-sdk/application-runtime/hooks/loading/use-loading-application.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/index.d.ts +3 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/index.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.d.ts +9 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-actions.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.d.ts +26 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-application.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.d.ts +10 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-state.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.d.ts +24 -0
- package/dist/react-sdk/application-runtime/hooks/responsive/use-responsive-store.js +1 -0
- package/dist/react-sdk/application-runtime/hooks/use-access-service.d.ts +5 -0
- package/dist/react-sdk/application-runtime/hooks/use-access-service.js +1 -1
- package/dist/react-sdk/application-runtime/hooks/use-web-component-readonly-sync.d.ts +4 -11
- package/dist/react-sdk/application-runtime/hooks/use-web-component-readonly-sync.js +1 -1
- package/dist/react-sdk/application-runtime/hooks/use-web-component.d.ts +5 -0
- package/dist/react-sdk/application-runtime/hooks/use-web-component.js +1 -1
- package/dist/react-sdk/application-runtime/host-properties/actions.d.ts +15 -0
- package/dist/react-sdk/application-runtime/host-properties/actions.js +1 -0
- package/dist/react-sdk/application-runtime/host-properties/connect-host-properties.d.ts +30 -0
- package/dist/react-sdk/application-runtime/host-properties/connect-host-properties.js +1 -0
- package/dist/react-sdk/application-runtime/host-properties/domain-host-properties.d.ts +7 -0
- package/dist/react-sdk/application-runtime/host-properties/domain-host-properties.js +1 -0
- package/dist/react-sdk/application-runtime/host-properties/host-property-descriptors.d.ts +21 -0
- package/dist/react-sdk/application-runtime/host-properties/host-property-descriptors.js +1 -0
- package/dist/react-sdk/application-runtime/host-properties/host-property-scopes.d.ts +42 -0
- package/dist/react-sdk/application-runtime/host-properties/host-property-scopes.js +1 -0
- package/dist/react-sdk/application-runtime/host-properties/index.d.ts +8 -0
- package/dist/react-sdk/application-runtime/host-properties/index.js +1 -0
- package/dist/react-sdk/application-runtime/host-properties/initialize.d.ts +7 -0
- package/dist/react-sdk/application-runtime/host-properties/initialize.js +1 -0
- package/dist/react-sdk/application-runtime/host-properties/selectors.d.ts +54 -0
- package/dist/react-sdk/application-runtime/host-properties/selectors.js +1 -0
- package/dist/react-sdk/application-runtime/host-properties/types.d.ts +18 -0
- package/dist/react-sdk/application-runtime/host-properties/types.js +1 -0
- package/dist/react-sdk/application-runtime/index.d.ts +3 -0
- package/dist/react-sdk/application-runtime/loading/actions.d.ts +45 -0
- package/dist/react-sdk/application-runtime/loading/actions.js +1 -0
- package/dist/react-sdk/application-runtime/loading/index.d.ts +4 -0
- package/dist/react-sdk/application-runtime/loading/index.js +1 -0
- package/dist/react-sdk/application-runtime/loading/initialize.d.ts +3 -0
- package/dist/react-sdk/application-runtime/loading/initialize.js +1 -0
- package/dist/react-sdk/application-runtime/loading/selectors.d.ts +18 -0
- package/dist/react-sdk/application-runtime/loading/selectors.js +1 -0
- package/dist/react-sdk/application-runtime/loading/types.d.ts +59 -0
- package/dist/react-sdk/application-runtime/loading/types.js +1 -0
- package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
- package/dist/react-sdk/application-runtime/provider/ApplicationRuntime.d.ts +6 -0
- package/dist/react-sdk/application-runtime/provider/ApplicationRuntime.js +1 -1
- package/dist/react-sdk/application-runtime/provider/ApplicationType.d.ts +7 -0
- package/dist/react-sdk/application-runtime/provider/ApplicationType.js +1 -1
- package/dist/react-sdk/application-runtime/responsive/actions.d.ts +47 -0
- package/dist/react-sdk/application-runtime/responsive/actions.js +1 -0
- package/dist/react-sdk/application-runtime/responsive/index.d.ts +4 -0
- package/dist/react-sdk/application-runtime/responsive/index.js +1 -0
- package/dist/react-sdk/application-runtime/responsive/initialize.d.ts +3 -0
- package/dist/react-sdk/application-runtime/responsive/initialize.js +1 -0
- package/dist/react-sdk/application-runtime/responsive/selectors.d.ts +20 -0
- package/dist/react-sdk/application-runtime/responsive/selectors.js +1 -0
- package/dist/react-sdk/application-runtime/responsive/types.d.ts +104 -0
- package/dist/react-sdk/application-runtime/responsive/types.js +1 -0
- package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +309 -8
- package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
- package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/ConfiguratorRoutingProvider.d.ts +1 -1
- package/dist/react-sdk/configurator-routing/ConfiguratorRoutingProvider.js +1 -0
- package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/OnGoToIndexHandler.d.ts +1 -2
- package/dist/react-sdk/configurator-routing/OnGoToIndexHandler.js +1 -0
- package/dist/react-sdk/configurator-routing/index.d.ts +3 -0
- package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/index.js +1 -1
- package/dist/{configurator/configurator-context → react-sdk}/configurator-routing/use-power-routing-lifecycle.d.ts +2 -0
- package/dist/react-sdk/configurator-routing/use-power-routing-lifecycle.js +1 -0
- package/dist/react-sdk/domain-application-context/BackendDataProvider.js +1 -1
- package/dist/react-sdk/domain-application-context/FrontendDataProvider.js +1 -1
- package/dist/react-sdk/domain-application-context/OnPresetLoadedHandler.js +1 -0
- package/dist/react-sdk/domain-application-context/PublishedDataProvider.js +1 -1
- package/dist/react-sdk/domain-application-context/chat-hooks.d.ts +4 -0
- package/dist/react-sdk/domain-application-context/chat-hooks.js +1 -0
- package/dist/react-sdk/domain-application-context/index.d.ts +2 -0
- package/dist/react-sdk/domain-application-context/index.js +1 -1
- package/dist/react-sdk/domain-context/common-hooks/index.d.ts +1 -0
- package/dist/react-sdk/domain-context/common-hooks/index.js +1 -1
- package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.d.ts +23 -0
- package/dist/react-sdk/domain-context/common-hooks/use-configuration-save-state.js +1 -0
- package/dist/react-sdk/domain-context/common-hooks/use-domain-context.d.ts +1 -0
- package/dist/react-sdk/domain-context/index.d.ts +1 -0
- package/dist/react-sdk/domain-context/index.js +1 -1
- package/dist/react-sdk/elements/index.d.ts +0 -1
- package/dist/react-sdk/index.d.ts +4 -1
- package/dist/react-sdk/index.js +1 -1
- package/dist/react-sdk/integration/IntegrationSubscription.js +1 -0
- package/dist/react-sdk/integration/index.d.ts +1 -0
- package/dist/react-sdk/integration/index.js +1 -0
- package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.d.ts +8 -0
- package/dist/react-sdk/lifecycle-providers/ConfiguratorDataProvider.js +1 -0
- package/dist/react-sdk/lifecycle-providers/LifecycleProviders.js +1 -0
- package/dist/react-sdk/lifecycle-providers/index.d.ts +2 -0
- package/dist/react-sdk/lifecycle-providers/index.js +1 -0
- package/dist/react-sdk/loading-state/LoaderHost.d.ts +20 -0
- package/dist/react-sdk/loading-state/LoaderHost.js +1 -0
- package/dist/react-sdk/loading-state/built-in-loading-phase.d.ts +9 -0
- package/dist/react-sdk/loading-state/built-in-loading-phase.js +1 -0
- package/dist/react-sdk/loading-state/create-app-loader.d.ts +18 -0
- package/dist/react-sdk/loading-state/create-app-loader.js +1 -0
- package/dist/react-sdk/loading-state/index.d.ts +4 -2
- package/dist/react-sdk/loading-state/index.js +1 -1
- package/dist/react-sdk/loading-state/{LoadingStateProvider.d.ts → loading-state-hooks.d.ts} +3 -12
- package/dist/react-sdk/loading-state/loading-state-hooks.js +1 -0
- package/dist/react-sdk/page-elements/ConfigurationNotFoundPagePropsProvider.d.ts +17 -0
- package/dist/react-sdk/page-elements/ConfigurationNotFoundPagePropsProvider.js +1 -0
- package/dist/react-sdk/page-elements/ConfiguratorErrorPagePropsProvider.d.ts +17 -0
- package/dist/react-sdk/page-elements/ConfiguratorErrorPagePropsProvider.js +1 -0
- package/dist/react-sdk/page-elements/configurator-error-page-props.js +1 -0
- package/dist/{configurator/configuration-not-found-page → react-sdk/page-elements}/create-configuration-not-found-page.d.ts +7 -1
- package/dist/react-sdk/page-elements/create-configuration-not-found-page.js +1 -0
- package/dist/{configurator/configurator-error-page → react-sdk/page-elements}/create-configurator-error-page.d.ts +6 -1
- package/dist/react-sdk/page-elements/create-configurator-error-page.js +1 -0
- package/dist/react-sdk/page-elements/create-preset-ui.d.ts +9 -0
- package/dist/react-sdk/page-elements/create-preset-ui.js +1 -0
- package/dist/react-sdk/page-elements/index.d.ts +6 -0
- package/dist/react-sdk/page-elements/index.js +1 -0
- package/dist/react-sdk/session/SessionServiceProvider.js +1 -1
- package/dist/react-sdk/web-component/create-web-component.js +1 -1
- package/dist/ui-sdk/responsive-application/ResponsiveApplicationProvider.d.ts +2 -2
- package/dist/ui-sdk/responsive-application/responsive-state-store.d.ts +11 -9
- package/dist/ui-sdk/responsive-application/use-store-responsive-info.js +1 -1
- package/package.json +3 -3
- package/dist/application-spec/core/components/index.d.ts +0 -2
- package/dist/application-spec/core/expressions/index.d.ts +0 -2
- package/dist/configurator/app-loader-content/app-loader-content-name.d.ts +0 -5
- package/dist/configurator/app-loader-content/app-loader-content-name.js +0 -1
- package/dist/configurator/configuration-not-found-page/create-configuration-not-found-page.js +0 -1
- package/dist/configurator/configurator-context/ConfiguratorDataProvider.d.ts +0 -2
- package/dist/configurator/configurator-context/ConfiguratorDataProvider.js +0 -1
- package/dist/configurator/configurator-context/IntegrationSubscription.js +0 -1
- package/dist/configurator/configurator-context/LifecycleProviders.js +0 -1
- package/dist/configurator/configurator-context/OnPresetLoadedHandler.js +0 -1
- package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.d.ts +0 -1
- package/dist/configurator/configurator-context/configurator-hooks/chat-hooks.js +0 -1
- package/dist/configurator/configurator-context/configurator-routing/ConfiguratorRoutingProvider.js +0 -1
- package/dist/configurator/configurator-context/configurator-routing/OnGoToIndexHandler.js +0 -1
- package/dist/configurator/configurator-context/configurator-routing/index.d.ts +0 -2
- package/dist/configurator/configurator-context/configurator-routing/use-power-routing-lifecycle.js +0 -1
- package/dist/configurator/configurator-error-page/create-configurator-error-page.js +0 -1
- package/dist/phoenix/services/lingui.js +0 -1
- package/dist/react-sdk/loading-state/LoadingStateProvider.js +0 -1
- package/dist/react-sdk/loading-state/loading-state-manager.d.ts +0 -37
- package/dist/react-sdk/loading-state/loading-state-manager.js +0 -1
- package/dist/react-sdk/responsive-state/ResponsiveStateProvider.d.ts +0 -25
- package/dist/react-sdk/responsive-state/ResponsiveStateProvider.js +0 -1
- package/dist/react-sdk/responsive-state/canvas-padding.d.ts +0 -14
- package/dist/react-sdk/responsive-state/index.d.ts +0 -5
- package/dist/react-sdk/responsive-state/index.js +0 -1
- package/dist/react-sdk/responsive-state/responsive-state-manager.d.ts +0 -111
- package/dist/react-sdk/responsive-state/responsive-state-manager.js +0 -1
- package/dist/react-sdk/responsive-state/use-responsive-state-manager.d.ts +0 -10
- package/dist/react-sdk/responsive-state/use-responsive-state-manager.js +0 -1
- package/dist/react-sdk/responsive-state/use-responsive-state.d.ts +0 -11
- package/dist/react-sdk/responsive-state/use-responsive-state.js +0 -1
- /package/dist/{application-spec/core → domain/spec/application}/application-instance.d.ts +0 -0
- /package/dist/{application-spec/core → domain/spec/application}/application-instance.js +0 -0
- /package/dist/{application-spec/core/expressions/relation-expression-params.js → domain/spec/components/bindings/index.js} +0 -0
- /package/dist/{application-spec/parse-application-files/spec/components/component-entry.js → domain/spec/components/bindings/read-binding.js} +0 -0
- /package/dist/{application-spec/parse-application-files/spec/expressions/expression.js → domain/spec/components/bindings/write-binding.js} +0 -0
- /package/dist/{react-sdk/elements/configurator-error-page-props.js → domain/spec/components/component-entry.js} +0 -0
- /package/dist/{application-spec/core → domain/spec}/components/component-filter.js +0 -0
- /package/dist/{react-sdk/responsive-state/canvas-padding.js → domain/spec/components/component-filters.js} +0 -0
- /package/dist/{application-spec/core → domain/spec}/components/index.js +0 -0
- /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.d.ts +0 -0
- /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.js +0 -0
- /package/dist/{application-spec/core → domain/spec}/expressions/index.js +0 -0
- /package/dist/{application-spec/core → domain/spec}/expressions/relation-expression-params.d.ts +0 -0
- /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.d.ts +0 -0
- /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.js +0 -0
- /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.d.ts +0 -0
- /package/dist/{application-spec/parse-application-files/spec/components → domain/spec/markers}/component-prop-target.js +0 -0
- /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.d.ts +0 -0
- /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.js +0 -0
- /package/dist/{configurator/configurator-context → react-sdk/domain-application-context}/OnPresetLoadedHandler.d.ts +0 -0
- /package/dist/{configurator/configurator-context → react-sdk/integration}/IntegrationSubscription.d.ts +0 -0
- /package/dist/{configurator/configurator-context → react-sdk/lifecycle-providers}/LifecycleProviders.d.ts +0 -0
- /package/dist/react-sdk/{elements → page-elements}/configurator-error-page-props.d.ts +0 -0
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Branded } from '@salsita-ai/common/utils';
|
|
2
|
-
import type { DomainEntity, ProductPreset } from '#package/domain';
|
|
2
|
+
import type { DomainEntity, ProductPreset, SpecPreset } from '#package/domain';
|
|
3
3
|
import type { RuntimeReferenceStore } from '../../../caching/index.js';
|
|
4
|
-
import type { Preset } from '../../../parse-application-files/index.js';
|
|
5
4
|
type AnyProductPreset = ProductPreset<DomainEntity<string>, DomainEntity<string>>;
|
|
6
5
|
/** Collection of runtime presets with change tracking. */
|
|
7
6
|
export type PresetRuntime = Branded<'PresetRuntime', {
|
|
@@ -10,7 +9,7 @@ export type PresetRuntime = Branded<'PresetRuntime', {
|
|
|
10
9
|
}>;
|
|
11
10
|
interface PresetRuntimeProps {
|
|
12
11
|
readonly referenceScope: string;
|
|
13
|
-
readonly presets: readonly
|
|
12
|
+
readonly presets: readonly SpecPreset[];
|
|
14
13
|
}
|
|
15
14
|
/**
|
|
16
15
|
* Builds preset runtime objects with per-item reference stability.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ExpressionName, Expressions, MemoEvalPlan } from '
|
|
1
|
+
import type { ExpressionName, Expressions, MemoEvalPlan } from '#package/domain';
|
|
2
2
|
import type { SpecCodeMap } from '../spec-code/index.js';
|
|
3
3
|
/** The self-free `constants:` plans declared on one entity or alias, or `undefined` when it has none. */
|
|
4
4
|
export declare const findReflectionConstants: (expressions: Expressions, entityOrAlias: string) => ReadonlyMap<ExpressionName, MemoEvalPlan> | undefined;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Branded } from '@salsita-ai/common/utils';
|
|
2
|
+
import type { RuntimeReferenceStore } from '../../caching/index.js';
|
|
3
|
+
import type { RuntimeSpec } from '../runtime-spec/index.js';
|
|
4
|
+
import { AdminSpecRuntime } from './admin-runtime/admin-spec-runtime.js';
|
|
5
|
+
import { ConfiguratorSpecRuntime } from './configurator-runtime/configurator-spec-runtime.js';
|
|
6
|
+
import type { SpecCodeModule } from './spec-code/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* The sections of both domains that the spec alone determines, without a project module: each
|
|
9
|
+
* domain's model and the data of its `phx.domain` factories.
|
|
10
|
+
*
|
|
11
|
+
* An application is built in two steps in one reference store. This is the first: it runs before
|
|
12
|
+
* the project's modules load, because they call the `phx.domain` factories while they are evaluated.
|
|
13
|
+
* The second, `ApplicationRuntime` with the loaded modules, builds the same sections through the
|
|
14
|
+
* same functions, so it returns the same objects: `phx.domain.model.X` is the reflection the
|
|
15
|
+
* application's domain validates with.
|
|
16
|
+
*/
|
|
17
|
+
export type SpecRuntime = Branded<'SpecRuntime', {
|
|
18
|
+
readonly configurator: ConfiguratorSpecRuntime;
|
|
19
|
+
readonly admin: AdminSpecRuntime;
|
|
20
|
+
}>;
|
|
21
|
+
export declare const SpecRuntime: (spec: RuntimeSpec, referenceStore: RuntimeReferenceStore, specCode: SpecCodeModule | undefined) => SpecRuntime;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Branded as i}from"@salsita-ai/common/utils";import{AdminSpecRuntime as r}from"./admin-runtime/admin-spec-runtime.js";import{ConfiguratorSpecRuntime as o}from"./configurator-runtime/configurator-spec-runtime.js";export const SpecRuntime=(m,t,n)=>i({configurator:o(m,t,n?.configurator),admin:r(m,t,n?.admin)});
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The version of the JSON format `encodeRuntimeSpec` writes. Raise it with every change to the
|
|
3
|
-
* format or to the shape of `RuntimeSpec
|
|
4
|
-
* or newer SDK wrote instead of building a
|
|
3
|
+
* format or to the shape of `RuntimeSpec` once a released SDK has written the current version, so
|
|
4
|
+
* that `decodeRuntimeSpec` refuses an artifact an older or newer SDK wrote instead of building a
|
|
5
|
+
* runtime from data it does not understand.
|
|
5
6
|
*/
|
|
6
7
|
export declare const RUNTIME_SPEC_FORMAT_VERSION = 1;
|
|
7
8
|
/** One step from a value into a part of it: an object key or an array index. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AdminSpec, ApplicationSpec, ConfiguratorSpec, EntitySchema, Infra, ModelVersion, ResolvedModelVersion, ResolvedVersions } from '../../parse-application-files/index.js';
|
|
1
|
+
import type { AdminSpec, ApplicationSpec, AssistantSpec, ConfiguratorSpec, DataSchemaEntry, DataSchemas, DataSpec, EntitySchema, Infra, ModelVersion, ResolvedModelVersion, ResolvedVersions, Shape } from '../../parse-application-files/index.js';
|
|
2
2
|
/**
|
|
3
3
|
* The part of a parsed entity schema the runtime reads: the entity type and the schema of its
|
|
4
4
|
* shape, from which it builds the entity's reflection. The full schema with `id` and `type` is
|
|
@@ -8,12 +8,22 @@ import type { AdminSpec, ApplicationSpec, ConfiguratorSpec, EntitySchema, Infra,
|
|
|
8
8
|
export type RuntimeEntitySchema = Pick<EntitySchema, 'entityType' | 'shapeSchema'>;
|
|
9
9
|
/**
|
|
10
10
|
* The part of a parsed model version the runtime reads: the entity types, the aliases, the common
|
|
11
|
-
* types and the schema of every entity's shape. The
|
|
12
|
-
* parser and the type generator
|
|
11
|
+
* types and the schema of every entity's shape. The shapes and the resolved shapes only serve the
|
|
12
|
+
* parser and the type generator, except the runtime schemas of the latest version's shapes (see
|
|
13
|
+
* `RuntimeLatestModelVersion`).
|
|
13
14
|
*/
|
|
14
15
|
export type RuntimeModelVersion = Pick<ModelVersion, 'versionKey' | 'entityTypes' | 'rootEntityTypes' | 'aliases' | 'commonTypes'> & {
|
|
15
16
|
readonly entitySchemas: readonly RuntimeEntitySchema[];
|
|
16
17
|
};
|
|
18
|
+
/**
|
|
19
|
+
* The latest model version of a domain as the runtime reads it: a model version plus the runtime
|
|
20
|
+
* schema of every shape, which `phx.domain.model` reflects as `<Name>Shape`.
|
|
21
|
+
*/
|
|
22
|
+
export type RuntimeLatestModelVersion = RuntimeModelVersion & {
|
|
23
|
+
readonly shapes: ReadonlyMap<Shape['name'], RuntimeShapeSchema>;
|
|
24
|
+
};
|
|
25
|
+
/** The part of a parsed shape the runtime reads: its name and its runtime JSON schema. */
|
|
26
|
+
export type RuntimeShapeSchema = Pick<Shape, 'name' | 'runtimeSchema'>;
|
|
17
27
|
/** One model version of a domain as the runtime reads it, with the migration file that leads to it. */
|
|
18
28
|
export type RuntimeResolvedModelVersion = Omit<ResolvedModelVersion, 'modelVersion'> & {
|
|
19
29
|
readonly modelVersion: RuntimeModelVersion;
|
|
@@ -24,15 +34,39 @@ export type RuntimeResolvedVersions = Pick<ResolvedVersions, 'latestVersion'> &
|
|
|
24
34
|
};
|
|
25
35
|
/** The model of a domain as the runtime reads it: the latest version and every earlier one. */
|
|
26
36
|
interface RuntimeDomainModel {
|
|
27
|
-
readonly latestModel:
|
|
37
|
+
readonly latestModel: RuntimeLatestModelVersion;
|
|
28
38
|
readonly resolvedVersions: RuntimeResolvedVersions;
|
|
29
39
|
}
|
|
40
|
+
/** The part of a parsed data schema the runtime reads: the JSON schema it validates the data with. */
|
|
41
|
+
export type RuntimeDataSchemaEntry = Pick<DataSchemaEntry, 'runtimeSchema'>;
|
|
42
|
+
/**
|
|
43
|
+
* The data schemas as the runtime reads them: the JSON schema of each kind of data and the hash of
|
|
44
|
+
* the published data. The enhanced schemas, with Phoenix references, only serve the type generator.
|
|
45
|
+
*/
|
|
46
|
+
export type RuntimeDataSchemas = Pick<DataSchemas, 'publishedDataHash'> & {
|
|
47
|
+
readonly [KIND in Exclude<keyof DataSchemas, 'publishedDataHash' | 'backendData'>]: RuntimeDataSchemaEntry;
|
|
48
|
+
} & {
|
|
49
|
+
readonly backendData: RuntimeDataSchemaEntry | undefined;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* The assistant as the runtime reads it: its resolved manifest. The parsed assistant schema the
|
|
53
|
+
* manifest is resolved from only serves the parser.
|
|
54
|
+
*/
|
|
55
|
+
export type RuntimeAssistantSpec = Pick<NonNullable<AssistantSpec>, 'resolved'> | null;
|
|
56
|
+
/**
|
|
57
|
+
* The data spec as the runtime reads it: the data entries and their chunks. The data entries and
|
|
58
|
+
* admin data pages the parser derives from them only serve the admin spec and the type generator.
|
|
59
|
+
*/
|
|
60
|
+
export type RuntimeDataSpec = Pick<DataSpec, 'entries' | 'chunks'>;
|
|
30
61
|
/**
|
|
31
62
|
* The configurator part of the runtime spec. It leaves out the configuration schema and its
|
|
32
63
|
* version, which only a deployment registers, and the assistant's server settings (instructions
|
|
33
64
|
* and AI settings), which must never reach the browser of a customer.
|
|
34
65
|
*/
|
|
35
|
-
export type RuntimeConfiguratorSpec = Pick<ConfiguratorSpec, 'components' | 'presets' | 'expressions' | 'actions' | 'invariants' | '
|
|
66
|
+
export type RuntimeConfiguratorSpec = Pick<ConfiguratorSpec, 'components' | 'presets' | 'expressions' | 'actions' | 'invariants' | 'defaults' | 'states' | 'theme' | 'ui' | 'transformers'> & RuntimeDomainModel & {
|
|
67
|
+
readonly dataSchemas: RuntimeDataSchemas;
|
|
68
|
+
readonly assistant: RuntimeAssistantSpec;
|
|
69
|
+
};
|
|
36
70
|
/**
|
|
37
71
|
* The admin part of the runtime spec. It leaves out the configuration schema and its version, which
|
|
38
72
|
* only a deployment registers.
|
|
@@ -54,15 +88,16 @@ export type RuntimeInfra = Pick<Infra, 'acl' | 'resources' | 'resourcesConfig'>;
|
|
|
54
88
|
* leaves out what only the parser, the type generator or a deployment use, and holds plain data,
|
|
55
89
|
* Maps and Sets only, so it can be encoded as JSON.
|
|
56
90
|
*/
|
|
57
|
-
export interface RuntimeSpec extends Pick<ApplicationSpec, 'appMetadata'
|
|
91
|
+
export interface RuntimeSpec extends Pick<ApplicationSpec, 'appMetadata'> {
|
|
92
|
+
readonly dataSpec: RuntimeDataSpec;
|
|
58
93
|
readonly configurator: RuntimeConfiguratorSpec;
|
|
59
94
|
readonly admin: RuntimeAdminSpec;
|
|
60
95
|
readonly infra: RuntimeInfra;
|
|
61
96
|
}
|
|
62
97
|
/**
|
|
63
|
-
* Takes from a parsed application spec the part the runtime reads.
|
|
64
|
-
*
|
|
65
|
-
* runtime does not read.
|
|
98
|
+
* Takes from a parsed application spec the part the runtime reads. It reuses the sections it keeps
|
|
99
|
+
* whole, and builds trimmed copies of the model versions, data schemas, assistant and data spec
|
|
100
|
+
* without what the runtime does not read.
|
|
66
101
|
*/
|
|
67
102
|
export declare const toRuntimeSpec: (spec: ApplicationSpec) => RuntimeSpec;
|
|
68
103
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let e=e=>({versionKey:e.versionKey,entityTypes:e.entityTypes,rootEntityTypes:e.rootEntityTypes,aliases:e.aliases,commonTypes:e.commonTypes,entitySchemas:e.entitySchemas.map(e=>({entityType:e.entityType,shapeSchema:e.shapeSchema}))}),s=
|
|
1
|
+
let e=e=>({versionKey:e.versionKey,entityTypes:e.entityTypes,rootEntityTypes:e.rootEntityTypes,aliases:e.aliases,commonTypes:e.commonTypes,entitySchemas:e.entitySchemas.map(e=>({entityType:e.entityType,shapeSchema:e.shapeSchema}))}),s=e=>({runtimeSchema:e.runtimeSchema}),a=s=>{let a;return{latestModel:{...e(a=s.latestModel),shapes:new Map([...a.shapes].map(([e,s])=>[e,{name:s.name,runtimeSchema:s.runtimeSchema}]))},resolvedVersions:{latestVersion:s.resolvedVersions.latestVersion,versionedModels:s.resolvedVersions.versionedModels.map(s=>({version:s.version,key:s.key,isLatest:s.isLatest,migrationFile:s.migrationFile,modelVersion:e(s.modelVersion)}))}}};export const toRuntimeSpec=e=>{let t,{configurator:n,admin:i,infra:r}=e;return{configurator:{components:n.components,presets:n.presets,expressions:n.expressions,actions:n.actions,invariants:n.invariants,dataSchemas:{publishedDataHash:(t=n.dataSchemas).publishedDataHash,publishedData:s(t.publishedData),sessionData:s(t.sessionData),frontendData:s(t.frontendData),backendData:t.backendData&&s(t.backendData),finalizeData:s(t.finalizeData),prefetchedFinalizeData:s(t.prefetchedFinalizeData),finalizeResult:s(t.finalizeResult),callbackData:s(t.callbackData)},defaults:n.defaults,states:n.states,theme:n.theme,ui:n.ui,transformers:n.transformers,assistant:n.assistant&&{resolved:n.assistant.resolved},...a(n)},admin:{components:i.components,presets:i.presets,expressions:i.expressions,invariants:i.invariants,defaults:i.defaults,states:i.states,adminPages:i.adminPages,...a(i)},appMetadata:e.appMetadata,infra:{acl:r.acl,resources:r.resources,resourcesConfig:r.resourcesConfig},dataSpec:{entries:e.dataSpec.entries,chunks:e.dataSpec.chunks}}};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MemoEvalPlan } from '
|
|
1
|
+
import type { MemoEvalPlan } from '#package/domain';
|
|
2
2
|
/**
|
|
3
3
|
* The id under which the generated `.phoenix/spec-code.ts` holds one piece of code written in YAML,
|
|
4
4
|
* and under which the runtime looks it up. Ids are unique within one domain; the configurator and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Branded as e}from"@salsita-ai/common/utils";import{ParseContext as s}from"../core/index.js";import{
|
|
1
|
+
import{Branded as e}from"@salsita-ai/common/utils";import{ParseContext as s}from"../core/index.js";import{DiagnosticCode as t,diagnosticMessages as r}from"../errors/index.js";import{CategorizedFiles as i}from"./categorize/index.js";import{MergedSpec as a}from"./merge/index.js";import{RawSpecFiles as p}from"./raw-spec/parse-raw-spec.js";import{RawMockTemplates as o}from"./raw-spec/raw-mock-templates.js";import{ResolvedSpecFiles as l}from"./resolve/index.js";import{ApplicationSpec as n}from"./spec/index.js";export const parseApplicationFiles=(m,c)=>{let{rawProjectFiles:d,phxDefinitions:f}=m,{evalExpressionParser:u,referenceStore:F,parsingContext:A}=c,g=A??new s,w=g.startSpan("parseApplicationFiles","build","parse-application-files.ts"),R=i(d,F,g,c);if(!R)return w(),g.toResult(void 0);let S=g.startSpan("RawSpecFiles","parseApplicationFiles","parse-raw-spec.ts"),T=p(R.spec,g);S();let j=g.startSpan("RawMockTemplates","parseApplicationFiles","raw-mock-templates.ts"),O=o(R.mockTemplates,g);if(j(),!T)return w(),g.toResult(void 0);let k=g.startSpan("ResolvedSpecFiles","parseApplicationFiles","resolved-spec-files.ts"),v=l(T,d,g);k();let x=g.startSpan("MergedSpec","parseApplicationFiles","merged-spec.ts"),H=a(v,g);if(x(),g.hasErrors)return w(),g.toResult(void 0);let E=g.startSpan("ApplicationSpec","parseApplicationFiles","application-spec.ts"),M=n({merged:H,migrationFiles:R.migrations,adminMigrationFiles:R.adminMigrations,transformerFiles:R.transformers.map(e=>e.file.name),phxDefinitions:f,evalExpressionParser:u},g);return(E(),M)?(!R.hasWebhookEntry&&(M.appMetadata.useAuthHook||M.appMetadata.useClerk)&&g.warning(t.AUTH_WITHOUT_PROJECT_WEBHOOK,r.AUTH_WITHOUT_PROJECT_WEBHOOK()),w(),g.toResult(e({rawProjectFiles:d,categorizedFiles:R,rawMockTemplates:O,applicationSpec:M}))):(w(),g.toResult(void 0))};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { type EnhancedJsonValue } from '#package/domain';
|
|
2
3
|
import { type EnhancedJsonSchemaType } from '../../core/enhanced-json-schema.js';
|
|
3
|
-
import { type EnhancedJsonValue } from '../../core/enhanced-json-value.js';
|
|
4
4
|
/**
|
|
5
5
|
* Discriminator tag for a single parsed expression entry.
|
|
6
6
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{z as
|
|
1
|
+
import{z as e}from"zod";import{EVAL_MARKER_KEY as r,MSG_ID_MARKER_KEY as n,MSG_MARKER_KEY as s,evalMarkerSchema as o,msgMarkerSchema as a}from"#package/domain";import{enhancedJsonSchema as i,extendEnhancedJsonSchema as t}from"../../core/enhanced-json-schema.js";export const RawExpressionKind={User:"user",Value:"value"};let c=t(o),m=t(a),d=[r,s,n],p=e=>{let r={};for(let[n,s]of Object.entries(e))d.includes(n)||(r[n]=s);return r};export const rawExpressionEntrySchema=e.union([c,m,i]).transform(e=>{if(r in e)return{kind:RawExpressionKind.Value,constant:!1,value:{[r]:e.$eval},schema:p(e)};if(s in e){let r=void 0!==e.$msgId?{[s]:e.$msg,[n]:e.$msgId}:{[s]:e.$msg};return{kind:RawExpressionKind.Value,constant:!1,value:r,schema:p(e)}}return{kind:RawExpressionKind.User,schema:e}});export const rawExpressionsSchema=e.record(e.string(),e.record(e.string(),rawExpressionEntrySchema).readonly()).readonly();
|
package/dist/application-spec/parse-application-files/spec/components/bindings/read-binding.d.ts
CHANGED
|
@@ -1,18 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ComponentReadBinding as ComponentReadBindingData } from '#package/domain';
|
|
2
2
|
import type { ParseContext } from '../../../../core/index.js';
|
|
3
3
|
import type { EntityOrAliasName, InstanceName, ResolvedShape } from '../../model/index.js';
|
|
4
|
-
/**
|
|
5
|
-
|
|
6
|
-
* Used for memoEval dependency tracking — the target becomes `self.target` in generated code.
|
|
7
|
-
* Field targets are validated against the entity shape; expression targets ($-prefixed)
|
|
8
|
-
* are accepted without validation (they may be inferred during Phase C).
|
|
9
|
-
*/
|
|
10
|
-
export type ComponentReadBinding = Branded<'ComponentReadBinding', {
|
|
11
|
-
/** The raw target string from `$read` (e.g. "height" or "$price"). */
|
|
12
|
-
readonly target: string;
|
|
13
|
-
/** Whether the target is an expression (starts with `$`) or a shape field. */
|
|
14
|
-
readonly isExpression: boolean;
|
|
15
|
-
}>;
|
|
4
|
+
/** A validated `$read` dependency of a component; see {@link ComponentReadBindingData | ComponentReadBinding} in `domain`. */
|
|
5
|
+
export type ComponentReadBinding = ComponentReadBindingData;
|
|
16
6
|
export interface ComponentReadBindingContext {
|
|
17
7
|
readonly entityKey: EntityOrAliasName;
|
|
18
8
|
readonly componentName: string;
|
package/dist/application-spec/parse-application-files/spec/components/bindings/write-binding.d.ts
CHANGED
|
@@ -1,42 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { AssertionKind, ComponentWriteBinding as ComponentWriteBindingData } from '#package/domain';
|
|
2
2
|
import { type EnhancedJsonSchemaType, type ParseContext } from '../../../../core/index.js';
|
|
3
3
|
import { type EntityOrAliasName, type InstanceName, type ResolvedShape } from '../../model/index.js';
|
|
4
|
-
|
|
5
|
-
* Runtime type assertion to emit in the write callback.
|
|
6
|
-
* Resolved from the target entity field's schema during parsing.
|
|
7
|
-
*/
|
|
8
|
-
export type AssertionKind = {
|
|
9
|
-
readonly kind: 'declaredType';
|
|
10
|
-
readonly typeName: string;
|
|
11
|
-
} | {
|
|
12
|
-
readonly kind: 'declaredTypeId';
|
|
13
|
-
readonly referencedType: string;
|
|
14
|
-
} | {
|
|
15
|
-
readonly kind: 'primitive';
|
|
16
|
-
readonly assertFn: 'assertString' | 'assertNumber' | 'assertBoolean';
|
|
17
|
-
} | {
|
|
18
|
-
readonly kind: 'literal';
|
|
19
|
-
readonly value: null;
|
|
20
|
-
} | {
|
|
21
|
-
readonly kind: 'anyOf';
|
|
22
|
-
readonly assertions: readonly AssertionKind[];
|
|
23
|
-
} | {
|
|
24
|
-
readonly kind: 'none';
|
|
25
|
-
};
|
|
4
|
+
export type { AssertionKind } from '#package/domain';
|
|
26
5
|
/**
|
|
27
6
|
* Resolves the assertion kind from a field's schema.
|
|
28
7
|
* Ported from domain-spec/spec/resolve-assertions.ts.
|
|
29
8
|
*/
|
|
30
9
|
export declare const resolveAssertionKind: (fieldSchema: EnhancedJsonSchemaType) => AssertionKind;
|
|
31
|
-
/**
|
|
32
|
-
|
|
33
|
-
* Includes the resolved assertion kind for runtime type checking in the write callback.
|
|
34
|
-
*/
|
|
35
|
-
export type ComponentWriteBinding = Branded<'ComponentWriteBinding', {
|
|
36
|
-
readonly propKey: string;
|
|
37
|
-
readonly entityField: string;
|
|
38
|
-
readonly assertion: AssertionKind;
|
|
39
|
-
}>;
|
|
10
|
+
/** A validated `$write` or `$bind` mapping of a component; see {@link ComponentWriteBindingData | ComponentWriteBinding} in `domain`. */
|
|
11
|
+
export type ComponentWriteBinding = ComponentWriteBindingData;
|
|
40
12
|
export interface ComponentWriteBindingContext {
|
|
41
13
|
readonly entityKey: EntityOrAliasName;
|
|
42
14
|
readonly componentName: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { type
|
|
1
|
+
import type { ComponentFilters as ComponentFiltersData } from '#package/domain';
|
|
2
|
+
import { type EnhancedJsonSchemaType, type EnhancedJsonValue } from '../../../core/index.js';
|
|
3
3
|
/**
|
|
4
4
|
* Schema types for each filter criterion, used for expression inference.
|
|
5
5
|
* When `$read: '$expr'` appears in a filter criterion, the expression is
|
|
@@ -7,14 +7,8 @@ import { type ComponentFilter, type EnhancedJsonSchemaType, type EnhancedJsonVal
|
|
|
7
7
|
* infers `$x` as `boolean`).
|
|
8
8
|
*/
|
|
9
9
|
export declare const FILTER_CRITERION_SCHEMAS: Readonly<Record<string, EnhancedJsonSchemaType>>;
|
|
10
|
-
/**
|
|
11
|
-
|
|
12
|
-
* `ComponentFilter` represents one alternative filter condition; multiple
|
|
13
|
-
* entries arise from `$or`. Empty `items` means no filter is applied.
|
|
14
|
-
*/
|
|
15
|
-
export type ComponentFilters = Branded<'ComponentFilters', {
|
|
16
|
-
readonly items: readonly ComponentFilter[];
|
|
17
|
-
}>;
|
|
10
|
+
/** The validated `$filter` entries of a component instance; see {@link ComponentFiltersData | ComponentFilters} in `domain`. */
|
|
11
|
+
export type ComponentFilters = ComponentFiltersData;
|
|
18
12
|
/**
|
|
19
13
|
* Parses a raw `$filter` value into a {@link ComponentFilters}. The shape is
|
|
20
14
|
* guaranteed by upstream AJV validation against `ComponentSystemFilter` — this
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ComponentEntry, Components as ComponentsData } from '#package/domain';
|
|
2
2
|
import type { ParseContext } from '../../../core/index.js';
|
|
3
3
|
import type { Aliases } from '../model/index.js';
|
|
4
|
-
import type { ComponentEntry } from './component-entry.js';
|
|
5
4
|
import type { UserComponents } from './user-components.js';
|
|
6
|
-
/**
|
|
7
|
-
export type Components =
|
|
5
|
+
/** The merged components of a domain; see {@link ComponentsData | Components} in `domain`. */
|
|
6
|
+
export type Components = ComponentsData;
|
|
8
7
|
interface ComponentsProps {
|
|
9
8
|
readonly userComponents: UserComponents;
|
|
10
9
|
readonly generatedComponents: readonly ComponentEntry[];
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
+
export { type ComponentEntry, type ComponentImplementation, type ComponentPropTarget, type CompositeImplementation, type RootReadImplementation, type SdkFactory, type SdkFactoryParam, isComponentPropTarget, } from '#package/domain';
|
|
1
2
|
export * from './bindings/index.js';
|
|
2
|
-
export type * from './component-entry.js';
|
|
3
3
|
export * from './component-filter.js';
|
|
4
|
-
export * from './component-prop-target.js';
|
|
5
4
|
export * from './components.js';
|
|
6
5
|
export * from './sdk-component-entry.js';
|
|
7
6
|
export * from './user-component-entry.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export{isComponentPropTarget}from"#package/domain";export*from"./bindings/index.js";export*from"./component-filter.js";export*from"./components.js";export*from"./sdk-component-entry.js";export*from"./user-component-entry.js";export*from"./user-components.js";
|
package/dist/application-spec/parse-application-files/spec/components/sdk-component-entry.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import type { ComponentEntry, SdkFactory } from '#package/domain';
|
|
1
2
|
import type { Aliases, EntityOrAliasName, InstanceName } from '../model/index.js';
|
|
2
|
-
import type { ComponentEntry, SdkFactory } from './component-entry.js';
|
|
3
3
|
import type { ComponentFilters } from './component-filter.js';
|
|
4
4
|
interface SdkComponentImplementation {
|
|
5
5
|
readonly kind: 'sdk';
|
package/dist/application-spec/parse-application-files/spec/components/user-component-entry.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
+
import type { ComponentEntry, SpecExpression } from '#package/domain';
|
|
1
2
|
import { type EnhancedJsonObject, type ParseContext } from '../../../core/index.js';
|
|
2
3
|
import { type ValueTypeResolution } from '../common/index.js';
|
|
3
4
|
import type { ExpressionRead } from '../expressions/expression-read.js';
|
|
4
|
-
import type { Expression } from '../expressions/expression.js';
|
|
5
5
|
import type { EntityOrAliasName, InstanceName, ResolvedShape } from '../model/index.js';
|
|
6
|
-
import type { ComponentEntry } from './component-entry.js';
|
|
7
6
|
interface UserComponentProps {
|
|
8
7
|
readonly typeOrAlias: EntityOrAliasName;
|
|
9
8
|
readonly instanceName: InstanceName;
|
|
@@ -18,7 +17,7 @@ interface UserComponentContext {
|
|
|
18
17
|
}
|
|
19
18
|
export interface UserComponentResult {
|
|
20
19
|
readonly entry: ComponentEntry;
|
|
21
|
-
readonly inferredExpressions: readonly
|
|
20
|
+
readonly inferredExpressions: readonly SpecExpression[];
|
|
22
21
|
/** Every `$read` of an expression in the instance, with the type expected where it is read. */
|
|
23
22
|
readonly expressionReads: readonly ExpressionRead[];
|
|
24
23
|
}
|
package/dist/application-spec/parse-application-files/spec/components/user-component-entry.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Branded as e}from"@salsita-ai/common/utils";import{componentsByName as t}from"#package/domain";import{FILTER_CRITERION_KEYS as n,FILTER_KEY as r,FILTER_OR_KEY as i,READ_MARKER_KEY as o,isEnhancedJsonObject as a,isEvalMarker as
|
|
1
|
+
import{Branded as e}from"@salsita-ai/common/utils";import{componentsByName as t}from"#package/domain";import{FILTER_CRITERION_KEYS as n,FILTER_KEY as r,FILTER_OR_KEY as i,READ_MARKER_KEY as o,isEnhancedJsonObject as a,isEvalMarker as p,isImportRefShaped as m,isRawBindMarker as s,isRawDataRefMarker as d,isRawEvalWriteMarker as l,isRawReadMarker as c,isRawReadWriteMarker as f,navigateSchema as y}from"../../../core/index.js";import{DiagnosticCode as u,diagnosticMessages as g}from"../../../errors/index.js";import{ValueType as N,valueTypeAt as $}from"../common/index.js";import{MemoEvalPlan as O}from"../expressions/index.js";import{ComponentReadBinding as S,ComponentWriteBinding as A,checkReadBindingType as k,componentPath as R,formatComponentPropPath as T,isExpressionReadTarget as b}from"./bindings/index.js";import{ComponentFilters as h,FILTER_CRITERION_SCHEMAS as P}from"./component-filter.js";import{componentStateType as E}from"./component-state-type.js";import{FILTER_CRITERION_TYPE_SCHEMAS as j,ROOT_FILTER_TYPE_SCHEMA as x}from"./filter-criterion-types.js";import{checkStaticEntityId as _}from"./static-entity-id.js";let v=(e,t,n,r)=>{if(null==e||"object"!=typeof e)return void 0!==e&&n.checkStaticValue(e,t),e;if(c(e))return n.addReadBinding(e.$read,t,"$read"),{$target:e.$read};if(d(e))return void r.parsingContext.at(String(r.entityKey),r.componentName,String(r.instanceName),...t.map(String)).error(u.COMPONENT_DATA_REF_UNSUPPORTED,g.COMPONENT_DATA_REF_UNSUPPORTED(String(r.entityKey),r.componentName,String(r.instanceName),T(t),e.$read,e.$data));if(s(e))return n.addReadBinding(e.$bind,t,"$bind"),{$target:e.$bind};if(p(e))return e;if(m(e))return void r.parsingContext.at(String(r.entityKey),r.componentName,String(r.instanceName),...t.map(String)).error(u.COMPONENT_IMPORT_REF_UNSUPPORTED,g.COMPONENT_IMPORT_REF_UNSUPPORTED(String(r.entityKey),r.componentName,String(r.instanceName),T(t),e.$importRef.module,e.$importRef.member));if(Array.isArray(e))return e.map((e,i)=>v(e,[...t,i],n,r)).filter(e=>void 0!==e);let i={};for(let[o,a]of Object.entries(e)){let e=v(a,[...t,o],n,r);void 0!==e&&(i[o]=e)}return i},C=(t,n,r)=>{for(let i of t.items)if("gradual"===i.kind){for(let[t,o]of Object.entries(i))if("kind"!==t&&o?.kind==="dynamic"&&o.target&&b(o.target)){let i=P[t];i&&r.push(e({entityKey:n,name:o.target,schema:i,implementation:{kind:"user"}}))}}},U=(e,t,n,r)=>{if("string"==typeof e||"number"==typeof e||"boolean"==typeof e||null===e)return void _(e,t,n,r);if("object"==typeof e)for(let[i,o]of Object.entries(e)){let a=Array.isArray(e)?Number(i):i;U(o,[...t,a],$(n,[a]),r)}};export const UserComponentEntry=(p,m)=>{let{implementation:d,inferredExpressions:c,expressionReads:T}=((p,m)=>{let d,c=t.get(p.componentName),T=c?.schema,P=new Set,w=[],D=[],I=[],K={entityKey:p.typeOrAlias,componentName:p.componentName,instanceName:p.instanceName,resolvedShape:m.resolvedShape,parsingContext:m.parsingContext},B={entityKey:p.typeOrAlias,componentName:p.componentName,instanceName:p.instanceName,resolvedShape:m.resolvedShape,parsingContext:m.parsingContext},F={...K,typeResolution:m.typeResolution},M=e=>T?$(d??=E(T,m.typeResolution),e):[{kind:"unknown"}],G=[],V=e=>{b(e.target)?G.push({entityKey:p.typeOrAlias,name:e.target,expected:e.expected,location:R(K,e.path)}):k(e,F)},L=(t,n,r)=>{if(V({marker:r,target:t,path:n,expected:M(n)}),!P.has(t)&&(P.add(t),w.push(S(t,K)),b(t)&&T)){let r=((t,n,r,i)=>{let{schema:o,lastDeclaredType:a,pathSinceDeclaredType:p}=y(r,n),m=n=>e({entityKey:i,name:t,schema:n,implementation:{kind:"user"}});if(void 0!==a){let e=p.map(e=>"number"==typeof e?"[number]":`['${e}']`).join("");return m({...o,tsType:`${a.tsType}${e}`,import:a.import})}if(Object.keys(o).length>0)return m(o)})(t,n,T,p.typeOrAlias);r&&I.push(r)}},W={addReadBinding:L,checkStaticValue:(e,t)=>_(e,t,M(t),K)},q=h(p.rawProps[r]);((e,t,o,p)=>{let m=e=>N(e,{...o.typeResolution,author:"sdk"}),s=void 0!==e&&a(e)&&Array.isArray(e[i]);for(let[e,a]of t.items.entries()){let t=s?[r,i,e]:[r];if("root"===a.kind){p({marker:"$read",target:a.target,path:t,expected:m(x)});continue}for(let e of n){let n=a[e],r=[...t,e],i=m(j[e]);n?.kind==="dynamic"?p({marker:"$read",target:n.target,path:r,expected:i}):n?.kind==="static"&&U(n.value,r,i,o)}}})(p.rawProps[r],q,F,V);let z=`${String(p.typeOrAlias)}.${String(p.instanceName)}`;if((e=>{if(!(o in e)||"string"!=typeof e[o])return!1;for(let t of Object.keys(e))if(t!==o&&t!==r)return!1;return!0})(p.rawProps)){let e=p.rawProps[o];return L(e,[],"$read"),C(q,p.typeOrAlias,I),{implementation:{kind:"userBound",filters:q,plan:O({$target:e},z),implementation:{kind:"rootRead",readBinding:w[0]}},inferredExpressions:I,expressionReads:G}}let H={};for(let[e,t]of Object.entries(p.rawProps)){if(e===r)continue;if(s(t)){D.push(A(e,t.$bind,B)),L(t.$bind,[e],"$bind"),H[e]={$target:t.$bind};continue}if(f(t)){L(t.$read,[e],"$read"),D.push(A(e,t.$write,B)),H[e]={$target:t.$read};continue}if(l(t)){D.push(A(e,t.$write,B)),H[e]={$eval:t.$eval};continue}let n=v(t,[e],W,K);void 0!==n&&(H[e]=n)}let J=new Map;for(let e of D){let t=J.get(e.entityField);t?m.parsingContext.error(u.WRITE_BINDING_DUPLICATE_TARGET,g.WRITE_BINDING_DUPLICATE_TARGET(String(p.typeOrAlias),p.componentName,String(p.instanceName),e.entityField,t,e.propKey)):J.set(e.entityField,e.propKey)}return C(q,p.typeOrAlias,I),{implementation:{kind:"userBound",filters:q,plan:O(H,z),implementation:{kind:"composite",resolvedProps:H,readBindings:w,writeBindings:D}},inferredExpressions:I,expressionReads:G}})(p,m);return{entry:e({typeOrAlias:p.typeOrAlias,instanceName:p.instanceName,isAlias:"alias"===m.resolvedShape.kind,componentName:p.componentName,implementation:d}),inferredExpressions:c,expressionReads:T}};
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { Branded } from '@salsita-ai/common/utils';
|
|
2
|
+
import type { ComponentEntry, SpecExpression } from '#package/domain';
|
|
2
3
|
import type { ParseContext, PhoenixDefinitions } from '../../../core/index.js';
|
|
3
4
|
import type { MergedComponents } from '../../merge/index.js';
|
|
4
5
|
import type { ExpressionRead } from '../expressions/expression-read.js';
|
|
5
|
-
import type { Expression } from '../expressions/expression.js';
|
|
6
6
|
import type { ModelVersion } from '../model/index.js';
|
|
7
|
-
import type { ComponentEntry } from './component-entry.js';
|
|
8
7
|
/** User-declared component entries, flattened from the nested merge map. */
|
|
9
8
|
export type UserComponents = Branded<'UserComponents', readonly ComponentEntry[]>;
|
|
10
9
|
interface UserComponentsContext {
|
|
@@ -14,7 +13,7 @@ interface UserComponentsContext {
|
|
|
14
13
|
}
|
|
15
14
|
interface UserComponentsResult {
|
|
16
15
|
readonly components: UserComponents;
|
|
17
|
-
readonly expressions: readonly
|
|
16
|
+
readonly expressions: readonly SpecExpression[];
|
|
18
17
|
/** Every `$read` of an expression in a component, with the type expected where it is read. */
|
|
19
18
|
readonly expressionReads: readonly ExpressionRead[];
|
|
20
19
|
}
|
package/dist/application-spec/parse-application-files/spec/expressions/expression-read-types.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
+
import type { SpecExpression } from '#package/domain';
|
|
1
2
|
import type { ParseContext } from '../../../core/index.js';
|
|
2
3
|
import type { EntityOrAliasName, ExpressionName, ModelTypeResolution } from '../model/index.js';
|
|
3
4
|
import type { ExpressionRead } from './expression-read.js';
|
|
4
|
-
import type { Expression } from './expression.js';
|
|
5
5
|
/** Where an expression is declared: the spec section and the entity or alias under it. */
|
|
6
6
|
export interface ExpressionLocation {
|
|
7
7
|
readonly section: string;
|
|
8
8
|
readonly entityKey: EntityOrAliasName;
|
|
9
9
|
}
|
|
10
10
|
interface ExpressionReadTypesInput {
|
|
11
|
-
readonly userExpressions: readonly
|
|
11
|
+
readonly userExpressions: readonly SpecExpression[];
|
|
12
12
|
readonly expressionReads: readonly ExpressionRead[];
|
|
13
13
|
/** Finds where a read expression is declared, which is where a conflict is reported. */
|
|
14
14
|
readonly locateDeclaration: (entityKey: EntityOrAliasName, name: ExpressionName) => ExpressionLocation;
|
|
@@ -1,37 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Expressions as ExpressionsData, SpecExpression } from '#package/domain';
|
|
2
2
|
import { type EvalExpressionParser, type ParseContext, type PhoenixDefinitions } from '../../../core/index.js';
|
|
3
3
|
import type { MergedExpressions } from '../../merge/index.js';
|
|
4
|
-
import { type Aliases, type
|
|
4
|
+
import { type Aliases, type EntityTypeName, type ModelVersion } from '../model/index.js';
|
|
5
5
|
import type { ExpressionRead } from './expression-read.js';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
* Resolved expressions for a single entity type. Holds the ordered list of
|
|
11
|
-
* shape source keys (entity itself + aliases it belongs to) — codegen appends
|
|
12
|
-
* `"Expressions"` to each key to reference the typed expression group.
|
|
13
|
-
*/
|
|
14
|
-
export type EntityExpressions = Branded<'EntityExpressions', {
|
|
15
|
-
/** Entity/alias keys whose expressions this entity inherits. Codegen appends "Expressions" suffix. */
|
|
16
|
-
readonly shapeGroups: readonly EntityOrAliasName[];
|
|
17
|
-
}>;
|
|
18
|
-
/**
|
|
19
|
-
* Final merged expressions for a domain — user-declared + inferred.
|
|
20
|
-
* The internal `expressions` map groups by entity/alias for codegen/runtime lookups.
|
|
21
|
-
* `entityExpressions` provides per-entity alias expansion.
|
|
22
|
-
* `constants` projects the self-free `constants:` values, grouped like `expressions`;
|
|
23
|
-
* codegen passes them to the enhanced entity/alias reflections so they are readable at
|
|
24
|
-
* module level (`phx.domain.enhancedModel.$Wall.$maxWidth`). A constant whose plan uses
|
|
25
|
-
* `self` needs an instance, so it stays an ordinary value expression and is absent here.
|
|
26
|
-
*/
|
|
27
|
-
export type Expressions = Branded<'Expressions', {
|
|
28
|
-
readonly expressions: ReadonlyMap<EntityOrAliasName, ReadonlyMap<ExpressionName, Expression>>;
|
|
29
|
-
readonly entityExpressions: ReadonlyMap<EntityTypeName, EntityExpressions>;
|
|
30
|
-
readonly constants: ReadonlyMap<EntityOrAliasName, ReadonlyMap<ExpressionName, MemoEvalPlan>>;
|
|
31
|
-
}>;
|
|
6
|
+
export type { EntityExpressions } from '#package/domain';
|
|
7
|
+
export type { ExpressionImplementation, SpecExpression as Expression } from '#package/domain';
|
|
8
|
+
/** The merged expressions of a domain; see {@link ExpressionsData | Expressions} in `domain`. */
|
|
9
|
+
export type Expressions = ExpressionsData;
|
|
32
10
|
interface ExpressionsProps {
|
|
33
11
|
readonly rawExpressions: MergedExpressions;
|
|
34
|
-
readonly inferredExpressions: readonly
|
|
12
|
+
readonly inferredExpressions: readonly SpecExpression[];
|
|
35
13
|
/** The `$read`s of expressions in components, whose expected types the expressions must share. */
|
|
36
14
|
readonly expressionReads: readonly ExpressionRead[];
|
|
37
15
|
}
|
|
@@ -1,74 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export type
|
|
5
|
-
/**
|
|
6
|
-
* A single entry in the memoEval deps array.
|
|
7
|
-
*
|
|
8
|
-
* - `'eval'` — a `$eval` code fragment. At deps-build time the fragment is
|
|
9
|
-
* evaluated under `self` (`new Function('self', …)` at runtime, spliced
|
|
10
|
-
* verbatim under `self => [...]` in codegen). `label` annotates codegen
|
|
11
|
-
* output (e.g. `/* $eval: Entity.instance *\/`).
|
|
12
|
-
* - `'read'` — a read binding that resolves to `self[target]` at deps-build
|
|
13
|
-
* time.
|
|
14
|
-
*/
|
|
15
|
-
export type MemoEvalDep = Branded<'MemoEvalDep', {
|
|
16
|
-
readonly kind: 'eval';
|
|
17
|
-
readonly code: string;
|
|
18
|
-
readonly label: string;
|
|
19
|
-
} | {
|
|
20
|
-
readonly kind: 'read';
|
|
21
|
-
readonly target: string;
|
|
22
|
-
}>;
|
|
23
|
-
/**
|
|
24
|
-
* Tree of values with slots referencing entries in the plan's `deps` array.
|
|
25
|
-
* Generated by codegen as a JS literal with params spliced in, or by runtime
|
|
26
|
-
* by walking and substituting from the `deps`-materialised values array.
|
|
27
|
-
*/
|
|
28
|
-
export type MemoEvalTemplate = Branded<'MemoEvalTemplate', {
|
|
29
|
-
readonly kind: 'literal';
|
|
30
|
-
readonly value: MemoEvalLiteral;
|
|
31
|
-
} | {
|
|
32
|
-
readonly kind: 'msg';
|
|
33
|
-
readonly marker: MsgMarker;
|
|
34
|
-
} | {
|
|
35
|
-
readonly kind: 'slot';
|
|
36
|
-
readonly depIndex: number;
|
|
37
|
-
} | {
|
|
38
|
-
readonly kind: 'array';
|
|
39
|
-
readonly items: readonly MemoEvalTemplate[];
|
|
40
|
-
} | {
|
|
41
|
-
readonly kind: 'object';
|
|
42
|
-
readonly entries: ReadonlyArray<readonly [string, MemoEvalTemplate]>;
|
|
43
|
-
}>;
|
|
44
|
-
export type MemoEvalPlanInput = MemoEvalLiteral | EvalMarker | MsgMarker | ComponentPropTarget | MemoEvalPlanInputArray | MemoEvalPlanInputObject;
|
|
45
|
-
export interface MemoEvalPlanInputArray extends ReadonlyArray<MemoEvalPlanInput> {
|
|
46
|
-
}
|
|
47
|
-
export interface MemoEvalPlanInputObject {
|
|
48
|
-
readonly [key: string]: MemoEvalPlanInput;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Normalized plan for producing a memoized reader from a tree containing
|
|
52
|
-
* `$eval`, `$target`, `$msg`, and literal nodes. Built once during spec
|
|
53
|
-
* parsing; codegen + runtime both generate from the same plan so their outputs
|
|
54
|
-
* cannot drift.
|
|
55
|
-
*
|
|
56
|
-
* - `deps` — ordered evaluation slots in first-seen walk order. Each slot
|
|
57
|
-
* dedupes (`$eval` by trimmed code, `$target` by name) so a repeated marker
|
|
58
|
-
* shares one dep.
|
|
59
|
-
* - `template` — rebuilt value tree with `slot { depIndex }` nodes in place
|
|
60
|
-
* of the consumed markers.
|
|
61
|
-
* - `usesSelf` — true when deps collection must receive `self`, either
|
|
62
|
-
* because a read dep exists or because an eval dep references `self`.
|
|
63
|
-
*
|
|
64
|
-
* When `deps` is empty the tree is fully static — generators cache
|
|
65
|
-
* non-primitive templates and keep primitive literals as bare thunks.
|
|
66
|
-
*/
|
|
67
|
-
export type MemoEvalPlan = Branded<'MemoEvalPlan', {
|
|
68
|
-
readonly deps: readonly MemoEvalDep[];
|
|
69
|
-
readonly template: MemoEvalTemplate;
|
|
70
|
-
readonly usesSelf: boolean;
|
|
71
|
-
}>;
|
|
1
|
+
import { type MemoEvalPlan as MemoEvalPlanData, type MemoEvalPlanInput } from '#package/domain';
|
|
2
|
+
export type { MemoEvalLiteral, MemoEvalDep, MemoEvalTemplate, MemoEvalPlanInput, MemoEvalPlanInputArray, MemoEvalPlanInputObject, } from '#package/domain';
|
|
3
|
+
/** The plan a memoized reader is built from; see {@link MemoEvalPlanData | MemoEvalPlan} in `domain`. */
|
|
4
|
+
export type MemoEvalPlan = MemoEvalPlanData;
|
|
72
5
|
/**
|
|
73
6
|
* Builds a {@link MemoEvalPlan} from a value tree that may contain `$eval`,
|
|
74
7
|
* `$target`, and `$msg` markers. Called during spec parsing from
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Branded as e}from"@salsita-ai/common/utils";import{isEvalMarker as
|
|
1
|
+
import{Branded as e}from"@salsita-ai/common/utils";import{isComponentPropTarget as r}from"#package/domain";import{isEvalMarker as t,isMsgMarker as n}from"../../../core/index.js";import{evalCodeUsesSelf as o}from"../../../enhanced-json/eval-code-uses-self.js";let l=(e,r)=>0===r.length?e:`${e}.${r.join(".")}`,i=(o,a,d,u)=>{if(void 0===o)throw Error(`MemoEvalPlan: found undefined at ${l(d,u)}, undefined cannot be generated, remove the property or use null.`);if(t(o)){let r=((r,t,n)=>{let o=t.trim();for(let e=0;e<r.length;e++){let t=r[e];if("eval"===t.kind&&t.code===o)return e}return r.push(e({kind:"eval",code:o,label:n})),r.length-1})(a,o.$eval,d);return e({kind:"slot",depIndex:r})}if(r(o)){let r=((r,t)=>{for(let e=0;e<r.length;e++){let n=r[e];if("read"===n.kind&&n.target===t)return e}return r.push(e({kind:"read",target:t})),r.length-1})(a,o.$target);return e({kind:"slot",depIndex:r})}if(n(o))return e({kind:"msg",marker:o});if(null===o||"object"!=typeof o)return e({kind:"literal",value:o});if(Array.isArray(o))return e({kind:"array",items:o.map((e,r)=>i(e,a,d,[...u,String(r)]))});if("object"!=typeof o||null===o)throw Error(`MemoEvalPlan: found unsupported value at ${l(d,u)}, remove it or use null.`);let f=[];for(let e in o){let r=o[e];f.push([e,i(r,a,d,[...u,e])])}return e({kind:"object",entries:f})};export const MemoEvalPlan=(r,t)=>{let n=[],l=i(r,n,t,[]),a=n.some(e=>"read"===e.kind||o(e.code));return e({deps:n,template:l,usesSelf:a})};
|
package/dist/application-spec/parse-application-files/spec/expressions/user-expressions.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import type { SpecExpression } from '#package/domain';
|
|
1
2
|
import { type EvalExpressionParser, type ParseContext } from '../../../core/index.js';
|
|
2
3
|
import type { MergedExpressions } from '../../merge/index.js';
|
|
3
4
|
import type { ModelTypeResolution, ModelVersion } from '../model/index.js';
|
|
4
|
-
import type { Expression } from './expression.js';
|
|
5
5
|
/**
|
|
6
6
|
* Validates user-declared expressions from merged YAML.
|
|
7
7
|
*
|
|
@@ -19,5 +19,5 @@ interface UserExpressionsContext {
|
|
|
19
19
|
readonly typeResolution: ModelTypeResolution;
|
|
20
20
|
readonly parsingContext: ParseContext;
|
|
21
21
|
}
|
|
22
|
-
export declare const UserExpressions: (rawExpressions: MergedExpressions, context: UserExpressionsContext) => readonly
|
|
22
|
+
export declare const UserExpressions: (rawExpressions: MergedExpressions, context: UserExpressionsContext) => readonly SpecExpression[] | undefined;
|
|
23
23
|
export {};
|