@kumwe/studio-core 0.1.0-alpha.10
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 +21 -0
- package/README.md +86 -0
- package/THIRD_PARTY_NOTICES.md +9 -0
- package/dist/binding-projection.d.ts +47 -0
- package/dist/binding-projection.d.ts.map +1 -0
- package/dist/binding-projection.js +253 -0
- package/dist/binding-projection.js.map +1 -0
- package/dist/canonical.d.ts +20 -0
- package/dist/canonical.d.ts.map +1 -0
- package/dist/canonical.js +100 -0
- package/dist/canonical.js.map +1 -0
- package/dist/clone.d.ts +2 -0
- package/dist/clone.d.ts.map +1 -0
- package/dist/clone.js +4 -0
- package/dist/clone.js.map +1 -0
- package/dist/commands.d.ts +18 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +799 -0
- package/dist/commands.js.map +1 -0
- package/dist/contributions.d.ts +93 -0
- package/dist/contributions.d.ts.map +1 -0
- package/dist/contributions.js +435 -0
- package/dist/contributions.js.map +1 -0
- package/dist/entry-commands.d.ts +3 -0
- package/dist/entry-commands.d.ts.map +1 -0
- package/dist/entry-commands.js +36 -0
- package/dist/entry-commands.js.map +1 -0
- package/dist/extension-sdk.d.ts +51 -0
- package/dist/extension-sdk.d.ts.map +1 -0
- package/dist/extension-sdk.js +260 -0
- package/dist/extension-sdk.js.map +1 -0
- package/dist/history.d.ts +22 -0
- package/dist/history.d.ts.map +1 -0
- package/dist/history.js +81 -0
- package/dist/history.js.map +1 -0
- package/dist/host-session.d.ts +74 -0
- package/dist/host-session.d.ts.map +1 -0
- package/dist/host-session.js +713 -0
- package/dist/host-session.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/layout.d.ts +66 -0
- package/dist/layout.d.ts.map +1 -0
- package/dist/layout.js +240 -0
- package/dist/layout.js.map +1 -0
- package/dist/migrations.d.ts +47 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +83 -0
- package/dist/migrations.js.map +1 -0
- package/dist/model-commands.d.ts +3 -0
- package/dist/model-commands.d.ts.map +1 -0
- package/dist/model-commands.js +21 -0
- package/dist/model-commands.js.map +1 -0
- package/dist/modes.d.ts +47 -0
- package/dist/modes.d.ts.map +1 -0
- package/dist/modes.js +280 -0
- package/dist/modes.js.map +1 -0
- package/dist/negotiation.d.ts +23 -0
- package/dist/negotiation.d.ts.map +1 -0
- package/dist/negotiation.js +65 -0
- package/dist/negotiation.js.map +1 -0
- package/dist/production-values.d.ts +12 -0
- package/dist/production-values.d.ts.map +1 -0
- package/dist/production-values.js +224 -0
- package/dist/production-values.js.map +1 -0
- package/dist/production.d.ts +86 -0
- package/dist/production.d.ts.map +1 -0
- package/dist/production.js +811 -0
- package/dist/production.js.map +1 -0
- package/dist/profile-validator.d.ts +47 -0
- package/dist/profile-validator.d.ts.map +1 -0
- package/dist/profile-validator.js +887 -0
- package/dist/profile-validator.js.map +1 -0
- package/dist/recipes.d.ts +15 -0
- package/dist/recipes.d.ts.map +1 -0
- package/dist/recipes.js +34 -0
- package/dist/recipes.js.map +1 -0
- package/dist/registry.d.ts +17 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +56 -0
- package/dist/registry.js.map +1 -0
- package/dist/schema-profile.d.ts +27 -0
- package/dist/schema-profile.d.ts.map +1 -0
- package/dist/schema-profile.js +1015 -0
- package/dist/schema-profile.js.map +1 -0
- package/dist/semver.d.ts +20 -0
- package/dist/semver.d.ts.map +1 -0
- package/dist/semver.js +128 -0
- package/dist/semver.js.map +1 -0
- package/dist/session.d.ts +73 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +191 -0
- package/dist/session.js.map +1 -0
- package/dist/url-policy.d.ts +45 -0
- package/dist/url-policy.d.ts.map +1 -0
- package/dist/url-policy.js +248 -0
- package/dist/url-policy.js.map +1 -0
- package/dist/validation.d.ts +13 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +444 -0
- package/dist/validation.js.map +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-profile.js","sourceRoot":"","sources":["../src/schema-profile.ts"],"names":[],"mappings":"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"}
|
package/dist/semver.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface ParsedSemanticVersion {
|
|
2
|
+
major: number;
|
|
3
|
+
minor: number;
|
|
4
|
+
patch: number;
|
|
5
|
+
prerelease: readonly (number | string)[];
|
|
6
|
+
}
|
|
7
|
+
export declare function parseSemanticVersion(value: string): ParsedSemanticVersion;
|
|
8
|
+
/** SemVer 2.0 precedence; build metadata never participates. */
|
|
9
|
+
export declare function compareSemanticVersions(left: string, right: string): -1 | 0 | 1;
|
|
10
|
+
/**
|
|
11
|
+
* Expand caret and tilde shorthands into their conventional comparator
|
|
12
|
+
* conjunctions. The supported grammar is deliberately small and
|
|
13
|
+
* deterministic: exact versions, `^`/`~` shorthands, and space-joined
|
|
14
|
+
* comparators; disjunctions are unsupported until the compatibility
|
|
15
|
+
* contract ratifies them.
|
|
16
|
+
*/
|
|
17
|
+
export declare function normalizeVersionRange(range: string): string;
|
|
18
|
+
/** Whether a version satisfies every comparator of the supported range grammar. */
|
|
19
|
+
export declare function satisfiesVersionRange(version: string, range: string): boolean;
|
|
20
|
+
//# sourceMappingURL=semver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semver.d.ts","sourceRoot":"","sources":["../src/semver.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CAC1C;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAgBzE;AAED,gEAAgE;AAChE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CA0C/E;AAOD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA4B3D;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAkB7E"}
|
package/dist/semver.js
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
const VERSION_PATTERN = /^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(?:-((?:0|[1-9][0-9]*|[0-9]*[A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9][0-9]*|[0-9]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/u;
|
|
2
|
+
export function parseSemanticVersion(value) {
|
|
3
|
+
const match = value.length <= 100 ? VERSION_PATTERN.exec(value) : null;
|
|
4
|
+
if (match === null) {
|
|
5
|
+
throw new TypeError(`${value} is not a canonical semantic version.`);
|
|
6
|
+
}
|
|
7
|
+
return {
|
|
8
|
+
major: Number(match[1]),
|
|
9
|
+
minor: Number(match[2]),
|
|
10
|
+
patch: Number(match[3]),
|
|
11
|
+
prerelease: match[4] === undefined
|
|
12
|
+
? []
|
|
13
|
+
: match[4]
|
|
14
|
+
.split('.')
|
|
15
|
+
.map((part) => (/^(0|[1-9][0-9]*)$/u.test(part) ? Number(part) : part)),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/** SemVer 2.0 precedence; build metadata never participates. */
|
|
19
|
+
export function compareSemanticVersions(left, right) {
|
|
20
|
+
const a = parseSemanticVersion(left);
|
|
21
|
+
const b = parseSemanticVersion(right);
|
|
22
|
+
for (const member of ['major', 'minor', 'patch']) {
|
|
23
|
+
if (a[member] !== b[member]) {
|
|
24
|
+
return a[member] < b[member] ? -1 : 1;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (a.prerelease.length === 0 && b.prerelease.length === 0) {
|
|
28
|
+
return 0;
|
|
29
|
+
}
|
|
30
|
+
if (a.prerelease.length === 0) {
|
|
31
|
+
return 1;
|
|
32
|
+
}
|
|
33
|
+
if (b.prerelease.length === 0) {
|
|
34
|
+
return -1;
|
|
35
|
+
}
|
|
36
|
+
const length = Math.max(a.prerelease.length, b.prerelease.length);
|
|
37
|
+
for (let index = 0; index < length; index += 1) {
|
|
38
|
+
const first = a.prerelease[index];
|
|
39
|
+
const second = b.prerelease[index];
|
|
40
|
+
if (first === undefined) {
|
|
41
|
+
return -1;
|
|
42
|
+
}
|
|
43
|
+
if (second === undefined) {
|
|
44
|
+
return 1;
|
|
45
|
+
}
|
|
46
|
+
if (first === second) {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
if (typeof first === 'number' && typeof second === 'number') {
|
|
50
|
+
return first < second ? -1 : 1;
|
|
51
|
+
}
|
|
52
|
+
if (typeof first === 'number') {
|
|
53
|
+
return -1;
|
|
54
|
+
}
|
|
55
|
+
if (typeof second === 'number') {
|
|
56
|
+
return 1;
|
|
57
|
+
}
|
|
58
|
+
return first < second ? -1 : 1;
|
|
59
|
+
}
|
|
60
|
+
return 0;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Expand caret and tilde shorthands into their conventional comparator
|
|
64
|
+
* conjunctions. The supported grammar is deliberately small and
|
|
65
|
+
* deterministic: exact versions, `^`/`~` shorthands, and space-joined
|
|
66
|
+
* comparators; disjunctions are unsupported until the compatibility
|
|
67
|
+
* contract ratifies them.
|
|
68
|
+
*/
|
|
69
|
+
export function normalizeVersionRange(range) {
|
|
70
|
+
const trimmed = range.trim();
|
|
71
|
+
if (trimmed.length === 0 || trimmed.length > 120 || trimmed.includes('||')) {
|
|
72
|
+
throw new TypeError(`${range} is not a supported version range.`);
|
|
73
|
+
}
|
|
74
|
+
return trimmed
|
|
75
|
+
.split(/\s+/u)
|
|
76
|
+
.map((part) => {
|
|
77
|
+
if (part.startsWith('^')) {
|
|
78
|
+
const source = part.slice(1);
|
|
79
|
+
const version = parseSemanticVersion(source);
|
|
80
|
+
const upper = version.major > 0
|
|
81
|
+
? `${version.major + 1}.0.0-0`
|
|
82
|
+
: version.minor > 0
|
|
83
|
+
? `0.${version.minor + 1}.0-0`
|
|
84
|
+
: `0.0.${version.patch + 1}-0`;
|
|
85
|
+
return `>=${source} <${upper}`;
|
|
86
|
+
}
|
|
87
|
+
if (part.startsWith('~')) {
|
|
88
|
+
const source = part.slice(1);
|
|
89
|
+
const version = parseSemanticVersion(source);
|
|
90
|
+
return `>=${source} <${version.major}.${version.minor + 1}.0-0`;
|
|
91
|
+
}
|
|
92
|
+
parseComparator(part);
|
|
93
|
+
return part;
|
|
94
|
+
})
|
|
95
|
+
.join(' ');
|
|
96
|
+
}
|
|
97
|
+
/** Whether a version satisfies every comparator of the supported range grammar. */
|
|
98
|
+
export function satisfiesVersionRange(version, range) {
|
|
99
|
+
parseSemanticVersion(version);
|
|
100
|
+
const comparators = normalizeVersionRange(range).split(/\s+/u).map(parseComparator);
|
|
101
|
+
return comparators.every((comparator) => {
|
|
102
|
+
const comparison = compareSemanticVersions(version, comparator.version);
|
|
103
|
+
switch (comparator.operator) {
|
|
104
|
+
case '<':
|
|
105
|
+
return comparison < 0;
|
|
106
|
+
case '<=':
|
|
107
|
+
return comparison <= 0;
|
|
108
|
+
case '=':
|
|
109
|
+
return comparison === 0;
|
|
110
|
+
case '>':
|
|
111
|
+
return comparison > 0;
|
|
112
|
+
default:
|
|
113
|
+
return comparison >= 0;
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
function parseComparator(part) {
|
|
118
|
+
const match = /^(>=|<=|>|<|=)?([^<>=].*)$/u.exec(part);
|
|
119
|
+
if (match?.[2] === undefined) {
|
|
120
|
+
throw new TypeError(`${part} is not a supported version comparator.`);
|
|
121
|
+
}
|
|
122
|
+
parseSemanticVersion(match[2]);
|
|
123
|
+
return {
|
|
124
|
+
operator: (match[1] ?? '='),
|
|
125
|
+
version: match[2],
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=semver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semver.js","sourceRoot":"","sources":["../src/semver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { AddModelFieldCommand, BlueprintCommand, BlueprintDocument, ContentModelDocument, EntryDocument, NodeId, Revision, SetFieldValueCommand, StudioSessionMode } from '@kumwe/studio-protocol';
|
|
2
|
+
export interface StudioSessionOptions {
|
|
3
|
+
document: BlueprintDocument;
|
|
4
|
+
maximumHistoryEntries?: number;
|
|
5
|
+
/**
|
|
6
|
+
* The session mode fixed for the session's lifetime. When omitted it is
|
|
7
|
+
* derived from `sessionState` for backward compatibility: `read-only`
|
|
8
|
+
* stays `read-only` and `editable` opens the full-structure `blueprint`
|
|
9
|
+
* mode the session historically provided.
|
|
10
|
+
*/
|
|
11
|
+
mode?: StudioSessionMode;
|
|
12
|
+
sessionGeneration: Revision;
|
|
13
|
+
/**
|
|
14
|
+
* The legacy spelling of the read-only axis. Mode `read-only` is the
|
|
15
|
+
* canonical spelling of this flag; when both members are present they
|
|
16
|
+
* must agree.
|
|
17
|
+
*/
|
|
18
|
+
sessionState?: 'editable' | 'read-only';
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* A deterministic editing session over one Blueprint document: bounded
|
|
22
|
+
* history, an explicit selection model, and the session-level guards the
|
|
23
|
+
* command contract requires before any reducer runs. Session generation,
|
|
24
|
+
* mode permission, read-only state, and expected-revision checks fail
|
|
25
|
+
* closed; a rejected command changes neither the document, the history, nor
|
|
26
|
+
* the selection. The session mode is fixed at creation and decides the
|
|
27
|
+
* permitted command set through one deterministic table
|
|
28
|
+
* (`permittedCommandTypes`); hybrid mode additionally bounds structure
|
|
29
|
+
* commands to slots governed by structural authoring regions.
|
|
30
|
+
*/
|
|
31
|
+
export declare class StudioSession {
|
|
32
|
+
#private;
|
|
33
|
+
constructor(options: Readonly<StudioSessionOptions>);
|
|
34
|
+
get canRedo(): boolean;
|
|
35
|
+
get canUndo(): boolean;
|
|
36
|
+
get dirty(): boolean;
|
|
37
|
+
get document(): BlueprintDocument;
|
|
38
|
+
/** The session mode fixed at creation. */
|
|
39
|
+
get mode(): StudioSessionMode;
|
|
40
|
+
get selection(): readonly NodeId[];
|
|
41
|
+
/** The legacy read-only projection of the session mode. */
|
|
42
|
+
get sessionState(): 'editable' | 'read-only';
|
|
43
|
+
get stateVersion(): number;
|
|
44
|
+
execute(command: BlueprintCommand): BlueprintDocument;
|
|
45
|
+
/**
|
|
46
|
+
* Applies one entry field command behind the same session guards as
|
|
47
|
+
* `execute`, so no UI dispatch path bypasses the mode boundary. Entry
|
|
48
|
+
* state stays host-owned: the result is returned, not recorded in the
|
|
49
|
+
* Blueprint history, and the selection is untouched.
|
|
50
|
+
*/
|
|
51
|
+
executeEntryCommand(entry: EntryDocument, command: SetFieldValueCommand): EntryDocument;
|
|
52
|
+
/**
|
|
53
|
+
* Applies one content-model command behind the same session guards as
|
|
54
|
+
* `execute`, so no UI dispatch path bypasses the mode boundary. Model
|
|
55
|
+
* state stays host-owned: the result is returned, not recorded in the
|
|
56
|
+
* Blueprint history, and the selection is untouched.
|
|
57
|
+
*/
|
|
58
|
+
executeModelCommand(model: ContentModelDocument, command: AddModelFieldCommand): ContentModelDocument;
|
|
59
|
+
/**
|
|
60
|
+
* Records the host revision that accepted a local snapshot and rebases every
|
|
61
|
+
* undo/redo snapshot onto it. Callers normally omit `stateVersion`, which
|
|
62
|
+
* marks the current document clean. A host save that settles after another
|
|
63
|
+
* local edit passes the captured snapshot version instead: the accepted base
|
|
64
|
+
* revision advances while the newer draft stays dirty.
|
|
65
|
+
*/
|
|
66
|
+
markSaved(revision: Revision, stateVersion?: number): void;
|
|
67
|
+
get savedRevision(): Revision;
|
|
68
|
+
select(nodeIds: readonly NodeId[]): readonly NodeId[];
|
|
69
|
+
clearSelection(): void;
|
|
70
|
+
undo(): BlueprintDocument;
|
|
71
|
+
redo(): BlueprintDocument;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EAEjB,oBAAoB,EACpB,aAAa,EACb,MAAM,EACN,QAAQ,EACR,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAOhC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,iBAAiB,EAAE,QAAQ,CAAC;IAC5B;;;;OAIG;IACH,YAAY,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;CACzC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;;gBAQL,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC;IAO1D,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,IAAW,KAAK,IAAI,OAAO,CAE1B;IAED,IAAW,QAAQ,IAAI,iBAAiB,CAEvC;IAED,0CAA0C;IAC1C,IAAW,IAAI,IAAI,iBAAiB,CAEnC;IAED,IAAW,SAAS,IAAI,SAAS,MAAM,EAAE,CAExC;IAED,2DAA2D;IAC3D,IAAW,YAAY,IAAI,UAAU,GAAG,WAAW,CAElD;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAEM,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,iBAAiB;IAqB5D;;;;;OAKG;IACI,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,oBAAoB,GAAG,aAAa;IAa9F;;;;;OAKG;IACI,mBAAmB,CACxB,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,oBAAoB,GAC5B,oBAAoB;IAavB;;;;;;OAMG;IACI,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,GAAE,MAAmC,GAAG,IAAI;IAa7F,IAAW,aAAa,IAAI,QAAQ,CAEnC;IAEM,MAAM,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE;IAmBrD,cAAc,IAAI,IAAI;IAItB,IAAI,IAAI,iBAAiB;IAMzB,IAAI,IAAI,iBAAiB;CA6BjC"}
|
package/dist/session.js
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { StudioCommandError } from './commands.js';
|
|
2
|
+
import { applyEntryCommand } from './entry-commands.js';
|
|
3
|
+
import { StudioHistory } from './history.js';
|
|
4
|
+
import { applyModelCommand } from './model-commands.js';
|
|
5
|
+
import { assertHybridCommandInBounds, assertModePermitsCommandType } from './modes.js';
|
|
6
|
+
/**
|
|
7
|
+
* A deterministic editing session over one Blueprint document: bounded
|
|
8
|
+
* history, an explicit selection model, and the session-level guards the
|
|
9
|
+
* command contract requires before any reducer runs. Session generation,
|
|
10
|
+
* mode permission, read-only state, and expected-revision checks fail
|
|
11
|
+
* closed; a rejected command changes neither the document, the history, nor
|
|
12
|
+
* the selection. The session mode is fixed at creation and decides the
|
|
13
|
+
* permitted command set through one deterministic table
|
|
14
|
+
* (`permittedCommandTypes`); hybrid mode additionally bounds structure
|
|
15
|
+
* commands to slots governed by structural authoring regions.
|
|
16
|
+
*/
|
|
17
|
+
export class StudioSession {
|
|
18
|
+
#history;
|
|
19
|
+
#mode;
|
|
20
|
+
#sessionGeneration;
|
|
21
|
+
#savedRevision;
|
|
22
|
+
#savedStateVersion = 0;
|
|
23
|
+
#selection = [];
|
|
24
|
+
constructor(options) {
|
|
25
|
+
this.#history = new StudioHistory(options.document, options.maximumHistoryEntries ?? 100);
|
|
26
|
+
this.#mode = resolveModeOption(options);
|
|
27
|
+
this.#sessionGeneration = options.sessionGeneration;
|
|
28
|
+
this.#savedRevision = options.document.revision;
|
|
29
|
+
}
|
|
30
|
+
get canRedo() {
|
|
31
|
+
return this.#history.canRedo;
|
|
32
|
+
}
|
|
33
|
+
get canUndo() {
|
|
34
|
+
return this.#history.canUndo;
|
|
35
|
+
}
|
|
36
|
+
get dirty() {
|
|
37
|
+
return this.#history.stateVersion !== this.#savedStateVersion;
|
|
38
|
+
}
|
|
39
|
+
get document() {
|
|
40
|
+
return this.#history.current;
|
|
41
|
+
}
|
|
42
|
+
/** The session mode fixed at creation. */
|
|
43
|
+
get mode() {
|
|
44
|
+
return this.#mode;
|
|
45
|
+
}
|
|
46
|
+
get selection() {
|
|
47
|
+
return [...this.#selection];
|
|
48
|
+
}
|
|
49
|
+
/** The legacy read-only projection of the session mode. */
|
|
50
|
+
get sessionState() {
|
|
51
|
+
return this.#mode === 'read-only' ? 'read-only' : 'editable';
|
|
52
|
+
}
|
|
53
|
+
get stateVersion() {
|
|
54
|
+
return this.#history.stateVersion;
|
|
55
|
+
}
|
|
56
|
+
execute(command) {
|
|
57
|
+
this.#assertWritable();
|
|
58
|
+
this.#assertLiveGeneration(command);
|
|
59
|
+
assertModePermitsCommandType(this.#mode, command.type);
|
|
60
|
+
if (this.#mode === 'hybrid') {
|
|
61
|
+
assertHybridCommandInBounds(this.#history.current, command);
|
|
62
|
+
}
|
|
63
|
+
if (command.expectedRevision !== undefined &&
|
|
64
|
+
command.expectedRevision !== this.#savedRevision) {
|
|
65
|
+
throw new StudioCommandError('stale-state', `Command expects revision ${command.expectedRevision}, but the session holds ${this.#savedRevision}.`);
|
|
66
|
+
}
|
|
67
|
+
const next = this.#history.execute(command);
|
|
68
|
+
this.#pruneSelection(next);
|
|
69
|
+
return next;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Applies one entry field command behind the same session guards as
|
|
73
|
+
* `execute`, so no UI dispatch path bypasses the mode boundary. Entry
|
|
74
|
+
* state stays host-owned: the result is returned, not recorded in the
|
|
75
|
+
* Blueprint history, and the selection is untouched.
|
|
76
|
+
*/
|
|
77
|
+
executeEntryCommand(entry, command) {
|
|
78
|
+
this.#assertWritable();
|
|
79
|
+
this.#assertLiveGeneration(command);
|
|
80
|
+
assertModePermitsCommandType(this.#mode, command.type);
|
|
81
|
+
if (command.expectedRevision !== undefined && command.expectedRevision !== entry.revision) {
|
|
82
|
+
throw new StudioCommandError('stale-state', `Command expects revision ${command.expectedRevision}, but the entry holds ${entry.revision}.`);
|
|
83
|
+
}
|
|
84
|
+
return applyEntryCommand(entry, command);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Applies one content-model command behind the same session guards as
|
|
88
|
+
* `execute`, so no UI dispatch path bypasses the mode boundary. Model
|
|
89
|
+
* state stays host-owned: the result is returned, not recorded in the
|
|
90
|
+
* Blueprint history, and the selection is untouched.
|
|
91
|
+
*/
|
|
92
|
+
executeModelCommand(model, command) {
|
|
93
|
+
this.#assertWritable();
|
|
94
|
+
this.#assertLiveGeneration(command);
|
|
95
|
+
assertModePermitsCommandType(this.#mode, command.type);
|
|
96
|
+
if (command.expectedRevision !== undefined && command.expectedRevision !== model.revision) {
|
|
97
|
+
throw new StudioCommandError('stale-state', `Command expects revision ${command.expectedRevision}, but the model holds ${model.revision}.`);
|
|
98
|
+
}
|
|
99
|
+
return applyModelCommand(model, command);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Records the host revision that accepted a local snapshot and rebases every
|
|
103
|
+
* undo/redo snapshot onto it. Callers normally omit `stateVersion`, which
|
|
104
|
+
* marks the current document clean. A host save that settles after another
|
|
105
|
+
* local edit passes the captured snapshot version instead: the accepted base
|
|
106
|
+
* revision advances while the newer draft stays dirty.
|
|
107
|
+
*/
|
|
108
|
+
markSaved(revision, stateVersion = this.#history.stateVersion) {
|
|
109
|
+
if (!Number.isSafeInteger(stateVersion) ||
|
|
110
|
+
stateVersion < 0 ||
|
|
111
|
+
stateVersion > this.#history.stateVersion) {
|
|
112
|
+
throw new RangeError('A saved snapshot version must be a known non-negative state version.');
|
|
113
|
+
}
|
|
114
|
+
this.#history.rebaseRevision(revision);
|
|
115
|
+
this.#savedRevision = revision;
|
|
116
|
+
this.#savedStateVersion = stateVersion;
|
|
117
|
+
}
|
|
118
|
+
get savedRevision() {
|
|
119
|
+
return this.#savedRevision;
|
|
120
|
+
}
|
|
121
|
+
select(nodeIds) {
|
|
122
|
+
const document = this.#history.current;
|
|
123
|
+
const unique = [];
|
|
124
|
+
for (const nodeId of nodeIds) {
|
|
125
|
+
if (unique.includes(nodeId)) {
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
if (!containsNode(document.roots, nodeId)) {
|
|
129
|
+
throw new StudioCommandError('node-not-found', `Node ${nodeId} cannot be selected because it is not in the document.`);
|
|
130
|
+
}
|
|
131
|
+
unique.push(nodeId);
|
|
132
|
+
}
|
|
133
|
+
this.#selection = unique;
|
|
134
|
+
return this.selection;
|
|
135
|
+
}
|
|
136
|
+
clearSelection() {
|
|
137
|
+
this.#selection = [];
|
|
138
|
+
}
|
|
139
|
+
undo() {
|
|
140
|
+
const document = this.#history.undo();
|
|
141
|
+
this.#pruneSelection(document);
|
|
142
|
+
return document;
|
|
143
|
+
}
|
|
144
|
+
redo() {
|
|
145
|
+
const document = this.#history.redo();
|
|
146
|
+
this.#pruneSelection(document);
|
|
147
|
+
return document;
|
|
148
|
+
}
|
|
149
|
+
#assertWritable() {
|
|
150
|
+
if (this.#mode === 'read-only') {
|
|
151
|
+
throw new StudioCommandError('read-only-session', 'A read-only session never applies a persistent command.');
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
#assertLiveGeneration(command) {
|
|
155
|
+
if (command.sessionGeneration !== this.#sessionGeneration) {
|
|
156
|
+
throw new StudioCommandError('stale-generation', `Command generation ${command.sessionGeneration} does not match the active session generation.`);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
#pruneSelection(document) {
|
|
160
|
+
if (this.#selection.length > 0) {
|
|
161
|
+
this.#selection = this.#selection.filter((nodeId) => containsNode(document.roots, nodeId));
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
function resolveModeOption(options) {
|
|
166
|
+
const { mode, sessionState } = options;
|
|
167
|
+
if (mode === undefined) {
|
|
168
|
+
if (sessionState === undefined) {
|
|
169
|
+
throw new RangeError('A session requires an explicit mode or session state.');
|
|
170
|
+
}
|
|
171
|
+
return sessionState === 'read-only' ? 'read-only' : 'blueprint';
|
|
172
|
+
}
|
|
173
|
+
if (sessionState !== undefined && (sessionState === 'read-only') !== (mode === 'read-only')) {
|
|
174
|
+
throw new RangeError(`Session mode ${mode} contradicts session state ${sessionState}; mode read-only is the read-only state.`);
|
|
175
|
+
}
|
|
176
|
+
return mode;
|
|
177
|
+
}
|
|
178
|
+
function containsNode(nodes, nodeId) {
|
|
179
|
+
for (const node of nodes) {
|
|
180
|
+
if (node.id === nodeId) {
|
|
181
|
+
return true;
|
|
182
|
+
}
|
|
183
|
+
for (const children of Object.values(node.slots)) {
|
|
184
|
+
if (containsNode(children, nodeId)) {
|
|
185
|
+
return true;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return false;
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical policy for external resource URLs (remote media imports, embeds).
|
|
3
|
+
* Studio never fetches author-supplied URLs itself; hosts that do MUST apply
|
|
4
|
+
* this validator before any fetch. The policy is purely lexical and
|
|
5
|
+
* deterministic — it classifies the WHATWG-parsed URL without network access,
|
|
6
|
+
* DNS resolution, clocks, or locale sensitivity. DNS-rebinding defence,
|
|
7
|
+
* redirect re-validation, and response verification therefore remain host
|
|
8
|
+
* runtime obligations of the hardened fetcher.
|
|
9
|
+
*/
|
|
10
|
+
export type ExternalUrlRejectionReason = 'credentials-in-url' | 'host-not-allowed' | 'malformed' | 'scheme-not-allowed' | 'url-too-long';
|
|
11
|
+
export type ExternalUrlValidationResult = {
|
|
12
|
+
ok: false;
|
|
13
|
+
reason: ExternalUrlRejectionReason;
|
|
14
|
+
} | {
|
|
15
|
+
ok: true;
|
|
16
|
+
url: string;
|
|
17
|
+
};
|
|
18
|
+
export interface ExternalUrlPolicy {
|
|
19
|
+
/**
|
|
20
|
+
* Schemes admitted for fetching, compared against the parsed URL's
|
|
21
|
+
* lowercase protocol including its trailing colon (for example `https:`).
|
|
22
|
+
*/
|
|
23
|
+
allowedSchemes: readonly string[];
|
|
24
|
+
/**
|
|
25
|
+
* Whether loopback, private, link-local, carrier-grade NAT, unspecified,
|
|
26
|
+
* broadcast, and special-use (`localhost`, `.local`, `.internal`,
|
|
27
|
+
* `.home.arpa`) hosts are admitted. An empty host is rejected regardless.
|
|
28
|
+
*/
|
|
29
|
+
allowPrivateHosts: boolean;
|
|
30
|
+
/** Maximum accepted length of the raw candidate string, in code units. */
|
|
31
|
+
maxLength: number;
|
|
32
|
+
}
|
|
33
|
+
export declare const STUDIO_DEFAULT_URL_POLICY: Readonly<ExternalUrlPolicy>;
|
|
34
|
+
/**
|
|
35
|
+
* Validate one external resource URL against the policy. The candidate is
|
|
36
|
+
* parsed with the WHATWG URL parser and classification operates on the parsed
|
|
37
|
+
* `hostname`, so decimal, octal, hexadecimal, and dotted-partial IPv4
|
|
38
|
+
* spellings (`2130706433`, `0x7f000001`, `017700000001`, `127.1`) are
|
|
39
|
+
* normalized before range checks and cannot smuggle a private address past
|
|
40
|
+
* the policy. Punycode and IDN hosts that name none of the disallowed ranges
|
|
41
|
+
* are accepted lexically; whether such a name ultimately resolves to a
|
|
42
|
+
* private address is a DNS-time question the host fetcher must re-check.
|
|
43
|
+
*/
|
|
44
|
+
export declare function validateExternalUrl(candidate: string, policy?: ExternalUrlPolicy): ExternalUrlValidationResult;
|
|
45
|
+
//# sourceMappingURL=url-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-policy.d.ts","sourceRoot":"","sources":["../src/url-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiBH,MAAM,MAAM,0BAA0B,GACpC,oBAAoB,GAAG,kBAAkB,GAAG,WAAW,GAAG,oBAAoB,GAAG,cAAc,CAAC;AAElG,MAAM,MAAM,2BAA2B,GACrC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,0BAA0B,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;;;OAIG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,iBAAiB,CAIhE,CAAC;AAEH;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,iBAA6C,GACpD,2BAA2B,CAoB7B"}
|