@cadenza.io/service 2.18.3 → 2.19.1
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 +12256 -4810
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/index.mjs +14687 -7257
- 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 -22953
- package/dist/index.d.ts +244 -22953
- package/dist/index.js +19425 -10960
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +19308 -10894
- 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 +62 -6
|
@@ -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 };
|