@salsita-ai/sdk 0.50.0-develop.91d65bd507 → 0.50.0-develop.9239ced550

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/README.md +1 -1
  2. package/dist/application/index.d.ts +1 -0
  3. package/dist/application/index.js +1 -1
  4. package/dist/application/mount-application.d.ts +1 -1
  5. package/dist/application/mount-application.js +1 -1
  6. package/dist/application/mount-configurator.d.ts +19 -0
  7. package/dist/application/mount-configurator.js +1 -0
  8. package/dist/application/mounted-application-runtime.d.ts +4 -0
  9. package/dist/application/mounted-application-runtime.js +1 -0
  10. package/dist/application/register-web-component.d.ts +2 -0
  11. package/dist/application/register-web-component.js +1 -0
  12. package/dist/application-spec/core/enhanced-json-value.d.ts +2 -31
  13. package/dist/application-spec/core/enhanced-json-value.js +1 -1
  14. package/dist/application-spec/core/index.d.ts +1 -3
  15. package/dist/application-spec/core/index.js +1 -1
  16. package/dist/application-spec/core/markers/index.d.ts +1 -1
  17. package/dist/application-spec/core/markers/index.js +1 -1
  18. package/dist/application-spec/core/markers/msg-marker.d.ts +2 -28
  19. package/dist/application-spec/core/markers/msg-marker.js +1 -1
  20. package/dist/application-spec/core/markers/raw-eval-write-marker.d.ts +1 -1
  21. package/dist/application-spec/core/markers/raw-eval-write-marker.js +1 -1
  22. package/dist/application-spec/core/markers/raw-read-write-marker.js +1 -1
  23. package/dist/application-spec/generate-application/code/project-scaffolding.js +2 -2
  24. package/dist/application-spec/generate-application/code/templates/index.d.ts +2 -6
  25. package/dist/application-spec/generate-application/code/templates/index.js +1 -1
  26. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.d.ts +10 -0
  27. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill-bundle.js +7 -0
  28. package/dist/application-spec/generate-application/code/templates/skills/phoenix-skill.js +1 -1
  29. package/dist/application-spec/generate-application/implementations/phx-application-types.d.ts +25 -0
  30. package/dist/application-spec/generate-application/implementations/phx-application-types.js +1 -0
  31. package/dist/application-spec/generate-application/implementations/phx-domain.d.ts +36 -0
  32. package/dist/application-spec/generate-application/implementations/phx-domain.js +1 -0
  33. package/dist/application-spec/generate-application/implementations/phx-model.d.ts +24 -0
  34. package/dist/application-spec/generate-application/implementations/phx-model.js +1 -0
  35. package/dist/application-spec/generate-application/implementations/phx.d.ts +22 -0
  36. package/dist/application-spec/generate-application/implementations/phx.js +1 -0
  37. package/dist/application-spec/generate-application/index.d.ts +2 -0
  38. package/dist/application-spec/generate-application/index.js +1 -1
  39. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-model-runtime.d.ts +3 -3
  40. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.d.ts +4 -2
  41. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-runtime.js +1 -1
  42. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.d.ts +16 -0
  43. package/dist/application-spec/generate-application/runtime/admin-runtime/admin-spec-runtime.js +1 -0
  44. package/dist/application-spec/generate-application/runtime/application-runtime.d.ts +5 -0
  45. package/dist/application-spec/generate-application/runtime/application-runtime.js +1 -1
  46. package/dist/application-spec/generate-application/runtime/application-spec-slice.d.ts +71 -0
  47. package/dist/application-spec/generate-application/runtime/application-spec-slice.js +1 -0
  48. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-model-runtime.d.ts +3 -3
  49. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.d.ts +4 -2
  50. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-runtime.js +1 -1
  51. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.d.ts +16 -0
  52. package/dist/application-spec/generate-application/runtime/configurator-runtime/configurator-spec-runtime.js +1 -0
  53. package/dist/application-spec/generate-application/runtime/create-application.d.ts +57 -0
  54. package/dist/application-spec/generate-application/runtime/create-application.js +1 -0
  55. package/dist/application-spec/generate-application/runtime/factory-data/recipe-defaults.js +1 -1
  56. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.d.ts +1 -1
  57. package/dist/application-spec/generate-application/runtime/factory-data/static-violations.js +1 -1
  58. package/dist/application-spec/generate-application/runtime/generate-runtime-instance.d.ts +1 -1
  59. package/dist/application-spec/generate-application/runtime/generate-runtime-instance.js +1 -1
  60. package/dist/application-spec/generate-application/runtime/index.d.ts +8 -0
  61. package/dist/application-spec/generate-application/runtime/index.js +1 -0
  62. package/dist/application-spec/generate-application/runtime/sections/build-sdk-optic.js +1 -1
  63. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.d.ts +1 -1
  64. package/dist/application-spec/generate-application/runtime/sections/expression-runtime.js +1 -1
  65. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.d.ts +1 -1
  66. package/dist/application-spec/generate-application/runtime/sections/generate-memo-eval-plan-runtime.js +1 -1
  67. package/dist/application-spec/generate-application/runtime/spec-code/resolve-spec-code.d.ts +1 -1
  68. package/dist/application-spec/generate-application/runtime/spec-runtime.d.ts +21 -0
  69. package/dist/application-spec/generate-application/runtime/spec-runtime.js +1 -0
  70. package/dist/application-spec/generate-application/runtime-spec/encoded-runtime-spec.d.ts +3 -2
  71. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.d.ts +44 -9
  72. package/dist/application-spec/generate-application/runtime-spec/runtime-spec.js +1 -1
  73. package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.d.ts +1 -1
  74. package/dist/application-spec/parse-application-files/raw-spec/raw-expressions.js +1 -1
  75. package/dist/client/authorized-client.d.ts +3 -1
  76. package/dist/client/authorized-client.js +1 -1
  77. package/dist/client/contract.d.ts +17 -0
  78. package/dist/client/index.d.ts +1 -1
  79. package/dist/client/local-authorized-client.d.ts +3 -1
  80. package/dist/client/local-authorized-client.js +1 -1
  81. package/dist/client/memory-authorized-client.d.ts +4 -1
  82. package/dist/client/memory-authorized-client.js +1 -1
  83. package/dist/client/phoenix-api.d.ts +228 -0
  84. package/dist/configurator/ConfiguratorApp.js +1 -1
  85. package/dist/configurator/application-runtime/extensions/selectors.js +1 -1
  86. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.d.ts +13 -0
  87. package/dist/configurator/application-runtime/extensions/systems/assistant-system/assistant-system.js +1 -1
  88. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.d.ts +2 -1
  89. package/dist/configurator/application-runtime/extensions/systems/assistant-system/graphql-tools.js +1 -1
  90. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.d.ts +15 -9
  91. package/dist/configurator/application-runtime/extensions/systems/graphql-system/graphql-system.js +1 -1
  92. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.d.ts +1 -1
  93. package/dist/configurator/ui/assistant/screenshots/ScreenshotThumbnails.js +1 -1
  94. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.d.ts +12 -4
  95. package/dist/configurator/ui/assistant/screenshots/tool-screenshots.js +1 -1
  96. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.d.ts +8 -0
  97. package/dist/configurator/ui/assistant/screenshots/use-screenshot-src.js +1 -0
  98. package/dist/docs/index.json +1 -1
  99. package/dist/docs/layouts/gallery/nightjar-guitar.mdx +31 -16
  100. package/dist/docs/layouts/gallery/tidepool-aquascape.mdx +205 -33
  101. package/dist/docs/phoenix/domain-model.mdx +4 -1
  102. package/dist/docs/phoenix/phoenix-cli.mdx +14 -6
  103. package/dist/docs/phoenix/project-structure.mdx +21 -17
  104. package/dist/docs/phoenix/sdk-builder-workflow.mdx +6 -4
  105. package/dist/domain/application/assistant/build-assistant-manifest.js +1 -1
  106. package/dist/domain/application/assistant/generate-assistant-prompt.js +1 -1
  107. package/dist/domain/application/configurator-builder.d.ts +7 -1
  108. package/dist/domain/application/configurator-builder.js +1 -1
  109. package/dist/domain/application/index.d.ts +1 -1
  110. package/dist/domain/application/index.js +1 -1
  111. package/dist/domain/application/standard-properties.js +1 -1
  112. package/dist/domain/domain-runtime/application.d.ts +39 -0
  113. package/dist/domain/domain-runtime/application.js +1 -0
  114. package/dist/domain/domain-runtime/domain-runtime.d.ts +36 -4
  115. package/dist/domain/domain-runtime/domain-runtime.js +1 -1
  116. package/dist/domain/domain-runtime/environment/initialize.d.ts +1 -1
  117. package/dist/domain/domain-runtime/index.d.ts +1 -0
  118. package/dist/domain/domain-runtime/index.js +1 -1
  119. package/dist/domain/domain-runtime/web-component/actions.d.ts +3 -0
  120. package/dist/domain/domain-runtime/web-component/actions.js +1 -1
  121. package/dist/domain/domain-runtime/web-component/initialize.d.ts +1 -0
  122. package/dist/domain/domain-runtime/web-component/initialize.js +1 -1
  123. package/dist/domain/domain-runtime/web-component/selectors.d.ts +2 -0
  124. package/dist/domain/domain-runtime/web-component/selectors.js +1 -1
  125. package/dist/domain/domain-runtime/web-component/types.d.ts +6 -3
  126. package/dist/domain/index.d.ts +1 -0
  127. package/dist/domain/index.js +1 -1
  128. package/dist/domain/mocks/create-mock-domain-runtime.d.ts +5 -0
  129. package/dist/domain/spec/application/index.d.ts +1 -0
  130. package/dist/domain/spec/application/index.js +1 -0
  131. package/dist/{application-spec/core → domain/spec}/components/component-filter.d.ts +3 -2
  132. package/dist/domain/spec/enhanced-json-value.d.ts +30 -0
  133. package/dist/domain/spec/enhanced-json-value.js +1 -0
  134. package/dist/domain/spec/index.d.ts +5 -0
  135. package/dist/domain/spec/index.js +1 -0
  136. package/dist/domain/spec/markers/index.d.ts +2 -0
  137. package/dist/domain/spec/markers/index.js +1 -0
  138. package/dist/domain/spec/markers/msg-marker.d.ts +28 -0
  139. package/dist/domain/spec/markers/msg-marker.js +1 -0
  140. package/dist/editor/domain-editors/DomainSpecContext.js +1 -1
  141. package/dist/editor/domain-editors/apply-spec-update.d.ts +2 -1
  142. package/dist/editor/domain-editors/apply-spec-update.js +1 -1
  143. package/dist/editor/domain-editors/use-implementation-files.d.ts +0 -3
  144. package/dist/editor/domain-editors/use-implementation-files.js +1 -1
  145. package/dist/phoenix/application-spec/generate-application-spec-project.js +2 -2
  146. package/dist/phoenix/application-spec/resolve-deployment-data.d.ts +11 -0
  147. package/dist/phoenix/application-spec/resolve-deployment-data.js +2 -2
  148. package/dist/phoenix/bin.js +1 -1
  149. package/dist/phoenix/cli.js +1 -1
  150. package/dist/phoenix/commands/deploy.js +1 -1
  151. package/dist/phoenix/commands/dev.js +5 -5
  152. package/dist/phoenix/commands/generated-env-markers.d.ts +1 -0
  153. package/dist/phoenix/commands/generated-env-markers.js +1 -1
  154. package/dist/phoenix/commands/index.d.ts +1 -1
  155. package/dist/phoenix/commands/index.js +1 -1
  156. package/dist/phoenix/lingui/index.d.ts +1 -0
  157. package/dist/phoenix/lingui/index.js +1 -0
  158. package/dist/phoenix/{services → lingui}/lingui.d.ts +5 -2
  159. package/dist/phoenix/lingui/lingui.js +1 -0
  160. package/dist/phoenix/services/application-spec-project-watcher.d.ts +3 -1
  161. package/dist/phoenix/services/application-spec-project-watcher.js +2 -2
  162. package/dist/phoenix/services/index.d.ts +1 -0
  163. package/dist/phoenix/services/index.js +1 -1
  164. package/dist/phoenix/services/lingui-watcher.js +1 -1
  165. package/dist/phoenix/services/prepare-development-environment.js +1 -1
  166. package/dist/phoenix/services/vite-config.js +1 -1
  167. package/dist/react-sdk/application-runtime/common-services/analytics/analytics-service.d.ts +1 -1
  168. package/dist/react-sdk/application-runtime/common-services/initialize.d.ts +2 -2
  169. package/dist/react-sdk/application-runtime/hooks/use-access-service.js +1 -1
  170. package/dist/react-sdk/application-runtime/hooks/use-web-component-readonly-sync.d.ts +4 -11
  171. package/dist/react-sdk/application-runtime/hooks/use-web-component-readonly-sync.js +1 -1
  172. package/dist/react-sdk/application-runtime/hooks/use-web-component.d.ts +5 -0
  173. package/dist/react-sdk/application-runtime/hooks/use-web-component.js +1 -1
  174. package/dist/react-sdk/application-runtime/host-properties/actions.d.ts +15 -0
  175. package/dist/react-sdk/application-runtime/host-properties/actions.js +1 -0
  176. package/dist/react-sdk/application-runtime/host-properties/connect-host-properties.d.ts +30 -0
  177. package/dist/react-sdk/application-runtime/host-properties/connect-host-properties.js +1 -0
  178. package/dist/react-sdk/application-runtime/host-properties/domain-host-properties.d.ts +7 -0
  179. package/dist/react-sdk/application-runtime/host-properties/domain-host-properties.js +1 -0
  180. package/dist/react-sdk/application-runtime/host-properties/host-property-descriptors.d.ts +21 -0
  181. package/dist/react-sdk/application-runtime/host-properties/host-property-descriptors.js +1 -0
  182. package/dist/react-sdk/application-runtime/host-properties/host-property-scopes.d.ts +42 -0
  183. package/dist/react-sdk/application-runtime/host-properties/host-property-scopes.js +1 -0
  184. package/dist/react-sdk/application-runtime/host-properties/index.d.ts +8 -0
  185. package/dist/react-sdk/application-runtime/host-properties/index.js +1 -0
  186. package/dist/react-sdk/application-runtime/host-properties/initialize.d.ts +7 -0
  187. package/dist/react-sdk/application-runtime/host-properties/initialize.js +1 -0
  188. package/dist/react-sdk/application-runtime/host-properties/selectors.d.ts +54 -0
  189. package/dist/react-sdk/application-runtime/host-properties/selectors.js +1 -0
  190. package/dist/react-sdk/application-runtime/host-properties/types.d.ts +18 -0
  191. package/dist/react-sdk/application-runtime/host-properties/types.js +1 -0
  192. package/dist/react-sdk/application-runtime/index.d.ts +1 -0
  193. package/dist/react-sdk/application-runtime/mocks/create-mock-application-runtime.js +1 -1
  194. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.d.ts +151 -9
  195. package/dist/react-sdk/application-runtime/runtime/create-application-runtime.js +1 -1
  196. package/package.json +3 -3
  197. package/dist/phoenix/services/lingui.js +0 -1
  198. /package/dist/{application-spec/core → domain/spec/application}/application-instance.d.ts +0 -0
  199. /package/dist/{application-spec/core → domain/spec/application}/application-instance.js +0 -0
  200. /package/dist/{application-spec/core → domain/spec}/components/component-filter.js +0 -0
  201. /package/dist/{application-spec/core → domain/spec}/components/index.d.ts +0 -0
  202. /package/dist/{application-spec/core → domain/spec}/components/index.js +0 -0
  203. /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.d.ts +0 -0
  204. /package/dist/{application-spec/core → domain/spec}/components/sdk-code-ref.js +0 -0
  205. /package/dist/{application-spec/core → domain/spec}/expressions/index.d.ts +0 -0
  206. /package/dist/{application-spec/core → domain/spec}/expressions/index.js +0 -0
  207. /package/dist/{application-spec/core → domain/spec}/expressions/relation-expression-params.d.ts +0 -0
  208. /package/dist/{application-spec/core → domain/spec}/expressions/relation-expression-params.js +0 -0
  209. /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.d.ts +0 -0
  210. /package/dist/{application-spec/core → domain/spec}/expressions/sdk-expression-implementation.js +0 -0
  211. /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.d.ts +0 -0
  212. /package/dist/{application-spec/core → domain/spec}/markers/eval-marker.js +0 -0
