proper json schema

This commit is contained in:
Ashley Harrison 2025-10-02 15:20:49 +01:00
parent df5325f911
commit d28b8a4417
No known key found for this signature in database
GPG Key ID: FFB870B48A9457E0
7 changed files with 572 additions and 538 deletions

View File

@ -56,7 +56,8 @@
"stats": "webpack --mode production --config scripts/webpack/webpack.prod.js --profile --json > compilation-stats.json",
"storybook": "yarn workspace @grafana/ui storybook --ci",
"storybook:build": "yarn workspace @grafana/ui storybook:build",
"themes-generate": "esbuild --target=es6 ./scripts/cli/generateSassVariableFiles.ts --bundle --platform=node --tsconfig=./scripts/cli/tsconfig.json | node",
"themes-schema": "typescript-json-schema ./tsconfig.json NewThemeOptions --include 'packages/grafana-data/src/themes/createTheme.ts' --out public/app/features/theme-playground/schema.generated.json",
"themes-generate": "yarn themes-schema && esbuild --target=es6 ./scripts/cli/generateSassVariableFiles.ts --bundle --platform=node --tsconfig=./scripts/cli/tsconfig.json | node",
"themes:usage": "eslint . --ignore-pattern '*.test.ts*' --ignore-pattern '*.spec.ts*' --cache --plugin '@grafana' --rule '{ @grafana/theme-token-usage: \"error\" }'",
"typecheck": "tsc --noEmit && yarn run packages:typecheck",
"plugins:build-bundled": "echo 'bundled plugins are no longer supported'",
@ -247,6 +248,7 @@
"ts-jest": "29.4.0",
"ts-node": "10.9.2",
"typescript": "5.9.2",
"typescript-json-schema": "^0.65.1",
"webpack": "5.101.0",
"webpack-assets-manifest": "^5.1.0",
"webpack-cli": "6.0.1",

View File

@ -44,7 +44,8 @@
"outputs": [
"{workspaceRoot}/public/sass/_variables.generated.scss",
"{workspaceRoot}/public/sass/_variables.dark.generated.scss",
"{workspaceRoot}/public/sass/_variables.light.generated.scss"
"{workspaceRoot}/public/sass/_variables.light.generated.scss",
"{workspaceRoot}/public/app/features/theme-playground/schema.json"
],
"cache": true
}

View File

