From abd6ab14183bb8b6a53d1e6e6ea2fc5deaee9b9c Mon Sep 17 00:00:00 2001 From: Vessel9817 <151808241+Vessel9817@users.noreply.github.com> Date: Thu, 23 Jul 2026 17:24:11 -0400 Subject: [PATCH 1/2] Migrated to draft-07 Signed-off-by: Vessel9817 <151808241+Vessel9817@users.noreply.github.com> --- src/schemas/json/vsix-manifestinjection.json | 4 ++-- src/schemas/json/vsix-publish.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/schemas/json/vsix-manifestinjection.json b/src/schemas/json/vsix-manifestinjection.json index 9f7f104374c..a7a5b604e05 100644 --- a/src/schemas/json/vsix-manifestinjection.json +++ b/src/schemas/json/vsix-manifestinjection.json @@ -1,5 +1,6 @@ { - "$schema": "http://json-schema.org/draft-04/schema#", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/vsix-manifestinjection.json", "definitions": { "fileAssociation": { "required": ["extension", "progId"], @@ -129,7 +130,6 @@ } } }, - "id": "https://json.schemastore.org/vsix-manifestinjection.json", "properties": { "fileAssociations": { "description": "A list of file associations (protocol handlers).", diff --git a/src/schemas/json/vsix-publish.json b/src/schemas/json/vsix-publish.json index b3d34463a62..fe46445c500 100644 --- a/src/schemas/json/vsix-publish.json +++ b/src/schemas/json/vsix-publish.json @@ -1,6 +1,6 @@ { - "$schema": "http://json-schema.org/draft-04/schema#", - "id": "https://json.schemastore.org/vsix-publish.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/vsix-publish.json", "properties": { "identity": { "type": "object", From a7cd5d64931b2e34b375c1d58b22a478d2507725 Mon Sep 17 00:00:00 2001 From: Vessel9817 <151808241+Vessel9817@users.noreply.github.com> Date: Thu, 23 Jul 2026 17:25:24 -0400 Subject: [PATCH 2/2] Enabled strict validation Signed-off-by: Vessel9817 <151808241+Vessel9817@users.noreply.github.com> --- src/schema-validation.jsonc | 2 -- src/schemas/json/vsix-manifestinjection.json | 3 +++ src/schemas/json/vsix-publish.json | 13 ++++++++++--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/schema-validation.jsonc b/src/schema-validation.jsonc index de4bb92d48f..c0db578a16b 100644 --- a/src/schema-validation.jsonc +++ b/src/schema-validation.jsonc @@ -254,8 +254,6 @@ "vega-lite.json", "vs-nesting.json", "vsext.json", - "vsix-manifestinjection.json", - "vsix-publish.json", "vss-extension.json", "vtesttree-schema-v1.0.0.json", "vtesttree-schema-v2.0.0.json", diff --git a/src/schemas/json/vsix-manifestinjection.json b/src/schemas/json/vsix-manifestinjection.json index a7a5b604e05..178b670f616 100644 --- a/src/schemas/json/vsix-manifestinjection.json +++ b/src/schemas/json/vsix-manifestinjection.json @@ -3,6 +3,7 @@ "$id": "https://json.schemastore.org/vsix-manifestinjection.json", "definitions": { "fileAssociation": { + "type": "object", "required": ["extension", "progId"], "properties": { "contentType": { @@ -34,6 +35,7 @@ } }, "urlAssociation": { + "type": "object", "required": ["protocol", "progId", "defaultProgramRegistrationPath"], "properties": { "defaultProgramRegistrationPath": { @@ -62,6 +64,7 @@ } }, "progIds": { + "type": "object", "required": ["id"], "properties": { "allowSilentDefaultTakeOver": { diff --git a/src/schemas/json/vsix-publish.json b/src/schemas/json/vsix-publish.json index fe46445c500..f79e8250cc1 100644 --- a/src/schemas/json/vsix-publish.json +++ b/src/schemas/json/vsix-publish.json @@ -79,10 +79,17 @@ "pattern": "^[^\\s-]+$" }, "language": { - "type": ["string", "number"], + "anyOf": [ + { + "type": "string", + "pattern": "^(\\d{4})$|^([a-zA-Z]{2}(-[A-Za-z]{2})?)$|^neutral$" + }, + { + "type": "number" + } + ], "title": "Language", - "description": "The default language the extension applies to. Must be a CLR locale code or an lcid code.", - "pattern": "^(\\d{4})$|^([a-zA-Z]{2}(-[A-Za-z]{2})?)$|^neutral$" + "description": "The default language the extension applies to. Must be a CLR locale code or an lcid code." }, "tags": { "type": "array",