@ankhorage/studio 5.8.0 → 5.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
# @ankhorage/studio
|
|
5
5
|
|
|
6
|
-
         
|
|
7
7
|
|
|
8
8
|
Studio authoring package for Ankhorage apps
|
|
9
9
|
|
|
@@ -34,7 +34,6 @@ Manage Studio development and projects through the Ankh CLI.
|
|
|
34
34
|
- [buildInsertCatalogEntries sequence](././paradox/diagrams/sequences/build-insert-catalog-entries.mmd)
|
|
35
35
|
- [cloneWithNewIds sequence](././paradox/diagrams/sequences/clone-with-new-ids.mmd)
|
|
36
36
|
- [collectStudioMediaAssetUsages sequence](././paradox/diagrams/sequences/collect-studio-media-asset-usages.mmd)
|
|
37
|
-
- [collectStudioResponsePaths sequence](././paradox/diagrams/sequences/collect-studio-response-paths.mmd)
|
|
38
37
|
- [createNodeFromCatalogEntry sequence](././paradox/diagrams/sequences/create-node-from-catalog-entry.mmd)
|
|
39
38
|
- [createStudioInstancePropertyPatch sequence](././paradox/diagrams/sequences/create-studio-instance-property-patch.mmd)
|
|
40
39
|
- [createStudioMediaAssetId sequence](././paradox/diagrams/sequences/create-studio-media-asset-id.mmd)
|
|
@@ -49,7 +48,6 @@ Manage Studio development and projects through the Ankh CLI.
|
|
|
49
48
|
- [removeStudioPropBinding sequence](././paradox/diagrams/sequences/remove-studio-prop-binding.mmd)
|
|
50
49
|
- [resolveDefaultInsertPlacement sequence](././paradox/diagrams/sequences/resolve-default-insert-placement.mmd)
|
|
51
50
|
- [resolveInsertPlacement sequence](././paradox/diagrams/sequences/resolve-insert-placement.mmd)
|
|
52
|
-
- [resolveStudioSchemaValueMeta sequence](././paradox/diagrams/sequences/resolve-studio-schema-value-meta.mmd)
|
|
53
51
|
- [updateNodeInTree sequence](././paradox/diagrams/sequences/update-node-in-tree.mmd)
|
|
54
52
|
- [upsertStudioMediaAsset sequence](././paradox/diagrams/sequences/upsert-studio-media-asset.mmd)
|
|
55
53
|
- [upsertStudioPropBinding sequence](././paradox/diagrams/sequences/upsert-studio-prop-binding.mmd)
|
package/apm/update.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"protocolVersion": 1,
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"owner": { "name": "@ankhorage/studio", "version": "5.8.
|
|
4
|
+
"owner": { "name": "@ankhorage/studio", "version": "5.8.1" },
|
|
5
5
|
"history": {
|
|
6
6
|
"supported": [{ "sourceRange": ">=2.5.7 <3.0.0", "mode": "no-migration" }],
|
|
7
7
|
"unsupported": [],
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { DataSchema, DataSchemaRegistry, UiBindableValueMeta } from '@ankhorage/contracts';
|
|
2
2
|
import type { StudioBindingCompatibility, StudioBindingResponsePathOption } from './bindingAuthoringContracts';
|
|
3
3
|
/***
|
|
4
|
-
*
|
|
5
|
-
* @todo Move binding schema
|
|
4
|
+
* Project canonical DataSchema authoring semantics into the bindable metadata used by compatibility policy.
|
|
5
|
+
* @todo Move binding schema projection under src/bindings/.
|
|
6
6
|
*/
|
|
7
7
|
export declare function resolveStudioSchemaValueMeta(schema: DataSchema | undefined, schemas: DataSchemaRegistry | undefined, seen?: ReadonlySet<string>): UiBindableValueMeta;
|
|
8
8
|
/***
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindingSchemaModel.d.ts","sourceRoot":"","sources":["../src/bindingSchemaModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAElB,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EACV,0BAA0B,EAC1B,+BAA+B,EAChC,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"bindingSchemaModel.d.ts","sourceRoot":"","sources":["../src/bindingSchemaModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAElB,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EACV,0BAA0B,EAC1B,+BAA+B,EAChC,MAAM,6BAA6B,CAAC;AAIrC;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,UAAU,GAAG,SAAS,EAC9B,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,IAAI,GAAE,WAAW,CAAC,MAAM,CAAa,GACpC,mBAAmB,CAiBrB;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,UAAU,GAAG,SAAS,EAC9B,OAAO,EAAE,kBAAkB,GAAG,SAAS,GACtC,SAAS,+BAA+B,EAAE,CAK5C;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,mBAAmB,EAC7B,MAAM,EAAE,mBAAmB,GAC1B,0BAA0B,CAU5B"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
import { resolveSchemaReference
|
|
1
|
+
import { resolveSchemaReference } from '@ankhorage/utility/schema';
|
|
2
|
+
import { resolveDataSchemaAuthoringStructure } from './features/authoring-engine/adapters/outbound/resolveDataSchemaAuthoringStructure';
|
|
2
3
|
/***
|
|
3
|
-
*
|
|
4
|
-
* @todo Move binding schema
|
|
4
|
+
* Project canonical DataSchema authoring semantics into the bindable metadata used by compatibility policy.
|
|
5
|
+
* @todo Move binding schema projection under src/bindings/.
|
|
5
6
|
*/
|
|
6
7
|
export function resolveStudioSchemaValueMeta(schema, schemas, seen = new Set()) {
|
|
8
|
+
const structure = resolveDataSchemaAuthoringStructure(schema, schemas, seen);
|
|
7
9
|
const resolved = resolveSchemaReference(schema, schemas, seen);
|
|
8
10
|
if (!resolved)
|
|
9
11
|
return { type: 'unknown' };
|
|
10
|
-
const type =
|
|
11
|
-
const fields = resolveSchemaFields(resolved, schemas, seen);
|
|
12
|
-
const itemType =
|
|
12
|
+
const type = resolveBindableType(resolved, structure);
|
|
13
|
+
const fields = structure.kind === 'object' ? resolveSchemaFields(resolved, schemas, seen) : [];
|
|
14
|
+
const itemType = structure.kind === 'ordered-list'
|
|
15
|
+
? resolveStudioSchemaValueMeta(resolved.items, schemas, seen).type
|
|
16
|
+
: undefined;
|
|
13
17
|
return {
|
|
14
18
|
type,
|
|
15
19
|
...(fields.length > 0 ? { fields } : {}),
|
|
@@ -51,7 +55,7 @@ function collectNestedPaths(schema, schemas, prefix, paths, seen) {
|
|
|
51
55
|
const resolved = resolveSchemaReference(schema, schemas, seen);
|
|
52
56
|
if (!resolved)
|
|
53
57
|
return;
|
|
54
|
-
if (
|
|
58
|
+
if (resolveStudioSchemaValueMeta(resolved, schemas, seen).type === 'array' && resolved.items) {
|
|
55
59
|
const path = prefix ? `${prefix}.0` : '0';
|
|
56
60
|
paths.push({
|
|
57
61
|
path,
|
|
@@ -74,8 +78,7 @@ function collectNestedPaths(schema, schemas, prefix, paths, seen) {
|
|
|
74
78
|
}
|
|
75
79
|
}
|
|
76
80
|
/***
|
|
77
|
-
* Project
|
|
78
|
-
* @todo Keep bindable field projection under src/bindings/.
|
|
81
|
+
* Project resolved object fields into the metadata used by binding compatibility diagnostics.
|
|
79
82
|
*/
|
|
80
83
|
function resolveSchemaFields(schema, schemas, seen) {
|
|
81
84
|
return Object.entries(schema.properties ?? {}).map(([path, property]) => ({
|
|
@@ -84,34 +87,44 @@ function resolveSchemaFields(schema, schemas, seen) {
|
|
|
84
87
|
required: schema.required?.includes(path) ?? false,
|
|
85
88
|
}));
|
|
86
89
|
}
|
|
87
|
-
/***
|
|
88
|
-
|
|
89
|
-
* @utility @ankhorage/utility/schema
|
|
90
|
-
*/
|
|
91
|
-
function resolveSchemaType(schema) {
|
|
90
|
+
/*** Project neutral authoring structure into the older bindable-shape vocabulary without reinterpreting DataSchema shape. */
|
|
91
|
+
function resolveBindableType(schema, structure) {
|
|
92
92
|
if (schema.format === 'date' || schema.format === 'date-time')
|
|
93
93
|
return 'date';
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
94
|
+
switch (structure.kind) {
|
|
95
|
+
case 'scalar':
|
|
96
|
+
if (structure.scalarType === 'integer')
|
|
97
|
+
return 'number';
|
|
98
|
+
if (structure.scalarType === 'boolean' ||
|
|
99
|
+
structure.scalarType === 'number' ||
|
|
100
|
+
structure.scalarType === 'string') {
|
|
101
|
+
return structure.scalarType;
|
|
102
|
+
}
|
|
103
|
+
return 'unknown';
|
|
104
|
+
case 'choice':
|
|
105
|
+
return resolveChoiceType(structure.values);
|
|
106
|
+
case 'object':
|
|
107
|
+
return 'object';
|
|
108
|
+
case 'ordered-list':
|
|
109
|
+
return 'array';
|
|
110
|
+
case 'unsupported':
|
|
111
|
+
return structure.sourceKind === 'record' ? 'record' : 'unknown';
|
|
112
|
+
case 'set':
|
|
113
|
+
return 'unknown';
|
|
104
114
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
115
|
+
}
|
|
116
|
+
/*** Resolve a homogeneous finite primitive choice into the compatibility type it represents. */
|
|
117
|
+
function resolveChoiceType(values) {
|
|
118
|
+
const nonNull = values.filter((value) => value !== null);
|
|
119
|
+
if (nonNull.length === 0)
|
|
120
|
+
return 'unknown';
|
|
121
|
+
const first = typeof nonNull[0];
|
|
122
|
+
if (!nonNull.every((value) => typeof value === first))
|
|
123
|
+
return 'unknown';
|
|
124
|
+
if (first === 'boolean' || first === 'number' || first === 'string')
|
|
125
|
+
return first;
|
|
109
126
|
return 'unknown';
|
|
110
127
|
}
|
|
111
|
-
/***
|
|
112
|
-
* Return a schema primitive type only when the declaration contains exactly one effective type.
|
|
113
|
-
* @utility @ankhorage/utility/schema
|
|
114
|
-
*/
|
|
115
128
|
/***
|
|
116
129
|
* Test whether a bindable value type represents an object-shaped value.
|
|
117
130
|
* @todo Keep this bindable-type semantic predicate under src/bindings/.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindingSchemaModel.js","sourceRoot":"","sources":["../src/bindingSchemaModel.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"bindingSchemaModel.js","sourceRoot":"","sources":["../src/bindingSchemaModel.ts"],"names":[],"mappings":"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"}
|