@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,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,6 @@
1
+ interface ProjectionRuntimeSnapshot<TProjectionState extends Record<string, any> = Record<string, any>> {
2
+ ready: boolean;
3
+ projectionState: TProjectionState;
4
+ }
5
+
6
+ export type { ProjectionRuntimeSnapshot as P };
@@ -0,0 +1,6 @@
1
+ interface ProjectionRuntimeSnapshot<TProjectionState extends Record<string, any> = Record<string, any>> {
2
+ ready: boolean;
3
+ projectionState: TProjectionState;
4
+ }
5
+
6
+ export type { ProjectionRuntimeSnapshot as P };
@@ -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 };