@kurot/ui-document 0.5.2 → 0.6.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 +9 -12
- package/dist/kurot/document/create-asset-contract.d.ts +4 -0
- package/dist/kurot/document/create-asset-contract.d.ts.map +1 -1
- package/dist/kurot/document/create-asset-contract.js +1 -0
- package/dist/kurot/document/create-asset-contract.js.map +1 -1
- package/dist/kurot/model/UIAssetContract.d.ts +4 -0
- package/dist/kurot/model/UIAssetContract.d.ts.map +1 -1
- package/dist/kurot/model/UIDocument.d.ts +1 -1
- package/dist/kurot/model/index.d.ts +1 -0
- package/dist/kurot/model/index.d.ts.map +1 -1
- package/dist/kurot/model/index.js +1 -0
- package/dist/kurot/model/index.js.map +1 -1
- package/dist/kurot/serialization/UIDocumentParseError.d.ts +1 -1
- package/dist/kurot/serialization/UIDocumentParseError.js +1 -1
- package/dist/kurot/serialization/index.d.ts +1 -1
- package/dist/kurot/serialization/index.d.ts.map +1 -1
- package/dist/kurot/serialization/index.js +1 -1
- package/dist/kurot/serialization/index.js.map +1 -1
- package/dist/kurot/serialization/xml/xml-contract-parser.d.ts +7 -0
- package/dist/kurot/serialization/xml/xml-contract-parser.d.ts.map +1 -0
- package/dist/kurot/serialization/xml/xml-contract-parser.js +200 -0
- package/dist/kurot/serialization/xml/xml-contract-parser.js.map +1 -0
- package/dist/kurot/serialization/xml/xml-contract-serializer.d.ts +6 -0
- package/dist/kurot/serialization/xml/xml-contract-serializer.d.ts.map +1 -0
- package/dist/kurot/serialization/xml/xml-contract-serializer.js +111 -0
- package/dist/kurot/serialization/xml/xml-contract-serializer.js.map +1 -0
- package/dist/kurot/serialization/xml/xml-node.d.ts +18 -0
- package/dist/kurot/serialization/xml/xml-node.d.ts.map +1 -0
- package/dist/kurot/serialization/xml/xml-node.js +230 -0
- package/dist/kurot/serialization/xml/xml-node.js.map +1 -0
- package/dist/kurot/serialization/xml/xml-parser.d.ts +10 -0
- package/dist/kurot/serialization/xml/xml-parser.d.ts.map +1 -0
- package/dist/kurot/serialization/xml/xml-parser.js +134 -0
- package/dist/kurot/serialization/xml/xml-parser.js.map +1 -0
- package/dist/kurot/serialization/xml/xml-values.d.ts +23 -0
- package/dist/kurot/serialization/xml/xml-values.d.ts.map +1 -0
- package/dist/kurot/serialization/xml/xml-values.js +133 -0
- package/dist/kurot/serialization/xml/xml-values.js.map +1 -0
- package/dist/kurot/serialization/xml.d.ts +14 -0
- package/dist/kurot/serialization/xml.d.ts.map +1 -0
- package/dist/kurot/serialization/xml.js +164 -0
- package/dist/kurot/serialization/xml.js.map +1 -0
- package/dist/kurot/validation/UIDiagnostic.d.ts +1 -1
- package/dist/kurot/validation/UIDiagnostic.d.ts.map +1 -1
- package/dist/kurot/validation/validateUIAssetContract.d.ts.map +1 -1
- package/dist/kurot/validation/validateUIAssetContract.js +7 -0
- package/dist/kurot/validation/validateUIAssetContract.js.map +1 -1
- package/package.json +1 -1
- package/dist/kurot/serialization/json.d.ts +0 -10
- package/dist/kurot/serialization/json.d.ts.map +0 -1
- package/dist/kurot/serialization/json.js +0 -234
- package/dist/kurot/serialization/json.js.map +0 -1
package/README.md
CHANGED
|
@@ -4,9 +4,8 @@ Headless semantic document foundation for Kurot UI tooling. It is intended to
|
|
|
4
4
|
provide one format and one mutation model shared by the future visual UI
|
|
5
5
|
builder, `@kurot/cli`, and Agent-driven UI generation.
|
|
6
6
|
|
|
7
|
-
> **Early development (0.
|
|
8
|
-
>
|
|
9
|
-
> a production file format.
|
|
7
|
+
> **Early development (0.6.x).** KUI XML is the canonical authored format. The
|
|
8
|
+
> schema remains pre-1.0, so later minor releases may still refine its contract.
|
|
10
9
|
|
|
11
10
|
## Installation
|
|
12
11
|
|
|
@@ -72,8 +71,7 @@ the corresponding `@kurot/ui` class.
|
|
|
72
71
|
- strict validation of schema keys, versions, identifiers, unique node IDs,
|
|
73
72
|
plain property values, finite numbers, and acyclic trees;
|
|
74
73
|
- structured diagnostics with stable codes and JSON-style paths;
|
|
75
|
-
- validated
|
|
76
|
-
keys;
|
|
74
|
+
- validated KUI XML parsing and deterministic canonical serialization;
|
|
77
75
|
- runtime-independent component definitions and an isolated component registry;
|
|
78
76
|
- inherited appearance-state, native-part, and emitted-event capabilities;
|
|
79
77
|
- abstract base definitions, single-parent inheritance, deterministic schema
|
|
@@ -209,8 +207,9 @@ It defines the abstract semantic bases `kurot.DisplayObject`,
|
|
|
209
207
|
`kui.ToggleButton`, `kui.ProgressBar`, and `kui.TextInput` nodes. `Group`
|
|
210
208
|
accepts ordered children; the other concrete nodes are leaves.
|
|
211
209
|
|
|
212
|
-
`kui.*` is the canonical Kurot UI namespace.
|
|
213
|
-
|
|
210
|
+
`kui.*` is the canonical Kurot UI namespace. Authored files use the
|
|
211
|
+
[`KUI XML format`](./docs/kui-xml.md); EUI names and EXML are not stored in the
|
|
212
|
+
semantic document.
|
|
214
213
|
|
|
215
214
|
The foundation catalog declares the serializable authoring properties inherited
|
|
216
215
|
from Kurot display objects and UI layout elements, then adds the audited direct
|
|
@@ -242,12 +241,10 @@ package boundaries.
|
|
|
242
241
|
|
|
243
242
|
## Intended boundary
|
|
244
243
|
|
|
245
|
-
The package owns the serializable UI asset model and its
|
|
246
|
-
operations. Planned
|
|
244
|
+
The package owns the serializable UI asset model, KUI XML syntax, and its
|
|
245
|
+
deterministic operations. Planned work includes:
|
|
247
246
|
|
|
248
|
-
- the remaining component catalog and nested structured-value constraints
|
|
249
|
-
- document migrations;
|
|
250
|
-
- adapters for formats such as EXML.
|
|
247
|
+
- the remaining component catalog and nested structured-value constraints.
|
|
251
248
|
|
|
252
249
|
It will not own rendering, runtime UI components, editor panels, filesystem
|
|
253
250
|
or network I/O, or model-provider integration. Those concerns belong to
|
|
@@ -3,6 +3,10 @@ import type { UIAssetContract, UIDataBindingDefinition, UIParameterDefinition, U
|
|
|
3
3
|
* Input accepted by createUIAssetContract.
|
|
4
4
|
*/
|
|
5
5
|
export interface CreateUIAssetContractOptions {
|
|
6
|
+
/**
|
|
7
|
+
* Whether this appearance is the project's default for its target type.
|
|
8
|
+
*/
|
|
9
|
+
readonly isDefault?: boolean;
|
|
6
10
|
/**
|
|
7
11
|
* Typed external data accepted by this asset.
|
|
8
12
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-asset-contract.d.ts","sourceRoot":"","sources":["../../../src/kurot/document/create-asset-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,MAAM,6BAA6B,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC5C;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAEpD;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAE1E;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC;IAExE;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAEtE;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE5D;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE5D;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE9D;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;CAClE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACpC,OAAO,GAAE,4BAAiC,GACxC,eAAe,
|
|
1
|
+
{"version":3,"file":"create-asset-contract.d.ts","sourceRoot":"","sources":["../../../src/kurot/document/create-asset-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,MAAM,6BAA6B,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC5C;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAEpD;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAE1E;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC;IAExE;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAEtE;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE5D;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE5D;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE9D;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;CAClE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACpC,OAAO,GAAE,4BAAiC,GACxC,eAAe,CAgBjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-asset-contract.js","sourceRoot":"","sources":["../../../src/kurot/document/create-asset-contract.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-asset-contract.js","sourceRoot":"","sources":["../../../src/kurot/document/create-asset-contract.ts"],"names":[],"mappings":"AAuEA;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACpC,UAAwC,EAAE;IAE1C,OAAO;QACN,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5E,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;YACtC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;QAC5C,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;QAC/E,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE;QACrC,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE;QAC3B,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE;QAC3B,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE;QAC7B,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE;QACjC,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE;QACrC,YAAY,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE;QACzC,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE;KAC/B,CAAC;AACH,CAAC"}
|
|
@@ -171,6 +171,10 @@ export interface UIVariantDefinition {
|
|
|
171
171
|
* Public authoring contract exposed by one UI asset.
|
|
172
172
|
*/
|
|
173
173
|
export interface UIAssetContract {
|
|
174
|
+
/**
|
|
175
|
+
* Whether this appearance is the project's default for its target type.
|
|
176
|
+
*/
|
|
177
|
+
readonly isDefault?: boolean;
|
|
174
178
|
/**
|
|
175
179
|
* Canonical component key published by a component asset.
|
|
176
180
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UIAssetContract.d.ts","sourceRoot":"","sources":["../../../src/kurot/model/UIAssetContract.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UIAssetContract.d.ts","sourceRoot":"","sources":["../../../src/kurot/model/UIAssetContract.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export declare const UI_DOCUMENT_KIND = "kurot-ui-document";
|
|
|
10
10
|
*/
|
|
11
11
|
export interface UIDocument {
|
|
12
12
|
/**
|
|
13
|
-
* Stable discriminator used to reject unrelated
|
|
13
|
+
* Stable discriminator used to reject unrelated semantic values.
|
|
14
14
|
*/
|
|
15
15
|
readonly kind: typeof UI_DOCUMENT_KIND;
|
|
16
16
|
/**
|
|
@@ -2,6 +2,7 @@ export type { UIAssetKind } from './UIAssetKind.js';
|
|
|
2
2
|
export type { UIAssetContract, UIDataBindingDefinition, UIParameterBinding, UIParameterDefinition, UIPartDefinition, UIPropertyOverride, UIPropertyTransition, UISemanticActionDefinition, UISemanticActionTrigger, UISlotDefinition, UIStateDefinition, UITransitionEasing, UIVariantDefinition, } from './UIAssetContract.js';
|
|
3
3
|
export type { UIComponentInstance, UIInstanceOverride, } from './UIComponentInstance.js';
|
|
4
4
|
export type { UIAssetReference, UIAppearanceReference, UIDesignTokenReference, UIDesignTokenType, UIResourceReference, UIResourceType, } from './UIReference.js';
|
|
5
|
+
export { isUIAssetReference, isUIDesignTokenReference, isUIResourceReference, UI_DESIGN_TOKEN_TYPES, UI_RESOURCE_TYPES, } from './UIReference.js';
|
|
5
6
|
export { UI_DOCUMENT_KIND } from './UIDocument.js';
|
|
6
7
|
export type { UIDocument } from './UIDocument.js';
|
|
7
8
|
export type { UINode } from './UINode.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/kurot/model/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EACX,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACX,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACX,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EACX,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GACf,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/kurot/model/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EACX,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACX,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACX,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EACX,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GACf,MAAM,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kurot/model/index.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kurot/model/index.ts"],"names":[],"mappings":"AA4BA,OAAO,EACN,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { UIDiagnostic } from '../validation/UIDiagnostic.js';
|
|
2
2
|
/**
|
|
3
|
-
* Error raised when
|
|
3
|
+
* Error raised when KUI XML cannot be decoded as a current-format UI document.
|
|
4
4
|
*/
|
|
5
5
|
export declare class UIDocumentParseError extends Error {
|
|
6
6
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { firstDiagnosticMessage } from './first-diagnostic-message.js';
|
|
2
2
|
/**
|
|
3
|
-
* Error raised when
|
|
3
|
+
* Error raised when KUI XML cannot be decoded as a current-format UI document.
|
|
4
4
|
*/
|
|
5
5
|
export class UIDocumentParseError extends Error {
|
|
6
6
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { UIDocumentParseError } from './UIDocumentParseError.js';
|
|
2
2
|
export { UIDocumentValidationError } from './UIDocumentValidationError.js';
|
|
3
|
-
export { parseUIDocument, serializeUIDocument } from './
|
|
3
|
+
export { KUI_XML_NAMESPACE, parseUIDocument, serializeUIDocument } from './xml.js';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/kurot/serialization/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/kurot/serialization/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { UIDocumentParseError } from './UIDocumentParseError.js';
|
|
2
2
|
export { UIDocumentValidationError } from './UIDocumentValidationError.js';
|
|
3
|
-
export { parseUIDocument, serializeUIDocument } from './
|
|
3
|
+
export { KUI_XML_NAMESPACE, parseUIDocument, serializeUIDocument } from './xml.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kurot/serialization/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kurot/serialization/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { UIAssetContract } from '../../model/UIAssetContract.js';
|
|
2
|
+
import type { XMLElement } from './xml-parser.js';
|
|
3
|
+
/**
|
|
4
|
+
* Parses the public contract of one UI asset.
|
|
5
|
+
*/
|
|
6
|
+
export declare function parseContract(element: XMLElement | undefined): UIAssetContract;
|
|
7
|
+
//# sourceMappingURL=xml-contract-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xml-contract-parser.d.ts","sourceRoot":"","sources":["../../../../src/kurot/serialization/xml/xml-contract-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,eAAe,EAUf,MAAM,gCAAgC,CAAC;AAOxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,eAAe,CAuC9E"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { decodeXMLValue, parseComplexValue } from './xml-values.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parses the public contract of one UI asset.
|
|
4
|
+
*/
|
|
5
|
+
export function parseContract(element) {
|
|
6
|
+
if (element === undefined)
|
|
7
|
+
return emptyContract();
|
|
8
|
+
if (element.name !== 'contract')
|
|
9
|
+
throw new Error(`Expected <contract>, received <${element.name}>.`);
|
|
10
|
+
const parameters = {};
|
|
11
|
+
const parts = {};
|
|
12
|
+
const slots = {};
|
|
13
|
+
const states = {};
|
|
14
|
+
const variants = {};
|
|
15
|
+
const dataFields = {};
|
|
16
|
+
const dataBindings = {};
|
|
17
|
+
const actions = {};
|
|
18
|
+
for (const container of element.children) {
|
|
19
|
+
switch (container.name) {
|
|
20
|
+
case 'parameters':
|
|
21
|
+
parseParameters(container, parameters);
|
|
22
|
+
break;
|
|
23
|
+
case 'parts':
|
|
24
|
+
parseParts(container, parts);
|
|
25
|
+
break;
|
|
26
|
+
case 'slots':
|
|
27
|
+
parseSlots(container, slots);
|
|
28
|
+
break;
|
|
29
|
+
case 'states':
|
|
30
|
+
parseOverrides(container, 'state', states);
|
|
31
|
+
break;
|
|
32
|
+
case 'variants':
|
|
33
|
+
parseOverrides(container, 'variant', variants);
|
|
34
|
+
break;
|
|
35
|
+
case 'dataFields':
|
|
36
|
+
parsePropertyDefinitions(container, 'field', dataFields);
|
|
37
|
+
break;
|
|
38
|
+
case 'dataBindings':
|
|
39
|
+
parseDataBindings(container, dataBindings);
|
|
40
|
+
break;
|
|
41
|
+
case 'actions':
|
|
42
|
+
parseActions(container, actions);
|
|
43
|
+
break;
|
|
44
|
+
default: throw new Error(`Unexpected <${container.name}> inside <contract>.`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
...(element.attributes.componentType === undefined ? {} : { componentType: element.attributes.componentType }),
|
|
49
|
+
...(element.attributes.targetType === undefined ? {} : { targetType: element.attributes.targetType }),
|
|
50
|
+
parameters,
|
|
51
|
+
parts,
|
|
52
|
+
slots,
|
|
53
|
+
states,
|
|
54
|
+
variants,
|
|
55
|
+
dataFields,
|
|
56
|
+
dataBindings,
|
|
57
|
+
actions,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function parseParameters(container, target) {
|
|
61
|
+
for (const element of childrenNamed(container, 'parameter')) {
|
|
62
|
+
const bindings = element.children
|
|
63
|
+
.filter(child => child.name === 'bind')
|
|
64
|
+
.map(binding => ({
|
|
65
|
+
targetId: requiredAttribute(binding, 'target'),
|
|
66
|
+
property: requiredAttribute(binding, 'property'),
|
|
67
|
+
}));
|
|
68
|
+
const definition = parsePropertyDefinition(element);
|
|
69
|
+
target[requiredAttribute(element, 'name')] = {
|
|
70
|
+
...definition,
|
|
71
|
+
...(bindings.length === 0 ? {} : { bindings }),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function parseParts(container, target) {
|
|
76
|
+
for (const element of childrenNamed(container, 'part')) {
|
|
77
|
+
target[requiredAttribute(element, 'name')] = {
|
|
78
|
+
nodeId: requiredAttribute(element, 'node'),
|
|
79
|
+
...optionalBoolean(element, 'required'),
|
|
80
|
+
...optionalString(element, 'description'),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
function parseSlots(container, target) {
|
|
85
|
+
for (const element of childrenNamed(container, 'slot')) {
|
|
86
|
+
const capacity = requiredAttribute(element, 'capacity');
|
|
87
|
+
target[requiredAttribute(element, 'name')] = {
|
|
88
|
+
nodeId: requiredAttribute(element, 'node'),
|
|
89
|
+
capacity: capacity,
|
|
90
|
+
...optionalBoolean(element, 'required'),
|
|
91
|
+
...optionalString(element, 'description'),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function parseOverrides(container, tag, target) {
|
|
96
|
+
for (const element of childrenNamed(container, tag)) {
|
|
97
|
+
const overrides = element.children.map(parseOverride);
|
|
98
|
+
target[requiredAttribute(element, 'name')] = {
|
|
99
|
+
overrides,
|
|
100
|
+
...optionalString(element, 'description'),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function parseOverride(element) {
|
|
105
|
+
if (element.name !== 'set')
|
|
106
|
+
throw new Error(`Expected <set>, received <${element.name}>.`);
|
|
107
|
+
const duration = element.attributes.duration;
|
|
108
|
+
return {
|
|
109
|
+
targetId: requiredAttribute(element, 'target'),
|
|
110
|
+
property: requiredAttribute(element, 'property'),
|
|
111
|
+
value: parseElementValue(element),
|
|
112
|
+
...(duration === undefined
|
|
113
|
+
? {}
|
|
114
|
+
: {
|
|
115
|
+
transition: {
|
|
116
|
+
duration: Number(duration),
|
|
117
|
+
...(element.attributes.delay === undefined ? {} : { delay: Number(element.attributes.delay) }),
|
|
118
|
+
...(element.attributes.easing === undefined
|
|
119
|
+
? {}
|
|
120
|
+
: { easing: element.attributes.easing }),
|
|
121
|
+
},
|
|
122
|
+
}),
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
function parsePropertyDefinitions(container, tag, target) {
|
|
126
|
+
for (const element of childrenNamed(container, tag)) {
|
|
127
|
+
target[requiredAttribute(element, 'name')] = parsePropertyDefinition(element);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function parsePropertyDefinition(element) {
|
|
131
|
+
const types = requiredAttribute(element, 'type').split('|');
|
|
132
|
+
const enumValues = element.children
|
|
133
|
+
.filter(child => child.name === 'enum')
|
|
134
|
+
.map(child => decodeXMLValue(requiredAttribute(child, 'value')));
|
|
135
|
+
return {
|
|
136
|
+
valueType: types.length === 1 ? types[0] ?? 'value' : types,
|
|
137
|
+
...(element.attributes.format === undefined ? {} : { format: element.attributes.format }),
|
|
138
|
+
...(element.attributes.resources === undefined ? {} : { resourceTypes: element.attributes.resources.split('|') }),
|
|
139
|
+
...(element.attributes.tokens === undefined ? {} : { tokenTypes: element.attributes.tokens.split('|') }),
|
|
140
|
+
...(enumValues.length === 0 ? {} : { enumValues }),
|
|
141
|
+
...optionalNumber(element, 'minimum'),
|
|
142
|
+
...optionalNumber(element, 'maximum'),
|
|
143
|
+
...optionalBoolean(element, 'integer'),
|
|
144
|
+
...(element.attributes.default === undefined ? {} : { defaultValue: decodeXMLValue(element.attributes.default) }),
|
|
145
|
+
...optionalBoolean(element, 'required'),
|
|
146
|
+
...optionalString(element, 'description'),
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
function parseDataBindings(container, target) {
|
|
150
|
+
for (const element of childrenNamed(container, 'binding')) {
|
|
151
|
+
target[requiredAttribute(element, 'name')] = {
|
|
152
|
+
source: requiredAttribute(element, 'source'),
|
|
153
|
+
targetId: requiredAttribute(element, 'target'),
|
|
154
|
+
property: requiredAttribute(element, 'property'),
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
function parseActions(container, target) {
|
|
159
|
+
for (const element of childrenNamed(container, 'action')) {
|
|
160
|
+
target[requiredAttribute(element, 'name')] = {
|
|
161
|
+
sourceId: requiredAttribute(element, 'source'),
|
|
162
|
+
trigger: requiredAttribute(element, 'trigger'),
|
|
163
|
+
...optionalString(element, 'description'),
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
function parseElementValue(element) {
|
|
168
|
+
if (element.attributes.value !== undefined)
|
|
169
|
+
return decodeXMLValue(element.attributes.value);
|
|
170
|
+
if (element.children.length !== 1 || element.children[0] === undefined) {
|
|
171
|
+
throw new Error(`<${element.name}> requires a value attribute or one complex value.`);
|
|
172
|
+
}
|
|
173
|
+
return parseComplexValue(element.children[0]);
|
|
174
|
+
}
|
|
175
|
+
function childrenNamed(element, name) {
|
|
176
|
+
for (const child of element.children) {
|
|
177
|
+
if (child.name !== name)
|
|
178
|
+
throw new Error(`Unexpected <${child.name}> inside <${element.name}>.`);
|
|
179
|
+
}
|
|
180
|
+
return element.children;
|
|
181
|
+
}
|
|
182
|
+
function requiredAttribute(element, name) {
|
|
183
|
+
const value = element.attributes[name];
|
|
184
|
+
if (value === undefined || value.length === 0)
|
|
185
|
+
throw new Error(`<${element.name}> requires ${name}.`);
|
|
186
|
+
return value;
|
|
187
|
+
}
|
|
188
|
+
function optionalString(element, name) {
|
|
189
|
+
return element.attributes[name] === undefined ? {} : { [name]: element.attributes[name] };
|
|
190
|
+
}
|
|
191
|
+
function optionalBoolean(element, name) {
|
|
192
|
+
return element.attributes[name] === undefined ? {} : { [name]: element.attributes[name] === 'true' };
|
|
193
|
+
}
|
|
194
|
+
function optionalNumber(element, name) {
|
|
195
|
+
return element.attributes[name] === undefined ? {} : { [name]: Number(element.attributes[name]) };
|
|
196
|
+
}
|
|
197
|
+
function emptyContract() {
|
|
198
|
+
return { parameters: {}, parts: {}, slots: {}, states: {}, variants: {}, dataFields: {}, dataBindings: {}, actions: {} };
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=xml-contract-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xml-contract-parser.js","sourceRoot":"","sources":["../../../../src/kurot/serialization/xml/xml-contract-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { UIAssetContract } from '../../model/UIAssetContract.js';
|
|
2
|
+
/**
|
|
3
|
+
* Serializes the public contract of one UI asset.
|
|
4
|
+
*/
|
|
5
|
+
export declare function serializeContract(contract: UIAssetContract, depth: number): string[];
|
|
6
|
+
//# sourceMappingURL=xml-contract-serializer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xml-contract-serializer.d.ts","sourceRoot":"","sources":["../../../../src/kurot/serialization/xml/xml-contract-serializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,eAAe,EAEf,MAAM,gCAAgC,CAAC;AAMxC;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CA+BpF"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { compareStrings } from '../../shared/strings.js';
|
|
2
|
+
import { encodeXMLValue, escapeXML, serializeComplexValue } from './xml-values.js';
|
|
3
|
+
/**
|
|
4
|
+
* Serializes the public contract of one UI asset.
|
|
5
|
+
*/
|
|
6
|
+
export function serializeContract(contract, depth) {
|
|
7
|
+
const indent = ' '.repeat(depth);
|
|
8
|
+
const lines = [`${indent}<contract>`];
|
|
9
|
+
appendDefinitions(lines, 'parameters', contract.parameters, depth + 1, (name, value, itemDepth) => {
|
|
10
|
+
const itemIndent = ' '.repeat(itemDepth);
|
|
11
|
+
const bindings = (value.bindings ?? []).map(binding => `${itemIndent} <bind target="${escapeXML(binding.targetId)}" property="${escapeXML(binding.property)}" />`);
|
|
12
|
+
return propertyDefinition('parameter', name, value, itemDepth, bindings);
|
|
13
|
+
});
|
|
14
|
+
appendDefinitions(lines, 'parts', contract.parts, depth + 1, (name, value, itemDepth) => [
|
|
15
|
+
`${' '.repeat(itemDepth)}<part name="${escapeXML(name)}" node="${escapeXML(value.nodeId)}"${optionalBoolean('required', value.required)}${optionalString('description', value.description)} />`,
|
|
16
|
+
]);
|
|
17
|
+
appendDefinitions(lines, 'slots', contract.slots, depth + 1, (name, value, itemDepth) => [
|
|
18
|
+
`${' '.repeat(itemDepth)}<slot name="${escapeXML(name)}" node="${escapeXML(value.nodeId)}" capacity="${value.capacity}"${optionalBoolean('required', value.required)}${optionalString('description', value.description)} />`,
|
|
19
|
+
]);
|
|
20
|
+
appendOverrideDefinitions(lines, 'states', 'state', contract.states, depth + 1);
|
|
21
|
+
appendOverrideDefinitions(lines, 'variants', 'variant', contract.variants, depth + 1);
|
|
22
|
+
appendDefinitions(lines, 'dataFields', contract.dataFields ?? {}, depth + 1, (name, value, itemDepth) => propertyDefinition('field', name, value, itemDepth));
|
|
23
|
+
appendDefinitions(lines, 'dataBindings', contract.dataBindings ?? {}, depth + 1, (name, value, itemDepth) => [
|
|
24
|
+
`${' '.repeat(itemDepth)}<binding name="${escapeXML(name)}" source="${escapeXML(value.source)}" target="${escapeXML(value.targetId)}" property="${escapeXML(value.property)}" />`,
|
|
25
|
+
]);
|
|
26
|
+
appendDefinitions(lines, 'actions', contract.actions ?? {}, depth + 1, (name, value, itemDepth) => [
|
|
27
|
+
`${' '.repeat(itemDepth)}<action name="${escapeXML(name)}" source="${escapeXML(value.sourceId)}" trigger="${value.trigger}"${optionalString('description', value.description)} />`,
|
|
28
|
+
]);
|
|
29
|
+
lines.push(`${indent}</contract>`);
|
|
30
|
+
return lines;
|
|
31
|
+
}
|
|
32
|
+
function propertyDefinition(tag, name, definition, depth, additionalChildren = []) {
|
|
33
|
+
const indent = ' '.repeat(depth);
|
|
34
|
+
const valueTypes = Array.isArray(definition.valueType) ? definition.valueType.join('|') : definition.valueType;
|
|
35
|
+
const attributes = [
|
|
36
|
+
`name="${escapeXML(name)}"`,
|
|
37
|
+
`type="${valueTypes}"`,
|
|
38
|
+
optionalString('format', definition.format),
|
|
39
|
+
optionalList('resources', definition.resourceTypes),
|
|
40
|
+
optionalList('tokens', definition.tokenTypes),
|
|
41
|
+
optionalNumber('minimum', definition.minimum),
|
|
42
|
+
optionalNumber('maximum', definition.maximum),
|
|
43
|
+
optionalBoolean('integer', definition.integer),
|
|
44
|
+
definition.defaultValue === undefined ? '' : ` default="${escapeXML(encodeXMLValue(definition.defaultValue) ?? '')}"`,
|
|
45
|
+
optionalBoolean('required', definition.required),
|
|
46
|
+
optionalString('description', definition.description),
|
|
47
|
+
].filter(Boolean).map(part => part.trim()).join(' ');
|
|
48
|
+
if ((!definition.enumValues || definition.enumValues.length === 0) && additionalChildren.length === 0) {
|
|
49
|
+
return [`${indent}<${tag} ${attributes} />`];
|
|
50
|
+
}
|
|
51
|
+
const lines = [`${indent}<${tag} ${attributes}>`];
|
|
52
|
+
for (const value of definition.enumValues ?? []) {
|
|
53
|
+
lines.push(`${indent} <enum value="${escapeXML(encodeXMLValue(value) ?? '')}" />`);
|
|
54
|
+
}
|
|
55
|
+
lines.push(...additionalChildren);
|
|
56
|
+
lines.push(`${indent}</${tag}>`);
|
|
57
|
+
return lines;
|
|
58
|
+
}
|
|
59
|
+
function appendOverrideDefinitions(lines, container, tag, definitions, depth) {
|
|
60
|
+
appendDefinitions(lines, container, definitions, depth, (name, definition, itemDepth) => {
|
|
61
|
+
const indent = ' '.repeat(itemDepth);
|
|
62
|
+
const result = [`${indent}<${tag} name="${escapeXML(name)}"${optionalString('description', definition.description)}>`];
|
|
63
|
+
for (const override of definition.overrides) {
|
|
64
|
+
result.push(...serializeOverride(override, itemDepth + 1));
|
|
65
|
+
}
|
|
66
|
+
result.push(`${indent}</${tag}>`);
|
|
67
|
+
return result;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function serializeOverride(override, depth) {
|
|
71
|
+
const indent = ' '.repeat(depth);
|
|
72
|
+
const transition = override.transition;
|
|
73
|
+
const attributes = [
|
|
74
|
+
`target="${escapeXML(override.targetId)}"`,
|
|
75
|
+
`property="${escapeXML(override.property)}"`,
|
|
76
|
+
transition === undefined ? '' : `duration="${transition.duration}"`,
|
|
77
|
+
transition?.delay === undefined ? '' : `delay="${transition.delay}"`,
|
|
78
|
+
transition?.easing === undefined ? '' : `easing="${transition.easing}"`,
|
|
79
|
+
].filter(Boolean).join(' ');
|
|
80
|
+
return serializeValue('set', attributes, override.value, depth, indent);
|
|
81
|
+
}
|
|
82
|
+
function serializeValue(tag, attributes, value, depth, indent) {
|
|
83
|
+
const encoded = encodeXMLValue(value);
|
|
84
|
+
if (encoded !== undefined)
|
|
85
|
+
return [`${indent}<${tag} ${attributes} value="${escapeXML(encoded)}" />`];
|
|
86
|
+
return [`${indent}<${tag} ${attributes}>`, ...serializeComplexValue(value, depth + 1), `${indent}</${tag}>`];
|
|
87
|
+
}
|
|
88
|
+
function appendDefinitions(lines, container, definitions, depth, serialize) {
|
|
89
|
+
const entries = Object.entries(definitions).sort(([left], [right]) => compareStrings(left, right));
|
|
90
|
+
if (entries.length === 0)
|
|
91
|
+
return;
|
|
92
|
+
const indent = ' '.repeat(depth);
|
|
93
|
+
lines.push(`${indent}<${container}>`);
|
|
94
|
+
for (const [name, value] of entries) {
|
|
95
|
+
lines.push(...serialize(name, value, depth + 1));
|
|
96
|
+
}
|
|
97
|
+
lines.push(`${indent}</${container}>`);
|
|
98
|
+
}
|
|
99
|
+
function optionalString(name, value) {
|
|
100
|
+
return value === undefined ? '' : ` ${name}="${escapeXML(value)}"`;
|
|
101
|
+
}
|
|
102
|
+
function optionalBoolean(name, value) {
|
|
103
|
+
return value === undefined ? '' : ` ${name}="${value}"`;
|
|
104
|
+
}
|
|
105
|
+
function optionalNumber(name, value) {
|
|
106
|
+
return value === undefined ? '' : ` ${name}="${value}"`;
|
|
107
|
+
}
|
|
108
|
+
function optionalList(name, value) {
|
|
109
|
+
return value === undefined ? '' : ` ${name}="${escapeXML(value.join('|'))}"`;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=xml-contract-serializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xml-contract-serializer.js","sourceRoot":"","sources":["../../../../src/kurot/serialization/xml/xml-contract-serializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { UINode } from '../../model/UINode.js';
|
|
2
|
+
import type { XMLElement } from './xml-parser.js';
|
|
3
|
+
export interface XMLNamespaces {
|
|
4
|
+
readonly prefixes: Readonly<Record<string, string>>;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Collects custom component namespace prefixes used by a node tree.
|
|
8
|
+
*/
|
|
9
|
+
export declare function collectNodePrefixes(node: UINode, prefixes: Set<string>): void;
|
|
10
|
+
/**
|
|
11
|
+
* Serializes one semantic node using component tags.
|
|
12
|
+
*/
|
|
13
|
+
export declare function serializeNode(node: UINode, depth: number): string[];
|
|
14
|
+
/**
|
|
15
|
+
* Parses one component element into a semantic node.
|
|
16
|
+
*/
|
|
17
|
+
export declare function parseNode(element: XMLElement, namespaces: XMLNamespaces): UINode;
|
|
18
|
+
//# sourceMappingURL=xml-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xml-node.d.ts","sourceRoot":"","sources":["../../../../src/kurot/serialization/xml/xml-node.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAWlD,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACpD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAc7E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CA+CnE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,GAAG,MAAM,CA0ChF"}
|