@honua/react 0.1.7-beta.0 → 0.1.10-beta.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/control-plane/admin-client.d.ts +89 -0
- package/control-plane/admin-client.d.ts.map +1 -0
- package/control-plane/admin-client.js +200 -0
- package/control-plane/client.d.ts +1 -1
- package/control-plane/client.d.ts.map +1 -1
- package/control-plane/client.js +145 -11
- package/control-plane/commands/catalog.d.ts +133 -0
- package/control-plane/commands/catalog.d.ts.map +1 -0
- package/control-plane/commands/catalog.js +365 -0
- package/control-plane/commands/errors.d.ts +96 -0
- package/control-plane/commands/errors.d.ts.map +1 -0
- package/control-plane/commands/errors.js +130 -0
- package/control-plane/commands/identity.d.ts +71 -0
- package/control-plane/commands/identity.d.ts.map +1 -0
- package/control-plane/commands/identity.js +0 -0
- package/control-plane/commands/index.d.ts +39 -0
- package/control-plane/commands/index.d.ts.map +1 -0
- package/control-plane/commands/index.js +34 -0
- package/control-plane/commands/runtime.d.ts +146 -0
- package/control-plane/commands/runtime.d.ts.map +1 -0
- package/control-plane/commands/runtime.js +330 -0
- package/control-plane/commands/types.d.ts +228 -0
- package/control-plane/commands/types.d.ts.map +1 -0
- package/control-plane/commands/types.js +30 -0
- package/control-plane/commands/validate.d.ts +27 -0
- package/control-plane/commands/validate.d.ts.map +1 -0
- package/control-plane/commands/validate.js +132 -0
- package/control-plane/generated/admin-api.d.ts +30265 -0
- package/control-plane/generated/admin-api.d.ts.map +1 -0
- package/control-plane/generated/admin-api.js +5 -0
- package/control-plane/generated/admin-operations.d.ts +4053 -0
- package/control-plane/generated/admin-operations.d.ts.map +1 -0
- package/control-plane/generated/admin-operations.js +820 -0
- package/control-plane/index.d.ts +11 -0
- package/control-plane/index.d.ts.map +1 -1
- package/control-plane/index.js +8 -0
- package/control-plane/types.d.ts +14 -0
- package/control-plane/types.d.ts.map +1 -1
- package/core/client.d.ts.map +1 -1
- package/core/client.js +29 -31
- package/core/credential-redaction.d.ts +163 -0
- package/core/credential-redaction.d.ts.map +1 -0
- package/core/credential-redaction.js +389 -0
- package/core/error-classifications.d.ts +15 -0
- package/core/error-classifications.d.ts.map +1 -1
- package/core/error-classifications.js +15 -0
- package/core/error-code-registry.d.ts +15 -0
- package/core/error-code-registry.d.ts.map +1 -1
- package/core/error-code-registry.js +15 -0
- package/core/error-envelope.d.ts +31 -0
- package/core/error-envelope.d.ts.map +1 -1
- package/core/error-envelope.js +11 -0
- package/core/errors.d.ts +15 -3
- package/core/errors.d.ts.map +1 -1
- package/core/errors.js +254 -2
- package/core/geometry-input-sr.d.ts +3 -0
- package/core/geometry-input-sr.d.ts.map +1 -0
- package/core/geometry-input-sr.js +28 -0
- package/core/geoservices.d.ts.map +1 -1
- package/core/geoservices.js +33 -6
- package/core/grpc-adapter.d.ts +2 -2
- package/core/grpc-adapter.d.ts.map +1 -1
- package/core/grpc-adapter.js +41 -9
- package/core/job-run-errors.d.ts +10 -0
- package/core/job-run-errors.d.ts.map +1 -0
- package/core/job-run-errors.js +14 -0
- package/core/job-run-lifecycle.d.ts +34 -0
- package/core/job-run-lifecycle.d.ts.map +1 -0
- package/core/job-run-lifecycle.js +193 -0
- package/core/ogc-processes.d.ts +38 -31
- package/core/ogc-processes.d.ts.map +1 -1
- package/core/ogc-processes.js +123 -173
- package/core/pbf-decoder.d.ts.map +1 -1
- package/core/pbf-decoder.js +16 -4
- package/core/process-runner.js +15 -100
- package/core/protocol-transport.d.ts +6 -1
- package/core/protocol-transport.d.ts.map +1 -1
- package/core/request-pipeline.d.ts +6 -3
- package/core/request-pipeline.d.ts.map +1 -1
- package/core/request-pipeline.js +28 -11
- package/core/spatial-filter.d.ts +4 -4
- package/core/spatial-filter.d.ts.map +1 -1
- package/core/spatial-filter.js +7 -7
- package/core/surfaces.d.ts +2 -8
- package/core/surfaces.d.ts.map +1 -1
- package/core/surfaces.js +21 -112
- package/core/types.d.ts +21 -9
- package/core/types.d.ts.map +1 -1
- package/esri-compat/class-breaks-renderer.d.ts +2 -0
- package/esri-compat/class-breaks-renderer.d.ts.map +1 -1
- package/esri-compat/class-breaks-renderer.js +7 -0
- package/esri-compat/controls.d.ts +10 -1
- package/esri-compat/controls.d.ts.map +1 -1
- package/esri-compat/controls.js +86 -2
- package/esri-compat/directions.d.ts +35 -0
- package/esri-compat/directions.d.ts.map +1 -1
- package/esri-compat/directions.js +153 -2
- package/esri-compat/expand.d.ts +1 -0
- package/esri-compat/expand.d.ts.map +1 -1
- package/esri-compat/expand.js +61 -0
- package/esri-compat/feature-layer.d.ts +29 -4
- package/esri-compat/feature-layer.d.ts.map +1 -1
- package/esri-compat/feature-layer.js +335 -13
- package/esri-compat/geometry-engine.d.ts +4 -0
- package/esri-compat/geometry-engine.d.ts.map +1 -1
- package/esri-compat/geometry-engine.js +8 -1
- package/esri-compat/graphic.d.ts +7 -4
- package/esri-compat/graphic.d.ts.map +1 -1
- package/esri-compat/legend.d.ts +2 -1
- package/esri-compat/legend.d.ts.map +1 -1
- package/esri-compat/legend.js +15 -0
- package/esri-compat/map-view-mount.d.ts +48 -0
- package/esri-compat/map-view-mount.d.ts.map +1 -0
- package/esri-compat/map-view-mount.js +344 -0
- package/esri-compat/map-view.d.ts +38 -6
- package/esri-compat/map-view.d.ts.map +1 -1
- package/esri-compat/map-view.js +467 -33
- package/esri-compat/portal.d.ts +2 -0
- package/esri-compat/portal.d.ts.map +1 -1
- package/esri-compat/portal.js +7 -2
- package/esri-compat/renderer-objects.d.ts +7 -2
- package/esri-compat/renderer-objects.d.ts.map +1 -1
- package/esri-compat/renderer-objects.js +16 -5
- package/esri-compat/route-layer.d.ts +8 -0
- package/esri-compat/route-layer.d.ts.map +1 -1
- package/esri-compat/route-layer.js +24 -4
- package/esri-compat/route-task.d.ts +5 -1
- package/esri-compat/route-task.d.ts.map +1 -1
- package/esri-compat/route-task.js +119 -7
- package/esri-compat/scene-view.d.ts.map +1 -1
- package/esri-compat/scene-view.js +1 -0
- package/esri-compat/search.d.ts +2 -1
- package/esri-compat/search.d.ts.map +1 -1
- package/esri-compat/search.js +52 -2
- package/esri-compat/unique-value-renderer.d.ts +2 -0
- package/esri-compat/unique-value-renderer.d.ts.map +1 -1
- package/esri-compat/unique-value-renderer.js +7 -0
- package/esri-compat/web-map.d.ts +10 -0
- package/esri-compat/web-map.d.ts.map +1 -1
- package/esri-compat/web-map.js +102 -0
- package/gen/geospatial/v1/common_pb.d.ts +514 -0
- package/gen/geospatial/v1/common_pb.d.ts.map +1 -0
- package/gen/geospatial/v1/common_pb.js +335 -0
- package/gen/geospatial/v1/execution_types_pb.d.ts +1186 -0
- package/gen/geospatial/v1/execution_types_pb.d.ts.map +1 -0
- package/gen/geospatial/v1/execution_types_pb.js +396 -0
- package/gen/geospatial/v1/feature_service_pb.d.ts +403 -0
- package/gen/geospatial/v1/feature_service_pb.d.ts.map +1 -0
- package/gen/geospatial/v1/feature_service_pb.js +47 -0
- package/gen/geospatial/v1/index.d.ts +5 -0
- package/gen/geospatial/v1/index.d.ts.map +1 -0
- package/gen/geospatial/v1/index.js +9 -0
- package/gen/geospatial/v1/spatial_types_pb.d.ts +285 -0
- package/gen/geospatial/v1/spatial_types_pb.d.ts.map +1 -0
- package/gen/geospatial/v1/spatial_types_pb.js +58 -0
- package/gen/geospatial/v1/workspace_artifact_types_pb.d.ts +379 -0
- package/gen/geospatial/v1/workspace_artifact_types_pb.d.ts.map +1 -0
- package/gen/geospatial/v1/workspace_artifact_types_pb.js +151 -0
- package/generated-app/projection.d.ts.map +1 -1
- package/generated-app/projection.js +10 -1
- package/map/webmap-maplibre.d.ts +2 -1
- package/map/webmap-maplibre.d.ts.map +1 -1
- package/map/webmap-maplibre.js +3 -0
- package/package.json +3 -3
- package/query-planner/geoservices.d.ts.map +1 -1
- package/query-planner/geoservices.js +2 -0
- package/query-planner/grpc.d.ts +4 -4
- package/query-planner/grpc.d.ts.map +1 -1
- package/query-planner/grpc.js +11 -11
- package/query-planner/types.d.ts +6 -4
- package/query-planner/types.d.ts.map +1 -1
- package/realtime/honua-server.d.ts +4 -0
- package/realtime/honua-server.d.ts.map +1 -1
- package/realtime/honua-server.js +10 -0
- package/realtime/resumable.js +9 -0
- package/realtime/types.d.ts +8 -0
- package/realtime/types.d.ts.map +1 -1
- package/runtime/errors.d.ts +1 -1
- package/runtime/errors.d.ts.map +1 -1
- package/runtime/errors.js +2 -0
- package/runtime/generated/map-package-schema-meta.d.ts +11 -0
- package/runtime/generated/map-package-schema-meta.d.ts.map +1 -0
- package/runtime/generated/map-package-schema-meta.js +12 -0
- package/runtime/generated/map-package-schema-validator.d.ts +16 -0
- package/runtime/generated/map-package-schema-validator.d.ts.map +1 -0
- package/runtime/generated/map-package-schema-validator.js +1422 -0
- package/runtime/index.d.ts +5 -1
- package/runtime/index.d.ts.map +1 -1
- package/runtime/index.js +6 -0
- package/runtime/map-package-export.d.ts +151 -0
- package/runtime/map-package-export.d.ts.map +1 -0
- package/runtime/map-package-export.js +636 -0
- package/runtime/map-package-validation.d.ts +21 -1
- package/runtime/map-package-validation.d.ts.map +1 -1
- package/runtime/map-package-validation.js +132 -95
- package/runtime/map-package.d.ts +80 -0
- package/runtime/map-package.d.ts.map +1 -1
- package/studio/capability-manifest.d.ts +10 -0
- package/studio/capability-manifest.d.ts.map +1 -1
- package/studio/capability-manifest.js +38 -0
- package/studio/chart-spec.d.ts +6 -6
- package/studio/chart-spec.d.ts.map +1 -1
- package/studio/chart-spec.js +6 -6
- package/studio/command-adapter.d.ts +35 -0
- package/studio/command-adapter.d.ts.map +1 -0
- package/studio/command-adapter.js +36 -0
- package/studio/generated/studio-api.d.ts +1062 -0
- package/studio/generated/studio-api.d.ts.map +1 -0
- package/studio/generated/studio-api.js +4 -0
- package/studio/index.d.ts +25 -13
- package/studio/index.d.ts.map +1 -1
- package/studio/index.js +21 -10
- package/studio/lifecycle-client.d.ts +262 -22
- package/studio/lifecycle-client.d.ts.map +1 -1
- package/studio/lifecycle-client.js +543 -24
- package/studio/lifecycle-errors.d.ts +8 -2
- package/studio/lifecycle-errors.d.ts.map +1 -1
- package/studio/lifecycle-errors.js +6 -1
- package/studio/lifecycle-types.d.ts +237 -38
- package/studio/lifecycle-types.d.ts.map +1 -1
- package/studio/lifecycle-types.js +5 -12
- package/studio/publication-status.d.ts +55 -0
- package/studio/publication-status.d.ts.map +1 -0
- package/studio/publication-status.js +103 -0
- package/studio/types.d.ts +37 -7
- package/studio/types.d.ts.map +1 -1
- package/studio/types.js +5 -3
- package/studio/validate.d.ts.map +1 -1
- package/studio/validate.js +104 -7
- package/style/renderers.d.ts +6 -1
- package/style/renderers.d.ts.map +1 -1
- package/style/renderers.js +11 -6
- package/style/visual-variables.d.ts +43 -0
- package/style/visual-variables.d.ts.map +1 -0
- package/style/visual-variables.js +183 -0
- package/webmap/convert-layer.d.ts +2 -1
- package/webmap/convert-layer.d.ts.map +1 -1
- package/webmap/convert-layer.js +20 -3
- package/webmap/convert-renderer.d.ts +10 -3
- package/webmap/convert-renderer.d.ts.map +1 -1
- package/webmap/convert-renderer.js +190 -36
- package/webmap/index.d.ts +1 -0
- package/webmap/index.d.ts.map +1 -1
- package/webmap/parse.d.ts +2 -1
- package/webmap/parse.d.ts.map +1 -1
- package/webmap/parse.js +1 -1
- package/gen/honua/v1/feature_service_pb.d.ts +0 -918
- package/gen/honua/v1/feature_service_pb.d.ts.map +0 -1
- package/gen/honua/v1/feature_service_pb.js +0 -375
|
@@ -1,17 +1,92 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
/**
|
|
2
|
+
* `MapPackage` validation.
|
|
3
|
+
*
|
|
4
|
+
* The *structural* rules — which properties exist, which are required, which
|
|
5
|
+
* scalar types and enum members are legal, how long a string may be — are not
|
|
6
|
+
* written here. They live in `schemas/honua-map-package.v1.json`, the canonical
|
|
7
|
+
* artifact schema (honua-sdk-js#1426), which `scripts/generate-map-package-validator.mjs`
|
|
8
|
+
* compiles into `./generated/map-package-schema-validator.js`. This module runs
|
|
9
|
+
* that generated validator and translates its errors into the SDK's stable
|
|
10
|
+
* diagnostic codes. Restating the shape in TypeScript would recreate exactly
|
|
11
|
+
* the parallel description the schema exists to eliminate.
|
|
12
|
+
*
|
|
13
|
+
* What stays here is everything a JSON Schema genuinely cannot express:
|
|
14
|
+
* cross-field resolution (does every layer's `source` resolve to a binding or
|
|
15
|
+
* an inline style source?), package-level uniqueness (`sourceId` collisions),
|
|
16
|
+
* runtime capability (which of the schema's protocols the source bridge can
|
|
17
|
+
* actually bind), and wall-clock lifecycle (expiry and staleness).
|
|
18
|
+
*
|
|
19
|
+
* @module
|
|
20
|
+
*/
|
|
21
|
+
import { HONUA_MAP_PACKAGE_SCHEMA_PROTOCOLS } from "./generated/map-package-schema-meta.js";
|
|
22
|
+
import validateAgainstSchema from "./generated/map-package-schema-validator.js";
|
|
23
|
+
/**
|
|
24
|
+
* Schema-legal protocols the MapLibre source bridge cannot bind to a
|
|
25
|
+
* `Dataset`/`Source` today. The schema is the wire contract and admits these;
|
|
26
|
+
* the runtime is narrower. Deriving the bindable set by subtraction — rather
|
|
27
|
+
* than by writing a second list — means a protocol added to the schema is
|
|
28
|
+
* bindable by default and a deliberate gap has to be named here, in one place,
|
|
29
|
+
* with a reason.
|
|
30
|
+
*/
|
|
31
|
+
const UNBINDABLE_SOURCE_PROTOCOLS = [
|
|
32
|
+
// `pmtiles://` archives are attached through the pmtiles protocol handler
|
|
33
|
+
// (`registerPmtilesProtocol`), not through `createDataset`.
|
|
34
|
+
"pmtiles",
|
|
35
|
+
// Workspace artifacts resolve through the workspace/app layer, which the
|
|
36
|
+
// map runtime does not depend on.
|
|
37
|
+
"workspace_artifact",
|
|
38
|
+
];
|
|
39
|
+
const SUPPORTED_SOURCE_PROTOCOLS = new Set(HONUA_MAP_PACKAGE_SCHEMA_PROTOCOLS.filter((protocol) => !UNBINDABLE_SOURCE_PROTOCOLS.includes(protocol)));
|
|
40
|
+
/**
|
|
41
|
+
* Translates one Ajv error into the SDK's stable diagnostic vocabulary.
|
|
42
|
+
*
|
|
43
|
+
* The codes predate the schema and are part of the public surface, so the
|
|
44
|
+
* mapping is explicit rather than derived: hosts switch on these strings.
|
|
45
|
+
*/
|
|
46
|
+
function schemaErrorToDiagnostic(error) {
|
|
47
|
+
const path = jsonPointerToPath(error.instancePath ?? "");
|
|
48
|
+
const missing = error.params?.missingProperty;
|
|
49
|
+
const fullPath = missing ? (path ? `${path}.${missing}` : missing) : path;
|
|
50
|
+
const detail = { schemaPath: error.schemaPath, keyword: error.keyword, params: error.params };
|
|
51
|
+
const message = `MapPackage does not satisfy honua-map-package.v1 at ${fullPath || "(root)"}${error.message ? `: ${error.message}` : ""}.`;
|
|
52
|
+
return { code: schemaErrorCode(fullPath, missing), severity: "error", message, path: fullPath || undefined, detail };
|
|
53
|
+
}
|
|
54
|
+
function schemaErrorCode(fullPath, missing) {
|
|
55
|
+
if (fullPath === "mapPackageId")
|
|
56
|
+
return "missing-map-package-id";
|
|
57
|
+
if (fullPath === "format")
|
|
58
|
+
return "unsupported-format";
|
|
59
|
+
if (fullPath === "sourceBindings")
|
|
60
|
+
return "missing-source-bindings";
|
|
61
|
+
if (fullPath === "mapSpec")
|
|
62
|
+
return "missing-map-spec";
|
|
63
|
+
if (fullPath.startsWith("mapSpec"))
|
|
64
|
+
return "invalid-map-spec";
|
|
65
|
+
if (fullPath.startsWith("sourceBindings[")) {
|
|
66
|
+
const field = fullPath.slice(fullPath.indexOf("]") + 1);
|
|
67
|
+
if (field === ".sourceId")
|
|
68
|
+
return "missing-source-id";
|
|
69
|
+
if (field === ".protocol")
|
|
70
|
+
return "unsupported-protocol";
|
|
71
|
+
if (field.startsWith(".locator") || missing === "locator")
|
|
72
|
+
return "missing-source-locator";
|
|
73
|
+
}
|
|
74
|
+
return "invalid-package";
|
|
75
|
+
}
|
|
76
|
+
/** `/sourceBindings/0/locator/url` → `sourceBindings[0].locator.url`. */
|
|
77
|
+
function jsonPointerToPath(pointer) {
|
|
78
|
+
if (pointer.length === 0)
|
|
79
|
+
return "";
|
|
80
|
+
let path = "";
|
|
81
|
+
for (const rawSegment of pointer.split("/").slice(1)) {
|
|
82
|
+
const segment = rawSegment.replace(/~1/g, "/").replace(/~0/g, "~");
|
|
83
|
+
if (/^\d+$/.test(segment))
|
|
84
|
+
path += `[${segment}]`;
|
|
85
|
+
else
|
|
86
|
+
path += path.length === 0 ? segment : `.${segment}`;
|
|
87
|
+
}
|
|
88
|
+
return path;
|
|
89
|
+
}
|
|
15
90
|
/**
|
|
16
91
|
* Validate the server-produced `MapPackage` wire shape and runtime binding
|
|
17
92
|
* assumptions without throwing raw JSON/type errors. Diagnostics are
|
|
@@ -31,79 +106,61 @@ export function validateMapPackage(value, options = {}) {
|
|
|
31
106
|
const add = (diagnostic) => {
|
|
32
107
|
diagnostics.push({ ...(packageId ? { packageId } : {}), ...diagnostic });
|
|
33
108
|
};
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
message: `MapPackage.format must be "${HONUA_MAP_PACKAGE_FORMAT_V1}".`,
|
|
47
|
-
path: "format",
|
|
48
|
-
detail: { expected: HONUA_MAP_PACKAGE_FORMAT_V1, received: value.format },
|
|
49
|
-
});
|
|
109
|
+
// Structural pass: every required/type/enum/bound rule comes from
|
|
110
|
+
// `schemas/honua-map-package.v1.json` by way of the generated validator.
|
|
111
|
+
const validator = validateAgainstSchema;
|
|
112
|
+
const structurallyValid = validator(value);
|
|
113
|
+
const schemaErrorPaths = new Set();
|
|
114
|
+
if (!structurallyValid) {
|
|
115
|
+
for (const error of validator.errors ?? []) {
|
|
116
|
+
const diagnostic = schemaErrorToDiagnostic(error);
|
|
117
|
+
if (diagnostic.path)
|
|
118
|
+
schemaErrorPaths.add(diagnostic.path);
|
|
119
|
+
add(diagnostic);
|
|
120
|
+
}
|
|
50
121
|
}
|
|
51
122
|
const sourceIds = new Set();
|
|
52
123
|
const sourceBindings = value.sourceBindings;
|
|
53
|
-
if (
|
|
54
|
-
add({
|
|
55
|
-
code: "missing-source-bindings",
|
|
56
|
-
severity: "error",
|
|
57
|
-
message: "MapPackage.sourceBindings must be an array.",
|
|
58
|
-
path: "sourceBindings",
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
124
|
+
if (Array.isArray(sourceBindings)) {
|
|
62
125
|
for (let i = 0; i < sourceBindings.length; i += 1) {
|
|
63
126
|
const binding = sourceBindings[i];
|
|
64
127
|
const path = `sourceBindings[${i}]`;
|
|
65
|
-
if (!isRecord(binding))
|
|
66
|
-
add({
|
|
67
|
-
code: "invalid-package",
|
|
68
|
-
severity: "error",
|
|
69
|
-
message: "MapPackage.sourceBindings entries must be objects.",
|
|
70
|
-
path,
|
|
71
|
-
});
|
|
128
|
+
if (!isRecord(binding))
|
|
72
129
|
continue;
|
|
73
|
-
}
|
|
74
130
|
const sourceId = typeof binding.sourceId === "string" && binding.sourceId.length > 0 ? binding.sourceId : "";
|
|
75
|
-
if (
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
sourceIds.add(sourceId);
|
|
131
|
+
if (sourceId) {
|
|
132
|
+
// Uniqueness is a package-level invariant; JSON Schema has no way to
|
|
133
|
+
// express "distinct by this property", so it stays here.
|
|
134
|
+
if (sourceIds.has(sourceId)) {
|
|
135
|
+
add({
|
|
136
|
+
code: "duplicate-source",
|
|
137
|
+
severity: "error",
|
|
138
|
+
message: `SourceBinding sourceId "${sourceId}" is duplicated.`,
|
|
139
|
+
path: `${path}.sourceId`,
|
|
140
|
+
detail: { sourceId },
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
sourceIds.add(sourceId);
|
|
145
|
+
}
|
|
94
146
|
}
|
|
147
|
+
// The schema already rejected values outside its protocol enum; this is
|
|
148
|
+
// the narrower question of what the source bridge can actually bind.
|
|
95
149
|
const protocol = typeof binding.protocol === "string" ? binding.protocol : undefined;
|
|
96
|
-
if (
|
|
150
|
+
if (protocol && !SUPPORTED_SOURCE_PROTOCOLS.has(protocol) && !schemaErrorPaths.has(`${path}.protocol`)) {
|
|
97
151
|
add({
|
|
98
152
|
code: "unsupported-protocol",
|
|
99
153
|
severity: "error",
|
|
100
|
-
message: `SourceBinding "${sourceId || i}" uses unsupported protocol "${
|
|
154
|
+
message: `SourceBinding "${sourceId || i}" uses unsupported protocol "${protocol}".`,
|
|
101
155
|
path: `${path}.protocol`,
|
|
102
|
-
detail: { sourceId, protocol
|
|
156
|
+
detail: { sourceId, protocol },
|
|
103
157
|
});
|
|
104
158
|
}
|
|
159
|
+
// `locator.url` is optional in the schema — a locator addressed purely by
|
|
160
|
+
// `serviceId` is a legal artifact — but the runtime cannot bind one, so
|
|
161
|
+
// the requirement is enforced here rather than in the wire contract.
|
|
105
162
|
const locator = binding.locator;
|
|
106
|
-
if (
|
|
163
|
+
if (isRecord(locator) && (typeof locator.url !== "string" || locator.url.length === 0)) {
|
|
107
164
|
add({
|
|
108
165
|
code: "missing-source-locator",
|
|
109
166
|
severity: "error",
|
|
@@ -115,15 +172,7 @@ export function validateMapPackage(value, options = {}) {
|
|
|
115
172
|
}
|
|
116
173
|
}
|
|
117
174
|
const mapSpec = value.mapSpec;
|
|
118
|
-
if (
|
|
119
|
-
add({
|
|
120
|
-
code: "missing-map-spec",
|
|
121
|
-
severity: "error",
|
|
122
|
-
message: "MapPackage.mapSpec must be a MapLibre style object.",
|
|
123
|
-
path: "mapSpec",
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
175
|
+
if (isRecord(mapSpec)) {
|
|
127
176
|
validateMapSpecSources(add, mapSpec, sourceIds);
|
|
128
177
|
validateStyleRefTargets(add, value, mapSpec);
|
|
129
178
|
}
|
|
@@ -141,26 +190,14 @@ export function hasMapPackageDiagnosticErrors(diagnostics) {
|
|
|
141
190
|
function validateMapSpecSources(add, mapSpec, sourceIds) {
|
|
142
191
|
const mapSpecSources = isRecord(mapSpec.sources) ? new Set(Object.keys(mapSpec.sources)) : new Set();
|
|
143
192
|
const layers = mapSpec.layers;
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
severity: "error",
|
|
148
|
-
message: "MapPackage.mapSpec.layers must be an array.",
|
|
149
|
-
path: "mapSpec.layers",
|
|
150
|
-
});
|
|
193
|
+
// A non-array `layers`, or a non-object entry, is a structural failure the
|
|
194
|
+
// schema has already reported; re-reporting it here would double up.
|
|
195
|
+
if (!Array.isArray(layers))
|
|
151
196
|
return;
|
|
152
|
-
}
|
|
153
197
|
for (let i = 0; i < layers.length; i += 1) {
|
|
154
198
|
const layer = layers[i];
|
|
155
|
-
if (!isRecord(layer))
|
|
156
|
-
add({
|
|
157
|
-
code: "invalid-map-spec",
|
|
158
|
-
severity: "error",
|
|
159
|
-
message: "MapPackage.mapSpec.layers entries must be objects.",
|
|
160
|
-
path: `mapSpec.layers[${i}]`,
|
|
161
|
-
});
|
|
199
|
+
if (!isRecord(layer))
|
|
162
200
|
continue;
|
|
163
|
-
}
|
|
164
201
|
if (typeof layer.source !== "string")
|
|
165
202
|
continue;
|
|
166
203
|
if (!sourceIds.has(layer.source) && !mapSpecSources.has(layer.source)) {
|
package/runtime/map-package.d.ts
CHANGED
|
@@ -129,6 +129,78 @@ export interface HonuaMapPackageLabelBinding {
|
|
|
129
129
|
fieldName: string;
|
|
130
130
|
placement?: "point" | "line" | "polygon";
|
|
131
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Package-level attribution the host is expected to display.
|
|
134
|
+
*
|
|
135
|
+
* Per-binding `attribution` on {@link HonuaMapPackageSourceBinding} stays the
|
|
136
|
+
* source-of-record for a single service; this collection is for the
|
|
137
|
+
* package-wide notices (basemap credit, licence text) that no single binding
|
|
138
|
+
* owns.
|
|
139
|
+
*/
|
|
140
|
+
export interface HonuaMapPackageAttribution {
|
|
141
|
+
/** Attribution text. Plain text; hosts escape before rendering. */
|
|
142
|
+
text: string;
|
|
143
|
+
/** Optional link target for the attribution. */
|
|
144
|
+
url?: string;
|
|
145
|
+
/** Bindings this notice covers. Omitted means package-wide. */
|
|
146
|
+
sourceIds?: readonly string[];
|
|
147
|
+
/** Whether the host must display this notice (licence obligation). */
|
|
148
|
+
required?: boolean;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* A renderer-neutral widget/component declared by the package.
|
|
152
|
+
*
|
|
153
|
+
* `type` is an open string rather than a closed union: the widget catalogue
|
|
154
|
+
* belongs to the host application, and closing it here would make every new
|
|
155
|
+
* component a breaking change to the artifact. Unknown types are carried
|
|
156
|
+
* through the round trip and ignored by hosts that cannot render them.
|
|
157
|
+
*/
|
|
158
|
+
export interface HonuaMapPackageWidget {
|
|
159
|
+
widgetId: string;
|
|
160
|
+
/** Widget kind, e.g. `legend`, `layer-list`, `basemap-gallery`, `search`. */
|
|
161
|
+
type: string;
|
|
162
|
+
position?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
|
|
163
|
+
label?: string;
|
|
164
|
+
/** Whether the widget starts visible. Defaults to `true` when omitted. */
|
|
165
|
+
visible?: boolean;
|
|
166
|
+
/** Widget-specific configuration, carried through unmodified. */
|
|
167
|
+
config?: Record<string, unknown>;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* An external capability the package needs in order to render. Declarative
|
|
171
|
+
* only — nothing in the SDK installs or resolves these; hosts use them to
|
|
172
|
+
* report a fidelity gap before rendering rather than after.
|
|
173
|
+
*/
|
|
174
|
+
export interface HonuaMapPackageDependency {
|
|
175
|
+
/** Dependency name, e.g. `maplibre-gl`, `@honua/sdk-js`, `pmtiles`. */
|
|
176
|
+
name: string;
|
|
177
|
+
/** semver range the package was authored against. */
|
|
178
|
+
versionRange?: string;
|
|
179
|
+
kind?: "renderer" | "protocol" | "sdk" | "plugin" | "font" | "sprite" | "basemap";
|
|
180
|
+
/** Whether the package still renders (degraded) without it. */
|
|
181
|
+
optional?: boolean;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* How this package was produced. Descriptive only.
|
|
185
|
+
*
|
|
186
|
+
* Deliberately carries no content hash, actor/tenant, authorization scope, or
|
|
187
|
+
* audit/correlation identifier. Those are identity and governance concerns
|
|
188
|
+
* owned by the canonical honua-server composition contract and projected into
|
|
189
|
+
* the SDK through #1397 / #1398; minting them here would fork the identity
|
|
190
|
+
* model, which is the failure mode #1426 exists to prevent.
|
|
191
|
+
*/
|
|
192
|
+
export interface HonuaMapPackageProvenance {
|
|
193
|
+
/** Tool that produced the package, e.g. `honua-cli`, `@honua/mcp-server`. */
|
|
194
|
+
generatedBy?: string;
|
|
195
|
+
/** Version of that tool. */
|
|
196
|
+
generatorVersion?: string;
|
|
197
|
+
/** ISO-8601 timestamp of production. */
|
|
198
|
+
generatedAt?: string;
|
|
199
|
+
/** Ids of upstream artifacts this package was composed from. */
|
|
200
|
+
derivedFrom?: readonly string[];
|
|
201
|
+
/** Free-text note for humans reading the artifact. */
|
|
202
|
+
notes?: string;
|
|
203
|
+
}
|
|
132
204
|
/**
|
|
133
205
|
* v1 MapPackage shape — mirrors the draft server type in
|
|
134
206
|
* `/home/makani/honua-server/src/Honua.Core/Features/Geoprocessing/Domain/MapPackage.cs`.
|
|
@@ -161,6 +233,14 @@ export interface HonuaMapPackage {
|
|
|
161
233
|
popupBindings?: readonly HonuaMapPackagePopupBinding[];
|
|
162
234
|
labelBindings?: readonly HonuaMapPackageLabelBinding[];
|
|
163
235
|
boundArtifacts?: readonly string[];
|
|
236
|
+
/** Package-wide attribution notices. */
|
|
237
|
+
attribution?: readonly HonuaMapPackageAttribution[];
|
|
238
|
+
/** Renderer-neutral widgets/components declared by the package. */
|
|
239
|
+
widgets?: readonly HonuaMapPackageWidget[];
|
|
240
|
+
/** External capabilities required to render at full fidelity. */
|
|
241
|
+
dependencies?: readonly HonuaMapPackageDependency[];
|
|
242
|
+
/** How the package was produced. Descriptive; carries no identity. */
|
|
243
|
+
provenance?: HonuaMapPackageProvenance;
|
|
164
244
|
/** Preserve additive fields through round-trip without forcing a type bump. */
|
|
165
245
|
[extra: string]: unknown;
|
|
166
246
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-package.d.ts","sourceRoot":"","sources":["../../../src/runtime/map-package.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"map-package.d.ts","sourceRoot":"","sources":["../../../src/runtime/map-package.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEzE,2DAA2D;AAC3D,eAAO,MAAM,2BAA2B,EAAG,sBAA+B,CAAC;AAE3E,2DAA2D;AAC3D,MAAM,MAAM,qBAAqB,GAAG,OAAO,2BAA2B,CAAC;AAEvE,4DAA4D;AAC5D,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3F;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAC/B,6BAA6B,GAC7B,yBAAyB,GACzB,cAAc,GACd,UAAU,GACV,WAAW,GACX,KAAK,GACL,KAAK,GACL,MAAM,GACN,OAAO,GACP,aAAa,GACb,aAAa,GACb,SAAS,GACT,oBAAoB,CAAC;AAEzB,oEAAoE;AACpE,MAAM,WAAW,sBAAsB;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,yDAAyD;AACzD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,uBAAuB,CAAC;IAClC,OAAO,EAAE,sBAAsB,CAAC;IAChC,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,4DAA4D;AAC5D,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;AAE3E,yEAAyE;AACzE,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;CAC1C;AAED,oDAAoD;AACpD,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,6CAA6C;AAC7C,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,2EAA2E;AAC3E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,2EAA2E;AAC3E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CAC1C;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,0BAA0B;IACzC,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAClF,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,yBAAyB;IACxC,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,KAAK,CAAC,EAAE,wBAAwB,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,cAAc,EAAE,SAAS,4BAA4B,EAAE,CAAC;IACxD,SAAS,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAE/C;;;;OAIG;IACH,OAAO,EAAE,uBAAuB,CAAC;IAEjC,WAAW,CAAC,EAAE,0BAA0B,CAAC;IACzC,MAAM,CAAC,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAC/C,aAAa,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACvD,aAAa,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACvD,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEnC,wCAAwC;IACxC,WAAW,CAAC,EAAE,SAAS,0BAA0B,EAAE,CAAC;IACpD,mEAAmE;IACnE,OAAO,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC3C,iEAAiE;IACjE,YAAY,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACpD,sEAAsE;IACtE,UAAU,CAAC,EAAE,yBAAyB,CAAC;IAEvC,+EAA+E;IAC/E,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B"}
|
|
@@ -79,6 +79,10 @@ export interface StudioCapabilityPackages {
|
|
|
79
79
|
export interface StudioCapabilityEntry {
|
|
80
80
|
readonly id: string;
|
|
81
81
|
readonly category?: string;
|
|
82
|
+
/** Server-owned governance lifecycle. Unknown future values remain intact. */
|
|
83
|
+
readonly lifecycle: string;
|
|
84
|
+
/** Whether server governance requires explicit opt-in before use. */
|
|
85
|
+
readonly optInRequired: boolean;
|
|
82
86
|
readonly supported: boolean;
|
|
83
87
|
readonly available: boolean;
|
|
84
88
|
readonly reasonCode?: string;
|
|
@@ -88,6 +92,12 @@ export interface StudioCapabilityEntry {
|
|
|
88
92
|
readonly messageKey?: string;
|
|
89
93
|
readonly [extra: string]: unknown;
|
|
90
94
|
}
|
|
95
|
+
/** Typed failure raised when a capability manifest drops required governance fields. */
|
|
96
|
+
export declare class HonuaCapabilityManifestContractError extends Error {
|
|
97
|
+
constructor(message: string);
|
|
98
|
+
}
|
|
99
|
+
/** Validate and narrow an untrusted capability-manifest response. */
|
|
100
|
+
export declare function assertStudioCapabilityManifest(value: unknown): asserts value is StudioCapabilityManifest;
|
|
91
101
|
/** Availability state of one transport (for example HTTP, gRPC, gRPC-Web). */
|
|
92
102
|
export interface StudioCapabilityTransportState {
|
|
93
103
|
readonly id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-manifest.d.ts","sourceRoot":"","sources":["../../../src/studio/capability-manifest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"capability-manifest.d.ts","sourceRoot":"","sources":["../../../src/studio/capability-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,44 @@
|
|
|
17
17
|
*
|
|
18
18
|
* @module
|
|
19
19
|
*/
|
|
20
|
+
/** Typed failure raised when a capability manifest drops required governance fields. */
|
|
21
|
+
export class HonuaCapabilityManifestContractError extends Error {
|
|
22
|
+
constructor(message) {
|
|
23
|
+
super(message);
|
|
24
|
+
this.name = "HonuaCapabilityManifestContractError";
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/** Validate and narrow an untrusted capability-manifest response. */
|
|
28
|
+
export function assertStudioCapabilityManifest(value) {
|
|
29
|
+
if (!isRecord(value) ||
|
|
30
|
+
value.schemaVersion !== "honua.capability_manifest.v1" ||
|
|
31
|
+
!Array.isArray(value.capabilities)) {
|
|
32
|
+
throw new HonuaCapabilityManifestContractError("Response is not a honua.capability_manifest.v1 document.");
|
|
33
|
+
}
|
|
34
|
+
for (const [index, capability] of value.capabilities.entries()) {
|
|
35
|
+
if (!isRecord(capability)) {
|
|
36
|
+
throw new HonuaCapabilityManifestContractError(`capabilities[${index}] must be an object.`);
|
|
37
|
+
}
|
|
38
|
+
if (typeof capability.id !== "string" || capability.id.length === 0) {
|
|
39
|
+
throw new HonuaCapabilityManifestContractError(`capabilities[${index}].id is required.`);
|
|
40
|
+
}
|
|
41
|
+
if (typeof capability.lifecycle !== "string" || capability.lifecycle.length === 0) {
|
|
42
|
+
throw new HonuaCapabilityManifestContractError(`capabilities[${index}].lifecycle is required.`);
|
|
43
|
+
}
|
|
44
|
+
if (typeof capability.optInRequired !== "boolean") {
|
|
45
|
+
throw new HonuaCapabilityManifestContractError(`capabilities[${index}].optInRequired is required.`);
|
|
46
|
+
}
|
|
47
|
+
if (typeof capability.supported !== "boolean") {
|
|
48
|
+
throw new HonuaCapabilityManifestContractError(`capabilities[${index}].supported is required.`);
|
|
49
|
+
}
|
|
50
|
+
if (typeof capability.available !== "boolean") {
|
|
51
|
+
throw new HonuaCapabilityManifestContractError(`capabilities[${index}].available is required.`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function isRecord(value) {
|
|
56
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
57
|
+
}
|
|
20
58
|
/**
|
|
21
59
|
* Return the capability entry with the given id, or `undefined` if the
|
|
22
60
|
* manifest does not advertise it (regardless of supported/available state).
|
package/studio/chart-spec.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* A documented, compatible subset of the Vega-Lite
|
|
2
|
+
* A documented, compatible subset of the Vega-Lite v6 spec used by Studio
|
|
3
3
|
* dashboard and report charts. The acceptance criterion for cross-surface
|
|
4
4
|
* parity is that "dashboard/report charts use Vega-Lite specs or an explicitly
|
|
5
5
|
* documented compatible subset" — this module is that documented subset, plus
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import type { HonuaGeneratedAppChartWidget } from "../generated-app/manifest.js";
|
|
20
20
|
/** Vega-Lite schema URL this subset targets. */
|
|
21
|
-
export declare const
|
|
21
|
+
export declare const HONUA_VEGA_LITE_SCHEMA: "https://vega.github.io/schema/vega-lite/v6.json";
|
|
22
22
|
/** Mark types in the supported subset. */
|
|
23
23
|
export type HonuaChartMark = "bar" | "line" | "point" | "arc";
|
|
24
24
|
/** Encoding field type in the supported subset. */
|
|
@@ -57,7 +57,7 @@ export interface HonuaChartEncoding {
|
|
|
57
57
|
* @experimental
|
|
58
58
|
*/
|
|
59
59
|
export interface HonuaVegaLiteChartSpec {
|
|
60
|
-
readonly $schema: typeof
|
|
60
|
+
readonly $schema: typeof HONUA_VEGA_LITE_SCHEMA;
|
|
61
61
|
readonly title?: string;
|
|
62
62
|
readonly description?: string;
|
|
63
63
|
readonly mark: HonuaChartMark | {
|
|
@@ -65,7 +65,7 @@ export interface HonuaVegaLiteChartSpec {
|
|
|
65
65
|
readonly tooltip?: boolean;
|
|
66
66
|
};
|
|
67
67
|
readonly encoding: HonuaChartEncoding;
|
|
68
|
-
readonly data
|
|
68
|
+
readonly data: {
|
|
69
69
|
readonly values?: ReadonlyArray<Record<string, unknown>>;
|
|
70
70
|
readonly name?: string;
|
|
71
71
|
};
|
|
@@ -75,8 +75,8 @@ export interface HonuaVegaLiteChartSpec {
|
|
|
75
75
|
/**
|
|
76
76
|
* Derive a {@link HonuaVegaLiteChartSpec} from a generated-app chart widget so
|
|
77
77
|
* dashboard and report charts render identically across surfaces. `rows`, when
|
|
78
|
-
* supplied, become inline `data.values`; otherwise the host binds
|
|
79
|
-
* dataset. Returns `undefined` when the widget lacks the field needed for its
|
|
78
|
+
* supplied, become inline `data.values`; otherwise the host binds the named
|
|
79
|
+
* dataset identified by the widget id. Returns `undefined` when the widget lacks the field needed for its
|
|
80
80
|
* chart kind (so a caller can degrade cleanly rather than emit a broken spec).
|
|
81
81
|
*
|
|
82
82
|
* @experimental
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart-spec.d.ts","sourceRoot":"","sources":["../../../src/studio/chart-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAEjF,gDAAgD;AAChD,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"chart-spec.d.ts","sourceRoot":"","sources":["../../../src/studio/chart-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAEjF,gDAAgD;AAChD,eAAO,MAAM,sBAAsB,EAAG,iDAA0D,CAAC;AAEjG,0CAA0C;AAC1C,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAE9D,mDAAmD;AACnD,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAEtF;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;IACzE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG;QAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACxD;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,CAAC,CAAC,EAAE,yBAAyB,CAAC;IACvC,QAAQ,CAAC,CAAC,CAAC,EAAE,yBAAyB,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,yBAAyB,CAAC;CAC5C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,sBAAsB,CAAC;IAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;QAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC9F,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACzD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;CACxC;AAYD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,4BAA4B,EACpC,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC5C,sBAAsB,GAAG,SAAS,CAiDpC"}
|
package/studio/chart-spec.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* A documented, compatible subset of the Vega-Lite
|
|
2
|
+
* A documented, compatible subset of the Vega-Lite v6 spec used by Studio
|
|
3
3
|
* dashboard and report charts. The acceptance criterion for cross-surface
|
|
4
4
|
* parity is that "dashboard/report charts use Vega-Lite specs or an explicitly
|
|
5
5
|
* documented compatible subset" — this module is that documented subset, plus
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* @module
|
|
18
18
|
*/
|
|
19
19
|
/** Vega-Lite schema URL this subset targets. */
|
|
20
|
-
export const
|
|
20
|
+
export const HONUA_VEGA_LITE_SCHEMA = "https://vega.github.io/schema/vega-lite/v6.json";
|
|
21
21
|
/**
|
|
22
22
|
* Map a generated-app chart widget kind to a Vega-Lite mark and the encoding
|
|
23
23
|
* shape the subset expects.
|
|
@@ -30,8 +30,8 @@ const CHART_KIND_MARK = {
|
|
|
30
30
|
/**
|
|
31
31
|
* Derive a {@link HonuaVegaLiteChartSpec} from a generated-app chart widget so
|
|
32
32
|
* dashboard and report charts render identically across surfaces. `rows`, when
|
|
33
|
-
* supplied, become inline `data.values`; otherwise the host binds
|
|
34
|
-
* dataset. Returns `undefined` when the widget lacks the field needed for its
|
|
33
|
+
* supplied, become inline `data.values`; otherwise the host binds the named
|
|
34
|
+
* dataset identified by the widget id. Returns `undefined` when the widget lacks the field needed for its
|
|
35
35
|
* chart kind (so a caller can degrade cleanly rather than emit a broken spec).
|
|
36
36
|
*
|
|
37
37
|
* @experimental
|
|
@@ -81,12 +81,12 @@ export function chartWidgetToVegaLiteSpec(widget, rows) {
|
|
|
81
81
|
};
|
|
82
82
|
}
|
|
83
83
|
return {
|
|
84
|
-
$schema:
|
|
84
|
+
$schema: HONUA_VEGA_LITE_SCHEMA,
|
|
85
85
|
...(widget.title ? { title: widget.title } : {}),
|
|
86
86
|
mark: { type: mark, tooltip: true },
|
|
87
87
|
encoding,
|
|
88
88
|
width: "container",
|
|
89
|
-
|
|
89
|
+
data: rows ? { values: rows } : { name: widget.id },
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
92
|
function metricToAggregate(metric) {
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Thin Studio transport adapter for the shared application-command layer.
|
|
3
|
+
*
|
|
4
|
+
* This module owns no workflow, validation, authorization, or receipt logic.
|
|
5
|
+
* It fixes the transport discriminator to `studio` and delegates to the same
|
|
6
|
+
* command objects and runtime used by direct SDK, CLI, and MCP callers.
|
|
7
|
+
*/
|
|
8
|
+
import { type HonuaCommand, type HonuaCommandIdentity, type HonuaCommandInvocation, type HonuaCommandReceipt, type StudioDraftSaveVersionInput } from "../control-plane/commands/index.js";
|
|
9
|
+
import type { HonuaClient } from "../core/client.js";
|
|
10
|
+
import { HonuaStudioLifecycleClient } from "./lifecycle-client.js";
|
|
11
|
+
import type { StudioContentVersion } from "./lifecycle-types.js";
|
|
12
|
+
/** Invocation fields a Studio host may supply; transport selection is adapter-owned. */
|
|
13
|
+
export type HonuaStudioCommandInvocation = Omit<HonuaCommandInvocation, "transport">;
|
|
14
|
+
/** Constructor options for {@link HonuaStudioCommandAdapter}. */
|
|
15
|
+
export interface HonuaStudioCommandAdapterOptions {
|
|
16
|
+
readonly client: HonuaClient;
|
|
17
|
+
readonly lifecycle?: HonuaStudioLifecycleClient;
|
|
18
|
+
readonly identity?: HonuaCommandIdentity;
|
|
19
|
+
}
|
|
20
|
+
/** Construct a Studio adapter over the shared command runtime. */
|
|
21
|
+
export declare function createHonuaStudioCommandAdapter(options: HonuaStudioCommandAdapterOptions): HonuaStudioCommandAdapter;
|
|
22
|
+
/**
|
|
23
|
+
* Studio-facing command dispatcher. UI code adapts form state into command
|
|
24
|
+
* input and renders the returned receipt; all application behavior remains in
|
|
25
|
+
* the shared command catalog.
|
|
26
|
+
*/
|
|
27
|
+
export declare class HonuaStudioCommandAdapter {
|
|
28
|
+
#private;
|
|
29
|
+
constructor(options: HonuaStudioCommandAdapterOptions);
|
|
30
|
+
/** Dispatch any shared command with Studio as the immutable transport. */
|
|
31
|
+
execute<TInput, TOutput>(command: HonuaCommand<TInput, TOutput>, input: TInput, invocation?: HonuaStudioCommandInvocation): Promise<HonuaCommandReceipt<TOutput>>;
|
|
32
|
+
/** Save a draft through the shared `studio.draft.saveVersion` command. */
|
|
33
|
+
saveDraftVersion(input: StudioDraftSaveVersionInput, invocation?: HonuaStudioCommandInvocation): Promise<HonuaCommandReceipt<StudioContentVersion>>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=command-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-adapter.d.ts","sourceRoot":"","sources":["../../../src/studio/command-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EAExB,KAAK,2BAA2B,EAGjC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,wFAAwF;AACxF,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC;AAErF,iEAAiE;AACjE,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,0BAA0B,CAAC;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CAC1C;AAED,kEAAkE;AAClE,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,gCAAgC,GAAG,yBAAyB,CAEpH;AAED;;;;GAIG;AACH,qBAAa,yBAAyB;;gBAGjB,OAAO,EAAE,gCAAgC;IAQ5D,0EAA0E;IACnE,OAAO,CAAC,MAAM,EAAE,OAAO,EAC5B,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,KAAK,EAAE,MAAM,EACb,UAAU,GAAE,4BAAiC,GAC5C,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAIxC,0EAA0E;IACnE,gBAAgB,CACrB,KAAK,EAAE,2BAA2B,EAClC,UAAU,GAAE,4BAAiC,GAC5C,OAAO,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;CAGtD"}
|