@cadenza.io/service 2.18.2 → 2.19.0

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 (50) hide show
  1. package/README.md +258 -0
  2. package/dist/Cadenza-DCMs7q97.d.mts +1666 -0
  3. package/dist/Cadenza-DCMs7q97.d.ts +1666 -0
  4. package/dist/browser/chunk-4XOTT2KM.mjs +31 -0
  5. package/dist/browser/chunk-4XOTT2KM.mjs.map +1 -0
  6. package/dist/browser/index.js +15295 -7234
  7. package/dist/browser/index.js.map +1 -1
  8. package/dist/browser/index.mjs +15279 -7234
  9. package/dist/browser/index.mjs.map +1 -1
  10. package/dist/browser/nuxt/index.js +166 -0
  11. package/dist/browser/nuxt/index.js.map +1 -0
  12. package/dist/browser/nuxt/index.mjs +121 -0
  13. package/dist/browser/nuxt/index.mjs.map +1 -0
  14. package/dist/browser/react/index.js +179 -0
  15. package/dist/browser/react/index.js.map +1 -0
  16. package/dist/browser/react/index.mjs +140 -0
  17. package/dist/browser/react/index.mjs.map +1 -0
  18. package/dist/browser/vue/index.js +178 -0
  19. package/dist/browser/vue/index.js.map +1 -0
  20. package/dist/browser/vue/index.mjs +140 -0
  21. package/dist/browser/vue/index.mjs.map +1 -0
  22. package/dist/chunk-DBCS4XXY.mjs +31 -0
  23. package/dist/chunk-DBCS4XXY.mjs.map +1 -0
  24. package/dist/index.d.mts +244 -22947
  25. package/dist/index.d.ts +244 -22947
  26. package/dist/index.js +19432 -10213
  27. package/dist/index.js.map +1 -1
  28. package/dist/index.mjs +19382 -10214
  29. package/dist/index.mjs.map +1 -1
  30. package/dist/nuxt/index.d.mts +42 -0
  31. package/dist/nuxt/index.d.ts +42 -0
  32. package/dist/nuxt/index.js +173 -0
  33. package/dist/nuxt/index.js.map +1 -0
  34. package/dist/nuxt/index.mjs +121 -0
  35. package/dist/nuxt/index.mjs.map +1 -0
  36. package/dist/react/index.d.mts +52 -0
  37. package/dist/react/index.d.ts +52 -0
  38. package/dist/react/index.js +188 -0
  39. package/dist/react/index.js.map +1 -0
  40. package/dist/react/index.mjs +140 -0
  41. package/dist/react/index.mjs.map +1 -0
  42. package/dist/runtimeProjectionState-CitON2P3.d.mts +6 -0
  43. package/dist/runtimeProjectionState-CitON2P3.d.ts +6 -0
  44. package/dist/vue/index.d.mts +48 -0
  45. package/dist/vue/index.d.ts +48 -0
  46. package/dist/vue/index.js +187 -0
  47. package/dist/vue/index.js.map +1 -0
  48. package/dist/vue/index.mjs +140 -0
  49. package/dist/vue/index.mjs.map +1 -0
  50. package/package.json +64 -7
