@treasuryspatial/plugin-manifest 0.1.8 → 0.1.13

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.
@@ -4,24 +4,31 @@
4
4
  "title": "Composer Tool Manifest",
5
5
  "type": "object",
6
6
  "additionalProperties": false,
7
- "required": ["toolId", "label", "pipeline", "panels"],
7
+ "required": ["toolId", "label", "pipeline"],
8
8
  "properties": {
9
9
  "toolId": { "$ref": "#/$defs/id" },
10
10
  "label": { "type": "string" },
11
+ "execution": { "$ref": "#/$defs/toolExecutionDefinition" },
12
+ "metrics": { "$ref": "#/$defs/toolMetricsDefinition" },
11
13
  "pipeline": {
12
14
  "type": "array",
13
15
  "items": { "$ref": "#/$defs/pipelineStep" }
14
16
  },
15
- "panels": {
16
- "type": "array",
17
- "items": { "$ref": "#/$defs/panelRef" }
18
- },
19
17
  "actions": {
20
18
  "type": "array",
21
19
  "items": { "$ref": "#/$defs/action" }
22
20
  },
21
+ "modeAccess": { "$ref": "#/$defs/modeAccess" },
22
+ "promptPack": { "$ref": "#/$defs/manifestRecordRef" },
23
+ "mapInputs": {
24
+ "type": "array",
25
+ "items": { "$ref": "#/$defs/manifestMapInputDefinition" }
26
+ },
23
27
  "extensions": {
24
28
  "type": "object",
29
+ "not": {
30
+ "required": ["render"]
31
+ },
25
32
  "additionalProperties": true
26
33
  }
27
34
  },
@@ -58,6 +65,74 @@
58
65
  }
59
66
  }
60
67
  },
68
+ "toolMetricSourceDefinition": {
69
+ "type": "object",
70
+ "additionalProperties": false,
71
+ "required": ["kind", "path"],
72
+ "properties": {
73
+ "kind": {
74
+ "type": "string",
75
+ "enum": ["runtime", "viewer", "geometry", "render", "map"]
76
+ },
77
+ "path": { "type": "string", "minLength": 1 }
78
+ }
79
+ },
80
+ "toolExecutionDefinition": {
81
+ "type": "object",
82
+ "additionalProperties": false,
83
+ "properties": {
84
+ "timeoutMs": {
85
+ "type": "number",
86
+ "exclusiveMinimum": 0
87
+ }
88
+ }
89
+ },
90
+ "toolMetricDefinition": {
91
+ "type": "object",
92
+ "additionalProperties": false,
93
+ "required": ["id", "label", "source"],
94
+ "properties": {
95
+ "id": { "$ref": "#/$defs/id" },
96
+ "label": { "type": "string" },
97
+ "summary": { "type": "string" },
98
+ "source": { "$ref": "#/$defs/toolMetricSourceDefinition" },
99
+ "format": {
100
+ "type": "string",
101
+ "enum": ["text", "number", "count"]
102
+ },
103
+ "digits": { "type": "integer", "minimum": 0, "maximum": 6 },
104
+ "prefix": { "type": "string" },
105
+ "suffix": { "type": "string" },
106
+ "emptyLabel": { "type": "string" }
107
+ }
108
+ },
109
+ "toolMetricGroupDefinition": {
110
+ "type": "object",
111
+ "additionalProperties": false,
112
+ "required": ["id", "label", "metrics"],
113
+ "properties": {
114
+ "id": { "$ref": "#/$defs/id" },
115
+ "label": { "type": "string" },
116
+ "summary": { "type": "string" },
117
+ "metrics": {
118
+ "type": "array",
119
+ "items": { "$ref": "#/$defs/toolMetricDefinition" }
120
+ }
121
+ }
122
+ },
123
+ "toolMetricsDefinition": {
124
+ "type": "object",
125
+ "additionalProperties": false,
126
+ "required": ["groups"],
127
+ "properties": {
128
+ "title": { "type": "string" },
129
+ "summary": { "type": "string" },
130
+ "groups": {
131
+ "type": "array",
132
+ "items": { "$ref": "#/$defs/toolMetricGroupDefinition" }
133
+ }
134
+ }
135
+ },
61
136
  "action": {
62
137
  "oneOf": [
63
138
  {
@@ -83,6 +158,75 @@
83
158
  }
84
159
  }
85
160
  ]