@@ -0,0 +1,18 @@
1
+ import type { WebComponentPropertyDescriptor, standardWebComponentProperties } from '#package/domain';
2
+ import type { HostPropertyName, MirroredHostPropertyName } from './host-property-scopes.js';
3
+ type StandardWebComponentProperties = typeof standardWebComponentProperties;
4
+ type PropertyValue<DESCRIPTOR> = DESCRIPTOR extends WebComponentPropertyDescriptor<infer T> ? T : never;
5
+ /** The value type of a mirrored standard web-component property. */
6
+ export type HostPropertyValue<NAME extends MirroredHostPropertyName> = PropertyValue<StandardWebComponentProperties[NAME]>;
7
+ /**
8
+ * The current value of each application-scoped standard web-component property, as the host set
9
+ * it on the element, or the property's default. The domain-scoped ones, `readonly` and `locale`,
10
+ * live in the domain's `webComponent` slice instead.
11
+ *
12
+ * A read mirror: the element's property storage stays the single store, and writes keep going
13
+ * through the element setters.
14
+ */
15
+ export type HostPropertiesState = {
16
+ readonly [NAME in HostPropertyName]: HostPropertyValue<NAME>;
17
+ };
18
+ export {};
@@ -4,6 +4,7 @@ export * from './hooks/index.js';
4
4
  export * from './web-component/index.js';
