From abcd8bd14996a7a10ab634bacba026d1589db850 Mon Sep 17 00:00:00 2001 From: Nicolas Hedger Date: Fri, 29 Apr 2022 16:57:52 +0200 Subject: [PATCH 01/20] chore: Create initial draft for the manifest --- packages/vite/schemas/manifest.schema.json | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 packages/vite/schemas/manifest.schema.json diff --git a/packages/vite/schemas/manifest.schema.json b/packages/vite/schemas/manifest.schema.json new file mode 100644 index 00000000000000..23e344f1725a22 --- /dev/null +++ b/packages/vite/schemas/manifest.schema.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Vite Manifest", + "type": "object", + "patternProperties": { + "^.+$": { + "type": "object", + "properties": { + "src": { + "type": "string" + }, + "file": { + "type": "string" + }, + "css": { + "type": "array", + "items": { + "type": "string" + } + }, + "assets": { + "type": "array", + "items": { + "type": "string" + } + }, + "isEntry": { + "type": "boolean" + }, + "isDynamicEntry": { + "type": "boolean" + }, + "imports": { + "type": "array", + "items": { + "type": "string" + } + }, + "dynamicImports": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["file"] + } + } +} From 60c5435fb4f7dfd3e5b7ce3ec7c596bb416b0596 Mon Sep 17 00:00:00 2001 From: Nicolas Hedger Date: Fri, 29 Apr 2022 17:24:17 +0200 Subject: [PATCH 02/20] chore: Create initial draft for the SSR manifest --- packages/vite/schemas/ssr-manifest.schema.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 packages/vite/schemas/ssr-manifest.schema.json diff --git a/packages/vite/schemas/ssr-manifest.schema.json b/packages/vite/schemas/ssr-manifest.schema.json new file mode 100644 index 00000000000000..c34b1c1ba9047b --- /dev/null +++ b/packages/vite/schemas/ssr-manifest.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Vite SSR Manifest", + "type": "object", + "patternProperties": { + "^.+$": { + "type": "array", + "items": { + "type": "string" + } + } + } +} From 004c294bacae88f447ba0a08db71c7c82969b9f9 Mon Sep 17 00:00:00 2001 From: Nicolas Hedger <649677+nhedger@users.noreply.github.com> Date: Fri, 29 Apr 2022 17:50:00 +0200 Subject: [PATCH 03/20] Update packages/vite/schemas/manifest.schema.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Máximo Mussini --- packages/vite/schemas/manifest.schema.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/vite/schemas/manifest.schema.json b/packages/vite/schemas/manifest.schema.json index 23e344f1725a22..8ecc4da8ee4dde 100644 --- a/packages/vite/schemas/manifest.schema.json +++ b/packages/vite/schemas/manifest.schema.json @@ -33,7 +33,8 @@ "imports": { "type": "array", "items": { - "type": "string" + "type": "string", + "description": "A key for an existing JS entry in the manifest." } }, "dynamicImports": { From a284825fbd2cade4db0ea989d22d1e295254e0a7 Mon Sep 17 00:00:00 2001 From: Nicolas Hedger <649677+nhedger@users.noreply.github.com> Date: Fri, 29 Apr 2022 17:50:45 +0200 Subject: [PATCH 04/20] Update packages/vite/schemas/manifest.schema.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Máximo Mussini --- packages/vite/schemas/manifest.schema.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/vite/schemas/manifest.schema.json b/packages/vite/schemas/manifest.schema.json index 8ecc4da8ee4dde..3c6547b6429782 100644 --- a/packages/vite/schemas/manifest.schema.json +++ b/packages/vite/schemas/manifest.schema.json @@ -15,7 +15,8 @@ "css": { "type": "array", "items": { - "type": "string" + "type": "string", + "description": "A CSS filename, relative to the outDir." } }, "assets": { From 3438d0196bead06f697a3c6de72c92ad2179f643 Mon Sep 17 00:00:00 2001 From: Nicolas Hedger <649677+nhedger@users.noreply.github.com> Date: Fri, 29 Apr 2022 17:51:53 +0200 Subject: [PATCH 05/20] Update packages/vite/schemas/manifest.schema.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Máximo Mussini --- packages/vite/schemas/manifest.schema.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/vite/schemas/manifest.schema.json b/packages/vite/schemas/manifest.schema.json index 3c6547b6429782..3dbed30c4ea681 100644 --- a/packages/vite/schemas/manifest.schema.json +++ b/packages/vite/schemas/manifest.schema.json @@ -10,7 +10,8 @@ "type": "string" }, "file": { - "type": "string" + "type": "string", + "description": "A JS filename, relative to the outDir." }, "css": { "type": "array", From e2d6d59e4c92c3411d7af053769db2d8f70c8197 Mon Sep 17 00:00:00 2001 From: Nicolas Hedger <649677+nhedger@users.noreply.github.com> Date: Fri, 29 Apr 2022 17:52:00 +0200 Subject: [PATCH 06/20] Update packages/vite/schemas/manifest.schema.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Máximo Mussini --- packages/vite/schemas/manifest.schema.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/vite/schemas/manifest.schema.json b/packages/vite/schemas/manifest.schema.json index 3dbed30c4ea681..32e6538de72815 100644 --- a/packages/vite/schemas/manifest.schema.json +++ b/packages/vite/schemas/manifest.schema.json @@ -23,7 +23,8 @@ "assets": { "type": "array", "items": { - "type": "string" + "type": "string", + "description": "An asset filename, relative to the outDir." } }, "isEntry": { From 3169f20405f9da3f70675f9c3ec01677d714abf6 Mon Sep 17 00:00:00 2001 From: Nicolas Hedger Date: Fri, 29 Apr 2022 17:58:54 +0200 Subject: [PATCH 07/20] chore: add descriptions to isEntry and isDynamicEntry --- packages/vite/schemas/manifest.schema.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/vite/schemas/manifest.schema.json b/packages/vite/schemas/manifest.schema.json index 32e6538de72815..0ad604af25ae69 100644 --- a/packages/vite/schemas/manifest.schema.json +++ b/packages/vite/schemas/manifest.schema.json @@ -28,10 +28,12 @@ } }, "isEntry": { - "type": "boolean" + "type": "boolean", + "description": "Whether the chunk is an entry." }, "isDynamicEntry": { - "type": "boolean" + "type": "boolean", + "description": "Whether the chunk is a dynamic entry." }, "imports": { "type": "array", From 9fd75ed83aa7052ac882e66b418f8dd1902442ba Mon Sep 17 00:00:00 2001 From: Nicolas Hedger Date: Fri, 29 Apr 2022 23:40:57 +0200 Subject: [PATCH 08/20] chore: add basic manifest tests --- .../manifests/__tests__/manifest.spec.ts | 26 +++++++++++++++++++ .../additionalProperties.manifest.json | 6 +++++ .../manifests/invalid.manifest.json | 18 +++++++++++++ packages/playground/manifests/package.json | 8 ++++++ .../playground/manifests/valid.manifest.json | 19 ++++++++++++++ 5 files changed, 77 insertions(+) create mode 100644 packages/playground/manifests/__tests__/manifest.spec.ts create mode 100644 packages/playground/manifests/additionalProperties.manifest.json create mode 100644 packages/playground/manifests/invalid.manifest.json create mode 100644 packages/playground/manifests/package.json create mode 100644 packages/playground/manifests/valid.manifest.json diff --git a/packages/playground/manifests/__tests__/manifest.spec.ts b/packages/playground/manifests/__tests__/manifest.spec.ts new file mode 100644 index 00000000000000..ccb0136da4b327 --- /dev/null +++ b/packages/playground/manifests/__tests__/manifest.spec.ts @@ -0,0 +1,26 @@ +import Ajv2020 from 'ajv/dist/2020' + +const ajv = new Ajv2020() +const validate = ajv.compile( + require('../../../vite/schemas/manifest.schema.json') +) + +describe('manifest', () => { + test('validation succeeds with valid manifests', () => { + const manifest = require('../valid.manifest.json') + const result = validate(manifest) + expect(result).toBeTruthy() + }) + + test('validation fails with invalid manifests', () => { + const manifest = require('../invalid.manifest.json') + const result = validate(manifest) + expect(result).toBeFalsy() + }) + + test('manifest chunks support additional properties', () => { + const manifest = require('../additionalProperties.manifest.json') + const result = validate(manifest) + expect(result).toBeTruthy() + }) +}) diff --git a/packages/playground/manifests/additionalProperties.manifest.json b/packages/playground/manifests/additionalProperties.manifest.json new file mode 100644 index 00000000000000..32284b81dd8a01 --- /dev/null +++ b/packages/playground/manifests/additionalProperties.manifest.json @@ -0,0 +1,6 @@ +{ + "main.js": { + "file": "test", + "customProperty": "custom value" + } +} diff --git a/packages/playground/manifests/invalid.manifest.json b/packages/playground/manifests/invalid.manifest.json new file mode 100644 index 00000000000000..84872a5f4e8577 --- /dev/null +++ b/packages/playground/manifests/invalid.manifest.json @@ -0,0 +1,18 @@ +{ + "main.js": { + "src": "main.js", + "isEntry": true, + "dynamicImports": ["views/foo.js"], + "css": ["assets/main.b82dbe22.css"], + "assets": ["assets/asset.0ab0f9cd.png"] + }, + "views/foo.js": { + "file": "assets/foo.869aea0d.js", + "src": "views/foo.js", + "isDynamicEntry": true, + "imports": ["_shared.83069a53.js"] + }, + "_shared.83069a53.js": { + "file": "assets/shared.83069a53.js" + } +} diff --git a/packages/playground/manifests/package.json b/packages/playground/manifests/package.json new file mode 100644 index 00000000000000..64b23415f00e44 --- /dev/null +++ b/packages/playground/manifests/package.json @@ -0,0 +1,8 @@ +{ + "name": "manifests", + "private": true, + "version": "0.0.0", + "devDependencies": { + "ajv": "^8.11.0" + } +} diff --git a/packages/playground/manifests/valid.manifest.json b/packages/playground/manifests/valid.manifest.json new file mode 100644 index 00000000000000..3d9ba04e076f3c --- /dev/null +++ b/packages/playground/manifests/valid.manifest.json @@ -0,0 +1,19 @@ +{ + "main.js": { + "file": "assets/main.4889e940.js", + "src": "main.js", + "isEntry": true, + "dynamicImports": ["views/foo.js"], + "css": ["assets/main.b82dbe22.css"], + "assets": ["assets/asset.0ab0f9cd.png"] + }, + "views/foo.js": { + "file": "assets/foo.869aea0d.js", + "src": "views/foo.js", + "isDynamicEntry": true, + "imports": ["_shared.83069a53.js"] + }, + "_shared.83069a53.js": { + "file": "assets/shared.83069a53.js" + } +} From 0523117a680028e245ac7f60b46f2c1b69fa1888 Mon Sep 17 00:00:00 2001 From: Nicolas Hedger Date: Sat, 30 Apr 2022 11:07:58 +0200 Subject: [PATCH 09/20] chore: move tests to backend-integration playground --- .../manifests/additionalProperties.manifest.json | 0 .../__tests__}/manifests/invalid.manifest.json | 0 .../__tests__/manifests/manifest-schema.spec.ts} | 8 ++++---- .../__tests__}/manifests/valid.manifest.json | 0 packages/playground/manifests/package.json | 8 -------- playground/backend-integration/package.json | 1 + pnpm-lock.yaml | 11 +++++++++++ 7 files changed, 16 insertions(+), 12 deletions(-) rename packages/playground/{ => backend-integration/__tests__}/manifests/additionalProperties.manifest.json (100%) rename packages/playground/{ => backend-integration/__tests__}/manifests/invalid.manifest.json (100%) rename packages/playground/{manifests/__tests__/manifest.spec.ts => backend-integration/__tests__/manifests/manifest-schema.spec.ts} (69%) rename packages/playground/{ => backend-integration/__tests__}/manifests/valid.manifest.json (100%) delete mode 100644 packages/playground/manifests/package.json diff --git a/packages/playground/manifests/additionalProperties.manifest.json b/packages/playground/backend-integration/__tests__/manifests/additionalProperties.manifest.json similarity index 100% rename from packages/playground/manifests/additionalProperties.manifest.json rename to packages/playground/backend-integration/__tests__/manifests/additionalProperties.manifest.json diff --git a/packages/playground/manifests/invalid.manifest.json b/packages/playground/backend-integration/__tests__/manifests/invalid.manifest.json similarity index 100% rename from packages/playground/manifests/invalid.manifest.json rename to packages/playground/backend-integration/__tests__/manifests/invalid.manifest.json diff --git a/packages/playground/manifests/__tests__/manifest.spec.ts b/packages/playground/backend-integration/__tests__/manifests/manifest-schema.spec.ts similarity index 69% rename from packages/playground/manifests/__tests__/manifest.spec.ts rename to packages/playground/backend-integration/__tests__/manifests/manifest-schema.spec.ts index ccb0136da4b327..60fa6a60d42eec 100644 --- a/packages/playground/manifests/__tests__/manifest.spec.ts +++ b/packages/playground/backend-integration/__tests__/manifests/manifest-schema.spec.ts @@ -2,24 +2,24 @@ import Ajv2020 from 'ajv/dist/2020' const ajv = new Ajv2020() const validate = ajv.compile( - require('../../../vite/schemas/manifest.schema.json') + require('../../../../vite/schemas/manifest.schema.json') ) describe('manifest', () => { test('validation succeeds with valid manifests', () => { - const manifest = require('../valid.manifest.json') + const manifest = require('./valid.manifest.json') const result = validate(manifest) expect(result).toBeTruthy() }) test('validation fails with invalid manifests', () => { - const manifest = require('../invalid.manifest.json') + const manifest = require('./invalid.manifest.json') const result = validate(manifest) expect(result).toBeFalsy() }) test('manifest chunks support additional properties', () => { - const manifest = require('../additionalProperties.manifest.json') + const manifest = require('./additionalProperties.manifest.json') const result = validate(manifest) expect(result).toBeTruthy() }) diff --git a/packages/playground/manifests/valid.manifest.json b/packages/playground/backend-integration/__tests__/manifests/valid.manifest.json similarity index 100% rename from packages/playground/manifests/valid.manifest.json rename to packages/playground/backend-integration/__tests__/manifests/valid.manifest.json diff --git a/packages/playground/manifests/package.json b/packages/playground/manifests/package.json deleted file mode 100644 index 64b23415f00e44..00000000000000 --- a/packages/playground/manifests/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "manifests", - "private": true, - "version": "0.0.0", - "devDependencies": { - "ajv": "^8.11.0" - } -} diff --git a/playground/backend-integration/package.json b/playground/backend-integration/package.json index ead0c3a70d8e10..1a9bbcbf9db3a2 100644 --- a/playground/backend-integration/package.json +++ b/playground/backend-integration/package.json @@ -11,6 +11,7 @@ "devDependencies": { "sass": "^1.53.0", "tailwindcss": "^3.1.4", + "ajv": "^8.11.0", "fast-glob": "^3.2.11" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 404ceea6b8f837..4f041a301e8dc4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -360,10 +360,12 @@ importers: playground/backend-integration: specifiers: + ajv: ^8.11.0 fast-glob: ^3.2.11 sass: ^1.53.0 tailwindcss: ^3.1.4 devDependencies: + ajv: 8.11.0 fast-glob: 3.2.11 sass: 1.53.0 tailwindcss: 3.1.4 @@ -5690,6 +5692,10 @@ packages: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true + /json-schema-traverse/1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + /json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true @@ -7287,6 +7293,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /require-from-string/2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + /requires-port/1.0.0: resolution: {integrity: sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=} dev: true From b0af620a1dbdd4e32482c9a6e7c8a789d80600dd Mon Sep 17 00:00:00 2001 From: Nicolas Hedger Date: Sat, 30 Apr 2022 11:20:47 +0200 Subject: [PATCH 10/20] chore: refactor tests --- .../__tests__/manifests/manifest-schema.spec.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/playground/backend-integration/__tests__/manifests/manifest-schema.spec.ts b/packages/playground/backend-integration/__tests__/manifests/manifest-schema.spec.ts index 60fa6a60d42eec..d2707ef597035e 100644 --- a/packages/playground/backend-integration/__tests__/manifests/manifest-schema.spec.ts +++ b/packages/playground/backend-integration/__tests__/manifests/manifest-schema.spec.ts @@ -1,18 +1,17 @@ import Ajv2020 from 'ajv/dist/2020' +const schema = require('vite/schemas/manifest.schema.json') const ajv = new Ajv2020() -const validate = ajv.compile( - require('../../../../vite/schemas/manifest.schema.json') -) +const validate = ajv.compile(schema) -describe('manifest', () => { - test('validation succeeds with valid manifests', () => { +describe('manifest json schema', () => { + test('valid manifest validates against manifest schema', () => { const manifest = require('./valid.manifest.json') const result = validate(manifest) expect(result).toBeTruthy() }) - test('validation fails with invalid manifests', () => { + test('invalid manifest does not validate against manifest schema', () => { const manifest = require('./invalid.manifest.json') const result = validate(manifest) expect(result).toBeFalsy() From b68e268abc9323f9d621ae130ccd7badb075716c Mon Sep 17 00:00:00 2001 From: Nicolas Hedger Date: Sat, 30 Apr 2022 18:01:44 +0200 Subject: [PATCH 11/20] chore: extract chunk into subschema --- packages/vite/schemas/manifest.schema.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/vite/schemas/manifest.schema.json b/packages/vite/schemas/manifest.schema.json index 0ad604af25ae69..f720db052fbfbc 100644 --- a/packages/vite/schemas/manifest.schema.json +++ b/packages/vite/schemas/manifest.schema.json @@ -4,6 +4,11 @@ "type": "object", "patternProperties": { "^.+$": { + "$ref": "#/$defs/chunk" + } + }, + "$defs": { + "chunk": { "type": "object", "properties": { "src": { From c1a0125b1fb02778263b57ed4bd4d95addec5eed Mon Sep 17 00:00:00 2001 From: Nicolas Hedger Date: Sat, 30 Apr 2022 18:09:30 +0200 Subject: [PATCH 12/20] chore: add description to dynamicImports array items --- packages/vite/schemas/manifest.schema.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/vite/schemas/manifest.schema.json b/packages/vite/schemas/manifest.schema.json index f720db052fbfbc..c9e4b74c522a48 100644 --- a/packages/vite/schemas/manifest.schema.json +++ b/packages/vite/schemas/manifest.schema.json @@ -50,7 +50,8 @@ "dynamicImports": { "type": "array", "items": { - "type": "string" + "type": "string", + "description": "A key for an existing JS entry in the manifest." } } }, From 18e4c477fd391762f7dd51a9cc08c3427a7c4da6 Mon Sep 17 00:00:00 2001 From: Nicolas Hedger Date: Sat, 30 Apr 2022 18:16:47 +0200 Subject: [PATCH 13/20] chore: add descriptions --- packages/vite/schemas/manifest.schema.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/vite/schemas/manifest.schema.json b/packages/vite/schemas/manifest.schema.json index c9e4b74c522a48..2176309f9678d6 100644 --- a/packages/vite/schemas/manifest.schema.json +++ b/packages/vite/schemas/manifest.schema.json @@ -20,6 +20,7 @@ }, "css": { "type": "array", + "description": "CSS files imported by the chunk.", "items": { "type": "string", "description": "A CSS filename, relative to the outDir." @@ -27,6 +28,7 @@ }, "assets": { "type": "array", + "description": "Assets imported by the chunk.", "items": { "type": "string", "description": "An asset filename, relative to the outDir." From ca49093e8ad3db91d9faf5286e17c08092843fa3 Mon Sep 17 00:00:00 2001 From: Nicolas Hedger Date: Sat, 30 Apr 2022 18:21:27 +0200 Subject: [PATCH 14/20] chore: explicitly allow additional chunk properties --- packages/vite/schemas/manifest.schema.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/vite/schemas/manifest.schema.json b/packages/vite/schemas/manifest.schema.json index 2176309f9678d6..422950df0ca1b4 100644 --- a/packages/vite/schemas/manifest.schema.json +++ b/packages/vite/schemas/manifest.schema.json @@ -57,6 +57,7 @@ } } }, + "additionalProperties": true, "required": ["file"] } } From 7ce5d6615a6bddb8b5a6987ec33bfb3e7d50fff7 Mon Sep 17 00:00:00 2001 From: Nicolas Hedger Date: Sat, 30 Apr 2022 21:13:30 +0200 Subject: [PATCH 15/20] chore: add identifiers to both schemas --- packages/vite/schemas/manifest.schema.json | 1 + packages/vite/schemas/ssr-manifest.schema.json | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/vite/schemas/manifest.schema.json b/packages/vite/schemas/manifest.schema.json index 422950df0ca1b4..8b8e339cc1ba12 100644 --- a/packages/vite/schemas/manifest.schema.json +++ b/packages/vite/schemas/manifest.schema.json @@ -1,5 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://vitejs.dev/schemas/v2.0.0/manifest.json", "title": "Vite Manifest", "type": "object", "patternProperties": { diff --git a/packages/vite/schemas/ssr-manifest.schema.json b/packages/vite/schemas/ssr-manifest.schema.json index c34b1c1ba9047b..da16e0bcae015d 100644 --- a/packages/vite/schemas/ssr-manifest.schema.json +++ b/packages/vite/schemas/ssr-manifest.schema.json @@ -1,5 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://vitejs.dev/schemas/v2.0.0/ssr-manifest.json", "title": "Vite SSR Manifest", "type": "object", "patternProperties": { From fe874e043959a94cd0a16880fe0bc6fb455ca19a Mon Sep 17 00:00:00 2001 From: Nicolas Hedger <649677+nhedger@users.noreply.github.com> Date: Sat, 28 May 2022 19:56:04 +0200 Subject: [PATCH 16/20] fix(tests): move to new playground location --- packages/vite/schemas/manifest.schema.json | 5 ++++- .../__tests__/manifests/additionalProperties.manifest.json | 0 .../__tests__/manifests/invalid.manifest.json | 0 .../__tests__/manifests/manifest-schema.spec.ts | 0 .../__tests__/manifests/valid.manifest.json | 0 5 files changed, 4 insertions(+), 1 deletion(-) rename {packages/playground => playground}/backend-integration/__tests__/manifests/additionalProperties.manifest.json (100%) rename {packages/playground => playground}/backend-integration/__tests__/manifests/invalid.manifest.json (100%) rename {packages/playground => playground}/backend-integration/__tests__/manifests/manifest-schema.spec.ts (100%) rename {packages/playground => playground}/backend-integration/__tests__/manifests/valid.manifest.json (100%) diff --git a/packages/vite/schemas/manifest.schema.json b/packages/vite/schemas/manifest.schema.json index 8b8e339cc1ba12..43a789ca2e9521 100644 --- a/packages/vite/schemas/manifest.schema.json +++ b/packages/vite/schemas/manifest.schema.json @@ -13,7 +13,8 @@ "type": "object", "properties": { "src": { - "type": "string" + "type": "string", + "description": "Source file of the chunk." }, "file": { "type": "string", @@ -45,6 +46,7 @@ }, "imports": { "type": "array", + "description": "Imports of the chunk.", "items": { "type": "string", "description": "A key for an existing JS entry in the manifest." @@ -52,6 +54,7 @@ }, "dynamicImports": { "type": "array", + "description": "Dynamic imports of the chunk.", "items": { "type": "string", "description": "A key for an existing JS entry in the manifest." diff --git a/packages/playground/backend-integration/__tests__/manifests/additionalProperties.manifest.json b/playground/backend-integration/__tests__/manifests/additionalProperties.manifest.json similarity index 100% rename from packages/playground/backend-integration/__tests__/manifests/additionalProperties.manifest.json rename to playground/backend-integration/__tests__/manifests/additionalProperties.manifest.json diff --git a/packages/playground/backend-integration/__tests__/manifests/invalid.manifest.json b/playground/backend-integration/__tests__/manifests/invalid.manifest.json similarity index 100% rename from packages/playground/backend-integration/__tests__/manifests/invalid.manifest.json rename to playground/backend-integration/__tests__/manifests/invalid.manifest.json diff --git a/packages/playground/backend-integration/__tests__/manifests/manifest-schema.spec.ts b/playground/backend-integration/__tests__/manifests/manifest-schema.spec.ts similarity index 100% rename from packages/playground/backend-integration/__tests__/manifests/manifest-schema.spec.ts rename to playground/backend-integration/__tests__/manifests/manifest-schema.spec.ts diff --git a/packages/playground/backend-integration/__tests__/manifests/valid.manifest.json b/playground/backend-integration/__tests__/manifests/valid.manifest.json similarity index 100% rename from packages/playground/backend-integration/__tests__/manifests/valid.manifest.json rename to playground/backend-integration/__tests__/manifests/valid.manifest.json From 162dd9e1b281c78e7abba8665e4298735b7f663b Mon Sep 17 00:00:00 2001 From: Nicolas Hedger <649677+nhedger@users.noreply.github.com> Date: Sat, 28 May 2022 20:02:45 +0200 Subject: [PATCH 17/20] fix(version): target next vite version --- packages/vite/schemas/manifest.schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite/schemas/manifest.schema.json b/packages/vite/schemas/manifest.schema.json index 43a789ca2e9521..36a34a7da2df67 100644 --- a/packages/vite/schemas/manifest.schema.json +++ b/packages/vite/schemas/manifest.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://vitejs.dev/schemas/v2.0.0/manifest.json", + "$id": "https://vitejs.dev/schemas/v3.0.0/manifest.json", "title": "Vite Manifest", "type": "object", "patternProperties": { From c19c2b3cbd16321b06c3443dc91bc80b6afc237c Mon Sep 17 00:00:00 2001 From: Nicolas Hedger <649677+nhedger@users.noreply.github.com> Date: Sat, 28 May 2022 20:14:12 +0200 Subject: [PATCH 18/20] fix(tests): repair broken tests --- .../__tests__/manifests/manifest-schema.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/playground/backend-integration/__tests__/manifests/manifest-schema.spec.ts b/playground/backend-integration/__tests__/manifests/manifest-schema.spec.ts index d2707ef597035e..ed9705d8c06ce9 100644 --- a/playground/backend-integration/__tests__/manifests/manifest-schema.spec.ts +++ b/playground/backend-integration/__tests__/manifests/manifest-schema.spec.ts @@ -1,6 +1,6 @@ import Ajv2020 from 'ajv/dist/2020' -const schema = require('vite/schemas/manifest.schema.json') +const schema = require('../../../../packages/vite/schemas/manifest.schema.json') const ajv = new Ajv2020() const validate = ajv.compile(schema) From 4125e042cbd6e7f75beec88d8c5ebfecb895c9e6 Mon Sep 17 00:00:00 2001 From: Nicolas Hedger Date: Wed, 29 Jun 2022 17:13:59 +0200 Subject: [PATCH 19/20] chore: update deps --- pnpm-lock.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4f041a301e8dc4..a2ebdaacd64678 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2922,6 +2922,15 @@ packages: uri-js: 4.4.1 dev: true + /ajv/8.11.0: + resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + /algoliasearch/4.13.1: resolution: {integrity: sha512-dtHUSE0caWTCE7liE1xaL+19AFf6kWEcyn76uhcitWpntqvicFHXKFoZe5JJcv9whQOTRM6+B8qJz6sFj+rDJA==} dependencies: From 4b5fdad805336cdb83b68ceb49faf63252919a07 Mon Sep 17 00:00:00 2001 From: Nicolas Hedger Date: Wed, 29 Jun 2022 17:30:38 +0200 Subject: [PATCH 20/20] chore(schema): remove versioning from ids --- packages/vite/schemas/manifest.schema.json | 2 +- packages/vite/schemas/ssr-manifest.schema.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vite/schemas/manifest.schema.json b/packages/vite/schemas/manifest.schema.json index 36a34a7da2df67..6ba533a6cc42a7 100644 --- a/packages/vite/schemas/manifest.schema.json +++ b/packages/vite/schemas/manifest.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://vitejs.dev/schemas/v3.0.0/manifest.json", + "$id": "https://vitejs.dev/schemas/manifest.json", "title": "Vite Manifest", "type": "object", "patternProperties": { diff --git a/packages/vite/schemas/ssr-manifest.schema.json b/packages/vite/schemas/ssr-manifest.schema.json index da16e0bcae015d..b5cd4eda597a4c 100644 --- a/packages/vite/schemas/ssr-manifest.schema.json +++ b/packages/vite/schemas/ssr-manifest.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://vitejs.dev/schemas/v2.0.0/ssr-manifest.json", + "$id": "https://vitejs.dev/schemas/ssr-manifest.json", "title": "Vite SSR Manifest", "type": "object", "patternProperties": {