161
+ },
162
+ "modeAccess": {
163
+ "type": "object",
164
+ "additionalProperties": false,
165
+ "properties": {
166
+ "allowModes": {
167
+ "type": "array",
168
+ "items": { "$ref": "#/$defs/id" }
169
+ },
170
+ "denyModes": {
171
+ "type": "array",
172
+ "items": { "$ref": "#/$defs/id" }
173
+ }
174
+ }
175
+ },
176
+ "manifestRecordRef": {
177
+ "type": "object",
178
+ "additionalProperties": false,
179
+ "required": ["id"],
180
+ "properties": {
181
+ "id": { "$ref": "#/$defs/id" },
182
+ "version": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$" }
183
+ }
184
+ },
185
+ "manifestMapInputPatch": {
186
+ "type": "object",
187
+ "additionalProperties": false,
188
+ "required": ["parameterPath", "source"],
189
+ "properties": {
190
+ "parameterPath": { "type": "string", "minLength": 1 },
191
+ "source": {
192
+ "type": "string",
193
+ "enum": ["points", "closed", "interpretation", "sourceKind", "geometryKind", "geojson", "label", "constant"]
194
+ },
195
+ "pointFormat": {
196
+ "type": "string",
197
+ "enum": ["xy", "xyz", "mm-object"]
198
+ },
199
+ "closeRing": { "type": "boolean" },
200
+ "constantValue": {}
201
+ }
202
+ },
203
+ "manifestMapInputDefinition": {
204
+ "type": "object",
205
+ "additionalProperties": false,
206
+ "required": ["slotId", "sourceKind", "geometryKind"],
207
+ "properties": {
208
+ "slotId": { "$ref": "#/$defs/id" },
209
+ "label": { "type": "string" },
210
+ "required": { "type": "boolean" },
211
+ "sourceKind": {
212
+ "type": "string",
213
+ "enum": ["building", "waterway", "road", "rail"]
214
+ },
215
+ "geometryKind": {
216
+ "type": "string",
217
+ "enum": ["polygon", "polyline"]
218
+ },
219
+ "closed": { "type": "boolean" },
220
+ "classes": {
221
+ "type": "array",
222
+ "items": { "type": "string", "minLength": 1 }
223
+ },
224
+ "interpretation": { "type": "string" },
225
+ "patches": {
226
+ "type": "array",
227
+ "items": { "$ref": "#/$defs/manifestMapInputPatch" }
228
+ }
229
+ }
86
230
  }
87
231
  }
88
232
  }
@@ -5,6 +5,10 @@
5
5
  "type": "object",
6
6
  "additionalProperties": false,