5
5
  export * from './common-services/index.js';
6
6
  export * from './domain-application-context/index.js';
7
+ export type { HostPropertiesState, HostPropertyName } from './host-properties/index.js';
7
8
  export * from './integration/index.js';
8
9
  export { type LoadingActions, type LoadingApplicationState, type LoadingPhase, type LoadingRuntimeState, type LoadingState, } from './loading/index.js';
9
10
  export { type CanvasPadding, type ResponsiveApplicationState, type ResponsiveBreakpoints, type ResponsiveRuntimeState, type ResponsiveState, type ResponsiveViewport, type ResponsiveViewportSize, } from './responsive/index.js';
@@ -1 +1 @@
1
- import{memoOnce as e}from"@salsita-ai/common/utils";import{AccessLevel as t}from"@salsita-ai/contracts/api";import{createDomainRuntime as o,createMockDomainRuntimeServices as i,createMockSessionContext as n}from"#package/domain";import{createCommonServicesSelectors as s}from"../common-services/index.js";import{createDomainApplicationContextSelectors as a}from"../domain-application-context/index.js";import{createIntegrationActions as r,createIntegrationSelectors as c,initializeIntegration as m}from"../integration/index.js";import{createLoadingActions as p,createLoadingSelectors as d,initializeLoading as l}from"../loading/index.js";import{createResponsiveActions as g,createResponsiveSelectors as S,initializeResponsive as v}from"../responsive/index.js";import{createRoutingActions as f,createRoutingSelectors as u,initializeRouting as x}from"../routing/index.js";import{SessionService as C,createSessionRuntimeActions as b,createSessionRuntimeSelectors as y,initializeSessionRuntime as w}from"../session/index.js";import{createMockWebComponentApi as A}from"../web-component/index.js";export const createMockApplicationRuntime=(D,T)=>{var j;let k,R,E,I,h,O,L,F,M,U,V,z,q,B,G,H,J,K,N,P,Q,{sessionData:W,mode:X,role:Y}=T,Z=i(),$=(j={webComponentOptions:T.webComponentOptions??D.mount.options,webComponentApi:T.webComponentApi??A()},E=w(),I=o({config:D,services:Z,getExtensionSystems:e=>Q[e].getInitializableSystems()}),h=new Set,O=()=>{h.forEach(e=>{e()})},L=r({setIntegration:e=>{k=e(k),O()}}),k=m(),F=c({getState:()=>({integration:k}),actions:L}),M=f({setRouting:e=>{R=e(R),O()}}),R=x(),U=u({getState:()=>({...I.getState(),routing:R}),actions:M,accessActions:I.actions.access,loadedDataActions:I.actions.loadedData,domainServicesSelectors:I.selectors.domainServices,overridesSelectors:I.selectors.overrides}),V=v(),z=g({setResponsive:e=>{let t=e(V);t!==V&&(V=t,O())}}),q={configurator:S({getState:()=>({responsive:V}),applicationType:"configurator"}),admin:S({getState:()=>({responsive:V}),applicationType:"admin"})},B=l(),G=p({setLoading:e=>{let t=e(B);t!==B&&(B=t,O())}}),H={configurator:d({getState:()=>({loading:B}),applicationType:"configurator"}),admin:d({getState:()=>({loading:B}),applicationType:"admin"})},J=s({getState:()=>({...I.getState(),session:E}),environmentSelectors:I.selectors.environment,specSelectors:I.selectors.spec,accessSelectors:I.selectors.access,domainServicesSelectors:I.selectors.domainServices,webComponentOptions:j.webComponentOptions,webComponentApi:j.webComponentApi,getSessionService:()=>P(),routingSelectors:U}),K=b({setSessionRuntime:e=>{E=e(E),O()}}),N=y({getState:()=>({...I.getState(),session:E}),sessionContextSelectors:I.selectors.sessionContext}),P=e(()=>new C({getLogger:()=>I.selectors.domainServices.getLogger(),getAnalyticsService:()=>I.selectors.domainServices.getAnalyticsService(),getUnauthenticatedClient:J.getUnauthenticatedClient,environmentSelectors:I.selectors.environment,sessionActions:K,setSessionContext:I.actions.sessionContext.setSessionContext,sessionSelectors:N,specSelectors:I.selectors.spec})),Q={configurator:a({applicationType:"configurator",commonServicesSelectors:J,domainServicesSelectors:I.selectors.domainServices,domainContextSelectors:I.selectors.domainContext.configurator,getApplicationRuntimeExtensions:()=>[]}),admin:a({applicationType:"admin",commonServicesSelectors:J,domainServicesSelectors:I.selectors.domainServices,domainContextSelectors:I.selectors.domainContext.admin,getApplicationRuntimeExtensions:()=>[]})},{subscribe:e=>{h.add(e);let t=I.subscribe(e);return()=>{h.delete(e),t()}},getState:()=>({...I.getState(),integration:k,loading:B,responsive:V,routing:R,session:E}),selectors:{...I.selectors,commonServices:J,integration:F,loading:H,responsive:q,routing:U,session:N,domainApplicationContext:Q},actions:{...I.actions,integration:L,loading:G,responsive:z,routing:M,session:K}}),_=$.getState().spec;return $.actions.spec.updateSpec({..._,configurator:{..._.configurator,createTransformers:e=>T.transformers.map(t=>t.transformer.register(e,t.priority??1/0))}}),$.actions.sessionContext.setSessionContext(n(Y,W)),$.actions.access.setConfiguratorAccessInfo({raw:"mock-access-token",access:"read"===X?t.Read:t.Owner,viewMode:"read"===X,revisionId:void 0,configurationId:"mock"}),$.actions.domainData.setDomainData({publishedData:T.publishedData,frontendData:T.frontendData,backendData:T.backendData}),$.actions.loadedData.completeConfiguratorLoad({initialRevisionId:"mock-revision",initialEntities:T.entities,modelVersion:D.domain.domainFactory.modelVersion,rootEntityType:T.rootEntityType,schemaIdentity:D.domain.domainFactory}),$};
1
+ import{memoOnce as e}from"@salsita-ai/common/utils";import{AccessLevel as t}from"@salsita-ai/contracts/api";import{createDomainRuntime as o,createMockDomainRuntimeServices as n,createMockSessionContext as i}from"#package/domain";import{createCommonServicesSelectors as s}from"../common-services/index.js";import{createDomainApplicationContextSelectors as a}from"../domain-application-context/index.js";import{connectHostProperties as r,createHostPropertiesActions as c,createHostPropertiesSelectors as m,initializeHostProperties as p}from"../host-properties/index.js";import{createIntegrationActions as d,createIntegrationSelectors as l,initializeIntegration as g}from"../integration/index.js";import{createLoadingActions as S,createLoadingSelectors as f,initializeLoading as v}from"../loading/index.js";import{createResponsiveActions as u,createResponsiveSelectors as C,initializeResponsive as x}from"../responsive/index.js";import{createRoutingActions as b,createRoutingSelectors as y,initializeRouting as w}from"../routing/index.js";import{SessionService as A,createSessionRuntimeActions as D,createSessionRuntimeSelectors as R,initializeSessionRuntime as h}from"../session/index.js";import{createMockWebComponentApi as j}from"../web-component/index.js";export const createMockApplicationRuntime=(T,k)=>{var E;let I,L,O,M,F,P,U,V,z,H,q,B,G,J,K,N,Q,W,X,Y,Z,$,_,ee,{sessionData:et,mode:eo,role:en}=k,ei=n(),es=(E={webComponentOptions:k.webComponentOptions??T.mount.options,webComponentApi:k.webComponentApi??j()},O=h(),M=o({config:T,services:ei,getExtensionSystems:e=>ee[e].getInitializableSystems()}),F=new Set,P=()=>{F.forEach(e=>{e()})},U=d({setIntegration:e=>{I=e(I),P()}}),I=g(),V=l({getState:()=>({integration:I}),actions:U}),z=b({setRouting:e=>{L=e(L),P()}}),L=w(),H=y({getState:()=>({...M.getState(),routing:L}),actions:z,accessActions:M.actions.access,loadedDataActions:M.actions.loadedData,domainServicesSelectors:M.selectors.domainServices,overridesSelectors:M.selectors.overrides}),q=x(),B=u({setResponsive:e=>{let t=e(q);t!==q&&(q=t,P())}}),G={configurator:C({getState:()=>({responsive:q}),applicationType:"configurator"}),admin:C({getState:()=>({responsive:q}),applicationType:"admin"})},J=v(),K=S({setLoading:e=>{let t=e(J);t!==J&&(J=t,P())}}),N={configurator:f({getState:()=>({loading:J}),applicationType:"configurator"}),admin:f({getState:()=>({loading:J}),applicationType:"admin"})},Q=p(E.webComponentApi),W=c({setHostProperties:e=>{let t=e(Q);t!==Q&&(Q=t,P())}}),X=m({getState:()=>({hostProperties:Q})}),r({webComponentApi:E.webComponentApi,actions:W,domainSelectors:M.selectors.webComponent,domainActions:{setReadonly:M.actions.webComponent.setReadonly,setLocale:M.hostMirrorActions.setLocale}}),Y=s({getState:()=>({...M.getState(),session:O}),environmentSelectors:M.selectors.environment,specSelectors:M.selectors.spec,accessSelectors:M.selectors.access,domainServicesSelectors:M.selectors.domainServices,webComponentOptions:E.webComponentOptions,webComponentApi:E.webComponentApi,getSessionService:()=>_(),routingSelectors:H}),Z=D({setSessionRuntime:e=>{O=e(O),P()}}),$=R({getState:()=>({...M.getState(),session:O}),sessionContextSelectors:M.selectors.sessionContext}),_=e(()=>new A({getLogger:()=>M.selectors.domainServices.getLogger(),getAnalyticsService:()=>M.selectors.domainServices.getAnalyticsService(),getUnauthenticatedClient:Y.getUnauthenticatedClient,environmentSelectors:M.selectors.environment,sessionActions:Z,setSessionContext:M.actions.sessionContext.setSessionContext,sessionSelectors:$,specSelectors:M.selectors.spec})),ee={configurator:a({applicationType:"configurator",commonServicesSelectors:Y,domainServicesSelectors:M.selectors.domainServices,domainContextSelectors:M.selectors.domainContext.configurator,getApplicationRuntimeExtensions:()=>[]}),admin:a({applicationType:"admin",commonServicesSelectors:Y,domainServicesSelectors:M.selectors.domainServices,domainContextSelectors:M.selectors.domainContext.admin,getApplicationRuntimeExtensions:()=>[]})},{subscribe:e=>{F.add(e);let t=M.subscribe(e);return()=>{F.delete(e),t()}},getState:()=>({...M.getState(),hostProperties:Q,integration:I,loading:J,responsive:q,routing:L,session:O}),selectors:{...M.selectors,commonServices:Y,hostProperties:X,integration:V,loading:N,responsive:G,routing:H,session:$,domainApplicationContext:ee},actions:{...M.actions,integration:U,loading:K,responsive:B,routing:z,session:Z}}),ea=es.getState().spec;return es.actions.spec.updateSpec({...ea,configurator:{...ea.configurator,createTransformers:e=>k.transformers.map(t=>t.transformer.register(e,t.priority??1/0))}}),es.actions.sessionContext.setSessionContext(i(en,et)),es.actions.access.setConfiguratorAccessInfo({raw:"mock-access-token",access:"read"===eo?t.Read:t.Owner,viewMode:"read"===eo,revisionId:void 0,configurationId:"mock"}),es.actions.domainData.setDomainData({publishedData:k.publishedData,frontendData:k.frontendData,backendData:k.backendData}),es.actions.loadedData.completeConfiguratorLoad({initialRevisionId:"mock-revision",initialEntities:k.entities,modelVersion:T.domain.domainFactory.modelVersion,rootEntityType:k.rootEntityType,schemaIdentity:T.domain.domainFactory}),es};
@@ -1,6 +1,7 @@
1
1
  import { BehaviorSubject } from 'rxjs';
