Skip to content
Draft
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
f764e8c
Begun implementing package-lock.json schema
Vessel9817 May 28, 2026
8516488
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 28, 2026
dae8a19
Added tests, descriptions and fixed properties
Vessel9817 May 29, 2026
5577958
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 29, 2026
610f04d
Added undocumented `requires` property
Vessel9817 May 29, 2026
679dc82
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 29, 2026
29cc741
Attempted to fix tests
Vessel9817 May 30, 2026
4bed6ae
Fixed refs
Vessel9817 May 30, 2026
fe8f4da
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 30, 2026
2b58052
Added negative test
Vessel9817 Jun 15, 2026
16165ff
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 15, 2026
857c21c
Added support for special lockfiles
Vessel9817 Jun 22, 2026
2dd2f29
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 22, 2026
6915a21
Revert "Added negative test"
Vessel9817 Jun 24, 2026
ce1cb09
Migrated from union types to stricter configuration
Vessel9817 Jun 24, 2026
b836696
Restricted patternProperties to exclude overlap with properties
Vessel9817 Jun 24, 2026
15f437f
Removed `tsType` properties
Vessel9817 Jun 24, 2026
78c22d7
Split schema into versioned schemas and added tests
Vessel9817 Jun 25, 2026
255bcb4
Added realistic tests
Vessel9817 Jun 25, 2026
89cc6c8
Fixed incorrect assumption
Vessel9817 Jun 25, 2026
0cef17e
Fixed local `$ref`s
Vessel9817 Jun 25, 2026
2e5b0ab
Fixed `$ref`s
Vessel9817 Jun 26, 2026
a35203f
Fixed local `$ref`s
Vessel9817 Jun 26, 2026
8a1b0a7
Revert "Removed `tsType` properties"
Vessel9817 Jun 27, 2026
241c274
Removed `package-lock.json` in place of versioned schemas
Vessel9817 Jun 27, 2026
3decd9e
Added properties
Vessel9817 Jun 29, 2026
9bd7f4d
Tightened `link` validation
Vessel9817 Jun 29, 2026
23780b2
Fixed dependency fields
Vessel9817 Jun 29, 2026
ab89f45
Added undocumented properties and documentation references
Vessel9817 Jun 29, 2026
2bac5f4
Added some tests
Vessel9817 Jun 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions src/api/json/catalog.json
Original file line number Diff line number Diff line change
Expand Up @@ -5555,6 +5555,21 @@
"fileMatch": ["resolutions.yml", "resolutions.yaml"],
"url": "https://raw.githubusercontent.com/oss-review-toolkit/ort/main/integrations/schemas/resolutions-schema.json"
},
{
"name": "package-lock.json",
"description": "NPM package lockfile",
"fileMatch": [
"package-lock.json",
"npm-shrinkwrap.json",
".package-lock.json"
],
"url": "https://www.schemastore.org/package-lock.json",
"versions": {
"1": "https://www.schemastore.org/package-lock-1.json",
"2": "https://www.schemastore.org/package-lock-2.json",
"3": "https://www.schemastore.org/package-lock-3.json"
}
},
{
"name": "package.json",
"description": "NPM configuration file",
Expand Down
83 changes: 83 additions & 0 deletions src/schema-validation.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,10 @@
"opensrm.json",
"opspec-io-0.1.7.json",
"package.json",
"package-lock.json",
"package-lock-1.json",
"package-lock-2.json",
"package-lock-3.json",
"package.manifest-8.0.0.json",
"package.manifest.json",
"paper-plugin.json",
Expand Down Expand Up @@ -438,6 +442,9 @@
"cargo-lints-cargo.json",
"cargo-lints-clippy.json",
"cargo-lints-rust.json",
"package-lock-1.json",
"package-lock-2.json",
"package-lock-3.json",
"partial-pyright.json", // pyproject.json[tool.pyright]
"partial-setuptools.json", // pyproject.json[tool.setuptools]
"partial-setuptools-scm.json", // pyproject.json[tool.setuptools-scm]
Expand Down Expand Up @@ -1343,6 +1350,82 @@
"externalSchema": ["geojson.json"],
"unknownKeywords": ["name"]
},
"package-lock.json": {
"externalSchema": [
"package.json",
"package-lock-1.json",
"package-lock-2.json",
"package-lock-3.json",
"eslintrc.json",
"partial-eslint-plugins.json",
"prettierrc.json",
"ava.json",
"npm-badges.json",
"stylelintrc.json",
"semantic-release.json",
"jscpd.json",
"nodemon.json",
"base.json",
"quikrun.json"
]
},
"package-lock-1.json": {
"externalSchema": [
"package.json",
"package-lock.json",
"package-lock-2.json",
"package-lock-3.json",
"eslintrc.json",
"partial-eslint-plugins.json",
"prettierrc.json",
"ava.json",
"npm-badges.json",
"stylelintrc.json",
"semantic-release.json",
"jscpd.json",
"nodemon.json",
"base.json",
"quikrun.json"
]
},
"package-lock-2.json": {
"externalSchema": [
"package.json",
"package-lock.json",
"package-lock-1.json",
"package-lock-3.json",
"eslintrc.json",
"partial-eslint-plugins.json",
"prettierrc.json",
"ava.json",
"npm-badges.json",
"stylelintrc.json",
"semantic-release.json",
"jscpd.json",
"nodemon.json",
"base.json",
"quikrun.json"
]
},
"package-lock-3.json": {
"externalSchema": [
"package.json",
"package-lock.json",
"package-lock-1.json",
"package-lock-2.json",
"eslintrc.json",
"partial-eslint-plugins.json",
"prettierrc.json",
"ava.json",
"npm-badges.json",
"stylelintrc.json",
"semantic-release.json",
"jscpd.json",
"nodemon.json",
"base.json",
"quikrun.json"
]
},
"package.json": {
"externalSchema": [
"eslintrc.json",
Expand Down
53 changes: 53 additions & 0 deletions src/schemas/json/package-lock-1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://json.schemastore.org/package-lock-1.json",
"additionalProperties": true,
"description": "DEPRECATED. NPM package lockfile, version 1",
"type": "object",
"definitions": {
"dependencies": {
"type": "object",
"additionalProperties": true,
"description": "A mapping of package locations to an object containing information about that package."
},
"integrity": {
"type": "string",
"description": "A Standard Subresource Integrity for this resource."
},
"packageIntegrity": {
"$ref": "#/definitions/integrity",
"description": "DEPRECATED. This is a subresource integrity value created from the `package.json`. No preprocessing of the `package.json` should be done."
},
"preserveSymlinks": {
"type": "string",
"description": "DEPRECATED. Indicates that the install was done with the environment variable `NODE_PRESERVE_SYMLINKS` set to this value. The installer should insist that the value of this property match that environment variable."
}
},
"properties": {
"dependencies": {
"$ref": "#/definitions/dependencies"
},
"name": {
"$ref": "package-lock.json#/properties/name"
},
"lockfileVersion": {
"$ref": "package-lock.json#/properties/lockfileVersion",
"const": 1
},
"packageIntegrity": {
"$ref": "#/definitions/packageIntegrity"
},
"preserveSymlinks": {
"$ref": "#/definitions/preserveSymlinks"
},
"requires": {
"type": "boolean",
"default": true,
"description": "UNDOCUMENTED."
},
"version": {
"$ref": "package-lock.json#/properties/version"
}
},
"required": ["name", "version", "lockfileVersion"]
}
39 changes: 39 additions & 0 deletions src/schemas/json/package-lock-2.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://json.schemastore.org/package-lock-2.json",
"additionalProperties": true,
"description": "DEPRECATED. NPM package lockfile, version 2",
"type": "object",
"definitions": {
"packages": {
"type": "object",
"additionalProperties": true,
"description": "A mapping of package locations to an object containing information about that package."
}
},
"properties": {
"dependencies": {
"$ref": "package-lock-1.json#/properties/dependencies"
},
"name": {
"$ref": "package-lock-1.json#/properties/name"
},
"lockfileVersion": {
"$ref": "package-lock.json#/properties/lockfileVersion",
"const": 2
},
"packageIntegrity": {
"$ref": "package-lock-1.json#/properties/packageIntegrity"
},
"preserveSymlinks": {
"$ref": "package-lock-1.json#/properties/preserveSymlinks"
},
"requires": {
"$ref": "package-lock-1.json#/properties/requires"
},
"version": {
"$ref": "package-lock-1.json#/properties/version"
}
},
"required": ["name", "version", "lockfileVersion"]
}
26 changes: 26 additions & 0 deletions src/schemas/json/package-lock-3.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://json.schemastore.org/package-lock-3.json",
"additionalProperties": true,
"description": "NPM package lockfile, version 3",
"type": "object",
"properties": {
"name": {
"$ref": "package-lock-2.json#/properties/name"
},
"lockfileVersion": {
"$ref": "package-lock.json#/properties/lockfileVersion",
"const": 3
},
"packages": {
"$ref": "package-lock-2.json#/definitions/packages"
},
"requires": {
"$ref": "package-lock-2.json#/properties/requires"
},
"version": {
"$ref": "package-lock-2.json#/properties/version"
}
},
"required": ["name", "version", "lockfileVersion"]
}
126 changes: 126 additions & 0 deletions src/schemas/json/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading