@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.
- package/README.md +258 -0
- package/dist/Cadenza-DCMs7q97.d.mts +1666 -0
- package/dist/Cadenza-DCMs7q97.d.ts +1666 -0
- package/dist/browser/chunk-4XOTT2KM.mjs +31 -0
- package/dist/browser/chunk-4XOTT2KM.mjs.map +1 -0
- package/dist/browser/index.js +15295 -7234
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/index.mjs +15279 -7234
- package/dist/browser/index.mjs.map +1 -1
- package/dist/browser/nuxt/index.js +166 -0
- package/dist/browser/nuxt/index.js.map +1 -0
- package/dist/browser/nuxt/index.mjs +121 -0
- package/dist/browser/nuxt/index.mjs.map +1 -0
- package/dist/browser/react/index.js +179 -0
- package/dist/browser/react/index.js.map +1 -0
- package/dist/browser/react/index.mjs +140 -0
- package/dist/browser/react/index.mjs.map +1 -0
- package/dist/browser/vue/index.js +178 -0
- package/dist/browser/vue/index.js.map +1 -0
- package/dist/browser/vue/index.mjs +140 -0
- package/dist/browser/vue/index.mjs.map +1 -0
- package/dist/chunk-DBCS4XXY.mjs +31 -0
- package/dist/chunk-DBCS4XXY.mjs.map +1 -0
- package/dist/index.d.mts +244 -22947
- package/dist/index.d.ts +244 -22947
- package/dist/index.js +19432 -10213
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +19382 -10214
- package/dist/index.mjs.map +1 -1
- package/dist/nuxt/index.d.mts +42 -0
- package/dist/nuxt/index.d.ts +42 -0
- package/dist/nuxt/index.js +173 -0
- package/dist/nuxt/index.js.map +1 -0
- package/dist/nuxt/index.mjs +121 -0
- package/dist/nuxt/index.mjs.map +1 -0
- package/dist/react/index.d.mts +52 -0
- package/dist/react/index.d.ts +52 -0
- package/dist/react/index.js +188 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/index.mjs +140 -0
- package/dist/react/index.mjs.map +1 -0
- package/dist/runtimeProjectionState-CitON2P3.d.mts +6 -0
- package/dist/runtimeProjectionState-CitON2P3.d.ts +6 -0
- package/dist/vue/index.d.mts +48 -0
- package/dist/vue/index.d.ts +48 -0
- package/dist/vue/index.js +187 -0
- package/dist/vue/index.js.map +1 -0
- package/dist/vue/index.mjs +140 -0
- package/dist/vue/index.mjs.map +1 -0
- package/package.json +64 -7
|
@@ -0,0 +1,188 @@
|
|
|
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/react/index.ts
|
|
21
|
+
var react_exports = {};
|
|
22
|
+
__export(react_exports, {
|
|
23
|
+
CadenzaRuntimeProvider: () => CadenzaRuntimeProvider,
|
|
24
|
+
createCadenzaReactRuntime: () => createCadenzaReactRuntime,
|
|
25
|
+
useCadenzaProjectionSelector: () => useCadenzaProjectionSelector,
|
|
26
|
+
useCadenzaProjectionState: () => useCadenzaProjectionState,
|
|
27
|
+
useCadenzaRuntime: () => useCadenzaRuntime,
|
|
28
|
+
useCadenzaRuntimeReady: () => useCadenzaRuntimeReady
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(react_exports);
|
|
31
|
+
var import_react = require("react");
|
|
32
|
+
|
|
33
|
+
// src/frontend/runtimeProjectionState.ts
|
|
34
|
+
function cloneProjectionState(value) {
|
|
35
|
+
if (Array.isArray(value)) {
|
|
36
|
+
return value.map((item) => cloneProjectionState(item));
|
|
37
|
+
}
|
|
38
|
+
if (value && typeof value === "object") {
|
|
39
|
+
return Object.fromEntries(
|
|
40
|
+
Object.entries(value).map(([key, nested]) => [
|
|
41
|
+
key,
|
|
42
|
+
cloneProjectionState(nested)
|
|
43
|
+
])
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
return value;
|
|
47
|
+
}
|
|
48
|
+
function resolveInitialProjectionState(value) {
|
|
49
|
+
const resolved = typeof value === "function" ? value() : value;
|
|
50
|
+
return cloneProjectionState(resolved);
|
|
51
|
+
}
|
|
52
|
+
function createProjectionRuntimeSnapshot(runtimeState, initialProjectionState) {
|
|
53
|
+
return {
|
|
54
|
+
ready: runtimeState?.ready ?? false,
|
|
55
|
+
projectionState: runtimeState?.projectionState ?? resolveInitialProjectionState(initialProjectionState)
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// src/react/index.ts
|
|
60
|
+
var DEFAULT_SELECTOR_EQUALITY = Object.is;
|
|
61
|
+
var CadenzaRuntimeContext = (0, import_react.createContext)(
|
|
62
|
+
null
|
|
63
|
+
);
|
|
64
|
+
function resolveBootstrapUrl(bootstrapUrl) {
|
|
65
|
+
return typeof bootstrapUrl === "function" ? bootstrapUrl() : bootstrapUrl;
|
|
66
|
+
}
|
|
67
|
+
function resolveHydrationOptions(hydration) {
|
|
68
|
+
if (!hydration) {
|
|
69
|
+
return void 0;
|
|
70
|
+
}
|
|
71
|
+
return typeof hydration === "function" ? hydration() : hydration;
|
|
72
|
+
}
|
|
73
|
+
function getRequiredRuntime() {
|
|
74
|
+
const runtime = (0, import_react.useContext)(CadenzaRuntimeContext);
|
|
75
|
+
if (!runtime) {
|
|
76
|
+
throw new Error(
|
|
77
|
+
"CadenzaRuntimeProvider is required before using React Cadenza runtime hooks."
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
return runtime;
|
|
81
|
+
}
|
|
82
|
+
function createCadenzaReactRuntime(options) {
|
|
83
|
+
const {
|
|
84
|
+
cadenza,
|
|
85
|
+
service,
|
|
86
|
+
bootstrapUrl,
|
|
87
|
+
hydration,
|
|
88
|
+
initialProjectionState,
|
|
89
|
+
commands,
|
|
90
|
+
...actorOptions
|
|
91
|
+
} = options;
|
|
92
|
+
const browserRuntimeOptions = {
|
|
93
|
+
...actorOptions,
|
|
94
|
+
initialProjectionState,
|
|
95
|
+
service: {
|
|
96
|
+
...service,
|
|
97
|
+
bootstrap: {
|
|
98
|
+
url: resolveBootstrapUrl(bootstrapUrl)
|
|
99
|
+
},
|
|
100
|
+
hydration: resolveHydrationOptions(hydration)
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
const runtime = cadenza.createBrowserRuntimeActor(browserRuntimeOptions);
|
|
104
|
+
let snapshot = createProjectionRuntimeSnapshot(
|
|
105
|
+
runtime.getRuntimeState(),
|
|
106
|
+
initialProjectionState
|
|
107
|
+
);
|
|
108
|
+
const runtimeCommands = commands ? commands({
|
|
109
|
+
cadenza,
|
|
110
|
+
runtime
|
|
111
|
+
}) : {};
|
|
112
|
+
return {
|
|
113
|
+
actor: runtime.actor,
|
|
114
|
+
actorHandle: runtime,
|
|
115
|
+
waitUntilReady: runtime.waitUntilReady,
|
|
116
|
+
inquire: runtime.inquire,
|
|
117
|
+
getRuntimeState: runtime.getRuntimeState,
|
|
118
|
+
subscribe: (listener) => runtime.subscribe((runtimeState) => {
|
|
119
|
+
snapshot = createProjectionRuntimeSnapshot(
|
|
120
|
+
runtimeState,
|
|
121
|
+
initialProjectionState
|
|
122
|
+
);
|
|
123
|
+
listener(runtimeState);
|
|
124
|
+
}),
|
|
125
|
+
getSnapshot: () => snapshot,
|
|
126
|
+
commands: runtimeCommands
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function CadenzaRuntimeProvider({ runtime, children }) {
|
|
130
|
+
return (0, import_react.createElement)(CadenzaRuntimeContext.Provider, {
|
|
131
|
+
value: runtime,
|
|
132
|
+
children
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
function useCadenzaRuntime() {
|
|
136
|
+
return getRequiredRuntime();
|
|
137
|
+
}
|
|
138
|
+
function useCadenzaProjectionState() {
|
|
139
|
+
const runtime = getRequiredRuntime();
|
|
140
|
+
return (0, import_react.useSyncExternalStore)(
|
|
141
|
+
runtime.subscribe,
|
|
142
|
+
runtime.getSnapshot,
|
|
143
|
+
runtime.getSnapshot
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
function useCadenzaSnapshotSelector(selector, isEqual = DEFAULT_SELECTOR_EQUALITY) {
|
|
147
|
+
const runtime = getRequiredRuntime();
|
|
148
|
+
const selectionCacheRef = (0, import_react.useRef)({
|
|
149
|
+
hasValue: false,
|
|
150
|
+
value: void 0
|
|
151
|
+
});
|
|
152
|
+
const getSelectedSnapshot = () => {
|
|
153
|
+
const nextValue = selector(runtime.getSnapshot());
|
|
154
|
+
const cached = selectionCacheRef.current;
|
|
155
|
+
if (cached.hasValue && isEqual(cached.value, nextValue)) {
|
|
156
|
+
return cached.value;
|
|
157
|
+
}
|
|
158
|
+
selectionCacheRef.current = {
|
|
159
|
+
hasValue: true,
|
|
160
|
+
value: nextValue
|
|
161
|
+
};
|
|
162
|
+
return nextValue;
|
|
163
|
+
};
|
|
164
|
+
return (0, import_react.useSyncExternalStore)(
|
|
165
|
+
runtime.subscribe,
|
|
166
|
+
getSelectedSnapshot,
|
|
167
|
+
getSelectedSnapshot
|
|
168
|
+
);
|
|
169
|
+
}
|
|
170
|
+
function useCadenzaProjectionSelector(selector, isEqual = DEFAULT_SELECTOR_EQUALITY) {
|
|
171
|
+
return useCadenzaSnapshotSelector(
|
|
172
|
+
(snapshot) => selector(snapshot.projectionState),
|
|
173
|
+
isEqual
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
function useCadenzaRuntimeReady() {
|
|
177
|
+
return useCadenzaSnapshotSelector((snapshot) => snapshot.ready);
|
|
178
|
+
}
|
|
179
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
180
|
+
0 && (module.exports = {
|
|
181
|
+
CadenzaRuntimeProvider,
|
|
182
|
+
createCadenzaReactRuntime,
|
|
183
|
+
useCadenzaProjectionSelector,
|
|
184
|
+
useCadenzaProjectionState,
|
|
185
|
+
useCadenzaRuntime,
|
|
186
|
+
useCadenzaRuntimeReady
|
|
187
|
+
});
|
|
188
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/react/index.ts","../../src/frontend/runtimeProjectionState.ts"],"sourcesContent":["import {\n createContext,\n createElement,\n useContext,\n useRef,\n useSyncExternalStore,\n} from \"react\";\nimport type { ReactNode } from \"react\";\n\nimport type CadenzaService from \"../Cadenza\";\nimport type {\n BrowserRuntimeActorHandle,\n BrowserRuntimeActorOptions,\n BrowserRuntimeProjectionBinding,\n BrowserRuntimeServiceOptions,\n} from \"../frontend/createBrowserRuntimeActor\";\nimport {\n createProjectionRuntimeSnapshot,\n type ProjectionRuntimeSnapshot,\n} from \"../frontend/runtimeProjectionState\";\nimport type { HydrationOptions } from \"../utils/bootstrap\";\n\nexport interface CadenzaReactRuntimeState<\n TProjectionState extends Record<string, any> = Record<string, any>,\n> extends ProjectionRuntimeSnapshot<TProjectionState> {}\n\nexport interface CadenzaReactRuntime<\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 getSnapshot: () => CadenzaReactRuntimeState<TProjectionState>;\n commands: TCommands;\n}\n\nexport interface CadenzaReactRuntimeOptions<\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 | (() => string);\n hydration?: HydrationOptions | (() => HydrationOptions);\n initialProjectionState: TProjectionState | (() => TProjectionState);\n commands?: (context: {\n cadenza: typeof CadenzaService;\n runtime: BrowserRuntimeActorHandle<TProjectionState>;\n }) => TCommands;\n}\n\nexport interface CadenzaRuntimeProviderProps<\n TProjectionState extends Record<string, any> = Record<string, any>,\n TCommands extends Record<string, any> = Record<string, never>,\n> {\n runtime: CadenzaReactRuntime<TProjectionState, TCommands>;\n children?: ReactNode;\n}\n\ntype EqualityComparator<TSelected> = (\n previous: TSelected,\n next: TSelected,\n) => boolean;\n\nconst DEFAULT_SELECTOR_EQUALITY = Object.is;\nconst CadenzaRuntimeContext = createContext<CadenzaReactRuntime<any, any> | null>(\n null,\n);\n\nfunction resolveBootstrapUrl(bootstrapUrl: string | (() => string)): string {\n return typeof bootstrapUrl === \"function\" ? bootstrapUrl() : bootstrapUrl;\n}\n\nfunction resolveHydrationOptions(\n hydration: HydrationOptions | (() => HydrationOptions) | undefined,\n): HydrationOptions | undefined {\n if (!hydration) {\n return undefined;\n }\n\n return typeof hydration === \"function\"\n ? (hydration as () => HydrationOptions)()\n : hydration;\n}\n\nfunction getRequiredRuntime<\n TProjectionState extends Record<string, any>,\n TCommands extends Record<string, any>,\n>(): CadenzaReactRuntime<TProjectionState, TCommands> {\n const runtime = useContext(CadenzaRuntimeContext);\n if (!runtime) {\n throw new Error(\n \"CadenzaRuntimeProvider is required before using React Cadenza runtime hooks.\",\n );\n }\n\n return runtime as CadenzaReactRuntime<TProjectionState, TCommands>;\n}\n\nexport function createCadenzaReactRuntime<\n TProjectionState extends Record<string, any>,\n TCommands extends Record<string, any> = Record<string, never>,\n>(options: CadenzaReactRuntimeOptions<TProjectionState, TCommands>) {\n const {\n cadenza,\n service,\n bootstrapUrl,\n hydration,\n initialProjectionState,\n commands,\n ...actorOptions\n } = options;\n const browserRuntimeOptions: BrowserRuntimeActorOptions<TProjectionState> = {\n ...actorOptions,\n initialProjectionState,\n service: {\n ...service,\n bootstrap: {\n url: resolveBootstrapUrl(bootstrapUrl),\n },\n hydration: resolveHydrationOptions(hydration),\n },\n };\n const runtime = cadenza.createBrowserRuntimeActor(browserRuntimeOptions);\n let snapshot = createProjectionRuntimeSnapshot(\n runtime.getRuntimeState(),\n initialProjectionState,\n );\n const runtimeCommands = commands\n ? commands({\n cadenza,\n runtime,\n })\n : ({} as TCommands);\n\n return {\n actor: runtime.actor,\n actorHandle: runtime,\n waitUntilReady: runtime.waitUntilReady,\n inquire: runtime.inquire,\n getRuntimeState: runtime.getRuntimeState,\n subscribe: (listener) =>\n runtime.subscribe((runtimeState) => {\n snapshot = createProjectionRuntimeSnapshot(\n runtimeState,\n initialProjectionState,\n );\n listener(runtimeState);\n }),\n getSnapshot: () => snapshot,\n commands: runtimeCommands,\n } satisfies CadenzaReactRuntime<TProjectionState, TCommands>;\n}\n\nexport function CadenzaRuntimeProvider<\n TProjectionState extends Record<string, any>,\n TCommands extends Record<string, any> = Record<string, never>,\n>({ runtime, children }: CadenzaRuntimeProviderProps<TProjectionState, TCommands>) {\n return createElement(CadenzaRuntimeContext.Provider, {\n value: runtime,\n children,\n });\n}\n\nexport function useCadenzaRuntime<\n TRuntime extends CadenzaReactRuntime<any, any> = CadenzaReactRuntime<any, any>,\n>(): TRuntime {\n return getRequiredRuntime<any, any>() as TRuntime;\n}\n\nexport function useCadenzaProjectionState<\n TProjectionState extends Record<string, any> = Record<string, any>,\n>(): CadenzaReactRuntimeState<TProjectionState> {\n const runtime = getRequiredRuntime<TProjectionState, Record<string, any>>();\n return useSyncExternalStore(\n runtime.subscribe,\n runtime.getSnapshot,\n runtime.getSnapshot,\n );\n}\n\nfunction useCadenzaSnapshotSelector<\n TProjectionState extends Record<string, any>,\n TSelected,\n>(\n selector: (snapshot: CadenzaReactRuntimeState<TProjectionState>) => TSelected,\n isEqual: EqualityComparator<TSelected> = DEFAULT_SELECTOR_EQUALITY,\n): TSelected {\n const runtime = getRequiredRuntime<TProjectionState, Record<string, any>>();\n const selectionCacheRef = useRef<{\n hasValue: boolean;\n value: TSelected;\n }>({\n hasValue: false,\n value: undefined as TSelected,\n });\n\n const getSelectedSnapshot = () => {\n const nextValue = selector(runtime.getSnapshot());\n const cached = selectionCacheRef.current;\n if (cached.hasValue && isEqual(cached.value, nextValue)) {\n return cached.value;\n }\n\n selectionCacheRef.current = {\n hasValue: true,\n value: nextValue,\n };\n return nextValue;\n };\n\n return useSyncExternalStore(\n runtime.subscribe,\n getSelectedSnapshot,\n getSelectedSnapshot,\n );\n}\n\nexport function useCadenzaProjectionSelector<\n TProjectionState extends Record<string, any> = Record<string, any>,\n TSelected = TProjectionState,\n>(\n selector: (state: TProjectionState) => TSelected,\n isEqual: EqualityComparator<TSelected> = DEFAULT_SELECTOR_EQUALITY,\n): TSelected {\n return useCadenzaSnapshotSelector<TProjectionState, TSelected>(\n (snapshot) => selector(snapshot.projectionState as TProjectionState),\n isEqual,\n );\n}\n\nexport function useCadenzaRuntimeReady(): boolean {\n return useCadenzaSnapshotSelector((snapshot) => snapshot.ready);\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,140 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createProjectionRuntimeSnapshot
|
|
3
|
+
} from "../chunk-DBCS4XXY.mjs";
|
|
4
|
+
|
|
5
|
+
// src/react/index.ts
|
|
6
|
+
import {
|
|
7
|
+
createContext,
|
|
8
|
+
createElement,
|
|
9
|
+
useContext,
|
|
10
|
+
useRef,
|
|
11
|
+
useSyncExternalStore
|
|
12
|
+
} from "react";
|
|
13
|
+
var DEFAULT_SELECTOR_EQUALITY = Object.is;
|
|
14
|
+
var CadenzaRuntimeContext = createContext(
|
|
15
|
+
null
|
|
16
|
+
);
|
|
17
|
+
function resolveBootstrapUrl(bootstrapUrl) {
|
|
18
|
+
return typeof bootstrapUrl === "function" ? bootstrapUrl() : bootstrapUrl;
|
|
19
|
+
}
|
|
20
|
+
function resolveHydrationOptions(hydration) {
|
|
21
|
+
if (!hydration) {
|
|
22
|
+
return void 0;
|
|
23
|
+
}
|
|
24
|
+
return typeof hydration === "function" ? hydration() : hydration;
|
|
25
|
+
}
|
|
26
|
+
function getRequiredRuntime() {
|
|
27
|
+
const runtime = useContext(CadenzaRuntimeContext);
|
|
28
|
+
if (!runtime) {
|
|
29
|
+
throw new Error(
|
|
30
|
+
"CadenzaRuntimeProvider is required before using React Cadenza runtime hooks."
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
return runtime;
|
|
34
|
+
}
|
|
35
|
+
function createCadenzaReactRuntime(options) {
|
|
36
|
+
const {
|
|
37
|
+
cadenza,
|
|
38
|
+
service,
|
|
39
|
+
bootstrapUrl,
|
|
40
|
+
hydration,
|
|
41
|
+
initialProjectionState,
|
|
42
|
+
commands,
|
|
43
|
+
...actorOptions
|
|
44
|
+
} = options;
|
|
45
|
+
const browserRuntimeOptions = {
|
|
46
|
+
...actorOptions,
|
|
47
|
+
initialProjectionState,
|
|
48
|
+
service: {
|
|
49
|
+
...service,
|
|
50
|
+
bootstrap: {
|
|
51
|
+
url: resolveBootstrapUrl(bootstrapUrl)
|
|
52
|
+
},
|
|
53
|
+
hydration: resolveHydrationOptions(hydration)
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
const runtime = cadenza.createBrowserRuntimeActor(browserRuntimeOptions);
|
|
57
|
+
let snapshot = createProjectionRuntimeSnapshot(
|
|
58
|
+
runtime.getRuntimeState(),
|
|
59
|
+
initialProjectionState
|
|
60
|
+
);
|
|
61
|
+
const runtimeCommands = commands ? commands({
|
|
62
|
+
cadenza,
|
|
63
|
+
runtime
|
|
64
|
+
}) : {};
|
|
65
|
+
return {
|
|
66
|
+
actor: runtime.actor,
|
|
67
|
+
actorHandle: runtime,
|
|
68
|
+
waitUntilReady: runtime.waitUntilReady,
|
|
69
|
+
inquire: runtime.inquire,
|
|
70
|
+
getRuntimeState: runtime.getRuntimeState,
|
|
71
|
+
subscribe: (listener) => runtime.subscribe((runtimeState) => {
|
|
72
|
+
snapshot = createProjectionRuntimeSnapshot(
|
|
73
|
+
runtimeState,
|
|
74
|
+
initialProjectionState
|
|
75
|
+
);
|
|
76
|
+
listener(runtimeState);
|
|
77
|
+
}),
|
|
78
|
+
getSnapshot: () => snapshot,
|
|
79
|
+
commands: runtimeCommands
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
function CadenzaRuntimeProvider({ runtime, children }) {
|
|
83
|
+
return createElement(CadenzaRuntimeContext.Provider, {
|
|
84
|
+
value: runtime,
|
|
85
|
+
children
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
function useCadenzaRuntime() {
|
|
89
|
+
return getRequiredRuntime();
|
|
90
|
+
}
|
|
91
|
+
function useCadenzaProjectionState() {
|
|
92
|
+
const runtime = getRequiredRuntime();
|
|
93
|
+
return useSyncExternalStore(
|
|
94
|
+
runtime.subscribe,
|
|
95
|
+
runtime.getSnapshot,
|
|
96
|
+
runtime.getSnapshot
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
function useCadenzaSnapshotSelector(selector, isEqual = DEFAULT_SELECTOR_EQUALITY) {
|
|
100
|
+
const runtime = getRequiredRuntime();
|
|
101
|
+
const selectionCacheRef = useRef({
|
|
102
|
+
hasValue: false,
|
|
103
|
+
value: void 0
|
|
104
|
+
});
|
|
105
|
+
const getSelectedSnapshot = () => {
|
|
106
|
+
const nextValue = selector(runtime.getSnapshot());
|
|
107
|
+
const cached = selectionCacheRef.current;
|
|
108
|
+
if (cached.hasValue && isEqual(cached.value, nextValue)) {
|
|
109
|
+
return cached.value;
|
|
110
|
+
}
|
|
111
|
+
selectionCacheRef.current = {
|
|
112
|
+
hasValue: true,
|
|
113
|
+
value: nextValue
|
|
114
|
+
};
|
|
115
|
+
return nextValue;
|
|
116
|
+
};
|
|
117
|
+
return useSyncExternalStore(
|
|
118
|
+
runtime.subscribe,
|
|
119
|
+
getSelectedSnapshot,
|
|
120
|
+
getSelectedSnapshot
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
function useCadenzaProjectionSelector(selector, isEqual = DEFAULT_SELECTOR_EQUALITY) {
|
|
124
|
+
return useCadenzaSnapshotSelector(
|
|
125
|
+
(snapshot) => selector(snapshot.projectionState),
|
|
126
|
+
isEqual
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
function useCadenzaRuntimeReady() {
|
|
130
|
+
return useCadenzaSnapshotSelector((snapshot) => snapshot.ready);
|
|
131
|
+
}
|
|
132
|
+
export {
|
|
133
|
+
CadenzaRuntimeProvider,
|
|
134
|
+
createCadenzaReactRuntime,
|
|
135
|
+
useCadenzaProjectionSelector,
|
|
136
|
+
useCadenzaProjectionState,
|
|
137
|
+
useCadenzaRuntime,
|
|
138
|
+
useCadenzaRuntimeReady
|
|
139
|
+
};
|
|
140
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/react/index.ts"],"sourcesContent":["import {\n createContext,\n createElement,\n useContext,\n useRef,\n useSyncExternalStore,\n} from \"react\";\nimport type { ReactNode } from \"react\";\n\nimport type CadenzaService from \"../Cadenza\";\nimport type {\n BrowserRuntimeActorHandle,\n BrowserRuntimeActorOptions,\n BrowserRuntimeProjectionBinding,\n BrowserRuntimeServiceOptions,\n} from \"../frontend/createBrowserRuntimeActor\";\nimport {\n createProjectionRuntimeSnapshot,\n type ProjectionRuntimeSnapshot,\n} from \"../frontend/runtimeProjectionState\";\nimport type { HydrationOptions } from \"../utils/bootstrap\";\n\nexport interface CadenzaReactRuntimeState<\n TProjectionState extends Record<string, any> = Record<string, any>,\n> extends ProjectionRuntimeSnapshot<TProjectionState> {}\n\nexport interface CadenzaReactRuntime<\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 getSnapshot: () => CadenzaReactRuntimeState<TProjectionState>;\n commands: TCommands;\n}\n\nexport interface CadenzaReactRuntimeOptions<\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 | (() => string);\n hydration?: HydrationOptions | (() => HydrationOptions);\n initialProjectionState: TProjectionState | (() => TProjectionState);\n commands?: (context: {\n cadenza: typeof CadenzaService;\n runtime: BrowserRuntimeActorHandle<TProjectionState>;\n }) => TCommands;\n}\n\nexport interface CadenzaRuntimeProviderProps<\n TProjectionState extends Record<string, any> = Record<string, any>,\n TCommands extends Record<string, any> = Record<string, never>,\n> {\n runtime: CadenzaReactRuntime<TProjectionState, TCommands>;\n children?: ReactNode;\n}\n\ntype EqualityComparator<TSelected> = (\n previous: TSelected,\n next: TSelected,\n) => boolean;\n\nconst DEFAULT_SELECTOR_EQUALITY = Object.is;\nconst CadenzaRuntimeContext = createContext<CadenzaReactRuntime<any, any> | null>(\n null,\n);\n\nfunction resolveBootstrapUrl(bootstrapUrl: string | (() => string)): string {\n return typeof bootstrapUrl === \"function\" ? bootstrapUrl() : bootstrapUrl;\n}\n\nfunction resolveHydrationOptions(\n hydration: HydrationOptions | (() => HydrationOptions) | undefined,\n): HydrationOptions | undefined {\n if (!hydration) {\n return undefined;\n }\n\n return typeof hydration === \"function\"\n ? (hydration as () => HydrationOptions)()\n : hydration;\n}\n\nfunction getRequiredRuntime<\n TProjectionState extends Record<string, any>,\n TCommands extends Record<string, any>,\n>(): CadenzaReactRuntime<TProjectionState, TCommands> {\n const runtime = useContext(CadenzaRuntimeContext);\n if (!runtime) {\n throw new Error(\n \"CadenzaRuntimeProvider is required before using React Cadenza runtime hooks.\",\n );\n }\n\n return runtime as CadenzaReactRuntime<TProjectionState, TCommands>;\n}\n\nexport function createCadenzaReactRuntime<\n TProjectionState extends Record<string, any>,\n TCommands extends Record<string, any> = Record<string, never>,\n>(options: CadenzaReactRuntimeOptions<TProjectionState, TCommands>) {\n const {\n cadenza,\n service,\n bootstrapUrl,\n hydration,\n initialProjectionState,\n commands,\n ...actorOptions\n } = options;\n const browserRuntimeOptions: BrowserRuntimeActorOptions<TProjectionState> = {\n ...actorOptions,\n initialProjectionState,\n service: {\n ...service,\n bootstrap: {\n url: resolveBootstrapUrl(bootstrapUrl),\n },\n hydration: resolveHydrationOptions(hydration),\n },\n };\n const runtime = cadenza.createBrowserRuntimeActor(browserRuntimeOptions);\n let snapshot = createProjectionRuntimeSnapshot(\n runtime.getRuntimeState(),\n initialProjectionState,\n );\n const runtimeCommands = commands\n ? commands({\n cadenza,\n runtime,\n })\n : ({} as TCommands);\n\n return {\n actor: runtime.actor,\n actorHandle: runtime,\n waitUntilReady: runtime.waitUntilReady,\n inquire: runtime.inquire,\n getRuntimeState: runtime.getRuntimeState,\n subscribe: (listener) =>\n runtime.subscribe((runtimeState) => {\n snapshot = createProjectionRuntimeSnapshot(\n runtimeState,\n initialProjectionState,\n );\n listener(runtimeState);\n }),\n getSnapshot: () => snapshot,\n commands: runtimeCommands,\n } satisfies CadenzaReactRuntime<TProjectionState, TCommands>;\n}\n\nexport function CadenzaRuntimeProvider<\n TProjectionState extends Record<string, any>,\n TCommands extends Record<string, any> = Record<string, never>,\n>({ runtime, children }: CadenzaRuntimeProviderProps<TProjectionState, TCommands>) {\n return createElement(CadenzaRuntimeContext.Provider, {\n value: runtime,\n children,\n });\n}\n\nexport function useCadenzaRuntime<\n TRuntime extends CadenzaReactRuntime<any, any> = CadenzaReactRuntime<any, any>,\n>(): TRuntime {\n return getRequiredRuntime<any, any>() as TRuntime;\n}\n\nexport function useCadenzaProjectionState<\n TProjectionState extends Record<string, any> = Record<string, any>,\n>(): CadenzaReactRuntimeState<TProjectionState> {\n const runtime = getRequiredRuntime<TProjectionState, Record<string, any>>();\n return useSyncExternalStore(\n runtime.subscribe,\n runtime.getSnapshot,\n runtime.getSnapshot,\n );\n}\n\nfunction useCadenzaSnapshotSelector<\n TProjectionState extends Record<string, any>,\n TSelected,\n>(\n selector: (snapshot: CadenzaReactRuntimeState<TProjectionState>) => TSelected,\n isEqual: EqualityComparator<TSelected> = DEFAULT_SELECTOR_EQUALITY,\n): TSelected {\n const runtime = getRequiredRuntime<TProjectionState, Record<string, any>>();\n const selectionCacheRef = useRef<{\n hasValue: boolean;\n value: TSelected;\n }>({\n hasValue: false,\n value: undefined as TSelected,\n });\n\n const getSelectedSnapshot = () => {\n const nextValue = selector(runtime.getSnapshot());\n const cached = selectionCacheRef.current;\n if (cached.hasValue && isEqual(cached.value, nextValue)) {\n return cached.value;\n }\n\n selectionCacheRef.current = {\n hasValue: true,\n value: nextValue,\n };\n return nextValue;\n };\n\n return useSyncExternalStore(\n runtime.subscribe,\n getSelectedSnapshot,\n getSelectedSnapshot,\n );\n}\n\nexport function useCadenzaProjectionSelector<\n TProjectionState extends Record<string, any> = Record<string, any>,\n TSelected = TProjectionState,\n>(\n selector: (state: TProjectionState) => TSelected,\n isEqual: EqualityComparator<TSelected> = DEFAULT_SELECTOR_EQUALITY,\n): TSelected {\n return useCadenzaSnapshotSelector<TProjectionState, TSelected>(\n (snapshot) => selector(snapshot.projectionState as TProjectionState),\n isEqual,\n );\n}\n\nexport function useCadenzaRuntimeReady(): boolean {\n return useCadenzaSnapshotSelector((snapshot) => snapshot.ready);\n}\n\nexport type { BrowserRuntimeProjectionBinding };\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ShallowRef, ComputedRef, App } from 'vue';
|
|
2
|
+
import { i as BrowserRuntimeActorHandle, j as BrowserRuntimeActorOptions, C as CadenzaService, m as BrowserRuntimeServiceOptions, H as HydrationOptions } from '../Cadenza-DCMs7q97.mjs';
|
|
3
|
+
export { l as BrowserRuntimeProjectionBinding } from '../Cadenza-DCMs7q97.mjs';
|
|
4
|
+
import { P as ProjectionRuntimeSnapshot } from '../runtimeProjectionState-CitON2P3.mjs';
|
|
5
|
+
import '@cadenza.io/core';
|
|
6
|
+
|
|
7
|
+
interface CadenzaVueRuntimeState<TProjectionState extends Record<string, any> = Record<string, any>> extends ProjectionRuntimeSnapshot<TProjectionState> {
|
|
8
|
+
}
|
|
9
|
+
interface CadenzaVueRuntime<TProjectionState extends Record<string, any> = Record<string, any>, TCommands extends Record<string, any> = Record<string, never>> {
|
|
10
|
+
actor: BrowserRuntimeActorHandle<TProjectionState>["actor"];
|
|
11
|
+
actorHandle: BrowserRuntimeActorHandle<TProjectionState>;
|
|
12
|
+
waitUntilReady: BrowserRuntimeActorHandle<TProjectionState>["waitUntilReady"];
|
|
13
|
+
inquire: BrowserRuntimeActorHandle<TProjectionState>["inquire"];
|
|
14
|
+
getRuntimeState: BrowserRuntimeActorHandle<TProjectionState>["getRuntimeState"];
|
|
15
|
+
subscribe: BrowserRuntimeActorHandle<TProjectionState>["subscribe"];
|
|
16
|
+
snapshot: Readonly<ShallowRef<CadenzaVueRuntimeState<TProjectionState>>>;
|
|
17
|
+
projectionState: ComputedRef<TProjectionState>;
|
|
18
|
+
ready: ComputedRef<boolean>;
|
|
19
|
+
commands: TCommands;
|
|
20
|
+
install: (app: App) => void;
|
|
21
|
+
dispose: () => void;
|
|
22
|
+
}
|
|
23
|
+
interface CadenzaVueRuntimeOptions<TProjectionState extends Record<string, any> = Record<string, any>, TCommands extends Record<string, any> = Record<string, never>> extends Omit<BrowserRuntimeActorOptions<TProjectionState>, "service" | "initialProjectionState"> {
|
|
24
|
+
cadenza: typeof CadenzaService;
|
|
25
|
+
service: Omit<BrowserRuntimeServiceOptions, "bootstrap" | "hydration">;
|
|
26
|
+
bootstrapUrl: string | (() => string);
|
|
27
|
+
hydration?: HydrationOptions | (() => HydrationOptions);
|
|
28
|
+
initialProjectionState: TProjectionState | (() => TProjectionState);
|
|
29
|
+
commands?: (context: {
|
|
30
|
+
cadenza: typeof CadenzaService;
|
|
31
|
+
runtime: BrowserRuntimeActorHandle<TProjectionState>;
|
|
32
|
+
}) => TCommands;
|
|
33
|
+
}
|
|
34
|
+
type EqualityComparator<TSelected> = (previous: TSelected, next: TSelected) => boolean;
|
|
35
|
+
declare function createCadenzaVueRuntime<TProjectionState extends Record<string, any>, TCommands extends Record<string, any> = Record<string, never>>(options: CadenzaVueRuntimeOptions<TProjectionState, TCommands>): CadenzaVueRuntime<TProjectionState, TCommands>;
|
|
36
|
+
declare function useCadenzaRuntime<TRuntime extends CadenzaVueRuntime<any, any> = CadenzaVueRuntime<any, any>>(): TRuntime;
|
|
37
|
+
declare function useCadenzaRuntimeState<TProjectionState extends Record<string, any> = Record<string, any>>(): Readonly<ShallowRef<CadenzaVueRuntimeState<TProjectionState>>>;
|
|
38
|
+
declare function useCadenzaProjectionState<TProjectionState extends Record<string, any> = Record<string, any>>(): ComputedRef<TProjectionState>;
|
|
39
|
+
declare function useCadenzaProjectionSelector<TProjectionState extends Record<string, any> = Record<string, any>, TSelected = TProjectionState>(selector: (state: TProjectionState) => TSelected, isEqual?: EqualityComparator<TSelected>): Readonly<ShallowRef<TSelected>>;
|
|
40
|
+
declare function useCadenzaRuntimeReady(): ComputedRef<boolean>;
|
|
41
|
+
|
|
42
|
+
declare module "vue" {
|
|
43
|
+
interface ComponentCustomProperties {
|
|
44
|
+
$cadenzaRuntime: CadenzaVueRuntime<any, any>;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export { type CadenzaVueRuntime, type CadenzaVueRuntimeOptions, type CadenzaVueRuntimeState, createCadenzaVueRuntime, useCadenzaProjectionSelector, useCadenzaProjectionState, useCadenzaRuntime, useCadenzaRuntimeReady, useCadenzaRuntimeState };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ShallowRef, ComputedRef, App } from 'vue';
|
|
2
|
+
import { i as BrowserRuntimeActorHandle, j as BrowserRuntimeActorOptions, C as CadenzaService, m as BrowserRuntimeServiceOptions, H as HydrationOptions } from '../Cadenza-DCMs7q97.js';
|
|
3
|
+
export { l as BrowserRuntimeProjectionBinding } from '../Cadenza-DCMs7q97.js';
|
|
4
|
+
import { P as ProjectionRuntimeSnapshot } from '../runtimeProjectionState-CitON2P3.js';
|
|
5
|
+
import '@cadenza.io/core';
|
|
6
|
+
|
|
7
|
+
interface CadenzaVueRuntimeState<TProjectionState extends Record<string, any> = Record<string, any>> extends ProjectionRuntimeSnapshot<TProjectionState> {
|
|
8
|
+
}
|
|
9
|
+
interface CadenzaVueRuntime<TProjectionState extends Record<string, any> = Record<string, any>, TCommands extends Record<string, any> = Record<string, never>> {
|
|
10
|
+
actor: BrowserRuntimeActorHandle<TProjectionState>["actor"];
|
|
11
|
+
actorHandle: BrowserRuntimeActorHandle<TProjectionState>;
|
|
12
|
+
waitUntilReady: BrowserRuntimeActorHandle<TProjectionState>["waitUntilReady"];
|
|
13
|
+
inquire: BrowserRuntimeActorHandle<TProjectionState>["inquire"];
|
|
14
|
+
getRuntimeState: BrowserRuntimeActorHandle<TProjectionState>["getRuntimeState"];
|
|
15
|
+
subscribe: BrowserRuntimeActorHandle<TProjectionState>["subscribe"];
|
|
16
|
+
snapshot: Readonly<ShallowRef<CadenzaVueRuntimeState<TProjectionState>>>;
|
|
17
|
+
projectionState: ComputedRef<TProjectionState>;
|
|
18
|
+
ready: ComputedRef<boolean>;
|
|
19
|
+
commands: TCommands;
|
|
20
|
+
install: (app: App) => void;
|
|
21
|
+
dispose: () => void;
|
|
22
|
+
}
|
|
23
|
+
interface CadenzaVueRuntimeOptions<TProjectionState extends Record<string, any> = Record<string, any>, TCommands extends Record<string, any> = Record<string, never>> extends Omit<BrowserRuntimeActorOptions<TProjectionState>, "service" | "initialProjectionState"> {
|
|
24
|
+
cadenza: typeof CadenzaService;
|
|
25
|
+
service: Omit<BrowserRuntimeServiceOptions, "bootstrap" | "hydration">;
|
|
26
|
+
bootstrapUrl: string | (() => string);
|
|
27
|
+
hydration?: HydrationOptions | (() => HydrationOptions);
|
|
28
|
+
initialProjectionState: TProjectionState | (() => TProjectionState);
|
|
29
|
+
commands?: (context: {
|
|
30
|
+
cadenza: typeof CadenzaService;
|
|
31
|
+
runtime: BrowserRuntimeActorHandle<TProjectionState>;
|
|
32
|
+
}) => TCommands;
|
|
33
|
+
}
|
|
34
|
+
type EqualityComparator<TSelected> = (previous: TSelected, next: TSelected) => boolean;
|
|
35
|
+
declare function createCadenzaVueRuntime<TProjectionState extends Record<string, any>, TCommands extends Record<string, any> = Record<string, never>>(options: CadenzaVueRuntimeOptions<TProjectionState, TCommands>): CadenzaVueRuntime<TProjectionState, TCommands>;
|
|
36
|
+
declare function useCadenzaRuntime<TRuntime extends CadenzaVueRuntime<any, any> = CadenzaVueRuntime<any, any>>(): TRuntime;
|
|
37
|
+
declare function useCadenzaRuntimeState<TProjectionState extends Record<string, any> = Record<string, any>>(): Readonly<ShallowRef<CadenzaVueRuntimeState<TProjectionState>>>;
|
|
38
|
+
declare function useCadenzaProjectionState<TProjectionState extends Record<string, any> = Record<string, any>>(): ComputedRef<TProjectionState>;
|
|
39
|
+
declare function useCadenzaProjectionSelector<TProjectionState extends Record<string, any> = Record<string, any>, TSelected = TProjectionState>(selector: (state: TProjectionState) => TSelected, isEqual?: EqualityComparator<TSelected>): Readonly<ShallowRef<TSelected>>;
|
|
40
|
+
declare function useCadenzaRuntimeReady(): ComputedRef<boolean>;
|
|
41
|
+
|
|
42
|
+
declare module "vue" {
|
|
43
|
+
interface ComponentCustomProperties {
|
|
44
|
+
$cadenzaRuntime: CadenzaVueRuntime<any, any>;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export { type CadenzaVueRuntime, type CadenzaVueRuntimeOptions, type CadenzaVueRuntimeState, createCadenzaVueRuntime, useCadenzaProjectionSelector, useCadenzaProjectionState, useCadenzaRuntime, useCadenzaRuntimeReady, useCadenzaRuntimeState };
|