2
- import { type AnyApplicationConfig, type DomainRuntimeState, type WebComponentOptions } from '#package/domain';
2
+ import { type AnyApplicationConfig, type Application, type DomainRuntimeState, type WebComponentOptions } from '#package/domain';
3
3
  import { type AnyApplicationRuntimeExtension, type DomainApplicationContextSelectors } from '../domain-application-context/index.js';
4
+ import { type HostPropertiesState } from '../host-properties/index.js';
4
5
  import { type IntegrationState } from '../integration/index.js';
5
6
  import { type LoadingRuntimeState } from '../loading/index.js';
6
7
  import { type ResponsiveRuntimeState } from '../responsive/index.js';
@@ -8,6 +9,7 @@ import { type RoutingRuntimeState } from '../routing/index.js';
8
9
  import { type ApplicationSessionRuntime, SessionService } from '../session/index.js';
9
10
  import type { WebComponentApi } from '../web-component/index.js';
10
11
  export interface ApplicationRuntimeState extends DomainRuntimeState {
12
+ readonly hostProperties: HostPropertiesState;
11
13
  readonly integration: IntegrationState;
12
14
  readonly loading: LoadingRuntimeState;
13
15
  readonly responsive: ResponsiveRuntimeState;
@@ -21,8 +23,19 @@ export interface ApplicationRuntimeBootConfig {
21
23
  readonly webComponentOptions: WebComponentOptions;
22
24
  readonly webComponentApi: WebComponentApi;
23
25
  }
24
- interface Props<State extends ApplicationRuntimeState, CONFIGURATOR_EXTENSIONS extends readonly AnyApplicationRuntimeExtension[]> {
26
+ /**
27
+ * What an application runtime starts from: an application, or the config of a project built with
28
+ * `ConfiguratorBuilder`, which the runtime converts with `applicationFromConfig` when it creates its
29
+ * slices.
30
+ */
31
+ type ApplicationRuntimeSource = {
32
+ readonly application: Application;
33
+ readonly config?: undefined;
34
+ } | {
25
35
  readonly config: AnyApplicationConfig;
36
+ readonly application?: undefined;
37
+ };
38
+ type Props<State extends ApplicationRuntimeState, CONFIGURATOR_EXTENSIONS extends readonly AnyApplicationRuntimeExtension[]> = ApplicationRuntimeSource & {
26
39
  readonly bootConfig: ApplicationRuntimeBootConfig;
27
40
  readonly getSubject: () => BehaviorSubject<State>;
28
41
  /**
@@ -30,11 +43,11 @@ interface Props<State extends ApplicationRuntimeState, CONFIGURATOR_EXTENSIONS e
30
43
  * breaks the construction cycle while the extension factory receives the base runtime slices.
31
44
  */
32
45
  readonly getConfiguratorExtensions: () => CONFIGURATOR_EXTENSIONS | null;
33
- }
46
+ };
34
47
  /**
35
48
  * The domain-application layer: the domain runtime plus the browser-application concerns React
36
- * needs — common services, integration, routing, session, loading — and the domain-application
37
- * system pair.
49
+ * needs — common services, host properties, integration, routing, session, loading — and the
50
+ * domain-application system pair.
38
51
  *
39
52
  * Slices rather than a runtime: the caller owns the `BehaviorSubject`, so a layer above can widen
40
53
  * the state type and still have every slice here write into the same subject. Mirrors
@@ -52,12 +65,19 @@ export declare function createApplicationRuntimeSlices<State extends Application
52
65
  access: import("#package/domain").ApplicationAccessInfo;
53
66
  webComponent: import("#package/domain").ApplicationWebComponentState;
54
67
  domainContext: import("#package/domain").ApplicationDomainContextState;
68
+ hostProperties: HostPropertiesState;
55
69
  integration: IntegrationState;
56
70
  loading: LoadingRuntimeState;
57
71
  responsive: ResponsiveRuntimeState;
58
72
  routing: RoutingRuntimeState;
59
73
  session: ApplicationSessionRuntime;
60
74
  };
75
+ /**
76
+ * Starts the runtime-owned subscription that mirrors the element's properties into
77
+ * `hostProperties` and the domain's `webComponent`, each property by its scope. The subject
78
+ * owner calls it once, right after creating the subject from `initialize()`.
79
+ */
80
+ connectHost: () => () => void;
61
81
  selectors: {
62
82
  domainServices: {
63
83
  getAnalyticsService: () => import("#package/domain").AnalyticsSystem;
@@ -358,6 +378,8 @@ export declare function createApplicationRuntimeSlices<State extends Application
358
378
  webComponent: {
359
379
  selectReadonly: import("@salsita-ai/common/utils").Selector<import("#package/domain").WebComponentSelectorState, boolean>;
360
380
  getReadonly: () => boolean;
381
+ selectLocale: import("@salsita-ai/common/utils").Selector<import("#package/domain").WebComponentSelectorState, string>;
382
+ getLocale: () => string;
361
383
  getWebcomponentGeneration: () => number;
362
384
  };
363
385
  domainContext: {
@@ -606,6 +628,65 @@ export declare function createApplicationRuntimeSlices<State extends Application
606
628
  getCreateAdminAuthorizedClient: () => (accessToken: string) => import("../index.js").RuntimeAuthorizedClient;
607
629
  getUnauthenticatedClient: () => import("../../../client/contract.js").UnauthenticatedPhoenixApiClient;
608
630
  };
631
+ hostProperties: {
632
+ getHostPropertySelector: <NAME extends import("../index.js").HostPropertyName>(name: NAME) => {
633
+ readonly adminSessionToken: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, string | undefined>;
634
+ readonly authorizationCode: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, string | undefined>;
635
+ readonly expanded: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, boolean>;
636
+ readonly integrationMode: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, "handoff" | "headless" | "page" | "widget">;
637
+ readonly mode: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, "admin" | "configurator" | "standalone-admin">;
638
+ readonly power: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, "off" | "on" | "standby">;
639
+ readonly presetTags: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, string[] | null>;
640
+ readonly refreshToken: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, string | undefined>;
641
+ readonly route: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, {
642
+ route: "Index";
643
+ } | {
644
+ route: "Configuration";
645
+ configurationId: string;
646
+ accessToken?: string | undefined;
647
+ } | {
648
+ readonly route: "Index";
649
+ }>;
650
+ readonly sessionToken: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, string | undefined>;
651
+ }[NAME];
652
+ selectRoute: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, {
653
+ route: "Index";
654
+ } | {
655
+ route: "Configuration";
656
+ configurationId: string;
657
+ accessToken?: string | undefined;
658
+ } | {
659
+ readonly route: "Index";
660
+ }>;
661
+ selectExpanded: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, boolean>;
662
+ selectMode: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, "admin" | "configurator" | "standalone-admin">;
663
+ selectPower: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, "off" | "on" | "standby">;
664
+ selectPresetTags: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, string[] | null>;
665
+ selectIntegrationMode: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, "handoff" | "headless" | "page" | "widget">;
666
+ selectSessionToken: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, string | undefined>;
667
+ selectAdminSessionToken: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, string | undefined>;
668
+ selectRefreshToken: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, string | undefined>;
669
+ selectAuthorizationCode: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, string | undefined>;
670
+ getHostProperty: <NAME extends import("../index.js").HostPropertyName>(name: NAME) => HostPropertiesState[NAME];
671
+ getRoute: () => {
672
+ route: "Index";
673
+ } | {
674
+ route: "Configuration";
675
+ configurationId: string;
676
+ accessToken?: string | undefined;
677
+ } | {
678
+ readonly route: "Index";
679
+ };
680
+ getExpanded: () => boolean;
681
+ getMode: () => "admin" | "configurator" | "standalone-admin";
682
+ getPower: () => "off" | "on" | "standby";
683
+ getPresetTags: () => string[] | null;
684
+ getIntegrationMode: () => "handoff" | "headless" | "page" | "widget";
685
+ getSessionToken: () => string | undefined;
686
+ getAdminSessionToken: () => string | undefined;
687
+ getRefreshToken: () => string | undefined;
688
+ getAuthorizationCode: () => string | undefined;
689
+ };
609
690
  integration: {
610
691
  selectIntegrationState: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, IntegrationState>;
611
692
  selectEmbeddedView: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, import("../index.js").EmbeddedView>;
@@ -796,13 +877,13 @@ export declare function createApplicationRuntimeSlices<State extends Application
796
877
  };
797
878
  };
798
879
  export type ApplicationRuntimeSlices = ReturnType<typeof createApplicationRuntimeSlices>;
799
- export type ApplicationRuntimeExtensionContext = Omit<ApplicationRuntimeSlices, 'initialize'>;
880
+ export type ApplicationRuntimeExtensionContext = Omit<ApplicationRuntimeSlices, 'initialize' | 'connectHost'>;
800
881
  export type CreateApplicationRuntimeExtensions<EXTENSIONS extends readonly AnyApplicationRuntimeExtension[]> = (runtime: ApplicationRuntimeExtensionContext) => EXTENSIONS;
801
882
  /**
802
883
  * The application runtime owns the subject and merges a caller-defined system extension into the
803
884
  * built-in domain-application systems. Every extension system participates in initialization.
804
885
  */
805
- declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyApplicationRuntimeExtension[]>(config: AnyApplicationConfig, bootConfig: ApplicationRuntimeBootConfig, createExtensions?: CreateApplicationRuntimeExtensions<EXTENSIONS>) => {
886
+ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyApplicationRuntimeExtension[]>(source: AnyApplicationConfig | Application, bootConfig: ApplicationRuntimeBootConfig, createExtensions?: CreateApplicationRuntimeExtensions<EXTENSIONS>) => {
806
887
  selectors: {
807
888
  domainServices: {
808
889
  getAnalyticsService: () => import("#package/domain").AnalyticsSystem;
@@ -1103,6 +1184,8 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
1103
1184
  webComponent: {
1104
1185
  selectReadonly: import("@salsita-ai/common/utils").Selector<import("#package/domain").WebComponentSelectorState, boolean>;
1105
1186
  getReadonly: () => boolean;
1187
+ selectLocale: import("@salsita-ai/common/utils").Selector<import("#package/domain").WebComponentSelectorState, string>;
1188
+ getLocale: () => string;
1106
1189
  getWebcomponentGeneration: () => number;
1107
1190
  };
1108
1191
  domainContext: {
@@ -1351,6 +1434,65 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
1351
1434
  getCreateAdminAuthorizedClient: () => (accessToken: string) => import("../index.js").RuntimeAuthorizedClient;
1352
1435
  getUnauthenticatedClient: () => import("../../../client/contract.js").UnauthenticatedPhoenixApiClient;
1353
1436
  };
1437
+ hostProperties: {
1438
+ getHostPropertySelector: <NAME extends import("../index.js").HostPropertyName>(name: NAME) => {
1439
+ readonly adminSessionToken: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, string | undefined>;
1440
+ readonly authorizationCode: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, string | undefined>;
1441
+ readonly expanded: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, boolean>;
1442
+ readonly integrationMode: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, "handoff" | "headless" | "page" | "widget">;
1443
+ readonly mode: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, "admin" | "configurator" | "standalone-admin">;
1444
+ readonly power: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, "off" | "on" | "standby">;
1445
+ readonly presetTags: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, string[] | null>;
1446
+ readonly refreshToken: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, string | undefined>;
1447
+ readonly route: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, {
1448
+ route: "Index";
1449
+ } | {
1450
+ route: "Configuration";
1451
+ configurationId: string;
1452
+ accessToken?: string | undefined;
1453
+ } | {
1454
+ readonly route: "Index";
1455
+ }>;
1456
+ readonly sessionToken: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, string | undefined>;
1457
+ }[NAME];
1458
+ selectRoute: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, {
1459
+ route: "Index";
1460
+ } | {
1461
+ route: "Configuration";
1462
+ configurationId: string;
1463
+ accessToken?: string | undefined;
1464
+ } | {
1465
+ readonly route: "Index";
1466
+ }>;
1467
+ selectExpanded: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, boolean>;
1468
+ selectMode: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, "admin" | "configurator" | "standalone-admin">;
1469
+ selectPower: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, "off" | "on" | "standby">;
1470
+ selectPresetTags: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, string[] | null>;
1471
+ selectIntegrationMode: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, "handoff" | "headless" | "page" | "widget">;
1472
+ selectSessionToken: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, string | undefined>;
1473
+ selectAdminSessionToken: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, string | undefined>;
1474
+ selectRefreshToken: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, string | undefined>;
1475
+ selectAuthorizationCode: import("@salsita-ai/common/utils").Selector<import("../host-properties/selectors.js").HostPropertiesSelectorState, string | undefined>;
1476
+ getHostProperty: <NAME extends import("../index.js").HostPropertyName>(name: NAME) => HostPropertiesState[NAME];
1477
+ getRoute: () => {
1478
+ route: "Index";
1479
+ } | {
1480
+ route: "Configuration";
1481
+ configurationId: string;
1482
+ accessToken?: string | undefined;
1483
+ } | {
1484
+ readonly route: "Index";
1485
+ };
1486
+ getExpanded: () => boolean;
1487
+ getMode: () => "admin" | "configurator" | "standalone-admin";
1488
+ getPower: () => "off" | "on" | "standby";
1489
+ getPresetTags: () => string[] | null;
1490
+ getIntegrationMode: () => "handoff" | "headless" | "page" | "widget";
1491
+ getSessionToken: () => string | undefined;
1492
+ getAdminSessionToken: () => string | undefined;
1493
+ getRefreshToken: () => string | undefined;
1494
+ getAuthorizationCode: () => string | undefined;
1495
+ };
1354
1496
  integration: {
1355
1497
  selectIntegrationState: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, IntegrationState>;
1356
1498
  selectEmbeddedView: import("@salsita-ai/common/utils").Selector<import("../index.js").IntegrationSelectorState, import("../index.js").EmbeddedView>;
@@ -1543,6 +1685,6 @@ declare const createApplicationRuntimeImpl: <EXTENSIONS extends readonly AnyAppl
1543
1685
  subscribe: (callback: () => void) => () => void;
1544
1686
  };
1545
1687
  export type CreatedApplicationRuntime<EXTENSIONS extends readonly AnyApplicationRuntimeExtension[]> = ReturnType<typeof createApplicationRuntimeImpl<EXTENSIONS>>;
1546
- export declare function createApplicationRuntime(config: AnyApplicationConfig, bootConfig: ApplicationRuntimeBootConfig): CreatedApplicationRuntime<readonly []>;
1547
- export declare function createApplicationRuntime<EXTENSIONS extends readonly AnyApplicationRuntimeExtension[]>(config: AnyApplicationConfig, bootConfig: ApplicationRuntimeBootConfig, createExtensions: CreateApplicationRuntimeExtensions<EXTENSIONS>): CreatedApplicationRuntime<EXTENSIONS>;
1688
+ export declare function createApplicationRuntime(source: AnyApplicationConfig | Application, bootConfig: ApplicationRuntimeBootConfig): CreatedApplicationRuntime<readonly []>;
1689
+ export declare function createApplicationRuntime<EXTENSIONS extends readonly AnyApplicationRuntimeExtension[]>(source: AnyApplicationConfig | Application, bootConfig: ApplicationRuntimeBootConfig, createExtensions: CreateApplicationRuntimeExtensions<EXTENSIONS>): CreatedApplicationRuntime<EXTENSIONS>;
1548
1690
  export {};
@@ -1 +1 @@
1
- import{BehaviorSubject as e}from"rxjs";import{memoOnce as t}from"@salsita-ai/common/utils";import{ImplementationErrors as i,createDomainRuntimeSlices as n,findAssistantFormElementErrors as o,resolveIsDev as s}from"#package/domain";import{initializeAnalyticsService as a}from"../common-services/analytics/analytics-service.js";import{initializeI18n as r,initializeLogger as c}from"../common-services/initialize.js";import{createCommonServicesSelectors as l}from"../common-services/selectors.js";import{createDomainApplicationContextSelectors as m}from"../domain-application-context/index.js";import{createIntegrationActions as p,createIntegrationSelectors as u,initializeIntegration as g}from"../integration/index.js";import{createLoadingActions as d,createLoadingSelectors as v,initializeLoading as S}from"../loading/index.js";import{createResponsiveActions as x,createResponsiveSelectors as f,initializeResponsive as C}from"../responsive/index.js";import{createRoutingActions as y,createRoutingSelectors as A,initializeRouting as b}from"../routing/index.js";import{SessionService as j,createSessionRuntimeActions as w,createSessionRuntimeSelectors as R,initializeSessionRuntime as T}from"../session/index.js";export function createApplicationRuntimeSlices(e){let{config:h,bootConfig:E,getSubject:I,getConfiguratorExtensions:z}=e,D=s(h),L=c(h,D),O={analyticsService:a(h,L,D),i18n:r(h),logger:L},{initialize:U,selectors:k,actions:G}=n({config:h,services:O,getSubject:I,getExtensionSystems:e=>eo[e].getInitializableSystems()}),$=U(),{assistant:q,elements:B}=$.spec.configurator,F=o(q?.formElements??[],B);if(F.length>0)throw new i(F);let H=p({setIntegration:e=>{let t=I(),i=e(t.value.integration);t.next({...t.value,integration:i})}}),J=u({getState:()=>I().value,actions:H}),K=g(),M=y({setRouting:e=>{let t=I(),i=e(t.value.routing);t.next({...t.value,routing:i})}}),N=A({getState:()=>I().value,actions:M,accessActions:G.access,loadedDataActions:G.loadedData,domainServicesSelectors:k.domainServices,overridesSelectors:k.overrides}),P=b(),Q=x({setResponsive:e=>{let t=I(),i=e(t.value.responsive);i!==t.value.responsive&&t.next({...t.value,responsive:i})}}),V={configurator:f({getState:()=>I().value,applicationType:"configurator"}),admin:f({getState:()=>I().value,applicationType:"admin"})},W=C(),X=d({setLoading:e=>{let t=I(),i=e(t.value.loading);i!==t.value.loading&&t.next({...t.value,loading:i})}}),Y={configurator:v({getState:()=>I().value,applicationType:"configurator"}),admin:v({getState:()=>I().value,applicationType:"admin"})},Z=S(),_=l({getState:()=>I().value,environmentSelectors:k.environment,specSelectors:k.spec,accessSelectors:k.access,domainServicesSelectors:k.domainServices,webComponentOptions:E.webComponentOptions,webComponentApi:E.webComponentApi,getSessionService:()=>en(),routingSelectors:N}),ee=w({setSessionRuntime:e=>{let t=I(),i=e(t.value.session);t.next({...t.value,session:i})}}),et=R({getState:()=>I().value,sessionContextSelectors:k.sessionContext}),ei=T(),en=t(()=>new j({getLogger:()=>k.domainServices.getLogger(),getAnalyticsService:()=>k.domainServices.getAnalyticsService(),getUnauthenticatedClient:_.getUnauthenticatedClient,environmentSelectors:k.environment,sessionActions:ee,setSessionContext:G.sessionContext.setSessionContext,sessionSelectors:et,specSelectors:k.spec})),eo={configurator:m({applicationType:"configurator",commonServicesSelectors:_,domainServicesSelectors:k.domainServices,domainContextSelectors:k.domainContext.configurator,getApplicationRuntimeExtensions:z}),admin:m({applicationType:"admin",commonServicesSelectors:_,domainServicesSelectors:k.domainServices,domainContextSelectors:k.domainContext.admin,getApplicationRuntimeExtensions:()=>[]})};return L.info(`Configurator Application loaded with deployment ID: ${h.deploymentId}!`),L.appendToGlobalContext({deploymentId:h.deploymentId}),{getState:()=>I().value,initialize:()=>({...$,integration:K,loading:Z,responsive:W,routing:P,session:ei}),selectors:{...k,commonServices:_,integration:J,loading:Y,responsive:V,routing:N,session:et,domainApplicationContext:eo},actions:{...G,integration:H,loading:X,responsive:Q,routing:M,session:ee}}}export function createApplicationRuntime(t,i,n){return((t,i,n)=>{let o=null,s=null,a=()=>{if(!o)throw Error("Subject not yet initialized!");return o},{initialize:r,...c}=createApplicationRuntimeSlices({config:t,bootConfig:i,getSubject:a,getConfiguratorExtensions:()=>s});return s=n?n(c):[],c.selectors.domainApplicationContext.configurator.getSystems(),o=new e(r()),{...c,getState:()=>a().value,subscribe:e=>{let t=a().subscribe(()=>e());return()=>t.unsubscribe()}}})(t,i,n)}
1
+ import{BehaviorSubject as e}from"rxjs";import{memoOnce as t}from"@salsita-ai/common/utils";import{ImplementationErrors as o,applicationFromConfig as i,createDomainRuntimeSlices as n,findAssistantFormElementErrors as s,resolveIsDev as a}from"#package/domain";import{initializeAnalyticsService as r}from"../common-services/analytics/analytics-service.js";import{initializeI18n as c,initializeLogger as l}from"../common-services/initialize.js";import{createCommonServicesSelectors as p}from"../common-services/selectors.js";import{createDomainApplicationContextSelectors as m}from"../domain-application-context/index.js";import{connectHostProperties as u,createHostPropertiesActions as g,createHostPropertiesSelectors as v,initializeHostProperties as d}from"../host-properties/index.js";import{createIntegrationActions as S,createIntegrationSelectors as x,initializeIntegration as f}from"../integration/index.js";import{createLoadingActions as C,createLoadingSelectors as y,initializeLoading as b}from"../loading/index.js";import{createResponsiveActions as A,createResponsiveSelectors as w,initializeResponsive as h}from"../responsive/index.js";import{createRoutingActions as j,createRoutingSelectors as R,initializeRouting as T}from"../routing/index.js";import{SessionService as E,createSessionRuntimeActions as I,createSessionRuntimeSelectors as P,initializeSessionRuntime as L}from"../session/index.js";export function createApplicationRuntimeSlices(e){let{bootConfig:z,getSubject:D,getConfiguratorExtensions:H}=e,O=e.application??i(e.config),U={...O.environment,services:O.services,version:O.spec.version},k=a(U),G=l(U,k),{initialize:$,selectors:q,actions:B,hostMirrorActions:F}=n({application:O,services:{analyticsService:r(U,G,k),i18n:c(U),logger:G},getSubject:D,getExtensionSystems:e=>eu[e].getInitializableSystems()}),J=$(),{assistant:K,elements:M}=J.spec.configurator,N=s(K?.formElements??[],M);if(N.length>0)throw new o(N);let Q=g({setHostProperties:e=>{let t=D(),o=e(t.value.hostProperties);o!==t.value.hostProperties&&t.next({...t.value,hostProperties:o})}}),V=v({getState:()=>D().value}),W=S({setIntegration:e=>{let t=D(),o=e(t.value.integration);t.next({...t.value,integration:o})}}),X=x({getState:()=>D().value,actions:W}),Y=f(),Z=j({setRouting:e=>{let t=D(),o=e(t.value.routing);t.next({...t.value,routing:o})}}),_=R({getState:()=>D().value,actions:Z,accessActions:B.access,loadedDataActions:B.loadedData,domainServicesSelectors:q.domainServices,overridesSelectors:q.overrides}),ee=T(),et=A({setResponsive:e=>{let t=D(),o=e(t.value.responsive);o!==t.value.responsive&&t.next({...t.value,responsive:o})}}),eo={configurator:w({getState:()=>D().value,applicationType:"configurator"}),admin:w({getState:()=>D().value,applicationType:"admin"})},ei=h(),en=C({setLoading:e=>{let t=D(),o=e(t.value.loading);o!==t.value.loading&&t.next({...t.value,loading:o})}}),es={configurator:y({getState:()=>D().value,applicationType:"configurator"}),admin:y({getState:()=>D().value,applicationType:"admin"})},ea=b(),er=p({getState:()=>D().value,environmentSelectors:q.environment,specSelectors:q.spec,accessSelectors:q.access,domainServicesSelectors:q.domainServices,webComponentOptions:z.webComponentOptions,webComponentApi:z.webComponentApi,getSessionService:()=>em(),routingSelectors:_}),ec=I({setSessionRuntime:e=>{let t=D(),o=e(t.value.session);t.next({...t.value,session:o})}}),el=P({getState:()=>D().value,sessionContextSelectors:q.sessionContext}),ep=L(),em=t(()=>new E({getLogger:()=>q.domainServices.getLogger(),getAnalyticsService:()=>q.domainServices.getAnalyticsService(),getUnauthenticatedClient:er.getUnauthenticatedClient,environmentSelectors:q.environment,sessionActions:ec,setSessionContext:B.sessionContext.setSessionContext,sessionSelectors:el,specSelectors:q.spec})),eu={configurator:m({applicationType:"configurator",commonServicesSelectors:er,domainServicesSelectors:q.domainServices,domainContextSelectors:q.domainContext.configurator,getApplicationRuntimeExtensions:H}),admin:m({applicationType:"admin",commonServicesSelectors:er,domainServicesSelectors:q.domainServices,domainContextSelectors:q.domainContext.admin,getApplicationRuntimeExtensions:()=>[]})};return G.info(`Configurator Application loaded with deployment ID: ${U.deploymentId}!`),G.appendToGlobalContext({deploymentId:U.deploymentId}),{getState:()=>D().value,initialize:()=>({...J,hostProperties:d(z.webComponentApi),integration:Y,loading:ea,responsive:ei,routing:ee,session:ep}),connectHost:()=>u({webComponentApi:z.webComponentApi,actions:Q,domainSelectors:q.webComponent,domainActions:{setReadonly:B.webComponent.setReadonly,setLocale:F.setLocale}}),selectors:{...q,commonServices:er,hostProperties:V,integration:X,loading:es,responsive:eo,routing:_,session:el,domainApplicationContext:eu},actions:{...B,integration:W,loading:en,responsive:et,routing:Z,session:ec}}}export function createApplicationRuntime(t,o,i){return((t,o,i)=>{let n=null,s=null,a=()=>{if(!n)throw Error("Subject not yet initialized!");return n},{initialize:r,connectHost:c,...l}=createApplicationRuntimeSlices({..."spec"in t?{application:t}:{config:t},bootConfig:o,getSubject:a,getConfiguratorExtensions:()=>s});return s=i?i(l):[],l.selectors.domainApplicationContext.configurator.getSystems(),n=new e(r()),c(),{...l,getState:()=>a().value,subscribe:e=>{let t=a().subscribe(()=>e());return()=>t.unsubscribe()}}})(t,o,i)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salsita-ai/sdk",
3
- "version": "0.50.0-develop.91d65bd507",
3
+ "version": "0.50.0-develop.9239ced550",
4
4
  "description": "TypeScript SDK and CLI for building, running, and deploying Phoenix configurator applications.",
5
5
  "keywords": [
6
6
  "salsita",
@@ -308,8 +308,8 @@
308
308
  "yaml": "2.9.0",
309
309
  "yargs": "17.7.2",
310
310
  "zod": "3.25.76",
311
- "@salsita-ai/common": "0.50.0-develop.91d65bd507",
312
- "@salsita-ai/contracts": "0.50.0-develop.91d65bd507"
311
+ "@salsita-ai/contracts": "0.50.0-develop.9239ced550",
312
+ "@salsita-ai/common": "0.50.0-develop.9239ced550"
313
313
  },
314
314
  "devDependencies": {
315
315
  "@clerk/clerk-react": "5.61.8",
@@ -1 +0,0 @@
1
- import{runSdkTool as i}from"../utils/index.js";export const LINGUI_CONFIG_PATH=".phoenix/.linguirc";let n=async n=>{await i({tool:{packageName:"@lingui/cli",binName:"lingui"},args:["extract","--config",LINGUI_CONFIG_PATH],description:"Extracting i18n messages",quiet:!0,extraEnv:{LC_ALL:"en_US.UTF-8"}},n)};export const compileLingui=async n=>{await i({tool:{packageName:"@lingui/cli",binName:"lingui"},args:["compile","--config",LINGUI_CONFIG_PATH],description:"Compiling i18n messages",quiet:!0},n)};export const extractAndCompileLingui=async i=>{await n(i),await compileLingui(i)};