@@ -0,0 +1,42 @@
1
+ import { i as BrowserRuntimeActorHandle, j as BrowserRuntimeActorOptions, C as CadenzaService, m as BrowserRuntimeServiceOptions } from '../Cadenza-DCMs7q97.mjs';
2
+ export { l as BrowserRuntimeProjectionBinding } from '../Cadenza-DCMs7q97.mjs';
3
+ import { P as ProjectionRuntimeSnapshot } from '../runtimeProjectionState-CitON2P3.mjs';
4
+ import '@cadenza.io/core';
5
+
6
+ type StateLike<T> = {
7
+ value: T;
8
+ };
9
+ type ComputedLike<T> = {
10
+ readonly value: T;
11
+ };
12
+ type NuxtPluginSetup = () => {
13
+ provide?: Record<string, unknown>;
14
+ } | void;
15
+ interface CadenzaNuxtRuntimeState<TProjectionState extends Record<string, any> = Record<string, any>> extends ProjectionRuntimeSnapshot<TProjectionState> {
16
+ }
17
+ interface CadenzaNuxtRuntime<TProjectionState extends Record<string, any> = Record<string, any>, TCommands extends Record<string, any> = Record<string, never>> {
18
+ actor: BrowserRuntimeActorHandle<TProjectionState>["actor"];
19
+ actorHandle: BrowserRuntimeActorHandle<TProjectionState>;
20
+ waitUntilReady: BrowserRuntimeActorHandle<TProjectionState>["waitUntilReady"];
21
+ inquire: BrowserRuntimeActorHandle<TProjectionState>["inquire"];
22
+ getRuntimeState: BrowserRuntimeActorHandle<TProjectionState>["getRuntimeState"];
23
+ subscribe: BrowserRuntimeActorHandle<TProjectionState>["subscribe"];
24
+ commands: TCommands;
25
+ }
26
+ interface CadenzaNuxtRuntimeOptions<TProjectionState extends Record<string, any> = Record<string, any>, TCommands extends Record<string, any> = Record<string, never>> extends Omit<BrowserRuntimeActorOptions<TProjectionState>, "service" | "initialProjectionState"> {
27
+ cadenza: typeof CadenzaService;
28
+ service: Omit<BrowserRuntimeServiceOptions, "bootstrap" | "hydration">;
29
+ bootstrapUrl: string | ((config: Record<string, any>) => string);
30
+ hydrationStateKey?: string;
31
+ initialProjectionState: TProjectionState | (() => TProjectionState);
32
+ commands?: (context: {
33
+ cadenza: typeof CadenzaService;
34
+ runtime: BrowserRuntimeActorHandle<TProjectionState>;
35
+ }) => TCommands;
36
+ }
37
+ declare function defineCadenzaNuxtRuntimePlugin<TProjectionState extends Record<string, any>, TCommands extends Record<string, any> = Record<string, never>>(options: CadenzaNuxtRuntimeOptions<TProjectionState, TCommands>): NuxtPluginSetup;
38
+ declare function useCadenzaRuntime<TRuntime extends CadenzaNuxtRuntime<any, any> = CadenzaNuxtRuntime<any, any>>(): TRuntime;
39
+ declare function useCadenzaProjectionState<TProjectionState extends Record<string, any> = Record<string, any>>(): StateLike<CadenzaNuxtRuntimeState<TProjectionState>>;
40
+ declare function useCadenzaRuntimeReady(): ComputedLike<boolean>;
41
+
42
+ export { type CadenzaNuxtRuntime, type CadenzaNuxtRuntimeOptions, type CadenzaNuxtRuntimeState, defineCadenzaNuxtRuntimePlugin, useCadenzaProjectionState, useCadenzaRuntime, useCadenzaRuntimeReady };
@@ -0,0 +1,42 @@
1
+ import { i as BrowserRuntimeActorHandle, j as BrowserRuntimeActorOptions, C as CadenzaService, m as BrowserRuntimeServiceOptions } from '../Cadenza-DCMs7q97.js';
2
+ export { l as BrowserRuntimeProjectionBinding } from '../Cadenza-DCMs7q97.js';
3
+ import { P as ProjectionRuntimeSnapshot } from '../runtimeProjectionState-CitON2P3.js';
4
+ import '@cadenza.io/core';
5
+
6
+ type StateLike<T> = {
7
+ value: T;
8
+ };
9
+ type ComputedLike<T> = {
10
+ readonly value: T;
11
+ };
12
+ type NuxtPluginSetup = () => {
13
+ provide?: Record<string, unknown>;
14
+ } | void;
15
+ interface CadenzaNuxtRuntimeState<TProjectionState extends Record<string, any> = Record<string, any>> extends ProjectionRuntimeSnapshot<TProjectionState> {
16
+ }
17
+ interface CadenzaNuxtRuntime<TProjectionState extends Record<string, any> = Record<string, any>, TCommands extends Record<string, any> = Record<string, never>> {
18
+ actor: BrowserRuntimeActorHandle<TProjectionState>["actor"];
19
+ actorHandle: BrowserRuntimeActorHandle<TProjectionState>;
20
+ waitUntilReady: BrowserRuntimeActorHandle<TProjectionState>["waitUntilReady"];
21
+ inquire: BrowserRuntimeActorHandle<TProjectionState>["inquire"];
22
+ getRuntimeState: BrowserRuntimeActorHandle<TProjectionState>["getRuntimeState"];
23
+ subscribe: BrowserRuntimeActorHandle<TProjectionState>["subscribe"];
24
+ commands: TCommands;
25
+ }
26
+ interface CadenzaNuxtRuntimeOptions<TProjectionState extends Record<string, any> = Record<string, any>, TCommands extends Record<string, any> = Record<string, never>> extends Omit<BrowserRuntimeActorOptions<TProjectionState>, "service" | "initialProjectionState"> {
27
+ cadenza: typeof CadenzaService;
28
+ service: Omit<BrowserRuntimeServiceOptions, "bootstrap" | "hydration">;
29
+ bootstrapUrl: string | ((config: Record<string, any>) => string);
30
+ hydrationStateKey?: string;
31
+ initialProjectionState: TProjectionState | (() => TProjectionState);
32
+ commands?: (context: {
33
+ cadenza: typeof CadenzaService;
34
+ runtime: BrowserRuntimeActorHandle<TProjectionState>;
35
+ }) => TCommands;
36
+ }
37
+ declare function defineCadenzaNuxtRuntimePlugin<TProjectionState extends Record<string, any>, TCommands extends Record<string, any> = Record<string, never>>(options: CadenzaNuxtRuntimeOptions<TProjectionState, TCommands>): NuxtPluginSetup;
38
+ declare function useCadenzaRuntime<TRuntime extends CadenzaNuxtRuntime<any, any> = CadenzaNuxtRuntime<any, any>>(): TRuntime;
39
+ declare function useCadenzaProjectionState<TProjectionState extends Record<string, any> = Record<string, any>>(): StateLike<CadenzaNuxtRuntimeState<TProjectionState>>;
40
+ declare function useCadenzaRuntimeReady(): ComputedLike<boolean>;
41
+
42
+ export { type CadenzaNuxtRuntime, type CadenzaNuxtRuntimeOptions, type CadenzaNuxtRuntimeState, defineCadenzaNuxtRuntimePlugin, useCadenzaProjectionState, useCadenzaRuntime, useCadenzaRuntimeReady };
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/nuxt/index.ts
21
+ var nuxt_exports = {};
22
+ __export(nuxt_exports, {
23
+ defineCadenzaNuxtRuntimePlugin: () => defineCadenzaNuxtRuntimePlugin,
24
+ useCadenzaProjectionState: () => useCadenzaProjectionState,
25
+ useCadenzaRuntime: () => useCadenzaRuntime,
26
+ useCadenzaRuntimeReady: () => useCadenzaRuntimeReady
27
+ });
28
+ module.exports = __toCommonJS(nuxt_exports);
29
+
30
+ // src/frontend/runtimeProjectionState.ts
31
+ function cloneProjectionState(value) {
32
+ if (Array.isArray(value)) {
33
+ return value.map((item) => cloneProjectionState(item));
34
+ }
35
+ if (value && typeof value === "object") {
36
+ return Object.fromEntries(
37
+ Object.entries(value).map(([key, nested]) => [
38
+ key,
39
+ cloneProjectionState(nested)
40
+ ])
41
+ );
42
+ }
43
+ return value;
44
+ }
45
+ function resolveInitialProjectionState(value) {
46
+ const resolved = typeof value === "function" ? value() : value;
47
+ return cloneProjectionState(resolved);
48
+ }
49
+ function createProjectionRuntimeSnapshot(runtimeState, initialProjectionState) {
50
+ return {
51
+ ready: runtimeState?.ready ?? false,
52
+ projectionState: runtimeState?.projectionState ?? resolveInitialProjectionState(initialProjectionState)
53
+ };
54
+ }
55
+
56
+ // src/nuxt/index.ts
57
+ var DEFAULT_HYDRATION_STATE_KEY = "cadenza-hydration";
58
+ var RUNTIME_PROJECTION_STATE_KEY = "__cadenza_runtime_projection_state__";
59
+ var RUNTIME_HOLDER_KEY = "__CADENZA_NUXT_RUNTIME_HOLDER__";
60
+ function getRuntimeHolder() {
61
+ const globalRecord = globalThis;
62
+ if (!globalRecord[RUNTIME_HOLDER_KEY]) {
63
+ globalRecord[RUNTIME_HOLDER_KEY] = {};
64
+ }
65
+ return globalRecord[RUNTIME_HOLDER_KEY];
66
+ }
67
+ function resolveBootstrapUrl(bootstrapUrl, runtimeConfig) {
68
+ return typeof bootstrapUrl === "function" ? bootstrapUrl(runtimeConfig) : bootstrapUrl;
69
+ }
70
+ function defineCadenzaNuxtRuntimePlugin(options) {
71
+ return () => {
72
+ const {
73
+ cadenza,
74
+ service,
75
+ bootstrapUrl,
76
+ hydrationStateKey,
77
+ initialProjectionState,
78
+ commands,
79
+ ...actorOptions
80
+ } = options;
81
+ const runtimeConfig = useRuntimeConfig();
82
+ const hydration = useState(
83
+ hydrationStateKey ?? DEFAULT_HYDRATION_STATE_KEY,
84
+ () => ({
85
+ initialInquiryResults: {}
86
+ })
87
+ );
88
+ const browserRuntimeOptions = {
89
+ ...actorOptions,
90
+ initialProjectionState,
91
+ service: {
92
+ ...service,
93
+ bootstrap: {
94
+ url: resolveBootstrapUrl(bootstrapUrl, runtimeConfig)
95
+ },
96
+ hydration: hydration.value
97
+ }
98
+ };
99
+ const projectionState = useState(
100
+ RUNTIME_PROJECTION_STATE_KEY,
101
+ () => createProjectionRuntimeSnapshot(void 0, initialProjectionState)
102
+ );
103
+ const holder = getRuntimeHolder();
104
+ if (!holder.runtime) {
105
+ holder.runtime = cadenza.createBrowserRuntimeActor(browserRuntimeOptions);
106
+ }
107
+ holder.unsubscribe?.();
108
+ holder.unsubscribe = holder.runtime.subscribe((runtimeState) => {
109
+ projectionState.value = createProjectionRuntimeSnapshot(
110
+ runtimeState,
111
+ initialProjectionState
112
+ );
113
+ });
114
+ projectionState.value = createProjectionRuntimeSnapshot(
115
+ holder.runtime.getRuntimeState(),
116
+ initialProjectionState
117
+ );
118
+ if (!holder.providedRuntime) {
119
+ const runtimeCommands = commands ? commands({
120
+ cadenza,
121
+ runtime: holder.runtime
122
+ }) : {};
123
+ holder.providedRuntime = {
124
+ actor: holder.runtime.actor,
125
+ actorHandle: holder.runtime,
126
+ waitUntilReady: holder.runtime.waitUntilReady,
127
+ inquire: holder.runtime.inquire,
128
+ getRuntimeState: holder.runtime.getRuntimeState,
129
+ subscribe: holder.runtime.subscribe,
130
+ commands: runtimeCommands
131
+ };
132
+ }
133
+ return {
134
+ provide: {
135
+ cadenzaRuntime: holder.providedRuntime
136
+ }
137
+ };
138
+ };
139
+ }
140
+ function useCadenzaRuntime() {
141
+ return useNuxtApp().$cadenzaRuntime;
142
+ }
143
+ function useCadenzaProjectionState() {
144
+ return useState(
145
+ RUNTIME_PROJECTION_STATE_KEY,
146
+ () => ({
147
+ ready: false,
148
+ projectionState: {}
149
+ })
150
+ );
151
+ }
152
+ function useCadenzaRuntimeReady() {
153
+ const readyState = {};
154
+ Object.defineProperty(readyState, "__v_isRef", {
155
+ value: true,
156
+ enumerable: false
157
+ });
158
+ Object.defineProperty(readyState, "value", {
159
+ get() {
160
+ return useCadenzaProjectionState().value.ready;
161
+ },
162
+ enumerable: true
163
+ });
164
+ return readyState;
165
+ }
166
+ // Annotate the CommonJS export names for ESM import in node:
167
+ 0 && (module.exports = {
168
+ defineCadenzaNuxtRuntimePlugin,
169
+ useCadenzaProjectionState,
170
+ useCadenzaRuntime,
171
+ useCadenzaRuntimeReady
172
+ });
173
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/nuxt/index.ts","../../src/frontend/runtimeProjectionState.ts"],"sourcesContent":["import type CadenzaService from \"../Cadenza\";\nimport type {\n BrowserRuntimeActorHandle,\n BrowserRuntimeActorOptions,\n BrowserRuntimeServiceOptions,\n BrowserRuntimeProjectionBinding,\n} from \"../frontend/createBrowserRuntimeActor\";\nimport {\n createProjectionRuntimeSnapshot,\n type ProjectionRuntimeSnapshot,\n} from \"../frontend/runtimeProjectionState\";\nimport type { HydrationOptions } from \"../utils/bootstrap\";\n\ntype StateLike<T> = {\n value: T;\n};\n\ntype ComputedLike<T> = {\n readonly value: T;\n};\n\ntype RefLike<T> = {\n readonly value: T;\n readonly __v_isRef: true;\n};\n\ntype NuxtPluginSetup = () => { provide?: Record<string, unknown> } | void;\n\ndeclare function useState<T>(key: string, init: () => T): StateLike<T>;\ndeclare function useRuntimeConfig(): Record<string, any>;\ndeclare function useNuxtApp(): Record<string, any>;\n\nexport interface CadenzaNuxtRuntimeState<\n TProjectionState extends Record<string, any> = Record<string, any>,\n> extends ProjectionRuntimeSnapshot<TProjectionState> {}\n\nexport interface CadenzaNuxtRuntime<\n TProjectionState extends Record<string, any> = Record<string, any>,\n TCommands extends Record<string, any> = Record<string, never>,\n> {\n actor: BrowserRuntimeActorHandle<TProjectionState>[\"actor\"];\n actorHandle: BrowserRuntimeActorHandle<TProjectionState>;\n waitUntilReady: BrowserRuntimeActorHandle<TProjectionState>[\"waitUntilReady\"];\n inquire: BrowserRuntimeActorHandle<TProjectionState>[\"inquire\"];\n getRuntimeState: BrowserRuntimeActorHandle<TProjectionState>[\"getRuntimeState\"];\n subscribe: BrowserRuntimeActorHandle<TProjectionState>[\"subscribe\"];\n commands: TCommands;\n}\n\nexport interface CadenzaNuxtRuntimeOptions<\n TProjectionState extends Record<string, any> = Record<string, any>,\n TCommands extends Record<string, any> = Record<string, never>,\n> extends Omit<\n BrowserRuntimeActorOptions<TProjectionState>,\n \"service\" | \"initialProjectionState\"\n > {\n cadenza: typeof CadenzaService;\n service: Omit<BrowserRuntimeServiceOptions, \"bootstrap\" | \"hydration\">;\n bootstrapUrl: string | ((config: Record<string, any>) => string);\n hydrationStateKey?: string;\n initialProjectionState: TProjectionState | (() => TProjectionState);\n commands?: (context: {\n cadenza: typeof CadenzaService;\n runtime: BrowserRuntimeActorHandle<TProjectionState>;\n }) => TCommands;\n}\n\ntype NuxtRuntimeHolder<\n TProjectionState extends Record<string, any> = Record<string, any>,\n TCommands extends Record<string, any> = Record<string, never>,\n> = {\n runtime?: BrowserRuntimeActorHandle<TProjectionState>;\n unsubscribe?: () => void;\n providedRuntime?: CadenzaNuxtRuntime<TProjectionState, TCommands>;\n};\n\nconst DEFAULT_HYDRATION_STATE_KEY = \"cadenza-hydration\";\nconst RUNTIME_PROJECTION_STATE_KEY = \"__cadenza_runtime_projection_state__\";\nconst RUNTIME_HOLDER_KEY = \"__CADENZA_NUXT_RUNTIME_HOLDER__\";\n\nfunction getRuntimeHolder<\n TProjectionState extends Record<string, any>,\n TCommands extends Record<string, any>,\n>(): NuxtRuntimeHolder<TProjectionState, TCommands> {\n const globalRecord = globalThis as Record<string, unknown>;\n if (!globalRecord[RUNTIME_HOLDER_KEY]) {\n globalRecord[RUNTIME_HOLDER_KEY] = {};\n }\n\n return globalRecord[RUNTIME_HOLDER_KEY] as NuxtRuntimeHolder<\n TProjectionState,\n TCommands\n >;\n}\n\nfunction resolveBootstrapUrl(\n bootstrapUrl: string | ((config: Record<string, any>) => string),\n runtimeConfig: Record<string, any>,\n): string {\n return typeof bootstrapUrl === \"function\"\n ? bootstrapUrl(runtimeConfig)\n : bootstrapUrl;\n}\n\nexport function defineCadenzaNuxtRuntimePlugin<\n TProjectionState extends Record<string, any>,\n TCommands extends Record<string, any> = Record<string, never>,\n>(options: CadenzaNuxtRuntimeOptions<TProjectionState, TCommands>): NuxtPluginSetup {\n return () => {\n const {\n cadenza,\n service,\n bootstrapUrl,\n hydrationStateKey,\n initialProjectionState,\n commands,\n ...actorOptions\n } = options;\n const runtimeConfig = useRuntimeConfig();\n const hydration = useState<HydrationOptions>(\n hydrationStateKey ?? DEFAULT_HYDRATION_STATE_KEY,\n () => ({\n initialInquiryResults: {},\n }),\n );\n const browserRuntimeOptions: BrowserRuntimeActorOptions<TProjectionState> = {\n ...actorOptions,\n initialProjectionState,\n service: {\n ...service,\n bootstrap: {\n url: resolveBootstrapUrl(bootstrapUrl, runtimeConfig),\n },\n hydration: hydration.value,\n },\n };\n const projectionState = useState<CadenzaNuxtRuntimeState<TProjectionState>>(\n RUNTIME_PROJECTION_STATE_KEY,\n () => createProjectionRuntimeSnapshot(undefined, initialProjectionState),\n );\n const holder = getRuntimeHolder<TProjectionState, TCommands>();\n\n if (!holder.runtime) {\n holder.runtime = cadenza.createBrowserRuntimeActor(browserRuntimeOptions);\n }\n\n holder.unsubscribe?.();\n holder.unsubscribe = holder.runtime.subscribe((runtimeState) => {\n projectionState.value = createProjectionRuntimeSnapshot(\n runtimeState,\n initialProjectionState,\n );\n });\n projectionState.value = createProjectionRuntimeSnapshot(\n holder.runtime.getRuntimeState(),\n initialProjectionState,\n );\n\n if (!holder.providedRuntime) {\n const runtimeCommands = commands\n ? commands({\n cadenza,\n runtime: holder.runtime,\n })\n : ({} as TCommands);\n\n holder.providedRuntime = {\n actor: holder.runtime.actor,\n actorHandle: holder.runtime,\n waitUntilReady: holder.runtime.waitUntilReady,\n inquire: holder.runtime.inquire,\n getRuntimeState: holder.runtime.getRuntimeState,\n subscribe: holder.runtime.subscribe,\n commands: runtimeCommands,\n };\n }\n\n return {\n provide: {\n cadenzaRuntime: holder.providedRuntime,\n },\n };\n };\n}\n\nexport function useCadenzaRuntime<\n TRuntime extends CadenzaNuxtRuntime<any, any> = CadenzaNuxtRuntime<any, any>,\n>(): TRuntime {\n return (useNuxtApp() as { $cadenzaRuntime: TRuntime }).$cadenzaRuntime;\n}\n\nexport function useCadenzaProjectionState<\n TProjectionState extends Record<string, any> = Record<string, any>,\n>(): StateLike<CadenzaNuxtRuntimeState<TProjectionState>> {\n return useState<CadenzaNuxtRuntimeState<TProjectionState>>(\n RUNTIME_PROJECTION_STATE_KEY,\n () => ({\n ready: false,\n projectionState: {} as TProjectionState,\n }),\n );\n}\n\nexport function useCadenzaRuntimeReady(): ComputedLike<boolean> {\n const readyState = {} as RefLike<boolean>;\n Object.defineProperty(readyState, \"__v_isRef\", {\n value: true,\n enumerable: false,\n });\n Object.defineProperty(readyState, \"value\", {\n get() {\n return useCadenzaProjectionState().value.ready;\n },\n enumerable: true,\n });\n return readyState;\n}\n\nexport type { BrowserRuntimeProjectionBinding };\n","import type { BrowserRuntimeActorRuntimeState } from \"./createBrowserRuntimeActor\";\n\nexport interface ProjectionRuntimeSnapshot<\n TProjectionState extends Record<string, any> = Record<string, any>,\n> {\n ready: boolean;\n projectionState: TProjectionState;\n}\n\nexport function cloneProjectionState<TProjectionState>(\n value: TProjectionState,\n): TProjectionState {\n if (Array.isArray(value)) {\n return value.map((item) => cloneProjectionState(item)) as TProjectionState;\n }\n\n if (value && typeof value === \"object\") {\n return Object.fromEntries(\n Object.entries(value as Record<string, unknown>).map(([key, nested]) => [\n key,\n cloneProjectionState(nested),\n ]),\n ) as TProjectionState;\n }\n\n return value;\n}\n\nexport function resolveInitialProjectionState<\n TProjectionState extends Record<string, any>,\n>(value: TProjectionState | (() => TProjectionState)): TProjectionState {\n const resolved =\n typeof value === \"function\"\n ? (value as () => TProjectionState)()\n : value;\n return cloneProjectionState(resolved);\n}\n\nexport function createProjectionRuntimeSnapshot<\n TProjectionState extends Record<string, any>,\n>(\n runtimeState: BrowserRuntimeActorRuntimeState<TProjectionState> | undefined,\n initialProjectionState: TProjectionState | (() => TProjectionState),\n): ProjectionRuntimeSnapshot<TProjectionState> {\n return {\n ready: runtimeState?.ready ?? false,\n projectionState:\n runtimeState?.projectionState ??\n resolveInitialProjectionState(initialProjectionState),\n };\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,121 @@
1
+ import {
2
+ createProjectionRuntimeSnapshot
3
+ } from "../chunk-DBCS4XXY.mjs";
4
+
5
+ // src/nuxt/index.ts
6
+ var DEFAULT_HYDRATION_STATE_KEY = "cadenza-hydration";
7
+ var RUNTIME_PROJECTION_STATE_KEY = "__cadenza_runtime_projection_state__";
8
+ var RUNTIME_HOLDER_KEY = "__CADENZA_NUXT_RUNTIME_HOLDER__";
9
+ function getRuntimeHolder() {
10
+ const globalRecord = globalThis;
11
+ if (!globalRecord[RUNTIME_HOLDER_KEY]) {
12
+ globalRecord[RUNTIME_HOLDER_KEY] = {};
13
+ }
14
+ return globalRecord[RUNTIME_HOLDER_KEY];
15
+ }
16
+ function resolveBootstrapUrl(bootstrapUrl, runtimeConfig) {
17
+ return typeof bootstrapUrl === "function" ? bootstrapUrl(runtimeConfig) : bootstrapUrl;
18
+ }
19
+ function defineCadenzaNuxtRuntimePlugin(options) {
20
+ return () => {
21
+ const {
22
+ cadenza,
23
+ service,
24
+ bootstrapUrl,
25
+ hydrationStateKey,
26
+ initialProjectionState,
27
+ commands,
28
+ ...actorOptions
29
+ } = options;
30
+ const runtimeConfig = useRuntimeConfig();
31
+ const hydration = useState(
32
+ hydrationStateKey ?? DEFAULT_HYDRATION_STATE_KEY,
33
+ () => ({
34
+ initialInquiryResults: {}
35
+ })
36
+ );
37
+ const browserRuntimeOptions = {
38
+ ...actorOptions,
39
+ initialProjectionState,
40
+ service: {
41
+ ...service,
42
+ bootstrap: {
43
+ url: resolveBootstrapUrl(bootstrapUrl, runtimeConfig)
44
+ },
45
+ hydration: hydration.value
46
+ }
47
+ };
48
+ const projectionState = useState(
49
+ RUNTIME_PROJECTION_STATE_KEY,
50
+ () => createProjectionRuntimeSnapshot(void 0, initialProjectionState)
51
+ );
52
+ const holder = getRuntimeHolder();
53
+ if (!holder.runtime) {
54
+ holder.runtime = cadenza.createBrowserRuntimeActor(browserRuntimeOptions);
55
+ }
56
+ holder.unsubscribe?.();
57
+ holder.unsubscribe = holder.runtime.subscribe((runtimeState) => {
58
+ projectionState.value = createProjectionRuntimeSnapshot(
59
+ runtimeState,
60
+ initialProjectionState
61
+ );
62
+ });
63
+ projectionState.value = createProjectionRuntimeSnapshot(
64
+ holder.runtime.getRuntimeState(),
65
+ initialProjectionState
66
+ );
67
+ if (!holder.providedRuntime) {
68
+ const runtimeCommands = commands ? commands({
69
+ cadenza,
70
+ runtime: holder.runtime
71
+ }) : {};
72
+ holder.providedRuntime = {
73
+ actor: holder.runtime.actor,
74
+ actorHandle: holder.runtime,
75
+ waitUntilReady: holder.runtime.waitUntilReady,
76
+ inquire: holder.runtime.inquire,
77
+ getRuntimeState: holder.runtime.getRuntimeState,
78
+ subscribe: holder.runtime.subscribe,
79
+ commands: runtimeCommands
80
+ };
81
+ }
82
+ return {
83
+ provide: {
84
+ cadenzaRuntime: holder.providedRuntime
85
+ }
86
+ };
87
+ };
88
+ }
89
+ function useCadenzaRuntime() {
90
+ return useNuxtApp().$cadenzaRuntime;
91
+ }
92
+ function useCadenzaProjectionState() {
93
+ return useState(
94
+ RUNTIME_PROJECTION_STATE_KEY,
95
+ () => ({
96
+ ready: false,
97
+ projectionState: {}
98
+ })
99
+ );
100
+ }
101
+ function useCadenzaRuntimeReady() {
102
+ const readyState = {};
103
+ Object.defineProperty(readyState, "__v_isRef", {
104
+ value: true,
105
+ enumerable: false
106
+ });
107
+ Object.defineProperty(readyState, "value", {
108
+ get() {
109
+ return useCadenzaProjectionState().value.ready;
110
+ },
111
+ enumerable: true
112
+ });
113
+ return readyState;
114
+ }
115
+ export {
116
+ defineCadenzaNuxtRuntimePlugin,
117
+ useCadenzaProjectionState,
118
+ useCadenzaRuntime,
119
+ useCadenzaRuntimeReady
120
+ };
121
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/nuxt/index.ts"],"sourcesContent":["import type CadenzaService from \"../Cadenza\";\nimport type {\n BrowserRuntimeActorHandle,\n BrowserRuntimeActorOptions,\n BrowserRuntimeServiceOptions,\n BrowserRuntimeProjectionBinding,\n} from \"../frontend/createBrowserRuntimeActor\";\nimport {\n createProjectionRuntimeSnapshot,\n type ProjectionRuntimeSnapshot,\n} from \"../frontend/runtimeProjectionState\";\nimport type { HydrationOptions } from \"../utils/bootstrap\";\n\ntype StateLike<T> = {\n value: T;\n};\n\ntype ComputedLike<T> = {\n readonly value: T;\n};\n\ntype RefLike<T> = {\n readonly value: T;\n readonly __v_isRef: true;\n};\n\ntype NuxtPluginSetup = () => { provide?: Record<string, unknown> } | void;\n\ndeclare function useState<T>(key: string, init: () => T): StateLike<T>;\ndeclare function useRuntimeConfig(): Record<string, any>;\ndeclare function useNuxtApp(): Record<string, any>;\n\nexport interface CadenzaNuxtRuntimeState<\n TProjectionState extends Record<string, any> = Record<string, any>,\n> extends ProjectionRuntimeSnapshot<TProjectionState> {}\n\nexport interface CadenzaNuxtRuntime<\n TProjectionState extends Record<string, any> = Record<string, any>,\n TCommands extends Record<string, any> = Record<string, never>,\n> {\n actor: BrowserRuntimeActorHandle<TProjectionState>[\"actor\"];\n actorHandle: BrowserRuntimeActorHandle<TProjectionState>;\n waitUntilReady: BrowserRuntimeActorHandle<TProjectionState>[\"waitUntilReady\"];\n inquire: BrowserRuntimeActorHandle<TProjectionState>[\"inquire\"];\n getRuntimeState: BrowserRuntimeActorHandle<TProjectionState>[\"getRuntimeState\"];\n subscribe: BrowserRuntimeActorHandle<TProjectionState>[\"subscribe\"];\n commands: TCommands;\n}\n\nexport interface CadenzaNuxtRuntimeOptions<\n TProjectionState extends Record<string, any> = Record<string, any>,\n TCommands extends Record<string, any> = Record<string, never>,\n> extends Omit<\n BrowserRuntimeActorOptions<TProjectionState>,\n \"service\" | \"initialProjectionState\"\n > {\n cadenza: typeof CadenzaService;\n service: Omit<BrowserRuntimeServiceOptions, \"bootstrap\" | \"hydration\">;\n bootstrapUrl: string | ((config: Record<string, any>) => string);\n hydrationStateKey?: string;\n initialProjectionState: TProjectionState | (() => TProjectionState);\n commands?: (context: {\n cadenza: typeof CadenzaService;\n runtime: BrowserRuntimeActorHandle<TProjectionState>;\n }) => TCommands;\n}\n\ntype NuxtRuntimeHolder<\n TProjectionState extends Record<string, any> = Record<string, any>,\n TCommands extends Record<string, any> = Record<string, never>,\n> = {\n runtime?: BrowserRuntimeActorHandle<TProjectionState>;\n unsubscribe?: () => void;\n providedRuntime?: CadenzaNuxtRuntime<TProjectionState, TCommands>;\n};\n\nconst DEFAULT_HYDRATION_STATE_KEY = \"cadenza-hydration\";\nconst RUNTIME_PROJECTION_STATE_KEY = \"__cadenza_runtime_projection_state__\";\nconst RUNTIME_HOLDER_KEY = \"__CADENZA_NUXT_RUNTIME_HOLDER__\";\n\nfunction getRuntimeHolder<\n TProjectionState extends Record<string, any>,\n TCommands extends Record<string, any>,\n>(): NuxtRuntimeHolder<TProjectionState, TCommands> {\n const globalRecord = globalThis as Record<string, unknown>;\n if (!globalRecord[RUNTIME_HOLDER_KEY]) {\n globalRecord[RUNTIME_HOLDER_KEY] = {};\n }\n\n return globalRecord[RUNTIME_HOLDER_KEY] as NuxtRuntimeHolder<\n TProjectionState,\n TCommands\n >;\n}\n\nfunction resolveBootstrapUrl(\n bootstrapUrl: string | ((config: Record<string, any>) => string),\n runtimeConfig: Record<string, any>,\n): string {\n return typeof bootstrapUrl === \"function\"\n ? bootstrapUrl(runtimeConfig)\n : bootstrapUrl;\n}\n\nexport function defineCadenzaNuxtRuntimePlugin<\n TProjectionState extends Record<string, any>,\n TCommands extends Record<string, any> = Record<string, never>,\n>(options: CadenzaNuxtRuntimeOptions<TProjectionState, TCommands>): NuxtPluginSetup {\n return () => {\n const {\n cadenza,\n service,\n bootstrapUrl,\n hydrationStateKey,\n initialProjectionState,\n commands,\n ...actorOptions\n } = options;\n const runtimeConfig = useRuntimeConfig();\n const hydration = useState<HydrationOptions>(\n hydrationStateKey ?? DEFAULT_HYDRATION_STATE_KEY,\n () => ({\n initialInquiryResults: {},\n }),\n );\n const browserRuntimeOptions: BrowserRuntimeActorOptions<TProjectionState> = {\n ...actorOptions,\n initialProjectionState,\n service: {\n ...service,\n bootstrap: {\n url: resolveBootstrapUrl(bootstrapUrl, runtimeConfig),\n },\n hydration: hydration.value,\n },\n };\n const projectionState = useState<CadenzaNuxtRuntimeState<TProjectionState>>(\n RUNTIME_PROJECTION_STATE_KEY,\n () => createProjectionRuntimeSnapshot(undefined, initialProjectionState),\n );\n const holder = getRuntimeHolder<TProjectionState, TCommands>();\n\n if (!holder.runtime) {\n holder.runtime = cadenza.createBrowserRuntimeActor(browserRuntimeOptions);\n }\n\n holder.unsubscribe?.();\n holder.unsubscribe = holder.runtime.subscribe((runtimeState) => {\n projectionState.value = createProjectionRuntimeSnapshot(\n runtimeState,\n initialProjectionState,\n );\n });\n projectionState.value = createProjectionRuntimeSnapshot(\n holder.runtime.getRuntimeState(),\n initialProjectionState,\n );\n\n if (!holder.providedRuntime) {\n const runtimeCommands = commands\n ? commands({\n cadenza,\n runtime: holder.runtime,\n })\n : ({} as TCommands);\n\n holder.providedRuntime = {\n actor: holder.runtime.actor,\n actorHandle: holder.runtime,\n waitUntilReady: holder.runtime.waitUntilReady,\n inquire: holder.runtime.inquire,\n getRuntimeState: holder.runtime.getRuntimeState,\n subscribe: holder.runtime.subscribe,\n commands: runtimeCommands,\n };\n }\n\n return {\n provide: {\n cadenzaRuntime: holder.providedRuntime,\n },\n };\n };\n}\n\nexport function useCadenzaRuntime<\n TRuntime extends CadenzaNuxtRuntime<any, any> = CadenzaNuxtRuntime<any, any>,\n>(): TRuntime {\n return (useNuxtApp() as { $cadenzaRuntime: TRuntime }).$cadenzaRuntime;\n}\n\nexport function useCadenzaProjectionState<\n TProjectionState extends Record<string, any> = Record<string, any>,\n>(): StateLike<CadenzaNuxtRuntimeState<TProjectionState>> {\n return useState<CadenzaNuxtRuntimeState<TProjectionState>>(\n RUNTIME_PROJECTION_STATE_KEY,\n () => ({\n ready: false,\n projectionState: {} as TProjectionState,\n }),\n );\n}\n\nexport function useCadenzaRuntimeReady(): ComputedLike<boolean> {\n const readyState = {} as RefLike<boolean>;\n Object.defineProperty(readyState, \"__v_isRef\", {\n value: true,\n enumerable: false,\n });\n Object.defineProperty(readyState, \"value\", {\n get() {\n return useCadenzaProjectionState().value.ready;\n },\n enumerable: true,\n });\n return readyState;\n}\n\nexport type { BrowserRuntimeProjectionBinding };\n"],"mappings":";;;;;AA4EA,IAAM,8BAA8B;AACpC,IAAM,+BAA+B;AACrC,IAAM,qBAAqB;AAE3B,SAAS,mBAG2C;AAClD,QAAM,eAAe;AACrB,MAAI,CAAC,aAAa,kBAAkB,GAAG;AACrC,iBAAa,kBAAkB,IAAI,CAAC;AAAA,EACtC;AAEA,SAAO,aAAa,kBAAkB;AAIxC;AAEA,SAAS,oBACP,cACA,eACQ;AACR,SAAO,OAAO,iBAAiB,aAC3B,aAAa,aAAa,IAC1B;AACN;AAEO,SAAS,+BAGd,SAAkF;AAClF,SAAO,MAAM;AACX,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL,IAAI;AACJ,UAAM,gBAAgB,iBAAiB;AACvC,UAAM,YAAY;AAAA,MAChB,qBAAqB;AAAA,MACrB,OAAO;AAAA,QACL,uBAAuB,CAAC;AAAA,MAC1B;AAAA,IACF;AACA,UAAM,wBAAsE;AAAA,MAC1E,GAAG;AAAA,MACH;AAAA,MACA,SAAS;AAAA,QACP,GAAG;AAAA,QACH,WAAW;AAAA,UACT,KAAK,oBAAoB,cAAc,aAAa;AAAA,QACtD;AAAA,QACA,WAAW,UAAU;AAAA,MACvB;AAAA,IACF;AACA,UAAM,kBAAkB;AAAA,MACtB;AAAA,MACA,MAAM,gCAAgC,QAAW,sBAAsB;AAAA,IACzE;AACA,UAAM,SAAS,iBAA8C;AAE7D,QAAI,CAAC,OAAO,SAAS;AACnB,aAAO,UAAU,QAAQ,0BAA0B,qBAAqB;AAAA,IAC1E;AAEA,WAAO,cAAc;AACrB,WAAO,cAAc,OAAO,QAAQ,UAAU,CAAC,iBAAiB;AAC9D,sBAAgB,QAAQ;AAAA,QACtB;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AACD,oBAAgB,QAAQ;AAAA,MACtB,OAAO,QAAQ,gBAAgB;AAAA,MAC/B;AAAA,IACF;AAEA,QAAI,CAAC,OAAO,iBAAiB;AAC3B,YAAM,kBAAkB,WACpB,SAAS;AAAA,QACP;AAAA,QACA,SAAS,OAAO;AAAA,MAClB,CAAC,IACA,CAAC;AAEN,aAAO,kBAAkB;AAAA,QACvB,OAAO,OAAO,QAAQ;AAAA,QACtB,aAAa,OAAO;AAAA,QACpB,gBAAgB,OAAO,QAAQ;AAAA,QAC/B,SAAS,OAAO,QAAQ;AAAA,QACxB,iBAAiB,OAAO,QAAQ;AAAA,QAChC,WAAW,OAAO,QAAQ;AAAA,QAC1B,UAAU;AAAA,MACZ;AAAA,IACF;AAEA,WAAO;AAAA,MACL,SAAS;AAAA,QACP,gBAAgB,OAAO;AAAA,MACzB;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,oBAEF;AACZ,SAAQ,WAAW,EAAoC;AACzD;AAEO,SAAS,4BAE0C;AACxD,SAAO;AAAA,IACL;AAAA,IACA,OAAO;AAAA,MACL,OAAO;AAAA,MACP,iBAAiB,CAAC;AAAA,IACpB;AAAA,EACF;AACF;AAEO,SAAS,yBAAgD;AAC9D,QAAM,aAAa,CAAC;AACpB,SAAO,eAAe,YAAY,aAAa;AAAA,IAC7C,OAAO;AAAA,IACP,YAAY;AAAA,EACd,CAAC;AACD,SAAO,eAAe,YAAY,SAAS;AAAA,IACzC,MAAM;AACJ,aAAO,0BAA0B,EAAE,MAAM;AAAA,IAC3C;AAAA,IACA,YAAY;AAAA,EACd,CAAC;AACD,SAAO;AACT;","names":[]}
@@ -0,0 +1,52 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+ import { i as BrowserRuntimeActorHandle, j as BrowserRuntimeActorOptions, C as CadenzaService, m as BrowserRuntimeServiceOptions, H as HydrationOptions, k as BrowserRuntimeActorRuntimeState, d as DistributedInquiryOptions } from '../Cadenza-DCMs7q97.mjs';
4
+ export { l as BrowserRuntimeProjectionBinding } from '../Cadenza-DCMs7q97.mjs';
5
+ import * as _cadenza_io_core from '@cadenza.io/core';
6
+ import { P as ProjectionRuntimeSnapshot } from '../runtimeProjectionState-CitON2P3.mjs';
7
+
8
+ interface CadenzaReactRuntimeState<TProjectionState extends Record<string, any> = Record<string, any>> extends ProjectionRuntimeSnapshot<TProjectionState> {
9
+ }
10
+ interface CadenzaReactRuntime<TProjectionState extends Record<string, any> = Record<string, any>, TCommands extends Record<string, any> = Record<string, never>> {
11
+ actor: BrowserRuntimeActorHandle<TProjectionState>["actor"];
12
+ actorHandle: BrowserRuntimeActorHandle<TProjectionState>;
13
+ waitUntilReady: BrowserRuntimeActorHandle<TProjectionState>["waitUntilReady"];
14
+ inquire: BrowserRuntimeActorHandle<TProjectionState>["inquire"];
15
+ getRuntimeState: BrowserRuntimeActorHandle<TProjectionState>["getRuntimeState"];
16
+ subscribe: BrowserRuntimeActorHandle<TProjectionState>["subscribe"];
17
+ getSnapshot: () => CadenzaReactRuntimeState<TProjectionState>;
18
+ commands: TCommands;
19
+ }
20
+ interface CadenzaReactRuntimeOptions<TProjectionState extends Record<string, any> = Record<string, any>, TCommands extends Record<string, any> = Record<string, never>> extends Omit<BrowserRuntimeActorOptions<TProjectionState>, "service" | "initialProjectionState"> {
21
+ cadenza: typeof CadenzaService;
22
+ service: Omit<BrowserRuntimeServiceOptions, "bootstrap" | "hydration">;
23
+ bootstrapUrl: string | (() => string);
24
+ hydration?: HydrationOptions | (() => HydrationOptions);
25
+ initialProjectionState: TProjectionState | (() => TProjectionState);
26
+ commands?: (context: {
27
+ cadenza: typeof CadenzaService;
28
+ runtime: BrowserRuntimeActorHandle<TProjectionState>;
29
+ }) => TCommands;
30
+ }
31
+ interface CadenzaRuntimeProviderProps<TProjectionState extends Record<string, any> = Record<string, any>, TCommands extends Record<string, any> = Record<string, never>> {
32
+ runtime: CadenzaReactRuntime<TProjectionState, TCommands>;
33
+ children?: ReactNode;
34
+ }
35
+ type EqualityComparator<TSelected> = (previous: TSelected, next: TSelected) => boolean;
36
+ declare function createCadenzaReactRuntime<TProjectionState extends Record<string, any>, TCommands extends Record<string, any> = Record<string, never>>(options: CadenzaReactRuntimeOptions<TProjectionState, TCommands>): {
37
+ actor: _cadenza_io_core.Actor<Record<string, never>, BrowserRuntimeActorRuntimeState<TProjectionState>>;
38
+ actorHandle: BrowserRuntimeActorHandle<TProjectionState>;
39
+ waitUntilReady: () => Promise<void>;
40
+ inquire: (inquiry: string, context?: Record<string, any>, options?: DistributedInquiryOptions) => Promise<_cadenza_io_core.AnyObject>;
41
+ getRuntimeState: () => BrowserRuntimeActorRuntimeState<TProjectionState>;
42
+ subscribe: (listener: (state: BrowserRuntimeActorRuntimeState<TProjectionState>) => void) => () => void;
43
+ getSnapshot: () => ProjectionRuntimeSnapshot<TProjectionState>;
44
+ commands: TCommands;
45
+ };
46
+ declare function CadenzaRuntimeProvider<TProjectionState extends Record<string, any>, TCommands extends Record<string, any> = Record<string, never>>({ runtime, children }: CadenzaRuntimeProviderProps<TProjectionState, TCommands>): react.FunctionComponentElement<react.ProviderProps<CadenzaReactRuntime<any, any> | null>>;
47
+ declare function useCadenzaRuntime<TRuntime extends CadenzaReactRuntime<any, any> = CadenzaReactRuntime<any, any>>(): TRuntime;
48
+ declare function useCadenzaProjectionState<TProjectionState extends Record<string, any> = Record<string, any>>(): CadenzaReactRuntimeState<TProjectionState>;
49
+ declare function useCadenzaProjectionSelector<TProjectionState extends Record<string, any> = Record<string, any>, TSelected = TProjectionState>(selector: (state: TProjectionState) => TSelected, isEqual?: EqualityComparator<TSelected>): TSelected;
50
+ declare function useCadenzaRuntimeReady(): boolean;
51
+
52
+ export { type CadenzaReactRuntime, type CadenzaReactRuntimeOptions, type CadenzaReactRuntimeState, CadenzaRuntimeProvider, type CadenzaRuntimeProviderProps, createCadenzaReactRuntime, useCadenzaProjectionSelector, useCadenzaProjectionState, useCadenzaRuntime, useCadenzaRuntimeReady };
@@ -0,0 +1,52 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+ import { i as BrowserRuntimeActorHandle, j as BrowserRuntimeActorOptions, C as CadenzaService, m as BrowserRuntimeServiceOptions, H as HydrationOptions, k as BrowserRuntimeActorRuntimeState, d as DistributedInquiryOptions } from '../Cadenza-DCMs7q97.js';
4
+ export { l as BrowserRuntimeProjectionBinding } from '../Cadenza-DCMs7q97.js';
5
+ import * as _cadenza_io_core from '@cadenza.io/core';
6
+ import { P as ProjectionRuntimeSnapshot } from '../runtimeProjectionState-CitON2P3.js';
7
+
8
+ interface CadenzaReactRuntimeState<TProjectionState extends Record<string, any> = Record<string, any>> extends ProjectionRuntimeSnapshot<TProjectionState> {
9
+ }
10
+ interface CadenzaReactRuntime<TProjectionState extends Record<string, any> = Record<string, any>, TCommands extends Record<string, any> = Record<string, never>> {
11
+ actor: BrowserRuntimeActorHandle<TProjectionState>["actor"];
12
+ actorHandle: BrowserRuntimeActorHandle<TProjectionState>;
13
+ waitUntilReady: BrowserRuntimeActorHandle<TProjectionState>["waitUntilReady"];
14
+ inquire: BrowserRuntimeActorHandle<TProjectionState>["inquire"];
15
+ getRuntimeState: BrowserRuntimeActorHandle<TProjectionState>["getRuntimeState"];
16
+ subscribe: BrowserRuntimeActorHandle<TProjectionState>["subscribe"];
17
+ getSnapshot: () => CadenzaReactRuntimeState<TProjectionState>;
18
+ commands: TCommands;
19
+ }
20
+ interface CadenzaReactRuntimeOptions<TProjectionState extends Record<string, any> = Record<string, any>, TCommands extends Record<string, any> = Record<string, never>> extends Omit<BrowserRuntimeActorOptions<TProjectionState>, "service" | "initialProjectionState"> {
21
+ cadenza: typeof CadenzaService;
22
+ service: Omit<BrowserRuntimeServiceOptions, "bootstrap" | "hydration">;
23
+ bootstrapUrl: string | (() => string);
24
+ hydration?: HydrationOptions | (() => HydrationOptions);
25
+ initialProjectionState: TProjectionState | (() => TProjectionState);
26
+ commands?: (context: {
27
+ cadenza: typeof CadenzaService;
28
+ runtime: BrowserRuntimeActorHandle<TProjectionState>;
29
+ }) => TCommands;
30
+ }
31
+ interface CadenzaRuntimeProviderProps<TProjectionState extends Record<string, any> = Record<string, any>, TCommands extends Record<string, any> = Record<string, never>> {
32
+ runtime: CadenzaReactRuntime<TProjectionState, TCommands>;
33
+ children?: ReactNode;
34
+ }
35
+ type EqualityComparator<TSelected> = (previous: TSelected, next: TSelected) => boolean;
36
+ declare function createCadenzaReactRuntime<TProjectionState extends Record<string, any>, TCommands extends Record<string, any> = Record<string, never>>(options: CadenzaReactRuntimeOptions<TProjectionState, TCommands>): {
37
+ actor: _cadenza_io_core.Actor<Record<string, never>, BrowserRuntimeActorRuntimeState<TProjectionState>>;
38
+ actorHandle: BrowserRuntimeActorHandle<TProjectionState>;
39
+ waitUntilReady: () => Promise<void>;
40
+ inquire: (inquiry: string, context?: Record<string, any>, options?: DistributedInquiryOptions) => Promise<_cadenza_io_core.AnyObject>;
41
+ getRuntimeState: () => BrowserRuntimeActorRuntimeState<TProjectionState>;
42
+ subscribe: (listener: (state: BrowserRuntimeActorRuntimeState<TProjectionState>) => void) => () => void;
43
+ getSnapshot: () => ProjectionRuntimeSnapshot<TProjectionState>;
44
+ commands: TCommands;
45
+ };
46
+ declare function CadenzaRuntimeProvider<TProjectionState extends Record<string, any>, TCommands extends Record<string, any> = Record<string, never>>({ runtime, children }: CadenzaRuntimeProviderProps<TProjectionState, TCommands>): react.FunctionComponentElement<react.ProviderProps<CadenzaReactRuntime<any, any> | null>>;
47
+ declare function useCadenzaRuntime<TRuntime extends CadenzaReactRuntime<any, any> = CadenzaReactRuntime<any, any>>(): TRuntime;
48
+ declare function useCadenzaProjectionState<TProjectionState extends Record<string, any> = Record<string, any>>(): CadenzaReactRuntimeState<TProjectionState>;
49
+ declare function useCadenzaProjectionSelector<TProjectionState extends Record<string, any> = Record<string, any>, TSelected = TProjectionState>(selector: (state: TProjectionState) => TSelected, isEqual?: EqualityComparator<TSelected>): TSelected;
50
+ declare function useCadenzaRuntimeReady(): boolean;
51
+
52
+ export { type CadenzaReactRuntime, type CadenzaReactRuntimeOptions, type CadenzaReactRuntimeState, CadenzaRuntimeProvider, type CadenzaRuntimeProviderProps, createCadenzaReactRuntime, useCadenzaProjectionSelector, useCadenzaProjectionState, useCadenzaRuntime, useCadenzaRuntimeReady };