@ -1,6 +1,3 @@
# Regenerating the schema
The schema for the theme options is generated using [ts-json-schema-generator](https://github.com/vega/ts-json-schema-generator/). To regenerate the schema (e.g. if the `NewThemeOptions` type has changed):
- remove the `@internal` comment
- run `npx ts-json-schema-generator --path 'packages/grafana-data/src/themes/createTheme.ts' --type 'NewThemeOptions'`
The json schema for the theme options is generated using [typescript-json-schema](https://github.com/YousefED/typescript-json-schema). The schema should be regenerated automatically if the types change. If you need to manually regenerate, run `yarn themes-schema`.

View File

@ -15,7 +15,7 @@ import { getNavModel } from '../../core/selectors/navModel';
import { ThemeProvider } from '../../core/utils/ConfigProvider';
import { useSelector } from '../../types/store';
import schema from './schema.json';
import schema from './schema.generated.json';
export default function ThemePlayground() {
const navIndex = useSelector((state) => state.navIndex);

View File

@ -0,0 +1,511 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"DeepPartial<ThemeColorsBase<ThemeRichColor>>": {
"properties": {
"action": {
"$ref": "#/definitions/DeepPartial<{selected:string;selectedBorder:string;hover:string;hoverOpacity:number;focus:string;disabledBackground:string;disabledText:string;disabledOpacity:number;}>"
},
"background": {
"$ref": "#/definitions/DeepPartial<{canvas:string;primary:string;secondary:string;elevated:string;}>"
},
"border": {
"$ref": "#/definitions/DeepPartial<{weak:string;medium:string;strong:string;}>"
},
"contrastThreshold": {
"type": "number"
},
"error": {
"$ref": "#/definitions/DeepPartial<ThemeRichColor>"
},
"gradients": {
"$ref": "#/definitions/DeepPartial<{brandVertical:string;brandHorizontal:string;}>"
},
"hoverFactor": {
"type": "number"
},
"info": {
"$ref": "#/definitions/DeepPartial<ThemeRichColor>"
},
"mode": {
"enum": ["dark", "light"],
"type": "string"
},
"primary": {
"$ref": "#/definitions/DeepPartial<ThemeRichColor>"
},
"secondary": {
"$ref": "#/definitions/DeepPartial<ThemeRichColor>"
},
"success": {
"$ref": "#/definitions/DeepPartial<ThemeRichColor>"
},
"text": {
"$ref": "#/definitions/DeepPartial<{primary:string;secondary:string;disabled:string;link:string;maxContrast:string;}>"
},
"tonalOffset": {
"type": "number"
},
"warning": {
"$ref": "#/definitions/DeepPartial<ThemeRichColor>"
}
},
"type": "object"
},
"DeepPartial<ThemeRichColor>": {
"properties": {
"border": {
"description": "Used for borders",
"type": "string"
},
"borderTransparent": {
"description": "Used for weak colored borders like larger alert/banner boxes and smaller badges and tags",
"type": "string"
},
"contrastText": {
"description": "Text color for text ontop of main",
"type": "string"
},
"main": {
"description": "Main color",
"type": "string"
},
"name": {
"description": "color intent (primary, secondary, info, error, etc)",
"type": "string"
},
"shade": {
"description": "Used for hover",
"type": "string"
},
"text": {
"description": "Used for text",
"type": "string"
},
"transparent": {
"description": "Used subtly colored backgrounds",
"type": "string"
}
},
"type": "object"
},
"DeepPartial<{brandVertical:string;brandHorizontal:string;}>": {
"properties": {
"brandHorizontal": {
"type": "string"
},
"brandVertical": {
"type": "string"
}
},
"type": "object"
},
"DeepPartial<{canvas:string;primary:string;secondary:string;elevated:string;}>": {
"properties": {
"canvas": {
"description": "Dashboard and body background",
"type": "string"
},
"elevated": {
"description": "For popovers and menu backgrounds. This is the same color as primary in most light themes but in dark\nthemes it has a brighter shade to help give it contrast against the primary background.",
"type": "string"
},
"primary": {
"description": "Primary content pane background (panels etc)",
"type": "string"
},
"secondary": {
"description": "Cards and elements that need to stand out on the primary background",
"type": "string"
}
},
"type": "object"
},
"DeepPartial<{primary:string;secondary:string;disabled:string;link:string;maxContrast:string;}>": {
"properties": {
"disabled": {
"type": "string"
},
"link": {
"type": "string"
},
"maxContrast": {
"description": "Used for auto white or dark text on colored backgrounds",
"type": "string"
},
"primary": {
"type": "string"
},
"secondary": {
"type": "string"
}
},
"type": "object"
},
"DeepPartial<{selected:string;selectedBorder:string;hover:string;hoverOpacity:number;focus:string;disabledBackground:string;disabledText:string;disabledOpacity:number;}>": {
"properties": {
"disabledBackground": {
"description": "Used for disabled buttons and inputs",
"type": "string"
},
"disabledOpacity": {
"description": "Disablerd opacity",
"type": "number"
},
"disabledText": {
"description": "Disabled text",
"type": "string"
},
"focus": {
"description": "Used focused menu item / select option",
"type": "string"
},
"hover": {
"description": "Used for hovered menu item / select option",
"type": "string"
},
"hoverOpacity": {
"description": "Used for button/colored background hover opacity",
"type": "number"
},
"selected": {
"description": "Used for selected menu item / select option",
"type": "string"
},
"selectedBorder": {
"type": "string"
}
},
"type": "object"
},
"DeepPartial<{weak:string;medium:string;strong:string;}>": {
"properties": {
"medium": {
"type": "string"
},
"strong": {
"type": "string"
},
"weak": {
"type": "string"
}
},
"type": "object"
},
"ThemeShapeInput": {
"properties": {
"borderRadius": {
"type": "number"
}
},
"type": "object"
},
"ThemeTypographyInput": {
"properties": {
"fontFamily": {
"type": "string"
},
"fontFamilyMonospace": {
"type": "string"
},
"fontSize": {
"type": "number"
},
"fontWeightBold": {
"type": "number"
},
"fontWeightLight": {
"type": "number"
},
"fontWeightMedium": {
"type": "number"
},
"fontWeightRegular": {
"type": "number"
},
"htmlFontSize": {
"type": "number"
}
},
"type": "object"
},
"ThemeVizColor<\"blue\">": {
"properties": {
"aliases": {
"items": {
"type": "string"
},
"type": "array"
},
"color": {
"type": "string"
},
"name": {
"$ref": "#/definitions/ThemeVizColorShadeName_4"
},
"primary": {
"type": "boolean"
}
},
"type": "object"
},
"ThemeVizColor<\"green\">": {
"properties": {
"aliases": {
"items": {
"type": "string"
},
"type": "array"
},
"color": {
"type": "string"
},
"name": {
"$ref": "#/definitions/ThemeVizColorShadeName_3"
},
"primary": {
"type": "boolean"
}
},
"type": "object"
},
"ThemeVizColor<\"orange\">": {
"properties": {
"aliases": {
"items": {
"type": "string"
},
"type": "array"
},
"color": {
"type": "string"
},
"name": {
"$ref": "#/definitions/ThemeVizColorShadeName_1"
},
"primary": {
"type": "boolean"
}
},
"type": "object"
},
"ThemeVizColor<\"purple\">": {
"properties": {
"aliases": {
"items": {
"type": "string"
},
"type": "array"
},
"color": {
"type": "string"
},
"name": {
"$ref": "#/definitions/ThemeVizColorShadeName_5"
},
"primary": {
"type": "boolean"
}
},
"type": "object"
},
"ThemeVizColor<\"red\">": {
"properties": {
"aliases": {
"items": {
"type": "string"
},
"type": "array"
},
"color": {
"type": "string"
},
"name": {
"$ref": "#/definitions/ThemeVizColorShadeName"
},
"primary": {
"type": "boolean"
}
},
"type": "object"
},
"ThemeVizColor<\"yellow\">": {
"properties": {
"aliases": {
"items": {
"type": "string"
},
"type": "array"
},
"color": {
"type": "string"
},
"name": {
"$ref": "#/definitions/ThemeVizColorShadeName_2"
},
"primary": {
"type": "boolean"
}
},
"type": "object"
},
"ThemeVizColorShadeName": {
"enum": ["dark-red", "light-red", "red", "semi-dark-red", "super-light-red"],
"type": "string"
},
"ThemeVizColorShadeName_1": {
"enum": ["dark-orange", "light-orange", "orange", "semi-dark-orange", "super-light-orange"],
"type": "string"
},
"ThemeVizColorShadeName_2": {
"enum": ["dark-yellow", "light-yellow", "semi-dark-yellow", "super-light-yellow", "yellow"],
"type": "string"
},
"ThemeVizColorShadeName_3": {
"enum": ["dark-green", "green", "light-green", "semi-dark-green", "super-light-green"],
"type": "string"
},
"ThemeVizColorShadeName_4": {
"enum": ["blue", "dark-blue", "light-blue", "semi-dark-blue", "super-light-blue"],
"type": "string"
},
"ThemeVizColorShadeName_5": {
"enum": ["dark-purple", "light-purple", "purple", "semi-dark-purple", "super-light-purple"],
"type": "string"
},
"ThemeVizHue": {
"anyOf": [
{
"properties": {
"name": {
"const": "red",
"type": "string"
},
"shades": {
"items": {
"$ref": "#/definitions/ThemeVizColor<\"red\">"
},
"type": "array"
}
},
"type": "object"
},
{
"properties": {
"name": {
"const": "orange",
"type": "string"
},
"shades": {
"items": {
"$ref": "#/definitions/ThemeVizColor<\"orange\">"
},
"type": "array"
}
},
"type": "object"
},
{
"properties": {
"name": {
"const": "yellow",
"type": "string"
},
"shades": {
"items": {
"$ref": "#/definitions/ThemeVizColor<\"yellow\">"
},
"type": "array"
}
},
"type": "object"
},
{
"properties": {
"name": {
"const": "green",
"type": "string"
},
"shades": {
"items": {
"$ref": "#/definitions/ThemeVizColor<\"green\">"
},
"type": "array"
}
},
"type": "object"
},
{
"properties": {
"name": {
"const": "blue",
"type": "string"
},
"shades": {
"items": {
"$ref": "#/definitions/ThemeVizColor<\"blue\">"
},
"type": "array"
}
},
"type": "object"
},
{
"properties": {
"name": {
"const": "purple",
"type": "string"
},
"shades": {
"items": {
"$ref": "#/definitions/ThemeVizColor<\"purple\">"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"properties": {
"colors": {
"$ref": "#/definitions/DeepPartial<ThemeColorsBase<ThemeRichColor>>"
},
"name": {
"type": "string"
},
"shape": {
"$ref": "#/definitions/ThemeShapeInput"
},
"spacing": {
"properties": {
"gridSize": {
"type": "number"
}
},
"type": "object"
},
"typography": {
"$ref": "#/definitions/ThemeTypographyInput"
},
"visualization": {
"properties": {
"hues": {
"items": {
"$ref": "#/definitions/ThemeVizHue"
},
"type": "array"
},
"palette": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
},
"type": "object"
}

View File

@ -1,526 +0,0 @@
{
"$ref": "#/definitions/NewThemeOptions",
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"NewThemeOptions": {
"additionalProperties": false,
"properties": {
"colors": {
"additionalProperties": false,
"properties": {
"action": {
"additionalProperties": false,
"properties": {
"disabledBackground": {
"additionalProperties": false,
"type": "object"
},
"disabledOpacity": {
"additionalProperties": false,
"type": "object"
},
"disabledText": {
"additionalProperties": false,
"type": "object"
},
"focus": {
"additionalProperties": false,
"type": "object"
},
"hover": {
"additionalProperties": false,
"type": "object"
},
"hoverOpacity": {
"additionalProperties": false,
"type": "object"
},
"selected": {
"additionalProperties": false,
"type": "object"
},
"selectedBorder": {
"additionalProperties": false,
"type": "object"
}
},
"type": "object"
},
"background": {
"additionalProperties": false,
"properties": {
"canvas": {
"additionalProperties": false,
"type": "object"
},
"elevated": {
"additionalProperties": false,
"type": "object"
},
"primary": {
"additionalProperties": false,
"type": "object"
},
"secondary": {
"additionalProperties": false,
"type": "object"
}
},
"type": "object"
},
"border": {
"additionalProperties": false,
"properties": {
"medium": {
"additionalProperties": false,
"type": "object"
},
"strong": {
"additionalProperties": false,
"type": "object"
},
"weak": {
"additionalProperties": false,
"type": "object"
}
},
"type": "object"
},
"contrastThreshold": {
"additionalProperties": false,
"type": "object"
},
"error": {
"additionalProperties": false,
"properties": {
"border": {
"additionalProperties": false,
"type": "object"
},
"borderTransparent": {
"additionalProperties": false,
"type": "object"
},
"contrastText": {
"additionalProperties": false,
"type": "object"
},
"main": {
"additionalProperties": false,
"type": "object"
},
"name": {
"additionalProperties": false,
"type": "object"
},
"shade": {
"additionalProperties": false,
"type": "object"
},
"text": {
"additionalProperties": false,
"type": "object"
},
"transparent": {
"additionalProperties": false,
"type": "object"
}
},
"type": "object"
},
"gradients": {
"additionalProperties": false,
"properties": {
"brandHorizontal": {
"additionalProperties": false,
"type": "object"
},
"brandVertical": {
"additionalProperties": false,
"type": "object"
}
},
"type": "object"
},
"hoverFactor": {
"additionalProperties": false,
"type": "object"
},
"info": {
"additionalProperties": false,
"properties": {
"border": {
"additionalProperties": false,
"type": "object"
},
"borderTransparent": {
"additionalProperties": false,
"type": "object"
},
"contrastText": {
"additionalProperties": false,
"type": "object"
},
"main": {
"additionalProperties": false,
"type": "object"
},
"name": {
"additionalProperties": false,
"type": "object"
},
"shade": {
"additionalProperties": false,
"type": "object"
},
"text": {
"additionalProperties": false,
"type": "object"
},
"transparent": {
"additionalProperties": false,
"type": "object"
}
},
"type": "object"
},
"mode": {
"additionalProperties": false,
"type": "object"
},
"primary": {
"additionalProperties": false,
"properties": {
"border": {
"additionalProperties": false,
"type": "object"
},
"borderTransparent": {
"additionalProperties": false,
"type": "object"
},
"contrastText": {
"additionalProperties": false,
"type": "object"
},
"main": {
"additionalProperties": false,
"type": "object"
},
"name": {
"additionalProperties": false,
"type": "object"
},
"shade": {
"additionalProperties": false,
"type": "object"
},
"text": {
"additionalProperties": false,
"type": "object"
},
"transparent": {
"additionalProperties": false,
"type": "object"
}
},
"type": "object"
},
"secondary": {
"additionalProperties": false,
"properties": {
"border": {
"additionalProperties": false,
"type": "object"
},
"borderTransparent": {
"additionalProperties": false,
"type": "object"
},
"contrastText": {
"additionalProperties": false,
"type": "object"
},
"main": {
"additionalProperties": false,
"type": "object"
},
"name": {
"additionalProperties": false,
"type": "object"
},
"shade": {
"additionalProperties": false,
"type": "object"
},
"text": {
"additionalProperties": false,
"type": "object"
},
"transparent": {
"additionalProperties": false,
"type": "object"
}
},
"type": "object"
},
"success": {
"additionalProperties": false,
"properties": {
"border": {
"additionalProperties": false,
"type": "object"
},
"borderTransparent": {
"additionalProperties": false,
"type": "object"
},
"contrastText": {
"additionalProperties": false,
"type": "object"
},
"main": {
"additionalProperties": false,
"type": "object"
},
"name": {
"additionalProperties": false,
"type": "object"
},
"shade": {
"additionalProperties": false,
"type": "object"
},
"text": {
"additionalProperties": false,
"type": "object"
},
"transparent": {
"additionalProperties": false,
"type": "object"
}
},
"type": "object"
},
"text": {
"additionalProperties": false,
"properties": {
"disabled": {
"additionalProperties": false,
"type": "object"
},
"link": {
"additionalProperties": false,
"type": "object"
},
"maxContrast": {
"additionalProperties": false,
"type": "object"
},
"primary": {
"additionalProperties": false,
"type": "object"
},
"secondary": {
"additionalProperties": false,
"type": "object"
}
},
"type": "object"
},
"tonalOffset": {
"additionalProperties": false,
"type": "object"
},
"warning": {
"additionalProperties": false,
"properties": {
"border": {
"additionalProperties": false,
"type": "object"
},
"borderTransparent": {
"additionalProperties": false,
"type": "object"
},
"contrastText": {
"additionalProperties": false,
"type": "object"
},
"main": {
"additionalProperties": false,
"type": "object"
},
"name": {
"additionalProperties": false,
"type": "object"
},
"shade": {
"additionalProperties": false,
"type": "object"
},
"text": {
"additionalProperties": false,
"type": "object"
},
"transparent": {
"additionalProperties": false,
"type": "object"
}
},
"type": "object"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"shape": {
"additionalProperties": false,
"properties": {
"borderRadius": {
"type": "number"
}
},
"type": "object"
},
"spacing": {
"additionalProperties": false,
"properties": {
"gridSize": {
"type": "number"
}
},
"type": "object"
},
"typography": {
"$ref": "#/definitions/ThemeTypographyInput"
},
"visualization": {
"$ref": "#/definitions/ThemeVisualizationColorsInput"
}
},
"type": "object"
},
"ThemeTypographyInput": {
"additionalProperties": false,
"properties": {
"fontFamily": {
"type": "string"
},
"fontFamilyMonospace": {
"type": "string"
},
"fontSize": {
"type": "number"
},
"fontWeightBold": {
"type": "number"
},
"fontWeightLight": {
"type": "number"
},
"fontWeightMedium": {
"type": "number"
},
"fontWeightRegular": {
"type": "number"
},
"htmlFontSize": {
"type": "number"
}
},
"type": "object"
},
"ThemeVisualizationColorsInput": {
"additionalProperties": false,
"properties": {
"hues": {
"items": {
"$ref": "#/definitions/ThemeVizHue"
},
"type": "array"
},
"palette": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"ThemeVizColor<alias-498742091-559-644-498742091-0-16072>": {
"additionalProperties": false,
"properties": {
"aliases": {
"items": {
"type": "string"
},
"type": "array"
},
"color": {
"type": "string"
},
"name": {
"enum": [
"super-light-red",
"super-light-orange",
"super-light-yellow",
"super-light-green",
"super-light-blue",
"super-light-purple",
"light-red",
"light-orange",
"light-yellow",
"light-green",
"light-blue",
"light-purple",
"red",
"orange",
"yellow",
"green",
"blue",
"purple",
"semi-dark-red",
"semi-dark-orange",
"semi-dark-yellow",
"semi-dark-green",
"semi-dark-blue",
"semi-dark-purple",
"dark-red",
"dark-orange",
"dark-yellow",
"dark-green",
"dark-blue",
"dark-purple"
],
"type": "string"
},
"primary": {
"type": "boolean"
}
},
"required": ["color", "name"],
"type": "object"
},
"ThemeVizHue": {
"additionalProperties": false,
"properties": {
"name": {
"enum": ["red", "orange", "yellow", "green", "blue", "purple"],
"type": "string"
},
"shades": {
"items": {
"$ref": "#/definitions/ThemeVizColor%3Calias-498742091-559-644-498742091-0-16072%3E"
},
"type": "array"
}
},
"required": ["name", "shades"],
"type": "object"
}
}
}

View File

@ -9761,6 +9761,15 @@ __metadata:
languageName: node
linkType: hard
"@types/node@npm:^18.11.9":
version: 18.19.129
resolution: "@types/node@npm:18.19.129"
dependencies:
undici-types: "npm:~5.26.4"
checksum: 10/0db4cb246d6012b1b523661a59c2e8e0b24527f1c02cfa3deb8e0b884492a07f2547c5353f56272b70037408e3dbe690ae923b8073fd7b0814e389148245e59f
languageName: node
linkType: hard
"@types/nodemailer@npm:*":
version: 6.4.15
resolution: "@types/nodemailer@npm:6.4.15"
@ -17957,7 +17966,7 @@ __metadata:
languageName: node
linkType: hard
"glob@npm:^7.0.3, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6":
"glob@npm:^7.0.3, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.1.7":
version: 7.2.3
resolution: "glob@npm:7.2.3"
dependencies:
@ -18494,6 +18503,7 @@ __metadata:
tween-functions: "npm:^1.2.0"
type-fest: "npm:^4.18.2"
typescript: "npm:5.9.2"
typescript-json-schema: "npm:^0.65.1"
uplot: "npm:1.6.32"
uuid: "npm:11.1.0"
vis-data: "npm:^8.0.0"
@ -25177,6 +25187,13 @@ __metadata:
languageName: node
linkType: hard
"path-equal@npm:^1.2.5":
version: 1.2.5
resolution: "path-equal@npm:1.2.5"
checksum: 10/fa4ef398dea6bd7bf36c5fe62b5f5c2c14fe1f1340cf355eb8a40c86577318dfa0401df86464bb0cc33ed227f115b2afec10d1adaa64260dedbbc23d33f3abbb
languageName: node
linkType: hard
"path-exists@npm:^3.0.0":
version: 3.0.0
resolution: "path-exists@npm:3.0.0"
@ -28669,6 +28686,13 @@ __metadata:
languageName: node
linkType: hard
"safe-stable-stringify@npm:^2.2.0":
version: 2.5.0
resolution: "safe-stable-stringify@npm:2.5.0"
checksum: 10/2697fa186c17c38c3ca5309637b4ac6de2f1c3d282da27cd5e1e3c88eca0fb1f9aea568a6aabdf284111592c8782b94ee07176f17126031be72ab1313ed46c5c
languageName: node
linkType: hard
"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0":
version: 2.1.2
resolution: "safer-buffer@npm:2.1.2"
@ -31187,7 +31211,7 @@ __metadata:
languageName: node
linkType: hard
"ts-node@npm:10.9.2":
"ts-node@npm:10.9.2, ts-node@npm:^10.9.1":
version: 10.9.2
resolution: "ts-node@npm:10.9.2"
dependencies:
@ -31529,6 +31553,24 @@ __metadata:
languageName: node
linkType: hard
"typescript-json-schema@npm:^0.65.1":
version: 0.65.1
resolution: "typescript-json-schema@npm:0.65.1"
dependencies:
"@types/json-schema": "npm:^7.0.9"
"@types/node": "npm:^18.11.9"
glob: "npm:^7.1.7"
path-equal: "npm:^1.2.5"
safe-stable-stringify: "npm:^2.2.0"
ts-node: "npm:^10.9.1"
typescript: "npm:~5.5.0"
yargs: "npm:^17.1.1"
bin:
typescript-json-schema: bin/typescript-json-schema
checksum: 10/50a1935378639d5d47e452702766a3fdab22e1d06192f26f81b79e0da504e71af987ff21cb13909479a202aad8d1216a654f16ebda2ee2056b5f859584b4c7d2
languageName: node
linkType: hard
"typescript-string-operations@npm:^1.4.1":
version: 1.5.1
resolution: "typescript-string-operations@npm:1.5.1"
@ -31536,7 +31578,7 @@ __metadata:
languageName: node
linkType: hard
"typescript@npm:5.5.4":
"typescript@npm:5.5.4, typescript@npm:~5.5.0":
version: 5.5.4
resolution: "typescript@npm:5.5.4"
bin:
@ -31566,7 +31608,7 @@ __metadata:
languageName: node
linkType: hard
"typescript@patch:typescript@npm%3A5.5.4#optional!builtin<compat/typescript>":
"typescript@patch:typescript@npm%3A5.5.4#optional!builtin<compat/typescript>, typescript@patch:typescript@npm%3A~5.5.0#optional!builtin<compat/typescript>":
version: 5.5.4
resolution: "typescript@patch:typescript@npm%3A5.5.4#optional!builtin<compat/typescript>::version=5.5.4&hash=379a07"
bin:
@ -31655,6 +31697,13 @@ __metadata:
languageName: node
linkType: hard
"undici-types@npm:~5.26.4":
version: 5.26.5
resolution: "undici-types@npm:5.26.5"
checksum: 10/0097779d94bc0fd26f0418b3a05472410408877279141ded2bd449167be1aed7ea5b76f756562cb3586a07f251b90799bab22d9019ceba49c037c76445f7cddd
languageName: node
linkType: hard
"undici-types@npm:~6.21.0":
version: 6.21.0
resolution: "undici-types@npm:6.21.0"
@ -33175,7 +33224,7 @@ __metadata:
languageName: node
linkType: hard
"yargs@npm:17.7.2, yargs@npm:^17.0.1, yargs@npm:^17.3.1, yargs@npm:^17.6.2, yargs@npm:^17.7.2":
"yargs@npm:17.7.2, yargs@npm:^17.0.1, yargs@npm:^17.1.1, yargs@npm:^17.3.1, yargs@npm:^17.6.2, yargs@npm:^17.7.2":
version: 17.7.2
resolution: "yargs@npm:17.7.2"
dependencies: