@pygmalionjs/pygmalion 0.6.35 → 0.7.2
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/LICENSE +190 -0
- package/README.ko.md +309 -28
- package/README.md +37 -16
- package/dist-lib/CameraLayer-D2wrEPwG.js +415 -0
- package/dist-lib/frameLodRuntime-CU0IYaSu.js +272 -0
- package/dist-lib/pygmalion.js +11615 -15973
- package/dist-lib/routePreviewStatus-DTr-UJhV.js +64 -0
- package/dist-lib/{FrozenRoutePreview-BbF5Ov5K.js → runtime-DRkTU9eq.js} +9515 -5306
- package/dist-lib/testing.js +46 -6
- package/dist-lib/types/{App.d.ts → EditorShell.d.ts} +1 -1
- package/dist-lib/types/canvas/CameraLayer.d.ts +2 -1
- package/dist-lib/types/canvas/FrameLabelBanner.d.ts +1 -1
- package/dist-lib/types/canvas/FrameView.d.ts +1 -1
- package/dist-lib/types/canvas/FrozenRoutePreview.d.ts +1 -1
- package/dist-lib/types/canvas/SectionBoxes.d.ts +2 -1
- package/dist-lib/types/canvas/ShadowRoutePreview.d.ts +1 -1
- package/dist-lib/types/contract/errors.d.ts +30 -0
- package/dist-lib/types/contract/index.d.ts +5 -0
- package/dist-lib/types/contract/memoryTransport.d.ts +19 -0
- package/dist-lib/types/contract/paths.d.ts +57 -0
- package/dist-lib/types/contract/transport.d.ts +69 -0
- package/dist-lib/types/contract/types.d.ts +150 -0
- package/dist-lib/types/contract/validate.d.ts +15 -0
- package/dist-lib/types/contract/viteTransport.d.ts +10 -0
- package/dist-lib/types/core/context.d.ts +12 -0
- package/dist-lib/types/core/debug.d.ts +187 -0
- package/dist-lib/types/core/defaultRuntime.d.ts +3 -0
- package/dist-lib/types/core/hostBindings.d.ts +90 -0
- package/dist-lib/types/core/runtime.d.ts +36 -0
- package/dist-lib/types/core/runtimeContext.d.ts +13 -0
- package/dist-lib/types/editor/flowSessionScheduler.d.ts +21 -7
- package/dist-lib/types/editor/framePreviewKeys.d.ts +10 -10
- package/dist-lib/types/editor/host.d.ts +31 -26
- package/dist-lib/types/editor/previewBootstrap.d.ts +5 -15
- package/dist-lib/types/editor/previewCaptureProgress.d.ts +7 -2
- package/dist-lib/types/editor/projectRuntime.d.ts +11 -98
- package/dist-lib/types/editor/revisionCatalog.d.ts +8 -9
- package/dist-lib/types/editor/scenarioCoverage.d.ts +2 -1
- package/dist-lib/types/editor/store.d.ts +17 -2
- package/dist-lib/types/editor/storyboardComposition.d.ts +1 -5
- package/dist-lib/types/editor/storyboardDiscovery.d.ts +6 -16
- package/dist-lib/types/editor/storyboardEnvironment.d.ts +2 -2
- package/dist-lib/types/editor/variantPrefetch.d.ts +3 -2
- package/dist-lib/types/editor/visualQa.d.ts +7 -2
- package/dist-lib/types/lib.d.ts +25 -204
- package/dist-lib/types/shell/ComponentStateControls.d.ts +1 -1
- package/dist-lib/types/testing.d.ts +5 -1
- package/node/component-branches.mjs +3 -3
- package/node/contract.d.mts +63 -0
- package/node/contract.mjs +175 -0
- package/node/design-session.mjs +4 -2
- package/node/dev-mirror.mjs +6 -3
- package/node/inspect-plugin.mjs +3 -2
- package/node/preview-artifact-plugin.mjs +13 -16
- package/node/preview-artifact-store.mjs +4 -2
- package/node/qa-capture-plugin.mjs +3 -2
- package/node/storyboard-canonical.mjs +2 -2
- package/node/storyboard-capture-runtime.mjs +2 -2
- package/node/storyboard-environment.mjs +9 -6
- package/node/vite.mjs +2 -13
- package/package.json +24 -4
- package/storyboard.d.ts +11 -0
|
@@ -1,109 +1,22 @@
|
|
|
1
|
+
import type { EditorTransport } from '../contract/transport.js';
|
|
2
|
+
import type { PygmalionDesignSessionStatus, PygmalionDevMirrorStatus, PygmalionRevertResult, PygmalionSourceRefs } from '../contract/types.js';
|
|
1
3
|
import type { InspectApplyPayload } from './inspect';
|
|
2
4
|
import type { InspectApplyResult, InspectImpactResult, InspectPreviewResult } from './host';
|
|
3
|
-
export type PygmalionIntegrationState
|
|
4
|
-
export interface PygmalionDevMirrorStatus {
|
|
5
|
-
/** 'drifted' means another server moved the shared mirror checkout; a refresh resyncs it. */
|
|
6
|
-
state: 'idle' | 'syncing' | 'ready' | 'error' | 'drifted';
|
|
7
|
-
commit: string | null;
|
|
8
|
-
shortCommit: string | null;
|
|
9
|
-
/** Git ref the mirror is tracking, or null when it follows the source branch. */
|
|
10
|
-
sourceRef: string | null;
|
|
11
|
-
syncedAt: string | null;
|
|
12
|
-
updated: boolean;
|
|
13
|
-
warning: string | null;
|
|
14
|
-
error: string | null;
|
|
15
|
-
appOrigin: string | null;
|
|
16
|
-
/** Present when the proxy child is absent or serves another ref's checkout. */
|
|
17
|
-
runtimeDrift?: {
|
|
18
|
-
expectedAppRoot: string;
|
|
19
|
-
actualAppRoot: string | null;
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
/** One revision the mirror can be repointed at. */
|
|
23
|
-
export interface PygmalionSourceRef {
|
|
24
|
-
name: string;
|
|
25
|
-
/** Abbreviated commit used for compact branch-tip labels. */
|
|
26
|
-
commit: string;
|
|
27
|
-
/** Full immutable object id used for preview and artifact identity. */
|
|
28
|
-
sourceRevision?: string;
|
|
29
|
-
fullName: string;
|
|
30
|
-
kind: 'local' | 'remote';
|
|
31
|
-
}
|
|
32
|
-
/** Revisions available to `switchSource`, listed from the mirror repository. */
|
|
33
|
-
export interface PygmalionSourceRefs {
|
|
34
|
-
refs: readonly PygmalionSourceRef[];
|
|
35
|
-
/** Revision followed when none is pinned. */
|
|
36
|
-
defaultRef: string | null;
|
|
37
|
-
/** Ref that renders uncommitted work. */
|
|
38
|
-
worktreeRef: string | null;
|
|
39
|
-
}
|
|
40
|
-
export interface PygmalionVisualOperation {
|
|
41
|
-
id: string;
|
|
42
|
-
revision: number;
|
|
43
|
-
kind: 'visual';
|
|
44
|
-
createdAt: string;
|
|
45
|
-
commitSha: string;
|
|
46
|
-
files: string[];
|
|
47
|
-
integrationState: PygmalionIntegrationState;
|
|
48
|
-
}
|
|
49
|
-
export interface PygmalionVisualRevertOperation {
|
|
50
|
-
id: string;
|
|
51
|
-
revision: number;
|
|
52
|
-
kind: 'visual-revert';
|
|
53
|
-
createdAt: string;
|
|
54
|
-
commitSha: string;
|
|
55
|
-
revertsOperationId: string;
|
|
56
|
-
revertsRevision: number;
|
|
57
|
-
revertsCommitSha: string;
|
|
58
|
-
recordedCommitSha: string;
|
|
59
|
-
files: string[];
|
|
60
|
-
integrationState: PygmalionIntegrationState;
|
|
61
|
-
}
|
|
62
|
-
export type PygmalionSessionOperation = PygmalionVisualOperation | PygmalionVisualRevertOperation;
|
|
63
|
-
export interface PygmalionDesignSessionStatus {
|
|
64
|
-
id: string;
|
|
65
|
-
createdAt: string;
|
|
66
|
-
updatedAt: string;
|
|
67
|
-
createdFromSha: string;
|
|
68
|
-
baseDevSha: string;
|
|
69
|
-
branchName: string | null;
|
|
70
|
-
headSha: string | null;
|
|
71
|
-
revision: number;
|
|
72
|
-
integration: {
|
|
73
|
-
state: PygmalionIntegrationState;
|
|
74
|
-
latestDevSha: string;
|
|
75
|
-
checkedAt: string;
|
|
76
|
-
affectedFiles: string[];
|
|
77
|
-
conflictFiles: string[];
|
|
78
|
-
error?: string;
|
|
79
|
-
};
|
|
80
|
-
lastOperation: PygmalionSessionOperation | null;
|
|
81
|
-
canRevert: boolean;
|
|
82
|
-
lastRevertableOperation: PygmalionVisualOperation | null;
|
|
83
|
-
lastRevert: PygmalionVisualRevertOperation | null;
|
|
84
|
-
appOrigin: string | null;
|
|
85
|
-
previewError: string | null;
|
|
86
|
-
}
|
|
87
|
-
export interface PygmalionRevertResult {
|
|
88
|
-
reverted: true;
|
|
89
|
-
operation: PygmalionVisualRevertOperation;
|
|
90
|
-
session: PygmalionDesignSessionStatus;
|
|
91
|
-
}
|
|
92
|
-
export interface PygmalionProjectEndpoints {
|
|
93
|
-
mirror: string;
|
|
94
|
-
sessions: string;
|
|
95
|
-
inspect: string;
|
|
96
|
-
}
|
|
5
|
+
export type { PygmalionDesignSessionStatus, PygmalionDevMirrorStatus, PygmalionIntegrationState, PygmalionRevertResult, PygmalionSessionOperation, PygmalionSourceRef, PygmalionSourceRefs, PygmalionVisualOperation, PygmalionVisualRevertOperation, } from '../contract/types.js';
|
|
97
6
|
export interface PygmalionProjectRuntimeOptions {
|
|
98
|
-
|
|
7
|
+
/**
|
|
8
|
+
* The transport every request goes through. Defaults to the enclosing
|
|
9
|
+
* editor runtime's transport when the hook renders inside one, and to a
|
|
10
|
+
* same-origin Vite transport otherwise. Pass the same transport to
|
|
11
|
+
* `createEditorRuntime` so the editor and this hook talk to one service.
|
|
12
|
+
*/
|
|
13
|
+
transport?: EditorTransport;
|
|
99
14
|
sessionId?: string;
|
|
100
15
|
sessionStorageKey?: string;
|
|
101
16
|
autoStart?: boolean;
|
|
102
|
-
fetcher?: typeof fetch;
|
|
103
17
|
formatApplyMessage?: (session: PygmalionDesignSessionStatus, applied: number) => string | undefined;
|
|
104
|
-
/** Compare the canonical impact screen before and after application using the
|
|
18
|
+
/** Compare the canonical impact screen before and after application using the transport's QA capture service. */
|
|
105
19
|
visualQa?: {
|
|
106
|
-
endpoint?: string;
|
|
107
20
|
eligibleFrameIds: readonly string[];
|
|
108
21
|
};
|
|
109
22
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { DesignComponentConnectionDef } from './componentConnections';
|
|
2
|
+
import { TransportError } from '../contract/errors.js';
|
|
3
|
+
import type { EditorTransport } from '../contract/transport.js';
|
|
2
4
|
import type { DesignCodegenProjectManifest } from './designCompiler';
|
|
3
5
|
import type { DesignImportAsset, DesignImportInitialPage, DesignScenarioSource } from './designImport';
|
|
4
6
|
import type { FrameBranchKindDef, FrameLabelLabels } from './frameLabels';
|
|
@@ -88,27 +90,24 @@ export type PygmalionRevisionCatalogValidation = {
|
|
|
88
90
|
*/
|
|
89
91
|
export declare function validatePygmalionRevisionCatalog(value: unknown, expectation?: PygmalionRevisionCatalogExpectation): PygmalionRevisionCatalogValidation;
|
|
90
92
|
export interface PygmalionRevisionCatalogLoadOptions {
|
|
91
|
-
endpoint: string;
|
|
92
93
|
namespace: string;
|
|
93
94
|
sourceRevision: string;
|
|
94
95
|
signal?: AbortSignal;
|
|
95
|
-
fetcher?: typeof fetch;
|
|
96
96
|
}
|
|
97
|
-
/** A non-success
|
|
98
|
-
export declare class PygmalionRevisionCatalogHttpError extends
|
|
97
|
+
/** A non-success response from the exact revision catalog endpoint. */
|
|
98
|
+
export declare class PygmalionRevisionCatalogHttpError extends TransportError {
|
|
99
99
|
readonly status: number;
|
|
100
|
-
readonly code: string;
|
|
101
|
-
readonly retryable: boolean;
|
|
102
|
-
readonly preparing: boolean;
|
|
103
100
|
constructor(options: {
|
|
104
101
|
status: number;
|
|
105
102
|
code: string;
|
|
106
103
|
retryable?: boolean;
|
|
107
104
|
preparing?: boolean;
|
|
105
|
+
payload?: unknown;
|
|
106
|
+
cause?: unknown;
|
|
108
107
|
});
|
|
109
108
|
}
|
|
110
|
-
/** Fetches and validates one exact revision catalog
|
|
111
|
-
export declare function loadPygmalionRevisionCatalog(
|
|
109
|
+
/** Fetches and validates one exact revision catalog through the transport. */
|
|
110
|
+
export declare function loadPygmalionRevisionCatalog(transport: EditorTransport, { namespace, sourceRevision, signal }: PygmalionRevisionCatalogLoadOptions): Promise<PygmalionRevisionCatalog>;
|
|
112
111
|
export type PygmalionRevisionCatalogRequestResult = {
|
|
113
112
|
status: 'accepted';
|
|
114
113
|
catalog: PygmalionRevisionCatalog;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { RegistryPropValue } from './registry';
|
|
2
|
+
import type { EditorStore } from './store';
|
|
2
3
|
export type ScenarioCoverageClaim = {
|
|
3
4
|
scenarioId: string;
|
|
4
5
|
kind: 'frame';
|
|
@@ -155,7 +156,7 @@ export interface ApplyCoverageResult {
|
|
|
155
156
|
* edit the imported tree, and component-state claims flip the registry prop
|
|
156
157
|
* on the imported instance.
|
|
157
158
|
*/
|
|
158
|
-
export declare function applyScenarioCoverageClaim(claim: ScenarioCoverageClaim): ApplyCoverageResult;
|
|
159
|
+
export declare function applyScenarioCoverageClaim(editor: EditorStore, claim: ScenarioCoverageClaim): ApplyCoverageResult;
|
|
159
160
|
export declare function setScenarioCoverageClaims(claims: readonly ScenarioCoverageClaim[]): void;
|
|
160
161
|
export declare function getScenarioCoverageClaims(): readonly ScenarioCoverageClaim[];
|
|
161
162
|
/** Claims verified on one screen — the right panel's coverage section. */
|
|
@@ -337,7 +337,21 @@ export type CanvasObjectSelection = {
|
|
|
337
337
|
kind: 'section';
|
|
338
338
|
name: string;
|
|
339
339
|
} | null;
|
|
340
|
+
/**
|
|
341
|
+
* What the store needs from its host: read live, never copied, so a value the
|
|
342
|
+
* host installs later (an origin once the mirror is up, a preview-open
|
|
343
|
+
* callback from props) is seen on the next read. A runtime's `HostBindings`
|
|
344
|
+
* satisfies it; a store created on its own gets a detached host.
|
|
345
|
+
*/
|
|
346
|
+
export interface EditorStoreHost {
|
|
347
|
+
readonly appOrigin: string;
|
|
348
|
+
readonly previewRevision: string;
|
|
349
|
+
readonly flowCanvas: string;
|
|
350
|
+
readonly onPreviewOpenChange: ((open: boolean) => void) | null;
|
|
351
|
+
}
|
|
340
352
|
export declare class EditorStore {
|
|
353
|
+
/** Host bindings this store reads; excluded from MobX so the bindings object stays plain. */
|
|
354
|
+
readonly host: EditorStoreHost;
|
|
341
355
|
/** Multi-page — each page has an independent tree. */
|
|
342
356
|
pages: PageModel[];
|
|
343
357
|
activePageId: string;
|
|
@@ -492,7 +506,9 @@ export declare class EditorStore {
|
|
|
492
506
|
private previewMotionStates;
|
|
493
507
|
private contentLayoutScheduled;
|
|
494
508
|
private contentLayoutCanvases;
|
|
495
|
-
constructor();
|
|
509
|
+
constructor(host?: EditorStoreHost);
|
|
510
|
+
/** Releases the reactions this store owns. A runtime calls it when its editor unmounts. */
|
|
511
|
+
dispose(): void;
|
|
496
512
|
get activePage(): PageModel;
|
|
497
513
|
get selectedFrame(): PageModel | null;
|
|
498
514
|
get selectedSection(): SectionRect | null;
|
|
@@ -1014,5 +1030,4 @@ export declare class EditorStore {
|
|
|
1014
1030
|
}
|
|
1015
1031
|
export declare function findNode(from: NodeModel, id: string): NodeModel | null;
|
|
1016
1032
|
export declare function findParent(from: NodeModel, id: string): NodeModel | null;
|
|
1017
|
-
export declare const editor: EditorStore;
|
|
1018
1033
|
export {};
|
|
@@ -60,11 +60,7 @@ export interface StoryboardCompositionModel {
|
|
|
60
60
|
*/
|
|
61
61
|
unplacedFrameIds: readonly string[];
|
|
62
62
|
}
|
|
63
|
-
|
|
64
|
-
* Mirror of PYGMALION_SOURCE_USAGE_CONTROL in node/storyboard-environment.mjs;
|
|
65
|
-
* a test pins the pair so the browser cannot drift from the server.
|
|
66
|
-
*/
|
|
67
|
-
export declare const SOURCE_USAGE_CONTROL = "/__pygmalion-storyboard/source-usage";
|
|
63
|
+
export declare const SOURCE_USAGE_CONTROL: "/__pygmalion-storyboard/source-usage";
|
|
68
64
|
/**
|
|
69
65
|
* Reads what a frame rendered out of its imported tree. Only frames that have
|
|
70
66
|
* been imported carry stamps, which is why the static graph still matters.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { DesignImportAsset, DesignImportKind, DesignScreenCase, StoryboardEnvironment } from './designImport';
|
|
2
|
+
import type { EditorTransport } from '../contract/transport.js';
|
|
2
3
|
import { type StoryboardGraph, type StoryboardDefinition } from './storyboardGraph';
|
|
3
4
|
export interface StoryboardDiscoveryScenario {
|
|
4
5
|
id?: string;
|
|
@@ -74,23 +75,11 @@ export interface StoryboardDiscoveryResult {
|
|
|
74
75
|
baselineEnvironment?: StoryboardEnvironment;
|
|
75
76
|
graph: StoryboardGraph;
|
|
76
77
|
}
|
|
77
|
-
export interface StoryboardDiscoveryResponse {
|
|
78
|
-
ok: boolean;
|
|
79
|
-
status: number;
|
|
80
|
-
json(): Promise<unknown>;
|
|
81
|
-
}
|
|
82
|
-
export type StoryboardDiscoveryFetch = (endpoint: string, init: {
|
|
83
|
-
headers: {
|
|
84
|
-
accept: 'application/json';
|
|
85
|
-
};
|
|
86
|
-
cache: 'no-store';
|
|
87
|
-
signal?: AbortSignal;
|
|
88
|
-
}) => Promise<StoryboardDiscoveryResponse>;
|
|
89
78
|
export interface LoadStoryboardDiscoveryOptions extends Omit<StoryboardDiscoveryGraphOptions, 'manifest'> {
|
|
90
|
-
endpoint: string;
|
|
91
79
|
signal?: AbortSignal;
|
|
92
|
-
fetcher?: StoryboardDiscoveryFetch;
|
|
93
80
|
}
|
|
81
|
+
/** The shape check the transport leaves to this module: a manifest is a plain object. */
|
|
82
|
+
export declare function isDiscoveryManifest(value: unknown): value is StoryboardDiscoveryManifest;
|
|
94
83
|
export declare function createStoryboardRouteScenarioId(route: string): string;
|
|
95
84
|
/**
|
|
96
85
|
* Converts the editor's resolved screen frames into graph screen cases.
|
|
@@ -99,9 +88,10 @@ export declare function createStoryboardRouteScenarioId(route: string): string;
|
|
|
99
88
|
export declare function resolveStoryboardScreenCases(pages: readonly StoryboardResolvedPage[], manifest: StoryboardDiscoveryManifest): DesignScreenCase[];
|
|
100
89
|
export declare function getStoryboardDiscoveryBaselineEnvironment(manifest: StoryboardDiscoveryManifest): StoryboardEnvironment | undefined;
|
|
101
90
|
export declare function createStoryboardGraphFromDiscovery(options: StoryboardDiscoveryGraphOptions): StoryboardGraph;
|
|
102
|
-
|
|
91
|
+
/** Reads the storyboard environment manifest through the transport and builds the graph from it. */
|
|
92
|
+
export declare function loadStoryboardDiscovery(transport: EditorTransport, options: LoadStoryboardDiscoveryOptions): Promise<StoryboardDiscoveryResult>;
|
|
103
93
|
/**
|
|
104
94
|
* Replaces the editor graph atomically from source discovery. A stale graph is
|
|
105
95
|
* cleared both before the request and after any transport or parsing failure.
|
|
106
96
|
*/
|
|
107
|
-
export declare function publishStoryboardDiscovery(options: LoadStoryboardDiscoveryOptions): Promise<StoryboardDiscoveryResult>;
|
|
97
|
+
export declare function publishStoryboardDiscovery(transport: EditorTransport, options: LoadStoryboardDiscoveryOptions): Promise<StoryboardDiscoveryResult>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { StoryboardEnvironment } from './designImport';
|
|
2
2
|
export declare function bumpPreviewIdentityEpoch(): void;
|
|
3
3
|
export declare function getPreviewIdentityEpoch(): number;
|
|
4
|
-
export declare const STORYBOARD_ENVIRONMENT_QUERY
|
|
5
|
-
export declare const STORYBOARD_ENVIRONMENT_CONTROL
|
|
4
|
+
export declare const STORYBOARD_ENVIRONMENT_QUERY: "__pygmalion_environment";
|
|
5
|
+
export declare const STORYBOARD_ENVIRONMENT_CONTROL: "/__pygmalion-storyboard/environment";
|
|
6
6
|
export declare function setStoryboardBaselineEnvironment(environment?: StoryboardEnvironment): void;
|
|
7
7
|
export declare function getStoryboardBaselineEnvironment(): StoryboardEnvironment | undefined;
|
|
8
8
|
export declare function mergeStoryboardEnvironment(base?: StoryboardEnvironment, override?: StoryboardEnvironment): StoryboardEnvironment | undefined;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type FlowSessionRuntime } from './flowSessionScheduler';
|
|
1
2
|
import type { InteractiveStateDef, InteractiveStateOption } from './interactiveStates';
|
|
2
3
|
import type { PageModel } from './store';
|
|
3
4
|
/**
|
|
@@ -56,7 +57,7 @@ export declare const __variantPrefetchDebug: {
|
|
|
56
57
|
* MAX_PREFETCH_WALKS_PER_ROUND idle-time walks, one at a time. Replaces any
|
|
57
58
|
* round already in progress — the newest selection is the best prediction.
|
|
58
59
|
*/
|
|
59
|
-
export declare function startInteractiveStatePrefetch(page: PageModel, previewRevision: string): void;
|
|
60
|
+
export declare function startInteractiveStatePrefetch(runtime: FlowSessionRuntime, page: PageModel, previewRevision: string): void;
|
|
60
61
|
/** Drops the scheduled trigger and the in-progress round, if any. */
|
|
61
62
|
export declare function cancelScheduledInteractiveStatePrefetch(): void;
|
|
62
63
|
/**
|
|
@@ -66,4 +67,4 @@ export declare function cancelScheduledInteractiveStatePrefetch(): void;
|
|
|
66
67
|
* effect cleanup — cancelling stops the round, so speculation only runs
|
|
67
68
|
* while the frame is actually the selected one.
|
|
68
69
|
*/
|
|
69
|
-
export declare function requestInteractiveStatePrefetch(page: PageModel, previewRevision: string): () => void;
|
|
70
|
+
export declare function requestInteractiveStatePrefetch(runtime: FlowSessionRuntime, page: PageModel, previewRevision: string): () => void;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { InspectApplyPayload } from './inspect';
|
|
2
|
+
import type { EditorTransport, TransportCallOptions } from '../contract/transport.js';
|
|
2
3
|
import type { DesignCodegenData } from './designCompiler';
|
|
3
4
|
export interface InspectQaArtifactHash {
|
|
4
5
|
domStructureHash: string;
|
|
@@ -55,5 +56,9 @@ export interface InspectQaCaptureRequest {
|
|
|
55
56
|
export declare function inspectQaBaseUrl(basePath: string, origin: string): string;
|
|
56
57
|
/** Among all change impact frames calculated by the source graph, only the canonical screen that the host can capture is selected. */
|
|
57
58
|
export declare function inspectQaFrameIds(payload: InspectApplyPayload, eligibleFrameIds?: readonly string[]): string[];
|
|
58
|
-
/**
|
|
59
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Asks the transport's QA service for DOM and PNG hashes of the given frames
|
|
61
|
+
* and strictly normalizes its answer. Artifact paths are accepted only under
|
|
62
|
+
* the transport's QA artifact prefix and come back resolved for the document.
|
|
63
|
+
*/
|
|
64
|
+
export declare function requestInspectQaCapture(transport: EditorTransport, request: InspectQaCaptureRequest, options?: TransportCallOptions): Promise<InspectQaResult>;
|
package/dist-lib/types/lib.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { type DesignImportController, type DesignImportInitialPage, type DesignScenarioSource } from './editor/designImport';
|
|
2
2
|
import { type ComponentRegistry } from './editor/registry';
|
|
3
3
|
import { type DesignComponentConnectionDef } from './editor/componentConnections';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import type { ApplyPayload, DesignChangePayload, DesignChangeResult, InspectApplyResult, InspectImpactResult, InspectPreviewResult } from './editor/host';
|
|
5
|
+
import type { InspectApplyPayload } from './editor/inspect';
|
|
6
|
+
import type { EditorRuntime } from './core/runtime';
|
|
6
7
|
import { type ScreenFlowPath } from './editor/screenFlows';
|
|
7
8
|
import { type ScenarioCoverageClaim } from './editor/scenarioCoverage';
|
|
8
9
|
import { type InteractiveStateDef, type ScreenStateAxisDef } from './editor/interactiveStates';
|
|
@@ -36,9 +37,13 @@ export type { CodegenFrameOptions } from './editor/codegen';
|
|
|
36
37
|
export { createDesignComponentCatalog, createDesignComponentVariantMatrix, createDesignGalleryCatalog, designCatalogKey, designCatalogRegistryName, PygmalionCatalogDocument, PygmalionCatalogMatrix, PygmalionCatalogSection, } from './editor/catalog';
|
|
37
38
|
export type { DesignCatalogBuild, DesignCatalogFrame, DesignCatalogItem, DesignCatalogKind, DesignCatalogPageDescriptor, DesignComponentCatalogOptions, DesignComponentVariantMatrix, DesignGalleryCatalogOptions, PygmalionCatalogDocumentProps, PygmalionCatalogMatrixProps, PygmalionCatalogSectionProps, } from './editor/catalog';
|
|
38
39
|
export { setTokens, applyTokenOverride, resetTokenOverrides, } from './editor/tokens';
|
|
39
|
-
export {
|
|
40
|
-
export {
|
|
41
|
-
export {
|
|
40
|
+
export { createEditorRuntime } from './core/runtime';
|
|
41
|
+
export { createViteTransport, resolvePygmalionEndpoints, PYGMALION_ENDPOINTS, TransportError, } from './contract/index.js';
|
|
42
|
+
export type { ComponentBranchesRequest, EditorTransport, InspectImpactRequest, MirrorRefreshRequest, PreviewCatalogRequest, PygmalionEndpointOverrides, PygmalionEndpoints, QaCaptureEnvelope, SessionApplyVisualRequest, SessionApplyVisualResponse, SessionCheckRequest, SessionMutationRequest, SessionOpenRequest, SessionPreviewVisualRequest, SessionPreviewVisualResponse, SessionRevertVisualRequest, SessionRevertVisualResponse, SourceUsageRequest, TransportCallOptions, TransportErrorInit, TransportFetch, TransportRequestInit, TransportResponse, ViteTransportOptions, } from './contract/index.js';
|
|
43
|
+
export type { EditorRuntime, EditorRuntimeOptions } from './core/runtime';
|
|
44
|
+
export type { EditorRuntimeDebug, EditorRuntimeDiagnostics } from './core/debug';
|
|
45
|
+
export type { HostBindings, HostBindingsInit, HostCallbacks, } from './core/hostBindings';
|
|
46
|
+
export { EditorRuntimeProvider, useEditorRuntime, useEditorStore, useHostBindings, useHostCallbacks, } from './core/context';
|
|
42
47
|
export { clearRoutePreviewSnapshots as clearPygmalionPreviewCache, recommendedRoutePreviewConcurrency as getRecommendedPygmalionPreviewConcurrency, setRoutePreviewConcurrency as setPygmalionPreviewConcurrency, } from './editor/routePreview';
|
|
43
48
|
export type { RoutePreviewArtifactBundle } from './editor/routePreview';
|
|
44
49
|
export { reconstructRoutePreviewArtifactScreenshotV3, reconstructRoutePreviewArtifactSnapshotV3, validateRoutePreviewArtifactV3Browser, } from './editor/routePreviewArtifactV3';
|
|
@@ -72,7 +77,7 @@ export { createStoryboardPathEdges, createStoryboardGraph, storyboardScreenRecip
|
|
|
72
77
|
export { createAuthoredStoryboardGraph } from './editor/storyboardAuthored';
|
|
73
78
|
export type { StoryboardDefinition, StoryboardGraph, StoryboardGraphBranch, StoryboardGraphBuildOptions, StoryboardGraphCoverage, StoryboardGraphEdge, StoryboardGraphEdgeInput, StoryboardGraphEdgeLabelScope, StoryboardGraphEdgeOrigin, StoryboardGraphNode, StoryboardGraphSourceGroup, StoryboardGraphWarning, StoryboardGraphWarningCode, StoryboardPathInput, } from './editor/storyboardGraph';
|
|
74
79
|
export { createStoryboardRouteScenarioId, createStoryboardGraphFromDiscovery, getStoryboardDiscoveryBaselineEnvironment, loadStoryboardDiscovery, publishStoryboardDiscovery, resolveStoryboardScreenCases, } from './editor/storyboardDiscovery';
|
|
75
|
-
export type { LoadStoryboardDiscoveryOptions, StoryboardDiscoveryCandidate, StoryboardDiscoveryEdge,
|
|
80
|
+
export type { LoadStoryboardDiscoveryOptions, StoryboardDiscoveryCandidate, StoryboardDiscoveryEdge, StoryboardDiscoveryGraphOptions, StoryboardDiscoveryManifest, StoryboardDiscoveryResult, StoryboardDiscoveryRoute, StoryboardDiscoveryScenario, StoryboardResolvedPage, } from './editor/storyboardDiscovery';
|
|
76
81
|
export { getStoryboardGraph, setStoryboardGraph, subscribeStoryboardGraph, } from './editor/storyboardGraphRuntime';
|
|
77
82
|
export { createStoryboardGraphViewModel } from './editor/storyboardGraphView';
|
|
78
83
|
export type { StoryboardFrameReference, StoryboardGraphCanonicalView, StoryboardGraphFrameView, StoryboardGraphSourceView, StoryboardGraphTransitionView, StoryboardGraphViewModel, } from './editor/storyboardGraphView';
|
|
@@ -82,7 +87,7 @@ export type { InspectApplyPayload, PrimitiveSourceValue, PrimitiveSourceValueTyp
|
|
|
82
87
|
export type { InspectQaArtifactHash, InspectQaCaptureRequest, InspectQaFailure, InspectQaFrameResult, InspectQaPixelDiff, InspectQaPixelDimensions, InspectQaResult, } from './editor/visualQa';
|
|
83
88
|
export { inspectQaBaseUrl, requestInspectQaCapture } from './editor/visualQa';
|
|
84
89
|
export { usePygmalionProject } from './editor/projectRuntime';
|
|
85
|
-
export type { PygmalionDesignSessionStatus, PygmalionDevMirrorStatus, PygmalionIntegrationState,
|
|
90
|
+
export type { PygmalionDesignSessionStatus, PygmalionDevMirrorStatus, PygmalionIntegrationState, PygmalionProjectRuntime, PygmalionProjectRuntimeOptions, PygmalionRevertResult, PygmalionSessionOperation, PygmalionSourceRef, PygmalionSourceRefs, PygmalionVisualOperation, PygmalionVisualRevertOperation, } from './editor/projectRuntime';
|
|
86
91
|
export { SourceRefControl } from './ui/SourceRefControl';
|
|
87
92
|
export type { SourceRefControlProps } from './ui/SourceRefControl';
|
|
88
93
|
export type { TokenDef } from './editor/tokens';
|
|
@@ -100,192 +105,15 @@ export type { CreateDesignImportOptions, DesignBehaviorScenario, DesignImportAss
|
|
|
100
105
|
export type { DomImportDiagnostic, DomImportMetrics, DomImportOptions, DomImportResult, } from './editor/domImport';
|
|
101
106
|
export type { SharedSourceEditScope, SharedSourceFrameSummary, SharedSourceImpact, } from './editor/sharedSource';
|
|
102
107
|
export type { NodeJSON } from './editor/store';
|
|
103
|
-
import { getObserverTree, isObservableProp } from 'mobx';
|
|
104
|
-
export declare const __debug: {
|
|
105
|
-
editor: import("./editor/store").EditorStore;
|
|
106
|
-
getObserverTree: typeof getObserverTree;
|
|
107
|
-
isObservableProp: typeof isObservableProp;
|
|
108
|
-
/** Preview-surface introspection for headless diagnosis of frame surfaces. */
|
|
109
|
-
preview(frameId: string): Promise<{
|
|
110
|
-
key: string;
|
|
111
|
-
hasOutcome: boolean;
|
|
112
|
-
screenshot: {
|
|
113
|
-
width: number;
|
|
114
|
-
height: number;
|
|
115
|
-
} | null;
|
|
116
|
-
hasShadowArtifact: boolean;
|
|
117
|
-
hasSnapshot: boolean;
|
|
118
|
-
keys: {
|
|
119
|
-
which: "active" | "inactive";
|
|
120
|
-
sameAsDebugKey: boolean;
|
|
121
|
-
hasShadowArtifact: boolean;
|
|
122
|
-
hasSnapshot: boolean;
|
|
123
|
-
}[];
|
|
124
|
-
isActivePage: boolean;
|
|
125
|
-
snapshotShape: {
|
|
126
|
-
length: number;
|
|
127
|
-
bodyLength: number;
|
|
128
|
-
elements: number;
|
|
129
|
-
basePlaceholderLeft: boolean;
|
|
130
|
-
baseHref: string | null;
|
|
131
|
-
head: string;
|
|
132
|
-
} | null;
|
|
133
|
-
previewIdentityReady: boolean;
|
|
134
|
-
seedRevision: string;
|
|
135
|
-
hostRevision: string;
|
|
136
|
-
staticSurface: import("./editor/routePreviewStatus").StaticRoutePreviewSurface;
|
|
137
|
-
tier: import("./editor/frameLod").FrameLifecycleTier;
|
|
138
|
-
magnified: boolean;
|
|
139
|
-
promotion: {
|
|
140
|
-
mounted: boolean;
|
|
141
|
-
stamped: boolean | null;
|
|
142
|
-
};
|
|
143
|
-
lodState: {
|
|
144
|
-
tiers: [string, import("./editor/frameLod").FrameLifecycleTier][];
|
|
145
|
-
magnified: [string, boolean][];
|
|
146
|
-
lastRecompute: {
|
|
147
|
-
displayDensity?: number;
|
|
148
|
-
overview?: boolean;
|
|
149
|
-
frames?: {
|
|
150
|
-
id: string;
|
|
151
|
-
screenshotDensity: number | null | undefined;
|
|
152
|
-
tier: string;
|
|
153
|
-
}[];
|
|
154
|
-
};
|
|
155
|
-
};
|
|
156
|
-
readFramesNow: (import("./editor/frameLod").FrameLodFrame & {
|
|
157
|
-
memoKey?: string;
|
|
158
|
-
}) | undefined;
|
|
159
|
-
} | null>;
|
|
160
|
-
/** Flow-session delivery states for headless diagnosis of the captureless supply. */
|
|
161
|
-
flowSessions(): Promise<{
|
|
162
|
-
declaredPaths: number;
|
|
163
|
-
scheduler: {
|
|
164
|
-
calls: number;
|
|
165
|
-
lastCanvas: string;
|
|
166
|
-
lastFlows: number;
|
|
167
|
-
lastCandidates: number;
|
|
168
|
-
lastQueued: number;
|
|
169
|
-
};
|
|
170
|
-
states: Record<string, import("./editor/flowSessions").FlowScreenState>;
|
|
171
|
-
viewport: {
|
|
172
|
-
commit: {
|
|
173
|
-
requested: number;
|
|
174
|
-
resolvedNull: number;
|
|
175
|
-
controllerMissing: number;
|
|
176
|
-
markerGone: number;
|
|
177
|
-
editsWon: number;
|
|
178
|
-
captureNull: number;
|
|
179
|
-
committed: number;
|
|
180
|
-
};
|
|
181
|
-
states: Record<string, unknown>;
|
|
182
|
-
};
|
|
183
|
-
interactive: {
|
|
184
|
-
requests: {
|
|
185
|
-
requested: number;
|
|
186
|
-
noPath: number;
|
|
187
|
-
resolvedNull: number;
|
|
188
|
-
queued: number;
|
|
189
|
-
reparkQueued: number;
|
|
190
|
-
reparkAlreadyParked: number;
|
|
191
|
-
reparkNoExtraSteps: number;
|
|
192
|
-
};
|
|
193
|
-
states: Record<string, unknown>;
|
|
194
|
-
};
|
|
195
|
-
warming: {
|
|
196
|
-
requested: number;
|
|
197
|
-
noPath: number;
|
|
198
|
-
resolvedNull: number;
|
|
199
|
-
alreadyWarm: number;
|
|
200
|
-
queued: number;
|
|
201
|
-
};
|
|
202
|
-
warm: {
|
|
203
|
-
bootsByRunner: {
|
|
204
|
-
[x: string]: number;
|
|
205
|
-
};
|
|
206
|
-
parked: number;
|
|
207
|
-
boots: number;
|
|
208
|
-
reuses: number;
|
|
209
|
-
parks: number;
|
|
210
|
-
evictions: number;
|
|
211
|
-
refreshes: number;
|
|
212
|
-
};
|
|
213
|
-
}>;
|
|
214
|
-
/**
|
|
215
|
-
* State-switch instrumentation: phase timings of recent flow-session walks
|
|
216
|
-
* (boot/replay/settle/stability/serialize/publish, per runner label, warm
|
|
217
|
-
* reuse vs cold boot) plus route-preview producer-gate counters. JSON-safe.
|
|
218
|
-
*/
|
|
219
|
-
stateSwitchMetrics(): Promise<{
|
|
220
|
-
walks: {
|
|
221
|
-
byRunner: {
|
|
222
|
-
[k: string]: {
|
|
223
|
-
count: number;
|
|
224
|
-
completed: number;
|
|
225
|
-
coldBoots: number;
|
|
226
|
-
warmReuses: number;
|
|
227
|
-
stabilityTimeouts: number;
|
|
228
|
-
phases: Record<import("./editor/stateSwitchMetrics").StateSwitchPhase, import("./editor/stateSwitchMetrics").PhaseAggregate>;
|
|
229
|
-
};
|
|
230
|
-
};
|
|
231
|
-
recent: {
|
|
232
|
-
totals: {
|
|
233
|
-
replayMs: number;
|
|
234
|
-
settleMs: number;
|
|
235
|
-
stabilityMs: number;
|
|
236
|
-
serializeMs: number;
|
|
237
|
-
publishMs: number;
|
|
238
|
-
};
|
|
239
|
-
waypoints: {
|
|
240
|
-
screenId: string;
|
|
241
|
-
replayMs: number | null;
|
|
242
|
-
settleMs: number | null;
|
|
243
|
-
stabilityMs: number | null;
|
|
244
|
-
stabilityTimedOut: boolean;
|
|
245
|
-
serializeMs: number | null;
|
|
246
|
-
publishMs: number | null;
|
|
247
|
-
}[];
|
|
248
|
-
runner: string;
|
|
249
|
-
pathId: string;
|
|
250
|
-
reused: boolean;
|
|
251
|
-
completed: boolean;
|
|
252
|
-
startedAtEpochMs: number;
|
|
253
|
-
totalMs: number;
|
|
254
|
-
bootMs: number | null;
|
|
255
|
-
}[];
|
|
256
|
-
count: number;
|
|
257
|
-
completed: number;
|
|
258
|
-
coldBoots: number;
|
|
259
|
-
warmReuses: number;
|
|
260
|
-
stabilityTimeouts: number;
|
|
261
|
-
phases: Record<import("./editor/stateSwitchMetrics").StateSwitchPhase, import("./editor/stateSwitchMetrics").PhaseAggregate>;
|
|
262
|
-
};
|
|
263
|
-
routePreviewProducer: {
|
|
264
|
-
evaluations: number;
|
|
265
|
-
allowed: number;
|
|
266
|
-
suppressed: number;
|
|
267
|
-
byTrigger: {
|
|
268
|
-
endpointNotConfigured: number;
|
|
269
|
-
detailActive: number;
|
|
270
|
-
previewIntended: number;
|
|
271
|
-
};
|
|
272
|
-
};
|
|
273
|
-
}>;
|
|
274
|
-
/** Clears the state-switch metrics between headless audit scenarios. */
|
|
275
|
-
resetStateSwitchMetrics(): Promise<void>;
|
|
276
|
-
};
|
|
277
|
-
/**
|
|
278
|
-
* Called from the actual button handler of the host screen fixture — Switches to the name matching page (common in editor and preview).
|
|
279
|
-
* Example: SettingsPage card onSelect: () => pygmalionNavigate('Settings panel')
|
|
280
|
-
*/
|
|
281
|
-
export declare function pygmalionNavigate(pageName: string): void;
|
|
282
|
-
/** Open the prototype preview (▶) in the code — used when the host places its own entry button. */
|
|
283
|
-
export declare function pygmalionOpenPreview(): void;
|
|
284
|
-
/** Discard unapplied canvas and inspection edits created after the latest source load or apply. */
|
|
285
|
-
export declare function pygmalionResetCurrentEdits(): boolean;
|
|
286
108
|
export interface InitialPageDef extends DesignImportInitialPage {
|
|
287
109
|
}
|
|
288
|
-
export declare function PygmalionEditor({ registry, tokens, initialPages, initialCanvas, activeFramePersistenceKey, initialEditMode, componentConnections, codegenProject, codegenValidator, codegenValidationScope, viewportPresets, sessionPresets, previewEnvironmentControls, designImport, onTokensChange, appOrigin, previewRevision, previewCacheNamespace, previewArtifacts,
|
|
110
|
+
export declare function PygmalionEditor({ runtime, registry, tokens, initialPages, initialCanvas, activeFramePersistenceKey, initialEditMode, componentConnections, codegenProject, codegenValidator, codegenValidationScope, viewportPresets, sessionPresets, previewEnvironmentControls, designImport, onTokensChange, appOrigin, previewRevision, previewCacheNamespace, previewArtifacts, previewConcurrency, previewOpen, onPreviewOpenChange, flowCanvas, frameSurface, captureSupply, screenFlows, screenFlowConcurrency, scenarioCoverage, screenDimensions, screenLists, sectionHeaders, sectionHeaderLabels, screenLanes, frameBranchKinds, frameLabelLabels, screenCards, liveScreenBudget, screenStateAxes, interactiveStates, surfaceClassifications, onApply, onDesignChange, onInspectApply, onInspectPreview, onInspectImpact, storyboard, storyboardScenarios, sessionStoryboards, storyboardDiscovery, }: {
|
|
111
|
+
/**
|
|
112
|
+
* The runtime this editor renders. Create one with `createEditorRuntime()`
|
|
113
|
+
* and keep it for the editor's lifetime; two editors on one page each take
|
|
114
|
+
* their own. Omitted, the editor uses the process-wide default runtime.
|
|
115
|
+
*/
|
|
116
|
+
runtime?: EditorRuntime;
|
|
289
117
|
registry?: ComponentRegistry;
|
|
290
118
|
tokens?: TokenDef[];
|
|
291
119
|
initialPages?: InitialPageDef[];
|
|
@@ -341,15 +169,6 @@ export declare function PygmalionEditor({ registry, tokens, initialPages, initia
|
|
|
341
169
|
previewCacheNamespace?: string;
|
|
342
170
|
/** A canonical screen snapshot created during build. When the namespace matches, it is injected into the cache before the first render. */
|
|
343
171
|
previewArtifacts?: RoutePreviewArtifactBundle;
|
|
344
|
-
/** Same-origin endpoint that resolves an exact namespace and source revision, generating it on demand when configured by the Vite plugin. */
|
|
345
|
-
previewArtifactEndpoint?: string;
|
|
346
|
-
/**
|
|
347
|
-
* Same-origin endpoint for the exact checkout's serialized screen catalog.
|
|
348
|
-
* When configured, routed pages and their declarations never fall back to
|
|
349
|
-
* the editor bundle: the previous coherent revision stays visible until the
|
|
350
|
-
* requested catalog has been validated and installed as one snapshot.
|
|
351
|
-
*/
|
|
352
|
-
previewCatalogEndpoint?: string;
|
|
353
172
|
/** Number of actual app previews to run simultaneously. Defaults to an adaptive 12–32 lanes. */
|
|
354
173
|
previewConcurrency?: number;
|
|
355
174
|
/** Controlled by external status such as host route ▶ Whether the preview is opened or not. */
|
|
@@ -368,7 +187,7 @@ export declare function PygmalionEditor({ registry, tokens, initialPages, initia
|
|
|
368
187
|
frameSurface?: 'bitmap' | 'dom';
|
|
369
188
|
/**
|
|
370
189
|
* Who fills a canvas first. `worker-first` asks the capture worker behind
|
|
371
|
-
*
|
|
190
|
+
* the transport's preview artifact endpoint for the active canvas in batches (nearest the
|
|
372
191
|
* viewport first, other canvases after, in the background) and keeps the
|
|
373
192
|
* walking sessions and per-screen sweep as the fallback for what the worker
|
|
374
193
|
* cannot answer. `browser-first` fills the canvas inside the editor — the
|
|
@@ -502,8 +321,10 @@ export declare function PygmalionEditor({ registry, tokens, initialPages, initia
|
|
|
502
321
|
* single runtime and for the brief state before a required preset is chosen.
|
|
503
322
|
*/
|
|
504
323
|
sessionStoryboards?: Readonly<Record<string, StoryboardDefinition>>;
|
|
505
|
-
/**
|
|
324
|
+
/**
|
|
325
|
+
* Detect portable browser branches from source before route frames boot.
|
|
326
|
+
* Default true. The manifest comes from the transport's storyboard
|
|
327
|
+
* environment service.
|
|
328
|
+
*/
|
|
506
329
|
storyboardDiscovery?: boolean;
|
|
507
|
-
/** Vite endpoint that returns the generated generic storyboard environment manifest. */
|
|
508
|
-
storyboardDiscoveryEndpoint?: string;
|
|
509
330
|
}): import("react").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
2
|
import { sourceWritableRegistryProps } from '../editor/componentInstances';
|
|
3
3
|
import type { RegistryEntry, RegistryPropValue } from '../editor/registry';
|
|
4
|
-
import {
|
|
4
|
+
import type { NodeModel, PageModel } from '../editor/store';
|
|
5
5
|
/** Property-panel section frame shared across the shell panels. */
|
|
6
6
|
export declare function Sec({ title, description, action, children, }: {
|
|
7
7
|
title: string;
|
|
@@ -4,5 +4,9 @@
|
|
|
4
4
|
* repository's source tree or depending on private internal file paths.
|
|
5
5
|
*/
|
|
6
6
|
export { FrozenRoutePreviewView } from './canvas/FrozenRoutePreview';
|
|
7
|
-
export {
|
|
7
|
+
export { EditorStore, NodeModel, serializeNode } from './editor/store';
|
|
8
8
|
export { setComponentRegistry } from './editor/registry';
|
|
9
|
+
export { createEditorRuntime } from './core/runtime';
|
|
10
|
+
export type { EditorRuntime } from './core/runtime';
|
|
11
|
+
export { EditorRuntimeProvider } from './core/context';
|
|
12
|
+
export { createMemoryTransport, type MemoryTransport, type MemoryTransportCall, type MemoryTransportHandlers, } from './contract/memoryTransport.js';
|