7
7
  "properties": {
8
+ "protocolVersion": {
9
+ "type": "string",
10
+ "enum": ["2.1.0"]
11
+ },
8
12
  "uiVersion": { "$ref": "#/$defs/semver" },
9
13
  "panels": {
10
14
  "type": "array",
@@ -15,6 +19,10 @@
15
19
  "additionalProperties": false,
16
20
  "properties": {
17
21
  "defaultPanelId": { "$ref": "#/$defs/id" },
22
+ "navigation": {
23
+ "type": "string",
24
+ "enum": ["stack", "tabs"]
25
+ },
18
26
  "panelOrder": {
19
27
  "type": "array",
20
28
  "items": { "$ref": "#/$defs/id" }
@@ -40,6 +48,10 @@
40
48
  "label": { "type": "string" },
41
49
  "order": { "type": "integer" },
42
50
  "description": { "type": "string" },
51
+ "intent": {
52
+ "type": "string",
53
+ "enum": ["setup", "geometry", "refine", "analysis", "advanced", "system"]
54
+ },
43
55
  "groups": {
44
56
  "type": "array",
45
57
  "items": { "$ref": "#/$defs/group" }
@@ -53,7 +65,20 @@
53
65
  "properties": {
54
66
  "id": { "$ref": "#/$defs/id" },
55
67
  "label": { "type": "string" },
68
+ "order": { "type": "integer" },
69
+ "variant": {
70
+ "type": "string",
71
+ "enum": ["default", "advanced", "compact"]
72
+ },
73
+ "tier": {
74
+ "type": "string",
75
+ "enum": ["primary", "advanced", "system"]
76
+ },
77
+ "collapsible": { "type": "boolean" },
78
+ "defaultOpen": { "type": "boolean" },
56
79
  "description": { "type": "string" },
80
+ "visibleWhen": { "$ref": "#/$defs/expr" },
81
+ "summary": { "$ref": "#/$defs/groupSummary" },
57
82
  "fields": {
58
83
  "type": "array",
59
84
  "items": { "$ref": "#/$defs/fieldRef" }
@@ -72,29 +97,59 @@
72
97
  "required": ["key"],
73
98
  "properties": {
74
99
  "key": { "type": "string" },
100
+ "order": { "type": "integer" },
75
101
  "label": { "type": "string" },
102
+ "width": {
103
+ "type": "string",
104
+ "enum": ["full", "half", "third"]
105
+ },
106
+ "density": {
107
+ "type": "string",
108
+ "enum": ["comfortable", "compact"]
109
+ },
110
+ "tier": {
111
+ "type": "string",
112
+ "enum": ["primary", "advanced", "system"]
113
+ },
114
+ "presentation": {
115
+ "type": "string",
116
+ "enum": ["default", "compactRange", "inlineNumber", "chipGroup"]
117
+ },
76
118
  "control": {
77
119
  "type": "string",
78
- "enum": ["range", "number", "toggle", "select", "color", "text", "textarea", "file", "action", "array", "oneOf"]
120
+ "enum": ["range", "number", "toggle", "checkbox", "select", "color", "text", "textarea", "file", "action", "array", "oneOf"]
79
121
  },
80
122
  "min": { "type": "number" },
81
123
  "max": { "type": "number" },
82
124
  "step": { "type": "number" },
83
125
  "unit": { "type": "string" },
126
+ "displayFactor": { "type": "number", "exclusiveMinimum": 0 },
84
127
  "placeholder": { "type": "string" },
85
128
  "rows": { "type": "integer", "minimum": 1 },
86
129
  "description": { "type": "string" },
130
+ "defaultValue": {},
87
131
  "options": {
88
132
  "type": "array",
89
133
  "items": {
90
- "type": "object",
91
- "additionalProperties": false,
92
- "required": ["value", "label"],
93
- "properties": {
94
- "value": { "type": ["string", "number", "boolean"] },
95
- "label": { "type": "string" },
96
- "description": { "type": "string" }
97
- }
134
+ "oneOf": [
135
+ { "type": "string" },
136
+ { "type": "number" },
137
+ { "type": "boolean" },
138
+ {
139
+ "type": "object",
140
+ "additionalProperties": false,
141
+ "properties": {
142
+ "value": { "type": ["string", "number", "boolean"] },
143
+ "id": { "type": ["string", "number", "boolean"] },
144
+ "label": { "type": "string" },
145
+ "description": { "type": "string" }
146
+ },
147
+ "anyOf": [
148
+ { "required": ["value"] },
149
+ { "required": ["id"] }
150
+ ]
151
+ }
152
+ ]
98
153
  }
99
154
  },
100
155
  "visibleWhen": { "$ref": "#/$defs/expr" },
@@ -105,6 +160,8 @@
105
160
  "type": "array",
106
161
  "items": { "$ref": "#/$defs/fieldRef" }
107
162
  },
163
+ "arrayControl": { "type": "string" },
164
+ "sortable": { "type": "boolean" },
108
165
  "fields": {
109
166
  "type": "array",
110
167
  "items": { "$ref": "#/$defs/fieldRef" }
@@ -129,6 +186,36 @@
129
186
  "actionId": { "$ref": "#/$defs/id" }
130
187
  }
131
188
  },
189
+ "groupSummary": {
190
+ "type": "object",
191
+ "additionalProperties": false,
192
+ "required": ["items"],
193
+ "properties": {
194
+ "items": {
195
+ "type": "array",
196
+ "items": { "$ref": "#/$defs/summaryItem" }
197
+ },
198
+ "separator": { "type": "string" },
199
+ "emptyLabel": { "type": "string" }
200
+ }
201
+ },
202
+ "summaryItem": {
203
+ "type": "object",
204
+ "additionalProperties": false,
205
+ "required": ["path"],
206
+ "properties": {
207
+ "path": { "type": "string" },
208
+ "label": { "type": "string" },
209
+ "format": {
210
+ "type": "string",
211
+ "enum": ["text", "number", "count"]
212
+ },
213
+ "digits": { "type": "integer", "minimum": 0 },
214
+ "prefix": { "type": "string" },
215
+ "suffix": { "type": "string" },
216
+ "emptyLabel": { "type": "string" }
217
+ }
218
+ },
132
219
  "variant": {
133
220
  "type": "object",
134
221
  "additionalProperties": false,