@salsita-ai/sdk 0.50.0-develop.6d8967bc99 → 0.50.0-develop.71209819cd
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/admin/create-admin-pages-from-spec.d.ts +1 -1
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-domain-block.js +36 -36
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.d.ts +1 -1
- package/dist/application-spec/generate-application/code/templates/domain-spec/generate-invariants.js +1 -1
- package/dist/application-spec/generate-application/code/templates/env-example.js +4 -0
- package/dist/application-spec/generate-application/code/templates/skills/phoenix-create-configurator-skill.js +66 -42
- package/dist/application-spec/generate-application/code/templates/skills/sdk-content.d.ts +4 -4
- package/dist/application-spec/generate-application/code/templates/skills/sdk-content.js +4 -4
- package/dist/application-spec/generate-application/code/templates/webhook-builders.js +4 -3
- package/dist/application-spec/generate-application/code/templates/webhooks-config.js +2 -2
- package/dist/application-spec/parse-application-files/raw-spec/raw-assistant.js +1 -1
- 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 +34 -0
- package/dist/client/contract.js +1 -1
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.js +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 +3 -1
- package/dist/client/memory-authorized-client.js +1 -1
- package/dist/client/phoenix-api.d.ts +215 -2
- package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +89 -2
- package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
- 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.js +1 -1
- package/dist/configurator/application-runtime/extensions/systems/index.d.ts +1 -1
- package/dist/configurator/ui/assistant/AssistantComposer.d.ts +2 -1
- package/dist/configurator/ui/assistant/AssistantComposer.js +1 -1
- package/dist/configurator/ui/assistant/AssistantThread.d.ts +6 -2
- package/dist/configurator/ui/assistant/AssistantThread.js +1 -1
- package/dist/configurator/ui/assistant/thread-items.d.ts +13 -2
- package/dist/configurator/ui/assistant/thread-items.js +1 -1
- package/dist/docs/index.json +1 -1
- package/dist/docs/phoenix/deployments.mdx +1 -1
- package/dist/docs/phoenix/expression-context.mdx +11 -3
- package/dist/docs/phoenix/phoenix-cli.mdx +24 -21
- package/dist/docs/phoenix/sdk-builder-workflow.mdx +6 -6
- package/dist/docs/ux-guidelines/choosing-a-control.mdx +11 -0
- package/dist/domain/admin-domain/implementation/common-admin-expressions.d.ts +10 -10
- package/dist/domain/admin-domain/index.d.ts +8 -3
- package/dist/domain/admin-domain/index.js +1 -1
- package/dist/domain/application/admin-page-factories.d.ts +1 -2
- package/dist/domain/application/application-config.d.ts +1 -21
- package/dist/domain/application/assistant/assistant-manifest.d.ts +2 -0
- package/dist/domain/application/assistant/assistant-value-type.js +1 -1
- package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
- package/dist/domain/application/assistant/generate-assistant-prompt.d.ts +1 -11
- package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
- package/dist/domain/application/assistant-mutations.d.ts +2 -1
- package/dist/domain/application/assistant-mutations.js +1 -1
- package/dist/domain/application/index.d.ts +2 -2
- package/dist/domain/application/index.js +1 -1
- package/dist/domain/application/published-data/build-legend-data.d.ts +1 -1
- package/dist/domain/application/published-data/format-field-type.d.ts +1 -1
- package/dist/domain/application/published-data/map-data-to-sheet.d.ts +1 -1
- package/dist/domain/application/published-data/map-published-chunked-data.d.ts +2 -2
- package/dist/domain/application/published-data/validate-sheet-data.d.ts +1 -1
- package/dist/domain/available-system-components.js +1 -1
- package/dist/domain/core/action/action-factory.d.ts +11 -0
- package/dist/domain/core/{action.d.ts → action/action.d.ts} +21 -16
- package/dist/domain/core/action/index.d.ts +2 -0
- package/dist/domain/core/action/index.js +1 -0
- package/dist/domain/core/component/domain-component-optic.d.ts +34 -37
- package/dist/domain/core/component/domain-component-optic.js +2 -2
- package/dist/domain/core/component/system-component-filter.d.ts +17 -17
- package/dist/domain/core/data-schema/data-cell-value.d.ts +4 -0
- package/dist/domain/core/data-schema/data-schema-array-field.d.ts +5 -0
- package/dist/domain/core/data-schema/data-schema-field-object.d.ts +4 -0
- package/dist/domain/core/data-schema/data-schema-field-object.js +1 -0
- package/dist/domain/core/data-schema/data-schema-field.d.ts +2 -0
- package/dist/domain/core/data-schema/data-schema-field.js +1 -0
- package/dist/domain/core/data-schema/data-schema-localized-field.d.ts +4 -0
- package/dist/domain/core/data-schema/data-schema-localized-field.js +1 -0
- package/dist/domain/core/data-schema/data-schema-primitive-field.d.ts +5 -0
- package/dist/domain/core/data-schema/data-schema-primitive-field.js +1 -0
- package/dist/domain/core/data-schema/data-schema.d.ts +2 -0
- package/dist/domain/core/data-schema/data-schema.js +1 -0
- package/dist/domain/core/data-schema/index.d.ts +7 -0
- package/dist/domain/core/data-schema/index.js +1 -0
- package/dist/domain/core/domain-factory.d.ts +1 -1
- package/dist/domain/core/domain.d.ts +2 -2
- package/dist/domain/core/emission/index.d.ts +8 -0
- package/dist/domain/core/emission/index.js +1 -0
- package/dist/domain/core/emission/reset-state-emission.d.ts +12 -0
- package/dist/domain/core/emission/reset-state-emission.js +1 -0
- package/dist/domain/core/emission/state-emission.d.ts +4 -0
- package/dist/domain/core/emission/state-emission.js +1 -0
- package/dist/domain/core/emission/state-update-emission.d.ts +14 -0
- package/dist/domain/core/emission/state-update-emission.js +1 -0
- package/dist/domain/core/emission/state-validation-result.d.ts +18 -0
- package/dist/domain/core/emission/state-validation-result.js +1 -0
- package/dist/domain/core/emission/transformation-log.d.ts +2 -0
- package/dist/domain/core/emission/transformation-log.js +1 -0
- package/dist/domain/core/emission/transformer-log-entry.d.ts +6 -0
- package/dist/domain/core/emission/transformer-log-entry.js +1 -0
- package/dist/domain/core/emission/transformer-log.d.ts +11 -0
- package/dist/domain/core/emission/transformer-log.js +1 -0
- package/dist/domain/core/emission/transformer-phase.d.ts +1 -0
- package/dist/domain/core/emission/transformer-phase.js +1 -0
- package/dist/domain/core/expression/aliased-expressions.d.ts +10 -0
- package/dist/domain/core/expression/aliased-expressions.js +1 -0
- package/dist/domain/core/expression/custom-expression.d.ts +7 -7
- package/dist/domain/core/expression/expression.d.ts +14 -15
- package/dist/domain/core/expression/index.d.ts +1 -2
- package/dist/domain/core/expression/index.js +1 -1
- package/dist/domain/core/index.d.ts +5 -1
- package/dist/domain/core/index.js +1 -1
- package/dist/domain/core/invariant/custom-invariants.d.ts +5 -5
- package/dist/domain/core/invariant/index.d.ts +1 -1
- package/dist/domain/core/invariant/index.js +1 -1
- package/dist/domain/core/invariant/invariants.d.ts +4 -67
- package/dist/domain/core/invariant/invariants.js +1 -1
- package/dist/domain/core/invariant/violation.d.ts +1 -1
- package/dist/domain/core/recipe/index.d.ts +1 -0
- package/dist/domain/core/recipe/index.js +1 -0
- package/dist/domain/{domain-context/recipe-system → core/recipe}/recipes.d.ts +1 -1
- package/dist/domain/core/recipe/recipes.js +1 -0
- package/dist/domain/{relations → core/relation}/all-of-type-relation.d.ts +3 -1
- package/dist/domain/core/relation/all-of-type-relation.js +1 -0
- package/dist/domain/{relations → core/relation}/component-factories.d.ts +1 -1
- package/dist/domain/core/relation/component-factories.js +1 -0
- package/dist/domain/{relations → core/relation}/composed-of.d.ts +1 -1
- package/dist/domain/core/relation/composed-of.js +1 -0
- package/dist/domain/{relations → core/relation}/direct-relation.d.ts +2 -1
- package/dist/domain/core/relation/index.d.ts +9 -0
- package/dist/domain/core/relation/index.js +1 -0
- package/dist/domain/{relations → core/relation}/indirect-relation.d.ts +3 -1
- package/dist/domain/core/relation/indirect-relation.js +1 -0
- package/dist/domain/{relations → core/relation}/reference-component.d.ts +4 -3
- package/dist/domain/core/relation/reference-component.js +1 -0
- package/dist/domain/{relations → core/relation}/reference-field.d.ts +1 -1
- package/dist/domain/core/relation/reference-field.js +1 -0
- package/dist/domain/{relations → core/relation}/relation-factory.d.ts +2 -1
- package/dist/domain/{relations → core/relation}/relation-implementation.d.ts +3 -1
- package/dist/domain/core/relation/relation-implementation.js +1 -0
- package/dist/domain/domain-builder.d.ts +2 -5
- package/dist/domain/domain-builder.js +1 -1
- package/dist/domain/domain-context/action-system/action-system.d.ts +2 -2
- package/dist/domain/domain-context/index.d.ts +1 -2
- package/dist/domain/domain-context/index.js +1 -1
- package/dist/domain/domain-context/recipe-system/recipe-cooker-system.d.ts +1 -2
- package/dist/domain/domain-context/recipe-system/recipe-cooker-system.js +1 -1
- package/dist/domain/domain-context/relation-transformers/cascade-ref-pruning.js +1 -1
- package/dist/domain/domain-context/relation-transformers/create-entity-refs.js +2 -2
- package/dist/domain/domain-context/relation-transformers/replace-refs.js +1 -1
- package/dist/domain/domain-context/store-system/store-system.d.ts +1 -32
- package/dist/domain/domain-context/transformers/context.d.ts +1 -2
- package/dist/domain/domain-context/undo-system.d.ts +1 -2
- package/dist/domain/domain-runtime/domain-context/action-context.d.ts +11 -0
- package/dist/domain/domain-runtime/domain-context/action-context.js +1 -0
- package/dist/domain/domain-runtime/domain-context/expression-context.d.ts +8 -0
- package/dist/domain/domain-runtime/domain-context/expression-context.js +1 -0
- package/dist/domain/domain-runtime/domain-context/index.d.ts +3 -0
- package/dist/domain/domain-runtime/domain-context/runtime-expression-context.d.ts +18 -0
- package/dist/domain/domain-runtime/domain-context/runtime-expression-context.js +1 -0
- package/dist/domain/domain-runtime/domain-context/selectors.d.ts +3 -2
- package/dist/domain/domain-runtime/domain-context/selectors.js +1 -1
- package/dist/domain/domain-runtime/domain-runtime.d.ts +8 -8
- package/dist/domain/domain-runtime/spec/index.d.ts +8 -0
- package/dist/domain/domain-runtime/spec/index.js +1 -1
- package/dist/domain/domain-runtime/spec/initialize.js +1 -1
- package/dist/domain/domain-runtime/spec/invariant-builder.d.ts +61 -0
- package/dist/domain/domain-runtime/spec/invariant-builder.js +1 -0
- package/dist/domain/{core/expression → domain-runtime/spec}/memoize-expression.d.ts +1 -2
- package/dist/domain/{actions → domain-runtime/spec}/prepare-action-implementations.d.ts +1 -1
- package/dist/domain/domain-runtime/spec/prepare-action-implementations.js +5 -0
- package/dist/domain/{core/expression → domain-runtime/spec}/prepare-domain-expressions.d.ts +1 -1
- package/dist/domain/domain-runtime/spec/resolve-action-modules.d.ts +4 -0
- package/dist/domain/domain-runtime/spec/resolve-action-modules.js +1 -0
- package/dist/domain/domain-runtime/spec/resolve-component-optic-modules.d.ts +4 -0
- package/dist/domain/domain-runtime/spec/resolve-component-optic-modules.js +1 -0
- package/dist/domain/domain-runtime/spec/resolve-expression-modules.d.ts +15 -0
- package/dist/domain/domain-runtime/spec/resolve-expression-modules.js +1 -0
- package/dist/domain/domain-runtime/spec/resolve-invariant-modules.d.ts +6 -0
- package/dist/domain/domain-runtime/spec/resolve-invariant-modules.js +1 -0
- package/dist/domain/{system-components → extensions}/child-entity-recipe-hierarchy.d.ts +1 -1
- package/dist/domain/extensions/child-entity-recipe-hierarchy.js +1 -0
- package/dist/domain/{system-components → extensions}/common/angle-indicator-schema.d.ts +1 -1
- package/dist/domain/extensions/common/angle-indicator-schema.js +1 -0
- package/dist/domain/extensions/common/index.d.ts +4 -0
- package/dist/domain/extensions/common/index.js +1 -0
- package/dist/domain/{system-components → extensions}/custom-header.d.ts +1 -1
- package/dist/domain/extensions/custom-header.js +1 -0
- package/dist/domain/{system-components → extensions}/custom-price-footer.js +1 -1
- package/dist/domain/{system-components → extensions}/custom-sidebar-footer.d.ts +1 -1
- package/dist/domain/extensions/custom-sidebar-footer.js +1 -0
- package/dist/domain/{system-components → extensions}/editable-angle-indicator.d.ts +2 -1
- package/dist/domain/extensions/editable-angle-indicator.js +1 -0
- package/dist/domain/{system-components → extensions}/editable-distance-dimension-indicator.d.ts +2 -1
- package/dist/domain/extensions/editable-distance-dimension-indicator.js +1 -0
- package/dist/domain/{system-components → extensions}/editable-offset-indicator.d.ts +2 -1
- package/dist/domain/extensions/editable-offset-indicator.js +1 -0
- package/dist/domain/{system-components → extensions}/editable-size-indicator.d.ts +2 -1
- package/dist/domain/extensions/editable-size-indicator.js +1 -0
- package/dist/domain/{system-components → extensions}/entity-header.d.ts +1 -1
- package/dist/domain/extensions/entity-header.js +1 -0
- package/dist/domain/{system-components → extensions}/finalize-component.js +1 -1
- package/dist/domain/extensions/index.d.ts +69 -0
- package/dist/domain/extensions/index.js +1 -0
- package/dist/domain/{system-components → extensions}/list-selector-dimension-indicator.d.ts +2 -1
- package/dist/domain/extensions/list-selector-dimension-indicator.js +1 -0
- package/dist/domain/{system-components → extensions}/property-page.d.ts +1 -1
- package/dist/domain/extensions/property-page.js +1 -0
- package/dist/domain/{system-components → extensions}/replace-entity-recipe-hierarchy.d.ts +1 -1
- package/dist/domain/extensions/replace-entity-recipe-hierarchy.js +1 -0
- package/dist/domain/{system-components → extensions}/scene-entity-add-fab.d.ts +1 -1
- package/dist/domain/extensions/scene-entity-add-fab.js +1 -0
- package/dist/domain/{system-components → extensions}/scene-entity-delete-fab.d.ts +1 -1
- package/dist/domain/extensions/scene-entity-delete-fab.js +1 -0
- package/dist/domain/{system-components → extensions}/scene-entity-html-hotspot.d.ts +1 -1
- package/dist/domain/extensions/scene-entity-html-hotspot.js +1 -0
- package/dist/domain/{system-components → extensions}/scene-entity-navigation-hotspot.d.ts +1 -1
- package/dist/domain/extensions/scene-entity-navigation-hotspot.js +1 -0
- package/dist/domain/{system-components → extensions}/scene-entity-object-html-hotspot.d.ts +1 -1
- package/dist/domain/extensions/scene-entity-object-html-hotspot.js +1 -0
- package/dist/domain/{system-components → extensions}/scene-entity-select-hotspot.d.ts +1 -1
- package/dist/domain/extensions/scene-entity-select-hotspot.js +1 -0
- package/dist/domain/{system-components → extensions}/sketching-edit.d.ts +1 -1
- package/dist/domain/extensions/sketching-edit.js +1 -0
- package/dist/domain/{system-components → extensions}/summary-component.js +1 -1
- package/dist/domain/{system-components → extensions}/tool-menu-fab.d.ts +1 -1
- package/dist/domain/extensions/tool-menu-fab.js +1 -0
- package/dist/domain/{system-components → extensions}/toolbar.d.ts +1 -1
- package/dist/domain/extensions/toolbar.js +1 -0
- package/dist/domain/index.d.ts +3 -8
- package/dist/domain/index.js +1 -1
- package/dist/domain/project-modules/index.d.ts +1 -1
- package/dist/domain/project-modules/index.js +1 -1
- package/dist/domain/project-modules/project-modules.d.ts +0 -16
- package/dist/domain/project-modules/project-modules.js +1 -1
- package/dist/domain/projections/composition-projections.js +1 -1
- package/dist/domain/projections/index.d.ts +1 -1
- package/dist/domain/projections/validation-projections.d.ts +1 -17
- package/dist/domain/system-components/child-entity-selection.d.ts +1 -2
- package/dist/domain/system-components/common/index.d.ts +0 -4
- package/dist/domain/system-components/common/index.js +1 -1
- package/dist/domain/system-components/common/recipes.d.ts +1 -2
- package/dist/domain/system-components/index.d.ts +0 -68
- package/dist/domain/system-components/index.js +1 -1
- package/dist/domain/system-components/phoenix-entity-elements/admin-data-table-sidebar.d.ts +1 -1
- package/dist/domain/system-components/phoenix-layout-elements/admin-connected-resource-page.d.ts +1 -1
- package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-actions.d.ts +1 -1
- package/dist/domain/system-components/phoenix-layout-elements/admin-data-table-page.d.ts +1 -1
- package/dist/domain/utils/memo-eval.d.ts +2 -2
- package/dist/i18n/locales/cs/messages.js +1 -1
- package/dist/i18n/locales/da/messages.js +1 -1
- package/dist/i18n/locales/de/messages.js +1 -1
- package/dist/i18n/locales/de-AT/messages.js +1 -1
- package/dist/i18n/locales/en/messages.js +1 -1
- package/dist/i18n/locales/en-AU/messages.js +1 -1
- package/dist/i18n/locales/en-GB/messages.js +1 -1
- package/dist/i18n/locales/es/messages.js +1 -1
- package/dist/i18n/locales/fr/messages.js +1 -1
- package/dist/i18n/locales/hu/messages.js +1 -1
- package/dist/i18n/locales/it/messages.js +1 -1
- package/dist/i18n/locales/nl/messages.js +1 -1
- package/dist/i18n/locales/pl/messages.js +1 -1
- package/dist/i18n/locales/pt/messages.js +1 -1
- package/dist/i18n/locales/ro/messages.js +1 -1
- package/dist/i18n/locales/sk/messages.js +1 -1
- package/dist/i18n/locales/tr/messages.js +1 -1
- package/dist/legacy/domain-cli/gen/implementation.js +5 -5
- package/dist/legacy/domain-cli/gen/invariants.js +5 -3
- 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/env-example.d.ts +1 -1
- package/dist/legacy/phoenix-cli/project-gen/generators/file-templates/env-example.js +4 -0
- package/dist/ui-sdk/theme/types.d.ts +1 -1
- package/dist/webhook/builders/common.d.ts +5 -0
- package/dist/webhook/builders/webhook-builder.js +1 -1
- package/package.json +3 -3
- package/dist/domain/actions/action-factory.d.ts +0 -10
- package/dist/domain/actions/prepare-action-implementations.js +0 -5
- package/dist/domain/domain-context/recipe-system/recipes.js +0 -1
- package/dist/domain/relations/all-of-type-relation.js +0 -1
- package/dist/domain/relations/component-factories.js +0 -1
- package/dist/domain/relations/composed-of.js +0 -1
- package/dist/domain/relations/indirect-relation.js +0 -1
- package/dist/domain/relations/reference-component.js +0 -1
- package/dist/domain/system-components/child-entity-recipe-hierarchy.js +0 -1
- package/dist/domain/system-components/common/angle-indicator-schema.js +0 -1
- package/dist/domain/system-components/custom-header.js +0 -1
- package/dist/domain/system-components/custom-sidebar-footer.js +0 -1
- package/dist/domain/system-components/editable-angle-indicator.js +0 -1
- package/dist/domain/system-components/editable-distance-dimension-indicator.js +0 -1
- package/dist/domain/system-components/editable-offset-indicator.js +0 -1
- package/dist/domain/system-components/editable-size-indicator.js +0 -1
- package/dist/domain/system-components/entity-header.js +0 -1
- package/dist/domain/system-components/list-selector-dimension-indicator.js +0 -1
- package/dist/domain/system-components/property-page.js +0 -1
- package/dist/domain/system-components/replace-entity-recipe-hierarchy.js +0 -1
- package/dist/domain/system-components/scene-entity-add-fab.js +0 -1
- package/dist/domain/system-components/scene-entity-delete-fab.js +0 -1
- package/dist/domain/system-components/scene-entity-html-hotspot.js +0 -1
- package/dist/domain/system-components/scene-entity-navigation-hotspot.js +0 -1
- package/dist/domain/system-components/scene-entity-object-html-hotspot.js +0 -1
- package/dist/domain/system-components/scene-entity-select-hotspot.js +0 -1
- package/dist/domain/system-components/sketching-edit.js +0 -1
- package/dist/domain/system-components/tool-menu-fab.js +0 -1
- package/dist/domain/system-components/toolbar.js +0 -1
- /package/dist/domain/{actions → core/action}/action-factory.js +0 -0
- /package/dist/domain/core/{action.js → action/action.js} +0 -0
- /package/dist/domain/{relations/reference-field.js → core/data-schema/data-cell-value.js} +0 -0
- /package/dist/domain/{relations/relation-implementation.js → core/data-schema/data-schema-array-field.js} +0 -0
- /package/dist/domain/{relations → core/relation}/direct-relation.js +0 -0
- /package/dist/domain/{relations → core/relation}/relation-factory.js +0 -0
- /package/dist/domain/{core/expression → domain-runtime/spec}/memoize-expression.js +0 -0
- /package/dist/domain/{core/expression → domain-runtime/spec}/prepare-domain-expressions.js +0 -0
- /package/dist/domain/{system-components → extensions}/angle-indicator.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/angle-indicator.js +0 -0
- /package/dist/domain/{system-components → extensions}/attribute-switch.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/attribute-switch.js +0 -0
- /package/dist/domain/{system-components → extensions}/autorotate-camera-component.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/autorotate-camera-component.js +0 -0
- /package/dist/domain/{system-components → extensions}/basic-sidebar-footer.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/basic-sidebar-footer.js +0 -0
- /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity-object.js +0 -0
- /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/camera-based-hidden-entity.js +0 -0
- /package/dist/domain/{system-components → extensions}/canvas-config.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/canvas-config.js +0 -0
- /package/dist/domain/{system-components → extensions}/canvas-custom-environment.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/canvas-custom-environment.js +0 -0
- /package/dist/domain/{system-components → extensions}/canvas-padding.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/canvas-padding.js +0 -0
- /package/dist/domain/{system-components → extensions}/canvas-preset-environment.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/canvas-preset-environment.js +0 -0
- /package/dist/domain/{system-components → extensions}/client-side-image.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/client-side-image.js +0 -0
- /package/dist/domain/{system-components → extensions}/color-value.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/color-value.js +0 -0
- /package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/common/dimension-indicator-schema.js +0 -0
- /package/dist/domain/{system-components → extensions}/common/dimension-indicators.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/common/dimension-indicators.js +0 -0
- /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/common/editable-indicator-button-variant.js +0 -0
- /package/dist/domain/{system-components → extensions}/custom-price-footer.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/dimension-indicator.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/dimension-indicator.js +0 -0
- /package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/exit-tool-mode-fab.js +0 -0
- /package/dist/domain/{system-components → extensions}/finalize-action.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/finalize-action.js +0 -0
- /package/dist/domain/{system-components → extensions}/finalize-component.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/fit-selection-orthographic-camera-component.js +0 -0
- /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/fit-selection-perspective-camera-component.js +0 -0
- /package/dist/domain/{system-components → extensions}/fixed-header.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/fixed-header.js +0 -0
- /package/dist/domain/{system-components → extensions}/floating-header.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/floating-header.js +0 -0
- /package/dist/domain/{system-components → extensions}/hidden-header.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/hidden-header.js +0 -0
- /package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/hidden-sidebar-footer.js +0 -0
- /package/dist/domain/{system-components → extensions}/horizontal-tabs.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/horizontal-tabs.js +0 -0
- /package/dist/domain/{system-components → extensions}/multilingual-text-value.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/multilingual-text-value.js +0 -0
- /package/dist/domain/{system-components → extensions}/navigation-steps.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/navigation-steps.js +0 -0
- /package/dist/domain/{system-components → extensions}/offset-anchors.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/offset-anchors.js +0 -0
- /package/dist/domain/{system-components → extensions}/offset-indicator.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/offset-indicator.js +0 -0
- /package/dist/domain/{system-components → extensions}/offset.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/offset.js +0 -0
- /package/dist/domain/{system-components → extensions}/other-action.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/other-action.js +0 -0
- /package/dist/domain/{system-components → extensions}/read-sidebar-footer.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/read-sidebar-footer.js +0 -0
- /package/dist/domain/{system-components → extensions}/rotatable.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/rotatable.js +0 -0
- /package/dist/domain/{system-components → extensions}/rotation-handle.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/rotation-handle.js +0 -0
- /package/dist/domain/{system-components → extensions}/save-template-thumbnail.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/save-template-thumbnail.js +0 -0
- /package/dist/domain/{system-components → extensions}/scene-entity-animation.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/scene-entity-animation.js +0 -0
- /package/dist/domain/{system-components → extensions}/scene-entity-control.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/scene-entity-control.js +0 -0
- /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/scene-entity-floor-object.js +0 -0
- /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/scene-entity-wall-object.js +0 -0
- /package/dist/domain/{system-components → extensions}/selectable-component.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/selectable-component.js +0 -0
- /package/dist/domain/{system-components → extensions}/sidebar-tabs.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/sidebar-tabs.js +0 -0
- /package/dist/domain/{system-components → extensions}/simple-summary.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/simple-summary.js +0 -0
- /package/dist/domain/{system-components → extensions}/size.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/size.js +0 -0
- /package/dist/domain/{system-components → extensions}/sketching-draw.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/sketching-draw.js +0 -0
- /package/dist/domain/{system-components → extensions}/summary-component.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/text-value.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/text-value.js +0 -0
- /package/dist/domain/{system-components → extensions}/tool-controls.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/tool-controls.js +0 -0
- /package/dist/domain/{system-components → extensions}/universal-sidebar-footer.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/universal-sidebar-footer.js +0 -0
- /package/dist/domain/{system-components → extensions}/view-controls.d.ts +0 -0
- /package/dist/domain/{system-components → extensions}/view-controls.js +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { OmitEmpty, OmitNever, UnionToIntersection } from '@salsita-ai/common/utils';
|
|
2
|
-
import { type AliasMap, type DomainEntity, type DomainEntityId, type DomainEntityReflection, type EntityByType, type EventualAlias, type ExpandAlias, type ExtractFromAliasedRecord, type TypeOrAlias } from '
|
|
2
|
+
import { type AliasMap, type DomainEntity, type DomainEntityId, type DomainEntityReflection, type EntityByType, type EventualAlias, type ExpandAlias, type ExtractFromAliasedRecord, type TypeOrAlias } from '../model/index.js';
|
|
3
3
|
export type EntityDefaults<ENTITY extends DomainEntity<string>> = {
|
|
4
4
|
[K in Exclude<keyof ENTITY, 'id' | 'type'>]: ENTITY[K] extends DomainEntityId<any> ? null : ENTITY[K];
|
|
5
5
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_unsafeBuildDomainEntityId as e,expandAlias as r}from"../model/index.js";export const RecipeFactoryBuilder={forAliases:t=>({forEntities:o=>({withDefaults:i=>{let a={};Object.entries(i).forEach(([e,o])=>{r(t,e).forEach(e=>{a[e]={...a[e],...o}})});let n=new Map(o.map(e=>[e.type,e._meta.validator]));return Object.entries(a).forEach(([r,t])=>{let o=n.get(r);if(!o)throw Error(`Defaults provided for unknown entity ${r}`);if(!o({id:e(r,1),type:r,...t}))throw console.error(o.errors,t),Error(`Invalid defaults for ${r} entity.`)}),{build:()=>r=>({id:e(r.type,1),...a[r.type],...r})}}})})};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { ExpressionMeta } from '../expression/index.js';
|
|
2
|
+
import { type AliasMap, type DomainEntity, type DomainEntityId, type TypeOrAlias } from '../model/index.js';
|
|
3
|
+
import type { DomainState } from '../state/index.js';
|
|
2
4
|
interface AllOfType0Relation<ENTITIES extends DomainEntity<string>, ALIASES extends Record<string, ENTITIES>, TARGET extends TypeOrAlias<ENTITIES, ALIASES>> {
|
|
3
5
|
kind: 'allOfType';
|
|
4
6
|
target: TARGET;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{expandAlias as e}from"../model/index.js";export const createAllOfTypeRelation=t=>{let r=new Map,a=new WeakMap,n=!1;return o=>{if(n)throw Error(`Cannot register all-of-type relation targeting ${String(o.target)} after evaluation started. Create all relation expressions before evaluating the domain state.`);let i=new Set(e(t,o.target)),l=[...i].sort().join("|");return r.set(l,i),(e,t)=>(e=>{let t=a.get(e);if(t)return t;n=!0;let o=new Map([...r.keys()].map(e=>[e,[]]));for(let t of e.entities)for(let[e,a]of r)a.has(t.type)&&o.get(e).push(t.id);return a.set(e,o),o})(t).get(l)}};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DomainEntity, DomainEntityId, DomainEntityReflection, RawAliasReflection } from '../
|
|
1
|
+
import type { DomainEntity, DomainEntityId, DomainEntityReflection, RawAliasReflection } from '../model/index.js';
|
|
2
2
|
import type { ComposedOfComponentState } from './composed-of.js';
|
|
3
3
|
import type { ReferenceComponentState } from './reference-component.js';
|
|
4
4
|
export declare const createSingleReferenceRead: <TARGET extends DomainEntity<string>>(_targetReflection: DomainEntityReflection<TARGET> | RawAliasReflection<TARGET>, field: string) => (self: object, state: unknown, ctx: unknown) => ReferenceComponentState;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{memoEval as e}from"../../utils/memo-eval.js";export const createSingleReferenceRead=(t,r)=>e(e=>[e[r]],e=>({referencedEntityIds:null===e?[]:[e]}));export const createSingleReferenceWrite=(e,t)=>r=>{let n=r.referencedEntityIds[0];return n&&e.assertId(n),{[t]:n??null}};export const createMultipleReferenceRead=(t,r)=>e(e=>[e[r]],e=>({referencedEntityIds:e}));export const createMultipleReferenceWrite=(e,t)=>r=>(e.assertIds(r.referencedEntityIds),{[t]:r.referencedEntityIds});export const createSingleCompositionRead=t=>e(e=>[e[t]?.id??null],e=>({childEntityIds:null===e?[]:[e]}));export const createMultipleCompositionRead=t=>e(e=>e[t].map(e=>e.id),(...e)=>({childEntityIds:e}));export const createEmptyWrite=()=>()=>({});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{SystemComponentBuilder as o}from"../component/index.js";import{EntityIdSchema as t}from"../model/index.js";export const composedOfComponent=o.component("composedOf").withState({type:"object",properties:{childEntityIds:{type:"array",items:t}},required:["childEntityIds"],additionalProperties:!1}).build();
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ExpressionMeta } from '../expression/index.js';
|
|
2
|
+
import type { DomainEntity, ExpandAlias, TypeOrAlias } from '../model/index.js';
|
|
2
3
|
import type { ArrayReferenceField, SingleReferenceField } from './reference-field.js';
|
|
3
4
|
import type { RelationImplementation } from './relation-implementation.js';
|
|
4
5
|
interface DirectArrayRelation<ENTITIES extends DomainEntity<string>, ALIASES extends Record<string, ENTITIES>, SELF extends TypeOrAlias<ENTITIES, ALIASES>, TARGET extends TypeOrAlias<ENTITIES, ALIASES>> {
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './all-of-type-relation.js';
|
|
2
|
+
export * from './component-factories.js';
|
|
3
|
+
export * from './composed-of.js';
|
|
4
|
+
export * from './direct-relation.js';
|
|
5
|
+
export * from './indirect-relation.js';
|
|
6
|
+
export * from './reference-component.js';
|
|
7
|
+
export type * from './reference-field.js';
|
|
8
|
+
export * from './relation-factory.js';
|
|
9
|
+
export type * from './relation-implementation.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export*from"./all-of-type-relation.js";export*from"./component-factories.js";export*from"./composed-of.js";export*from"./direct-relation.js";export*from"./indirect-relation.js";export*from"./reference-component.js";export*from"./relation-factory.js";
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { ExpressionMeta } from '../expression/index.js';
|
|
2
|
+
import { type AliasMap, type DomainEntity, type DomainEntityId, type ExpandAlias, type TypeOrAlias } from '../model/index.js';
|
|
3
|
+
import type { DomainState } from '../state/index.js';
|
|
2
4
|
import type { ArrayReferenceField, SingleReferenceField } from './reference-field.js';
|
|
3
5
|
interface IndirectNullableSingle0Relation<ENTITIES extends DomainEntity<string>, ALIASES extends Record<string, ENTITIES>, SELF extends TypeOrAlias<ENTITIES, ALIASES>, TARGET extends TypeOrAlias<ENTITIES, ALIASES>> {
|
|
4
6
|
kind: 'indirect';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{isArray as e}from"@salsita-ai/common/utils";import{expandAlias as t}from"../model/index.js";let r=e=>"string"==typeof e;export const createIndirectRelation=i=>{let n=new Map,o=new WeakMap,a=!1;return l=>{if(a)throw Error(`Cannot register indirect relation ${String(l.target)}#${l.field} after evaluation started. Create all relation expressions before evaluating the domain state.`);let s=new Set(t(i,l.target)),f=`${l.field}|${[...s].sort().join("|")}`;return n.set(f,{field:l.field,targetTypes:s}),(t,i)=>(t=>{let i=o.get(t);if(i)return i;a=!0;let l=new Map([...n.keys()].map(e=>[e,new Map]));for(let i of t.entities)for(let[t,{field:o,targetTypes:a}]of n){if(!a.has(i.type))continue;let n=i[o],s=e(n)?new Set(n.filter(r)):r(n)?[n]:[],f=l.get(t);for(let e of s){let t=f.get(e);t||(t=[],f.set(e,t)),t.push(i.id)}}return o.set(t,l),l})(i).get(f).get(t)??[]}};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type DomainComponentOpticBuilder } from '../component/index.js';
|
|
2
|
+
import { type $DomainEntity, type DomainEntity, type DomainEntityId, type DomainEntityReflection, type RawAliasReflection } from '../model/index.js';
|
|
2
3
|
import type { ArrayReferenceField, SingleReferenceField } from './reference-field.js';
|
|
3
4
|
export type ReferenceComponentState = {
|
|
4
5
|
/**
|
|
@@ -12,5 +13,5 @@ export type ReferenceComponentState = {
|
|
|
12
13
|
*/
|
|
13
14
|
export declare const referenceComponent: import("../index.js").SystemComponentType<"reference", ReferenceComponentState, "referencedEntityIds">;
|
|
14
15
|
export type ReferenceComponent = typeof referenceComponent;
|
|
15
|
-
export declare const attachSingleReferenceComponent: <ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, ALIASES extends Record<string, ENTITIES>, ENTITY extends ENTITIES, $ENTITY extends $DomainEntity<ENTITY>, TARGET_ENTITY extends ENTITIES>(attachComponent: DomainComponentOpticBuilder<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ALIASES, ENTITY, $ENTITY, typeof referenceComponent>, targetReflection: DomainEntityReflection<TARGET_ENTITY> | RawAliasReflection<TARGET_ENTITY>, field: SingleReferenceField<ENTITY, TARGET_ENTITY, any>) => import("../index.js").DomainComponentSimpleOptic<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ENTITY, import("../index.js").SystemComponentType<"reference", ReferenceComponentState, "referencedEntityIds"
|
|
16
|
-
export declare const attachMultipleReferenceComponent: <ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, ALIASES extends Record<string, ENTITIES>, ENTITY extends ENTITIES, $ENTITY extends $DomainEntity<ENTITY>, TARGET_ENTITY extends ENTITIES>(attachComponent: DomainComponentOpticBuilder<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ALIASES, ENTITY, $ENTITY, typeof referenceComponent>, targetReflection: DomainEntityReflection<TARGET_ENTITY> | RawAliasReflection<TARGET_ENTITY>, field: ArrayReferenceField<ENTITY, TARGET_ENTITY>) => import("../index.js").DomainComponentSimpleOptic<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ENTITY, import("../index.js").SystemComponentType<"reference", ReferenceComponentState, "referencedEntityIds"
|
|
16
|
+
export declare const attachSingleReferenceComponent: <ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, ALIASES extends Record<string, ENTITIES>, ENTITY extends ENTITIES, $ENTITY extends $DomainEntity<ENTITY>, TARGET_ENTITY extends ENTITIES, CONTEXT_EXTENSION = unknown>(attachComponent: DomainComponentOpticBuilder<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ALIASES, ENTITY, $ENTITY, typeof referenceComponent, CONTEXT_EXTENSION>, targetReflection: DomainEntityReflection<TARGET_ENTITY> | RawAliasReflection<TARGET_ENTITY>, field: SingleReferenceField<ENTITY, TARGET_ENTITY, any>) => import("../index.js").DomainComponentSimpleOptic<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ENTITY, import("../index.js").SystemComponentType<"reference", ReferenceComponentState, "referencedEntityIds">, CONTEXT_EXTENSION>;
|
|
17
|
+
export declare const attachMultipleReferenceComponent: <ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, ALIASES extends Record<string, ENTITIES>, ENTITY extends ENTITIES, $ENTITY extends $DomainEntity<ENTITY>, TARGET_ENTITY extends ENTITIES, CONTEXT_EXTENSION = unknown>(attachComponent: DomainComponentOpticBuilder<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ALIASES, ENTITY, $ENTITY, typeof referenceComponent, CONTEXT_EXTENSION>, targetReflection: DomainEntityReflection<TARGET_ENTITY> | RawAliasReflection<TARGET_ENTITY>, field: ArrayReferenceField<ENTITY, TARGET_ENTITY>) => import("../index.js").DomainComponentSimpleOptic<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ENTITY, import("../index.js").SystemComponentType<"reference", ReferenceComponentState, "referencedEntityIds">, CONTEXT_EXTENSION>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{memoEval as e}from"../../utils/memo-eval.js";import{SystemComponentBuilder as t}from"../component/index.js";import{EntityIdSchema as r}from"../model/index.js";export const referenceComponent=t.component("reference").withState({type:"object",properties:{referencedEntityIds:{type:"array",items:r}},required:["referencedEntityIds"],additionalProperties:!1}).withWritableKeys(["referencedEntityIds"]).build();export const attachSingleReferenceComponent=(t,r,n)=>t.attach(e(e=>[e[n]],e=>({referencedEntityIds:null===e?[]:[e]})),e=>{let t=e.referencedEntityIds[0];return t&&r.assertId(t),{[n]:t??null}});export const attachMultipleReferenceComponent=(t,r,n)=>t.attach(e(e=>[e[n]],e=>({referencedEntityIds:e})),e=>(r.assertIds(e.referencedEntityIds),{[n]:e.referencedEntityIds}));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DomainEntity } from '../
|
|
1
|
+
import type { DomainEntity } from '../model/index.js';
|
|
2
2
|
export type SingleReferenceField<FROM extends DomainEntity<string>, TO extends DomainEntity<string>, OPTIONALITY extends null | never> = {
|
|
3
3
|
[K in keyof FROM]: TO['id'] | OPTIONALITY extends FROM[K] ? FROM[K] extends TO['id'] | OPTIONALITY ? K & string : never : never;
|
|
4
4
|
}[keyof FROM];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AnonymousExpression } from '../expression/index.js';
|
|
2
|
+
import type { $DomainEntity, AliasMap, DomainEntity, ExpandAlias, TypeOrAlias } from '../model/index.js';
|
|
2
3
|
import { type AllOfTypeRelation } from './all-of-type-relation.js';
|
|
3
4
|
import type { DirectRelation } from './direct-relation.js';
|
|
4
5
|
import { type IndirectRelation } from './indirect-relation.js';
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Domain } from '../domain.js';
|
|
2
|
+
import type { AliasMap, DomainEntity, DomainEntityId } from '../model/index.js';
|
|
3
|
+
import type { DomainState } from '../state/index.js';
|
|
2
4
|
import type { Relation } from './relation-factory.js';
|
|
3
5
|
export type RelationImplementation<KIND extends Relation<any, any, any, any>['kind']> = (relation: Extract<Relation<any, any, any, any>, {
|
|
4
6
|
kind: KIND;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { type ExtendedJsonSchema } from '@salsita-ai/common/utils';
|
|
2
|
-
import { type $DomainEntity, type $DomainEntityReflection, type ActionDefinition, type AliasMap, type
|
|
3
|
-
import {
|
|
4
|
-
export type AliasedExpressions<ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, ALIASES extends Record<string, ENTITIES>> = {
|
|
5
|
-
[K in TypeOrAlias<ENTITIES, ALIASES>]?: Record<string, AnonymousExpression<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ExpandAlias<ENTITIES, ALIASES, K>, unknown>>;
|
|
6
|
-
};
|
|
2
|
+
import { type $DomainEntity, type $DomainEntityReflection, type ActionDefinition, type AliasMap, type AliasedExpressions, type AnyActionImplementations, type DomainEntity, DomainFactory, type EntityByType, type EntityReflections, type MigrateFunction, type SchemaOfObject } from './core/index.js';
|
|
3
|
+
import type { ProjectModule } from './project-modules/index.js';
|
|
7
4
|
type $EntityReflections<ENTITIES extends DomainEntity<string>> = {
|
|
8
5
|
[TYPE in ENTITIES['type']]: $DomainEntityReflection<$DomainEntity<EntityByType<ENTITIES, TYPE>>>;
|
|
9
6
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{DomainFactory as t,MigrateFunctionBuilder as i,expandAlias as e}from"./core/index.js";import{resolveActionModules as s,resolveExpressionModules as n}from"./
|
|
1
|
+
import{DomainFactory as t,MigrateFunctionBuilder as i,expandAlias as e}from"./core/index.js";import{resolveActionModules as s,resolveExpressionModules as n}from"./domain-runtime/index.js";import{withProfilerLabel as a}from"./utils/profiler-label.js";export class DomainBuilder{entities;aliasMap;$entityReflections;allowedRootEntityTypes;implemented;modelVersion;publishedData;sessionData;frontendData;backendData;migrate;isAdminDomain;actions;actionImplementations;constructor(t,i,e,s,n,a,o,h,l,r,m,d,p,c){this.entities=t,this.aliasMap=i,this.$entityReflections=e,this.allowedRootEntityTypes=s,this.implemented=n,this.modelVersion=a,this.publishedData=o,this.sessionData=h,this.frontendData=l,this.backendData=r,this.migrate=m,this.isAdminDomain=d,this.actions=p,this.actionImplementations=c}static from(t,e,s,n,a,o,h,l,r,m){let d=i.fromVersions({1:t}).to(1).using({}).build();return new DomainBuilder(t,e,s,n,{},a,o,h,l,r,d,m,{},{})}withMigrate(t){return new DomainBuilder(this.entities,this.aliasMap,this.$entityReflections,this.allowedRootEntityTypes,this.implemented,this.modelVersion,this.publishedData,this.sessionData,this.frontendData,this.backendData,t,this.isAdminDomain,this.actions,this.actionImplementations)}withExpressions(t){let i={...this.implemented};return Object.entries(t).forEach(([t,s])=>{e(this.aliasMap,t).forEach(e=>{let n={...i[e]};i[e]=n,Object.entries(s).forEach(([i,s])=>{let o=n[i];if(o)throw Error(`Duplicate expression ${e}.${i}: The expression is defined on both ${t} and ${o.origin.typeOrAlias}, which would lead to ambiguous usage. Please ensure that expressions are only defined once.`);n[i]={...s,evaluate:a(`${e}_${i}`,s.evaluate),origin:{name:i,typeOrAlias:t}}})})}),new DomainBuilder(this.entities,this.aliasMap,this.$entityReflections,this.allowedRootEntityTypes,i,this.modelVersion,this.publishedData,this.sessionData,this.frontendData,this.backendData,this.migrate,this.isAdminDomain,this.actions,this.actionImplementations)}withExpressionModules(t){return n(t,this.aliasMap).reduce((t,i)=>t.withExpressions(i.expressions),this)}withActions(t){return new DomainBuilder(this.entities,this.aliasMap,this.$entityReflections,this.allowedRootEntityTypes,this.implemented,this.modelVersion,this.publishedData,this.sessionData,this.frontendData,this.backendData,this.migrate,this.isAdminDomain,Object.fromEntries(t.map(t=>[t.name,t])),this.actionImplementations)}withActionModules(t){return this.withActionImplementations(s(t))}withActionImplementations(t){return new DomainBuilder(this.entities,this.aliasMap,this.$entityReflections,this.allowedRootEntityTypes,this.implemented,this.modelVersion,this.publishedData,this.sessionData,this.frontendData,this.backendData,this.migrate,this.isAdminDomain,this.actions,{...this.actionImplementations,...t})}build=()=>{let e=this.implemented,s=this.migrate??i.fromVersions({1:this.entities}).to(1).using({}).build();return new t({aliasMap:this.aliasMap,entityReflections:this.entities,$entityReflections:this.$entityReflections,expressions:e,allowedRootEntityTypes:this.allowedRootEntityTypes,modelVersion:this.modelVersion,migrate:s,publishedData:this.publishedData,sessionData:this.sessionData,frontendData:this.frontendData,backendData:this.backendData,isAdminDomain:this.isAdminDomain,actions:this.actions,actionImplementations:this.actionImplementations})}}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type $DomainEntity, type
|
|
2
|
-
import type { DomainContextSelectors } from '../../domain-runtime/domain-context/index.js';
|
|
1
|
+
import { type $DomainEntity, type ActionTypes, type DomainEntity, type DomainState, type PreparedAction } from '../../core/index.js';
|
|
2
|
+
import type { ActionContext, DomainContextSelectors } from '../../domain-runtime/domain-context/index.js';
|
|
3
3
|
export interface ActionSystemContext {
|
|
4
4
|
/**
|
|
5
5
|
* The action system's window into the runtime registry: the declared actions and their
|
|
@@ -3,7 +3,7 @@ export { type AnalyticsEvent, AnalyticsEventFactory, AnalyticsEventType, type Da
|
|
|
3
3
|
export { NavigationUpdateTag, isInitialNavigationUpdate, isNavigationUpdate, isInitialViewUpdate, isViewUpdate, isInitialSelectionUpdate, isSelectUpdate, isDeselectUpdate, isInitialFullscreenUpdate, isToggleFullscreenUpdate, isInitialDebugUpdate, isInitialViewportUpdate, isSetViewportUpdate, isInitialDragUpdate, isDragStartUpdate, isDragEndUpdate, isInitialToolUpdate, isToolUpdate, isExportUpdate, } from './navigation-system/navigation-updates.js';
|
|
4
4
|
export { createAutoSelectionTransformer, NavigationSystem, type NavigationSystemContext, } from './navigation-system/navigation-system.js';
|
|
5
5
|
export { createResetSelectionOnNavigationTransformer, createNavigationOnSelectionTransformer, createNavigationOnDeselectTransformer, createSelectParentOnDeselectionTransformer, createNavigationOnSelectionChangeTransformer, } from './navigation-system/selection-transformers.js';
|
|
6
|
-
export { StoreSystem, type TransformerRegistration, type
|
|
6
|
+
export { StoreSystem, type TransformerRegistration, type UpdateTransformer, type TransformerLogFunction, type Transformers, type StateSliceName, type StateEmissionKind, type CommitPreparedOutcome, } from './store-system/store-system.js';
|
|
7
7
|
export { nextDomainEntityId, getIdSequence } from './store-system/next-domain-entity-id.js';
|
|
8
8
|
export { applyUpdates } from './store-system/apply-updates.js';
|
|
9
9
|
export { SystemState, SystemStateInitialUpdateTag, SystemStateUpdateTag, type SystemStateContext, } from './store-system/system-state.js';
|
|
@@ -14,7 +14,6 @@ export { createCreateEntityRefsTransformer } from './relation-transformers/creat
|
|
|
14
14
|
export { type CanBeUndonePredicate, type CanBeUndoneContext, type UndoCapabilities, UndoSystem, UNDO_REDO_RESET_TAG, isUndoRedoReset, } from './undo-system.js';
|
|
15
15
|
export { DimensionSystem, type AnyDimensionSystem, type DimensionSystemContext, type AngleDimensionViolation, type DistanceDimensionViolation, type GenericDimensionViolation, } from './dimension-system/dimension-system.js';
|
|
16
16
|
export { ActionSystem, type AnyActionSystem, type ActionSystemContext } from './action-system/action-system.js';
|
|
17
|
-
export { RecipeFactoryBuilder, type EntityRecipe } from './recipe-system/recipes.js';
|
|
18
17
|
export { RecipeCookerSystem, type AnyRecipeCookerSystem, type RecipeCookerSystemContext, ReplaceRecipeUpdateTag, isReplaceEntityUpdate, type IsReplaceRecipeUpdate, CreateRecipeUpdateTag, isCreateEntityUpdate, type IsCreateRecipeUpdate, } from './recipe-system/recipe-cooker-system.js';
|
|
19
18
|
export { type DomainContextSystems, type AnyDomainContextSystems } from './domain-context-systems.js';
|
|
20
19
|
export { createTransformer, type TransformerFactory } from './create-transformer.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{NoopAnalyticsSystem}from"./analytics-system/analytics-system.js";export{AnalyticsEventFactory,AnalyticsEventType}from"./analytics-system/analytics-contracts.js";export{NavigationUpdateTag,isInitialNavigationUpdate,isNavigationUpdate,isInitialViewUpdate,isViewUpdate,isInitialSelectionUpdate,isSelectUpdate,isDeselectUpdate,isInitialFullscreenUpdate,isToggleFullscreenUpdate,isInitialDebugUpdate,isInitialViewportUpdate,isSetViewportUpdate,isInitialDragUpdate,isDragStartUpdate,isDragEndUpdate,isInitialToolUpdate,isToolUpdate,isExportUpdate}from"./navigation-system/navigation-updates.js";export{createAutoSelectionTransformer,NavigationSystem}from"./navigation-system/navigation-system.js";export{createResetSelectionOnNavigationTransformer,createNavigationOnSelectionTransformer,createNavigationOnDeselectTransformer,createSelectParentOnDeselectionTransformer,createNavigationOnSelectionChangeTransformer}from"./navigation-system/selection-transformers.js";export{StoreSystem}from"./store-system/store-system.js";export{nextDomainEntityId,getIdSequence}from"./store-system/next-domain-entity-id.js";export{applyUpdates}from"./store-system/apply-updates.js";export{SystemState,SystemStateInitialUpdateTag,SystemStateUpdateTag}from"./store-system/system-state.js";export{createRefReplaceTransformer}from"./relation-transformers/replace-refs.js";export{createCascadeDeletesTransformer}from"./relation-transformers/cascade-deletes.js";export{createCascadeRefPruningTransformer}from"./relation-transformers/cascade-ref-pruning.js";export{createCreateEntityRefsTransformer}from"./relation-transformers/create-entity-refs.js";export{UndoSystem,UNDO_REDO_RESET_TAG,isUndoRedoReset}from"./undo-system.js";export{DimensionSystem}from"./dimension-system/dimension-system.js";export{ActionSystem}from"./action-system/action-system.js";export{
|
|
1
|
+
export{NoopAnalyticsSystem}from"./analytics-system/analytics-system.js";export{AnalyticsEventFactory,AnalyticsEventType}from"./analytics-system/analytics-contracts.js";export{NavigationUpdateTag,isInitialNavigationUpdate,isNavigationUpdate,isInitialViewUpdate,isViewUpdate,isInitialSelectionUpdate,isSelectUpdate,isDeselectUpdate,isInitialFullscreenUpdate,isToggleFullscreenUpdate,isInitialDebugUpdate,isInitialViewportUpdate,isSetViewportUpdate,isInitialDragUpdate,isDragStartUpdate,isDragEndUpdate,isInitialToolUpdate,isToolUpdate,isExportUpdate}from"./navigation-system/navigation-updates.js";export{createAutoSelectionTransformer,NavigationSystem}from"./navigation-system/navigation-system.js";export{createResetSelectionOnNavigationTransformer,createNavigationOnSelectionTransformer,createNavigationOnDeselectTransformer,createSelectParentOnDeselectionTransformer,createNavigationOnSelectionChangeTransformer}from"./navigation-system/selection-transformers.js";export{StoreSystem}from"./store-system/store-system.js";export{nextDomainEntityId,getIdSequence}from"./store-system/next-domain-entity-id.js";export{applyUpdates}from"./store-system/apply-updates.js";export{SystemState,SystemStateInitialUpdateTag,SystemStateUpdateTag}from"./store-system/system-state.js";export{createRefReplaceTransformer}from"./relation-transformers/replace-refs.js";export{createCascadeDeletesTransformer}from"./relation-transformers/cascade-deletes.js";export{createCascadeRefPruningTransformer}from"./relation-transformers/cascade-ref-pruning.js";export{createCreateEntityRefsTransformer}from"./relation-transformers/create-entity-refs.js";export{UndoSystem,UNDO_REDO_RESET_TAG,isUndoRedoReset}from"./undo-system.js";export{DimensionSystem}from"./dimension-system/dimension-system.js";export{ActionSystem}from"./action-system/action-system.js";export{RecipeCookerSystem,ReplaceRecipeUpdateTag,isReplaceEntityUpdate,CreateRecipeUpdateTag,isCreateEntityUpdate}from"./recipe-system/recipe-cooker-system.js";export{createTransformer}from"./create-transformer.js";export*from"./transformers/index.js";
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { type DomainEntity, type DomainEntityCreation, type DomainEntityId, type DomainEntityReplacement, type DomainState, type StateUpdate } from '../../core/index.js';
|
|
1
|
+
import { type DomainEntity, type DomainEntityCreation, type DomainEntityId, type DomainEntityReplacement, type DomainState, type EntityRecipe, type StateUpdate } from '../../core/index.js';
|
|
2
2
|
import type { DomainContextSelectors } from '../../domain-runtime/domain-context/index.js';
|
|
3
|
-
import type { EntityRecipe } from './recipes.js';
|
|
4
3
|
export declare const CreateRecipeUpdateTag = "createRecipe";
|
|
5
4
|
export type IsCreateRecipeUpdate<ENTITIES extends DomainEntity<string>> = <TYPE extends ENTITIES['type']>(update: StateUpdate<ENTITIES, ENTITIES>, types: readonly TYPE[]) => update is DomainEntityCreation<Extract<ENTITIES, {
|
|
6
5
|
type: TYPE;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{composedOfComponent as e,domainEntityTypeFromId as t,isDomainEntityId as n,referenceComponent as i,systemUpdateFactory as a}from"../../core/index.js";import{getIdSequence as o}from"../store-system/next-domain-entity-id.js";export const CreateRecipeUpdateTag="createRecipe";export const isCreateEntityUpdate=(e,n)=>"createDomainEntity"===e.kind&&e.updateTag===CreateRecipeUpdateTag&&n.includes(t(e.entityId));export const ReplaceRecipeUpdateTag="replaceRecipe";export const isReplaceEntityUpdate=(e,i)=>"replaceDomainEntity"===e.kind&&e.updateTag===ReplaceRecipeUpdateTag&&n(e.entityId)&&i.includes(t(e.entityId));export class RecipeCookerSystem{_context;constructor(e){this._context=e}_getFragmentComponents=(e,t)=>this._context.selectors.getComponentReader().readManyComponents({componentTypes:[t]},{rootEntityId:"Root-1",rootEntityType:"Root",entities:e,ephemeralRecords:[]});cookRecipes=(n,a)=>{let p=new Map,r=o(a.entities,[]);for(let e of n){let t=r.nextId(e.type);p.set(e.id,t)}let c=this._getFragmentComponents(n,i),d=n.map(e=>{let n={...e,id:p.get(e.id)};return c.filter(t=>t.componentInstance.entityId===e.id).reduce((n,i)=>{let a=this._context.selectors.getComponentReaderIndexes().opticMap.get(t(e.id))?.get(i.componentInstance.componentType)?.get(i.componentInstance.instanceName);if(a?.kind!=="simple")throw Error("References can only be simple optics!");return{...n,...a?.write({referencedEntityIds:i.state.referencedEntityIds.map(t=>t===e.id?t:p.get(t)??t)})}},n)}),s=this._getFragmentComponents(d,e);return d.map(e=>{let t=s.find(t=>t.state.childEntityIds.includes(e.id));return{entity:e,parentId:t?.componentInstance.entityId}})};prepareCreateUpdates=(e,t,n,i)=>this.cookRecipes(e,t).map(e=>e.parentId?a.DomainEntityCreation({entity:e.entity,collection:void 0,updateTag:CreateRecipeUpdateTag,parentId:e.parentId}):a.DomainEntityCreation({entity:e.entity,collection:i,updateTag:CreateRecipeUpdateTag,parentId:n}));prepareReplaceUpdates=(e,t,n,i)=>{let o=this.cookRecipes(e,t),p=o.filter(e=>!e.parentId);if(!p[0]||p.length>1)throw Error("Can not prepare ReplaceEntityRecipes, root entity not found in the cooked recipes. Please, make sure that defined recipes have always a single root entity.");return o.map(e=>e.parentId?a.DomainEntityCreation({entity:e.entity,collection:void 0,updateTag:ReplaceRecipeUpdateTag,parentId:e.parentId}):a.DomainEntityReplacement({entityId:n,replacementEntity:e.entity,updateTag:ReplaceRecipeUpdateTag,keepChildren:i??!1}))}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isNonNullish as e}from"@salsita-ai/common/utils";import{
|
|
1
|
+
import{isNonNullish as e}from"@salsita-ai/common/utils";import{referenceComponent as t,systemUpdateFactory as n}from"../../core/index.js";export const createCascadeRefPruningTransformer=r=>(i,a,o,s,d=[])=>{let c=new Set([...i,...d].filter(e=>"deleteEntity"===e.kind).map(e=>e.entityId));if(0===c.size)return i;let m=new Set([...i,...d].filter(e=>"deleteEntity"===e.kind||"replaceDomainEntity"===e.kind).map(e=>e.entityId)),f=r.readManyComponents({componentTypes:[t]},a).map(e=>{if(m.has(e.componentInstance.entityId))return;let t=e.state.referencedEntityIds.filter(e=>!c.has(e));if(t.length<e.state.referencedEntityIds.length)return n.ComponentModification({componentInstance:e.componentInstance,updateTag:"refs.cascadePruning",writableState:{referencedEntityIds:t}})}).filter(e);return f.length>0?[...i,...f]:i};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
Check whether the collection name is correctly specified in the createDomainEntity update.`);return i.map(t
|
|
1
|
+
import{referenceComponent as e,systemUpdateFactory as t}from"../../core/index.js";export const createCreateEntityRefsTransformer=n=>(r,o)=>{let i=r.filter(e=>"createDomainEntity"===e.kind);if(0===i.length)return r;let a=i.flatMap(r=>{if(void 0===r.collection)return[];let i=n.readManyComponents({componentTypes:[e],entityIds:[r.parentId],instanceNames:[r.collection]},o);if(0===i.length)throw Error(`Newly created entity ${r.entityId} should be added to collection ${r.collection} on parent entity ${r.parentId}, but no such collection can be found.
|
|
2
|
+
Check whether the collection name is correctly specified in the createDomainEntity update.`);return i.map(e=>t.ComponentModification({componentInstance:e.componentInstance,updateTag:"refs.update",writableState:{referencedEntityIds:e.state.referencedEntityIds.concat(r.entityId)}}))}).reduce((e,n)=>{let r=e[n.entityId.toString()];if(r){let o=t.ComponentModification({componentInstance:r.componentInstance,updateTag:r.updateTag,writableState:{referencedEntityIds:Array.from(new Set([...r.writableState.referencedEntityIds,...n.writableState.referencedEntityIds]))}});e[n.entityId.toString()]=o}else e[n.entityId.toString()]=n;return e},{});return r.concat(Object.values(a))};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isNonNullish as e}from"@salsita-ai/common/utils";import{
|
|
1
|
+
import{isNonNullish as e}from"@salsita-ai/common/utils";import{referenceComponent as t,systemUpdateFactory as n}from"../../core/index.js";export const createRefReplaceTransformer=i=>(r,a,o,c,p=[])=>{let m=new Map(r.filter(e=>"replaceDomainEntity"===e.kind).map(e=>[e.entityId,e.replacementEntity.id]));if(0===m.size)return r;let d=new Set([...r,...p].filter(e=>"deleteEntity"===e.kind||"replaceDomainEntity"===e.kind).map(e=>e.entityId)),s=i.readManyComponents({componentTypes:[t]},a).map(e=>{if(d.has(e.componentInstance.entityId)&&!m.has(e.componentInstance.entityId))return;let t=!1,i=e.state.referencedEntityIds.map(e=>{let n=m.get(e);return void 0!==n?(t=!0,n):e});if(t)return n.ComponentModification({componentInstance:{...e.componentInstance,entityId:m.get(e.componentInstance.entityId)??e.componentInstance.entityId},updateTag:"refs.replace",writableState:{referencedEntityIds:i}})}).filter(e);return s.length>0?[...r,...s]:r};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { type ObservableWithLastValue } from '@salsita-ai/common/utils';
|
|
2
|
-
import { type $DomainEntity, type ComponentModification, type DataUpdate, type DomainEntity, type DomainEntityModification, type DomainState, type EphemeralRecordModification, type StateUpdate, type SystemComponentTypeConstraint, type
|
|
2
|
+
import { type $DomainEntity, type ComponentModification, type DataUpdate, type DomainEntity, type DomainEntityModification, type DomainState, type EphemeralRecordModification, type StateEmission, type StateUpdate, type StateUpdateEmission, type SystemComponentTypeConstraint, type TransformerPhase } from '../../core/index.js';
|
|
3
3
|
import type { DomainContextSelectors } from '../../domain-runtime/domain-context/index.js';
|
|
4
4
|
import type { DomainServicesSelectors } from '../../domain-runtime/domain-services/index.js';
|
|
5
5
|
import type { EnvironmentSelectors } from '../../domain-runtime/environment/index.js';
|
|
6
|
-
import type { StateValidationResult } from '../../projections/validation-projections.js';
|
|
7
6
|
import type { DomainContextSystems } from '../domain-context-systems.js';
|
|
8
7
|
export type Unregister = () => void;
|
|
9
8
|
export type StateSliceName =
|
|
@@ -21,36 +20,6 @@ export type StateSliceName =
|
|
|
21
20
|
* Emits for every valid committed state.
|
|
22
21
|
*/
|
|
23
22
|
| 'committed';
|
|
24
|
-
export interface ResetStateEmission<ENTITIES extends DomainEntity<string>, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>> {
|
|
25
|
-
readonly kind: 'reset';
|
|
26
|
-
readonly state: DomainState<ENTITIES>;
|
|
27
|
-
readonly validity: StateValidationResult<ENTITIES, ViolationTypesOf$Entity<$MAP[ENTITIES['type']]>>;
|
|
28
|
-
readonly tag: unknown;
|
|
29
|
-
readonly transformationLog: TransformationLog | undefined;
|
|
30
|
-
}
|
|
31
|
-
export interface StateUpdateEmission<ENTITIES extends DomainEntity<string>, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>> {
|
|
32
|
-
readonly kind: 'staged' | 'committed';
|
|
33
|
-
readonly previousState: DomainState<ENTITIES>;
|
|
34
|
-
readonly state: DomainState<ENTITIES>;
|
|
35
|
-
readonly updates: ReadonlyArray<DataUpdate<ENTITIES, ENTITIES>>;
|
|
36
|
-
readonly validity: StateValidationResult<ENTITIES, ViolationTypesOf$Entity<$MAP[ENTITIES['type']]>>;
|
|
37
|
-
readonly transformationLog: TransformationLog | undefined;
|
|
38
|
-
}
|
|
39
|
-
export type StateEmission<ENTITIES extends DomainEntity<string>, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>> = ResetStateEmission<ENTITIES, $MAP> | StateUpdateEmission<ENTITIES, $MAP>;
|
|
40
|
-
export type TransformerPhase = 'no-event' | 'no-match' | 'no-resolve' | 'match' | 'no-apply' | 'apply';
|
|
41
|
-
export interface TransformerLogEntry {
|
|
42
|
-
phase: TransformerPhase;
|
|
43
|
-
message: string;
|
|
44
|
-
data: unknown | undefined;
|
|
45
|
-
}
|
|
46
|
-
export interface TransformerLog {
|
|
47
|
-
name: string;
|
|
48
|
-
entries: readonly TransformerLogEntry[];
|
|
49
|
-
status: TransformerPhase;
|
|
50
|
-
updatesIn: ReadonlyArray<StateUpdate<DomainEntity<string>, DomainEntity<string>>>;
|
|
51
|
-
updatesOut: ReadonlyArray<StateUpdate<DomainEntity<string>, DomainEntity<string>>>;
|
|
52
|
-
}
|
|
53
|
-
export type TransformationLog = readonly TransformerLog[];
|
|
54
23
|
export type TransformerLogFunction = (phase: TransformerPhase, message: string, data?: unknown) => void;
|
|
55
24
|
export type UpdateTransformer<ENTITIES extends DomainEntity<string> = DomainEntity<string>> = (updates: ReadonlyArray<StateUpdate<ENTITIES, ENTITIES>>, previousState: DomainState<ENTITIES>, kind: StateEmissionKind, log: TransformerLogFunction | undefined) => ReadonlyArray<StateUpdate<ENTITIES, ENTITIES>>;
|
|
56
25
|
export type IncrementalUpdateTransformer<ENTITIES extends DomainEntity<string> = DomainEntity<string>> = (unprocessedUpdates: ReadonlyArray<StateUpdate<ENTITIES, ENTITIES>>, previousState: DomainState<ENTITIES>, kind: StateEmissionKind, log: TransformerLogFunction | undefined, processedUpdates?: ReadonlyArray<StateUpdate<ENTITIES, ENTITIES>>) => ReadonlyArray<StateUpdate<ENTITIES, ENTITIES>>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { $DomainEntity, DomainEntity, DomainEntityId, DomainEntityModification, DomainEntityStateDelta, DomainState, IdSequence, StateUpdate, ViolationTypesOf$Entity } from '../../core/index.js';
|
|
2
|
-
import type { StateValidationResult } from '../../projections/validation-projections.js';
|
|
1
|
+
import type { $DomainEntity, DomainEntity, DomainEntityId, DomainEntityModification, DomainEntityStateDelta, DomainState, IdSequence, StateUpdate, StateValidationResult, ViolationTypesOf$Entity } from '../../core/index.js';
|
|
3
2
|
import type { DomainContextSystems } from '../domain-context-systems.js';
|
|
4
3
|
import type { StateEmissionKind, TransformerLogFunction } from '../store-system/store-system.js';
|
|
5
4
|
export type BaseTransformerBuilderContext<ENTITIES extends DomainEntity<string>, $MAP extends Record<string, $DomainEntity<ENTITIES>>, ALLOWED_ROOT_ENTITIES extends ENTITIES, NAVIGATION_STATES extends string, VIEW_STATES extends string, TOOL_STATES extends string, EXPORT_STATES extends string> = {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { ObservableWithLastValue } from '@salsita-ai/common/utils';
|
|
2
|
-
import type { $DomainEntity, DomainEntity } from '../core/index.js';
|
|
2
|
+
import type { $DomainEntity, DomainEntity, ResetStateEmission, StateEmission } from '../core/index.js';
|
|
3
3
|
import type { DomainContextSelectors } from '../domain-runtime/domain-context/index.js';
|
|
4
|
-
import type { ResetStateEmission, StateEmission } from './store-system/store-system.js';
|
|
5
4
|
export interface UndoCapabilities {
|
|
6
5
|
readonly canUndo: boolean;
|
|
7
6
|
readonly canRedo: boolean;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { $DomainEntity, DomainEntity, OpenActionContext } from '../../core/index.js';
|
|
2
|
+
import type { DomainContextSystems } from '../../domain-context/index.js';
|
|
3
|
+
import type { RuntimeExpressionContext } from './runtime-expression-context.js';
|
|
4
|
+
/**
|
|
5
|
+
* The context the domain runtime runs an action implementation with: core's part, with the
|
|
6
|
+
* expression context the runtime evaluates expressions in and the domain systems of the application.
|
|
7
|
+
* `ActionSystem.createContext` builds it.
|
|
8
|
+
*/
|
|
9
|
+
export interface ActionContext<ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, $MAP extends Record<ENTITIES['type'], $DomainEntity<ENTITIES>>, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>, NAVIGATION_STATES extends string, VIEW_STATES extends string, TOOL_STATES extends string, EXPORT_STATES extends string> extends OpenActionContext<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, RuntimeExpressionContext<ENTITIES>, DomainContextSystems<ENTITIES, ALLOWED_ROOT_ENTITIES, $MAP, NAVIGATION_STATES, VIEW_STATES, TOOL_STATES, EXPORT_STATES>> {
|
|
10
|
+
}
|
|
11
|
+
export type AnyActionContext = ActionContext<any, any, any, any, any, any, any, any, any, any>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CoreExpressionContext, DomainEntity } from '../../core/index.js';
|
|
2
|
+
import type { RuntimeExpressionContext } from './runtime-expression-context.js';
|
|
3
|
+
/**
|
|
4
|
+
* The context the domain runtime evaluates expressions in: core's part and the runtime's own part.
|
|
5
|
+
*/
|
|
6
|
+
export interface ExpressionContext<ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>> extends CoreExpressionContext<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA>, RuntimeExpressionContext<ENTITIES> {
|
|
7
|
+
}
|
|
8
|
+
export type AnyExpressionContext = ExpressionContext<any, any, any, any, any>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
export type * from './action-context.js';
|
|
1
2
|
export * from './actions.js';
|
|
2
3
|
export { ComponentReader, type AnyComponentReader } from './component-reader.js';
|
|
3
4
|
export { DomainContext } from './domain-context.js';
|
|
5
|
+
export type * from './expression-context.js';
|
|
4
6
|
export * from './initialize.js';
|
|
7
|
+
export type * from './runtime-expression-context.js';
|
|
5
8
|
export * from './selectors.js';
|
|
6
9
|
export type * from './types.js';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { DomainEntity } from '../../core/index.js';
|
|
2
|
+
import type { CollisionProjections, ConstraintProjections, PositionProjections, ProjectedEntitiesProjections, SnappingProjections } from '../../projections/index.js';
|
|
3
|
+
import type { SketchingProjections } from '../../sketching/index.js';
|
|
4
|
+
import type { ComponentReader } from './component-reader.js';
|
|
5
|
+
/**
|
|
6
|
+
* What the domain runtime adds to the expression context of core: the component reader and the
|
|
7
|
+
* projections it builds for every application. It is the context extension that generated project
|
|
8
|
+
* code closes the factories of core with.
|
|
9
|
+
*/
|
|
10
|
+
export interface RuntimeExpressionContext<ENTITIES extends DomainEntity<string>> {
|
|
11
|
+
readonly componentReader: ComponentReader<ENTITIES>;
|
|
12
|
+
readonly positionProjections: PositionProjections<ENTITIES>;
|
|
13
|
+
readonly sketchingProjections: SketchingProjections<ENTITIES>;
|
|
14
|
+
readonly collisionProjections: CollisionProjections<ENTITIES>;
|
|
15
|
+
readonly constraintProjections: ConstraintProjections<ENTITIES>;
|
|
16
|
+
readonly snappingProjections: SnappingProjections<ENTITIES>;
|
|
17
|
+
readonly projectedEntitiesProjections: ProjectedEntitiesProjections<ENTITIES>;
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type AnyDomain, type AnyDomainFactory, type
|
|
1
|
+
import { type AnyDomain, type AnyDomainFactory, type DomainComponentOptic, type DomainEntity, type DomainMode, type SystemComponentTypeConstraint } from '../../core/index.js';
|
|
2
2
|
import { type AnyActionSystem } from '../../domain-context/action-system/action-system.js';
|
|
3
3
|
import { type AnyDimensionSystem } from '../../domain-context/dimension-system/dimension-system.js';
|
|
4
4
|
import type { AnyDomainContextSystems } from '../../domain-context/domain-context-systems.js';
|
|
@@ -14,11 +14,12 @@ import type { DomainServicesSelectors } from '../domain-services/index.js';
|
|
|
14
14
|
import type { EnvironmentSelectors } from '../environment/index.js';
|
|
15
15
|
import type { ApplicationLoadedData } from '../loaded-data/index.js';
|
|
16
16
|
import type { DomainSessionContext, SessionContextSelectorState, SessionContextSelectors } from '../session-context/index.js';
|
|
17
|
-
import type
|
|
17
|
+
import { type SpecSelectorState, type SpecSelectors } from '../spec/index.js';
|
|
18
18
|
import type { WebComponentSelectorState, WebComponentSelectors } from '../web-component/index.js';
|
|
19
19
|
import type { DomainContextApplicationActions } from './actions.js';
|
|
20
20
|
import { type AnyComponentReader } from './component-reader.js';
|
|
21
21
|
import { DomainContext } from './domain-context.js';
|
|
22
|
+
import type { AnyExpressionContext } from './expression-context.js';
|
|
22
23
|
import type { ApplicationDomainContextState, DomainApplicationType, DomainContextInitializationContext, DomainContextInitializationIdentity, DomainContextInitializationState, InitializableSystem, SchemaCoherence } from './types.js';
|
|
23
24
|
type ComponentOptic<ENTITIES extends DomainEntity<string>, ALLOWED_ROOT_ENTITIES extends ENTITIES, PUBLISHED_DATA extends Record<string, unknown>, SESSION_DATA extends Record<string, unknown>, FRONTEND_DATA extends Record<string, unknown>> = DomainComponentOptic<ENTITIES, ALLOWED_ROOT_ENTITIES, PUBLISHED_DATA, SESSION_DATA, FRONTEND_DATA, ENTITIES, SystemComponentTypeConstraint>;
|
|
24
25
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createSelector as e}from"@salsita-ai/common/utils";import{prepareActionImplementations as t}from"../../actions/prepare-action-implementations.js";import{Domain as n,createInitialDomainState as o,prepareDomainExpressions as i}from"../../core/index.js";import{ActionSystem as a}from"../../domain-context/action-system/action-system.js";import{DimensionSystem as s}from"../../domain-context/dimension-system/dimension-system.js";import{NavigationSystem as r}from"../../domain-context/navigation-system/navigation-system.js";import{RecipeCookerSystem as c}from"../../domain-context/recipe-system/recipe-cooker-system.js";import{StoreSystem as m}from"../../domain-context/store-system/store-system.js";import{UndoSystem as l}from"../../domain-context/undo-system.js";import{BlenderProjections as d,CollisionProjections as g,CompositionProjections as f,ConstraintProjections as p,PositionProjections as u,ProjectedEntitiesProjections as y,SnappingProjections as w,ValidationProjections as h}from"../../projections/index.js";import{SketchingProjections as S}from"../../sketching/sketching-projections.js";import{requireAccessService as x}from"../access/index.js";import{ComponentReader as j}from"./component-reader.js";import{DomainContext as C}from"./domain-context.js";let D=e.withTypes(),v=[],I={},P={role:"admin",data:I},M=e=>{if(null!==e)return e;throw Error("Cannot read the session role and data because the domain session context is not set. The session context is written into the domain runtime by the session lifecycle after authentication. Move this read into the loaded session lifecycle.")};export const createDomainContextSelectors=e=>{let{applicationType:A,getState:R,actions:E,specSelectors:T,accessSelectors:b,webComponentSelectors:k,domainDataSelectors:$,sessionContextSelectors:N,domainServicesSelectors:z,environmentSelectors:L,getExtensionSystems:V}=e,B="configurator"===A?T.selectConfiguratorSpec:T.selectAdminSpec,F="configurator"===A?b.selectConfiguratorRawAccessService:b.selectAdminRawAccessService,W=D.leaf(e=>e.domainContext[A]),_=D([W],e=>e.initializationContext),q=D([_],e=>{if(null===e)throw Error(`Domain lifecycle context is not available for ${A}! Read it from an active domain lifecycle.`);return e}),O=D([W],e=>e.executionMode),U=D([W],e=>e.isInitialized),G=D([B],e=>e.factory),H=D([B],e=>e.expressions),J=D([B],e=>e.actions),K=D([B],e=>e.actionImplementations),Q=D([J,K],t),X=D([B],e=>e.$entityReflections),Y=D([H,X],(e,t)=>i({expressions:e,$entityReflections:t})),Z=D([B],e=>e.modelVersion),ee=D([B],e=>e.aliasMap),et=D([B],e=>e.allowedRootEntityTypes),en=D([B],e=>e.entityReflections),eo=D([B],e=>e.migrate),ei=D([O,k.selectReadonly,F],(e,t,n)=>"finalize"===e?"finalize":x(A,n).accessInfo.viewMode||t?"read":"owner"),ea=D([F],e=>e?.configurationId??null),es="configurator"===A?N.selectSessionContext:D([],()=>P),er=D([es],e=>e?.role??null),ec=D([es],e=>e?.data??null),em=D([D.leaf(e=>e.loadedData)],e=>"configurator"===A?e.configuratorLoadedData:e.adminLoadedData),el=D([em],e=>e?.schemaIdentity??null),ed=D([em,G],(e,t)=>{if(null===e)return"coherent";let n=e.schemaIdentity;return void 0===n?"missing-stamp":n===t?"coherent":"schema-mismatch"}),eg=D([ea,er,ec,el,ed],(e,t,n,o,i)=>null===e||null===t||null===n||null===o||"coherent"!==i?null:{configurationId:e,role:t,schemaIdentity:o,sessionData:n}),ef=D([F,k.selectReadonly],(e,t)=>e?.accessInfo.viewMode===!0||t),ep=D([eg,_,U,ef],(e,t,n,o)=>{let i=null!==e&&null!==t&&n&&t.configurationId===e.configurationId&&t.role===e.role&&t.schemaIdentity===e.schemaIdentity&&t.sessionData===e.sessionData;return{identity:e,isCurrent:i,isViewMode:o}}),eu=D([B],e=>e.componentOptics),ey=D([eu],e=>(e=>{let t=new Map,n=new Map,o=new Map,i=new Map;for(let n of e)for(let e of n.entityTypes){let o=t.get(e);o||(o=new Map,t.set(e,o));let a=o.get(n.componentType);if(a||(a=new Map,o.set(n.componentType,a)),a.has(n.instanceName))throw Error(`Component instance ${n.instanceName} already exists for type ${n.componentType.name} in entity ${e}. This is likely a bug in the component definition! InstanceNames must be unique within an entity and component.`);if(a.set(n.instanceName,n),"dynamic"===n.kind){let t=i.get(e);t||(t=new Map,i.set(e,t));let o=t.get(n.componentType)??[],a=o.find(e=>{var t;return t=n.instanceName,e.startsWith(`${t}_`)||t.startsWith(`${e}_`)});if(a)throw Error(`Cannot register dynamic component instance ${n.instanceName} for component ${n.componentType.name} on entity ${e} because it overlaps with dynamic instance ${a}. Rename one dynamic instance so compound names cannot be ambiguous.`);t.set(n.componentType,[...o,n.instanceName])}}for(let[e,i]of t.entries()){n.set(e,new Set(i.keys()));let t=new Map;for(let[n,a]of(o.set(e,t),i.entries()))t.set(n,new Set(a.keys()))}return{opticMap:t,allComponentTypes:n,allComponentInstanceNames:o,dynamicInstanceNames:i}})(e)),ew=D([ey,Y,et],(e,t,n)=>({componentReaderIndexes:e,domainExpressions:t,allowedRootEntityTypes:n})),eh=D([B],e=>e.navigationStates),eS=D([B],e=>e.viewStates),ex="configurator"===A?D([T.selectConfiguratorSpec],e=>e.toolStates):D([],()=>v),ej="configurator"===A?D([T.selectConfiguratorSpec],e=>e.exportStates):D([],()=>v),eC="configurator"===A?D([T.selectConfiguratorSpec],e=>e.createTransformers):D([],()=>void 0),eD=D([em],e=>{if(null===e)throw Error(`Loaded data is not available for ${A}! Loaded data is written after the configuration fetch succeeds and before the domain context initialization starts.`);return e}),ev=D([eD,G],(e,t)=>o(t.validateAndMigrateState(e.initialEntities,e.modelVersion),e.rootEntityType)),eI="configurator"===A?$.selectConfiguratorFrontendData:$.selectAdminFrontendData,eP="configurator"===A?$.selectConfiguratorBackendData:$.selectAdminBackendData,eM="configurator"===A?$.selectConfiguratorPublishedData:$.selectAdminPublishedData,eA="configurator"===A?D([N.selectSessionContext],e=>M(e).role):D([],()=>"admin"),eR="configurator"===A?D([N.selectSessionContext],e=>M(e).data):D([],()=>I),eE=D([ea,ei,eA,eR,eD],(e,t,n,o,i)=>({configurationId:e,mode:t,role:n,schemaIdentity:i.schemaIdentity,sessionData:o})),eT=D([q],e=>e.mode),eb=D([q],e=>{let t=e.configurationId;if(null===t)throw Error(`Configuration id is not available for ${A}! Read it from an active interactive domain lifecycle.`);return t}),ek=D([q],e=>e.role),e$=D([q],e=>e.sessionData),eN=D([eT,ek,e$,eI,eP,eM,eo],(e,t,n,o,i,a,s)=>({mode:e,role:t,sessionData:n,frontendData:o,backendData:i,publishedData:a,migrate:s,domain:eL,componentReader:eV,positionProjections:eq,sketchingProjections:e_,collisionProjections:eO,constraintProjections:eG,snappingProjections:eU,projectedEntitiesProjections:eH})),ez={selectApplicationSpec:B,selectRawAccessService:F,selectDomainContextState:W,selectInitializationContext:_,selectActiveInitializationContext:q,selectExecutionMode:O,selectIsInitialized:U,selectFactory:G,selectSpecExpressions:H,select$SpecEntityReflections:X,selectDomainExpressions:Y,selectModelVersion:Z,selectAliasMap:ee,selectAllowedRootEntityTypes:et,selectEntityReflections:en,selectMigrate:eo,selectLatestMode:ei,selectLatestConfigurationId:ea,selectLatestSessionContext:es,selectLatestRoleOrNull:er,selectLatestSessionDataOrNull:ec,selectLatestSchemaIdentity:el,selectSchemaCoherence:ed,selectInitializationIdentity:eg,selectIsViewMode:ef,selectInitializationState:ep,selectComponentOptics:eu,selectComponentReaderIndexes:ey,selectStoreRuntimeDependencies:ew,selectNavigationStates:eh,selectViewStates:eS,selectToolStates:ex,selectExportStates:ej,selectCreateTransformers:eC,selectLatestLoadedData:em,selectLoadedData:eD,selectInitialDomainState:ev,selectFrontendData:eI,selectBackendData:eP,selectPublishedData:eM,selectLatestRole:eA,selectLatestSessionData:eR,selectNextInitializationContext:eE,selectActiveMode:eT,selectActiveConfigurationId:eb,selectActiveRole:ek,selectActiveSessionData:e$,selectExpressionContext:eN,getInitializationContext:()=>_(R()),getInitializationState:()=>ep(R()),getNextInitializationContext:()=>eE(R()),getLatestLoadedData:()=>em(R()),getSchemaCoherence:()=>ed(R()),getActiveConfigurationId:()=>eb(R()),getFactory:()=>G(R()),getDomainExpressions:()=>Y(R()),getActionDefinitions:()=>J(R()),getActionImplementations:()=>Q(R()),getModelVersion:()=>Z(R()),getAliasMap:()=>ee(R()),getAllowedRootEntityTypes:()=>et(R()),getEntityReflections:()=>en(R()),getMigrate:()=>eo(R()),getActiveMode:()=>eT(R()),getIsInitialized:()=>U(R()),getComponentReaderIndexes:()=>ey(R()),getStoreRuntimeDependencies:()=>ew(R()),getNavigationStates:()=>eh(R()),getViewStates:()=>eS(R()),getToolStates:()=>ex(R()),getExportStates:()=>ej(R()),getCreateTransformers:()=>eC(R()),getLoadedData:()=>eD(R()),getInitialDomainState:()=>ev(R()),getFrontendData:()=>eI(R()),getBackendData:()=>eP(R()),getPublishedData:()=>eM(R()),getActiveRole:()=>ek(R()),getActiveSessionData:()=>e$(R()),getDomain:()=>eL,getComponentReader:()=>eV,getCompositionProjections:()=>eB,getDimensionSystem:()=>eF,getValidationProjections:()=>eW,getSketchingProjections:()=>e_,getPositionProjections:()=>eq,getCollisionProjections:()=>eO,getSnappingProjections:()=>eU,getConstraintProjections:()=>eG,getProjectedEntitiesProjections:()=>eH,getStoreSystem:()=>eJ,getNavigationSystem:()=>eK,getUndoSystem:()=>eQ,getRecipeCookerSystem:()=>eX,getActionSystem:()=>eY,getBlenderProjections:()=>eZ,getExpressionContext:()=>eN(R()),getDomainSystems:function(){return e0},getDomainContext:function(){return e1}},eL=new n({selectors:ez}),eV=new j({selectors:ez}),eB=new f({selectors:ez}),eF=new s({selectors:ez}),eW=new h({selectors:ez}),e_=new S({selectors:ez}),eq=new u({selectors:ez}),eO=new g({selectors:ez}),eU=new w({selectors:ez}),eG=new p({selectors:ez}),eH=new y({selectors:ez}),eJ=new m({selectors:ez,domainServicesSelectors:z,environmentSelectors:L}),eK=new r({selectors:ez,domainServicesSelectors:z}),eQ=new l({selectors:ez}),eX=new c({selectors:ez}),eY=new a({selectors:ez}),eZ=new d({selectors:ez,domainServicesSelectors:z}),e0={domainContextSelectors:ez,domain:eL,componentReader:eV,compositionProjections:eB,blenderProjections:eZ,validationProjections:eW,storeSystem:eJ,navigationSystem:eK,dimensionSystem:eF,undoSystem:eQ,recipeCooker:eX,actionSystem:eY,sketchingProjections:e_,collisionProjections:eO,positionProjections:eq,snappingProjections:eU,projectedEntitiesProjections:eH,constraintProjections:eG},e1=new C({selectors:ez,actions:E,getExtensionSystems:V});return ez};
|
|
1
|
+
import{createSelector as e}from"@salsita-ai/common/utils";import{Domain as t,createInitialDomainState as n}from"../../core/index.js";import{ActionSystem as o}from"../../domain-context/action-system/action-system.js";import{DimensionSystem as i}from"../../domain-context/dimension-system/dimension-system.js";import{NavigationSystem as a}from"../../domain-context/navigation-system/navigation-system.js";import{RecipeCookerSystem as s}from"../../domain-context/recipe-system/recipe-cooker-system.js";import{StoreSystem as r}from"../../domain-context/store-system/store-system.js";import{UndoSystem as c}from"../../domain-context/undo-system.js";import{BlenderProjections as l,CollisionProjections as m,CompositionProjections as d,ConstraintProjections as g,PositionProjections as f,ProjectedEntitiesProjections as p,SnappingProjections as u,ValidationProjections as y}from"../../projections/index.js";import{SketchingProjections as w}from"../../sketching/sketching-projections.js";import{requireAccessService as h}from"../access/index.js";import{prepareActionImplementations as S,prepareDomainExpressions as x}from"../spec/index.js";import{ComponentReader as j}from"./component-reader.js";import{DomainContext as C}from"./domain-context.js";let D=e.withTypes(),v=[],I={},P={role:"admin",data:I},M=e=>{if(null!==e)return e;throw Error("Cannot read the session role and data because the domain session context is not set. The session context is written into the domain runtime by the session lifecycle after authentication. Move this read into the loaded session lifecycle.")};export const createDomainContextSelectors=e=>{let{applicationType:A,getState:R,actions:E,specSelectors:T,accessSelectors:b,webComponentSelectors:k,domainDataSelectors:$,sessionContextSelectors:N,domainServicesSelectors:z,environmentSelectors:L,getExtensionSystems:V}=e,B="configurator"===A?T.selectConfiguratorSpec:T.selectAdminSpec,F="configurator"===A?b.selectConfiguratorRawAccessService:b.selectAdminRawAccessService,W=D.leaf(e=>e.domainContext[A]),_=D([W],e=>e.initializationContext),q=D([_],e=>{if(null===e)throw Error(`Domain lifecycle context is not available for ${A}! Read it from an active domain lifecycle.`);return e}),O=D([W],e=>e.executionMode),U=D([W],e=>e.isInitialized),G=D([B],e=>e.factory),H=D([B],e=>e.expressions),J=D([B],e=>e.actions),K=D([B],e=>e.actionImplementations),Q=D([J,K],S),X=D([B],e=>e.$entityReflections),Y=D([H,X],(e,t)=>x({expressions:e,$entityReflections:t})),Z=D([B],e=>e.modelVersion),ee=D([B],e=>e.aliasMap),et=D([B],e=>e.allowedRootEntityTypes),en=D([B],e=>e.entityReflections),eo=D([B],e=>e.migrate),ei=D([O,k.selectReadonly,F],(e,t,n)=>"finalize"===e?"finalize":h(A,n).accessInfo.viewMode||t?"read":"owner"),ea=D([F],e=>e?.configurationId??null),es="configurator"===A?N.selectSessionContext:D([],()=>P),er=D([es],e=>e?.role??null),ec=D([es],e=>e?.data??null),el=D([D.leaf(e=>e.loadedData)],e=>"configurator"===A?e.configuratorLoadedData:e.adminLoadedData),em=D([el],e=>e?.schemaIdentity??null),ed=D([el,G],(e,t)=>{if(null===e)return"coherent";let n=e.schemaIdentity;return void 0===n?"missing-stamp":n===t?"coherent":"schema-mismatch"}),eg=D([ea,er,ec,em,ed],(e,t,n,o,i)=>null===e||null===t||null===n||null===o||"coherent"!==i?null:{configurationId:e,role:t,schemaIdentity:o,sessionData:n}),ef=D([F,k.selectReadonly],(e,t)=>e?.accessInfo.viewMode===!0||t),ep=D([eg,_,U,ef],(e,t,n,o)=>{let i=null!==e&&null!==t&&n&&t.configurationId===e.configurationId&&t.role===e.role&&t.schemaIdentity===e.schemaIdentity&&t.sessionData===e.sessionData;return{identity:e,isCurrent:i,isViewMode:o}}),eu=D([B],e=>e.componentOptics),ey=D([eu],e=>(e=>{let t=new Map,n=new Map,o=new Map,i=new Map;for(let n of e)for(let e of n.entityTypes){let o=t.get(e);o||(o=new Map,t.set(e,o));let a=o.get(n.componentType);if(a||(a=new Map,o.set(n.componentType,a)),a.has(n.instanceName))throw Error(`Component instance ${n.instanceName} already exists for type ${n.componentType.name} in entity ${e}. This is likely a bug in the component definition! InstanceNames must be unique within an entity and component.`);if(a.set(n.instanceName,n),"dynamic"===n.kind){let t=i.get(e);t||(t=new Map,i.set(e,t));let o=t.get(n.componentType)??[],a=o.find(e=>{var t;return t=n.instanceName,e.startsWith(`${t}_`)||t.startsWith(`${e}_`)});if(a)throw Error(`Cannot register dynamic component instance ${n.instanceName} for component ${n.componentType.name} on entity ${e} because it overlaps with dynamic instance ${a}. Rename one dynamic instance so compound names cannot be ambiguous.`);t.set(n.componentType,[...o,n.instanceName])}}for(let[e,i]of t.entries()){n.set(e,new Set(i.keys()));let t=new Map;for(let[n,a]of(o.set(e,t),i.entries()))t.set(n,new Set(a.keys()))}return{opticMap:t,allComponentTypes:n,allComponentInstanceNames:o,dynamicInstanceNames:i}})(e)),ew=D([ey,Y,et],(e,t,n)=>({componentReaderIndexes:e,domainExpressions:t,allowedRootEntityTypes:n})),eh=D([B],e=>e.navigationStates),eS=D([B],e=>e.viewStates),ex="configurator"===A?D([T.selectConfiguratorSpec],e=>e.toolStates):D([],()=>v),ej="configurator"===A?D([T.selectConfiguratorSpec],e=>e.exportStates):D([],()=>v),eC="configurator"===A?D([T.selectConfiguratorSpec],e=>e.createTransformers):D([],()=>void 0),eD=D([el],e=>{if(null===e)throw Error(`Loaded data is not available for ${A}! Loaded data is written after the configuration fetch succeeds and before the domain context initialization starts.`);return e}),ev=D([eD,G],(e,t)=>n(t.validateAndMigrateState(e.initialEntities,e.modelVersion),e.rootEntityType)),eI="configurator"===A?$.selectConfiguratorFrontendData:$.selectAdminFrontendData,eP="configurator"===A?$.selectConfiguratorBackendData:$.selectAdminBackendData,eM="configurator"===A?$.selectConfiguratorPublishedData:$.selectAdminPublishedData,eA="configurator"===A?D([N.selectSessionContext],e=>M(e).role):D([],()=>"admin"),eR="configurator"===A?D([N.selectSessionContext],e=>M(e).data):D([],()=>I),eE=D([ea,ei,eA,eR,eD],(e,t,n,o,i)=>({configurationId:e,mode:t,role:n,schemaIdentity:i.schemaIdentity,sessionData:o})),eT=D([q],e=>e.mode),eb=D([q],e=>{let t=e.configurationId;if(null===t)throw Error(`Configuration id is not available for ${A}! Read it from an active interactive domain lifecycle.`);return t}),ek=D([q],e=>e.role),e$=D([q],e=>e.sessionData),eN=D([eT,ek,e$,eI,eP,eM,eo],(e,t,n,o,i,a,s)=>({mode:e,role:t,sessionData:n,frontendData:o,backendData:i,publishedData:a,migrate:s,domain:eL,componentReader:eV,positionProjections:eq,sketchingProjections:e_,collisionProjections:eO,constraintProjections:eG,snappingProjections:eU,projectedEntitiesProjections:eH})),ez={selectApplicationSpec:B,selectRawAccessService:F,selectDomainContextState:W,selectInitializationContext:_,selectActiveInitializationContext:q,selectExecutionMode:O,selectIsInitialized:U,selectFactory:G,selectSpecExpressions:H,select$SpecEntityReflections:X,selectDomainExpressions:Y,selectModelVersion:Z,selectAliasMap:ee,selectAllowedRootEntityTypes:et,selectEntityReflections:en,selectMigrate:eo,selectLatestMode:ei,selectLatestConfigurationId:ea,selectLatestSessionContext:es,selectLatestRoleOrNull:er,selectLatestSessionDataOrNull:ec,selectLatestSchemaIdentity:em,selectSchemaCoherence:ed,selectInitializationIdentity:eg,selectIsViewMode:ef,selectInitializationState:ep,selectComponentOptics:eu,selectComponentReaderIndexes:ey,selectStoreRuntimeDependencies:ew,selectNavigationStates:eh,selectViewStates:eS,selectToolStates:ex,selectExportStates:ej,selectCreateTransformers:eC,selectLatestLoadedData:el,selectLoadedData:eD,selectInitialDomainState:ev,selectFrontendData:eI,selectBackendData:eP,selectPublishedData:eM,selectLatestRole:eA,selectLatestSessionData:eR,selectNextInitializationContext:eE,selectActiveMode:eT,selectActiveConfigurationId:eb,selectActiveRole:ek,selectActiveSessionData:e$,selectExpressionContext:eN,getInitializationContext:()=>_(R()),getInitializationState:()=>ep(R()),getNextInitializationContext:()=>eE(R()),getLatestLoadedData:()=>el(R()),getSchemaCoherence:()=>ed(R()),getActiveConfigurationId:()=>eb(R()),getFactory:()=>G(R()),getDomainExpressions:()=>Y(R()),getActionDefinitions:()=>J(R()),getActionImplementations:()=>Q(R()),getModelVersion:()=>Z(R()),getAliasMap:()=>ee(R()),getAllowedRootEntityTypes:()=>et(R()),getEntityReflections:()=>en(R()),getMigrate:()=>eo(R()),getActiveMode:()=>eT(R()),getIsInitialized:()=>U(R()),getComponentReaderIndexes:()=>ey(R()),getStoreRuntimeDependencies:()=>ew(R()),getNavigationStates:()=>eh(R()),getViewStates:()=>eS(R()),getToolStates:()=>ex(R()),getExportStates:()=>ej(R()),getCreateTransformers:()=>eC(R()),getLoadedData:()=>eD(R()),getInitialDomainState:()=>ev(R()),getFrontendData:()=>eI(R()),getBackendData:()=>eP(R()),getPublishedData:()=>eM(R()),getActiveRole:()=>ek(R()),getActiveSessionData:()=>e$(R()),getDomain:()=>eL,getComponentReader:()=>eV,getCompositionProjections:()=>eB,getDimensionSystem:()=>eF,getValidationProjections:()=>eW,getSketchingProjections:()=>e_,getPositionProjections:()=>eq,getCollisionProjections:()=>eO,getSnappingProjections:()=>eU,getConstraintProjections:()=>eG,getProjectedEntitiesProjections:()=>eH,getStoreSystem:()=>eJ,getNavigationSystem:()=>eK,getUndoSystem:()=>eQ,getRecipeCookerSystem:()=>eX,getActionSystem:()=>eY,getBlenderProjections:()=>eZ,getExpressionContext:()=>eN(R()),getDomainSystems:function(){return e0},getDomainContext:function(){return e1}},eL=new t({selectors:ez}),eV=new j({selectors:ez}),eB=new d({selectors:ez}),eF=new i({selectors:ez}),eW=new y({selectors:ez}),e_=new w({selectors:ez}),eq=new f({selectors:ez}),eO=new m({selectors:ez}),eU=new u({selectors:ez}),eG=new g({selectors:ez}),eH=new p({selectors:ez}),eJ=new r({selectors:ez,domainServicesSelectors:z,environmentSelectors:L}),eK=new a({selectors:ez,domainServicesSelectors:z}),eQ=new c({selectors:ez}),eX=new s({selectors:ez}),eY=new o({selectors:ez}),eZ=new l({selectors:ez,domainServicesSelectors:z}),e0={domainContextSelectors:ez,domain:eL,componentReader:eV,compositionProjections:eB,blenderProjections:eZ,validationProjections:eW,storeSystem:eJ,navigationSystem:eK,dimensionSystem:eF,undoSystem:eQ,recipeCooker:eX,actionSystem:eY,sketchingProjections:e_,collisionProjections:eO,positionProjections:eq,snappingProjections:eU,projectedEntitiesProjections:eH,constraintProjections:eG},e1=new C({selectors:ez,actions:E,getExtensionSystems:V});return ez};
|
|
@@ -389,7 +389,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
|
|
|
389
389
|
selectActiveConfigurationId: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, string>;
|
|
390
390
|
selectActiveRole: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("@salsita-ai/contracts/api").SessionRole>;
|
|
391
391
|
selectActiveSessionData: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, Record<string, unknown>>;
|
|
392
|
-
selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("
|
|
392
|
+
selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("./index.js").AnyExpressionContext>;
|
|
393
393
|
getInitializationContext: () => import("./index.js").DomainContextInitializationContext | null;
|
|
394
394
|
getInitializationState: () => import("./index.js").DomainContextInitializationState;
|
|
395
395
|
getNextInitializationContext: () => import("./index.js").DomainContextInitializationContext;
|
|
@@ -442,7 +442,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
|
|
|
442
442
|
getRecipeCookerSystem: () => import("../index.js").AnyRecipeCookerSystem;
|
|
443
443
|
getActionSystem: () => import("../index.js").AnyActionSystem;
|
|
444
444
|
getBlenderProjections: () => import("../index.js").AnyBlenderProjections;
|
|
445
|
-
getExpressionContext: () => import("
|
|
445
|
+
getExpressionContext: () => import("./index.js").AnyExpressionContext;
|
|
446
446
|
getDomainSystems: () => import("../index.js").AnyDomainContextSystems;
|
|
447
447
|
getDomainContext: () => import("./index.js").DomainContext;
|
|
448
448
|
};
|
|
@@ -498,7 +498,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
|
|
|
498
498
|
selectActiveConfigurationId: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, string>;
|
|
499
499
|
selectActiveRole: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("@salsita-ai/contracts/api").SessionRole>;
|
|
500
500
|
selectActiveSessionData: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, Record<string, unknown>>;
|
|
501
|
-
selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("
|
|
501
|
+
selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("./index.js").AnyExpressionContext>;
|
|
502
502
|
getInitializationContext: () => import("./index.js").DomainContextInitializationContext | null;
|
|
503
503
|
getInitializationState: () => import("./index.js").DomainContextInitializationState;
|
|
504
504
|
getNextInitializationContext: () => import("./index.js").DomainContextInitializationContext;
|
|
@@ -551,7 +551,7 @@ export declare function createDomainRuntimeSlices<State extends DomainRuntimeSta
|
|
|
551
551
|
getRecipeCookerSystem: () => import("../index.js").AnyRecipeCookerSystem;
|
|
552
552
|
getActionSystem: () => import("../index.js").AnyActionSystem;
|
|
553
553
|
getBlenderProjections: () => import("../index.js").AnyBlenderProjections;
|
|
554
|
-
getExpressionContext: () => import("
|
|
554
|
+
getExpressionContext: () => import("./index.js").AnyExpressionContext;
|
|
555
555
|
getDomainSystems: () => import("../index.js").AnyDomainContextSystems;
|
|
556
556
|
getDomainContext: () => import("./index.js").DomainContext;
|
|
557
557
|
};
|
|
@@ -979,7 +979,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
|
|
|
979
979
|
selectActiveConfigurationId: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, string>;
|
|
980
980
|
selectActiveRole: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("@salsita-ai/contracts/api").SessionRole>;
|
|
981
981
|
selectActiveSessionData: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, Record<string, unknown>>;
|
|
982
|
-
selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("
|
|
982
|
+
selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("./index.js").AnyExpressionContext>;
|
|
983
983
|
getInitializationContext: () => import("./index.js").DomainContextInitializationContext | null;
|
|
984
984
|
getInitializationState: () => import("./index.js").DomainContextInitializationState;
|
|
985
985
|
getNextInitializationContext: () => import("./index.js").DomainContextInitializationContext;
|
|
@@ -1032,7 +1032,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
|
|
|
1032
1032
|
getRecipeCookerSystem: () => import("../index.js").AnyRecipeCookerSystem;
|
|
1033
1033
|
getActionSystem: () => import("../index.js").AnyActionSystem;
|
|
1034
1034
|
getBlenderProjections: () => import("../index.js").AnyBlenderProjections;
|
|
1035
|
-
getExpressionContext: () => import("
|
|
1035
|
+
getExpressionContext: () => import("./index.js").AnyExpressionContext;
|
|
1036
1036
|
getDomainSystems: () => import("../index.js").AnyDomainContextSystems;
|
|
1037
1037
|
getDomainContext: () => import("./index.js").DomainContext;
|
|
1038
1038
|
};
|
|
@@ -1088,7 +1088,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
|
|
|
1088
1088
|
selectActiveConfigurationId: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, string>;
|
|
1089
1089
|
selectActiveRole: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("@salsita-ai/contracts/api").SessionRole>;
|
|
1090
1090
|
selectActiveSessionData: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, Record<string, unknown>>;
|
|
1091
|
-
selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("
|
|
1091
|
+
selectExpressionContext: import("@salsita-ai/common/utils").Selector<import("./index.js").DomainContextSelectorState, import("./index.js").AnyExpressionContext>;
|
|
1092
1092
|
getInitializationContext: () => import("./index.js").DomainContextInitializationContext | null;
|
|
1093
1093
|
getInitializationState: () => import("./index.js").DomainContextInitializationState;
|
|
1094
1094
|
getNextInitializationContext: () => import("./index.js").DomainContextInitializationContext;
|
|
@@ -1141,7 +1141,7 @@ export declare const createDomainRuntime: (props: Omit<Props<DomainRuntimeState>
|
|
|
1141
1141
|
getRecipeCookerSystem: () => import("../index.js").AnyRecipeCookerSystem;
|
|
1142
1142
|
getActionSystem: () => import("../index.js").AnyActionSystem;
|
|
1143
1143
|
getBlenderProjections: () => import("../index.js").AnyBlenderProjections;
|
|
1144
|
-
getExpressionContext: () => import("
|
|
1144
|
+
getExpressionContext: () => import("./index.js").AnyExpressionContext;
|
|
1145
1145
|
getDomainSystems: () => import("../index.js").AnyDomainContextSystems;
|
|
1146
1146
|
getDomainContext: () => import("./index.js").DomainContext;
|
|
1147
1147
|
};
|