Archify Diagram Viewer 0.1.0
VS Code extension that previews Archify diagrams from their JSON sources (live, as you type) and opens rendered Archify HTML in a viewer tab. Bundles the Archify 3.0.1 renderer and runs it on VS Code's Node runtime. Adds validation diagnostics, JSON schema help, source-link navigation, export saving, render-to-file and open-in-browser commands. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+152
@@ -0,0 +1,152 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://github.com/tt-a1i/archify/schemas/architecture.schema.json",
|
||||
"title": "Archify Architecture Diagram",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["schema_version", "diagram_type", "meta", "components"],
|
||||
"properties": {
|
||||
"schema_version": { "const": 1 },
|
||||
"diagram_type": { "const": "architecture" },
|
||||
"meta": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["title", "output"],
|
||||
"properties": {
|
||||
"title": { "type": "string", "minLength": 1 },
|
||||
"locale": { "$ref": "common.schema.json#/$defs/locale" },
|
||||
"translations": { "$ref": "common.schema.json#/$defs/translations" },
|
||||
"subtitle": { "type": "string" },
|
||||
"output": { "$ref": "common.schema.json#/$defs/portableOutputPath" },
|
||||
"animation": { "$ref": "common.schema.json#/$defs/animation" },
|
||||
"visual_preset": { "$ref": "common.schema.json#/$defs/visualPreset" },
|
||||
"quality_profile": { "$ref": "common.schema.json#/$defs/qualityProfile" },
|
||||
"engineering_profile": { "enum": ["deployment-ownership"] },
|
||||
"repository": { "$ref": "common.schema.json#/$defs/repository" },
|
||||
"views": { "$ref": "common.schema.json#/$defs/guidedViews" },
|
||||
"legend": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"mode": { "$ref": "common.schema.json#/$defs/legendMode" },
|
||||
"entries": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"frontend": { "$ref": "common.schema.json#/$defs/legendEntry" },
|
||||
"backend": { "$ref": "common.schema.json#/$defs/legendEntry" },
|
||||
"database": { "$ref": "common.schema.json#/$defs/legendEntry" },
|
||||
"cloud": { "$ref": "common.schema.json#/$defs/legendEntry" },
|
||||
"security": { "$ref": "common.schema.json#/$defs/legendEntry" },
|
||||
"messagebus": { "$ref": "common.schema.json#/$defs/legendEntry" },
|
||||
"external": { "$ref": "common.schema.json#/$defs/legendEntry" }
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"viewBox": {
|
||||
"type": "array",
|
||||
"prefixItems": [
|
||||
{ "type": "number", "minimum": 320 },
|
||||
{ "type": "number", "minimum": 240 }
|
||||
],
|
||||
"items": false,
|
||||
"minItems": 2,
|
||||
"maxItems": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["mode"],
|
||||
"properties": {
|
||||
"mode": { "enum": ["grid"] },
|
||||
"origin": { "$ref": "common.schema.json#/$defs/point" },
|
||||
"cols": { "type": "integer", "minimum": 1, "maximum": 12 },
|
||||
"gapX": { "type": "number", "minimum": 0 },
|
||||
"gapY": { "type": "number", "minimum": 0 },
|
||||
"cellW": { "type": "number", "minimum": 40 },
|
||||
"cellH": { "type": "number", "minimum": 24 }
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["id", "type", "label"],
|
||||
"properties": {
|
||||
"id": { "$ref": "common.schema.json#/$defs/id" },
|
||||
"type": { "$ref": "common.schema.json#/$defs/componentType" },
|
||||
"label": { "type": "string", "minLength": 1 },
|
||||
"sublabel": { "type": "string" },
|
||||
"tag": { "type": "string" },
|
||||
"icon": { "$ref": "common.schema.json#/$defs/nodeIcon" },
|
||||
"brand": { "$ref": "common.schema.json#/$defs/brandMark" },
|
||||
"sources": { "$ref": "common.schema.json#/$defs/sourceReferences" },
|
||||
"row": { "type": "integer", "minimum": 0 },
|
||||
"col": { "type": "integer", "minimum": 0 },
|
||||
"pos": { "$ref": "common.schema.json#/$defs/point" },
|
||||
"size": {
|
||||
"type": "array",
|
||||
"prefixItems": [
|
||||
{ "type": "number", "exclusiveMinimum": 0 },
|
||||
{ "type": "number", "exclusiveMinimum": 0 }
|
||||
],
|
||||
"items": false,
|
||||
"minItems": 2,
|
||||
"maxItems": 2
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"boundaries": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["kind", "label", "wraps"],
|
||||
"properties": {
|
||||
"kind": { "enum": ["region", "security-group"] },
|
||||
"label": { "type": "string", "minLength": 1 },
|
||||
"wraps": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": { "$ref": "common.schema.json#/$defs/id" }
|
||||
},
|
||||
"pad": { "type": "number", "minimum": 0 }
|
||||
}
|
||||
}
|
||||
},
|
||||
"connections": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["from", "to"],
|
||||
"properties": {
|
||||
"id": { "$ref": "common.schema.json#/$defs/id" },
|
||||
"from": { "$ref": "common.schema.json#/$defs/id" },
|
||||
"to": { "$ref": "common.schema.json#/$defs/id" },
|
||||
"label": { "type": "string" },
|
||||
"variant": { "$ref": "common.schema.json#/$defs/variant" },
|
||||
"fromSide": { "$ref": "common.schema.json#/$defs/side" },
|
||||
"toSide": { "$ref": "common.schema.json#/$defs/side" },
|
||||
"route": { "enum": ["auto", "straight", "orthogonal-h", "orthogonal-v"] },
|
||||
"via": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "common.schema.json#/$defs/point" }
|
||||
},
|
||||
"labelAt": { "$ref": "common.schema.json#/$defs/point" },
|
||||
"labelDx": { "type": "number" },
|
||||
"labelDy": { "type": "number" },
|
||||
"labelSegment": { "type": "integer", "minimum": 0 },
|
||||
"width": { "$ref": "common.schema.json#/$defs/relationshipWidth" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"cards": { "$ref": "common.schema.json#/$defs/cards" }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user