@flyingrobots/bijou 5.0.0 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -0
- package/dist/core/active-binding-collection.d.ts +49 -0
- package/dist/core/active-binding-collection.d.ts.map +1 -0
- package/dist/core/active-binding-collection.js +264 -0
- package/dist/core/active-binding-collection.js.map +1 -0
- package/dist/core/app-shell-composition.d.ts +44 -0
- package/dist/core/app-shell-composition.d.ts.map +1 -0
- package/dist/core/app-shell-composition.js +123 -0
- package/dist/core/app-shell-composition.js.map +1 -0
- package/dist/core/binding-frame-update.d.ts +18 -0
- package/dist/core/binding-frame-update.d.ts.map +1 -0
- package/dist/core/binding-frame-update.js +133 -0
- package/dist/core/binding-frame-update.js.map +1 -0
- package/dist/core/binding-lifecycle.d.ts +65 -0
- package/dist/core/binding-lifecycle.d.ts.map +1 -0
- package/dist/core/binding-lifecycle.js +357 -0
- package/dist/core/binding-lifecycle.js.map +1 -0
- package/dist/core/binding.d.ts +192 -0
- package/dist/core/binding.d.ts.map +1 -0
- package/dist/core/binding.js +587 -0
- package/dist/core/binding.js.map +1 -0
- package/dist/core/block-metadata.d.ts +113 -0
- package/dist/core/block-metadata.d.ts.map +1 -0
- package/dist/core/block-metadata.js +376 -0
- package/dist/core/block-metadata.js.map +1 -0
- package/dist/core/block-tree-render.d.ts +17 -0
- package/dist/core/block-tree-render.d.ts.map +1 -0
- package/dist/core/block-tree-render.js +186 -0
- package/dist/core/block-tree-render.js.map +1 -0
- package/dist/core/component-metadata.d.ts +63 -0
- package/dist/core/component-metadata.d.ts.map +1 -0
- package/dist/core/component-metadata.js +158 -0
- package/dist/core/component-metadata.js.map +1 -0
- package/dist/core/components/dag-edges.d.ts +9 -3
- package/dist/core/components/dag-edges.d.ts.map +1 -1
- package/dist/core/components/dag-edges.js +41 -10
- package/dist/core/components/dag-edges.js.map +1 -1
- package/dist/core/components/dag-render.d.ts +1 -1
- package/dist/core/components/dag-render.d.ts.map +1 -1
- package/dist/core/components/dag-render.js +193 -72
- package/dist/core/components/dag-render.js.map +1 -1
- package/dist/core/components/dag-source.d.ts +4 -0
- package/dist/core/components/dag-source.d.ts.map +1 -1
- package/dist/core/components/dag-source.js +10 -0
- package/dist/core/components/dag-source.js.map +1 -1
- package/dist/core/components/dag.d.ts +13 -0
- package/dist/core/components/dag.d.ts.map +1 -1
- package/dist/core/components/dag.js.map +1 -1
- package/dist/core/components/index.d.ts +2 -2
- package/dist/core/components/index.d.ts.map +1 -1
- package/dist/core/components/index.js.map +1 -1
- package/dist/core/components/table-v3.d.ts +1 -1
- package/dist/core/components/table-v3.d.ts.map +1 -1
- package/dist/core/components/table-v3.js +136 -21
- package/dist/core/components/table-v3.js.map +1 -1
- package/dist/core/components/table.d.ts +36 -6
- package/dist/core/components/table.d.ts.map +1 -1
- package/dist/core/components/table.js +530 -74
- package/dist/core/components/table.js.map +1 -1
- package/dist/core/fixture-promotion.d.ts +33 -0
- package/dist/core/fixture-promotion.d.ts.map +1 -0
- package/dist/core/fixture-promotion.js +62 -0
- package/dist/core/fixture-promotion.js.map +1 -0
- package/dist/core/layout/envelope.d.ts +174 -0
- package/dist/core/layout/envelope.d.ts.map +1 -0
- package/dist/core/layout/envelope.js +336 -0
- package/dist/core/layout/envelope.js.map +1 -0
- package/dist/core/mode-lowering.d.ts +48 -0
- package/dist/core/mode-lowering.d.ts.map +1 -0
- package/dist/core/mode-lowering.js +176 -0
- package/dist/core/mode-lowering.js.map +1 -0
- package/dist/core/schema-block.d.ts +63 -0
- package/dist/core/schema-block.d.ts.map +1 -0
- package/dist/core/schema-block.js +361 -0
- package/dist/core/schema-block.js.map +1 -0
- package/dist/core/selection.d.ts +127 -0
- package/dist/core/selection.d.ts.map +1 -0
- package/dist/core/selection.js +350 -0
- package/dist/core/selection.js.map +1 -0
- package/dist/core/standard-blocks.d.ts +264 -0
- package/dist/core/standard-blocks.d.ts.map +1 -0
- package/dist/core/standard-blocks.js +2518 -0
- package/dist/core/standard-blocks.js.map +1 -0
- package/dist/core/story-capture.d.ts +48 -0
- package/dist/core/story-capture.d.ts.map +1 -0
- package/dist/core/story-capture.js +64 -0
- package/dist/core/story-capture.js.map +1 -0
- package/dist/core/text/wrap.d.ts.map +1 -1
- package/dist/core/text/wrap.js +37 -20
- package/dist/core/text/wrap.js.map +1 -1
- package/dist/core/theme/doctor.d.ts +37 -0
- package/dist/core/theme/doctor.d.ts.map +1 -0
- package/dist/core/theme/doctor.js +175 -0
- package/dist/core/theme/doctor.js.map +1 -0
- package/dist/core/theme/dtcg.d.ts.map +1 -1
- package/dist/core/theme/dtcg.js +10 -1
- package/dist/core/theme/dtcg.js.map +1 -1
- package/dist/core/theme/index.d.ts +2 -0
- package/dist/core/theme/index.d.ts.map +1 -1
- package/dist/core/theme/index.js +2 -0
- package/dist/core/theme/index.js.map +1 -1
- package/dist/core/theme/presets.d.ts.map +1 -1
- package/dist/core/theme/presets.js +4 -0
- package/dist/core/theme/presets.js.map +1 -1
- package/dist/core/theme/tokens.d.ts +1 -1
- package/dist/core/theme/tokens.d.ts.map +1 -1
- package/dist/index.d.ts +17 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-block.d.ts","sourceRoot":"","sources":["../../src/core/schema-block.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,WAAW,EACX,oBAAoB,EACpB,YAAY,EACb,MAAM,cAAc,CAAC;AAEtB,QAAA,MAAM,0BAA0B,EAAE,OAAO,MAAqC,CAAC;AAC/E,QAAA,MAAM,wBAAwB,EAAE,OAAO,MAA6C,CAAC;AASrF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,iBAAiB,CAAC,IAAI,IAC9B;IACA,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;CACnC,GACC;IACA,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC9C,CAAC;AAEJ,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,uBAAuB,CAAC,IAAI;IAC3C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC5D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,sBAAsB,CAAC;CAClD;AAED,MAAM,WAAW,kBAAkB,CAAC,IAAI,GAAG,OAAO;IAChD,QAAQ,CAAC,CAAC,0BAA0B,CAAC,EAAE,IAAI,CAAC;IAC5C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC5D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,sBAAsB,CAAC;CAClD;AAED,MAAM,MAAM,qBAAqB,CAAC,MAAM,GAAG,OAAO,IAC9C,gBAAgB,CAAC,MAAM,CAAC,GACxB;IACA,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CACzC,CAAC;AAEJ,MAAM,WAAW,+BAA+B,CAC9C,IAAI,GAAG,OAAO,EACd,MAAM,GAAG,OAAO,EAChB,MAAM,GAAG,OAAO;IAEhB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,qBAAqB,CAAC,MAAM,CAAC,CAAC;CAC5E;AAED,MAAM,WAAW,0BAA0B,CACzC,IAAI,GAAG,OAAO,EACd,MAAM,GAAG,OAAO,EAChB,MAAM,GAAG,OAAO,CAChB,SAAQ,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;IAC7D,QAAQ,CAAC,CAAC,wBAAwB,CAAC,EAAE,IAAI,CAAC;CAC3C;AAED,MAAM,MAAM,qBAAqB,CAAC,MAAM,GAAG,OAAO,IAC9C;IACA,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;CACxC,GACC;IACA,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;CACxC,CAAC;AAEJ,wBAAgB,wBAAwB,CAAC,IAAI,EAC3C,KAAK,EAAE,uBAAuB,CAAC,IAAI,CAAC,GACnC,kBAAkB,CAAC,IAAI,CAAC,CA0B1B;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAOhF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EACnC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAChC,KAAK,EAAE,OAAO,GACb,iBAAiB,CAAC,IAAI,CAAC,CAMzB;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,GAAG,OAAO,EACd,MAAM,GAAG,OAAO,EAChB,MAAM,GAAG,OAAO,EAEhB,KAAK,EAAE,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,GAC3D,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAuBlD;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,0BAA0B,CAOrC;AAED,wBAAgB,oBAAoB,CAClC,IAAI,GAAG,OAAO,EACd,MAAM,GAAG,OAAO,EAChB,MAAM,GAAG,OAAO,EAEhB,KAAK,EAAE,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EACvD,KAAK,EAAE,OAAO,GACb,qBAAqB,CAAC,MAAM,CAAC,CAoB/B"}
|
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
import { isBlockDefinition, } from './block-metadata.js';
|
|
2
|
+
const BLOCK_SCHEMA_ADAPTER_BRAND = Symbol('BlockSchemaAdapter');
|
|
3
|
+
const SCHEMA_BOUND_BLOCK_BRAND = Symbol('SchemaBoundBlockDefinition');
|
|
4
|
+
const BINDING_ISSUE_SEVERITIES = [
|
|
5
|
+
'info',
|
|
6
|
+
'warning',
|
|
7
|
+
'error',
|
|
8
|
+
];
|
|
9
|
+
const EMPTY_BINDING_FACTS = Object.freeze([]);
|
|
10
|
+
export function defineBlockSchemaAdapter(input) {
|
|
11
|
+
if (!isObjectLike(input)) {
|
|
12
|
+
throw new Error('block schema adapter: input must be an object');
|
|
13
|
+
}
|
|
14
|
+
const id = normalizeRequiredText({
|
|
15
|
+
scope: 'block schema adapter',
|
|
16
|
+
field: 'id',
|
|
17
|
+
value: input.id,
|
|
18
|
+
});
|
|
19
|
+
if (typeof input.parse !== 'function') {
|
|
20
|
+
throw new Error('block schema adapter: parse must be a function');
|
|
21
|
+
}
|
|
22
|
+
const parse = input.parse;
|
|
23
|
+
const describe = input.describe;
|
|
24
|
+
const adapter = {
|
|
25
|
+
id,
|
|
26
|
+
parse: (value) => normalizeSchemaResult(parse(value)),
|
|
27
|
+
...(describe === undefined
|
|
28
|
+
? {}
|
|
29
|
+
: { describe: () => normalizeSchemaDescription(describe() ?? {}) }),
|
|
30
|
+
};
|
|
31
|
+
Object.defineProperty(adapter, BLOCK_SCHEMA_ADAPTER_BRAND, { value: true });
|
|
32
|
+
return Object.freeze(adapter);
|
|
33
|
+
}
|
|
34
|
+
export function isBlockSchemaAdapter(value) {
|
|
35
|
+
return Boolean(value
|
|
36
|
+
&& typeof value === 'object'
|
|
37
|
+
&& Object.prototype.hasOwnProperty.call(value, BLOCK_SCHEMA_ADAPTER_BRAND)
|
|
38
|
+
&& value[BLOCK_SCHEMA_ADAPTER_BRAND] === true);
|
|
39
|
+
}
|
|
40
|
+
export function parseBlockSchema(schema, input) {
|
|
41
|
+
if (!isBlockSchemaAdapter(schema)) {
|
|
42
|
+
throw new Error('block schema parse: schema must be created by defineBlockSchemaAdapter()');
|
|
43
|
+
}
|
|
44
|
+
return schema.parse(input);
|
|
45
|
+
}
|
|
46
|
+
export function defineSchemaBlock(input) {
|
|
47
|
+
if (!isObjectLike(input)) {
|
|
48
|
+
throw new Error('schema block: input must be an object');
|
|
49
|
+
}
|
|
50
|
+
if (!isBlockDefinition(input.block)) {
|
|
51
|
+
throw new Error('schema block: block must be created by defineBlock()');
|
|
52
|
+
}
|
|
53
|
+
if (!isBlockSchemaAdapter(input.schema)) {
|
|
54
|
+
throw new Error('schema block: schema must be created by defineBlockSchemaAdapter()');
|
|
55
|
+
}
|
|
56
|
+
if (typeof input.bind !== 'function') {
|
|
57
|
+
throw new Error('schema block: bind must be a function');
|
|
58
|
+
}
|
|
59
|
+
const block = {
|
|
60
|
+
block: input.block,
|
|
61
|
+
schema: input.schema,
|
|
62
|
+
bind: input.bind,
|
|
63
|
+
};
|
|
64
|
+
Object.defineProperty(block, SCHEMA_BOUND_BLOCK_BRAND, { value: true });
|
|
65
|
+
return Object.freeze(block);
|
|
66
|
+
}
|
|
67
|
+
export function isSchemaBoundBlockDefinition(value) {
|
|
68
|
+
return Boolean(value
|
|
69
|
+
&& typeof value === 'object'
|
|
70
|
+
&& Object.prototype.hasOwnProperty.call(value, SCHEMA_BOUND_BLOCK_BRAND)
|
|
71
|
+
&& value[SCHEMA_BOUND_BLOCK_BRAND] === true);
|
|
72
|
+
}
|
|
73
|
+
export function bindSchemaBlockInput(block, input) {
|
|
74
|
+
if (!isSchemaBoundBlockDefinition(block)) {
|
|
75
|
+
throw new Error('schema block bind: block must be created by defineSchemaBlock()');
|
|
76
|
+
}
|
|
77
|
+
const parsed = parseBlockSchema(block.schema, input);
|
|
78
|
+
if (!parsed.ok) {
|
|
79
|
+
return Object.freeze({
|
|
80
|
+
ok: false,
|
|
81
|
+
issues: parsed.issues,
|
|
82
|
+
facts: EMPTY_BINDING_FACTS,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
const output = normalizeBindOutput(block.bind(parsed.data));
|
|
86
|
+
return Object.freeze({
|
|
87
|
+
ok: true,
|
|
88
|
+
input: output.input,
|
|
89
|
+
facts: output.facts,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
function normalizeSchemaResult(result) {
|
|
93
|
+
if (!isObjectLike(result)) {
|
|
94
|
+
throw new Error('block schema result: result must be an object');
|
|
95
|
+
}
|
|
96
|
+
if (result.ok === true) {
|
|
97
|
+
if (!Object.prototype.hasOwnProperty.call(result, 'data')) {
|
|
98
|
+
throw new Error('block schema result: data is required for ok result');
|
|
99
|
+
}
|
|
100
|
+
return Object.freeze({
|
|
101
|
+
ok: true,
|
|
102
|
+
data: freezeInertData(result.data, 'data'),
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
if (result.ok === false) {
|
|
106
|
+
return Object.freeze({
|
|
107
|
+
ok: false,
|
|
108
|
+
issues: freezeSchemaIssues(result.issues),
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
throw new Error('block schema result: ok must be true or false');
|
|
112
|
+
}
|
|
113
|
+
function normalizeSchemaDescription(description) {
|
|
114
|
+
if (!isObjectLike(description)) {
|
|
115
|
+
throw new Error('block schema description: description must be an object');
|
|
116
|
+
}
|
|
117
|
+
return deepFreeze({
|
|
118
|
+
requiredFields: freezeStringList(description.requiredFields, 'requiredFields'),
|
|
119
|
+
optionalFields: freezeStringList(description.optionalFields, 'optionalFields'),
|
|
120
|
+
redactedFields: freezeStringList(description.redactedFields, 'redactedFields'),
|
|
121
|
+
facts: freezeFacts(description.facts, 'block schema description'),
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
function normalizeBindOutput(output) {
|
|
125
|
+
if (!isObjectLike(output)) {
|
|
126
|
+
throw new Error('schema block bind: bind output must be an object');
|
|
127
|
+
}
|
|
128
|
+
if (!isPlainObject(output)) {
|
|
129
|
+
throw new Error('schema block bind: bind output must be a plain object');
|
|
130
|
+
}
|
|
131
|
+
if (Object.prototype.hasOwnProperty.call(output, 'input')) {
|
|
132
|
+
assertOnlyKeys(output, ['input', 'facts'], {
|
|
133
|
+
scope: 'schema block bind',
|
|
134
|
+
label: 'bind output',
|
|
135
|
+
});
|
|
136
|
+
const wrappedOutput = output;
|
|
137
|
+
if (!isObjectLike(wrappedOutput.input)) {
|
|
138
|
+
throw new Error('schema block bind: input must be an object');
|
|
139
|
+
}
|
|
140
|
+
if (!isPlainObject(wrappedOutput.input)) {
|
|
141
|
+
throw new Error('schema block bind: input must be a plain object');
|
|
142
|
+
}
|
|
143
|
+
assertOnlyKeys(wrappedOutput.input, ['config', 'slots', 'mode'], {
|
|
144
|
+
scope: 'schema block bind',
|
|
145
|
+
label: 'input',
|
|
146
|
+
});
|
|
147
|
+
return {
|
|
148
|
+
input: freezeRenderInput(wrappedOutput.input),
|
|
149
|
+
facts: freezeFacts(wrappedOutput.facts, 'schema block bind'),
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
assertOnlyKeys(output, ['config', 'slots', 'mode'], {
|
|
153
|
+
scope: 'schema block bind',
|
|
154
|
+
label: 'bind output',
|
|
155
|
+
});
|
|
156
|
+
return {
|
|
157
|
+
input: freezeRenderInput(output),
|
|
158
|
+
facts: EMPTY_BINDING_FACTS,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
function freezeRenderInput(input) {
|
|
162
|
+
const normalizedMode = normalizeOutputMode(input.mode);
|
|
163
|
+
const normalizedInput = {
|
|
164
|
+
...(input.config === undefined
|
|
165
|
+
? {}
|
|
166
|
+
: { config: freezeInertData(input.config, 'input.config') }),
|
|
167
|
+
...(input.slots === undefined
|
|
168
|
+
? {}
|
|
169
|
+
: { slots: freezeInertData(input.slots, 'input.slots') }),
|
|
170
|
+
...(normalizedMode === undefined ? {} : { mode: normalizedMode }),
|
|
171
|
+
};
|
|
172
|
+
return Object.freeze(normalizedInput);
|
|
173
|
+
}
|
|
174
|
+
function freezeSchemaIssues(issues) {
|
|
175
|
+
if (issues === undefined) {
|
|
176
|
+
throw new Error('block schema result: failed result requires at least one issue');
|
|
177
|
+
}
|
|
178
|
+
if (!Array.isArray(issues)) {
|
|
179
|
+
throw new Error('block schema result: issues must be an array');
|
|
180
|
+
}
|
|
181
|
+
if (issues.length === 0) {
|
|
182
|
+
throw new Error('block schema result: failed result requires at least one issue');
|
|
183
|
+
}
|
|
184
|
+
return deepFreeze(issues.map((issue, index) => normalizeIssue(issue, index)));
|
|
185
|
+
}
|
|
186
|
+
function normalizeIssue(issue, index) {
|
|
187
|
+
if (!isObjectLike(issue)) {
|
|
188
|
+
throw new Error(`block schema issue: issue at index ${index} must be an object`);
|
|
189
|
+
}
|
|
190
|
+
if (!BINDING_ISSUE_SEVERITIES.includes(issue.severity)) {
|
|
191
|
+
throw new Error(`block schema issue: unsupported severity ${String(issue.severity)} at index ${index}`);
|
|
192
|
+
}
|
|
193
|
+
return {
|
|
194
|
+
severity: issue.severity,
|
|
195
|
+
code: normalizeRequiredText({
|
|
196
|
+
scope: 'block schema issue',
|
|
197
|
+
field: `issues[${index}].code`,
|
|
198
|
+
value: issue.code,
|
|
199
|
+
}),
|
|
200
|
+
message: normalizeRequiredText({
|
|
201
|
+
scope: 'block schema issue',
|
|
202
|
+
field: `issues[${index}].message`,
|
|
203
|
+
value: issue.message,
|
|
204
|
+
}),
|
|
205
|
+
path: optionalTrimmedText(issue.path, {
|
|
206
|
+
scope: 'block schema issue',
|
|
207
|
+
field: `issues[${index}].path`,
|
|
208
|
+
}),
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
function freezeFacts(facts, scope = 'block schema facts') {
|
|
212
|
+
if (facts === undefined) {
|
|
213
|
+
return EMPTY_BINDING_FACTS;
|
|
214
|
+
}
|
|
215
|
+
if (!Array.isArray(facts)) {
|
|
216
|
+
throw new Error(`${scope}: facts must be an array`);
|
|
217
|
+
}
|
|
218
|
+
if (facts.length === 0) {
|
|
219
|
+
return EMPTY_BINDING_FACTS;
|
|
220
|
+
}
|
|
221
|
+
return deepFreeze([...facts]);
|
|
222
|
+
}
|
|
223
|
+
function freezeStringList(values, field) {
|
|
224
|
+
if (values === undefined) {
|
|
225
|
+
return undefined;
|
|
226
|
+
}
|
|
227
|
+
if (!Array.isArray(values)) {
|
|
228
|
+
throw new Error(`block schema description: ${field} must be an array`);
|
|
229
|
+
}
|
|
230
|
+
return Object.freeze(values.map((value, index) => normalizeRequiredText({
|
|
231
|
+
scope: 'block schema description',
|
|
232
|
+
field: `${field}[${index}]`,
|
|
233
|
+
value,
|
|
234
|
+
})));
|
|
235
|
+
}
|
|
236
|
+
function normalizeOutputMode(value) {
|
|
237
|
+
if (value === undefined) {
|
|
238
|
+
return undefined;
|
|
239
|
+
}
|
|
240
|
+
if (value === 'interactive'
|
|
241
|
+
|| value === 'static'
|
|
242
|
+
|| value === 'pipe'
|
|
243
|
+
|| value === 'accessible') {
|
|
244
|
+
return value;
|
|
245
|
+
}
|
|
246
|
+
throw new Error(`schema block bind: unsupported mode ${String(value)}`);
|
|
247
|
+
}
|
|
248
|
+
function normalizeRequiredText(options) {
|
|
249
|
+
if (typeof options.value !== 'string') {
|
|
250
|
+
throw new Error(`${options.scope}: ${options.field} must be a string`);
|
|
251
|
+
}
|
|
252
|
+
const normalized = options.value.trim();
|
|
253
|
+
if (normalized === '') {
|
|
254
|
+
throw new Error(`${options.scope}: ${options.field} is required`);
|
|
255
|
+
}
|
|
256
|
+
return normalized;
|
|
257
|
+
}
|
|
258
|
+
function optionalTrimmedText(value, options) {
|
|
259
|
+
if (value === undefined) {
|
|
260
|
+
return undefined;
|
|
261
|
+
}
|
|
262
|
+
if (typeof value !== 'string') {
|
|
263
|
+
throw new Error(`${options.scope}: ${options.field} must be a string`);
|
|
264
|
+
}
|
|
265
|
+
const normalized = value.trim();
|
|
266
|
+
return normalized === '' ? undefined : normalized;
|
|
267
|
+
}
|
|
268
|
+
function isObjectLike(value) {
|
|
269
|
+
return value !== null && typeof value === 'object';
|
|
270
|
+
}
|
|
271
|
+
function assertOnlyKeys(value, allowedKeys, options) {
|
|
272
|
+
for (const key of Reflect.ownKeys(value)) {
|
|
273
|
+
if (typeof key !== 'string' || !allowedKeys.includes(key)) {
|
|
274
|
+
throw new Error(`${options.scope}: unsupported ${options.label} key ${keyText(key)}`);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
function keyText(key) {
|
|
279
|
+
return typeof key === 'string' ? key : key.toString();
|
|
280
|
+
}
|
|
281
|
+
function freezeInertData(value, path) {
|
|
282
|
+
return deepFreeze(cloneInertData(value, path));
|
|
283
|
+
}
|
|
284
|
+
function cloneInertData(value, path, seen = new WeakSet()) {
|
|
285
|
+
if (value === null
|
|
286
|
+
|| typeof value === 'string'
|
|
287
|
+
|| typeof value === 'number'
|
|
288
|
+
|| typeof value === 'boolean') {
|
|
289
|
+
return value;
|
|
290
|
+
}
|
|
291
|
+
if (typeof value === 'bigint' || typeof value === 'symbol' || typeof value === 'function') {
|
|
292
|
+
throw new Error(`block schema data: unsupported ${typeof value} at ${path}`);
|
|
293
|
+
}
|
|
294
|
+
if (value === undefined) {
|
|
295
|
+
throw new Error(`block schema data: unsupported undefined at ${path}`);
|
|
296
|
+
}
|
|
297
|
+
if (typeof value !== 'object') {
|
|
298
|
+
throw new Error(`block schema data: unsupported ${typeof value} at ${path}`);
|
|
299
|
+
}
|
|
300
|
+
const objectValue = value;
|
|
301
|
+
if (seen.has(objectValue)) {
|
|
302
|
+
throw new Error(`block schema data: circular reference at ${path}`);
|
|
303
|
+
}
|
|
304
|
+
seen.add(objectValue);
|
|
305
|
+
try {
|
|
306
|
+
if (Array.isArray(value)) {
|
|
307
|
+
return value.map((item, index) => cloneInertData(item, `${path}[${index}]`, seen));
|
|
308
|
+
}
|
|
309
|
+
if (!isPlainObject(value)) {
|
|
310
|
+
throw new Error(`block schema data: unsupported ${objectKind(value)} at ${path}`);
|
|
311
|
+
}
|
|
312
|
+
const clone = Object.create(Object.getPrototypeOf(value));
|
|
313
|
+
const descriptors = Object.getOwnPropertyDescriptors(value);
|
|
314
|
+
for (const key of Reflect.ownKeys(descriptors)) {
|
|
315
|
+
if (typeof key === 'symbol') {
|
|
316
|
+
throw new Error(`block schema data: unsupported symbol property at ${path}`);
|
|
317
|
+
}
|
|
318
|
+
const propertyPath = `${path}.${key}`;
|
|
319
|
+
const descriptor = descriptors[key];
|
|
320
|
+
if (descriptor === undefined) {
|
|
321
|
+
continue;
|
|
322
|
+
}
|
|
323
|
+
if (!descriptor.enumerable) {
|
|
324
|
+
throw new Error(`block schema data: unsupported non-enumerable property at ${propertyPath}`);
|
|
325
|
+
}
|
|
326
|
+
if ('get' in descriptor || 'set' in descriptor) {
|
|
327
|
+
throw new Error(`block schema data: unsupported accessor at ${propertyPath}`);
|
|
328
|
+
}
|
|
329
|
+
clone[key] = cloneInertData(descriptor.value, propertyPath, seen);
|
|
330
|
+
}
|
|
331
|
+
return clone;
|
|
332
|
+
}
|
|
333
|
+
finally {
|
|
334
|
+
seen.delete(objectValue);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
function isPlainObject(value) {
|
|
338
|
+
const prototype = Object.getPrototypeOf(value);
|
|
339
|
+
return prototype === Object.prototype || prototype === null;
|
|
340
|
+
}
|
|
341
|
+
function objectKind(value) {
|
|
342
|
+
return Object.prototype.toString.call(value).slice(8, -1);
|
|
343
|
+
}
|
|
344
|
+
function deepFreeze(value, seen = new WeakSet()) {
|
|
345
|
+
if (value === null || typeof value !== 'object') {
|
|
346
|
+
return value;
|
|
347
|
+
}
|
|
348
|
+
const objectValue = value;
|
|
349
|
+
if (seen.has(objectValue)) {
|
|
350
|
+
return value;
|
|
351
|
+
}
|
|
352
|
+
seen.add(objectValue);
|
|
353
|
+
for (const key of Reflect.ownKeys(objectValue)) {
|
|
354
|
+
const descriptor = Object.getOwnPropertyDescriptor(objectValue, key);
|
|
355
|
+
if (descriptor !== undefined && 'value' in descriptor) {
|
|
356
|
+
deepFreeze(descriptor.value, seen);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
return Object.freeze(value);
|
|
360
|
+
}
|
|
361
|
+
//# sourceMappingURL=schema-block.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-block.js","sourceRoot":"","sources":["../../src/core/schema-block.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import type { LayoutRect } from '../ports/surface.js';
|
|
2
|
+
declare const SELECTION_OWNER_BRAND: unique symbol;
|
|
3
|
+
export type SelectionDragSource = 'mouse' | 'touch' | 'keyboard' | 'unknown';
|
|
4
|
+
export type SelectionDirection = 'forward' | 'backward';
|
|
5
|
+
export type SelectionPolicy = 'selectable' | 'disabled';
|
|
6
|
+
export type SelectionBlockerReason = 'overlay' | 'drag-handle' | 'component-handler' | 'terminal-native';
|
|
7
|
+
export interface SelectionPoint {
|
|
8
|
+
readonly x: number;
|
|
9
|
+
readonly y: number;
|
|
10
|
+
}
|
|
11
|
+
export interface SelectionViewportTransform {
|
|
12
|
+
readonly scrollX?: number;
|
|
13
|
+
readonly scrollY?: number;
|
|
14
|
+
}
|
|
15
|
+
export interface ProseSelectionContentModel {
|
|
16
|
+
readonly kind: 'prose';
|
|
17
|
+
readonly paragraphs: readonly string[];
|
|
18
|
+
}
|
|
19
|
+
export interface SurfaceSelectionContentModel {
|
|
20
|
+
readonly kind: 'surface';
|
|
21
|
+
readonly lines: readonly string[];
|
|
22
|
+
}
|
|
23
|
+
export interface TableSelectionContentModel {
|
|
24
|
+
readonly kind: 'table';
|
|
25
|
+
readonly rows: readonly (readonly string[])[];
|
|
26
|
+
readonly delimiter?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface MixedSelectionContentRegion {
|
|
29
|
+
readonly id: string;
|
|
30
|
+
readonly rect: LayoutRect;
|
|
31
|
+
readonly content: SelectionContentModel;
|
|
32
|
+
}
|
|
33
|
+
export interface MixedSelectionContentModel {
|
|
34
|
+
readonly kind: 'mixed';
|
|
35
|
+
readonly regions: readonly MixedSelectionContentRegion[];
|
|
36
|
+
readonly separator?: string;
|
|
37
|
+
}
|
|
38
|
+
export type SelectionContentModel = ProseSelectionContentModel | SurfaceSelectionContentModel | TableSelectionContentModel | MixedSelectionContentModel;
|
|
39
|
+
export interface SelectionOwnerInput {
|
|
40
|
+
readonly id: string;
|
|
41
|
+
readonly layoutNodeId: string;
|
|
42
|
+
readonly rect: LayoutRect;
|
|
43
|
+
readonly viewport?: SelectionViewportTransform;
|
|
44
|
+
readonly policy?: SelectionPolicy;
|
|
45
|
+
readonly zIndex?: number;
|
|
46
|
+
readonly content: SelectionContentModel;
|
|
47
|
+
}
|
|
48
|
+
export interface SelectionOwner {
|
|
49
|
+
readonly [SELECTION_OWNER_BRAND]: true;
|
|
50
|
+
readonly id: string;
|
|
51
|
+
readonly layoutNodeId: string;
|
|
52
|
+
readonly rect: LayoutRect;
|
|
53
|
+
readonly viewport: Required<SelectionViewportTransform>;
|
|
54
|
+
readonly policy: SelectionPolicy;
|
|
55
|
+
readonly zIndex: number;
|
|
56
|
+
readonly content: SelectionContentModel;
|
|
57
|
+
}
|
|
58
|
+
export interface SelectionRegion {
|
|
59
|
+
readonly ownerId: string;
|
|
60
|
+
readonly layoutNodeId: string;
|
|
61
|
+
readonly screenRect: LayoutRect;
|
|
62
|
+
readonly contentRect: LayoutRect;
|
|
63
|
+
readonly clippingRect: LayoutRect;
|
|
64
|
+
readonly zIndex: number;
|
|
65
|
+
readonly enabled: boolean;
|
|
66
|
+
}
|
|
67
|
+
export interface SelectionRangeInput {
|
|
68
|
+
readonly anchor: SelectionPoint;
|
|
69
|
+
readonly focus: SelectionPoint;
|
|
70
|
+
readonly dragSource?: SelectionDragSource;
|
|
71
|
+
}
|
|
72
|
+
export interface SelectionRange {
|
|
73
|
+
readonly ownerId: string;
|
|
74
|
+
readonly anchor: SelectionPoint;
|
|
75
|
+
readonly focus: SelectionPoint;
|
|
76
|
+
readonly start: SelectionPoint;
|
|
77
|
+
readonly end: SelectionPoint;
|
|
78
|
+
readonly contentRect: LayoutRect;
|
|
79
|
+
readonly direction: SelectionDirection;
|
|
80
|
+
readonly dragSource: SelectionDragSource;
|
|
81
|
+
}
|
|
82
|
+
export interface SelectionBlocker {
|
|
83
|
+
readonly id: string;
|
|
84
|
+
readonly reason: SelectionBlockerReason;
|
|
85
|
+
readonly rect: LayoutRect;
|
|
86
|
+
}
|
|
87
|
+
export interface CoordinateSelectionInput {
|
|
88
|
+
readonly owners: readonly SelectionOwner[];
|
|
89
|
+
readonly blockers?: readonly SelectionBlocker[];
|
|
90
|
+
readonly anchor: SelectionPoint;
|
|
91
|
+
readonly focus: SelectionPoint;
|
|
92
|
+
readonly dragSource?: SelectionDragSource;
|
|
93
|
+
}
|
|
94
|
+
export interface SelectionFact {
|
|
95
|
+
readonly kind: string;
|
|
96
|
+
readonly key: string;
|
|
97
|
+
readonly value: string | number | boolean;
|
|
98
|
+
}
|
|
99
|
+
export interface SelectionClipboardEffect {
|
|
100
|
+
readonly kind: 'clipboard.write';
|
|
101
|
+
readonly ownerId: string;
|
|
102
|
+
readonly text: string;
|
|
103
|
+
readonly facts: readonly SelectionFact[];
|
|
104
|
+
}
|
|
105
|
+
export type CoordinateSelectionResult = {
|
|
106
|
+
readonly status: 'selected';
|
|
107
|
+
readonly owner: SelectionOwner;
|
|
108
|
+
readonly range: SelectionRange;
|
|
109
|
+
readonly text: string;
|
|
110
|
+
readonly effect: SelectionClipboardEffect;
|
|
111
|
+
} | {
|
|
112
|
+
readonly status: 'blocked';
|
|
113
|
+
readonly reason: SelectionBlockerReason;
|
|
114
|
+
readonly blockerId: string;
|
|
115
|
+
} | {
|
|
116
|
+
readonly status: 'fallback';
|
|
117
|
+
readonly reason: 'terminal-native';
|
|
118
|
+
};
|
|
119
|
+
export declare function defineSelectionOwner(input: SelectionOwnerInput): SelectionOwner;
|
|
120
|
+
export declare function isSelectionOwner(value: unknown): value is SelectionOwner;
|
|
121
|
+
export declare function selectionRegion(owner: SelectionOwner): SelectionRegion;
|
|
122
|
+
export declare function selectionRange(owner: SelectionOwner, input: SelectionRangeInput): SelectionRange;
|
|
123
|
+
export declare function extractSelectionText(content: SelectionContentModel, range: SelectionRange): string;
|
|
124
|
+
export declare function selectionClipboardEffect(range: SelectionRange, text: string): SelectionClipboardEffect;
|
|
125
|
+
export declare function coordinateSelection(input: CoordinateSelectionInput): CoordinateSelectionResult;
|
|
126
|
+
export {};
|
|
127
|
+
//# sourceMappingURL=selection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../src/core/selection.ts"],"names":[],"mappings":"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"}
|