From d791ca82e767d1fae8ba49e224a477821202f3c6 Mon Sep 17 00:00:00 2001 From: rs Date: Mon, 6 Mar 2023 17:02:19 +0200 Subject: [PATCH 01/60] Fix recursive intersecting types bug with noExtraProps, probably fixes Issue #281 (#526) --- .../main.ts | 9 ++++++++ .../schema.json | 21 +++++++++++++++++++ .../type-intersection-recursive/schema.json | 1 + test/schema.test.ts | 5 ++++- typescript-json-schema.ts | 10 +++++---- 5 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 test/programs/type-intersection-recursive-no-additional/main.ts create mode 100644 test/programs/type-intersection-recursive-no-additional/schema.json diff --git a/test/programs/type-intersection-recursive-no-additional/main.ts b/test/programs/type-intersection-recursive-no-additional/main.ts new file mode 100644 index 00000000..73adb1e1 --- /dev/null +++ b/test/programs/type-intersection-recursive-no-additional/main.ts @@ -0,0 +1,9 @@ +type MyRecursiveNode = { + next?: MyNode; +} + +type MyNode = { + val: string; +} & MyRecursiveNode; + +type MyLinkedList = MyNode; \ No newline at end of file diff --git a/test/programs/type-intersection-recursive-no-additional/schema.json b/test/programs/type-intersection-recursive-no-additional/schema.json new file mode 100644 index 00000000..cecdca22 --- /dev/null +++ b/test/programs/type-intersection-recursive-no-additional/schema.json @@ -0,0 +1,21 @@ +{ + "$ref": "#/definitions/MyNode", + "$schema": "http://json-schema.org/draft-07/schema#", + "definitions": { + "MyNode": { + "additionalProperties": false, + "properties": { + "next": { + "$ref": "#/definitions/MyNode" + }, + "val": { + "type": "string" + } + }, + "required": [ + "val" + ], + "type": "object" + } + } +} \ No newline at end of file diff --git a/test/programs/type-intersection-recursive/schema.json b/test/programs/type-intersection-recursive/schema.json index a784da6c..2cf2df63 100644 --- a/test/programs/type-intersection-recursive/schema.json +++ b/test/programs/type-intersection-recursive/schema.json @@ -1,4 +1,5 @@ { + "$ref": "#/definitions/Foo", "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "ChildFoo": { diff --git a/test/schema.test.ts b/test/schema.test.ts index 6b6bd3b3..73ccf20a 100644 --- a/test/schema.test.ts +++ b/test/schema.test.ts @@ -259,7 +259,10 @@ describe("schema", () => { }); assertSchema("type-union-tagged", "Shape"); assertSchema("type-aliases-union-namespace", "MyModel"); - assertSchema("type-intersection-recursive", "*"); + assertSchema("type-intersection-recursive", "Foo"); + assertSchema("type-intersection-recursive-no-additional", "MyLinkedList", { + noExtraProps: true, + }); }); describe("annotations", () => { diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index 41448513..f5da6809 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -1184,7 +1184,8 @@ export class JsonSchemaGenerator { unionModifier: string = "anyOf", prop?: ts.Symbol, reffedType?: ts.Symbol, - pairedSymbol?: ts.Symbol + pairedSymbol?: ts.Symbol, + forceNotRef: boolean = false ): Definition { const definition: Definition = {}; // real definition @@ -1289,7 +1290,7 @@ export class JsonSchemaGenerator { // Handle recursive types if (!isRawType || !!typ.aliasSymbol) { - if (this.recursiveTypeRef.has(fullTypeName)) { + if (this.recursiveTypeRef.has(fullTypeName) && !forceNotRef) { asRef = true; } else { this.recursiveTypeRef.set(fullTypeName, definition); @@ -1347,12 +1348,13 @@ export class JsonSchemaGenerator { const types = (typ).types; for (const member of types) { - const other = this.getTypeDefinition(member, false); + const other = this.getTypeDefinition(member, false, undefined, undefined, undefined, undefined, true); definition.type = other.type; // should always be object definition.properties = { ...definition.properties, ...other.properties, }; + if (Object.keys(other.default || {}).length > 0) { definition.default = extend(definition.default || {}, other.default); } @@ -1388,7 +1390,7 @@ export class JsonSchemaGenerator { } } - if (this.recursiveTypeRef.get(fullTypeName) === definition) { + if (this.recursiveTypeRef.get(fullTypeName) === definition && !forceNotRef) { this.recursiveTypeRef.delete(fullTypeName); // If the type was recursive (there is reffedDefinitions) - lets replace it to reference if (this.reffedDefinitions[fullTypeName]) { From 34f427a59c11709f5e00ae5fbbba8d4af3c7bb8e Mon Sep 17 00:00:00 2001 From: netanel david <109151575+netanel-mce@users.noreply.github.com> Date: Wed, 22 Mar 2023 18:18:07 +0200 Subject: [PATCH 02/60] Update typescript to 4.9.5 (#529) --- api.md | 279 +-- package.json | 2 +- test/programs/satisfies-keyword/main.ts | 14 + test/programs/satisfies-keyword/schema.json | 29 + test/schema.test.ts | 4 + yarn.lock | 1840 +++++++++---------- 6 files changed, 1120 insertions(+), 1048 deletions(-) create mode 100644 test/programs/satisfies-keyword/main.ts create mode 100644 test/programs/satisfies-keyword/schema.json diff --git a/api.md b/api.md index 86f81567..5323dddf 100644 --- a/api.md +++ b/api.md @@ -2,7 +2,7 @@ _Auto-generated file. Updated with NPM deploy. Update manually with 'yarn docs'. # typescript-json-schema test examples -## [abstract-class](./test/programs/abstract-class) +## [C:\dev\mce\typescript-json-schema\test\programs\abstract-class\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\abstract-class\main.ts) ```ts export abstract class AbstractBase { @@ -15,7 +15,7 @@ export abstract class AbstractBase { ``` -## [abstract-extends](./test/programs/abstract-extends) +## [C:\dev\mce\typescript-json-schema\test\programs\abstract-extends\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\abstract-extends\main.ts) ```ts import { AbstractBase } from "../abstract-class/main"; @@ -29,7 +29,7 @@ class MyObjectFromAbstract extends AbstractBase { ``` -## [annotation-default](./test/programs/annotation-default) +## [C:\dev\mce\typescript-json-schema\test\programs\annotation-default\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\annotation-default\main.ts) ```ts interface MyObject { @@ -73,7 +73,7 @@ interface MyObject { ``` -## [annotation-id](./test/programs/annotation-id) +## [C:\dev\mce\typescript-json-schema\test\programs\annotation-id\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\annotation-id\main.ts) ```ts /** @@ -94,7 +94,7 @@ interface MyObject { ``` -## [annotation-items](./test/programs/annotation-items) +## [C:\dev\mce\typescript-json-schema\test\programs\annotation-items\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\annotation-items\main.ts) ```ts interface MyObject { @@ -134,7 +134,7 @@ interface MyObject { ``` -## [annotation-ref](./test/programs/annotation-ref) +## [C:\dev\mce\typescript-json-schema\test\programs\annotation-ref\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\annotation-ref\main.ts) ```ts interface MySubObject {} @@ -153,7 +153,7 @@ interface MyObject { ``` -## [annotation-required](./test/programs/annotation-required) +## [C:\dev\mce\typescript-json-schema\test\programs\annotation-required\examples.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\annotation-required\examples.ts) ```ts import { MyDefaultObject, MySubObject2 } from "./main"; @@ -174,7 +174,7 @@ export default myDefaultExample; ``` -## [annotation-required](./test/programs/annotation-required) +## [C:\dev\mce\typescript-json-schema\test\programs\annotation-required\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\annotation-required\main.ts) ```ts interface MySubObject { @@ -220,7 +220,7 @@ export const innerExample: MySubObject[] = [ ``` -## [annotation-title](./test/programs/annotation-title) +## [C:\dev\mce\typescript-json-schema\test\programs\annotation-title\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\annotation-title\main.ts) ```ts /** @@ -241,7 +241,7 @@ interface MyObject { ``` -## [annotation-tjs](./test/programs/annotation-tjs) +## [C:\dev\mce\typescript-json-schema\test\programs\annotation-tjs\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\annotation-tjs\main.ts) ```ts // All of these formats are defined in this specification: http://json-schema.org/latest/json-schema-validation.html#rfc.section.8.3 @@ -337,7 +337,7 @@ interface MyObject { ``` -## [any-unknown](./test/programs/any-unknown) +## [C:\dev\mce\typescript-json-schema\test\programs\any-unknown\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\any-unknown\main.ts) ```ts export interface MyObject { @@ -347,7 +347,7 @@ export interface MyObject { ``` -## [argument-id](./test/programs/argument-id) +## [C:\dev\mce\typescript-json-schema\test\programs\argument-id\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\argument-id\main.ts) ```ts interface MyObject { @@ -361,7 +361,7 @@ interface ReferenceType { ``` -## [array-and-description](./test/programs/array-and-description) +## [C:\dev\mce\typescript-json-schema\test\programs\array-and-description\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\array-and-description\main.ts) ```ts export interface MyObject { @@ -375,28 +375,28 @@ export interface MyObject { ``` -## [array-empty](./test/programs/array-empty) +## [C:\dev\mce\typescript-json-schema\test\programs\array-empty\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\array-empty\main.ts) ```ts type MyEmptyArray = []; ``` -## [array-readonly](./test/programs/array-readonly) +## [C:\dev\mce\typescript-json-schema\test\programs\array-readonly\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\array-readonly\main.ts) ```ts export type MyReadOnlyArray = ReadonlyArray; ``` -## [array-types](./test/programs/array-types) +## [C:\dev\mce\typescript-json-schema\test\programs\array-types\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\array-types\main.ts) ```ts type MyArray = Array; ``` -## [builtin-names](./test/programs/builtin-names) +## [C:\dev\mce\typescript-json-schema\test\programs\builtin-names\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\builtin-names\main.ts) ```ts declare namespace Ext { @@ -410,7 +410,7 @@ declare namespace Ext { ``` -## [class-extends](./test/programs/class-extends) +## [C:\dev\mce\typescript-json-schema\test\programs\class-extends\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\class-extends\main.ts) ```ts class Base { @@ -423,7 +423,7 @@ class MyObject extends Base { ``` -## [class-single](./test/programs/class-single) +## [C:\dev\mce\typescript-json-schema\test\programs\class-single\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\class-single\main.ts) ```ts class MyObject { @@ -435,7 +435,7 @@ class MyObject { ``` -## [comments](./test/programs/comments) +## [C:\dev\mce\typescript-json-schema\test\programs\comments\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\comments\main.ts) ```ts @@ -485,7 +485,7 @@ interface MyObject { ``` -## [comments-from-lib](./test/programs/comments-from-lib) +## [C:\dev\mce\typescript-json-schema\test\programs\comments-from-lib\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\comments-from-lib\main.ts) ```ts /** @@ -503,7 +503,7 @@ interface BigThing { ``` -## [comments-imports](./test/programs/comments-imports) +## [C:\dev\mce\typescript-json-schema\test\programs\comments-imports\color.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\comments-imports\color.ts) ```ts /** @@ -515,7 +515,7 @@ export type Color = string; ``` -## [comments-imports](./test/programs/comments-imports) +## [C:\dev\mce\typescript-json-schema\test\programs\comments-imports\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\comments-imports\main.ts) ```ts import { Color } from "./color"; @@ -532,7 +532,7 @@ export interface MyObject { ``` -## [comments-imports](./test/programs/comments-imports) +## [C:\dev\mce\typescript-json-schema\test\programs\comments-imports\text.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\comments-imports\text.ts) ```ts import { Color } from "./color"; @@ -550,7 +550,7 @@ export interface Text { ``` -## [comments-inline-tags](./test/programs/comments-inline-tags) +## [C:\dev\mce\typescript-json-schema\test\programs\comments-inline-tags\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\comments-inline-tags\main.ts) ```ts /** @@ -569,7 +569,7 @@ interface MyObject extends MyOtherObject { ``` -## [comments-override](./test/programs/comments-override) +## [C:\dev\mce\typescript-json-schema\test\programs\comments-override\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\comments-override\main.ts) ```ts @@ -600,7 +600,7 @@ export interface MyObject { ``` -## [custom-dates](./test/programs/custom-dates) +## [C:\dev\mce\typescript-json-schema\test\programs\custom-dates\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\custom-dates\main.ts) ```ts namespace foo { @@ -617,7 +617,7 @@ namespace foo { ``` -## [dates](./test/programs/dates) +## [C:\dev\mce\typescript-json-schema\test\programs\dates\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\dates\main.ts) ```ts type DateAlias = Date; @@ -637,7 +637,7 @@ interface MyObject { ``` -## [default-properties](./test/programs/default-properties) +## [C:\dev\mce\typescript-json-schema\test\programs\default-properties\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\default-properties\main.ts) ```ts type Foo = "a" | "b" | "c" | boolean | number; @@ -650,7 +650,7 @@ class MyObject { ``` -## [enums-compiled-compute](./test/programs/enums-compiled-compute) +## [C:\dev\mce\typescript-json-schema\test\programs\enums-compiled-compute\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\enums-compiled-compute\main.ts) ```ts enum Enum { @@ -662,7 +662,7 @@ enum Enum { ``` -## [enums-mixed](./test/programs/enums-mixed) +## [C:\dev\mce\typescript-json-schema\test\programs\enums-mixed\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\enums-mixed\main.ts) ```ts enum Enum { @@ -679,7 +679,7 @@ interface MyObject { ``` -## [enums-number](./test/programs/enums-number) +## [C:\dev\mce\typescript-json-schema\test\programs\enums-number\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\enums-number\main.ts) ```ts enum Enum { @@ -693,7 +693,7 @@ interface MyObject { ``` -## [enums-number-initialized](./test/programs/enums-number-initialized) +## [C:\dev\mce\typescript-json-schema\test\programs\enums-number-initialized\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\enums-number-initialized\main.ts) ```ts enum Enum { @@ -705,7 +705,7 @@ enum Enum { ``` -## [enums-string](./test/programs/enums-string) +## [C:\dev\mce\typescript-json-schema\test\programs\enums-string\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\enums-string\main.ts) ```ts enum Enum { @@ -720,7 +720,7 @@ interface MyObject { ``` -## [enums-value-in-interface](./test/programs/enums-value-in-interface) +## [C:\dev\mce\typescript-json-schema\test\programs\enums-value-in-interface\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\enums-value-in-interface\main.ts) ```ts export enum A { @@ -735,7 +735,7 @@ export interface MyObject { ``` -## [extra-properties](./test/programs/extra-properties) +## [C:\dev\mce\typescript-json-schema\test\programs\extra-properties\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\extra-properties\main.ts) ```ts export interface MyObject { @@ -746,7 +746,7 @@ export interface MyObject { ``` -## [force-type](./test/programs/force-type) +## [C:\dev\mce\typescript-json-schema\test\programs\force-type\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\force-type\main.ts) ```ts /** @TJS-type number */ @@ -761,7 +761,7 @@ export interface MyObject { ``` -## [force-type-imported](./test/programs/force-type-imported) +## [C:\dev\mce\typescript-json-schema\test\programs\force-type-imported\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\force-type-imported\main.ts) ```ts import { Widget } from "./widget"; @@ -775,7 +775,7 @@ export interface MyObject { ``` -## [force-type-imported](./test/programs/force-type-imported) +## [C:\dev\mce\typescript-json-schema\test\programs\force-type-imported\widget.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\force-type-imported\widget.ts) ```ts /** @TJS-type number */ @@ -783,7 +783,7 @@ export class Widget {} ``` -## [generate-all-types](./test/programs/generate-all-types) +## [C:\dev\mce\typescript-json-schema\test\programs\generate-all-types\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\generate-all-types\main.ts) ```ts @@ -802,7 +802,7 @@ enum MyEnum { ``` -## [generic-anonymous](./test/programs/generic-anonymous) +## [C:\dev\mce\typescript-json-schema\test\programs\generic-anonymous\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\generic-anonymous\main.ts) ```ts interface MyGeneric { @@ -817,7 +817,7 @@ export interface MyObject { ``` -## [generic-arrays](./test/programs/generic-arrays) +## [C:\dev\mce\typescript-json-schema\test\programs\generic-arrays\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\generic-arrays\main.ts) ```ts export interface MyObject { @@ -827,7 +827,7 @@ export interface MyObject { ``` -## [generic-hell](./test/programs/generic-hell) +## [C:\dev\mce\typescript-json-schema\test\programs\generic-hell\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\generic-hell\main.ts) ```ts export interface GenericA { @@ -855,7 +855,7 @@ export interface MyObject extends GenericC>>> ``` -## [generic-multiargs](./test/programs/generic-multiargs) +## [C:\dev\mce\typescript-json-schema\test\programs\generic-multiargs\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\generic-multiargs\main.ts) ```ts export interface MyGeneric { @@ -870,7 +870,7 @@ export interface MyObject { ``` -## [generic-multiple](./test/programs/generic-multiple) +## [C:\dev\mce\typescript-json-schema\test\programs\generic-multiple\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\generic-multiple\main.ts) ```ts export interface MyGeneric { @@ -884,7 +884,7 @@ export interface MyObject { ``` -## [generic-recursive](./test/programs/generic-recursive) +## [C:\dev\mce\typescript-json-schema\test\programs\generic-recursive\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\generic-recursive\main.ts) ```ts export interface MyGeneric { @@ -897,7 +897,7 @@ export interface MyObject { ``` -## [generic-simple](./test/programs/generic-simple) +## [C:\dev\mce\typescript-json-schema\test\programs\generic-simple\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\generic-simple\main.ts) ```ts export interface MyGeneric { @@ -910,7 +910,7 @@ export interface MyObject { ``` -## [ignored-required](./test/programs/ignored-required) +## [C:\dev\mce\typescript-json-schema\test\programs\ignored-required\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\ignored-required\main.ts) ```ts interface MyObject { @@ -930,7 +930,7 @@ interface MyObject { ``` -## [imports](./test/programs/imports) +## [C:\dev\mce\typescript-json-schema\test\programs\imports\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\imports\main.ts) ```ts @@ -952,7 +952,7 @@ class MyObject { ``` -## [imports](./test/programs/imports) +## [C:\dev\mce\typescript-json-schema\test\programs\imports\module1.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\imports\module1.ts) ```ts @@ -963,7 +963,7 @@ export class MyInterface { ``` -## [imports](./test/programs/imports) +## [C:\dev\mce\typescript-json-schema\test\programs\imports\module2.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\imports\module2.ts) ```ts @@ -974,7 +974,7 @@ export class MyInterface { ``` -## [interface-extends](./test/programs/interface-extends) +## [C:\dev\mce\typescript-json-schema\test\programs\interface-extends\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\interface-extends\main.ts) ```ts interface Base { @@ -987,7 +987,7 @@ export interface MyObject extends Base { ``` -## [interface-extra-props](./test/programs/interface-extra-props) +## [C:\dev\mce\typescript-json-schema\test\programs\interface-extra-props\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\interface-extra-props\main.ts) ```ts export interface MyObject { @@ -998,7 +998,7 @@ export interface MyObject { ``` -## [interface-multi](./test/programs/interface-multi) +## [C:\dev\mce\typescript-json-schema\test\programs\interface-multi\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\interface-multi\main.ts) ```ts interface MyObject { @@ -1012,7 +1012,7 @@ interface MySubObject { ``` -## [interface-recursion](./test/programs/interface-recursion) +## [C:\dev\mce\typescript-json-schema\test\programs\interface-recursion\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\interface-recursion\main.ts) ```ts interface MyObject { @@ -1022,7 +1022,7 @@ interface MyObject { ``` -## [interface-single](./test/programs/interface-single) +## [C:\dev\mce\typescript-json-schema\test\programs\interface-single\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\interface-single\main.ts) ```ts export interface MyObject { @@ -1032,7 +1032,7 @@ export interface MyObject { ``` -## [map-types](./test/programs/map-types) +## [C:\dev\mce\typescript-json-schema\test\programs\map-types\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\map-types\main.ts) ```ts @@ -1060,7 +1060,7 @@ interface MyObject { ``` -## [module-interface-deep](./test/programs/module-interface-deep) +## [C:\dev\mce\typescript-json-schema\test\programs\module-interface-deep\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\module-interface-deep\main.ts) ```ts module MyModule { @@ -1084,7 +1084,7 @@ module MyModule { ``` -## [module-interface-single](./test/programs/module-interface-single) +## [C:\dev\mce\typescript-json-schema\test\programs\module-interface-single\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\module-interface-single\main.ts) ```ts module MyModule { @@ -1096,7 +1096,7 @@ module MyModule { ``` -## [namespace](./test/programs/namespace) +## [C:\dev\mce\typescript-json-schema\test\programs\namespace\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\namespace\main.ts) ```ts export namespace Types { @@ -1108,7 +1108,7 @@ export type Type = typeof Types.X | typeof Types.Y; ``` -## [namespace-deep-1](./test/programs/namespace-deep-1) +## [C:\dev\mce\typescript-json-schema\test\programs\namespace-deep-1\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\namespace-deep-1\main.ts) ```ts namespace RootNamespace { @@ -1134,7 +1134,7 @@ namespace RootNamespace { ``` -## [namespace-deep-2](./test/programs/namespace-deep-2) +## [C:\dev\mce\typescript-json-schema\test\programs\namespace-deep-2\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\namespace-deep-2\main.ts) ```ts namespace RootNamespace { @@ -1160,7 +1160,7 @@ namespace RootNamespace { ``` -## [never](./test/programs/never) +## [C:\dev\mce\typescript-json-schema\test\programs\never\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\never\main.ts) ```ts export interface Never { @@ -1170,7 +1170,7 @@ export interface Never { ``` -## [no-unrelated-definitions](./test/programs/no-unrelated-definitions) +## [C:\dev\mce\typescript-json-schema\test\programs\no-unrelated-definitions\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\no-unrelated-definitions\main.ts) ```ts export interface MyObject { @@ -1191,7 +1191,7 @@ interface SomeOtherDefinition { ``` -## [object-numeric-index](./test/programs/object-numeric-index) +## [C:\dev\mce\typescript-json-schema\test\programs\object-numeric-index\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\object-numeric-index\main.ts) ```ts interface IndexInterface { @@ -1200,7 +1200,7 @@ interface IndexInterface { ``` -## [object-numeric-index-as-property](./test/programs/object-numeric-index-as-property) +## [C:\dev\mce\typescript-json-schema\test\programs\object-numeric-index-as-property\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\object-numeric-index-as-property\main.ts) ```ts interface Target { @@ -1222,7 +1222,7 @@ type IndexInPartial = { [index in number]?: number }; ``` -## [optionals](./test/programs/optionals) +## [C:\dev\mce\typescript-json-schema\test\programs\optionals\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\optionals\main.ts) ```ts interface MyObject { @@ -1232,7 +1232,7 @@ interface MyObject { ``` -## [optionals-derived](./test/programs/optionals-derived) +## [C:\dev\mce\typescript-json-schema\test\programs\optionals-derived\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\optionals-derived\main.ts) ```ts interface MyBase { @@ -1247,7 +1247,7 @@ interface MyDerived extends MyBase { ``` -## [private-members](./test/programs/private-members) +## [C:\dev\mce\typescript-json-schema\test\programs\private-members\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\private-members\main.ts) ```ts export class MyObject { @@ -1257,7 +1257,7 @@ export class MyObject { ``` -## [prop-override](./test/programs/prop-override) +## [C:\dev\mce\typescript-json-schema\test\programs\prop-override\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\prop-override\main.ts) ```ts import type { ObjectId } from './third-party' @@ -1272,7 +1272,7 @@ export type MyObject = { ``` -## [prop-override](./test/programs/prop-override) +## [C:\dev\mce\typescript-json-schema\test\programs\prop-override\third-party.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\prop-override\third-party.ts) ```ts // cannot modify with JSDoc because third-party sources @@ -1280,7 +1280,27 @@ export class ObjectId {} ``` -## [strict-null-checks](./test/programs/strict-null-checks) +## [C:\dev\mce\typescript-json-schema\test\programs\satisfies-keyword\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\satisfies-keyword\main.ts) + +```ts +interface Basic { + a: string; + b: number; + c: boolean; +} + +const myObject = { + a: "a" as const, + b: 1 as const, + c: true as const, +// tslint:disable-next-line:variable-name +} satisfies Basic; + +export type Specific = typeof myObject; +``` + + +## [C:\dev\mce\typescript-json-schema\test\programs\strict-null-checks\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\strict-null-checks\main.ts) ```ts @@ -1298,7 +1318,7 @@ class MyObject { ``` -## [string-literals](./test/programs/string-literals) +## [C:\dev\mce\typescript-json-schema\test\programs\string-literals\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\string-literals\main.ts) ```ts type result = "ok" | "fail" | "abort" | ""; @@ -1310,7 +1330,7 @@ class MyObject { ``` -## [string-literals-inline](./test/programs/string-literals-inline) +## [C:\dev\mce\typescript-json-schema\test\programs\string-literals-inline\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\string-literals-inline\main.ts) ```ts class MyObject { @@ -1320,7 +1340,7 @@ class MyObject { ``` -## [tsconfig](./test/programs/tsconfig) +## [C:\dev\mce\typescript-json-schema\test\programs\tsconfig\exclude.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\tsconfig\exclude.ts) ```ts // This file is ignored. @@ -1331,7 +1351,7 @@ export interface Excluded { ``` -## [tsconfig](./test/programs/tsconfig) +## [C:\dev\mce\typescript-json-schema\test\programs\tsconfig\includedAlways.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\tsconfig\includedAlways.ts) ```ts // This file is included by tsconfig.json and --include. @@ -1342,7 +1362,7 @@ export interface IncludedAlways { ``` -## [tsconfig](./test/programs/tsconfig) +## [C:\dev\mce\typescript-json-schema\test\programs\tsconfig\includedByConfig.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\tsconfig\includedByConfig.ts) ```ts // This file is included by tsconfig.json. @@ -1353,7 +1373,7 @@ export interface IncludedOnlyByTsConfig { ``` -## [type-alias-or](./test/programs/type-alias-or) +## [C:\dev\mce\typescript-json-schema\test\programs\type-alias-or\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-alias-or\main.ts) ```ts interface A {} @@ -1367,7 +1387,7 @@ interface MyObject { ``` -## [type-alias-schema-override](./test/programs/type-alias-schema-override) +## [C:\dev\mce\typescript-json-schema\test\programs\type-alias-schema-override\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-alias-schema-override\main.ts) ```ts interface All {} @@ -1380,14 +1400,14 @@ interface MyObject { ``` -## [type-alias-single](./test/programs/type-alias-single) +## [C:\dev\mce\typescript-json-schema\test\programs\type-alias-single\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-alias-single\main.ts) ```ts type MyString = string; ``` -## [type-alias-single-annotated](./test/programs/type-alias-single-annotated) +## [C:\dev\mce\typescript-json-schema\test\programs\type-alias-single-annotated\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-alias-single-annotated\main.ts) ```ts /** @@ -1400,7 +1420,7 @@ type MyString = string; ``` -## [type-aliases](./test/programs/type-aliases) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases\main.ts) ```ts /** @@ -1432,7 +1452,7 @@ interface MyObject { ``` -## [type-aliases-alias-ref](./test/programs/type-aliases-alias-ref) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-alias-ref\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-alias-ref\main.ts) ```ts @@ -1444,7 +1464,7 @@ type MyAlias = MyObject; ``` -## [type-aliases-alias-ref-topref](./test/programs/type-aliases-alias-ref-topref) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-alias-ref-topref\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-alias-ref-topref\main.ts) ```ts @@ -1456,7 +1476,7 @@ type MyAlias = MyObject; ``` -## [type-aliases-anonymous](./test/programs/type-aliases-anonymous) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-anonymous\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-anonymous\main.ts) ```ts export type MyExportString = string; @@ -1469,7 +1489,7 @@ export interface MyObject { ``` -## [type-aliases-fixed-size-array](./test/programs/type-aliases-fixed-size-array) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-fixed-size-array\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-fixed-size-array\main.ts) ```ts type MyFixedSizeArray = [string, number]; @@ -1477,7 +1497,7 @@ type MyFixedSizeArray = [string, number]; ``` -## [type-aliases-local-namespace](./test/programs/type-aliases-local-namespace) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-local-namespace\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-local-namespace\main.ts) ```ts namespace A { @@ -1499,7 +1519,7 @@ export interface MyObject extends D.D {} ``` -## [type-aliases-local-namsepace](./test/programs/type-aliases-local-namsepace) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-local-namsepace\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-local-namsepace\main.ts) ```ts namespace A { @@ -1521,7 +1541,7 @@ interface MyObject extends D.D {} ``` -## [type-aliases-mixed](./test/programs/type-aliases-mixed) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-mixed\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-mixed\main.ts) ```ts export type MyString = string; @@ -1538,7 +1558,7 @@ export interface MyObject { ``` -## [type-aliases-multitype-array](./test/programs/type-aliases-multitype-array) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-multitype-array\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-multitype-array\main.ts) ```ts @@ -1552,7 +1572,7 @@ type MyArray = (string | MyObject)[]; ``` -## [type-aliases-object](./test/programs/type-aliases-object) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-object\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-object\main.ts) ```ts @@ -1565,7 +1585,7 @@ export type MyAlias = MyObject; ``` -## [type-aliases-partial](./test/programs/type-aliases-partial) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-partial\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-partial\main.ts) ```ts export interface Foo { @@ -1585,14 +1605,14 @@ export interface MyObject { ``` -## [type-aliases-primitive](./test/programs/type-aliases-primitive) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-primitive\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-primitive\main.ts) ```ts export type MyString = string; ``` -## [type-aliases-recursive-alias-topref](./test/programs/type-aliases-recursive-alias-topref) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-recursive-alias-topref\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-recursive-alias-topref\main.ts) ```ts @@ -1605,7 +1625,7 @@ type MyAlias = MyObject; ``` -## [type-aliases-recursive-anonymous](./test/programs/type-aliases-recursive-anonymous) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-recursive-anonymous\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-recursive-anonymous\main.ts) ```ts interface MyObject { @@ -1617,7 +1637,7 @@ export type MyAlias = MyObject; ``` -## [type-aliases-recursive-export](./test/programs/type-aliases-recursive-export) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-recursive-export\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-recursive-export\main.ts) ```ts export interface MyObject { @@ -1629,7 +1649,7 @@ export type MyAlias = MyObject; ``` -## [type-aliases-recursive-object-topref](./test/programs/type-aliases-recursive-object-topref) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-recursive-object-topref\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-recursive-object-topref\main.ts) ```ts @@ -1642,28 +1662,28 @@ type MyAlias = MyObject; ``` -## [type-aliases-tuple](./test/programs/type-aliases-tuple) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-tuple\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-tuple\main.ts) ```ts export type MyTuple = [string, number]; ``` -## [type-aliases-tuple-of-variable-length](./test/programs/type-aliases-tuple-of-variable-length) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-tuple-of-variable-length\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-tuple-of-variable-length\main.ts) ```ts export type MyTuple = [string, number, boolean?]; ``` -## [type-aliases-tuple-with-rest-element](./test/programs/type-aliases-tuple-with-rest-element) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-tuple-with-rest-element\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-tuple-with-rest-element\main.ts) ```ts export type MyTuple = [string, ...number[]]; ``` -## [type-aliases-union](./test/programs/type-aliases-union) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-union\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-union\main.ts) ```ts @@ -1677,7 +1697,7 @@ export type MyUnion = (string | MyObject)[]; ``` -## [type-aliases-union-namespace](./test/programs/type-aliases-union-namespace) +## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-union-namespace\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-union-namespace\main.ts) ```ts @@ -1696,7 +1716,7 @@ export interface MyModel { ``` -## [type-anonymous](./test/programs/type-anonymous) +## [C:\dev\mce\typescript-json-schema\test\programs\type-anonymous\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-anonymous\main.ts) ```ts interface MyObject { @@ -1711,7 +1731,7 @@ export interface MyModel { ``` -## [type-default-number-as-integer](./test/programs/type-default-number-as-integer) +## [C:\dev\mce\typescript-json-schema\test\programs\type-default-number-as-integer\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-default-number-as-integer\main.ts) ```ts interface MyObject { @@ -1723,7 +1743,7 @@ interface MyObject { ``` -## [type-function](./test/programs/type-function) +## [C:\dev\mce\typescript-json-schema\test\programs\type-function\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-function\main.ts) ```ts interface MyObject { @@ -1732,14 +1752,14 @@ interface MyObject { ``` -## [type-globalThis](./test/programs/type-globalThis) +## [C:\dev\mce\typescript-json-schema\test\programs\type-globalThis\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-globalThis\main.ts) ```ts export type Test = typeof globalThis; ``` -## [type-intersection](./test/programs/type-intersection) +## [C:\dev\mce\typescript-json-schema\test\programs\type-intersection\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-intersection\main.ts) ```ts interface Type1 { @@ -1757,7 +1777,7 @@ interface MyObject { ``` -## [type-intersection-recursive](./test/programs/type-intersection-recursive) +## [C:\dev\mce\typescript-json-schema\test\programs\type-intersection-recursive\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-intersection-recursive\main.ts) ```ts interface ChildFoo { @@ -1769,7 +1789,22 @@ interface Foo { ``` -## [type-mapped-types](./test/programs/type-mapped-types) +## [C:\dev\mce\typescript-json-schema\test\programs\type-intersection-recursive-no-additional\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-intersection-recursive-no-additional\main.ts) + +```ts +type MyRecursiveNode = { + next?: MyNode; +} + +type MyNode = { + val: string; +} & MyRecursiveNode; + +type MyLinkedList = MyNode; +``` + + +## [C:\dev\mce\typescript-json-schema\test\programs\type-mapped-types\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-mapped-types\main.ts) ```ts type Keys = "str1" | "str2"; @@ -1780,7 +1815,7 @@ type MyMappedType = { ``` -## [type-no-aliases-recursive-topref](./test/programs/type-no-aliases-recursive-topref) +## [C:\dev\mce\typescript-json-schema\test\programs\type-no-aliases-recursive-topref\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-no-aliases-recursive-topref\main.ts) ```ts @@ -1793,7 +1828,7 @@ type MyAlias = MyObject; ``` -## [type-nullable](./test/programs/type-nullable) +## [C:\dev\mce\typescript-json-schema\test\programs\type-nullable\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-nullable\main.ts) ```ts @@ -1832,7 +1867,7 @@ interface MyObject { ``` -## [type-primitives](./test/programs/type-primitives) +## [C:\dev\mce\typescript-json-schema\test\programs\type-primitives\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-primitives\main.ts) ```ts /* tslint:disable:no-inferrable-types */ @@ -1863,7 +1898,7 @@ class MyObject { ``` -## [type-recursive](./test/programs/type-recursive) +## [C:\dev\mce\typescript-json-schema\test\programs\type-recursive\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-recursive\main.ts) ```ts /** @@ -1877,7 +1912,7 @@ interface TestChild { ``` -## [type-union](./test/programs/type-union) +## [C:\dev\mce\typescript-json-schema\test\programs\type-union\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-union\main.ts) ```ts @@ -1894,7 +1929,7 @@ interface MyObject { ``` -## [type-union-tagged](./test/programs/type-union-tagged) +## [C:\dev\mce\typescript-json-schema\test\programs\type-union-tagged\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-union-tagged\main.ts) ```ts @@ -1918,7 +1953,7 @@ type Shape = Square | Rectangle | Circle; ``` -## [typeof-keyword](./test/programs/typeof-keyword) +## [C:\dev\mce\typescript-json-schema\test\programs\typeof-keyword\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\typeof-keyword\main.ts) ```ts interface MyObject { @@ -1927,7 +1962,7 @@ interface MyObject { ``` -## [unique-names](./test/programs/unique-names) +## [C:\dev\mce\typescript-json-schema\test\programs\unique-names\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\unique-names\main.ts) ```ts import "./other"; @@ -1938,7 +1973,7 @@ class MyObject { ``` -## [unique-names](./test/programs/unique-names) +## [C:\dev\mce\typescript-json-schema\test\programs\unique-names\other.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\unique-names\other.ts) ```ts class MyObject { @@ -1947,7 +1982,7 @@ class MyObject { ``` -## [unique-names-multiple-subdefinitions](./test/programs/unique-names-multiple-subdefinitions) +## [C:\dev\mce\typescript-json-schema\test\programs\unique-names-multiple-subdefinitions\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\unique-names-multiple-subdefinitions\main.ts) ```ts import "./other"; @@ -1962,7 +1997,7 @@ class MyObject { ``` -## [unique-names-multiple-subdefinitions](./test/programs/unique-names-multiple-subdefinitions) +## [C:\dev\mce\typescript-json-schema\test\programs\unique-names-multiple-subdefinitions\other.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\unique-names-multiple-subdefinitions\other.ts) ```ts class SubObject { @@ -1971,7 +2006,7 @@ class SubObject { ``` -## [user-symbols](./test/programs/user-symbols) +## [C:\dev\mce\typescript-json-schema\test\programs\user-symbols\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\user-symbols\main.ts) ```ts export interface Context { @@ -1980,7 +2015,7 @@ export interface Context { ``` -## [user-validation-keywords](./test/programs/user-validation-keywords) +## [C:\dev\mce\typescript-json-schema\test\programs\user-validation-keywords\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\user-validation-keywords\main.ts) ```ts export interface MyObject { diff --git a/package.json b/package.json index 8d306538..dcbbeef1 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "path-equal": "^1.1.2", "safe-stable-stringify": "^2.2.0", "ts-node": "^10.9.1", - "typescript": "~4.8.2", + "typescript": "~4.9.5", "yargs": "^17.1.1" }, "devDependencies": { diff --git a/test/programs/satisfies-keyword/main.ts b/test/programs/satisfies-keyword/main.ts new file mode 100644 index 00000000..bf8029f3 --- /dev/null +++ b/test/programs/satisfies-keyword/main.ts @@ -0,0 +1,14 @@ +interface Basic { + a: string; + b: number; + c: boolean; +} + +const myObject = { + a: "a" as const, + b: 1 as const, + c: true as const, +// tslint:disable-next-line:variable-name +} satisfies Basic; + +export type Specific = typeof myObject; diff --git a/test/programs/satisfies-keyword/schema.json b/test/programs/satisfies-keyword/schema.json new file mode 100644 index 00000000..8348f624 --- /dev/null +++ b/test/programs/satisfies-keyword/schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "properties": { + "a": { + "enum": [ + "a" + ], + "type": "string" + }, + "b": { + "enum": [ + 1 + ], + "type": "number" + }, + "c": { + "enum": [ + true + ], + "type": "boolean" + } + }, + "required": [ + "a", + "b", + "c" + ], + "type": "object" +} diff --git a/test/schema.test.ts b/test/schema.test.ts index 73ccf20a..47b701c5 100644 --- a/test/schema.test.ts +++ b/test/schema.test.ts @@ -490,3 +490,7 @@ describe("when reusing a generator", () => { }); }); }); + +describe("satisfies keyword - ignore from a \"satisfies\" and build by rally type", () => { + assertSchema("satisfies-keyword", "Specific"); +}); diff --git a/yarn.lock b/yarn.lock index 7482dd3b..9d75f7b2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,997 +3,987 @@ "@babel/code-frame@^7.0.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" - integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== + "integrity" "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==" + "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/highlight" "^7.14.5" "@babel/helper-validator-identifier@^7.14.5": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" - integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== + "integrity" "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz" + "version" "7.14.9" "@babel/highlight@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" - integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== + "integrity" "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==" + "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-validator-identifier" "^7.14.5" - chalk "^2.0.0" - js-tokens "^4.0.0" + "chalk" "^2.0.0" + "js-tokens" "^4.0.0" "@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + "integrity" "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==" + "resolved" "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" + "version" "0.8.1" dependencies: "@jridgewell/trace-mapping" "0.3.9" "@jridgewell/resolve-uri@^3.0.3": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + "integrity" "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + "resolved" "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" + "version" "3.1.0" "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + "integrity" "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" + "version" "1.4.14" "@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + "integrity" "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==" + "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" + "version" "0.3.9" dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" "@tsconfig/node10@^1.0.7": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" - integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== + "integrity" "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==" + "resolved" "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz" + "version" "1.0.8" "@tsconfig/node12@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" - integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== + "integrity" "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==" + "resolved" "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz" + "version" "1.0.9" "@tsconfig/node14@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" - integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== + "integrity" "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==" + "resolved" "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz" + "version" "1.0.1" "@tsconfig/node16@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" - integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== + "integrity" "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==" + "resolved" "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz" + "version" "1.0.2" "@types/chai@^4.2.21": - version "4.2.21" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.21.tgz#9f35a5643129df132cf3b5c1ec64046ea1af0650" - integrity sha512-yd+9qKmJxm496BOV9CMNaey8TWsikaZOwMRwPHQIjcOJM9oV+fi9ZMNw3JsVnbEEbo2gRTDnGEBv8pjyn67hNg== + "integrity" "sha512-yd+9qKmJxm496BOV9CMNaey8TWsikaZOwMRwPHQIjcOJM9oV+fi9ZMNw3JsVnbEEbo2gRTDnGEBv8pjyn67hNg==" + "resolved" "https://registry.npmjs.org/@types/chai/-/chai-4.2.21.tgz" + "version" "4.2.21" "@types/glob@^7.1.4": - version "7.1.4" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.4.tgz#ea59e21d2ee5c517914cb4bc8e4153b99e566672" - integrity sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA== + "integrity" "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==" + "resolved" "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz" + "version" "7.1.4" dependencies: "@types/minimatch" "*" "@types/node" "*" "@types/json-schema@^7.0.9": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== + "integrity" "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" + "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" + "version" "7.0.9" "@types/minimatch@*": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + "integrity" "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + "resolved" "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz" + "version" "3.0.5" "@types/mocha@^9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-9.0.0.tgz#3205bcd15ada9bc681ac20bef64e9e6df88fd297" - integrity sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA== + "integrity" "sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA==" + "resolved" "https://registry.npmjs.org/@types/mocha/-/mocha-9.0.0.tgz" + "version" "9.0.0" "@types/node@*", "@types/node@^16.9.2": - version "16.9.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.9.2.tgz#81f5a039d6ed1941f8cc57506c74e7c2b8fc64b9" - integrity sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w== + "integrity" "sha512-l0/3XZ153UTlNOnZK8xSNoJlQda9/WnYgiTdcKKPJSZjdjI9MU+A9oMXOesAWLSnqAaaJhj3qfQsU07Dr8OUwg==" + "resolved" "https://registry.npmjs.org/@types/node/-/node-16.18.13.tgz" + "version" "16.18.13" "@ungap/promise-all-settled@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" - integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== - -acorn-walk@^8.1.1: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - -acorn@^8.4.1: - version "8.5.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" - integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== - -ajv-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== - dependencies: - ajv "^8.0.0" - -ajv@^8.0.0, ajv@^8.6.3: - version "8.6.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz#11a66527761dc3e9a3845ea775d2d3c0414e8764" - integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-regex@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -builtin-modules@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= - -camelcase@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== - -chai@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.4.tgz#b55e655b31e1eac7099be4c08c21964fce2e6c49" - integrity sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA== - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^3.0.1" - get-func-name "^2.0.0" - pathval "^1.1.1" - type-detect "^4.0.5" - -chalk@^2.0.0, chalk@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= - -chokidar@3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" + "integrity" "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==" + "resolved" "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz" + "version" "1.1.2" + +"acorn-walk@^8.1.1": + "integrity" "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" + "version" "8.2.0" + +"acorn@^8.4.1": + "integrity" "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz" + "version" "8.5.0" + +"ajv-formats@^2.1.1": + "integrity" "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==" + "resolved" "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "ajv" "^8.0.0" + +"ajv@^8.0.0", "ajv@^8.6.3": + "integrity" "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==" + "resolved" "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz" + "version" "8.6.3" + dependencies: + "fast-deep-equal" "^3.1.1" + "json-schema-traverse" "^1.0.0" + "require-from-string" "^2.0.2" + "uri-js" "^4.2.2" + +"ansi-colors@4.1.1": + "integrity" "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" + "resolved" "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" + "version" "4.1.1" + +"ansi-regex@^5.0.0": + "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + "version" "5.0.1" + +"ansi-styles@^3.2.1": + "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "color-convert" "^1.9.0" + +"ansi-styles@^4.0.0", "ansi-styles@^4.1.0": + "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "color-convert" "^2.0.1" + +"anymatch@~3.1.2": + "integrity" "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==" + "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "normalize-path" "^3.0.0" + "picomatch" "^2.0.4" + +"arg@^4.1.0": + "integrity" "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + "resolved" "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" + "version" "4.1.3" + +"argparse@^1.0.7": + "integrity" "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" + "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + "version" "1.0.10" + dependencies: + "sprintf-js" "~1.0.2" + +"argparse@^2.0.1": + "integrity" "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "resolved" "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + "version" "2.0.1" + +"assertion-error@^1.1.0": + "integrity" "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" + "resolved" "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" + "version" "1.1.0" + +"balanced-match@^1.0.0": + "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + "version" "1.0.2" + +"binary-extensions@^2.0.0": + "integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + "resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + "version" "2.2.0" + +"brace-expansion@^1.1.7": + "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" + "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + "version" "1.1.11" + dependencies: + "balanced-match" "^1.0.0" + "concat-map" "0.0.1" + +"braces@~3.0.2": + "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" + "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "fill-range" "^7.0.1" + +"browser-stdout@1.3.1": + "integrity" "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + "resolved" "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" + "version" "1.3.1" + +"buffer-from@^1.0.0": + "integrity" "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + "version" "1.1.2" + +"builtin-modules@^1.1.1": + "integrity" "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + "resolved" "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" + "version" "1.1.1" + +"camelcase@^6.0.0": + "integrity" "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz" + "version" "6.2.0" + +"chai@^4.3.4": + "integrity" "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==" + "resolved" "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz" + "version" "4.3.4" + dependencies: + "assertion-error" "^1.1.0" + "check-error" "^1.0.2" + "deep-eql" "^3.0.1" + "get-func-name" "^2.0.0" + "pathval" "^1.1.1" + "type-detect" "^4.0.5" + +"chalk@^2.0.0", "chalk@^2.3.0": + "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + "version" "2.4.2" + dependencies: + "ansi-styles" "^3.2.1" + "escape-string-regexp" "^1.0.5" + "supports-color" "^5.3.0" + +"chalk@^4.1.0": + "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"check-error@^1.0.2": + "integrity" "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" + "resolved" "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz" + "version" "1.0.2" + +"chokidar@3.5.2": + "integrity" "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==" + "resolved" "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz" + "version" "3.5.2" + dependencies: + "anymatch" "~3.1.2" + "braces" "~3.0.2" + "glob-parent" "~5.1.2" + "is-binary-path" "~2.1.0" + "is-glob" "~4.0.1" + "normalize-path" "~3.0.0" + "readdirp" "~3.6.0" optionalDependencies: - fsevents "~2.3.2" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -commander@^2.12.1: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -debug@4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -deep-eql@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== - dependencies: - type-detect "^4.0.0" - -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-string-regexp@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-up@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= - -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@7.1.7, glob@^7.1.1, glob@^7.1.7: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -growl@1.10.5: - version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -he@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-core-module@^2.2.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19" - integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== - dependencies: - has "^1.0.3" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -log-symbols@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" + "fsevents" "~2.3.2" + +"cliui@^7.0.2": + "integrity" "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + "version" "7.0.4" + dependencies: + "string-width" "^4.2.0" + "strip-ansi" "^6.0.0" + "wrap-ansi" "^7.0.0" + +"color-convert@^1.9.0": + "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + "version" "1.9.3" + dependencies: + "color-name" "1.1.3" + +"color-convert@^2.0.1": + "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "color-name" "~1.1.4" + +"color-name@~1.1.4": + "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + "version" "1.1.4" + +"color-name@1.1.3": + "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + "version" "1.1.3" + +"commander@^2.12.1": + "integrity" "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "resolved" "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + "version" "2.20.3" + +"concat-map@0.0.1": + "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + "version" "0.0.1" + +"create-require@^1.1.0": + "integrity" "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + "resolved" "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" + "version" "1.1.1" + +"debug@4.3.2": + "integrity" "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz" + "version" "4.3.2" + dependencies: + "ms" "2.1.2" + +"decamelize@^4.0.0": + "integrity" "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==" + "resolved" "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" + "version" "4.0.0" + +"deep-eql@^3.0.1": + "integrity" "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==" + "resolved" "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "type-detect" "^4.0.0" + +"diff@^4.0.1": + "integrity" "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + "resolved" "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" + "version" "4.0.2" + +"diff@5.0.0": + "integrity" "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" + "resolved" "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" + "version" "5.0.0" + +"emoji-regex@^8.0.0": + "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + "version" "8.0.0" + +"escalade@^3.1.1": + "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + "version" "3.1.1" + +"escape-string-regexp@^1.0.5": + "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + "version" "1.0.5" + +"escape-string-regexp@4.0.0": + "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + "version" "4.0.0" + +"esprima@^4.0.0": + "integrity" "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + "version" "4.0.1" + +"fast-deep-equal@^3.1.1": + "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + "version" "3.1.3" + +"fill-range@^7.0.1": + "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" + "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "to-regex-range" "^5.0.1" + +"find-up@5.0.0": + "integrity" "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "locate-path" "^6.0.0" + "path-exists" "^4.0.0" + +"flat@^5.0.2": + "integrity" "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" + "resolved" "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" + "version" "5.0.2" + +"fs.realpath@^1.0.0": + "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + "version" "1.0.0" + +"function-bind@^1.1.1": + "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + "version" "1.1.1" + +"get-caller-file@^2.0.5": + "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + "version" "2.0.5" + +"get-func-name@^2.0.0": + "integrity" "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" + "resolved" "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz" + "version" "2.0.0" + +"glob-parent@~5.1.2": + "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" + "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "is-glob" "^4.0.1" + +"glob@^7.1.1", "glob@^7.1.7", "glob@7.1.7": + "integrity" "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==" + "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" + "version" "7.1.7" + dependencies: + "fs.realpath" "^1.0.0" + "inflight" "^1.0.4" + "inherits" "2" + "minimatch" "^3.0.4" + "once" "^1.3.0" + "path-is-absolute" "^1.0.0" + +"growl@1.10.5": + "integrity" "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" + "resolved" "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" + "version" "1.10.5" + +"has-flag@^3.0.0": + "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + "version" "3.0.0" + +"has-flag@^4.0.0": + "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + "version" "4.0.0" + +"has@^1.0.3": + "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" + "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "function-bind" "^1.1.1" + +"he@1.2.0": + "integrity" "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + "resolved" "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + "version" "1.2.0" + +"inflight@^1.0.4": + "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" + "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "once" "^1.3.0" + "wrappy" "1" + +"inherits@2": + "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + "version" "2.0.4" + +"is-binary-path@~2.1.0": + "integrity" "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==" + "resolved" "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "binary-extensions" "^2.0.0" + +"is-core-module@^2.2.0": + "integrity" "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==" + "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz" + "version" "2.6.0" + dependencies: + "has" "^1.0.3" + +"is-extglob@^2.1.1": + "integrity" "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + "version" "2.1.1" + +"is-fullwidth-code-point@^3.0.0": + "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + "version" "3.0.0" + +"is-glob@^4.0.1", "is-glob@~4.0.1": + "integrity" "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==" + "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "is-extglob" "^2.1.1" + +"is-number@^7.0.0": + "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + "version" "7.0.0" + +"is-plain-obj@^2.1.0": + "integrity" "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + "resolved" "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" + "version" "2.1.0" + +"is-unicode-supported@^0.1.0": + "integrity" "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" + "resolved" "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + "version" "0.1.0" + +"isexe@^2.0.0": + "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + "version" "2.0.0" + +"js-tokens@^4.0.0": + "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + "version" "4.0.0" + +"js-yaml@^3.13.1": + "integrity" "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==" + "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + "version" "3.14.1" + dependencies: + "argparse" "^1.0.7" + "esprima" "^4.0.0" + +"js-yaml@4.1.0": + "integrity" "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==" + "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "argparse" "^2.0.1" + +"json-schema-traverse@^1.0.0": + "integrity" "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + "version" "1.0.0" + +"locate-path@^6.0.0": + "integrity" "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "p-locate" "^5.0.0" + +"log-symbols@4.1.0": + "integrity" "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==" + "resolved" "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "chalk" "^4.1.0" + "is-unicode-supported" "^0.1.0" -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -minimatch@3.0.4, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" +"make-error@^1.1.1": + "integrity" "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + "resolved" "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" + "version" "1.3.6" + +"minimatch@^3.0.4", "minimatch@3.0.4": + "integrity" "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" + "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "brace-expansion" "^1.1.7" -minimist@^1.2.5: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -mkdirp@^0.5.3: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -mocha@^9.1.3: - version "9.1.3" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.1.3.tgz#8a623be6b323810493d8c8f6f7667440fa469fdb" - integrity sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw== +"minimist@^1.2.5": + "integrity" "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" + "version" "1.2.5" + +"mkdirp@^0.5.3": + "integrity" "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==" + "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" + "version" "0.5.5" + dependencies: + "minimist" "^1.2.5" + +"mocha@^9.1.3": + "integrity" "sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw==" + "resolved" "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz" + "version" "9.1.3" dependencies: "@ungap/promise-all-settled" "1.1.2" - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.2" - debug "4.3.2" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.1.7" - growl "1.10.5" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "3.0.4" - ms "2.1.3" - nanoid "3.1.25" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - which "2.0.2" - workerpool "6.1.5" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -nanoid@3.1.25: - version "3.1.25" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152" - integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q== - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -path-equal@^1.1.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/path-equal/-/path-equal-1.2.2.tgz#fa2997f0a829de22ec8f5f86461ca5590d49b832" - integrity sha512-AUJvbcle1Zgb1TgtftHYknlrgrSYyI1ytrYgSbKUHSybwqUDnbD2cw9PIWivuMvsN+GTXmr/DRN4VBXpHG6aGg== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-parse@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -prettier@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.4.1.tgz#671e11c89c14a4cfc876ce564106c4a6726c9f5c" - integrity sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA== - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -resolve@^1.3.2: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -safe-buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-stable-stringify@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.2.0.tgz#26a52f13a6988de16a0d88e20248f38e8a7d840c" - integrity sha512-C6AuMdYPuPV/P1leplHNu0lgc2LAElq/g3TdoksDCIVtBhr78o/CH03bt/9SKqugFbKU9CUjsNlCu0fjtQzQUw== - -semver@^5.3.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - -source-map-support@^0.5.20: - version "0.5.20" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" - integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" - integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" + "ansi-colors" "4.1.1" + "browser-stdout" "1.3.1" + "chokidar" "3.5.2" + "debug" "4.3.2" + "diff" "5.0.0" + "escape-string-regexp" "4.0.0" + "find-up" "5.0.0" + "glob" "7.1.7" + "growl" "1.10.5" + "he" "1.2.0" + "js-yaml" "4.1.0" + "log-symbols" "4.1.0" + "minimatch" "3.0.4" + "ms" "2.1.3" + "nanoid" "3.1.25" + "serialize-javascript" "6.0.0" + "strip-json-comments" "3.1.1" + "supports-color" "8.1.1" + "which" "2.0.2" + "workerpool" "6.1.5" + "yargs" "16.2.0" + "yargs-parser" "20.2.4" + "yargs-unparser" "2.0.0" + +"ms@2.1.2": + "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + "version" "2.1.2" + +"ms@2.1.3": + "integrity" "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + "version" "2.1.3" + +"nanoid@3.1.25": + "integrity" "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==" + "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz" + "version" "3.1.25" + +"normalize-path@^3.0.0", "normalize-path@~3.0.0": + "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + "version" "3.0.0" + +"once@^1.3.0": + "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "wrappy" "1" + +"p-limit@^3.0.2": + "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "yocto-queue" "^0.1.0" + +"p-locate@^5.0.0": + "integrity" "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "p-limit" "^3.0.2" + +"path-equal@^1.1.2": + "integrity" "sha512-AUJvbcle1Zgb1TgtftHYknlrgrSYyI1ytrYgSbKUHSybwqUDnbD2cw9PIWivuMvsN+GTXmr/DRN4VBXpHG6aGg==" + "resolved" "https://registry.npmjs.org/path-equal/-/path-equal-1.2.2.tgz" + "version" "1.2.2" + +"path-exists@^4.0.0": + "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + "version" "4.0.0" + +"path-is-absolute@^1.0.0": + "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "version" "1.0.1" + +"path-parse@^1.0.6": + "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + "version" "1.0.7" + +"pathval@^1.1.1": + "integrity" "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" + "resolved" "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" + "version" "1.1.1" + +"picomatch@^2.0.4", "picomatch@^2.2.1": + "integrity" "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" + "version" "2.3.0" + +"prettier@^2.4.1": + "integrity" "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==" + "resolved" "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz" + "version" "2.4.1" + +"punycode@^2.1.0": + "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + "version" "2.1.1" + +"randombytes@^2.1.0": + "integrity" "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==" + "resolved" "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "safe-buffer" "^5.1.0" + +"readdirp@~3.6.0": + "integrity" "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==" + "resolved" "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + "version" "3.6.0" + dependencies: + "picomatch" "^2.2.1" + +"require-directory@^2.1.1": + "integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + "version" "2.1.1" + +"require-from-string@^2.0.2": + "integrity" "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + "resolved" "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + "version" "2.0.2" + +"resolve@^1.3.2": + "integrity" "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==" + "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" + "version" "1.20.0" + dependencies: + "is-core-module" "^2.2.0" + "path-parse" "^1.0.6" + +"safe-buffer@^5.1.0": + "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + "version" "5.2.1" + +"safe-stable-stringify@^2.2.0": + "integrity" "sha512-C6AuMdYPuPV/P1leplHNu0lgc2LAElq/g3TdoksDCIVtBhr78o/CH03bt/9SKqugFbKU9CUjsNlCu0fjtQzQUw==" + "resolved" "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.2.0.tgz" + "version" "2.2.0" + +"semver@^5.3.0": + "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + "version" "5.7.1" + +"serialize-javascript@6.0.0": + "integrity" "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==" + "resolved" "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "randombytes" "^2.1.0" + +"source-map-support@^0.5.20": + "integrity" "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==" + "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz" + "version" "0.5.20" + dependencies: + "buffer-from" "^1.0.0" + "source-map" "^0.6.0" + +"source-map@^0.6.0": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"sprintf-js@~1.0.2": + "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + "version" "1.0.3" + +"string-width@^4.1.0", "string-width@^4.2.0": + "integrity" "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz" + "version" "4.2.2" + dependencies: + "emoji-regex" "^8.0.0" + "is-fullwidth-code-point" "^3.0.0" + "strip-ansi" "^6.0.0" + +"strip-ansi@^6.0.0": + "integrity" "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "ansi-regex" "^5.0.0" -strip-json-comments@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +"strip-json-comments@3.1.1": + "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + "version" "3.1.1" -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== +"supports-color@^5.3.0": + "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + "version" "5.5.0" dependencies: - has-flag "^4.0.0" + "has-flag" "^3.0.0" -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== +"supports-color@^7.1.0": + "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + "version" "7.2.0" dependencies: - has-flag "^3.0.0" + "has-flag" "^4.0.0" -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== +"supports-color@8.1.1": + "integrity" "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + "version" "8.1.1" dependencies: - has-flag "^4.0.0" + "has-flag" "^4.0.0" -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== +"to-regex-range@^5.0.1": + "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" + "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + "version" "5.0.1" dependencies: - is-number "^7.0.0" + "is-number" "^7.0.0" -ts-node@^10.9.1: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== +"ts-node@^10.9.1": + "integrity" "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==" + "resolved" "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz" + "version" "10.9.1" dependencies: "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" "@tsconfig/node12" "^1.0.7" "@tsconfig/node14" "^1.0.0" "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tslib@^1.13.0, tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslint@^6.1.3: - version "6.1.3" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.3.tgz#5c23b2eccc32487d5523bd3a470e9aa31789d904" - integrity sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg== + "acorn" "^8.4.1" + "acorn-walk" "^8.1.1" + "arg" "^4.1.0" + "create-require" "^1.1.0" + "diff" "^4.0.1" + "make-error" "^1.1.1" + "v8-compile-cache-lib" "^3.0.1" + "yn" "3.1.1" + +"tslib@^1.13.0", "tslib@^1.8.1": + "integrity" "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + "version" "1.14.1" + +"tslint@^6.1.3": + "integrity" "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==" + "resolved" "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz" + "version" "6.1.3" dependencies: "@babel/code-frame" "^7.0.0" - builtin-modules "^1.1.1" - chalk "^2.3.0" - commander "^2.12.1" - diff "^4.0.1" - glob "^7.1.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" - mkdirp "^0.5.3" - resolve "^1.3.2" - semver "^5.3.0" - tslib "^1.13.0" - tsutils "^2.29.0" - -tsutils@^2.29.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" - integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== - dependencies: - tslib "^1.8.1" - -type-detect@^4.0.0, type-detect@^4.0.5: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -typescript@~4.8.2: - version "4.8.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" - integrity sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -which@2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -workerpool@6.1.5: - version "6.1.5" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.5.tgz#0f7cf076b6215fd7e1da903ff6f22ddd1886b581" - integrity sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw== - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-unparser@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yargs@^17.1.1: - version "17.1.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.1.1.tgz#c2a8091564bdb196f7c0a67c1d12e5b85b8067ba" - integrity sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + "builtin-modules" "^1.1.1" + "chalk" "^2.3.0" + "commander" "^2.12.1" + "diff" "^4.0.1" + "glob" "^7.1.1" + "js-yaml" "^3.13.1" + "minimatch" "^3.0.4" + "mkdirp" "^0.5.3" + "resolve" "^1.3.2" + "semver" "^5.3.0" + "tslib" "^1.13.0" + "tsutils" "^2.29.0" + +"tsutils@^2.29.0": + "integrity" "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==" + "resolved" "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz" + "version" "2.29.0" + dependencies: + "tslib" "^1.8.1" + +"type-detect@^4.0.0", "type-detect@^4.0.5": + "integrity" "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + "resolved" "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" + "version" "4.0.8" + +"typescript@>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev", "typescript@>=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev", "typescript@>=2.7", "typescript@~4.9.5": + "integrity" "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==" + "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" + "version" "4.9.5" + +"uri-js@^4.2.2": + "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==" + "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + "version" "4.4.1" + dependencies: + "punycode" "^2.1.0" + +"v8-compile-cache-lib@^3.0.1": + "integrity" "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + "resolved" "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" + "version" "3.0.1" + +"which@2.0.2": + "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" + "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "isexe" "^2.0.0" + +"workerpool@6.1.5": + "integrity" "sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==" + "resolved" "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz" + "version" "6.1.5" + +"wrap-ansi@^7.0.0": + "integrity" "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + "version" "7.0.0" + dependencies: + "ansi-styles" "^4.0.0" + "string-width" "^4.1.0" + "strip-ansi" "^6.0.0" + +"wrappy@1": + "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "version" "1.0.2" + +"y18n@^5.0.5": + "integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + "version" "5.0.8" + +"yargs-parser@^20.2.2", "yargs-parser@20.2.4": + "integrity" "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" + "version" "20.2.4" + +"yargs-unparser@2.0.0": + "integrity" "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==" + "resolved" "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "camelcase" "^6.0.0" + "decamelize" "^4.0.0" + "flat" "^5.0.2" + "is-plain-obj" "^2.1.0" + +"yargs@^17.1.1": + "integrity" "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz" + "version" "17.1.1" + dependencies: + "cliui" "^7.0.2" + "escalade" "^3.1.1" + "get-caller-file" "^2.0.5" + "require-directory" "^2.1.1" + "string-width" "^4.2.0" + "y18n" "^5.0.5" + "yargs-parser" "^20.2.2" + +"yargs@16.2.0": + "integrity" "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + "version" "16.2.0" + dependencies: + "cliui" "^7.0.2" + "escalade" "^3.1.1" + "get-caller-file" "^2.0.5" + "require-directory" "^2.1.1" + "string-width" "^4.2.0" + "y18n" "^5.0.5" + "yargs-parser" "^20.2.2" + +"yn@3.1.1": + "integrity" "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + "resolved" "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" + "version" "3.1.1" + +"yocto-queue@^0.1.0": + "integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + "resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + "version" "0.1.0" From 4642f6d2c1a5dc38a49020cf0ac709cfb069d7e0 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Sun, 2 Apr 2023 10:42:00 -0400 Subject: [PATCH 03/60] v0.56.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dcbbeef1..008438ab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json-schema", - "version": "0.55.0", + "version": "0.56.0", "description": "typescript-json-schema generates JSON Schema files from your Typescript sources", "main": "dist/typescript-json-schema.js", "typings": "dist/typescript-json-schema.d.ts", From fca5cef31fd2798adcac50a1a618807e4be6a0c3 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Sun, 2 Apr 2023 10:43:11 -0400 Subject: [PATCH 04/60] docs: fix links --- api.md | 248 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 124 insertions(+), 124 deletions(-) diff --git a/api.md b/api.md index 5323dddf..5b4c7328 100644 --- a/api.md +++ b/api.md @@ -2,7 +2,7 @@ _Auto-generated file. Updated with NPM deploy. Update manually with 'yarn docs'. # typescript-json-schema test examples -## [C:\dev\mce\typescript-json-schema\test\programs\abstract-class\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\abstract-class\main.ts) +## [abstract-class](./test/programs/abstract-class) ```ts export abstract class AbstractBase { @@ -15,7 +15,7 @@ export abstract class AbstractBase { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\abstract-extends\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\abstract-extends\main.ts) +## [abstract-extends](./test/programs/abstract-extends) ```ts import { AbstractBase } from "../abstract-class/main"; @@ -29,7 +29,7 @@ class MyObjectFromAbstract extends AbstractBase { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\annotation-default\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\annotation-default\main.ts) +## [annotation-default](./test/programs/annotation-default) ```ts interface MyObject { @@ -73,7 +73,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\annotation-id\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\annotation-id\main.ts) +## [annotation-id](./test/programs/annotation-id) ```ts /** @@ -94,7 +94,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\annotation-items\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\annotation-items\main.ts) +## [annotation-items](./test/programs/annotation-items) ```ts interface MyObject { @@ -134,7 +134,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\annotation-ref\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\annotation-ref\main.ts) +## [annotation-ref](./test/programs/annotation-ref) ```ts interface MySubObject {} @@ -153,7 +153,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\annotation-required\examples.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\annotation-required\examples.ts) +## [annotation-required](./test/programs/annotation-required) ```ts import { MyDefaultObject, MySubObject2 } from "./main"; @@ -174,7 +174,7 @@ export default myDefaultExample; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\annotation-required\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\annotation-required\main.ts) +## [annotation-required](./test/programs/annotation-required) ```ts interface MySubObject { @@ -220,7 +220,7 @@ export const innerExample: MySubObject[] = [ ``` -## [C:\dev\mce\typescript-json-schema\test\programs\annotation-title\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\annotation-title\main.ts) +## [annotation-title](./test/programs/annotation-title) ```ts /** @@ -241,7 +241,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\annotation-tjs\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\annotation-tjs\main.ts) +## [annotation-tjs](./test/programs/annotation-tjs) ```ts // All of these formats are defined in this specification: http://json-schema.org/latest/json-schema-validation.html#rfc.section.8.3 @@ -337,7 +337,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\any-unknown\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\any-unknown\main.ts) +## [any-unknown](./test/programs/any-unknown) ```ts export interface MyObject { @@ -347,7 +347,7 @@ export interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\argument-id\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\argument-id\main.ts) +## [argument-id](./test/programs/argument-id) ```ts interface MyObject { @@ -361,7 +361,7 @@ interface ReferenceType { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\array-and-description\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\array-and-description\main.ts) +## [array-and-description](./test/programs/array-and-description) ```ts export interface MyObject { @@ -375,28 +375,28 @@ export interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\array-empty\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\array-empty\main.ts) +## [array-empty](./test/programs/array-empty) ```ts type MyEmptyArray = []; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\array-readonly\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\array-readonly\main.ts) +## [array-readonly](./test/programs/array-readonly) ```ts export type MyReadOnlyArray = ReadonlyArray; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\array-types\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\array-types\main.ts) +## [array-types](./test/programs/array-types) ```ts type MyArray = Array; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\builtin-names\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\builtin-names\main.ts) +## [builtin-names](./test/programs/builtin-names) ```ts declare namespace Ext { @@ -410,7 +410,7 @@ declare namespace Ext { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\class-extends\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\class-extends\main.ts) +## [class-extends](./test/programs/class-extends) ```ts class Base { @@ -423,7 +423,7 @@ class MyObject extends Base { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\class-single\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\class-single\main.ts) +## [class-single](./test/programs/class-single) ```ts class MyObject { @@ -435,7 +435,7 @@ class MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\comments\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\comments\main.ts) +## [comments](./test/programs/comments) ```ts @@ -485,7 +485,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\comments-from-lib\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\comments-from-lib\main.ts) +## [comments-from-lib](./test/programs/comments-from-lib) ```ts /** @@ -503,7 +503,7 @@ interface BigThing { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\comments-imports\color.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\comments-imports\color.ts) +## [comments-imports](./test/programs/comments-imports) ```ts /** @@ -515,7 +515,7 @@ export type Color = string; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\comments-imports\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\comments-imports\main.ts) +## [comments-imports](./test/programs/comments-imports) ```ts import { Color } from "./color"; @@ -532,7 +532,7 @@ export interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\comments-imports\text.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\comments-imports\text.ts) +## [comments-imports](./test/programs/comments-imports) ```ts import { Color } from "./color"; @@ -550,7 +550,7 @@ export interface Text { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\comments-inline-tags\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\comments-inline-tags\main.ts) +## [comments-inline-tags](./test/programs/comments-inline-tags) ```ts /** @@ -569,7 +569,7 @@ interface MyObject extends MyOtherObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\comments-override\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\comments-override\main.ts) +## [comments-override](./test/programs/comments-override) ```ts @@ -600,7 +600,7 @@ export interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\custom-dates\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\custom-dates\main.ts) +## [custom-dates](./test/programs/custom-dates) ```ts namespace foo { @@ -617,7 +617,7 @@ namespace foo { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\dates\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\dates\main.ts) +## [dates](./test/programs/dates) ```ts type DateAlias = Date; @@ -637,7 +637,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\default-properties\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\default-properties\main.ts) +## [default-properties](./test/programs/default-properties) ```ts type Foo = "a" | "b" | "c" | boolean | number; @@ -650,7 +650,7 @@ class MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\enums-compiled-compute\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\enums-compiled-compute\main.ts) +## [enums-compiled-compute](./test/programs/enums-compiled-compute) ```ts enum Enum { @@ -662,7 +662,7 @@ enum Enum { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\enums-mixed\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\enums-mixed\main.ts) +## [enums-mixed](./test/programs/enums-mixed) ```ts enum Enum { @@ -679,7 +679,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\enums-number\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\enums-number\main.ts) +## [enums-number](./test/programs/enums-number) ```ts enum Enum { @@ -693,7 +693,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\enums-number-initialized\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\enums-number-initialized\main.ts) +## [enums-number-initialized](./test/programs/enums-number-initialized) ```ts enum Enum { @@ -705,7 +705,7 @@ enum Enum { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\enums-string\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\enums-string\main.ts) +## [enums-string](./test/programs/enums-string) ```ts enum Enum { @@ -720,7 +720,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\enums-value-in-interface\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\enums-value-in-interface\main.ts) +## [enums-value-in-interface](./test/programs/enums-value-in-interface) ```ts export enum A { @@ -735,7 +735,7 @@ export interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\extra-properties\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\extra-properties\main.ts) +## [extra-properties](./test/programs/extra-properties) ```ts export interface MyObject { @@ -746,7 +746,7 @@ export interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\force-type\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\force-type\main.ts) +## [force-type](./test/programs/force-type) ```ts /** @TJS-type number */ @@ -761,7 +761,7 @@ export interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\force-type-imported\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\force-type-imported\main.ts) +## [force-type-imported](./test/programs/force-type-imported) ```ts import { Widget } from "./widget"; @@ -775,7 +775,7 @@ export interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\force-type-imported\widget.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\force-type-imported\widget.ts) +## [force-type-imported](./test/programs/force-type-imported) ```ts /** @TJS-type number */ @@ -783,7 +783,7 @@ export class Widget {} ``` -## [C:\dev\mce\typescript-json-schema\test\programs\generate-all-types\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\generate-all-types\main.ts) +## [generate-all-types](./test/programs/generate-all-types) ```ts @@ -802,7 +802,7 @@ enum MyEnum { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\generic-anonymous\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\generic-anonymous\main.ts) +## [generic-anonymous](./test/programs/generic-anonymous) ```ts interface MyGeneric { @@ -817,7 +817,7 @@ export interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\generic-arrays\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\generic-arrays\main.ts) +## [generic-arrays](./test/programs/generic-arrays) ```ts export interface MyObject { @@ -827,7 +827,7 @@ export interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\generic-hell\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\generic-hell\main.ts) +## [generic-hell](./test/programs/generic-hell) ```ts export interface GenericA { @@ -855,7 +855,7 @@ export interface MyObject extends GenericC>>> ``` -## [C:\dev\mce\typescript-json-schema\test\programs\generic-multiargs\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\generic-multiargs\main.ts) +## [generic-multiargs](./test/programs/generic-multiargs) ```ts export interface MyGeneric { @@ -870,7 +870,7 @@ export interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\generic-multiple\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\generic-multiple\main.ts) +## [generic-multiple](./test/programs/generic-multiple) ```ts export interface MyGeneric { @@ -884,7 +884,7 @@ export interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\generic-recursive\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\generic-recursive\main.ts) +## [generic-recursive](./test/programs/generic-recursive) ```ts export interface MyGeneric { @@ -897,7 +897,7 @@ export interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\generic-simple\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\generic-simple\main.ts) +## [generic-simple](./test/programs/generic-simple) ```ts export interface MyGeneric { @@ -910,7 +910,7 @@ export interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\ignored-required\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\ignored-required\main.ts) +## [ignored-required](./test/programs/ignored-required) ```ts interface MyObject { @@ -930,7 +930,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\imports\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\imports\main.ts) +## [imports](./test/programs/imports) ```ts @@ -952,7 +952,7 @@ class MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\imports\module1.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\imports\module1.ts) +## [imports](./test/programs/imports) ```ts @@ -963,7 +963,7 @@ export class MyInterface { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\imports\module2.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\imports\module2.ts) +## [imports](./test/programs/imports) ```ts @@ -974,7 +974,7 @@ export class MyInterface { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\interface-extends\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\interface-extends\main.ts) +## [interface-extends](./test/programs/interface-extends) ```ts interface Base { @@ -987,7 +987,7 @@ export interface MyObject extends Base { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\interface-extra-props\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\interface-extra-props\main.ts) +## [interface-extra-props](./test/programs/interface-extra-props) ```ts export interface MyObject { @@ -998,7 +998,7 @@ export interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\interface-multi\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\interface-multi\main.ts) +## [interface-multi](./test/programs/interface-multi) ```ts interface MyObject { @@ -1012,7 +1012,7 @@ interface MySubObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\interface-recursion\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\interface-recursion\main.ts) +## [interface-recursion](./test/programs/interface-recursion) ```ts interface MyObject { @@ -1022,7 +1022,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\interface-single\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\interface-single\main.ts) +## [interface-single](./test/programs/interface-single) ```ts export interface MyObject { @@ -1032,7 +1032,7 @@ export interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\map-types\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\map-types\main.ts) +## [map-types](./test/programs/map-types) ```ts @@ -1060,7 +1060,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\module-interface-deep\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\module-interface-deep\main.ts) +## [module-interface-deep](./test/programs/module-interface-deep) ```ts module MyModule { @@ -1084,7 +1084,7 @@ module MyModule { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\module-interface-single\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\module-interface-single\main.ts) +## [module-interface-single](./test/programs/module-interface-single) ```ts module MyModule { @@ -1096,7 +1096,7 @@ module MyModule { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\namespace\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\namespace\main.ts) +## [namespace](./test/programs/namespace) ```ts export namespace Types { @@ -1108,7 +1108,7 @@ export type Type = typeof Types.X | typeof Types.Y; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\namespace-deep-1\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\namespace-deep-1\main.ts) +## [namespace-deep-1](./test/programs/namespace-deep-1) ```ts namespace RootNamespace { @@ -1134,7 +1134,7 @@ namespace RootNamespace { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\namespace-deep-2\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\namespace-deep-2\main.ts) +## [namespace-deep-2](./test/programs/namespace-deep-2) ```ts namespace RootNamespace { @@ -1160,7 +1160,7 @@ namespace RootNamespace { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\never\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\never\main.ts) +## [never](./test/programs/never) ```ts export interface Never { @@ -1170,7 +1170,7 @@ export interface Never { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\no-unrelated-definitions\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\no-unrelated-definitions\main.ts) +## [no-unrelated-definitions](./test/programs/no-unrelated-definitions) ```ts export interface MyObject { @@ -1191,7 +1191,7 @@ interface SomeOtherDefinition { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\object-numeric-index\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\object-numeric-index\main.ts) +## [object-numeric-index](./test/programs/object-numeric-index) ```ts interface IndexInterface { @@ -1200,7 +1200,7 @@ interface IndexInterface { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\object-numeric-index-as-property\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\object-numeric-index-as-property\main.ts) +## [object-numeric-index-as-property](./test/programs/object-numeric-index-as-property) ```ts interface Target { @@ -1222,7 +1222,7 @@ type IndexInPartial = { [index in number]?: number }; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\optionals\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\optionals\main.ts) +## [optionals](./test/programs/optionals) ```ts interface MyObject { @@ -1232,7 +1232,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\optionals-derived\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\optionals-derived\main.ts) +## [optionals-derived](./test/programs/optionals-derived) ```ts interface MyBase { @@ -1247,7 +1247,7 @@ interface MyDerived extends MyBase { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\private-members\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\private-members\main.ts) +## [private-members](./test/programs/private-members) ```ts export class MyObject { @@ -1257,7 +1257,7 @@ export class MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\prop-override\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\prop-override\main.ts) +## [prop-override](./test/programs/prop-override) ```ts import type { ObjectId } from './third-party' @@ -1272,7 +1272,7 @@ export type MyObject = { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\prop-override\third-party.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\prop-override\third-party.ts) +## [prop-override](./test/programs/prop-override) ```ts // cannot modify with JSDoc because third-party sources @@ -1280,7 +1280,7 @@ export class ObjectId {} ``` -## [C:\dev\mce\typescript-json-schema\test\programs\satisfies-keyword\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\satisfies-keyword\main.ts) +## [satisfies-keyword](./test/programs/satisfies-keyword) ```ts interface Basic { @@ -1300,7 +1300,7 @@ export type Specific = typeof myObject; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\strict-null-checks\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\strict-null-checks\main.ts) +## [strict-null-checks](./test/programs/strict-null-checks) ```ts @@ -1318,7 +1318,7 @@ class MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\string-literals\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\string-literals\main.ts) +## [string-literals](./test/programs/string-literals) ```ts type result = "ok" | "fail" | "abort" | ""; @@ -1330,7 +1330,7 @@ class MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\string-literals-inline\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\string-literals-inline\main.ts) +## [string-literals-inline](./test/programs/string-literals-inline) ```ts class MyObject { @@ -1340,7 +1340,7 @@ class MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\tsconfig\exclude.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\tsconfig\exclude.ts) +## [tsconfig](./test/programs/tsconfig) ```ts // This file is ignored. @@ -1351,7 +1351,7 @@ export interface Excluded { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\tsconfig\includedAlways.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\tsconfig\includedAlways.ts) +## [tsconfig](./test/programs/tsconfig) ```ts // This file is included by tsconfig.json and --include. @@ -1362,7 +1362,7 @@ export interface IncludedAlways { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\tsconfig\includedByConfig.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\tsconfig\includedByConfig.ts) +## [tsconfig](./test/programs/tsconfig) ```ts // This file is included by tsconfig.json. @@ -1373,7 +1373,7 @@ export interface IncludedOnlyByTsConfig { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-alias-or\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-alias-or\main.ts) +## [type-alias-or](./test/programs/type-alias-or) ```ts interface A {} @@ -1387,7 +1387,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-alias-schema-override\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-alias-schema-override\main.ts) +## [type-alias-schema-override](./test/programs/type-alias-schema-override) ```ts interface All {} @@ -1400,14 +1400,14 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-alias-single\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-alias-single\main.ts) +## [type-alias-single](./test/programs/type-alias-single) ```ts type MyString = string; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-alias-single-annotated\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-alias-single-annotated\main.ts) +## [type-alias-single-annotated](./test/programs/type-alias-single-annotated) ```ts /** @@ -1420,7 +1420,7 @@ type MyString = string; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases\main.ts) +## [type-aliases](./test/programs/type-aliases) ```ts /** @@ -1452,7 +1452,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-alias-ref\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-alias-ref\main.ts) +## [type-aliases-alias-ref](./test/programs/type-aliases-alias-ref) ```ts @@ -1464,7 +1464,7 @@ type MyAlias = MyObject; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-alias-ref-topref\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-alias-ref-topref\main.ts) +## [type-aliases-alias-ref-topref](./test/programs/type-aliases-alias-ref-topref) ```ts @@ -1476,7 +1476,7 @@ type MyAlias = MyObject; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-anonymous\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-anonymous\main.ts) +## [type-aliases-anonymous](./test/programs/type-aliases-anonymous) ```ts export type MyExportString = string; @@ -1489,7 +1489,7 @@ export interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-fixed-size-array\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-fixed-size-array\main.ts) +## [type-aliases-fixed-size-array](./test/programs/type-aliases-fixed-size-array) ```ts type MyFixedSizeArray = [string, number]; @@ -1497,7 +1497,7 @@ type MyFixedSizeArray = [string, number]; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-local-namespace\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-local-namespace\main.ts) +## [type-aliases-local-namespace](./test/programs/type-aliases-local-namespace) ```ts namespace A { @@ -1519,7 +1519,7 @@ export interface MyObject extends D.D {} ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-local-namsepace\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-local-namsepace\main.ts) +## [type-aliases-local-namsepace](./test/programs/type-aliases-local-namsepace) ```ts namespace A { @@ -1541,7 +1541,7 @@ interface MyObject extends D.D {} ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-mixed\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-mixed\main.ts) +## [type-aliases-mixed](./test/programs/type-aliases-mixed) ```ts export type MyString = string; @@ -1558,7 +1558,7 @@ export interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-multitype-array\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-multitype-array\main.ts) +## [type-aliases-multitype-array](./test/programs/type-aliases-multitype-array) ```ts @@ -1572,7 +1572,7 @@ type MyArray = (string | MyObject)[]; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-object\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-object\main.ts) +## [type-aliases-object](./test/programs/type-aliases-object) ```ts @@ -1585,7 +1585,7 @@ export type MyAlias = MyObject; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-partial\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-partial\main.ts) +## [type-aliases-partial](./test/programs/type-aliases-partial) ```ts export interface Foo { @@ -1605,14 +1605,14 @@ export interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-primitive\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-primitive\main.ts) +## [type-aliases-primitive](./test/programs/type-aliases-primitive) ```ts export type MyString = string; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-recursive-alias-topref\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-recursive-alias-topref\main.ts) +## [type-aliases-recursive-alias-topref](./test/programs/type-aliases-recursive-alias-topref) ```ts @@ -1625,7 +1625,7 @@ type MyAlias = MyObject; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-recursive-anonymous\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-recursive-anonymous\main.ts) +## [type-aliases-recursive-anonymous](./test/programs/type-aliases-recursive-anonymous) ```ts interface MyObject { @@ -1637,7 +1637,7 @@ export type MyAlias = MyObject; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-recursive-export\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-recursive-export\main.ts) +## [type-aliases-recursive-export](./test/programs/type-aliases-recursive-export) ```ts export interface MyObject { @@ -1649,7 +1649,7 @@ export type MyAlias = MyObject; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-recursive-object-topref\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-recursive-object-topref\main.ts) +## [type-aliases-recursive-object-topref](./test/programs/type-aliases-recursive-object-topref) ```ts @@ -1662,28 +1662,28 @@ type MyAlias = MyObject; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-tuple\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-tuple\main.ts) +## [type-aliases-tuple](./test/programs/type-aliases-tuple) ```ts export type MyTuple = [string, number]; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-tuple-of-variable-length\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-tuple-of-variable-length\main.ts) +## [type-aliases-tuple-of-variable-length](./test/programs/type-aliases-tuple-of-variable-length) ```ts export type MyTuple = [string, number, boolean?]; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-tuple-with-rest-element\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-tuple-with-rest-element\main.ts) +## [type-aliases-tuple-with-rest-element](./test/programs/type-aliases-tuple-with-rest-element) ```ts export type MyTuple = [string, ...number[]]; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-union\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-union\main.ts) +## [type-aliases-union](./test/programs/type-aliases-union) ```ts @@ -1697,7 +1697,7 @@ export type MyUnion = (string | MyObject)[]; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-aliases-union-namespace\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-aliases-union-namespace\main.ts) +## [type-aliases-union-namespace](./test/programs/type-aliases-union-namespace) ```ts @@ -1716,7 +1716,7 @@ export interface MyModel { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-anonymous\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-anonymous\main.ts) +## [type-anonymous](./test/programs/type-anonymous) ```ts interface MyObject { @@ -1731,7 +1731,7 @@ export interface MyModel { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-default-number-as-integer\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-default-number-as-integer\main.ts) +## [type-default-number-as-integer](./test/programs/type-default-number-as-integer) ```ts interface MyObject { @@ -1743,7 +1743,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-function\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-function\main.ts) +## [type-function](./test/programs/type-function) ```ts interface MyObject { @@ -1752,14 +1752,14 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-globalThis\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-globalThis\main.ts) +## [type-globalThis](./test/programs/type-globalThis) ```ts export type Test = typeof globalThis; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-intersection\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-intersection\main.ts) +## [type-intersection](./test/programs/type-intersection) ```ts interface Type1 { @@ -1777,7 +1777,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-intersection-recursive\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-intersection-recursive\main.ts) +## [type-intersection-recursive](./test/programs/type-intersection-recursive) ```ts interface ChildFoo { @@ -1789,7 +1789,7 @@ interface Foo { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-intersection-recursive-no-additional\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-intersection-recursive-no-additional\main.ts) +## [type-intersection-recursive-no-additional](./test/programs/type-intersection-recursive-no-additional) ```ts type MyRecursiveNode = { @@ -1804,7 +1804,7 @@ type MyLinkedList = MyNode; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-mapped-types\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-mapped-types\main.ts) +## [type-mapped-types](./test/programs/type-mapped-types) ```ts type Keys = "str1" | "str2"; @@ -1815,7 +1815,7 @@ type MyMappedType = { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-no-aliases-recursive-topref\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-no-aliases-recursive-topref\main.ts) +## [type-no-aliases-recursive-topref](./test/programs/type-no-aliases-recursive-topref) ```ts @@ -1828,7 +1828,7 @@ type MyAlias = MyObject; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-nullable\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-nullable\main.ts) +## [type-nullable](./test/programs/type-nullable) ```ts @@ -1867,7 +1867,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-primitives\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-primitives\main.ts) +## [type-primitives](./test/programs/type-primitives) ```ts /* tslint:disable:no-inferrable-types */ @@ -1898,7 +1898,7 @@ class MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-recursive\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-recursive\main.ts) +## [type-recursive](./test/programs/type-recursive) ```ts /** @@ -1912,7 +1912,7 @@ interface TestChild { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-union\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-union\main.ts) +## [type-union](./test/programs/type-union) ```ts @@ -1929,7 +1929,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\type-union-tagged\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\type-union-tagged\main.ts) +## [type-union-tagged](./test/programs/type-union-tagged) ```ts @@ -1953,7 +1953,7 @@ type Shape = Square | Rectangle | Circle; ``` -## [C:\dev\mce\typescript-json-schema\test\programs\typeof-keyword\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\typeof-keyword\main.ts) +## [typeof-keyword](./test/programs/typeof-keyword) ```ts interface MyObject { @@ -1962,7 +1962,7 @@ interface MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\unique-names\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\unique-names\main.ts) +## [unique-names](./test/programs/unique-names) ```ts import "./other"; @@ -1973,7 +1973,7 @@ class MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\unique-names\other.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\unique-names\other.ts) +## [unique-names](./test/programs/unique-names) ```ts class MyObject { @@ -1982,7 +1982,7 @@ class MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\unique-names-multiple-subdefinitions\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\unique-names-multiple-subdefinitions\main.ts) +## [unique-names-multiple-subdefinitions](./test/programs/unique-names-multiple-subdefinitions) ```ts import "./other"; @@ -1997,7 +1997,7 @@ class MyObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\unique-names-multiple-subdefinitions\other.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\unique-names-multiple-subdefinitions\other.ts) +## [unique-names-multiple-subdefinitions](./test/programs/unique-names-multiple-subdefinitions) ```ts class SubObject { @@ -2006,7 +2006,7 @@ class SubObject { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\user-symbols\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\user-symbols\main.ts) +## [user-symbols](./test/programs/user-symbols) ```ts export interface Context { @@ -2015,7 +2015,7 @@ export interface Context { ``` -## [C:\dev\mce\typescript-json-schema\test\programs\user-validation-keywords\main.ts](./test/programs/C:\dev\mce\typescript-json-schema\test\programs\user-validation-keywords\main.ts) +## [user-validation-keywords](./test/programs/user-validation-keywords) ```ts export interface MyObject { From 2df0bea1568e8dce562523ff26dd7c6a1d071eb7 Mon Sep 17 00:00:00 2001 From: netanel david <109151575+netanel-mce@users.noreply.github.com> Date: Mon, 3 Apr 2023 16:25:01 +0300 Subject: [PATCH 05/60] Support indexed access (#532) --- api.md | 39 +++++++++++++++ test/programs/key-in-key-of-multi/main.ts | 16 +++++++ test/programs/key-in-key-of-multi/schema.json | 47 +++++++++++++++++++ test/programs/key-in-key-of-single/main.ts | 11 +++++ .../programs/key-in-key-of-single/schema.json | 23 +++++++++ test/schema.test.ts | 5 ++ typescript-json-schema.ts | 20 +++++++- 7 files changed, 159 insertions(+), 2 deletions(-) create mode 100644 test/programs/key-in-key-of-multi/main.ts create mode 100644 test/programs/key-in-key-of-multi/schema.json create mode 100644 test/programs/key-in-key-of-single/main.ts create mode 100644 test/programs/key-in-key-of-single/schema.json diff --git a/api.md b/api.md index 5b4c7328..0a16ad23 100644 --- a/api.md +++ b/api.md @@ -1032,6 +1032,45 @@ export interface MyObject { ``` +## [key-in-key-of-multi](./test/programs/key-in-key-of-multi) + +```ts +type Util = { + utilKey1: { + utilDeepKey11: string; + utilDeepKey12: number; + }; + utilKey2: { + utilDeepKey21: boolean; + utilDeepKey22: null; + }; +}; + +export type Main = { + [Key in keyof Util]: { + [key: string]: Util[Key]; + }; +}; +``` + + +## [key-in-key-of-single](./test/programs/key-in-key-of-single) + +```ts +type Util = { + utilKey: { + utilDeepKey: string; + }; +}; + +export type Main = { + [Key in keyof Util]: { + [key: string]: Util[Key]; + }; +}; +``` + + ## [map-types](./test/programs/map-types) ```ts diff --git a/test/programs/key-in-key-of-multi/main.ts b/test/programs/key-in-key-of-multi/main.ts new file mode 100644 index 00000000..a9b5a98a --- /dev/null +++ b/test/programs/key-in-key-of-multi/main.ts @@ -0,0 +1,16 @@ +type Util = { + utilKey1: { + utilDeepKey11: string; + utilDeepKey12: number; + }; + utilKey2: { + utilDeepKey21: boolean; + utilDeepKey22: null; + }; +}; + +export type Main = { + [Key in keyof Util]: { + [key: string]: Util[Key]; + }; +}; diff --git a/test/programs/key-in-key-of-multi/schema.json b/test/programs/key-in-key-of-multi/schema.json new file mode 100644 index 00000000..e436656f --- /dev/null +++ b/test/programs/key-in-key-of-multi/schema.json @@ -0,0 +1,47 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "properties": { + "utilKey1": { + "additionalProperties": { + "properties": { + "utilDeepKey11": { + "type": "string" + }, + "utilDeepKey12": { + "type": "number" + } + }, + "required": [ + "utilDeepKey11", + "utilDeepKey12" + ], + "type": "object" + }, + "type": "object" + }, + "utilKey2": { + "additionalProperties": { + "properties": { + "utilDeepKey21": { + "type": "boolean" + }, + "utilDeepKey22": { + "type": "null" + } + }, + "required": [ + "utilDeepKey21", + "utilDeepKey22" + ], + "type": "object" + }, + "type": "object" + } + }, + "required": [ + "utilKey1", + "utilKey2" + ], + "type": "object" +} + diff --git a/test/programs/key-in-key-of-single/main.ts b/test/programs/key-in-key-of-single/main.ts new file mode 100644 index 00000000..6bae4b61 --- /dev/null +++ b/test/programs/key-in-key-of-single/main.ts @@ -0,0 +1,11 @@ +type Util = { + utilKey: { + utilDeepKey: string; + }; +}; + +export type Main = { + [Key in keyof Util]: { + [key: string]: Util[Key]; + }; +}; diff --git a/test/programs/key-in-key-of-single/schema.json b/test/programs/key-in-key-of-single/schema.json new file mode 100644 index 00000000..c9bbb51c --- /dev/null +++ b/test/programs/key-in-key-of-single/schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": { + "utilKey": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "utilDeepKey": { + "type": "string" + } + }, + "required": [ + "utilDeepKey" + ] + } + } + }, + "required": [ + "utilKey" + ] +} \ No newline at end of file diff --git a/test/schema.test.ts b/test/schema.test.ts index 47b701c5..42511ed9 100644 --- a/test/schema.test.ts +++ b/test/schema.test.ts @@ -438,6 +438,11 @@ describe("schema", () => { describe("typeof globalThis", () => { assertSchema("type-globalThis", "Test"); }); + + describe("key in key of", () => { + assertSchema("key-in-key-of-single", "Main"); + assertSchema("key-in-key-of-multi", "Main"); + }); }); describe("tsconfig.json", () => { diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index f5da6809..ec0c9b27 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -1070,8 +1070,24 @@ export class JsonSchemaGenerator { } const typ = this.tc.getTypeAtLocation(indexSignature.type!); - const def = this.getTypeDefinition(typ, undefined, "anyOf"); - + let def: Definition | undefined; + if (typ.flags & ts.TypeFlags.IndexedAccess) { + const targetName: string = (clazzType).mapper?.target?.value; + const indexedAccessType = typ; + const symbols: Map = (indexedAccessType.objectType).members; + const targetSymbol = symbols?.get(targetName); + + if (targetSymbol) { + const targetNode = targetSymbol.getDeclarations()![0]; + const targetDef = this.getDefinitionForProperty(targetSymbol, targetNode); + if (targetDef) { + def = targetDef; + } + } + } + if (!def) { + def = this.getTypeDefinition(typ, undefined, "anyOf"); + } if (isStringIndexed) { definition.type = "object"; definition.additionalProperties = def; From d9484e807914e866211b732345ed9257ce7ffaa6 Mon Sep 17 00:00:00 2001 From: lublak <44057030+lublak@users.noreply.github.com> Date: Thu, 27 Apr 2023 12:08:56 +0200 Subject: [PATCH 06/60] use const instead of enum (#535) --- .../programs/argument-id/schema.MyObject.json | 4 +-- .../enums-value-in-interface/schema.json | 4 +-- test/programs/generate-all-types/schema.json | 4 +-- test/programs/satisfies-keyword/schema.json | 12 ++----- test/programs/strict-null-checks/schema.json | 12 ++----- test/programs/type-union-tagged/schema.json | 12 ++----- .../schema.json | 4 +-- .../schema.MyObject.f2191116.json | 4 +-- .../schema.MyObject.fded1213.json | 4 +-- typescript-json-schema.ts | 36 ++++++++++--------- 10 files changed, 35 insertions(+), 61 deletions(-) diff --git a/test/programs/argument-id/schema.MyObject.json b/test/programs/argument-id/schema.MyObject.json index c16a13bb..ccc1ea55 100644 --- a/test/programs/argument-id/schema.MyObject.json +++ b/test/programs/argument-id/schema.MyObject.json @@ -5,9 +5,7 @@ "ReferenceType": { "properties": { "reference": { - "enum": [ - true - ], + "const": true, "type": "boolean" } }, diff --git a/test/programs/enums-value-in-interface/schema.json b/test/programs/enums-value-in-interface/schema.json index 040e3919..f2429ef3 100644 --- a/test/programs/enums-value-in-interface/schema.json +++ b/test/programs/enums-value-in-interface/schema.json @@ -2,9 +2,7 @@ "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "A.B": { - "enum": [ - 0 - ], + "const": 0, "type": "number" } }, diff --git a/test/programs/generate-all-types/schema.json b/test/programs/generate-all-types/schema.json index 0bdd50da..46c47a08 100644 --- a/test/programs/generate-all-types/schema.json +++ b/test/programs/generate-all-types/schema.json @@ -2,9 +2,7 @@ "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "MyEnum": { - "enum": [ - 0 - ], + "const": 0, "type": "number" }, "MyInterface": { diff --git a/test/programs/satisfies-keyword/schema.json b/test/programs/satisfies-keyword/schema.json index 8348f624..308c5a68 100644 --- a/test/programs/satisfies-keyword/schema.json +++ b/test/programs/satisfies-keyword/schema.json @@ -2,21 +2,15 @@ "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "a": { - "enum": [ - "a" - ], + "const": "a", "type": "string" }, "b": { - "enum": [ - 1 - ], + "const": 1, "type": "number" }, "c": { - "enum": [ - true - ], + "const": true, "type": "boolean" } }, diff --git a/test/programs/strict-null-checks/schema.json b/test/programs/strict-null-checks/schema.json index 3d7ab469..58abfc28 100644 --- a/test/programs/strict-null-checks/schema.json +++ b/test/programs/strict-null-checks/schema.json @@ -14,23 +14,17 @@ "type": "number" }, "valTrue": { - "enum": [ - true - ], + "const": true, "type": "boolean" }, "valTrueOpt": { - "enum": [ - true - ], + "const": true, "type": "boolean" }, "valTrueOrNull": { "anyOf": [ { - "enum": [ - true - ], + "const": true, "type": "boolean" }, { diff --git a/test/programs/type-union-tagged/schema.json b/test/programs/type-union-tagged/schema.json index 21829333..d9d04cc6 100644 --- a/test/programs/type-union-tagged/schema.json +++ b/test/programs/type-union-tagged/schema.json @@ -15,9 +15,7 @@ "Circle": { "properties": { "kind": { - "enum": [ - "circle" - ], + "const": "circle", "type": "string" }, "radius": { @@ -36,9 +34,7 @@ "type": "number" }, "kind": { - "enum": [ - "rectangle" - ], + "const": "rectangle", "type": "string" }, "width": { @@ -55,9 +51,7 @@ "Square": { "properties": { "kind": { - "enum": [ - "square" - ], + "const": "square", "type": "string" }, "size": { diff --git a/test/programs/unique-names-multiple-subdefinitions/schema.json b/test/programs/unique-names-multiple-subdefinitions/schema.json index 79b51025..79993b6a 100644 --- a/test/programs/unique-names-multiple-subdefinitions/schema.json +++ b/test/programs/unique-names-multiple-subdefinitions/schema.json @@ -13,9 +13,7 @@ "SubObject.0eb4e9af": { "properties": { "is": { - "enum": [ - "SubObject_1" - ], + "const": "SubObject_1", "type": "string" } }, diff --git a/test/programs/unique-names/schema.MyObject.f2191116.json b/test/programs/unique-names/schema.MyObject.f2191116.json index b177159e..3ba8893b 100644 --- a/test/programs/unique-names/schema.MyObject.f2191116.json +++ b/test/programs/unique-names/schema.MyObject.f2191116.json @@ -3,9 +3,7 @@ "properties": { "is": { "type": "string", - "enum": [ - "MyObject_1" - ] + "const": "MyObject_1" } }, "required": [ diff --git a/test/programs/unique-names/schema.MyObject.fded1213.json b/test/programs/unique-names/schema.MyObject.fded1213.json index aeb2da1b..b7df6b93 100644 --- a/test/programs/unique-names/schema.MyObject.fded1213.json +++ b/test/programs/unique-names/schema.MyObject.fded1213.json @@ -3,9 +3,7 @@ "properties": { "is": { "type": "string", - "enum": [ - "MyObject_2" - ] + "const": "MyObject_2" } }, "required": [ diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index ec0c9b27..9c30661a 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -554,16 +554,16 @@ export class JsonSchemaGenerator { if (comments.length) { definition.description = comments .map((comment) => { - const newlineNormalizedComment = comment.text.replace(/\r\n/g, "\n"); + const newlineNormalizedComment = comment.text.replace(/\r\n/g, "\n"); - // If a comment contains a "{@link XYZ}" inline tag that could not be - // resolved by the TS checker, then this comment will contain a trailing - // whitespace that we need to remove. - if (comment.kind === "linkText") { - return newlineNormalizedComment.trim(); - } + // If a comment contains a "{@link XYZ}" inline tag that could not be + // resolved by the TS checker, then this comment will contain a trailing + // whitespace that we need to remove. + if (comment.kind === "linkText") { + return newlineNormalizedComment.trim(); + } - return newlineNormalizedComment; + return newlineNormalizedComment; }) .join("").trim(); } @@ -692,12 +692,12 @@ export class JsonSchemaGenerator { const value = extractLiteralValue(propertyType); if (value !== undefined) { definition.type = typeof value; - definition.enum = [value]; + definition.const = value; } else if (arrayType !== undefined) { if ( propertyType.flags & ts.TypeFlags.Object && (propertyType as ts.ObjectType).objectFlags & - (ts.ObjectFlags.Anonymous | ts.ObjectFlags.Interface | ts.ObjectFlags.Mapped) + (ts.ObjectFlags.Anonymous | ts.ObjectFlags.Interface | ts.ObjectFlags.Mapped) ) { definition.type = "object"; definition.additionalProperties = false; @@ -762,7 +762,7 @@ export class JsonSchemaGenerator { if (valDecl?.initializer) { let initial = valDecl.initializer; - while (ts.isTypeAssertion(initial)) { + while (ts.isTypeAssertionExpression(initial)) { initial = initial.expression; } @@ -803,7 +803,7 @@ export class JsonSchemaGenerator { const members: ts.NodeArray = node.kind === ts.SyntaxKind.EnumDeclaration ? (node as ts.EnumDeclaration).members - : ts.createNodeArray([node as ts.EnumMember]); + : ts.factory.createNodeArray([node as ts.EnumMember]); var enumValues: (number | boolean | string | null)[] = []; const enumTypes: string[] = []; @@ -854,7 +854,11 @@ export class JsonSchemaGenerator { } if (enumValues.length > 0) { - definition.enum = enumValues.sort(); + if (enumValues.length > 1) { + definition.enum = enumValues.sort(); + } else { + definition.const = enumValues[0]; + } } return definition; @@ -919,7 +923,7 @@ export class JsonSchemaGenerator { if (isOnlyBooleans) { pushSimpleType("boolean"); } else { - const enumSchema: Definition = { enum: enumValues.sort() }; + const enumSchema: Definition = enumValues.length > 1 ? { enum: enumValues.sort() } : { const: enumValues[0] }; // If all values are of the same primitive type, add a "type" field to the schema if ( @@ -1240,7 +1244,7 @@ export class JsonSchemaGenerator { const symbol = typ.getSymbol(); // FIXME: We can't just compare the name of the symbol - it ignores the namespace let isRawType = - !symbol || + !symbol || // Window is incorrectly marked as rawType here for some reason (this.tc.getFullyQualifiedName(symbol) !== "Window" && (this.tc.getFullyQualifiedName(symbol) === "Date" || @@ -1248,7 +1252,7 @@ export class JsonSchemaGenerator { this.tc.getIndexInfoOfType(typ, ts.IndexKind.Number) !== undefined)); if (isRawType && (typ as any).aliasSymbol?.escapedName && (typ as any).types) { - isRawType = false; + isRawType = false; } // special case: an union where all child are string literals -> make an enum instead From d2124fdfd65cd437f43e6bde0e9099be2ee57c74 Mon Sep 17 00:00:00 2001 From: Sean Jonker <42404619+FreaKnightKurtosys@users.noreply.github.com> Date: Mon, 15 May 2023 21:12:17 +0200 Subject: [PATCH 07/60] fix: include Title in referenced definitions (#541) * Include Title in referenced definitions * Tests update --------- Co-authored-by: Sean Jonker --- test/programs/annotation-title/main.ts | 9 ++++++++- test/programs/annotation-title/schema.json | 17 +++++++++++++++-- typescript-json-schema.ts | 1 + 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/test/programs/annotation-title/main.ts b/test/programs/annotation-title/main.ts index af7b9d50..5a3f51f3 100644 --- a/test/programs/annotation-title/main.ts +++ b/test/programs/annotation-title/main.ts @@ -5,11 +5,18 @@ interface MySubObject { a: boolean; } +interface AnotherSubObject { + b: boolean; +} + interface MyObject { /** * @title empty# */ empty; - + /** + * @title filled + */ filled: MySubObject; + nonTitled: AnotherSubObject; } diff --git a/test/programs/annotation-title/schema.json b/test/programs/annotation-title/schema.json index 7d11b17b..541d80d4 100644 --- a/test/programs/annotation-title/schema.json +++ b/test/programs/annotation-title/schema.json @@ -1,6 +1,15 @@ { "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { + "AnotherSubObject": { + "properties": { + "b": { + "type": "boolean" + } + }, + "required": ["b"], + "type": "object" + }, "MySubObject": { "title": "filled#", "type": "object", @@ -15,9 +24,13 @@ "title": "empty#" }, "filled": { - "$ref": "#/definitions/MySubObject" + "$ref": "#/definitions/MySubObject", + "title": "filled" + }, + "nonTitled": { + "$ref": "#/definitions/AnotherSubObject" } }, - "required": ["empty", "filled"], + "required": ["empty", "filled", "nonTitled"], "type": "object" } diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index 9c30661a..97b0e278 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -438,6 +438,7 @@ const annotationKeywords: { [k in keyof typeof validationKeywords]?: true } = { description: true, default: true, examples: true, + title: true, // A JSDoc $ref annotation can appear as a $ref. $ref: true, }; From ea757365272da3748c3b3a91f3e446ed790a6ef0 Mon Sep 17 00:00:00 2001 From: Robin Mehner Date: Tue, 23 May 2023 21:50:36 +0200 Subject: [PATCH 08/60] Update path-equal so users don't need to install tslib (#543) path-equal < 1.2 had a phantom dependency to tslib (https://github.com/unional/path-equal/pull/57), which is not a problem if your project is written in TypeScript. However, if you're flying with vanilla JS or JS with JSDocs with TypeScript, it will fail if you don't have tslib installed. --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 008438ab..09328cb2 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "@types/json-schema": "^7.0.9", "@types/node": "^16.9.2", "glob": "^7.1.7", - "path-equal": "^1.1.2", + "path-equal": "^1.2.5", "safe-stable-stringify": "^2.2.0", "ts-node": "^10.9.1", "typescript": "~4.9.5", diff --git a/yarn.lock b/yarn.lock index 9d75f7b2..ca5f4082 100644 --- a/yarn.lock +++ b/yarn.lock @@ -673,10 +673,10 @@ dependencies: "p-limit" "^3.0.2" -"path-equal@^1.1.2": - "integrity" "sha512-AUJvbcle1Zgb1TgtftHYknlrgrSYyI1ytrYgSbKUHSybwqUDnbD2cw9PIWivuMvsN+GTXmr/DRN4VBXpHG6aGg==" - "resolved" "https://registry.npmjs.org/path-equal/-/path-equal-1.2.2.tgz" - "version" "1.2.2" +"path-equal@^1.2.5": + "integrity" "sha512-i73IctDr3F2W+bsOWDyyVm/lqsXO47aY9nsFZUjTT/aljSbkxHxxCoyZ9UUrM8jK0JVod+An+rl48RCsvWM+9g==" + "resolved" "https://registry.yarnpkg.com/path-equal/-/path-equal-1.2.5.tgz#9fcbdd5e5daee448e96f43f3bac06c666b5e982a" + "version" "1.2.5" "path-exists@^4.0.0": "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" From 6818b134f13ffbb4a7c2ef0d493f0439489bd18b Mon Sep 17 00:00:00 2001 From: Robin Mehner Date: Wed, 24 May 2023 15:45:58 +0200 Subject: [PATCH 09/60] Fix yarn.lock (#544) --- yarn.lock | 1835 +++++++++++++++++++++++++++-------------------------- 1 file changed, 920 insertions(+), 915 deletions(-) diff --git a/yarn.lock b/yarn.lock index ca5f4082..66820288 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,987 +3,992 @@ "@babel/code-frame@^7.0.0": - "integrity" "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==" - "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz" + integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== dependencies: "@babel/highlight" "^7.14.5" "@babel/helper-validator-identifier@^7.14.5": - "integrity" "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" - "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz" - "version" "7.14.9" + version "7.14.9" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz" + integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== "@babel/highlight@^7.14.5": - "integrity" "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==" - "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz" - "version" "7.14.5" + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz" + integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== dependencies: "@babel/helper-validator-identifier" "^7.14.5" - "chalk" "^2.0.0" - "js-tokens" "^4.0.0" + chalk "^2.0.0" + js-tokens "^4.0.0" "@cspotcode/source-map-support@^0.8.0": - "integrity" "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==" - "resolved" "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" - "version" "0.8.1" + version "0.8.1" + resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== dependencies: "@jridgewell/trace-mapping" "0.3.9" "@jridgewell/resolve-uri@^3.0.3": - "integrity" "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" - "resolved" "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" - "version" "3.1.0" + version "3.1.0" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== "@jridgewell/sourcemap-codec@^1.4.10": - "integrity" "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" - "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" - "version" "1.4.14" + version "1.4.14" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== "@jridgewell/trace-mapping@0.3.9": - "integrity" "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==" - "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" - "version" "0.3.9" + version "0.3.9" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" "@tsconfig/node10@^1.0.7": - "integrity" "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==" - "resolved" "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz" - "version" "1.0.8" + version "1.0.8" + resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz" + integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== "@tsconfig/node12@^1.0.7": - "integrity" "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==" - "resolved" "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz" - "version" "1.0.9" + version "1.0.9" + resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz" + integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== "@tsconfig/node14@^1.0.0": - "integrity" "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==" - "resolved" "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz" + integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== "@tsconfig/node16@^1.0.2": - "integrity" "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==" - "resolved" "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz" - "version" "1.0.2" + version "1.0.2" + resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz" + integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== "@types/chai@^4.2.21": - "integrity" "sha512-yd+9qKmJxm496BOV9CMNaey8TWsikaZOwMRwPHQIjcOJM9oV+fi9ZMNw3JsVnbEEbo2gRTDnGEBv8pjyn67hNg==" - "resolved" "https://registry.npmjs.org/@types/chai/-/chai-4.2.21.tgz" - "version" "4.2.21" + version "4.2.21" + resolved "https://registry.npmjs.org/@types/chai/-/chai-4.2.21.tgz" + integrity sha512-yd+9qKmJxm496BOV9CMNaey8TWsikaZOwMRwPHQIjcOJM9oV+fi9ZMNw3JsVnbEEbo2gRTDnGEBv8pjyn67hNg== "@types/glob@^7.1.4": - "integrity" "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==" - "resolved" "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz" - "version" "7.1.4" + version "7.1.4" + resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz" + integrity sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA== dependencies: "@types/minimatch" "*" "@types/node" "*" "@types/json-schema@^7.0.9": - "integrity" "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" - "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" - "version" "7.0.9" + version "7.0.9" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== "@types/minimatch@*": - "integrity" "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - "resolved" "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz" - "version" "3.0.5" + version "3.0.5" + resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/mocha@^9.0.0": - "integrity" "sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA==" - "resolved" "https://registry.npmjs.org/@types/mocha/-/mocha-9.0.0.tgz" - "version" "9.0.0" + version "9.0.0" + resolved "https://registry.npmjs.org/@types/mocha/-/mocha-9.0.0.tgz" + integrity sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA== "@types/node@*", "@types/node@^16.9.2": - "integrity" "sha512-l0/3XZ153UTlNOnZK8xSNoJlQda9/WnYgiTdcKKPJSZjdjI9MU+A9oMXOesAWLSnqAaaJhj3qfQsU07Dr8OUwg==" - "resolved" "https://registry.npmjs.org/@types/node/-/node-16.18.13.tgz" - "version" "16.18.13" + version "16.18.13" + resolved "https://registry.npmjs.org/@types/node/-/node-16.18.13.tgz" + integrity sha512-l0/3XZ153UTlNOnZK8xSNoJlQda9/WnYgiTdcKKPJSZjdjI9MU+A9oMXOesAWLSnqAaaJhj3qfQsU07Dr8OUwg== "@ungap/promise-all-settled@1.1.2": - "integrity" "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==" - "resolved" "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz" - "version" "1.1.2" - -"acorn-walk@^8.1.1": - "integrity" "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" - "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" - "version" "8.2.0" - -"acorn@^8.4.1": - "integrity" "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz" - "version" "8.5.0" - -"ajv-formats@^2.1.1": - "integrity" "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==" - "resolved" "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" - "version" "2.1.1" - dependencies: - "ajv" "^8.0.0" - -"ajv@^8.0.0", "ajv@^8.6.3": - "integrity" "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==" - "resolved" "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz" - "version" "8.6.3" - dependencies: - "fast-deep-equal" "^3.1.1" - "json-schema-traverse" "^1.0.0" - "require-from-string" "^2.0.2" - "uri-js" "^4.2.2" - -"ansi-colors@4.1.1": - "integrity" "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" - "resolved" "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" - "version" "4.1.1" - -"ansi-regex@^5.0.0": - "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - "version" "5.0.1" - -"ansi-styles@^3.2.1": - "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" - "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - "version" "3.2.1" - dependencies: - "color-convert" "^1.9.0" - -"ansi-styles@^4.0.0", "ansi-styles@^4.1.0": - "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" - "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - "version" "4.3.0" - dependencies: - "color-convert" "^2.0.1" - -"anymatch@~3.1.2": - "integrity" "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==" - "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" - "version" "3.1.2" - dependencies: - "normalize-path" "^3.0.0" - "picomatch" "^2.0.4" - -"arg@^4.1.0": - "integrity" "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - "resolved" "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" - "version" "4.1.3" - -"argparse@^1.0.7": - "integrity" "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" - "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" - "version" "1.0.10" - dependencies: - "sprintf-js" "~1.0.2" - -"argparse@^2.0.1": - "integrity" "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - "resolved" "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" - "version" "2.0.1" - -"assertion-error@^1.1.0": - "integrity" "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" - "resolved" "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" - "version" "1.1.0" - -"balanced-match@^1.0.0": - "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - "version" "1.0.2" - -"binary-extensions@^2.0.0": - "integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - "resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - "version" "2.2.0" - -"brace-expansion@^1.1.7": - "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" - "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - "version" "1.1.11" - dependencies: - "balanced-match" "^1.0.0" - "concat-map" "0.0.1" - -"braces@~3.0.2": - "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" - "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - "version" "3.0.2" - dependencies: - "fill-range" "^7.0.1" - -"browser-stdout@1.3.1": - "integrity" "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" - "resolved" "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" - "version" "1.3.1" - -"buffer-from@^1.0.0": - "integrity" "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" - "version" "1.1.2" - -"builtin-modules@^1.1.1": - "integrity" "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - "resolved" "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" - "version" "1.1.1" - -"camelcase@^6.0.0": - "integrity" "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" - "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz" - "version" "6.2.0" - -"chai@^4.3.4": - "integrity" "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==" - "resolved" "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz" - "version" "4.3.4" - dependencies: - "assertion-error" "^1.1.0" - "check-error" "^1.0.2" - "deep-eql" "^3.0.1" - "get-func-name" "^2.0.0" - "pathval" "^1.1.1" - "type-detect" "^4.0.5" - -"chalk@^2.0.0", "chalk@^2.3.0": - "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - "version" "2.4.2" - dependencies: - "ansi-styles" "^3.2.1" - "escape-string-regexp" "^1.0.5" - "supports-color" "^5.3.0" - -"chalk@^4.1.0": - "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - "version" "4.1.2" - dependencies: - "ansi-styles" "^4.1.0" - "supports-color" "^7.1.0" - -"check-error@^1.0.2": - "integrity" "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" - "resolved" "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz" - "version" "1.0.2" - -"chokidar@3.5.2": - "integrity" "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==" - "resolved" "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz" - "version" "3.5.2" - dependencies: - "anymatch" "~3.1.2" - "braces" "~3.0.2" - "glob-parent" "~5.1.2" - "is-binary-path" "~2.1.0" - "is-glob" "~4.0.1" - "normalize-path" "~3.0.0" - "readdirp" "~3.6.0" + version "1.1.2" + resolved "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz" + integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.4.1: + version "8.5.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz" + integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv@^8.0.0, ajv@^8.6.3: + version "8.6.3" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz" + integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-regex@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" + integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + +camelcase@^6.0.0: + version "6.2.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + +chai@^4.3.4: + version "4.3.4" + resolved "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz" + integrity sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + pathval "^1.1.1" + type-detect "^4.0.5" + +chalk@^2.0.0, chalk@^2.3.0: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= + +chokidar@3.5.2: + version "3.5.2" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz" + integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" optionalDependencies: - "fsevents" "~2.3.2" - -"cliui@^7.0.2": - "integrity" "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==" - "resolved" "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" - "version" "7.0.4" - dependencies: - "string-width" "^4.2.0" - "strip-ansi" "^6.0.0" - "wrap-ansi" "^7.0.0" - -"color-convert@^1.9.0": - "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" - "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - "version" "1.9.3" - dependencies: - "color-name" "1.1.3" - -"color-convert@^2.0.1": - "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" - "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "color-name" "~1.1.4" - -"color-name@~1.1.4": - "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - "version" "1.1.4" - -"color-name@1.1.3": - "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - "version" "1.1.3" - -"commander@^2.12.1": - "integrity" "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - "resolved" "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" - "version" "2.20.3" - -"concat-map@0.0.1": - "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - "version" "0.0.1" - -"create-require@^1.1.0": - "integrity" "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - "resolved" "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" - "version" "1.1.1" - -"debug@4.3.2": - "integrity" "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==" - "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz" - "version" "4.3.2" - dependencies: - "ms" "2.1.2" - -"decamelize@^4.0.0": - "integrity" "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==" - "resolved" "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" - "version" "4.0.0" - -"deep-eql@^3.0.1": - "integrity" "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==" - "resolved" "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz" - "version" "3.0.1" - dependencies: - "type-detect" "^4.0.0" - -"diff@^4.0.1": - "integrity" "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" - "resolved" "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" - "version" "4.0.2" - -"diff@5.0.0": - "integrity" "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" - "resolved" "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" - "version" "5.0.0" - -"emoji-regex@^8.0.0": - "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" - "version" "8.0.0" - -"escalade@^3.1.1": - "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - "version" "3.1.1" - -"escape-string-regexp@^1.0.5": - "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - "version" "1.0.5" - -"escape-string-regexp@4.0.0": - "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" - "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - "version" "4.0.0" - -"esprima@^4.0.0": - "integrity" "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - "version" "4.0.1" - -"fast-deep-equal@^3.1.1": - "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - "version" "3.1.3" - -"fill-range@^7.0.1": - "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" - "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - "version" "7.0.1" - dependencies: - "to-regex-range" "^5.0.1" - -"find-up@5.0.0": - "integrity" "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==" - "resolved" "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "locate-path" "^6.0.0" - "path-exists" "^4.0.0" - -"flat@^5.0.2": - "integrity" "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" - "resolved" "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" - "version" "5.0.2" - -"fs.realpath@^1.0.0": - "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - "version" "1.0.0" - -"function-bind@^1.1.1": - "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - "version" "1.1.1" - -"get-caller-file@^2.0.5": - "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" - "version" "2.0.5" - -"get-func-name@^2.0.0": - "integrity" "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" - "resolved" "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz" - "version" "2.0.0" - -"glob-parent@~5.1.2": - "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" - "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - "version" "5.1.2" - dependencies: - "is-glob" "^4.0.1" - -"glob@^7.1.1", "glob@^7.1.7", "glob@7.1.7": - "integrity" "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==" - "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" - "version" "7.1.7" - dependencies: - "fs.realpath" "^1.0.0" - "inflight" "^1.0.4" - "inherits" "2" - "minimatch" "^3.0.4" - "once" "^1.3.0" - "path-is-absolute" "^1.0.0" - -"growl@1.10.5": - "integrity" "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" - "resolved" "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" - "version" "1.10.5" - -"has-flag@^3.0.0": - "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - "version" "3.0.0" - -"has-flag@^4.0.0": - "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - "version" "4.0.0" - -"has@^1.0.3": - "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" - "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - "version" "1.0.3" - dependencies: - "function-bind" "^1.1.1" - -"he@1.2.0": - "integrity" "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - "resolved" "https://registry.npmjs.org/he/-/he-1.2.0.tgz" - "version" "1.2.0" - -"inflight@^1.0.4": - "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" - "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - "version" "1.0.6" - dependencies: - "once" "^1.3.0" - "wrappy" "1" - -"inherits@2": - "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - "version" "2.0.4" - -"is-binary-path@~2.1.0": - "integrity" "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==" - "resolved" "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - "version" "2.1.0" - dependencies: - "binary-extensions" "^2.0.0" - -"is-core-module@^2.2.0": - "integrity" "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==" - "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz" - "version" "2.6.0" - dependencies: - "has" "^1.0.3" - -"is-extglob@^2.1.1": - "integrity" "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - "version" "2.1.1" - -"is-fullwidth-code-point@^3.0.0": - "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" - "version" "3.0.0" - -"is-glob@^4.0.1", "is-glob@~4.0.1": - "integrity" "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==" - "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" - "version" "4.0.1" - dependencies: - "is-extglob" "^2.1.1" - -"is-number@^7.0.0": - "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - "version" "7.0.0" - -"is-plain-obj@^2.1.0": - "integrity" "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" - "resolved" "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" - "version" "2.1.0" - -"is-unicode-supported@^0.1.0": - "integrity" "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" - "resolved" "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" - "version" "0.1.0" - -"isexe@^2.0.0": - "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - "version" "2.0.0" - -"js-tokens@^4.0.0": - "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - "version" "4.0.0" - -"js-yaml@^3.13.1": - "integrity" "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==" - "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - "version" "3.14.1" - dependencies: - "argparse" "^1.0.7" - "esprima" "^4.0.0" - -"js-yaml@4.1.0": - "integrity" "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==" - "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - "version" "4.1.0" - dependencies: - "argparse" "^2.0.1" - -"json-schema-traverse@^1.0.0": - "integrity" "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" - "version" "1.0.0" - -"locate-path@^6.0.0": - "integrity" "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==" - "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" - "version" "6.0.0" - dependencies: - "p-locate" "^5.0.0" - -"log-symbols@4.1.0": - "integrity" "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==" - "resolved" "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" - "version" "4.1.0" - dependencies: - "chalk" "^4.1.0" - "is-unicode-supported" "^0.1.0" + fsevents "~2.3.2" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +commander@^2.12.1: + version "2.20.3" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +debug@4.3.2: + version "4.3.2" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +deep-eql@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== + dependencies: + type-detect "^4.0.0" + +diff@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@7.1.7, glob@^7.1.1, glob@^7.1.7: + version "7.1.7" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +growl@1.10.5: + version "1.10.5" + resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +he@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-core-module@^2.2.0: + version "2.6.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz" + integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== + dependencies: + has "^1.0.3" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +log-symbols@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" -"make-error@^1.1.1": - "integrity" "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - "resolved" "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" - "version" "1.3.6" - -"minimatch@^3.0.4", "minimatch@3.0.4": - "integrity" "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" - "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" - "version" "3.0.4" - dependencies: - "brace-expansion" "^1.1.7" +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +minimatch@3.0.4, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" -"minimist@^1.2.5": - "integrity" "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" - "version" "1.2.5" - -"mkdirp@^0.5.3": - "integrity" "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==" - "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" - "version" "0.5.5" - dependencies: - "minimist" "^1.2.5" - -"mocha@^9.1.3": - "integrity" "sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw==" - "resolved" "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz" - "version" "9.1.3" +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mkdirp@^0.5.3: + version "0.5.5" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mocha@^9.1.3: + version "9.1.3" + resolved "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz" + integrity sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw== dependencies: "@ungap/promise-all-settled" "1.1.2" - "ansi-colors" "4.1.1" - "browser-stdout" "1.3.1" - "chokidar" "3.5.2" - "debug" "4.3.2" - "diff" "5.0.0" - "escape-string-regexp" "4.0.0" - "find-up" "5.0.0" - "glob" "7.1.7" - "growl" "1.10.5" - "he" "1.2.0" - "js-yaml" "4.1.0" - "log-symbols" "4.1.0" - "minimatch" "3.0.4" - "ms" "2.1.3" - "nanoid" "3.1.25" - "serialize-javascript" "6.0.0" - "strip-json-comments" "3.1.1" - "supports-color" "8.1.1" - "which" "2.0.2" - "workerpool" "6.1.5" - "yargs" "16.2.0" - "yargs-parser" "20.2.4" - "yargs-unparser" "2.0.0" - -"ms@2.1.2": - "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - "version" "2.1.2" - -"ms@2.1.3": - "integrity" "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - "version" "2.1.3" - -"nanoid@3.1.25": - "integrity" "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==" - "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz" - "version" "3.1.25" - -"normalize-path@^3.0.0", "normalize-path@~3.0.0": - "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - "version" "3.0.0" - -"once@^1.3.0": - "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" - "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - "version" "1.4.0" - dependencies: - "wrappy" "1" - -"p-limit@^3.0.2": - "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" - "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "yocto-queue" "^0.1.0" - -"p-locate@^5.0.0": - "integrity" "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==" - "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "p-limit" "^3.0.2" - -"path-equal@^1.2.5": - "integrity" "sha512-i73IctDr3F2W+bsOWDyyVm/lqsXO47aY9nsFZUjTT/aljSbkxHxxCoyZ9UUrM8jK0JVod+An+rl48RCsvWM+9g==" - "resolved" "https://registry.yarnpkg.com/path-equal/-/path-equal-1.2.5.tgz#9fcbdd5e5daee448e96f43f3bac06c666b5e982a" - "version" "1.2.5" - -"path-exists@^4.0.0": - "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - "version" "4.0.0" - -"path-is-absolute@^1.0.0": - "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - "version" "1.0.1" - -"path-parse@^1.0.6": - "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - "version" "1.0.7" - -"pathval@^1.1.1": - "integrity" "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" - "resolved" "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" - "version" "1.1.1" - -"picomatch@^2.0.4", "picomatch@^2.2.1": - "integrity" "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" - "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" - "version" "2.3.0" - -"prettier@^2.4.1": - "integrity" "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==" - "resolved" "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz" - "version" "2.4.1" - -"punycode@^2.1.0": - "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" - "version" "2.1.1" - -"randombytes@^2.1.0": - "integrity" "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==" - "resolved" "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" - "version" "2.1.0" - dependencies: - "safe-buffer" "^5.1.0" - -"readdirp@~3.6.0": - "integrity" "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==" - "resolved" "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" - "version" "3.6.0" - dependencies: - "picomatch" "^2.2.1" - -"require-directory@^2.1.1": - "integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" - "version" "2.1.1" - -"require-from-string@^2.0.2": - "integrity" "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - "resolved" "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" - "version" "2.0.2" - -"resolve@^1.3.2": - "integrity" "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==" - "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" - "version" "1.20.0" - dependencies: - "is-core-module" "^2.2.0" - "path-parse" "^1.0.6" - -"safe-buffer@^5.1.0": - "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - "version" "5.2.1" - -"safe-stable-stringify@^2.2.0": - "integrity" "sha512-C6AuMdYPuPV/P1leplHNu0lgc2LAElq/g3TdoksDCIVtBhr78o/CH03bt/9SKqugFbKU9CUjsNlCu0fjtQzQUw==" - "resolved" "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.2.0.tgz" - "version" "2.2.0" - -"semver@^5.3.0": - "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - "version" "5.7.1" - -"serialize-javascript@6.0.0": - "integrity" "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==" - "resolved" "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" - "version" "6.0.0" - dependencies: - "randombytes" "^2.1.0" - -"source-map-support@^0.5.20": - "integrity" "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==" - "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz" - "version" "0.5.20" - dependencies: - "buffer-from" "^1.0.0" - "source-map" "^0.6.0" - -"source-map@^0.6.0": - "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - "version" "0.6.1" - -"sprintf-js@~1.0.2": - "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - "version" "1.0.3" - -"string-width@^4.1.0", "string-width@^4.2.0": - "integrity" "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz" - "version" "4.2.2" - dependencies: - "emoji-regex" "^8.0.0" - "is-fullwidth-code-point" "^3.0.0" - "strip-ansi" "^6.0.0" - -"strip-ansi@^6.0.0": - "integrity" "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==" - "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" - "version" "6.0.0" - dependencies: - "ansi-regex" "^5.0.0" + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.2" + debug "4.3.2" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.1.7" + growl "1.10.5" + he "1.2.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "3.0.4" + ms "2.1.3" + nanoid "3.1.25" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" + which "2.0.2" + workerpool "6.1.5" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nanoid@3.1.25: + version "3.1.25" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz" + integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +path-equal@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/path-equal/-/path-equal-1.2.5.tgz#9fcbdd5e5daee448e96f43f3bac06c666b5e982a" + integrity sha512-i73IctDr3F2W+bsOWDyyVm/lqsXO47aY9nsFZUjTT/aljSbkxHxxCoyZ9UUrM8jK0JVod+An+rl48RCsvWM+9g== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-parse@^1.0.6: + version "1.0.7" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.0" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + +prettier@^2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz" + integrity sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA== + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +resolve@^1.3.2: + version "1.20.0" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +safe-buffer@^5.1.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-stable-stringify@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.2.0.tgz" + integrity sha512-C6AuMdYPuPV/P1leplHNu0lgc2LAElq/g3TdoksDCIVtBhr78o/CH03bt/9SKqugFbKU9CUjsNlCu0fjtQzQUw== + +semver@^5.3.0: + version "5.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +serialize-javascript@6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +source-map-support@^0.5.20: + version "0.5.20" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz" + integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.2" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz" + integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" -"strip-json-comments@3.1.1": - "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" - "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" - "version" "3.1.1" +strip-json-comments@3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -"supports-color@^5.3.0": - "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - "version" "5.5.0" +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: - "has-flag" "^3.0.0" + has-flag "^4.0.0" -"supports-color@^7.1.0": - "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - "version" "7.2.0" +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: - "has-flag" "^4.0.0" + has-flag "^3.0.0" -"supports-color@8.1.1": - "integrity" "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - "version" "8.1.1" +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: - "has-flag" "^4.0.0" + has-flag "^4.0.0" -"to-regex-range@^5.0.1": - "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" - "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - "version" "5.0.1" +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: - "is-number" "^7.0.0" + is-number "^7.0.0" -"ts-node@^10.9.1": - "integrity" "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==" - "resolved" "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz" - "version" "10.9.1" +ts-node@^10.9.1: + version "10.9.1" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== dependencies: "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" "@tsconfig/node12" "^1.0.7" "@tsconfig/node14" "^1.0.0" "@tsconfig/node16" "^1.0.2" - "acorn" "^8.4.1" - "acorn-walk" "^8.1.1" - "arg" "^4.1.0" - "create-require" "^1.1.0" - "diff" "^4.0.1" - "make-error" "^1.1.1" - "v8-compile-cache-lib" "^3.0.1" - "yn" "3.1.1" - -"tslib@^1.13.0", "tslib@^1.8.1": - "integrity" "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" - "version" "1.14.1" - -"tslint@^6.1.3": - "integrity" "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==" - "resolved" "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz" - "version" "6.1.3" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tslib@^1.13.0, tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslint@^6.1.3: + version "6.1.3" + resolved "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz" + integrity sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg== dependencies: "@babel/code-frame" "^7.0.0" - "builtin-modules" "^1.1.1" - "chalk" "^2.3.0" - "commander" "^2.12.1" - "diff" "^4.0.1" - "glob" "^7.1.1" - "js-yaml" "^3.13.1" - "minimatch" "^3.0.4" - "mkdirp" "^0.5.3" - "resolve" "^1.3.2" - "semver" "^5.3.0" - "tslib" "^1.13.0" - "tsutils" "^2.29.0" - -"tsutils@^2.29.0": - "integrity" "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==" - "resolved" "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz" - "version" "2.29.0" - dependencies: - "tslib" "^1.8.1" - -"type-detect@^4.0.0", "type-detect@^4.0.5": - "integrity" "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" - "resolved" "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" - "version" "4.0.8" - -"typescript@>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev", "typescript@>=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev", "typescript@>=2.7", "typescript@~4.9.5": - "integrity" "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==" - "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" - "version" "4.9.5" - -"uri-js@^4.2.2": - "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==" - "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - "version" "4.4.1" - dependencies: - "punycode" "^2.1.0" - -"v8-compile-cache-lib@^3.0.1": - "integrity" "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" - "resolved" "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" - "version" "3.0.1" - -"which@2.0.2": - "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" - "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - "version" "2.0.2" - dependencies: - "isexe" "^2.0.0" - -"workerpool@6.1.5": - "integrity" "sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==" - "resolved" "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz" - "version" "6.1.5" - -"wrap-ansi@^7.0.0": - "integrity" "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==" - "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" - "version" "7.0.0" - dependencies: - "ansi-styles" "^4.0.0" - "string-width" "^4.1.0" - "strip-ansi" "^6.0.0" - -"wrappy@1": - "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - "version" "1.0.2" - -"y18n@^5.0.5": - "integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" - "version" "5.0.8" - -"yargs-parser@^20.2.2", "yargs-parser@20.2.4": - "integrity" "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==" - "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" - "version" "20.2.4" - -"yargs-unparser@2.0.0": - "integrity" "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==" - "resolved" "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "camelcase" "^6.0.0" - "decamelize" "^4.0.0" - "flat" "^5.0.2" - "is-plain-obj" "^2.1.0" - -"yargs@^17.1.1": - "integrity" "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==" - "resolved" "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz" - "version" "17.1.1" - dependencies: - "cliui" "^7.0.2" - "escalade" "^3.1.1" - "get-caller-file" "^2.0.5" - "require-directory" "^2.1.1" - "string-width" "^4.2.0" - "y18n" "^5.0.5" - "yargs-parser" "^20.2.2" - -"yargs@16.2.0": - "integrity" "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==" - "resolved" "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" - "version" "16.2.0" - dependencies: - "cliui" "^7.0.2" - "escalade" "^3.1.1" - "get-caller-file" "^2.0.5" - "require-directory" "^2.1.1" - "string-width" "^4.2.0" - "y18n" "^5.0.5" - "yargs-parser" "^20.2.2" - -"yn@3.1.1": - "integrity" "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" - "resolved" "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" - "version" "3.1.1" - -"yocto-queue@^0.1.0": - "integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" - "resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" - "version" "0.1.0" + builtin-modules "^1.1.1" + chalk "^2.3.0" + commander "^2.12.1" + diff "^4.0.1" + glob "^7.1.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + mkdirp "^0.5.3" + resolve "^1.3.2" + semver "^5.3.0" + tslib "^1.13.0" + tsutils "^2.29.0" + +tsutils@^2.29.0: + version "2.29.0" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz" + integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== + dependencies: + tslib "^1.8.1" + +type-detect@^4.0.0, type-detect@^4.0.5: + version "4.0.8" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +typescript@~4.9.5: + version "4.9.5" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +which@2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +workerpool@6.1.5: + version "6.1.5" + resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz" + integrity sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yargs-parser@20.2.4, yargs-parser@^20.2.2: + version "20.2.4" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@16.2.0: + version "16.2.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yargs@^17.1.1: + version "17.1.1" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz" + integrity sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From e483c33c04571dab87c077e55f27da9bb75feca4 Mon Sep 17 00:00:00 2001 From: Robin Mehner Date: Wed, 24 May 2023 18:29:46 +0200 Subject: [PATCH 10/60] Update Api Docs with newest version created by `yarn docs` (#545) --- api.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/api.md b/api.md index 0a16ad23..ad2e5384 100644 --- a/api.md +++ b/api.md @@ -230,13 +230,20 @@ interface MySubObject { a: boolean; } +interface AnotherSubObject { + b: boolean; +} + interface MyObject { /** * @title empty# */ empty; - + /** + * @title filled + */ filled: MySubObject; + nonTitled: AnotherSubObject; } ``` From 3f776fce4113595787dd35ab569e861fddea93ea Mon Sep 17 00:00:00 2001 From: netanel david <109151575+netanel-mce@users.noreply.github.com> Date: Mon, 5 Jun 2023 05:03:55 +0300 Subject: [PATCH 11/60] Compatibility to draft 07 (#537) * compatibility to draft 07 * undefined and symbol test * skip validation * update docs * undefined main type test * better handling at enum value * remove unnecessary changes * remove unnecessary changes * fix error type * remove unnecessary changes * remove unnecessary changes * remove unnecessary changes * disable switch * unit test * ignore undefined * check if incloud undefined or void for requierd * never * Revert "never" This reverts commit ac039da28386a0eaafc9063856c566d476360c6d. * type-alias-never * update docs * type-alias-never * readme * remove unnecessary changes --------- Co-authored-by: netanel-mce --- api.md | 33 ++++++ test/programs/symbol/main.ts | 3 + test/programs/symbol/schema.json | 12 ++ test/programs/type-alias-never/main.ts | 1 + test/programs/type-alias-never/schema.json | 1 + test/programs/type-alias-undefined/main.ts | 1 + .../programs/type-alias-undefined/schema.json | 1 + test/programs/undefined-property/main.ts | 4 + test/programs/undefined-property/schema.json | 12 ++ test/schema.test.ts | 38 +++--- typescript-json-schema.ts | 111 ++++++++++-------- 11 files changed, 153 insertions(+), 64 deletions(-) create mode 100644 test/programs/symbol/main.ts create mode 100644 test/programs/symbol/schema.json create mode 100644 test/programs/type-alias-never/main.ts create mode 100644 test/programs/type-alias-never/schema.json create mode 100644 test/programs/type-alias-undefined/main.ts create mode 100644 test/programs/type-alias-undefined/schema.json create mode 100644 test/programs/undefined-property/main.ts create mode 100644 test/programs/undefined-property/schema.json diff --git a/api.md b/api.md index ad2e5384..2e4e6e3a 100644 --- a/api.md +++ b/api.md @@ -1386,6 +1386,15 @@ class MyObject { ``` +## [symbol](./test/programs/symbol) + +```ts +export type MyObject = { + a: symbol; +}; +``` + + ## [tsconfig](./test/programs/tsconfig) ```ts @@ -1419,6 +1428,13 @@ export interface IncludedOnlyByTsConfig { ``` +## [type-alias-never](./test/programs/type-alias-never) + +```ts +export type MyNever = never; +``` + + ## [type-alias-or](./test/programs/type-alias-or) ```ts @@ -1466,6 +1482,13 @@ type MyString = string; ``` +## [type-alias-undefined](./test/programs/type-alias-undefined) + +```ts +export type MyUndefined = undefined; +``` + + ## [type-aliases](./test/programs/type-aliases) ```ts @@ -2008,6 +2031,16 @@ interface MyObject { ``` +## [undefined-property](./test/programs/undefined-property) + +```ts +export type MyObject = { + a: string; + b: undefined; +}; +``` + + ## [unique-names](./test/programs/unique-names) ```ts diff --git a/test/programs/symbol/main.ts b/test/programs/symbol/main.ts new file mode 100644 index 00000000..cfc7904d --- /dev/null +++ b/test/programs/symbol/main.ts @@ -0,0 +1,3 @@ +export type MyObject = { + a: symbol; +}; diff --git a/test/programs/symbol/schema.json b/test/programs/symbol/schema.json new file mode 100644 index 00000000..104b35a0 --- /dev/null +++ b/test/programs/symbol/schema.json @@ -0,0 +1,12 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": { + "a": { + "type": "object" + } + }, + "required": [ + "a" + ] +} \ No newline at end of file diff --git a/test/programs/type-alias-never/main.ts b/test/programs/type-alias-never/main.ts new file mode 100644 index 00000000..38604b53 --- /dev/null +++ b/test/programs/type-alias-never/main.ts @@ -0,0 +1 @@ +export type MyNever = never; diff --git a/test/programs/type-alias-never/schema.json b/test/programs/type-alias-never/schema.json new file mode 100644 index 00000000..2481e112 --- /dev/null +++ b/test/programs/type-alias-never/schema.json @@ -0,0 +1 @@ +"Creating a schema for alias of never will fail" \ No newline at end of file diff --git a/test/programs/type-alias-undefined/main.ts b/test/programs/type-alias-undefined/main.ts new file mode 100644 index 00000000..dba9eea5 --- /dev/null +++ b/test/programs/type-alias-undefined/main.ts @@ -0,0 +1 @@ +export type MyUndefined = undefined; diff --git a/test/programs/type-alias-undefined/schema.json b/test/programs/type-alias-undefined/schema.json new file mode 100644 index 00000000..102f279d --- /dev/null +++ b/test/programs/type-alias-undefined/schema.json @@ -0,0 +1 @@ +"Creating a schema for alias of undefined will fail" \ No newline at end of file diff --git a/test/programs/undefined-property/main.ts b/test/programs/undefined-property/main.ts new file mode 100644 index 00000000..2a684d7c --- /dev/null +++ b/test/programs/undefined-property/main.ts @@ -0,0 +1,4 @@ +export type MyObject = { + a: string; + b: undefined; +}; diff --git a/test/programs/undefined-property/schema.json b/test/programs/undefined-property/schema.json new file mode 100644 index 00000000..cdcaaec7 --- /dev/null +++ b/test/programs/undefined-property/schema.json @@ -0,0 +1,12 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": { + "a": { + "type": "string" + } + }, + "required": [ + "a" + ] +} \ No newline at end of file diff --git a/test/schema.test.ts b/test/schema.test.ts index 42511ed9..da9c7b79 100644 --- a/test/schema.test.ts +++ b/test/schema.test.ts @@ -59,7 +59,6 @@ export function assertSchema( // test against the meta schema if (actual !== null) { ajv.validateSchema(actual); - assert.equal(ajv.errors, null, "The schema is not valid"); // Compiling the schema can reveal warnings that validateSchema doesn't. @@ -113,7 +112,8 @@ export function assertRejection( group: string, type: string, settings: TJS.PartialArgs = {}, - compilerOptions?: TJS.CompilerOptions + compilerOptions?: TJS.CompilerOptions, + errType?: RegExp | ErrorConstructor, ) { it(group + " should reject input", () => { let schema = null; @@ -124,7 +124,7 @@ export function assertRejection( const files = [resolve(BASE + group + "/main.ts")]; schema = TJS.generateSchema(TJS.getProgramFromFiles(files, compilerOptions), type, settings, files); - }); + }, errType || /.*/); assert.equal(schema, null, "Expected no schema to be generated"); }); } @@ -241,6 +241,7 @@ describe("schema", () => { */ assertSchema("type-aliases-tuple-of-variable-length", "MyTuple"); assertSchema("type-aliases-tuple-with-rest-element", "MyTuple"); + assertRejection("type-alias-never", "MyNever", {}, {}, /Unsupported type: never/); }); describe("enums", () => { @@ -393,6 +394,13 @@ describe("schema", () => { }); }); + describe("undefined", () => { + assertSchema("undefined-property", "MyObject"); + + // Creating a schema for main type = undefined should fail + assertRejection("type-alias-undefined", "MyUndefined", undefined, undefined, /Not supported: root type undefined/); + }); + describe("other", () => { assertSchema("array-and-description", "MyObject"); @@ -424,6 +432,8 @@ describe("schema", () => { }); assertSchema("prop-override", "MyObject"); + + assertSchema("symbol", "MyObject"); }); describe("object index", () => { @@ -479,21 +489,21 @@ describe("Functionality 'required' in annotation", () => { }); describe("when reusing a generator", () => { - it("should not add unrelated definitions to schemas", () => { - // regression test for https://github.com/YousefED/typescript-json-schema/issues/465 - const testProgramPath = BASE + "no-unrelated-definitions/"; - const program = TJS.programFromConfig(resolve(testProgramPath + "tsconfig.json")); - const generator = TJS.buildGenerator(program); + it("should not add unrelated definitions to schemas", () => { + // regression test for https://github.com/YousefED/typescript-json-schema/issues/465 + const testProgramPath = BASE + "no-unrelated-definitions/"; + const program = TJS.programFromConfig(resolve(testProgramPath + "tsconfig.json")); + const generator = TJS.buildGenerator(program); - ["MyObject", "MyOtherObject"].forEach(symbolName => { - const expectedSchemaString = readFileSync(testProgramPath + `schema.${symbolName}.json`, "utf8"); - const expectedSchemaObject = JSON.parse(expectedSchemaString); + ["MyObject", "MyOtherObject"].forEach(symbolName => { + const expectedSchemaString = readFileSync(testProgramPath + `schema.${symbolName}.json`, "utf8"); + const expectedSchemaObject = JSON.parse(expectedSchemaString); - const actualSchemaObject = generator?.getSchemaForSymbol(symbolName); + const actualSchemaObject = generator?.getSchemaForSymbol(symbolName); - assert.deepEqual(actualSchemaObject, expectedSchemaObject, `The schema for ${symbolName} is not as expected`); + assert.deepEqual(actualSchemaObject, expectedSchemaObject, `The schema for ${symbolName} is not as expected`); + }); }); - }); }); describe("satisfies keyword - ignore from a \"satisfies\" and build by rally type", () => { diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index 97b0e278..43d94eda 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -3,7 +3,7 @@ import { stringify } from "safe-stable-stringify"; import * as path from "path"; import { createHash } from "crypto"; import * as ts from "typescript"; -import { JSONSchema7 } from "json-schema"; +import { JSONSchema7, JSONSchema7TypeName } from "json-schema"; import { pathEqual } from "path-equal"; export { Program, CompilerOptions, Symbol } from "typescript"; @@ -97,7 +97,6 @@ export type PrimitiveType = number | boolean | string | null; type MetaDefinitionFields = "ignore"; type RedefinedFields = - | "type" | "items" | "additionalItems" | "contains" @@ -116,9 +115,6 @@ type RedefinedFields = | "definitions"; export type DefinitionOrBoolean = Definition | boolean; export interface Definition extends Omit { - // The type field here is incompatible with the standard definition - type?: string | string[]; - // Non-standard fields propertyOrder?: string[]; defaultProperties?: string[]; @@ -291,7 +287,7 @@ const simpleTypesAllowedProperties = { description: true, }; -function addSimpleType(def: Definition, type: string): boolean { +function addSimpleType(def: Definition, type: JSONSchema7TypeName): boolean { for (const k in def) { if (!simpleTypesAllowedProperties[k]) { return false; @@ -635,7 +631,8 @@ export class JsonSchemaGenerator { propertyType: ts.Type, reffedType: ts.Symbol, definition: Definition, - defaultNumberType = this.args.defaultNumberType + defaultNumberType = this.args.defaultNumberType, + ignoreUndefined = false, ): Definition { const tupleType = resolveTupleType(propertyType); @@ -675,11 +672,15 @@ export class JsonSchemaGenerator { } else if (flags & ts.TypeFlags.Boolean) { definition.type = "boolean"; } else if (flags & ts.TypeFlags.ESSymbol) { - definition.type = "symbol"; + definition.type = "object"; } else if (flags & ts.TypeFlags.Null) { definition.type = "null"; } else if (flags & ts.TypeFlags.Undefined || propertyTypeString === "void") { - definition.type = "undefined"; + if (!ignoreUndefined) { + throw new Error("Not supported: root type undefined"); + } + // will be deleted + definition.type = "undefined" as any; } else if (flags & ts.TypeFlags.Any || flags & ts.TypeFlags.Unknown) { // no type restriction, so that anything will match } else if (propertyTypeString === "Date" && !this.args.rejectDateType) { @@ -692,7 +693,22 @@ export class JsonSchemaGenerator { } else { const value = extractLiteralValue(propertyType); if (value !== undefined) { - definition.type = typeof value; + // typeof value can be: "string", "boolean", "number", or "object" if value is null + const typeofValue = typeof value; + switch (typeofValue) { + case "string": + case "boolean": + definition.type = typeofValue; + break; + case "number": + definition.type = this.args.defaultNumberType; + break; + case "object": + definition.type = "null"; + break; + default: + throw new Error(`Not supported: ${value} as a enum value`); + } definition.const = value; } else if (arrayType !== undefined) { if ( @@ -806,9 +822,9 @@ export class JsonSchemaGenerator { ? (node as ts.EnumDeclaration).members : ts.factory.createNodeArray([node as ts.EnumMember]); var enumValues: (number | boolean | string | null)[] = []; - const enumTypes: string[] = []; + const enumTypes: JSONSchema7TypeName[] = []; - const addType = (type: string) => { + const addType = (type: JSONSchema7TypeName) => { if (enumTypes.indexOf(type) === -1) { enumTypes.push(type); } @@ -819,7 +835,7 @@ export class JsonSchemaGenerator { const constantValue = this.tc.getConstantValue(member); if (constantValue !== undefined) { enumValues.push(constantValue); - addType(typeof constantValue); + addType(typeof constantValue as JSONSchema7TypeName); // can be only string or number; } else { // try to extract the enums value; it will probably by a cast expression const initial: ts.Expression | undefined = member.initializer; @@ -867,15 +883,14 @@ export class JsonSchemaGenerator { private getUnionDefinition( unionType: ts.UnionType, - prop: ts.Symbol, unionModifier: string, definition: Definition ): Definition { const enumValues: PrimitiveType[] = []; - const simpleTypes: string[] = []; + const simpleTypes: JSONSchema7TypeName[] = []; const schemas: Definition[] = []; - const pushSimpleType = (type: string) => { + const pushSimpleType = (type: JSONSchema7TypeName) => { if (simpleTypes.indexOf(type) === -1) { simpleTypes.push(type); } @@ -893,22 +908,19 @@ export class JsonSchemaGenerator { pushEnumValue(value); } else { const symbol = valueType.aliasSymbol; - const def = this.getTypeDefinition(valueType, undefined, undefined, symbol, symbol); - if (def.type === "undefined") { - if (prop) { - (prop).mayBeUndefined = true; - } - } else { - const keys = Object.keys(def); - if (keys.length === 1 && keys[0] === "type") { - if (typeof def.type !== "string") { - console.error("Expected only a simple type."); - } else { - pushSimpleType(def.type); - } + const def = this.getTypeDefinition(valueType, undefined, undefined, symbol, symbol, undefined, undefined, true); + if (def.type === "undefined" as any) { + continue; + } + const keys = Object.keys(def); + if (keys.length === 1 && keys[0] === "type") { + if (typeof def.type !== "string") { + console.error("Expected only a simple type."); } else { - schemas.push(def); + pushSimpleType(def.type); } + } else { + schemas.push(def); } } } @@ -968,10 +980,10 @@ export class JsonSchemaGenerator { } private getIntersectionDefinition(intersectionType: ts.IntersectionType, definition: Definition): Definition { - const simpleTypes: string[] = []; + const simpleTypes: JSONSchema7TypeName[] = []; const schemas: Definition[] = []; - const pushSimpleType = (type: string) => { + const pushSimpleType = (type: JSONSchema7TypeName) => { if (simpleTypes.indexOf(type) === -1) { simpleTypes.push(type); } @@ -979,19 +991,15 @@ export class JsonSchemaGenerator { for (const intersectionMember of intersectionType.types) { const def = this.getTypeDefinition(intersectionMember); - if (def.type === "undefined") { - console.error("Undefined in intersection makes no sense."); - } else { - const keys = Object.keys(def); - if (keys.length === 1 && keys[0] === "type") { - if (typeof def.type !== "string") { - console.error("Expected only a simple type."); - } else { - pushSimpleType(def.type); - } + const keys = Object.keys(def); + if (keys.length === 1 && keys[0] === "type") { + if (typeof def.type !== "string") { + console.error("Expected only a simple type."); } else { - schemas.push(def); + pushSimpleType(def.type); } + } else { + schemas.push(def); } } @@ -1027,9 +1035,9 @@ export class JsonSchemaGenerator { const clazz = node; const props = this.tc.getPropertiesOfType(clazzType).filter((prop) => { - // filter never - const propertyType = this.tc.getTypeOfSymbolAtLocation(prop, node); - if (ts.TypeFlags.Never === propertyType.getFlags()) { + // filter never and undefined + const propertyFlagType = this.tc.getTypeOfSymbolAtLocation(prop, node).getFlags(); + if (ts.TypeFlags.Never === propertyFlagType || ts.TypeFlags.Undefined === propertyFlagType) { return false; } if (!this.args.excludePrivate) { @@ -1142,10 +1150,12 @@ export class JsonSchemaGenerator { const requiredProps = props.reduce((required: string[], prop: ts.Symbol) => { const def = {}; this.parseCommentsIntoDefinition(prop, def, {}); + const allUnionTypesFlags: number[] = (prop).type?.types?.map?.((t: any) => t.flags) || []; if ( !(prop.flags & ts.SymbolFlags.Optional) && !(prop.flags & ts.SymbolFlags.Method) && - !(prop).mayBeUndefined && + !allUnionTypesFlags.includes(ts.TypeFlags.Undefined) && + !allUnionTypesFlags.includes(ts.TypeFlags.Void) && !def.hasOwnProperty("ignore") ) { required.push(prop.getName()); @@ -1206,7 +1216,8 @@ export class JsonSchemaGenerator { prop?: ts.Symbol, reffedType?: ts.Symbol, pairedSymbol?: ts.Symbol, - forceNotRef: boolean = false + forceNotRef: boolean = false, + ignoreUndefined = false, ): Definition { const definition: Definition = {}; // real definition @@ -1359,7 +1370,7 @@ export class JsonSchemaGenerator { if (definition.type === undefined) { // if users override the type, do not try to infer it if (typ.flags & ts.TypeFlags.Union) { - this.getUnionDefinition(typ as ts.UnionType, prop!, unionModifier, definition); + this.getUnionDefinition(typ as ts.UnionType, unionModifier, definition); } else if (typ.flags & ts.TypeFlags.Intersection) { if (this.args.noExtraProps) { // extend object instead of using allOf because allOf does not work well with additional properties. See #107 @@ -1390,7 +1401,7 @@ export class JsonSchemaGenerator { if (pairedSymbol) { this.parseCommentsIntoDefinition(pairedSymbol, definition, {}); } - this.getDefinitionForRootType(typ, reffedType!, definition); + this.getDefinitionForRootType(typ, reffedType!, definition, undefined, ignoreUndefined); } else if ( node && (node.kind === ts.SyntaxKind.EnumDeclaration || node.kind === ts.SyntaxKind.EnumMember) From f4803864083c9888fccfef5039daa4a4792965f2 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Sun, 4 Jun 2023 22:06:52 -0400 Subject: [PATCH 12/60] ci: update actions (#531) --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a769cbe3..0e6113e7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,8 +10,8 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 - run: yarn --frozen-lockfile - name: Lint run: yarn lint From b3ea0a08b87967f1862a57499e185ab61dc9c2d5 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Sun, 4 Jun 2023 22:10:20 -0400 Subject: [PATCH 13/60] v0.57.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 09328cb2..5a58649a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json-schema", - "version": "0.56.0", + "version": "0.57.0", "description": "typescript-json-schema generates JSON Schema files from your Typescript sources", "main": "dist/typescript-json-schema.js", "typings": "dist/typescript-json-schema.d.ts", From 94293e74ce30adee63d27216cb3b2c515e1276b9 Mon Sep 17 00:00:00 2001 From: Olof Dahlbom Date: Thu, 8 Jun 2023 15:58:47 +0200 Subject: [PATCH 14/60] Remove check for !forceNotRef (#549) --- test/programs/no-ref/main.ts | 9 +++++++ test/programs/no-ref/schema.json | 41 ++++++++++++++++++++++++++++++++ test/schema.test.ts | 9 +++++++ typescript-json-schema.ts | 2 +- 4 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 test/programs/no-ref/main.ts create mode 100644 test/programs/no-ref/schema.json diff --git a/test/programs/no-ref/main.ts b/test/programs/no-ref/main.ts new file mode 100644 index 00000000..ee048861 --- /dev/null +++ b/test/programs/no-ref/main.ts @@ -0,0 +1,9 @@ +type MySubType = { + id: string; +}; + +export type MyModule = { + address: MySubType & { extraProp: number }; + address2: MySubType; + address3: MySubType; +}; diff --git a/test/programs/no-ref/schema.json b/test/programs/no-ref/schema.json new file mode 100644 index 00000000..ce7e65c0 --- /dev/null +++ b/test/programs/no-ref/schema.json @@ -0,0 +1,41 @@ +{ + "type": "object", + "properties": { + "address": { + "additionalProperties": false, + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "extraProp": { + "type": "number" + } + }, + "required": ["extraProp", "id"] + }, + "address2": { + "additionalProperties": false, + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": ["id"] + }, + "address3": { + "additionalProperties": false, + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": ["id"] + } + }, + "additionalProperties": false, + "required": ["address", "address2", "address3"], + "$schema": "http://json-schema.org/draft-07/schema#" +} diff --git a/test/schema.test.ts b/test/schema.test.ts index da9c7b79..07b03ea2 100644 --- a/test/schema.test.ts +++ b/test/schema.test.ts @@ -266,6 +266,15 @@ describe("schema", () => { }); }); + describe("no-refs", () => { + assertSchema("no-ref", "MyModule", { + ref: false, + aliasRef: false, + topRef: false, + noExtraProps: true, + }); + }); + describe("annotations", () => { assertSchema("annotation-default", "MyObject"); assertSchema("annotation-ref", "MyObject", {}, undefined, undefined, { diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index 43d94eda..102bdc40 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -1422,7 +1422,7 @@ export class JsonSchemaGenerator { } } - if (this.recursiveTypeRef.get(fullTypeName) === definition && !forceNotRef) { + if (this.recursiveTypeRef.get(fullTypeName) === definition) { this.recursiveTypeRef.delete(fullTypeName); // If the type was recursive (there is reffedDefinitions) - lets replace it to reference if (this.reffedDefinitions[fullTypeName]) { From 9e7804ab6b3d9971014a8f48027a09968ad68e85 Mon Sep 17 00:00:00 2001 From: Josh Watzman Date: Fri, 9 Jun 2023 14:50:39 +0100 Subject: [PATCH 15/60] Single union case shouldn't overwrite existing properties (#550) In the case of a single union, we were just copying all properties across. This can overwrite a pre-existing field, in particular a more-specific description that has been specified on some including type. This came up in a project where enabling `strictNullChecks` caused a bunch of descriptions to change for seemingly no reason. --- .../main.ts | 22 ++++++++++++ .../schema.json | 34 +++++++++++++++++++ test/schema.test.ts | 3 ++ typescript-json-schema.ts | 2 +- 4 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 test/programs/type-union-strict-null-keep-description/main.ts create mode 100644 test/programs/type-union-strict-null-keep-description/schema.json diff --git a/test/programs/type-union-strict-null-keep-description/main.ts b/test/programs/type-union-strict-null-keep-description/main.ts new file mode 100644 index 00000000..331be151 --- /dev/null +++ b/test/programs/type-union-strict-null-keep-description/main.ts @@ -0,0 +1,22 @@ +/** + * Description of InnerObject. + */ +type InnerObject = { + /** + * Description of foo. + */ + foo: string; +}; + +/** + * Description of MyObject. + */ +type MyObject = { + + inner1?: InnerObject; + + /** + * Override description. + */ + inner2?: InnerObject; +}; diff --git a/test/programs/type-union-strict-null-keep-description/schema.json b/test/programs/type-union-strict-null-keep-description/schema.json new file mode 100644 index 00000000..c20d5ed4 --- /dev/null +++ b/test/programs/type-union-strict-null-keep-description/schema.json @@ -0,0 +1,34 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Description of MyObject.", + "properties": { + "inner1": { + "description": "Description of InnerObject.", + "properties": { + "foo": { + "description": "Description of foo.", + "type": "string" + } + }, + "required": [ + "foo" + ], + "type": "object" + }, + "inner2": { + "description": "Override description.", + "properties": { + "foo": { + "description": "Description of foo.", + "type": "string" + } + }, + "required": [ + "foo" + ], + "type": "object" + } + }, + "type": "object" +} + diff --git a/test/schema.test.ts b/test/schema.test.ts index 07b03ea2..e391701f 100644 --- a/test/schema.test.ts +++ b/test/schema.test.ts @@ -264,6 +264,9 @@ describe("schema", () => { assertSchema("type-intersection-recursive-no-additional", "MyLinkedList", { noExtraProps: true, }); + assertSchema("type-union-strict-null-keep-description", "MyObject", undefined, { + strictNullChecks: true, + }); }); describe("no-refs", () => { diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index 102bdc40..49ff4ea1 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -969,7 +969,7 @@ export class JsonSchemaGenerator { if (schemas.length === 1) { for (const k in schemas[0]) { - if (schemas[0].hasOwnProperty(k)) { + if (schemas[0].hasOwnProperty(k) && !definition.hasOwnProperty(k)) { definition[k] = schemas[0][k]; } } From b114570e959a8d6c1fe1686dcd2e67ff7be37b00 Mon Sep 17 00:00:00 2001 From: Netanel-MCE <109151575+netanel-mce@users.noreply.github.com> Date: Tue, 20 Jun 2023 18:57:36 +0300 Subject: [PATCH 16/60] Overcame typescript bug in property start with multi underscores (#552) --- api.md | 66 +++++++++++++++++++ .../key-in-key-of-multi-underscores/main.ts | 17 +++++ .../schema.json | 53 +++++++++++++++ test/schema.test.ts | 1 + typescript-json-schema.ts | 4 +- 5 files changed, 139 insertions(+), 2 deletions(-) create mode 100644 test/programs/key-in-key-of-multi-underscores/main.ts create mode 100644 test/programs/key-in-key-of-multi-underscores/schema.json diff --git a/api.md b/api.md index 2e4e6e3a..59479180 100644 --- a/api.md +++ b/api.md @@ -1061,6 +1061,29 @@ export type Main = { ``` +## [key-in-key-of-multi-underscores](./test/programs/key-in-key-of-multi-underscores) + +```ts +type Util = { + __2Underscores: { + utilDeepKey2: string; + }; + ___3Underscores: { + utilDeepKey3: string; + }; + ____4Underscores: { + utilDeepKey4: string; + }; +}; + +export type Main = { + [Key in keyof Util]: { + [key: string]: Util[Key]; + }; +}; +``` + + ## [key-in-key-of-single](./test/programs/key-in-key-of-single) ```ts @@ -1216,6 +1239,21 @@ export interface Never { ``` +## [no-ref](./test/programs/no-ref) + +```ts +type MySubType = { + id: string; +}; + +export type MyModule = { + address: MySubType & { extraProp: number }; + address2: MySubType; + address3: MySubType; +}; +``` + + ## [no-unrelated-definitions](./test/programs/no-unrelated-definitions) ```ts @@ -1998,6 +2036,34 @@ interface MyObject { ``` +## [type-union-strict-null-keep-description](./test/programs/type-union-strict-null-keep-description) + +```ts +/** + * Description of InnerObject. + */ +type InnerObject = { + /** + * Description of foo. + */ + foo: string; +}; + +/** + * Description of MyObject. + */ +type MyObject = { + + inner1?: InnerObject; + + /** + * Override description. + */ + inner2?: InnerObject; +}; +``` + + ## [type-union-tagged](./test/programs/type-union-tagged) ```ts diff --git a/test/programs/key-in-key-of-multi-underscores/main.ts b/test/programs/key-in-key-of-multi-underscores/main.ts new file mode 100644 index 00000000..5493a989 --- /dev/null +++ b/test/programs/key-in-key-of-multi-underscores/main.ts @@ -0,0 +1,17 @@ +type Util = { + __2Underscores: { + utilDeepKey2: string; + }; + ___3Underscores: { + utilDeepKey3: string; + }; + ____4Underscores: { + utilDeepKey4: string; + }; +}; + +export type Main = { + [Key in keyof Util]: { + [key: string]: Util[Key]; + }; +}; diff --git a/test/programs/key-in-key-of-multi-underscores/schema.json b/test/programs/key-in-key-of-multi-underscores/schema.json new file mode 100644 index 00000000..2f19c248 --- /dev/null +++ b/test/programs/key-in-key-of-multi-underscores/schema.json @@ -0,0 +1,53 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "properties": { + "__2Underscores": { + "additionalProperties": { + "properties": { + "utilDeepKey2": { + "type": "string" + } + }, + "required": [ + "utilDeepKey2" + ], + "type": "object" + }, + "type": "object" + }, + "___3Underscores": { + "additionalProperties": { + "properties": { + "utilDeepKey3": { + "type": "string" + } + }, + "required": [ + "utilDeepKey3" + ], + "type": "object" + }, + "type": "object" + }, + "____4Underscores": { + "additionalProperties": { + "properties": { + "utilDeepKey4": { + "type": "string" + } + }, + "required": [ + "utilDeepKey4" + ], + "type": "object" + }, + "type": "object" + } + }, + "required": [ + "__2Underscores", + "___3Underscores", + "____4Underscores" + ], + "type": "object" +} diff --git a/test/schema.test.ts b/test/schema.test.ts index e391701f..15b5fd9c 100644 --- a/test/schema.test.ts +++ b/test/schema.test.ts @@ -464,6 +464,7 @@ describe("schema", () => { describe("key in key of", () => { assertSchema("key-in-key-of-single", "Main"); assertSchema("key-in-key-of-multi", "Main"); + assertSchema("key-in-key-of-multi-underscores", "Main"); }); }); diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index 49ff4ea1..a9939c26 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -1085,9 +1085,9 @@ export class JsonSchemaGenerator { const typ = this.tc.getTypeAtLocation(indexSignature.type!); let def: Definition | undefined; if (typ.flags & ts.TypeFlags.IndexedAccess) { - const targetName: string = (clazzType).mapper?.target?.value; + const targetName = ts.escapeLeadingUnderscores((clazzType).mapper?.target?.value); const indexedAccessType = typ; - const symbols: Map = (indexedAccessType.objectType).members; + const symbols: Map = (indexedAccessType.objectType).members; const targetSymbol = symbols?.get(targetName); if (targetSymbol) { From 82eedec227b8c31b741719714add34a816026e1e Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Sun, 25 Jun 2023 10:52:57 -0700 Subject: [PATCH 17/60] v0.58.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5a58649a..81fd4963 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json-schema", - "version": "0.57.0", + "version": "0.58.0", "description": "typescript-json-schema generates JSON Schema files from your Typescript sources", "main": "dist/typescript-json-schema.js", "typings": "dist/typescript-json-schema.d.ts", From 8d65bb2167958f1835781dbafdcec688c612c3ab Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Sun, 25 Jun 2023 10:53:21 -0700 Subject: [PATCH 18/60] v0.58.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 81fd4963..4199e732 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json-schema", - "version": "0.58.0", + "version": "0.58.1", "description": "typescript-json-schema generates JSON Schema files from your Typescript sources", "main": "dist/typescript-json-schema.js", "typings": "dist/typescript-json-schema.d.ts", From 17ee848ac46f8bcb593cd3812bed26bdf9f149bb Mon Sep 17 00:00:00 2001 From: Josh Watzman Date: Wed, 12 Jul 2023 02:20:28 +0100 Subject: [PATCH 19/60] Fix type enum (without revert) (#557) --- test/programs/type-literals/main.ts | 8 ++++++++ test/programs/type-literals/schema.json | 21 +++++++++++++++++++++ test/schema.test.ts | 1 + typescript-json-schema.ts | 6 +++++- 4 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 test/programs/type-literals/main.ts create mode 100644 test/programs/type-literals/schema.json diff --git a/test/programs/type-literals/main.ts b/test/programs/type-literals/main.ts new file mode 100644 index 00000000..4e3a3131 --- /dev/null +++ b/test/programs/type-literals/main.ts @@ -0,0 +1,8 @@ +type MyObject = { + param1: "1" | "2" | "3"; + param2: "1" | "2" | 3 | true; + /** @enum {string} */ + param3: "1" | "2" | "3"; + /** @enum {unknown} */ + param4: "1" | "2" | 3 | true; +}; diff --git a/test/programs/type-literals/schema.json b/test/programs/type-literals/schema.json new file mode 100644 index 00000000..b7852baa --- /dev/null +++ b/test/programs/type-literals/schema.json @@ -0,0 +1,21 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "properties": { + "param1": { + "enum": ["1", "2", "3"], + "type": "string" + }, + "param2": { + "enum": ["1", "2", 3, true] + }, + "param3": { + "enum": ["1", "2", "3"], + "type": "string" + }, + "param4": { + "enum": ["1", "2", 3, true] + } + }, + "required": ["param1", "param2", "param3", "param4"], + "type": "object" +} diff --git a/test/schema.test.ts b/test/schema.test.ts index 15b5fd9c..1e6301b1 100644 --- a/test/schema.test.ts +++ b/test/schema.test.ts @@ -221,6 +221,7 @@ describe("schema", () => { // useTypeAliasRef: true, // useRootRef: true // }); + assertSchema("type-literals", "MyObject"); assertSchema("type-no-aliases-recursive-topref", "MyAlias", { aliasRef: false, topRef: true, diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index a9939c26..7e668888 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -969,7 +969,11 @@ export class JsonSchemaGenerator { if (schemas.length === 1) { for (const k in schemas[0]) { - if (schemas[0].hasOwnProperty(k) && !definition.hasOwnProperty(k)) { + if (schemas[0].hasOwnProperty(k)) { + if (k === "description" && definition.hasOwnProperty(k)) { + // If we already have a more specific description, don't overwrite it. + continue; + } definition[k] = schemas[0][k]; } } From f1b92c970445970c05ccd61327be7d746f5df212 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Fri, 14 Jul 2023 07:26:28 -0400 Subject: [PATCH 20/60] Update api docs --- api.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/api.md b/api.md index 59479180..f02997d5 100644 --- a/api.md +++ b/api.md @@ -1911,6 +1911,20 @@ type MyLinkedList = MyNode; ``` +## [type-literals](./test/programs/type-literals) + +```ts +type MyObject = { + param1: "1" | "2" | "3"; + param2: "1" | "2" | 3 | true; + /** @enum {string} */ + param3: "1" | "2" | "3"; + /** @enum {unknown} */ + param4: "1" | "2" | 3 | true; +}; +``` + + ## [type-mapped-types](./test/programs/type-mapped-types) ```ts From e9ef7a51cae98ec67181cd5d5efed73b49ca443a Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Fri, 14 Jul 2023 07:26:42 -0400 Subject: [PATCH 21/60] v0.59.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4199e732..e2a867f1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json-schema", - "version": "0.58.1", + "version": "0.59.0", "description": "typescript-json-schema generates JSON Schema files from your Typescript sources", "main": "dist/typescript-json-schema.js", "typings": "dist/typescript-json-schema.d.ts", From f4600cf6b118da5f0b30cae196ef0ca0e41b58a2 Mon Sep 17 00:00:00 2001 From: Milan Suk Date: Sun, 13 Aug 2023 19:05:43 +0200 Subject: [PATCH 22/60] Update to typescript 5.1 (#564) --- api.md | 10 ++++++++++ package.json | 2 +- test/programs/const-keyword/main.ts | 4 ++++ test/programs/const-keyword/schema.json | 12 ++++++++++++ test/schema.test.ts | 4 ++++ tsconfig.json | 4 ++-- typescript-json-schema.ts | 8 ++++---- yarn.lock | 8 ++++---- 8 files changed, 41 insertions(+), 11 deletions(-) create mode 100644 test/programs/const-keyword/main.ts create mode 100644 test/programs/const-keyword/schema.json diff --git a/api.md b/api.md index f02997d5..75b8c48c 100644 --- a/api.md +++ b/api.md @@ -607,6 +607,16 @@ export interface MyObject { ``` +## [const-keyword](./test/programs/const-keyword) + +```ts +const fn = (value: T) => + ({ value }); + +export type Object = ReturnType>; +``` + + ## [custom-dates](./test/programs/custom-dates) ```ts diff --git a/package.json b/package.json index e2a867f1..7f0bf141 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "path-equal": "^1.2.5", "safe-stable-stringify": "^2.2.0", "ts-node": "^10.9.1", - "typescript": "~4.9.5", + "typescript": "~5.1.0", "yargs": "^17.1.1" }, "devDependencies": { diff --git a/test/programs/const-keyword/main.ts b/test/programs/const-keyword/main.ts new file mode 100644 index 00000000..11087d3d --- /dev/null +++ b/test/programs/const-keyword/main.ts @@ -0,0 +1,4 @@ +const fn = (value: T) => + ({ value }); + +export type Object = ReturnType>; diff --git a/test/programs/const-keyword/schema.json b/test/programs/const-keyword/schema.json new file mode 100644 index 00000000..b3786f6e --- /dev/null +++ b/test/programs/const-keyword/schema.json @@ -0,0 +1,12 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "properties": { + "value": { + "const": "value", + "type": "string" + } + }, + "required": ["value"], + "type": "object" +} + diff --git a/test/schema.test.ts b/test/schema.test.ts index 1e6301b1..4f7fab62 100644 --- a/test/schema.test.ts +++ b/test/schema.test.ts @@ -523,3 +523,7 @@ describe("when reusing a generator", () => { describe("satisfies keyword - ignore from a \"satisfies\" and build by rally type", () => { assertSchema("satisfies-keyword", "Specific"); }); + +describe("const keyword", () => { + assertSchema("const-keyword", "Object"); +}); diff --git a/tsconfig.json b/tsconfig.json index 2a7c0c73..2acf8e4c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -19,8 +19,8 @@ "noLib": false, "preserveConstEnums": true, "sourceMap": true, - "watch": false, - "typeRoots" : ["node_modules/@types"] + "typeRoots" : ["node_modules/@types"], + "ignoreDeprecations": "5.0" }, "include": [ "**/*.ts", diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index 7e668888..910df4ce 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -1052,8 +1052,8 @@ export class JsonSchemaGenerator { return !( decls && decls.filter((decl) => { - const mods = decl.modifiers; - return mods && mods.filter((mod) => mod.kind === ts.SyntaxKind.PrivateKeyword).length > 0; + const mods = (decl as any).modifiers; + return mods && mods.filter((mod: any) => mod.kind === ts.SyntaxKind.PrivateKeyword).length > 0; }).length > 0 ); }); @@ -1154,7 +1154,7 @@ export class JsonSchemaGenerator { const requiredProps = props.reduce((required: string[], prop: ts.Symbol) => { const def = {}; this.parseCommentsIntoDefinition(prop, def, {}); - const allUnionTypesFlags: number[] = (prop).type?.types?.map?.((t: any) => t.flags) || []; + const allUnionTypesFlags: number[] = (prop).links?.type?.types?.map?.((t: any) => t.flags) || []; if ( !(prop.flags & ts.SymbolFlags.Optional) && !(prop.flags & ts.SymbolFlags.Method) && @@ -1373,7 +1373,7 @@ export class JsonSchemaGenerator { if (definition.type === undefined) { // if users override the type, do not try to infer it - if (typ.flags & ts.TypeFlags.Union) { + if (typ.flags & ts.TypeFlags.Union && (node === null || node.kind !== ts.SyntaxKind.EnumDeclaration)) { this.getUnionDefinition(typ as ts.UnionType, unionModifier, definition); } else if (typ.flags & ts.TypeFlags.Intersection) { if (this.args.noExtraProps) { diff --git a/yarn.lock b/yarn.lock index 66820288..2888a713 100644 --- a/yarn.lock +++ b/yarn.lock @@ -894,10 +894,10 @@ type-detect@^4.0.0, type-detect@^4.0.5: resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -typescript@~4.9.5: - version "4.9.5" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== +typescript@~5.1.0: + version "5.1.6" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" + integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== uri-js@^4.2.2: version "4.4.1" From 3662786ad599f3ff9d651ef1906d856aff2c2420 Mon Sep 17 00:00:00 2001 From: Netanel-MCE <109151575+netanel-mce@users.noreply.github.com> Date: Sun, 20 Aug 2023 22:14:50 +0300 Subject: [PATCH 23/60] turn on "noExtraProps" flag in auto test (#563) --- api.md | 2 +- test/programs/abstract-class/schema.json | 1 + test/programs/abstract-extends/schema.json | 1 + test/programs/annotation-default/schema.json | 1 + test/programs/annotation-id/schema.json | 2 ++ test/programs/annotation-items/schema.json | 1 + test/programs/annotation-ref/schema.json | 2 ++ test/programs/annotation-required/schema.json | 4 ++++ test/programs/annotation-title/schema.json | 3 +++ test/programs/annotation-tjs/schema.json | 1 + test/programs/any-unknown/schema.json | 1 + test/programs/argument-id/schema.MyObject.json | 2 ++ test/programs/array-and-description/schema.json | 1 + test/programs/builtin-names/schema.json | 2 ++ test/programs/class-extends/schema.json | 1 + test/programs/class-single/schema.json | 1 + test/programs/comments-from-lib/schema.json | 1 + test/programs/comments-imports/schema.json | 2 ++ test/programs/comments-inline-tags/schema.json | 1 + test/programs/comments-override/schema.json | 1 + test/programs/comments/schema.json | 1 + test/programs/const-keyword/schema.json | 1 + test/programs/custom-dates/schema.json | 2 ++ test/programs/dates/schema.json | 1 + test/programs/default-properties/schema.json | 1 + test/programs/enums-mixed/schema.json | 1 + test/programs/enums-number/schema.json | 1 + test/programs/enums-string/schema.json | 1 + test/programs/enums-value-in-interface/schema.json | 1 + test/programs/force-type-imported/schema.json | 1 + test/programs/force-type/schema.json | 1 + test/programs/generate-all-types/schema.json | 2 ++ test/programs/generic-anonymous/schema.json | 3 +++ test/programs/generic-arrays/schema.json | 1 + test/programs/generic-multiargs/schema.json | 3 +++ test/programs/generic-multiple/schema.json | 3 +++ test/programs/generic-recursive/schema.json | 3 +++ test/programs/generic-simple/schema.json | 2 ++ test/programs/ignored-required/schema.json | 1 + test/programs/imports/schema.json | 4 ++++ test/programs/interface-extends/schema.json | 1 + test/programs/interface-multi/schema.json | 2 ++ test/programs/interface-recursion/schema.json | 1 + test/programs/interface-single/schema.json | 1 + .../key-in-key-of-multi-underscores/schema.json | 4 ++++ test/programs/key-in-key-of-multi/schema.json | 3 +++ test/programs/key-in-key-of-single/schema.json | 2 ++ test/programs/map-types/schema.json | 2 ++ test/programs/module-interface-single/schema.json | 1 + test/programs/namespace-deep-1/schema.json | 3 +++ test/programs/namespace-deep-2/schema.json | 3 +++ test/programs/never/schema.json | 1 + .../object-numeric-index-as-property/schema.json | 1 + test/programs/optionals-derived/schema.json | 1 + test/programs/optionals/schema.json | 1 + test/programs/private-members/schema.json | 1 + test/programs/prop-override/schema.json | 1 + test/programs/satisfies-keyword/schema.json | 1 + test/programs/strict-null-checks/schema.json | 1 + test/programs/string-literals-inline/schema.json | 1 + test/programs/string-literals/schema.json | 1 + test/programs/symbol/schema.json | 1 + test/programs/type-alias-or/schema.json | 3 +++ test/programs/type-aliases-alias-ref/schema.json | 1 + .../programs/type-aliases-local-namsepace/schema.json | 3 +++ .../programs/type-aliases-multitype-array/schema.json | 1 + test/programs/type-aliases-partial/schema.json | 3 +++ .../type-aliases-recursive-object-topref/schema.json | 1 + .../programs/type-aliases-union-namespace/schema.json | 1 + test/programs/type-aliases/schema.json | 2 ++ test/programs/type-anonymous/schema.json | 3 +++ test/programs/type-intersection-recursive/main.ts | 2 +- test/programs/type-intersection-recursive/schema.json | 8 +++++--- test/programs/type-literals/schema.json | 1 + test/programs/type-mapped-types/schema.json | 1 + .../type-no-aliases-recursive-topref/schema.json | 1 + test/programs/type-nullable/schema.json | 3 +++ test/programs/type-primitives/schema.json | 1 + test/programs/type-recursive/schema.json | 1 + .../schema.json | 3 +++ test/programs/type-union-tagged/schema.json | 3 +++ test/programs/type-union/schema.json | 1 + test/programs/typeof-keyword/schema.json | 1 + test/programs/undefined-property/schema.json | 1 + .../unique-names-multiple-subdefinitions/schema.json | 2 ++ .../unique-names/schema.MyObject.f2191116.json | 1 + .../unique-names/schema.MyObject.fded1213.json | 1 + test/programs/user-symbols/schema.json | 1 + test/programs/user-validation-keywords/schema.json | 1 + test/schema.test.ts | 11 +++++++++++ 90 files changed, 156 insertions(+), 5 deletions(-) diff --git a/api.md b/api.md index 75b8c48c..57c9d7c9 100644 --- a/api.md +++ b/api.md @@ -1901,7 +1901,7 @@ interface ChildFoo { } interface Foo { - readonly childFoos: Foo & ChildFoo; + readonly childFoos: Foo | ChildFoo; } ``` diff --git a/test/programs/abstract-class/schema.json b/test/programs/abstract-class/schema.json index 89da901f..7f2e4873 100644 --- a/test/programs/abstract-class/schema.json +++ b/test/programs/abstract-class/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "propA": { "type": "number" diff --git a/test/programs/abstract-extends/schema.json b/test/programs/abstract-extends/schema.json index ae4c6d86..f2169ce0 100644 --- a/test/programs/abstract-extends/schema.json +++ b/test/programs/abstract-extends/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "propA": { "type": "number" diff --git a/test/programs/annotation-default/schema.json b/test/programs/annotation-default/schema.json index 54ad958a..e227243a 100644 --- a/test/programs/annotation-default/schema.json +++ b/test/programs/annotation-default/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "varBoolean": { "default": true, diff --git a/test/programs/annotation-id/schema.json b/test/programs/annotation-id/schema.json index a37577c9..80b4eb0d 100644 --- a/test/programs/annotation-id/schema.json +++ b/test/programs/annotation-id/schema.json @@ -1,9 +1,11 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "MySubObject": { "$id": "filled#", "type": "object", + "additionalProperties": false, "properties": { "a": { "type": "boolean" } }, diff --git a/test/programs/annotation-items/schema.json b/test/programs/annotation-items/schema.json index 316b2f34..e84ac158 100644 --- a/test/programs/annotation-items/schema.json +++ b/test/programs/annotation-items/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "a": { "items": { diff --git a/test/programs/annotation-ref/schema.json b/test/programs/annotation-ref/schema.json index c2651a34..6f4395bb 100644 --- a/test/programs/annotation-ref/schema.json +++ b/test/programs/annotation-ref/schema.json @@ -2,9 +2,11 @@ "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "MySubObject": { + "additionalProperties": false, "type": "object" } }, + "additionalProperties": false, "properties": { "externalRef": { "$ref": "http://my-schema.org" diff --git a/test/programs/annotation-required/schema.json b/test/programs/annotation-required/schema.json index ca051b8e..c8c4f2c8 100644 --- a/test/programs/annotation-required/schema.json +++ b/test/programs/annotation-required/schema.json @@ -1,7 +1,9 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "MyDefaultObject": { + "additionalProperties": false, "properties": { "age": { "type": "number" @@ -17,6 +19,7 @@ "type": "object" }, "MySubObject": { + "additionalProperties": false, "properties": { "bool": { "type": "boolean" @@ -46,6 +49,7 @@ "type": "object" }, "MySubObject2": { + "additionalProperties": false, "properties": { "bool": { "type": "boolean" diff --git a/test/programs/annotation-title/schema.json b/test/programs/annotation-title/schema.json index 541d80d4..d2b09ede 100644 --- a/test/programs/annotation-title/schema.json +++ b/test/programs/annotation-title/schema.json @@ -1,7 +1,9 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "AnotherSubObject": { + "additionalProperties": false, "properties": { "b": { "type": "boolean" @@ -11,6 +13,7 @@ "type": "object" }, "MySubObject": { + "additionalProperties": false, "title": "filled#", "type": "object", "properties": { diff --git a/test/programs/annotation-tjs/schema.json b/test/programs/annotation-tjs/schema.json index 1ba52f39..477f8bd1 100644 --- a/test/programs/annotation-tjs/schema.json +++ b/test/programs/annotation-tjs/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "dateTime": { "format": "date-time", diff --git a/test/programs/any-unknown/schema.json b/test/programs/any-unknown/schema.json index c7088cd0..039760e1 100644 --- a/test/programs/any-unknown/schema.json +++ b/test/programs/any-unknown/schema.json @@ -1,5 +1,6 @@ { "type": "object", + "additionalProperties": false, "properties": { "a": {}, "b": {} diff --git a/test/programs/argument-id/schema.MyObject.json b/test/programs/argument-id/schema.MyObject.json index ccc1ea55..582222ec 100644 --- a/test/programs/argument-id/schema.MyObject.json +++ b/test/programs/argument-id/schema.MyObject.json @@ -1,8 +1,10 @@ { "$id": "someSchemaId", "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "ReferenceType": { + "additionalProperties": false, "properties": { "reference": { "const": true, diff --git a/test/programs/array-and-description/schema.json b/test/programs/array-and-description/schema.json index f9be6bcf..14126456 100644 --- a/test/programs/array-and-description/schema.json +++ b/test/programs/array-and-description/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "description": { "type": "string" diff --git a/test/programs/builtin-names/schema.json b/test/programs/builtin-names/schema.json index 9c411a59..c19f242d 100644 --- a/test/programs/builtin-names/schema.json +++ b/test/programs/builtin-names/schema.json @@ -1,7 +1,9 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "Ext.Array": { + "additionalProperties": false, "type": "object" } }, diff --git a/test/programs/class-extends/schema.json b/test/programs/class-extends/schema.json index 4b9184fd..678701b9 100644 --- a/test/programs/class-extends/schema.json +++ b/test/programs/class-extends/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "propA": { "type": "number" diff --git a/test/programs/class-single/schema.json b/test/programs/class-single/schema.json index 4b9184fd..678701b9 100644 --- a/test/programs/class-single/schema.json +++ b/test/programs/class-single/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "propA": { "type": "number" diff --git a/test/programs/comments-from-lib/schema.json b/test/programs/comments-from-lib/schema.json index 2457b93c..ca5a9e8b 100644 --- a/test/programs/comments-from-lib/schema.json +++ b/test/programs/comments-from-lib/schema.json @@ -1,5 +1,6 @@ { "description": "Use this comment", + "additionalProperties": false, "type": "object", "properties": { "prop1": { diff --git a/test/programs/comments-imports/schema.json b/test/programs/comments-imports/schema.json index ebc25fad..aefa171e 100644 --- a/test/programs/comments-imports/schema.json +++ b/test/programs/comments-imports/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "Color": { "description": "Description of Color.", @@ -7,6 +8,7 @@ "type": "string" }, "Text": { + "additionalProperties": false, "description": "Description of Text interface.", "properties": { "color": { diff --git a/test/programs/comments-inline-tags/schema.json b/test/programs/comments-inline-tags/schema.json index 5f72287f..38307a55 100644 --- a/test/programs/comments-inline-tags/schema.json +++ b/test/programs/comments-inline-tags/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "description": "This is MyObject. It extends {@link MyOtherObject} and {@link SomeOtherObject}.", "properties": { "prop1": { diff --git a/test/programs/comments-override/schema.json b/test/programs/comments-override/schema.json index 0629719c..360ce985 100644 --- a/test/programs/comments-override/schema.json +++ b/test/programs/comments-override/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "MySubObject": { "additionalProperties": true, diff --git a/test/programs/comments/schema.json b/test/programs/comments/schema.json index febac880..302df4b6 100644 --- a/test/programs/comments/schema.json +++ b/test/programs/comments/schema.json @@ -19,6 +19,7 @@ "type": "array" }, "rotation": { + "additionalProperties": false, "description": "Description of rotation, a field with an anonymous type", "properties": { "yaw": { diff --git a/test/programs/const-keyword/schema.json b/test/programs/const-keyword/schema.json index b3786f6e..c2a28b7c 100644 --- a/test/programs/const-keyword/schema.json +++ b/test/programs/const-keyword/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "value": { "const": "value", diff --git a/test/programs/custom-dates/schema.json b/test/programs/custom-dates/schema.json index 6da75ebc..07e4d266 100644 --- a/test/programs/custom-dates/schema.json +++ b/test/programs/custom-dates/schema.json @@ -1,7 +1,9 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "foo.Date": { + "additionalProperties": false, "properties": { "day": { "type": "number" diff --git a/test/programs/dates/schema.json b/test/programs/dates/schema.json index fd6a408c..5ba132fb 100644 --- a/test/programs/dates/schema.json +++ b/test/programs/dates/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "var1": { "format": "date-time", diff --git a/test/programs/default-properties/schema.json b/test/programs/default-properties/schema.json index ebf855d3..17169a8d 100644 --- a/test/programs/default-properties/schema.json +++ b/test/programs/default-properties/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "Foo": { "anyOf": [ diff --git a/test/programs/enums-mixed/schema.json b/test/programs/enums-mixed/schema.json index 110931a4..c6db8fb5 100644 --- a/test/programs/enums-mixed/schema.json +++ b/test/programs/enums-mixed/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "Enum": { "enum": [ diff --git a/test/programs/enums-number/schema.json b/test/programs/enums-number/schema.json index 5f203b67..0f43dc0b 100644 --- a/test/programs/enums-number/schema.json +++ b/test/programs/enums-number/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "Enum": { "enum": [ diff --git a/test/programs/enums-string/schema.json b/test/programs/enums-string/schema.json index 3944cfe8..e3b07564 100644 --- a/test/programs/enums-string/schema.json +++ b/test/programs/enums-string/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "Enum": { "enum": [ diff --git a/test/programs/enums-value-in-interface/schema.json b/test/programs/enums-value-in-interface/schema.json index f2429ef3..6bf5f6b6 100644 --- a/test/programs/enums-value-in-interface/schema.json +++ b/test/programs/enums-value-in-interface/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "A.B": { "const": 0, diff --git a/test/programs/force-type-imported/schema.json b/test/programs/force-type-imported/schema.json index 79e831f7..eaa6e6c9 100644 --- a/test/programs/force-type-imported/schema.json +++ b/test/programs/force-type-imported/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "Widget": { "type": "number" diff --git a/test/programs/force-type/schema.json b/test/programs/force-type/schema.json index 79e831f7..eaa6e6c9 100644 --- a/test/programs/force-type/schema.json +++ b/test/programs/force-type/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "Widget": { "type": "number" diff --git a/test/programs/generate-all-types/schema.json b/test/programs/generate-all-types/schema.json index 46c47a08..80abeced 100644 --- a/test/programs/generate-all-types/schema.json +++ b/test/programs/generate-all-types/schema.json @@ -6,9 +6,11 @@ "type": "number" }, "MyInterface": { + "additionalProperties": false, "type": "object" }, "MyObject": { + "additionalProperties": false, "type": "object" } } diff --git a/test/programs/generic-anonymous/schema.json b/test/programs/generic-anonymous/schema.json index ebf99735..877856f4 100644 --- a/test/programs/generic-anonymous/schema.json +++ b/test/programs/generic-anonymous/schema.json @@ -1,7 +1,9 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "MyGeneric": { + "additionalProperties": false, "properties": { "a": { "type": "number" @@ -17,6 +19,7 @@ "type": "object" }, "MyGeneric": { + "additionalProperties": false, "properties": { "a": { "type": "string" diff --git a/test/programs/generic-arrays/schema.json b/test/programs/generic-arrays/schema.json index a023dfa3..36175fe1 100644 --- a/test/programs/generic-arrays/schema.json +++ b/test/programs/generic-arrays/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "numberArray": { "items": { diff --git a/test/programs/generic-multiargs/schema.json b/test/programs/generic-multiargs/schema.json index ebf99735..877856f4 100644 --- a/test/programs/generic-multiargs/schema.json +++ b/test/programs/generic-multiargs/schema.json @@ -1,7 +1,9 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "MyGeneric": { + "additionalProperties": false, "properties": { "a": { "type": "number" @@ -17,6 +19,7 @@ "type": "object" }, "MyGeneric": { + "additionalProperties": false, "properties": { "a": { "type": "string" diff --git a/test/programs/generic-multiple/schema.json b/test/programs/generic-multiple/schema.json index 8c85ce6f..b87cde25 100644 --- a/test/programs/generic-multiple/schema.json +++ b/test/programs/generic-multiple/schema.json @@ -1,7 +1,9 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "MyGeneric": { + "additionalProperties": false, "properties": { "field": { "type": "number" @@ -13,6 +15,7 @@ "type": "object" }, "MyGeneric": { + "additionalProperties": false, "properties": { "field": { "type": "string" diff --git a/test/programs/generic-recursive/schema.json b/test/programs/generic-recursive/schema.json index e27af0fd..c040119b 100644 --- a/test/programs/generic-recursive/schema.json +++ b/test/programs/generic-recursive/schema.json @@ -3,6 +3,7 @@ "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "MyGeneric": { + "additionalProperties": false, "properties": { "field": { "$ref": "#/definitions/MyGeneric" @@ -14,6 +15,7 @@ "type": "object" }, "MyGeneric": { + "additionalProperties": false, "properties": { "field": { "$ref": "#/definitions/MyGeneric" @@ -25,6 +27,7 @@ "type": "object" }, "MyObject": { + "additionalProperties": false, "properties": { "value": { "$ref": "#/definitions/MyGeneric" diff --git a/test/programs/generic-simple/schema.json b/test/programs/generic-simple/schema.json index 1fbdd571..68bf6c6f 100644 --- a/test/programs/generic-simple/schema.json +++ b/test/programs/generic-simple/schema.json @@ -1,7 +1,9 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "MyGeneric": { + "additionalProperties": false, "properties": { "field": { "type": "number" diff --git a/test/programs/ignored-required/schema.json b/test/programs/ignored-required/schema.json index 56b76ccd..0b176931 100644 --- a/test/programs/ignored-required/schema.json +++ b/test/programs/ignored-required/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "required": { "type": "boolean" diff --git a/test/programs/imports/schema.json b/test/programs/imports/schema.json index da58b264..d9f420ab 100644 --- a/test/programs/imports/schema.json +++ b/test/programs/imports/schema.json @@ -1,7 +1,9 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "MyInterface": { + "additionalProperties": false, "properties": { "fieldInMain": { "type": "number" @@ -13,6 +15,7 @@ "type": "object" }, "MyInterface_1": { + "additionalProperties": false, "properties": { "fieldInModule1": { "type": "string" @@ -24,6 +27,7 @@ "type": "object" }, "MyInterface_2": { + "additionalProperties": false, "properties": { "fieldInModule2": { "type": "number" diff --git a/test/programs/interface-extends/schema.json b/test/programs/interface-extends/schema.json index 4b9184fd..678701b9 100644 --- a/test/programs/interface-extends/schema.json +++ b/test/programs/interface-extends/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "propA": { "type": "number" diff --git a/test/programs/interface-multi/schema.json b/test/programs/interface-multi/schema.json index dbd7a28f..55265205 100644 --- a/test/programs/interface-multi/schema.json +++ b/test/programs/interface-multi/schema.json @@ -1,7 +1,9 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "MySubObject": { + "additionalProperties": false, "properties": { "propA": { "type": "number" diff --git a/test/programs/interface-recursion/schema.json b/test/programs/interface-recursion/schema.json index 4744b0b7..8c959407 100644 --- a/test/programs/interface-recursion/schema.json +++ b/test/programs/interface-recursion/schema.json @@ -3,6 +3,7 @@ "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "MyObject": { + "additionalProperties": false, "properties": { "propA": { "type": "number" diff --git a/test/programs/interface-single/schema.json b/test/programs/interface-single/schema.json index 4b9184fd..678701b9 100644 --- a/test/programs/interface-single/schema.json +++ b/test/programs/interface-single/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "propA": { "type": "number" diff --git a/test/programs/key-in-key-of-multi-underscores/schema.json b/test/programs/key-in-key-of-multi-underscores/schema.json index 2f19c248..56f59c79 100644 --- a/test/programs/key-in-key-of-multi-underscores/schema.json +++ b/test/programs/key-in-key-of-multi-underscores/schema.json @@ -1,8 +1,10 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "__2Underscores": { "additionalProperties": { + "additionalProperties": false, "properties": { "utilDeepKey2": { "type": "string" @@ -17,6 +19,7 @@ }, "___3Underscores": { "additionalProperties": { + "additionalProperties": false, "properties": { "utilDeepKey3": { "type": "string" @@ -31,6 +34,7 @@ }, "____4Underscores": { "additionalProperties": { + "additionalProperties": false, "properties": { "utilDeepKey4": { "type": "string" diff --git a/test/programs/key-in-key-of-multi/schema.json b/test/programs/key-in-key-of-multi/schema.json index e436656f..6a9a0235 100644 --- a/test/programs/key-in-key-of-multi/schema.json +++ b/test/programs/key-in-key-of-multi/schema.json @@ -1,8 +1,10 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "utilKey1": { "additionalProperties": { + "additionalProperties": false, "properties": { "utilDeepKey11": { "type": "string" @@ -21,6 +23,7 @@ }, "utilKey2": { "additionalProperties": { + "additionalProperties": false, "properties": { "utilDeepKey21": { "type": "boolean" diff --git a/test/programs/key-in-key-of-single/schema.json b/test/programs/key-in-key-of-single/schema.json index c9bbb51c..40e2690a 100644 --- a/test/programs/key-in-key-of-single/schema.json +++ b/test/programs/key-in-key-of-single/schema.json @@ -1,10 +1,12 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "type": "object", "properties": { "utilKey": { "type": "object", "additionalProperties": { + "additionalProperties": false, "type": "object", "properties": { "utilDeepKey": { diff --git a/test/programs/map-types/schema.json b/test/programs/map-types/schema.json index 605e1387..444c375d 100644 --- a/test/programs/map-types/schema.json +++ b/test/programs/map-types/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "MyMap1": { "additionalProperties": { @@ -18,6 +19,7 @@ "type": "object" }, "MyType": { + "additionalProperties": false, "type": "object" } }, diff --git a/test/programs/module-interface-single/schema.json b/test/programs/module-interface-single/schema.json index 4b9184fd..678701b9 100644 --- a/test/programs/module-interface-single/schema.json +++ b/test/programs/module-interface-single/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "propA": { "type": "number" diff --git a/test/programs/namespace-deep-1/schema.json b/test/programs/namespace-deep-1/schema.json index 4104b30c..8309af76 100644 --- a/test/programs/namespace-deep-1/schema.json +++ b/test/programs/namespace-deep-1/schema.json @@ -3,6 +3,7 @@ "$ref": "#/definitions/RootNamespace.Def", "definitions": { "RootNamespace.Def": { + "additionalProperties": false, "properties": { "nest": { "$ref": "#/definitions/RootNamespace.Def" @@ -26,6 +27,7 @@ "type": "object" }, "RootNamespace.SubNamespace.HelperA": { + "additionalProperties": false, "properties": { "propA": { "type": "number" @@ -41,6 +43,7 @@ "type": "object" }, "RootNamespace.SubNamespace.HelperB": { + "additionalProperties": false, "properties": { "propA": { "$ref": "#/definitions/RootNamespace.SubNamespace.HelperA" diff --git a/test/programs/namespace-deep-2/schema.json b/test/programs/namespace-deep-2/schema.json index 1aa5d97e..0684e257 100644 --- a/test/programs/namespace-deep-2/schema.json +++ b/test/programs/namespace-deep-2/schema.json @@ -3,6 +3,7 @@ "$ref": "#/definitions/RootNamespace.SubNamespace.HelperA", "definitions": { "RootNamespace.Def": { + "additionalProperties": false, "properties": { "nest": { "$ref": "#/definitions/RootNamespace.Def" @@ -26,6 +27,7 @@ "type": "object" }, "RootNamespace.SubNamespace.HelperA": { + "additionalProperties": false, "properties": { "propA": { "type": "number" @@ -41,6 +43,7 @@ "type": "object" }, "RootNamespace.SubNamespace.HelperB": { + "additionalProperties": false, "properties": { "propA": { "$ref": "#/definitions/RootNamespace.SubNamespace.HelperA" diff --git a/test/programs/never/schema.json b/test/programs/never/schema.json index 25667e53..e13cf6c8 100644 --- a/test/programs/never/schema.json +++ b/test/programs/never/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "propA": { "type": "string" diff --git a/test/programs/object-numeric-index-as-property/schema.json b/test/programs/object-numeric-index-as-property/schema.json index 490013d2..24962da0 100644 --- a/test/programs/object-numeric-index-as-property/schema.json +++ b/test/programs/object-numeric-index-as-property/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "objAnonymous": { "additionalProperties": false, diff --git a/test/programs/optionals-derived/schema.json b/test/programs/optionals-derived/schema.json index 85d076c3..b795054d 100644 --- a/test/programs/optionals-derived/schema.json +++ b/test/programs/optionals-derived/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "type": "object", "required": [ "baseRequired", "derivedRequired" ], "properties": { diff --git a/test/programs/optionals/schema.json b/test/programs/optionals/schema.json index 2d82cce9..d6dd1c89 100644 --- a/test/programs/optionals/schema.json +++ b/test/programs/optionals/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "optional": { "type": "number" diff --git a/test/programs/private-members/schema.json b/test/programs/private-members/schema.json index d25393ed..2c0c5235 100644 --- a/test/programs/private-members/schema.json +++ b/test/programs/private-members/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "publicMember": { "type": "string" diff --git a/test/programs/prop-override/schema.json b/test/programs/prop-override/schema.json index fd604067..fc5b7be6 100644 --- a/test/programs/prop-override/schema.json +++ b/test/programs/prop-override/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "_id": { "description": "Overrides aliased type definition with this JSDoc if at least TJS-type annotation is present", diff --git a/test/programs/satisfies-keyword/schema.json b/test/programs/satisfies-keyword/schema.json index 308c5a68..77121303 100644 --- a/test/programs/satisfies-keyword/schema.json +++ b/test/programs/satisfies-keyword/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "a": { "const": "a", diff --git a/test/programs/strict-null-checks/schema.json b/test/programs/strict-null-checks/schema.json index 58abfc28..6b9965b6 100644 --- a/test/programs/strict-null-checks/schema.json +++ b/test/programs/strict-null-checks/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "val": { "type": "number" diff --git a/test/programs/string-literals-inline/schema.json b/test/programs/string-literals-inline/schema.json index 809968bc..55c215f2 100644 --- a/test/programs/string-literals-inline/schema.json +++ b/test/programs/string-literals-inline/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "bar": { "type": "string" diff --git a/test/programs/string-literals/schema.json b/test/programs/string-literals/schema.json index 36f53123..de00a89d 100644 --- a/test/programs/string-literals/schema.json +++ b/test/programs/string-literals/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "result": { "enum": [ diff --git a/test/programs/symbol/schema.json b/test/programs/symbol/schema.json index 104b35a0..c963eae3 100644 --- a/test/programs/symbol/schema.json +++ b/test/programs/symbol/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "type": "object", "properties": { "a": { diff --git a/test/programs/type-alias-or/schema.json b/test/programs/type-alias-or/schema.json index e021616e..0c901c29 100644 --- a/test/programs/type-alias-or/schema.json +++ b/test/programs/type-alias-or/schema.json @@ -1,10 +1,13 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "A": { + "additionalProperties": false, "type": "object" }, "B": { + "additionalProperties": false, "type": "object" }, "C": { diff --git a/test/programs/type-aliases-alias-ref/schema.json b/test/programs/type-aliases-alias-ref/schema.json index e100bbe8..b98e0ff6 100644 --- a/test/programs/type-aliases-alias-ref/schema.json +++ b/test/programs/type-aliases-alias-ref/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "prop": { "type": "number" diff --git a/test/programs/type-aliases-local-namsepace/schema.json b/test/programs/type-aliases-local-namsepace/schema.json index b99a5688..51e876dd 100644 --- a/test/programs/type-aliases-local-namsepace/schema.json +++ b/test/programs/type-aliases-local-namsepace/schema.json @@ -1,7 +1,9 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "B.B": { + "additionalProperties": false, "properties": { "b": { } @@ -12,6 +14,7 @@ "type": "object" }, "C.C": { + "additionalProperties": false, "properties": { "c": { "$ref": "#/definitions/B.B" diff --git a/test/programs/type-aliases-multitype-array/schema.json b/test/programs/type-aliases-multitype-array/schema.json index ca5a1f7b..4eb71d6e 100644 --- a/test/programs/type-aliases-multitype-array/schema.json +++ b/test/programs/type-aliases-multitype-array/schema.json @@ -2,6 +2,7 @@ "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "MyObject": { + "additionalProperties": false, "properties": { "array": { "items": { diff --git a/test/programs/type-aliases-partial/schema.json b/test/programs/type-aliases-partial/schema.json index 798ddab5..b41bc0c0 100644 --- a/test/programs/type-aliases-partial/schema.json +++ b/test/programs/type-aliases-partial/schema.json @@ -1,5 +1,6 @@ { "type": "object", + "additionalProperties": false, "properties": { "foo": { "$ref": "#/definitions/Partial" @@ -14,6 +15,7 @@ ], "definitions": { "__type": { + "additionalProperties": false, "type": "object", "properties": { "x": { @@ -29,6 +31,7 @@ }, "__type_1": { "type": "object", + "additionalProperties": false, "properties": { "a": { "type": "number" diff --git a/test/programs/type-aliases-recursive-object-topref/schema.json b/test/programs/type-aliases-recursive-object-topref/schema.json index f3db0536..d11ace0c 100644 --- a/test/programs/type-aliases-recursive-object-topref/schema.json +++ b/test/programs/type-aliases-recursive-object-topref/schema.json @@ -6,6 +6,7 @@ "$ref": "#/definitions/MyObject" }, "MyObject": { + "additionalProperties": false, "properties": { "alias": { "$ref": "#/definitions/MyAlias" diff --git a/test/programs/type-aliases-union-namespace/schema.json b/test/programs/type-aliases-union-namespace/schema.json index 1690f8b7..ee00df40 100644 --- a/test/programs/type-aliases-union-namespace/schema.json +++ b/test/programs/type-aliases-union-namespace/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "Cardinal": { "enum": [ diff --git a/test/programs/type-aliases/schema.json b/test/programs/type-aliases/schema.json index abd02bd6..da750719 100644 --- a/test/programs/type-aliases/schema.json +++ b/test/programs/type-aliases/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "MyAlias": { "$ref": "#/definitions/MySubObject", @@ -10,6 +11,7 @@ "type": "string" }, "MySubObject": { + "additionalProperties": false, "description": "My sub object", "properties": { "propA": { diff --git a/test/programs/type-anonymous/schema.json b/test/programs/type-anonymous/schema.json index 87c34470..da9e9668 100644 --- a/test/programs/type-anonymous/schema.json +++ b/test/programs/type-anonymous/schema.json @@ -1,7 +1,9 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "FieldWithAnonType": { + "additionalProperties": false, "properties": { "SubfieldA": { "type": "number" @@ -13,6 +15,7 @@ ] }, "SubfieldC": { + "additionalProperties": false, "properties": { "SubsubfieldA": { "items": { diff --git a/test/programs/type-intersection-recursive/main.ts b/test/programs/type-intersection-recursive/main.ts index 138f3b57..a5c17469 100644 --- a/test/programs/type-intersection-recursive/main.ts +++ b/test/programs/type-intersection-recursive/main.ts @@ -2,5 +2,5 @@ interface ChildFoo { } interface Foo { - readonly childFoos: Foo & ChildFoo; + readonly childFoos: Foo | ChildFoo; } diff --git a/test/programs/type-intersection-recursive/schema.json b/test/programs/type-intersection-recursive/schema.json index 2cf2df63..aff6b55e 100644 --- a/test/programs/type-intersection-recursive/schema.json +++ b/test/programs/type-intersection-recursive/schema.json @@ -3,17 +3,19 @@ "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "ChildFoo": { + "additionalProperties": false, "type": "object" }, "Foo": { + "additionalProperties": false, "properties": { "childFoos": { - "allOf": [ + "anyOf": [ { - "$ref": "#/definitions/Foo" + "$ref": "#/definitions/ChildFoo" }, { - "$ref": "#/definitions/ChildFoo" + "$ref": "#/definitions/Foo" } ] } diff --git a/test/programs/type-literals/schema.json b/test/programs/type-literals/schema.json index b7852baa..ce97b1df 100644 --- a/test/programs/type-literals/schema.json +++ b/test/programs/type-literals/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "param1": { "enum": ["1", "2", "3"], diff --git a/test/programs/type-mapped-types/schema.json b/test/programs/type-mapped-types/schema.json index a29918f6..62ca7a4d 100644 --- a/test/programs/type-mapped-types/schema.json +++ b/test/programs/type-mapped-types/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "str1": { "type": "string" diff --git a/test/programs/type-no-aliases-recursive-topref/schema.json b/test/programs/type-no-aliases-recursive-topref/schema.json index 56159201..f86162cf 100644 --- a/test/programs/type-no-aliases-recursive-topref/schema.json +++ b/test/programs/type-no-aliases-recursive-topref/schema.json @@ -3,6 +3,7 @@ "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "MyObject": { + "additionalProperties": false, "properties": { "alias": { "$ref": "#/definitions/MyObject" diff --git a/test/programs/type-nullable/schema.json b/test/programs/type-nullable/schema.json index 988af06a..91036b03 100644 --- a/test/programs/type-nullable/schema.json +++ b/test/programs/type-nullable/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "MyType2": { "type": [ @@ -21,6 +22,7 @@ ] }, "MyType6": { + "additionalProperties": false, "type": "object" } }, @@ -72,6 +74,7 @@ "type": "number" } }, + "additionalProperties": false, "required": [ "foo" ], diff --git a/test/programs/type-primitives/schema.json b/test/programs/type-primitives/schema.json index ef6a8b40..dadd3a34 100644 --- a/test/programs/type-primitives/schema.json +++ b/test/programs/type-primitives/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "array1": { "default": null, diff --git a/test/programs/type-recursive/schema.json b/test/programs/type-recursive/schema.json index d2a59a30..ef024db2 100644 --- a/test/programs/type-recursive/schema.json +++ b/test/programs/type-recursive/schema.json @@ -3,6 +3,7 @@ "$ref": "#/definitions/TestChildren", "definitions": { "TestChild": { + "additionalProperties": false, "properties": { "type": { "type": "string" diff --git a/test/programs/type-union-strict-null-keep-description/schema.json b/test/programs/type-union-strict-null-keep-description/schema.json index c20d5ed4..4758f995 100644 --- a/test/programs/type-union-strict-null-keep-description/schema.json +++ b/test/programs/type-union-strict-null-keep-description/schema.json @@ -1,8 +1,10 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "description": "Description of MyObject.", "properties": { "inner1": { + "additionalProperties": false, "description": "Description of InnerObject.", "properties": { "foo": { @@ -16,6 +18,7 @@ "type": "object" }, "inner2": { + "additionalProperties": false, "description": "Override description.", "properties": { "foo": { diff --git a/test/programs/type-union-tagged/schema.json b/test/programs/type-union-tagged/schema.json index d9d04cc6..47ffa0b0 100644 --- a/test/programs/type-union-tagged/schema.json +++ b/test/programs/type-union-tagged/schema.json @@ -13,6 +13,7 @@ ], "definitions": { "Circle": { + "additionalProperties": false, "properties": { "kind": { "const": "circle", @@ -29,6 +30,7 @@ "type": "object" }, "Rectangle": { + "additionalProperties": false, "properties": { "height": { "type": "number" @@ -49,6 +51,7 @@ "type": "object" }, "Square": { + "additionalProperties": false, "properties": { "kind": { "const": "square", diff --git a/test/programs/type-union/schema.json b/test/programs/type-union/schema.json index b3ea47d8..6ea87de6 100644 --- a/test/programs/type-union/schema.json +++ b/test/programs/type-union/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "definitions": { "MyType1": { "type": [ diff --git a/test/programs/typeof-keyword/schema.json b/test/programs/typeof-keyword/schema.json index 40c55279..77b9eecf 100644 --- a/test/programs/typeof-keyword/schema.json +++ b/test/programs/typeof-keyword/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "foo": { "typeof": "function" diff --git a/test/programs/undefined-property/schema.json b/test/programs/undefined-property/schema.json index cdcaaec7..28db415d 100644 --- a/test/programs/undefined-property/schema.json +++ b/test/programs/undefined-property/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "type": "object", "properties": { "a": { diff --git a/test/programs/unique-names-multiple-subdefinitions/schema.json b/test/programs/unique-names-multiple-subdefinitions/schema.json index 79993b6a..e738adaa 100644 --- a/test/programs/unique-names-multiple-subdefinitions/schema.json +++ b/test/programs/unique-names-multiple-subdefinitions/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "sub": { "$ref": "#/definitions/SubObject.0eb4e9af" @@ -11,6 +12,7 @@ ], "definitions": { "SubObject.0eb4e9af": { + "additionalProperties": false, "properties": { "is": { "const": "SubObject_1", diff --git a/test/programs/unique-names/schema.MyObject.f2191116.json b/test/programs/unique-names/schema.MyObject.f2191116.json index 3ba8893b..cb63da87 100644 --- a/test/programs/unique-names/schema.MyObject.f2191116.json +++ b/test/programs/unique-names/schema.MyObject.f2191116.json @@ -1,5 +1,6 @@ { "type": "object", + "additionalProperties": false, "properties": { "is": { "type": "string", diff --git a/test/programs/unique-names/schema.MyObject.fded1213.json b/test/programs/unique-names/schema.MyObject.fded1213.json index b7df6b93..6b129d23 100644 --- a/test/programs/unique-names/schema.MyObject.fded1213.json +++ b/test/programs/unique-names/schema.MyObject.fded1213.json @@ -1,5 +1,6 @@ { "type": "object", + "additionalProperties": false, "properties": { "is": { "type": "string", diff --git a/test/programs/user-symbols/schema.json b/test/programs/user-symbols/schema.json index 0a0e4c1a..8720501f 100644 --- a/test/programs/user-symbols/schema.json +++ b/test/programs/user-symbols/schema.json @@ -2,6 +2,7 @@ "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "Context": { + "additionalProperties": false, "properties": { "ip": { "type": "string" diff --git a/test/programs/user-validation-keywords/schema.json b/test/programs/user-validation-keywords/schema.json index a53aadd0..3726a3b6 100644 --- a/test/programs/user-validation-keywords/schema.json +++ b/test/programs/user-validation-keywords/schema.json @@ -1,5 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, "properties": { "name": { "chance": { diff --git a/test/schema.test.ts b/test/schema.test.ts index 4f7fab62..226e43d8 100644 --- a/test/schema.test.ts +++ b/test/schema.test.ts @@ -44,6 +44,9 @@ export function assertSchema( if (!("required" in settings)) { settings.required = true; } + if (!("noExtraProps" in settings)) { + settings.noExtraProps = true; + } const files = [resolve(BASE + group + "/main.ts")]; const actual = TJS.generateSchema(TJS.getProgramFromFiles(files, compilerOptions), type, settings, files); @@ -82,6 +85,10 @@ export function assertSchemas( settings.required = true; } + if (!("noExtraProps" in settings)) { + settings.noExtraProps = true; + } + const generator = TJS.buildGenerator( TJS.getProgramFromFiles([resolve(BASE + group + "/main.ts")], compilerOptions), settings @@ -122,6 +129,10 @@ export function assertRejection( settings.required = true; } + if (!("noExtraProps" in settings)) { + settings.noExtraProps = true; + } + const files = [resolve(BASE + group + "/main.ts")]; schema = TJS.generateSchema(TJS.getProgramFromFiles(files, compilerOptions), type, settings, files); }, errType || /.*/); From f38327e27301c38ab1457bfcfd620dacabe9e851 Mon Sep 17 00:00:00 2001 From: Netanel-MCE <109151575+netanel-mce@users.noreply.github.com> Date: Fri, 25 Aug 2023 01:55:08 +0300 Subject: [PATCH 24/60] Correct schema for mapped object with other keys (#567) * allow-extra-props-where-pattern-properties-not-empty * object mapped and other keys * docs * remove unnecessary changes * remove unnecessary changes 2 * remove unnecessary changes 3 * remove unnecessary changes 4 * fix auto test * fix comment * 0.60.0 * Back to 0.59.0 --------- Co-authored-by: netanel-mce --- api.md | 11 ++++++++++ test/programs/numeric-keys-and-others/main.ts | 5 +++++ .../numeric-keys-and-others/schema.json | 22 +++++++++++++++++++ test/schema.test.ts | 1 + typescript-json-schema.ts | 13 +++++++---- 5 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 test/programs/numeric-keys-and-others/main.ts create mode 100644 test/programs/numeric-keys-and-others/schema.json diff --git a/api.md b/api.md index 57c9d7c9..bb47b106 100644 --- a/api.md +++ b/api.md @@ -1285,6 +1285,17 @@ interface SomeOtherDefinition { ``` +## [numeric-keys-and-others](./test/programs/numeric-keys-and-others) + +```ts +interface NumericKeysAndOthers { + [key: number]: number; + a: string; + b: boolean; +} +``` + + ## [object-numeric-index](./test/programs/object-numeric-index) ```ts diff --git a/test/programs/numeric-keys-and-others/main.ts b/test/programs/numeric-keys-and-others/main.ts new file mode 100644 index 00000000..d668aaad --- /dev/null +++ b/test/programs/numeric-keys-and-others/main.ts @@ -0,0 +1,5 @@ +interface NumericKeysAndOthers { + [key: number]: number; + a: string; + b: boolean; +} diff --git a/test/programs/numeric-keys-and-others/schema.json b/test/programs/numeric-keys-and-others/schema.json new file mode 100644 index 00000000..96b0c0a3 --- /dev/null +++ b/test/programs/numeric-keys-and-others/schema.json @@ -0,0 +1,22 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "patternProperties": { + "^[0-9]+$": { + "type": "number" + } + }, + "properties": { + "a": { + "type": "string" + }, + "b": { + "type": "boolean" + } + }, + "required": [ + "a", + "b" + ], + "type": "object" +} \ No newline at end of file diff --git a/test/schema.test.ts b/test/schema.test.ts index 226e43d8..dc1f4e86 100644 --- a/test/schema.test.ts +++ b/test/schema.test.ts @@ -379,6 +379,7 @@ describe("schema", () => { assertSchema("array-empty", "MyEmptyArray"); assertSchema("map-types", "MyObject"); assertSchema("extra-properties", "MyObject"); + assertSchema("numeric-keys-and-others", "NumericKeysAndOthers"); }); describe("string literals", () => { diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index 910df4ce..8d1212b8 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -721,6 +721,9 @@ export class JsonSchemaGenerator { definition.patternProperties = { [NUMERIC_INDEX_PATTERN]: this.getTypeDefinition(arrayType), }; + if (!!Array.from((propertyType).members)?.find((member: [string]) => member[0] !== "__index")) { + this.getClassDefinition(propertyType, definition); + } } else { definition.type = "array"; if (!definition.items) { @@ -1079,8 +1082,8 @@ export class JsonSchemaGenerator { } const indexSymbol: ts.Symbol = (indexSignature.parameters[0]).symbol; const indexType = this.tc.getTypeOfSymbolAtLocation(indexSymbol, node); - const isStringIndexed = indexType.flags === ts.TypeFlags.String; - if (indexType.flags !== ts.TypeFlags.Number && !isStringIndexed) { + const isIndexedObject = indexType.flags === ts.TypeFlags.String || indexType.flags === ts.TypeFlags.Number; + if (indexType.flags !== ts.TypeFlags.Number && !isIndexedObject) { throw new Error( "Not supported: IndexSignatureDeclaration with index symbol other than a number or a string" ); @@ -1105,9 +1108,11 @@ export class JsonSchemaGenerator { if (!def) { def = this.getTypeDefinition(typ, undefined, "anyOf"); } - if (isStringIndexed) { + if (isIndexedObject) { definition.type = "object"; - definition.additionalProperties = def; + if (!Object.keys(definition.patternProperties || {}).length) { + definition.additionalProperties = def; + } } else { definition.type = "array"; if (!definition.items) { From 4ee4b09572d052db7980266602684a69165a8ea9 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Thu, 24 Aug 2023 15:55:27 -0700 Subject: [PATCH 25/60] v0.60.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7f0bf141..12701c1b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json-schema", - "version": "0.59.0", + "version": "0.60.0", "description": "typescript-json-schema generates JSON Schema files from your Typescript sources", "main": "dist/typescript-json-schema.js", "typings": "dist/typescript-json-schema.d.ts", From 3268f3b15f3606990e35ac7e10f5101019d727df Mon Sep 17 00:00:00 2001 From: chatcan Date: Sat, 2 Sep 2023 04:01:16 +0800 Subject: [PATCH 26/60] fix #426 (#569) * fix https://github.com/YousefED/typescript-json-schema/issues/426 * fix https://github.com/YousefED/typescript-json-schema/issues/426 --------- Co-authored-by: can --- test/programs/string-template-literal/main.ts | 11 ++++ .../string-template-literal/schema.json | 57 +++++++++++++++++++ test/schema.test.ts | 4 ++ typescript-json-schema.ts | 38 +++++++++++++ 4 files changed, 110 insertions(+) create mode 100644 test/programs/string-template-literal/main.ts create mode 100644 test/programs/string-template-literal/schema.json diff --git a/test/programs/string-template-literal/main.ts b/test/programs/string-template-literal/main.ts new file mode 100644 index 00000000..4b0745b0 --- /dev/null +++ b/test/programs/string-template-literal/main.ts @@ -0,0 +1,11 @@ +interface MyObject { + a: `@${string}`, + b: `@${number}`, + c: `@${bigint}`, + d: `@${boolean}`, + e: `@${undefined}`, + f: `@${null}`, + g: `${string}@`, + h: `${number}@`, + i: `${string}@${number}`, +} \ No newline at end of file diff --git a/test/programs/string-template-literal/schema.json b/test/programs/string-template-literal/schema.json new file mode 100644 index 00000000..cc39dd2c --- /dev/null +++ b/test/programs/string-template-literal/schema.json @@ -0,0 +1,57 @@ +{ + "type": "object", + "properties": { + "a": { + "type": "string", + "pattern": "^@.*$" + }, + "b": { + "type": "string", + "pattern": "^@[0-9]*$" + }, + "c": { + "type": "string", + "pattern": "^@[0-9]*$" + }, + "d": { + "enum": [ + "@false", + "@true" + ], + "type": "string" + }, + "e": { + "type": "string", + "const": "@undefined" + }, + "f": { + "type": "string", + "const": "@null" + }, + "g": { + "type": "string", + "pattern": "^.*@$" + }, + "h": { + "type": "string", + "pattern": "^[0-9]*@$" + }, + "i": { + "type": "string", + "pattern": "^.*@[0-9]*$" + } + }, + "additionalProperties": false, + "required": [ + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i" + ], + "$schema": "http://json-schema.org/draft-07/schema#" +} \ No newline at end of file diff --git a/test/schema.test.ts b/test/schema.test.ts index dc1f4e86..14069c50 100644 --- a/test/schema.test.ts +++ b/test/schema.test.ts @@ -387,6 +387,10 @@ describe("schema", () => { assertSchema("string-literals-inline", "MyObject"); }); + describe("template string", () => { + assertSchema("string-template-literal", "MyObject"); + }); + describe("custom dates", () => { assertSchema("custom-dates", "foo.Bar"); }); diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index 8d1212b8..2337b64c 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -724,6 +724,44 @@ export class JsonSchemaGenerator { if (!!Array.from((propertyType).members)?.find((member: [string]) => member[0] !== "__index")) { this.getClassDefinition(propertyType, definition); } + } else if (propertyType.flags & ts.TypeFlags.TemplateLiteral) { + definition.type = "string"; + // @ts-ignore + const {texts, types} = propertyType; + const pattern = []; + for (let i = 0; i < texts.length; i++) { + const text = texts[i]; + const type = types[i]; + + if (i === 0) { + pattern.push(`^`); + } + + if (type) { + if (type.flags & ts.TypeFlags.String) { + pattern.push(`${text}.*`); + } + + if (type.flags & ts.TypeFlags.Number + || type.flags & ts.TypeFlags.BigInt) { + pattern.push(`${text}[0-9]*`); + } + + if (type.flags & ts.TypeFlags.Undefined) { + pattern.push(`${text}undefined`); + } + + if (type.flags & ts.TypeFlags.Null) { + pattern.push(`${text}null`); + } + } + + + if (i === texts.length - 1) { + pattern.push(`${text}$`); + } + } + definition.pattern = pattern.join(""); } else { definition.type = "array"; if (!definition.items) { From a9bb2150bd3afed182af00f17fcef6f8734df12f Mon Sep 17 00:00:00 2001 From: William Assis <35489495+gassiss@users.noreply.github.com> Date: Thu, 7 Sep 2023 05:24:29 -0300 Subject: [PATCH 27/60] add constAsEnum flag to convert constant values to single value enum (#571) * add constAsEnum flag to convert constant values in properties to single value enum * fix lint --- README.md | 1 + test/programs/const-as-enum/main.ts | 3 +++ test/programs/const-as-enum/schema.json | 16 ++++++++++++++++ test/schema.test.ts | 4 ++++ typescript-json-schema-cli.ts | 3 +++ typescript-json-schema.ts | 15 ++++++++++++++- 6 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 test/programs/const-as-enum/main.ts create mode 100644 test/programs/const-as-enum/schema.json diff --git a/README.md b/README.md index f757a833..021428cc 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,7 @@ Options: --id Set schema id. [string] [default: ""] --defaultNumberType Default number type. [choices: "number", "integer"] [default: "number"] --tsNodeRegister Use ts-node/register (needed for require typescript files). [boolean] [default: false] + --constAsEnum Use enums with a single value when declaring constants. [boolean] [default: false] ``` ### Programmatic use diff --git a/test/programs/const-as-enum/main.ts b/test/programs/const-as-enum/main.ts new file mode 100644 index 00000000..fd13ce55 --- /dev/null +++ b/test/programs/const-as-enum/main.ts @@ -0,0 +1,3 @@ +export interface MyObject { + reference: true; +} diff --git a/test/programs/const-as-enum/schema.json b/test/programs/const-as-enum/schema.json new file mode 100644 index 00000000..061c10c0 --- /dev/null +++ b/test/programs/const-as-enum/schema.json @@ -0,0 +1,16 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "reference": { + "enum": [ + true + ], + "type": "boolean" + } + }, + "required": [ + "reference" + ], + "type": "object" +} diff --git a/test/schema.test.ts b/test/schema.test.ts index 14069c50..247eef78 100644 --- a/test/schema.test.ts +++ b/test/schema.test.ts @@ -543,3 +543,7 @@ describe("satisfies keyword - ignore from a \"satisfies\" and build by rally typ describe("const keyword", () => { assertSchema("const-keyword", "Object"); }); + +describe("constAsEnum option", () => { + assertSchema("const-as-enum", "MyObject", { constAsEnum: true }); +}); diff --git a/typescript-json-schema-cli.ts b/typescript-json-schema-cli.ts index 11eb182b..97418620 100644 --- a/typescript-json-schema-cli.ts +++ b/typescript-json-schema-cli.ts @@ -53,6 +53,8 @@ export function run() { .describe("defaultNumberType", "Default number type.") .boolean("tsNodeRegister").default("tsNodeRegister", defaultArgs.tsNodeRegister) .describe("tsNodeRegister", "Use ts-node/register (needed for requiring typescript files).") + .boolean("constAsEnum").default("constAsEnum", defaultArgs.constAsEnum) + .describe("constAsEnum", "Use enums with a single value when declaring constants. Needed for OpenAPI compatibility") .argv; exec(args._[0], args._[1], { @@ -78,6 +80,7 @@ export function run() { id: args.id, defaultNumberType: args.defaultNumberType, tsNodeRegister: args.tsNodeRegister, + constAsEnum: args.constAsEnum, }); } diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index 2337b64c..45876994 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -59,6 +59,7 @@ export function getDefaultArgs(): Args { id: "", defaultNumberType: "number", tsNodeRegister: false, + constAsEnum: false, }; } @@ -89,6 +90,7 @@ export type Args = { id: string; defaultNumberType: "number" | "integer"; tsNodeRegister: boolean; + constAsEnum: boolean; }; export type PartialArgs = Partial; @@ -486,6 +488,12 @@ export class JsonSchemaGenerator { */ private userValidationKeywords: ValidationKeywords; + /** + * If true, this makes constants be defined as enums with a single value. This is useful + * for cases where constant values are not supported, such as OpenAPI. + */ + private constAsEnum: boolean; + /** * Types are assigned names which are looked up by their IDs. This is the * map from type IDs to type names. @@ -511,6 +519,7 @@ export class JsonSchemaGenerator { this.inheritingTypes = inheritingTypes; this.tc = tc; this.userValidationKeywords = args.validationKeywords.reduce((acc, word) => ({ ...acc, [word]: true }), {}); + this.constAsEnum = args.constAsEnum; } public get ReffedDefinitions(): { [key: string]: Definition } { @@ -709,7 +718,11 @@ export class JsonSchemaGenerator { default: throw new Error(`Not supported: ${value} as a enum value`); } - definition.const = value; + if (this.constAsEnum) { + definition.enum = [value]; + } else { + definition.const = value; + } } else if (arrayType !== undefined) { if ( propertyType.flags & ts.TypeFlags.Object && From 655d7741a6e0514855b36f94cc1a517d23159f19 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Thu, 7 Sep 2023 10:24:53 +0200 Subject: [PATCH 28/60] v0.61.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 12701c1b..51092781 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json-schema", - "version": "0.60.0", + "version": "0.61.0", "description": "typescript-json-schema generates JSON Schema files from your Typescript sources", "main": "dist/typescript-json-schema.js", "typings": "dist/typescript-json-schema.d.ts", From c55b419e55b96f4e385d9e2816cf97d13e5a58b4 Mon Sep 17 00:00:00 2001 From: Elliot <105280090+Elliot-Ball-Tray@users.noreply.github.com> Date: Wed, 4 Oct 2023 21:08:03 +0100 Subject: [PATCH 29/60] Remove enum sorting (#576) * remove enum sorting * fix enum tests by updating the order of enums in assertions --- test/programs/enums-compiled-compute/schema.json | 4 ++-- test/programs/enums-mixed/schema.json | 4 ++-- test/programs/enums-number-initialized/schema.json | 4 ++-- test/programs/enums-string/schema.json | 4 ++-- typescript-json-schema.ts | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/test/programs/enums-compiled-compute/schema.json b/test/programs/enums-compiled-compute/schema.json index 3217bf03..5e9df0b4 100644 --- a/test/programs/enums-compiled-compute/schema.json +++ b/test/programs/enums-compiled-compute/schema.json @@ -1,10 +1,10 @@ { "$schema": "http://json-schema.org/draft-07/schema#", "enum": [ - 1, 2, 4, - 6 + 6, + 1 ], "type": "number" } diff --git a/test/programs/enums-mixed/schema.json b/test/programs/enums-mixed/schema.json index c6db8fb5..3b91d6a3 100644 --- a/test/programs/enums-mixed/schema.json +++ b/test/programs/enums-mixed/schema.json @@ -6,9 +6,9 @@ "enum": [ 0, 1, - null, + true, "str", - true + null ], "type": [ "number", diff --git a/test/programs/enums-number-initialized/schema.json b/test/programs/enums-number-initialized/schema.json index 480b2df6..01c66c33 100644 --- a/test/programs/enums-number-initialized/schema.json +++ b/test/programs/enums-number-initialized/schema.json @@ -1,10 +1,10 @@ { "$schema": "http://json-schema.org/draft-07/schema#", "enum": [ - 1, 10, 11, - 12 + 12, + 1 ], "type": "number" } diff --git a/test/programs/enums-string/schema.json b/test/programs/enums-string/schema.json index e3b07564..1f7e1e67 100644 --- a/test/programs/enums-string/schema.json +++ b/test/programs/enums-string/schema.json @@ -4,9 +4,9 @@ "definitions": { "Enum": { "enum": [ - "123", "x", - "y" + "y", + "123" ], "type": "string" } diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index 45876994..5e43a031 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -926,7 +926,7 @@ export class JsonSchemaGenerator { if (enumValues.length > 0) { if (enumValues.length > 1) { - definition.enum = enumValues.sort(); + definition.enum = enumValues; } else { definition.const = enumValues[0]; } From ec3f0982771a04a032f68351728b85bcb4480726 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Fri, 13 Oct 2023 11:59:21 -0400 Subject: [PATCH 30/60] v0.62.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 51092781..fec1f42e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json-schema", - "version": "0.61.0", + "version": "0.62.0", "description": "typescript-json-schema generates JSON Schema files from your Typescript sources", "main": "dist/typescript-json-schema.js", "typings": "dist/typescript-json-schema.d.ts", From 0a963cae8dc4d6e93760191eecc1b8b37ba78ab7 Mon Sep 17 00:00:00 2001 From: Denys Otrishko Date: Wed, 14 Feb 2024 02:33:14 +0200 Subject: [PATCH 31/60] fix: avoid unrelated schemaOverrides when building definition for single type (#589) --- .../schema.MyOtherObjectWithOverride.json | 14 +++++++ .../schema.program.json | 40 +++++++++++++++++++ test/schema.test.ts | 37 +++++++++++++++++ typescript-json-schema.ts | 28 ++++++++----- 4 files changed, 108 insertions(+), 11 deletions(-) create mode 100644 test/programs/no-unrelated-definitions/schema.MyOtherObjectWithOverride.json create mode 100644 test/programs/no-unrelated-definitions/schema.program.json diff --git a/test/programs/no-unrelated-definitions/schema.MyOtherObjectWithOverride.json b/test/programs/no-unrelated-definitions/schema.MyOtherObjectWithOverride.json new file mode 100644 index 00000000..a4aa2220 --- /dev/null +++ b/test/programs/no-unrelated-definitions/schema.MyOtherObjectWithOverride.json @@ -0,0 +1,14 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "definitions": { + "SomeOtherDefinition": { + "type": "string" + } + }, + "properties": { + "sub": { + "$ref": "#/definitions/SomeOtherDefinition" + } + }, + "type": "object" +} diff --git a/test/programs/no-unrelated-definitions/schema.program.json b/test/programs/no-unrelated-definitions/schema.program.json new file mode 100644 index 00000000..4eb968c7 --- /dev/null +++ b/test/programs/no-unrelated-definitions/schema.program.json @@ -0,0 +1,40 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "definitions": { + "MyObject": { + "properties": { + "sub": { + "$ref": "#/definitions/SomeDefinition" + } + }, + "type": "object" + }, + "MyOtherObject": { + "properties": { + "sub": { + "$ref": "#/definitions/SomeOtherDefinition" + } + }, + "type": "object" + }, + "SomeDefinition": { + "properties": { + "is": { + "type": "string" + } + }, + "type": "object" + }, + "SomeOtherDefinition": { + "properties": { + "is": { + "type": "string" + } + }, + "type": "object" + }, + "UnrelatedDefinition": { + "type": "string" + } + } +} diff --git a/test/schema.test.ts b/test/schema.test.ts index 247eef78..da96a97e 100644 --- a/test/schema.test.ts +++ b/test/schema.test.ts @@ -534,6 +534,43 @@ describe("when reusing a generator", () => { assert.deepEqual(actualSchemaObject, expectedSchemaObject, `The schema for ${symbolName} is not as expected`); }); }); + + it("should not add unrelated schemaOverrides to schemas", () => { + const testProgramPath = BASE + "no-unrelated-definitions/"; + const program = TJS.programFromConfig(resolve(testProgramPath + "tsconfig.json")); + const generator = TJS.buildGenerator(program); + + const schemaOverride: TJS.Definition = { type: "string" }; + generator?.setSchemaOverride("SomeOtherDefinition", schemaOverride); + + [ + { symbolName: "MyObject", schemaName: "MyObject" }, + { symbolName: "MyOtherObject", schemaName: "MyOtherObjectWithOverride" }, + ].forEach(({ symbolName, schemaName }) => { + const expectedSchemaString = readFileSync(`${testProgramPath}schema.${schemaName}.json`, "utf8"); + const expectedSchemaObject = JSON.parse(expectedSchemaString); + + const actualSchemaObject = generator?.getSchemaForSymbol(symbolName); + + assert.deepEqual(actualSchemaObject, expectedSchemaObject, `The schema for ${symbolName} is not as expected`); + }); + }); + + it("should include all schemaOverrides when generating program schemas", () => { + const testProgramPath = BASE + "no-unrelated-definitions/"; + const program = TJS.programFromConfig(resolve(`${testProgramPath}tsconfig.json`)); + const generator = TJS.buildGenerator(program)!; + + const schemaOverride: TJS.Definition = { type: "string" }; + generator.setSchemaOverride("UnrelatedDefinition", schemaOverride); + + const expectedSchemaString = readFileSync(`${testProgramPath}schema.program.json`, "utf8"); + const expectedSchemaObject = JSON.parse(expectedSchemaString); + + const actualSchemaObject = TJS.generateSchema(program, "*", {}, undefined, generator); + + assert.deepEqual(actualSchemaObject, expectedSchemaObject, `The schema for whole program is not as expected`); + }); }); describe("satisfies keyword - ignore from a \"satisfies\" and build by rally type", () => { diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index 5e43a031..c423a112 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -534,15 +534,17 @@ export class JsonSchemaGenerator { return false; } - private resetSchemaSpecificProperties() { + private resetSchemaSpecificProperties(includeAllOverrides: boolean = false) { this.reffedDefinitions = {}; this.typeIdsByName = {}; this.typeNamesById = {}; // restore schema overrides - this.schemaOverrides.forEach((value, key) => { - this.reffedDefinitions[key] = value; - }); + if (includeAllOverrides) { + this.schemaOverrides.forEach((value, key) => { + this.reffedDefinitions[key] = value; + }); + } } /** @@ -1410,8 +1412,12 @@ export class JsonSchemaGenerator { } // Create the actual definition only if is an inline definition, or - // if it will be a $ref and it is not yet created - if (!asRef || !this.reffedDefinitions[fullTypeName]) { + // if it will be a $ref and it is not yet created. + // Prioritise overrides. + const overrideDefinition = this.schemaOverrides.get(fullTypeName); + if (overrideDefinition) { + this.reffedDefinitions[fullTypeName] = overrideDefinition; + } else if (!asRef || !this.reffedDefinitions[fullTypeName]) { if (asRef) { // must be here to prevent recursivity problems let reffedDefinition: Definition; @@ -1511,12 +1517,12 @@ export class JsonSchemaGenerator { this.schemaOverrides.set(symbolName, schema); } - public getSchemaForSymbol(symbolName: string, includeReffedDefinitions: boolean = true): Definition { + public getSchemaForSymbol(symbolName: string, includeReffedDefinitions: boolean = true, includeAllOverrides: boolean = false): Definition { if (!this.allSymbols[symbolName]) { throw new Error(`type ${symbolName} not found`); } - this.resetSchemaSpecificProperties(); + this.resetSchemaSpecificProperties(includeAllOverrides); const def = this.getTypeDefinition( this.allSymbols[symbolName], @@ -1538,13 +1544,13 @@ export class JsonSchemaGenerator { return def; } - public getSchemaForSymbols(symbolNames: string[], includeReffedDefinitions: boolean = true): Definition { + public getSchemaForSymbols(symbolNames: string[], includeReffedDefinitions: boolean = true, includeAllOverrides: boolean = false): Definition { const root = { $schema: "http://json-schema.org/draft-07/schema#", definitions: {}, }; - this.resetSchemaSpecificProperties(); + this.resetSchemaSpecificProperties(includeAllOverrides); const id = this.args.id; @@ -1742,7 +1748,7 @@ export function generateSchema( if (fullTypeName === "*") { // All types in file(s) - return generator.getSchemaForSymbols(generator.getMainFileSymbols(program, onlyIncludeFiles)); + return generator.getSchemaForSymbols(generator.getMainFileSymbols(program, onlyIncludeFiles), true, true); } else if (args.uniqueNames) { // Find the hashed type name to use as the root object const matchingSymbols = generator.getSymbols(fullTypeName); From 010adce3ada5b507316d40426c12c43309a16ee8 Mon Sep 17 00:00:00 2001 From: Denys Otrishko Date: Thu, 15 Feb 2024 13:29:14 +0200 Subject: [PATCH 32/60] fix: return overrides schema in getSchemaForSymbol (#590) --- test/schema.test.ts | 46 +++++++++++++++++++++++++++++++++++++++ typescript-json-schema.ts | 24 ++++++++++++-------- 2 files changed, 61 insertions(+), 9 deletions(-) diff --git a/test/schema.test.ts b/test/schema.test.ts index da96a97e..a29fe972 100644 --- a/test/schema.test.ts +++ b/test/schema.test.ts @@ -168,6 +168,52 @@ describe("interfaces", () => { assert.deepEqual(schema.definitions!["MySubObject"], schemaOverride); } }); + it("should output the schemas set by setSchemaOverride with getSchemaForSymbol", () => { + const program = TJS.getProgramFromFiles([resolve(BASE + "interface-multi/main.ts")]); + const generator = TJS.buildGenerator(program); + assert(generator !== null); + + const schemaOverride1: TJS.Definition = { type: "string" }; + const schemaOverride2: TJS.Definition = { type: "integer" }; + + generator?.setSchemaOverride("MySubObject", schemaOverride1); + generator?.setSchemaOverride("MySubObject2", schemaOverride2); + const schema = generator?.getSchemaForSymbol("MySubObject"); + + // Should not change original schema object. + assert.deepEqual(schemaOverride1, { type: "string" }); + assert.deepEqual(schemaOverride2, { type: "integer" }); + + assert.deepEqual(schema, { ...schemaOverride1, $schema: "http://json-schema.org/draft-07/schema#" }); + }); + it("should output the schemas set by setSchemaOverride with getSchemaForSymbol and other overrides", () => { + const program = TJS.getProgramFromFiles([resolve(BASE + "interface-multi/main.ts")]); + const generator = TJS.buildGenerator(program); + assert(generator !== null); + const schemaOverride1: TJS.Definition = { type: "string" }; + const schemaOverride2: TJS.Definition = { type: "integer" }; + + generator?.setSchemaOverride("MySubObject1", schemaOverride1); + generator?.setSchemaOverride("MySubObject2", schemaOverride2); + const schema = generator?.getSchemaForSymbol("MySubObject1", true, true); + + // Should not change original schema object. + assert.deepEqual(schemaOverride1, { type: "string" }); + assert.deepEqual(schemaOverride2, { type: "integer" }); + + assert.deepEqual(schema, { + ...schemaOverride1, + $schema: "http://json-schema.org/draft-07/schema#", + definitions: { + MySubObject1: { + type: "string" + }, + MySubObject2: { + type: "integer" + } + } + }); + }); it("should ignore type aliases that have schema overrides", () => { const program = TJS.getProgramFromFiles([resolve(BASE + "type-alias-schema-override/main.ts")]); const generator = TJS.buildGenerator(program); diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index c423a112..7d037639 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -1518,20 +1518,26 @@ export class JsonSchemaGenerator { } public getSchemaForSymbol(symbolName: string, includeReffedDefinitions: boolean = true, includeAllOverrides: boolean = false): Definition { - if (!this.allSymbols[symbolName]) { + const overrideDefinition = this.schemaOverrides.get(symbolName); + if (!this.allSymbols[symbolName] && !overrideDefinition) { throw new Error(`type ${symbolName} not found`); } this.resetSchemaSpecificProperties(includeAllOverrides); - const def = this.getTypeDefinition( - this.allSymbols[symbolName], - this.args.topRef, - undefined, - undefined, - undefined, - this.userSymbols[symbolName] || undefined - ); + let def; + if (overrideDefinition) { + def = { ...overrideDefinition }; + } else { + def = overrideDefinition ? overrideDefinition : this.getTypeDefinition( + this.allSymbols[symbolName], + this.args.topRef, + undefined, + undefined, + undefined, + this.userSymbols[symbolName] || undefined + ); + } if (this.args.ref && includeReffedDefinitions && Object.keys(this.reffedDefinitions).length > 0) { def.definitions = this.reffedDefinitions; From 2bfec01273163e449d983edb35e3ecb25b47b70e Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Thu, 15 Feb 2024 20:29:38 +0900 Subject: [PATCH 33/60] v0.63.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fec1f42e..3abd2f48 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json-schema", - "version": "0.62.0", + "version": "0.63.0", "description": "typescript-json-schema generates JSON Schema files from your Typescript sources", "main": "dist/typescript-json-schema.js", "typings": "dist/typescript-json-schema.d.ts", From 264ab453183d35d69104ec4f021452c965a8a9b5 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Thu, 14 Mar 2024 21:56:23 -0400 Subject: [PATCH 34/60] Remove suppressImplicitAnyIndexErrors. (#593) --- tsconfig.json | 2 -- typescript-json-schema.ts | 58 ++++++++++++++++++++++----------------- 2 files changed, 33 insertions(+), 27 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index 2acf8e4c..c2c005c2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,7 +9,6 @@ "emitDecoratorMetadata": true, "declaration": true, "noImplicitAny": true, - "suppressImplicitAnyIndexErrors": true, "strictNullChecks": true, "noImplicitReturns": true, "noFallthroughCasesInSwitch": true, @@ -20,7 +19,6 @@ "preserveConstEnums": true, "sourceMap": true, "typeRoots" : ["node_modules/@types"], - "ignoreDeprecations": "5.0" }, "include": [ "**/*.ts", diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index 7d037639..3e0a0426 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -149,6 +149,9 @@ export interface Definition extends Omit { }; } +/** A looser Definition type that allows for indexing with arbitrary strings. */ +type DefinitionIndex = { [key: string]: Definition[keyof Definition] }; + export type SymbolRef = { name: string; typeName: string; @@ -181,7 +184,7 @@ function extend(target: any, ..._: any[]): any { } function unique(arr: string[]): string[] { - const temp = {}; + const temp: Record = {}; for (const e of arr) { temp[e] = true; } @@ -284,7 +287,7 @@ function resolveTupleType(propertyType: ts.Type): ts.TupleTypeNode | null { return propertyType as any; } -const simpleTypesAllowedProperties = { +const simpleTypesAllowedProperties: Record = { type: true, description: true, }; @@ -328,11 +331,11 @@ function makeNullable(def: Definition): Definition { if (union) { union.push({ type: "null" }); } else { - const subdef = {}; - for (var k in def) { + const subdef: DefinitionIndex = {}; + for (var k in def as any) { if (def.hasOwnProperty(k)) { - subdef[k] = def[k]; - delete def[k]; + subdef[k] = def[k as keyof Definition]; + delete def[k as keyof typeof def]; } } def.anyOf = [subdef, { type: "null" }]; @@ -441,7 +444,7 @@ const annotationKeywords: { [k in keyof typeof validationKeywords]?: true } = { $ref: true, }; -const subDefinitions = { +const subDefinitions: Record = { items: true, additionalProperties: true, contains: true, @@ -550,7 +553,7 @@ export class JsonSchemaGenerator { /** * Parse the comments of a symbol into the definition and other annotations. */ - private parseCommentsIntoDefinition(symbol: ts.Symbol, definition: Definition, otherAnnotations: {}): void { + private parseCommentsIntoDefinition(symbol: ts.Symbol, definition: Definition, otherAnnotations: Record): void { if (!symbol) { return; } @@ -613,7 +616,7 @@ export class JsonSchemaGenerator { if (match) { const k = match[1]; const v = match[2]; - definition[name] = { ...definition[name], [k]: v ? parseValue(symbol, k, v) : true }; + (definition as DefinitionIndex)[name] = { ...(definition as Record>)[name], [k]: v ? parseValue(symbol, k, v) : true }; return; } } @@ -621,16 +624,17 @@ export class JsonSchemaGenerator { // In TypeScript 3.7+, the "." is kept as part of the annotation name if (name.includes(".")) { const parts = name.split("."); - if (parts.length === 2 && subDefinitions[parts[0]]) { - definition[parts[0]] = { - ...definition[parts[0]], + const key = parts[0] as keyof Definition; + if (parts.length === 2 && subDefinitions[key]) { + (definition as DefinitionIndex)[key] = { + ...definition[key] as Record, [parts[1]]: text ? parseValue(symbol, name, text) : true, }; } } - if (validationKeywords[name] || this.userValidationKeywords[name]) { - definition[name] = text === undefined ? "" : parseValue(symbol, name, text); + if (validationKeywords[name as keyof typeof validationKeywords] || this.userValidationKeywords[name]) { + (definition as DefinitionIndex)[name] = text === undefined ? "" : parseValue(symbol, name, text); } else { // special annotations otherAnnotations[doc.name] = true; @@ -939,7 +943,7 @@ export class JsonSchemaGenerator { private getUnionDefinition( unionType: ts.UnionType, - unionModifier: string, + unionModifier: keyof Definition, definition: Definition ): Definition { const enumValues: PrimitiveType[] = []; @@ -1030,11 +1034,11 @@ export class JsonSchemaGenerator { // If we already have a more specific description, don't overwrite it. continue; } - definition[k] = schemas[0][k]; + (definition as DefinitionIndex)[k] = schemas[0][k as keyof Definition]; } } } else { - definition[unionModifier] = schemas; + (definition as DefinitionIndex)[unionModifier] = schemas; } return definition; } @@ -1070,7 +1074,7 @@ export class JsonSchemaGenerator { if (schemas.length === 1) { for (const k in schemas[0]) { if (schemas[0].hasOwnProperty(k)) { - definition[k] = schemas[0][k]; + (definition as DefinitionIndex)[k] = schemas[0][k as keyof Definition]; } } } else { @@ -1175,7 +1179,7 @@ export class JsonSchemaGenerator { } } - const propertyDefinitions = props.reduce((all, prop) => { + const propertyDefinitions = props.reduce>((all, prop) => { const propertyName = prop.getName(); const propDef = this.getDefinitionForProperty(prop, node); if (propDef != null) { @@ -1274,7 +1278,7 @@ export class JsonSchemaGenerator { private getTypeDefinition( typ: ts.Type, asRef = this.args.ref, - unionModifier: string = "anyOf", + unionModifier: keyof Definition = "anyOf", prop?: ts.Symbol, reffedType?: ts.Symbol, pairedSymbol?: ts.Symbol, @@ -1400,7 +1404,7 @@ export class JsonSchemaGenerator { } // Parse comments - const otherAnnotations = {}; + const otherAnnotations: Record = {}; this.parseCommentsIntoDefinition(reffedType!, definition, otherAnnotations); // handle comments in the type alias declaration this.parseCommentsIntoDefinition(symbol!, definition, otherAnnotations); this.parseCommentsIntoDefinition(typ.aliasSymbol!, definition, otherAnnotations); @@ -1492,8 +1496,8 @@ export class JsonSchemaGenerator { this.recursiveTypeRef.delete(fullTypeName); // If the type was recursive (there is reffedDefinitions) - lets replace it to reference if (this.reffedDefinitions[fullTypeName]) { - const annotations = Object.entries(returnedDefinition).reduce((acc, [key, value]) => { - if (annotationKeywords[key] && typeof value !== undefined) { + const annotations = Object.entries(returnedDefinition).reduce>((acc, [key, value]) => { + if (annotationKeywords[key as keyof typeof annotationKeywords] && typeof value !== undefined) { acc[key] = value; } return acc; @@ -1551,7 +1555,11 @@ export class JsonSchemaGenerator { } public getSchemaForSymbols(symbolNames: string[], includeReffedDefinitions: boolean = true, includeAllOverrides: boolean = false): Definition { - const root = { + const root: { + $id?: string, + $schema: string, + definitions: Record + } = { $schema: "http://json-schema.org/draft-07/schema#", definitions: {}, }; @@ -1660,7 +1668,7 @@ export function buildGenerator( for (const pref in args) { if (args.hasOwnProperty(pref)) { - settings[pref] = args[pref]; + (settings as Record[keyof Args]>)[pref as keyof Args] = args[pref as keyof Args]; } } From 34267623b420fe2d4ac46d52860c783387bff141 Mon Sep 17 00:00:00 2001 From: Bradley Priest <167215+bradleypriest@users.noreply.github.com> Date: Fri, 5 Apr 2024 12:34:52 -0700 Subject: [PATCH 35/60] feat: support bigint (#596) * Support bigint * Update typescript-json-schema.ts --------- Co-authored-by: Dominik Moritz --- typescript-json-schema.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index 3e0a0426..68c34bf2 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -705,6 +705,10 @@ export class JsonSchemaGenerator { definition.type = "object"; definition.properties = {}; definition.additionalProperties = true; + } else if (propertyTypeString === "bigint") { + definition.type = "number"; + definition.properties = {}; + definition.additionalProperties = false; } else { const value = extractLiteralValue(propertyType); if (value !== undefined) { From 54a651cba7b538280b256f315daf694623bbb7d8 Mon Sep 17 00:00:00 2001 From: Andreas Hochsteger Date: Tue, 14 May 2024 23:59:53 +0200 Subject: [PATCH 36/60] fix: escape special characters in string template literals (#603) * fix: escape special characters in string template literals * fix: wrong quoting --------- Co-authored-by: Andreas Hochsteger --- api.md | 18 ++++++++++++++++++ test/programs/string-template-literal/main.ts | 1 + .../string-template-literal/schema.json | 7 ++++++- typescript-json-schema.ts | 2 +- 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/api.md b/api.md index bb47b106..94c3f5d2 100644 --- a/api.md +++ b/api.md @@ -1445,6 +1445,24 @@ class MyObject { ``` +## [string-template-literal](./test/programs/string-template-literal) + +```ts +interface MyObject { + a: `@${string}`, + b: `@${number}`, + c: `@${bigint}`, + d: `@${boolean}`, + e: `@${undefined}`, + f: `@${null}`, + g: `${string}@`, + h: `${number}@`, + i: `${string}@${number}`, + j: `${string}.${string}`, +} +``` + + ## [symbol](./test/programs/symbol) ```ts diff --git a/test/programs/string-template-literal/main.ts b/test/programs/string-template-literal/main.ts index 4b0745b0..f554704e 100644 --- a/test/programs/string-template-literal/main.ts +++ b/test/programs/string-template-literal/main.ts @@ -8,4 +8,5 @@ interface MyObject { g: `${string}@`, h: `${number}@`, i: `${string}@${number}`, + j: `${string}.${string}`, } \ No newline at end of file diff --git a/test/programs/string-template-literal/schema.json b/test/programs/string-template-literal/schema.json index cc39dd2c..cc1e1e08 100644 --- a/test/programs/string-template-literal/schema.json +++ b/test/programs/string-template-literal/schema.json @@ -39,6 +39,10 @@ "i": { "type": "string", "pattern": "^.*@[0-9]*$" + }, + "j": { + "type": "string", + "pattern": "^.*\\..*$" } }, "additionalProperties": false, @@ -51,7 +55,8 @@ "f", "g", "h", - "i" + "i", + "j" ], "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index 68c34bf2..40439843 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -753,7 +753,7 @@ export class JsonSchemaGenerator { const {texts, types} = propertyType; const pattern = []; for (let i = 0; i < texts.length; i++) { - const text = texts[i]; + const text = texts[i].replace(/[\\^$.*+?()[\]{}|]/g, "\\$&"); const type = types[i]; if (i === 0) { From 1bbf4a910d6b3d59fe34ae781f46c01322ce7b20 Mon Sep 17 00:00:00 2001 From: andriskaaz Date: Thu, 30 May 2024 19:10:32 +0200 Subject: [PATCH 37/60] feat: $comment keyword (#604) --- api.md | 24 ++++++++++++++++++++++ test/programs/comments-comment/main.ts | 9 ++++++++ test/programs/comments-comment/schema.json | 16 +++++++++++++++ test/schema.test.ts | 1 + typescript-json-schema.ts | 1 + 5 files changed, 51 insertions(+) create mode 100644 test/programs/comments-comment/main.ts create mode 100644 test/programs/comments-comment/schema.json diff --git a/api.md b/api.md index 94c3f5d2..7e863391 100644 --- a/api.md +++ b/api.md @@ -492,6 +492,21 @@ interface MyObject { ``` +## [comments-comment](./test/programs/comments-comment) + +```ts +/** + * @$comment Object comment + */ +interface MyObject { + /** + * @$comment Property comment + */ + text: string; +} +``` + + ## [comments-from-lib](./test/programs/comments-from-lib) ```ts @@ -607,6 +622,15 @@ export interface MyObject { ``` +## [const-as-enum](./test/programs/const-as-enum) + +```ts +export interface MyObject { + reference: true; +} +``` + + ## [const-keyword](./test/programs/const-keyword) ```ts diff --git a/test/programs/comments-comment/main.ts b/test/programs/comments-comment/main.ts new file mode 100644 index 00000000..35bd19a0 --- /dev/null +++ b/test/programs/comments-comment/main.ts @@ -0,0 +1,9 @@ +/** + * @$comment Object comment + */ +interface MyObject { + /** + * @$comment Property comment + */ + text: string; +} diff --git a/test/programs/comments-comment/schema.json b/test/programs/comments-comment/schema.json new file mode 100644 index 00000000..e6062458 --- /dev/null +++ b/test/programs/comments-comment/schema.json @@ -0,0 +1,16 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "$comment": "Object comment", + "properties": { + "text": { + "$comment": "Property comment", + "type": "string" + } + }, + "required": [ + "text" + ], + "type": "object" +} + diff --git a/test/schema.test.ts b/test/schema.test.ts index a29fe972..d2962505 100644 --- a/test/schema.test.ts +++ b/test/schema.test.ts @@ -371,6 +371,7 @@ describe("schema", () => { describe("comments", () => { assertSchema("comments", "MyObject"); + assertSchema("comments-comment", "MyObject"); assertSchema("comments-override", "MyObject"); assertSchema("comments-imports", "MyObject", { aliasRef: true, diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index 40439843..86f38724 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -426,6 +426,7 @@ const validationKeywords = { $ref: true, id: true, $id: true, + $comment: true, title: true }; From acc0c45ebdc33b65eb3c451ac1d799977465aa61 Mon Sep 17 00:00:00 2001 From: Kostya Kurilov Date: Thu, 6 Jun 2024 18:18:26 +0300 Subject: [PATCH 38/60] Add support for experimentalDecorators ts option. To use with TS5 decorators (#606) Co-authored-by: kriz --- README.md | 2 ++ typescript-json-schema-cli.ts | 3 +++ typescript-json-schema.ts | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 021428cc..3586ba6b 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,8 @@ Options: --defaultNumberType Default number type. [choices: "number", "integer"] [default: "number"] --tsNodeRegister Use ts-node/register (needed for require typescript files). [boolean] [default: false] --constAsEnum Use enums with a single value when declaring constants. [boolean] [default: false] + --experimentalDecorators Use experimentalDecorators when loading typescript modules. + [boolean] [default: true] ``` ### Programmatic use diff --git a/typescript-json-schema-cli.ts b/typescript-json-schema-cli.ts index 97418620..c1bb17ba 100644 --- a/typescript-json-schema-cli.ts +++ b/typescript-json-schema-cli.ts @@ -32,6 +32,8 @@ export function run() { .describe("esModuleInterop", "Use esModuleInterop when loading typescript modules.") .boolean("skipLibCheck").default("skipLibCheck", defaultArgs.skipLibCheck) .describe("skipLibCheck", "Use skipLibCheck when loading typescript modules.") + .boolean("experimentalDecorators").default("experimentalDecorators", defaultArgs.experimentalDecorators) + .describe("skipLibCheck", "Use experimentalDecorators when loading typescript modules.") .boolean("ignoreErrors").default("ignoreErrors", defaultArgs.ignoreErrors) .describe("ignoreErrors", "Generate even if the program has errors.") .alias("out", "o") @@ -70,6 +72,7 @@ export function run() { strictNullChecks: args.strictNullChecks, esModuleInterop: args.esModuleInterop, skipLibCheck: args.skipLibCheck, + experimentalDecorators: args.experimentalDecorators, ignoreErrors: args.ignoreErrors, out: args.out, validationKeywords: args.validationKeywords, diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index 86f38724..8471203f 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -49,6 +49,7 @@ export function getDefaultArgs(): Args { strictNullChecks: false, esModuleInterop: false, skipLibCheck: false, + experimentalDecorators: true, ignoreErrors: false, out: "", validationKeywords: [], @@ -81,6 +82,7 @@ export type Args = { esModuleInterop: boolean; skipLibCheck: boolean; ignoreErrors: boolean; + experimentalDecorators: boolean; out: string; validationKeywords: string[]; include: string[]; @@ -1833,6 +1835,8 @@ export async function exec(filePattern: string, fullTypeName: string, args = get strictNullChecks: args.strictNullChecks, esModuleInterop: args.esModuleInterop, skipLibCheck: args.skipLibCheck, + emitDecoratorMetadata: args.experimentalDecorators, + experimentalDecorators: args.experimentalDecorators, }); onlyIncludeFiles = onlyIncludeFiles.map(normalizeFileName); } From b9683f65cd7ad63e371a587bbd1022b8e4b37e1f Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Wed, 12 Jun 2024 11:17:16 -0400 Subject: [PATCH 39/60] v0.64.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3abd2f48..335358f1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json-schema", - "version": "0.63.0", + "version": "0.64.0", "description": "typescript-json-schema generates JSON Schema files from your Typescript sources", "main": "dist/typescript-json-schema.js", "typings": "dist/typescript-json-schema.d.ts", From 70de093f2e148afab527aaf0d4dc38ce19de7715 Mon Sep 17 00:00:00 2001 From: Ivan Tymoshenko Date: Mon, 5 Aug 2024 21:40:21 +0200 Subject: [PATCH 40/60] deps: update typescript version (#610) --- package.json | 4 ++-- yarn.lock | 22 +++++++++++++++++----- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 335358f1..ee1ee734 100644 --- a/package.json +++ b/package.json @@ -42,12 +42,12 @@ ], "dependencies": { "@types/json-schema": "^7.0.9", - "@types/node": "^16.9.2", + "@types/node": "^18.11.9", "glob": "^7.1.7", "path-equal": "^1.2.5", "safe-stable-stringify": "^2.2.0", "ts-node": "^10.9.1", - "typescript": "~5.1.0", + "typescript": "~5.5.0", "yargs": "^17.1.1" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index 2888a713..c08d754d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -96,11 +96,18 @@ resolved "https://registry.npmjs.org/@types/mocha/-/mocha-9.0.0.tgz" integrity sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA== -"@types/node@*", "@types/node@^16.9.2": +"@types/node@*": version "16.18.13" resolved "https://registry.npmjs.org/@types/node/-/node-16.18.13.tgz" integrity sha512-l0/3XZ153UTlNOnZK8xSNoJlQda9/WnYgiTdcKKPJSZjdjI9MU+A9oMXOesAWLSnqAaaJhj3qfQsU07Dr8OUwg== +"@types/node@^18.11.9": + version "18.19.43" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.43.tgz#fe01bb599b60bb3279c26d0fdb751d2f3e299ae0" + integrity sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g== + dependencies: + undici-types "~5.26.4" + "@ungap/promise-all-settled@1.1.2": version "1.1.2" resolved "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz" @@ -894,10 +901,15 @@ type-detect@^4.0.0, type-detect@^4.0.5: resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -typescript@~5.1.0: - version "5.1.6" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" - integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== +typescript@~5.5.0: + version "5.5.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== uri-js@^4.2.2: version "4.4.1" From 3a3718b0a4177126f1adf3869af8e5417a519db9 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Tue, 20 Aug 2024 11:14:23 -0400 Subject: [PATCH 41/60] v0.65.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ee1ee734..6087a0d4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json-schema", - "version": "0.64.0", + "version": "0.65.0", "description": "typescript-json-schema generates JSON Schema files from your Typescript sources", "main": "dist/typescript-json-schema.js", "typings": "dist/typescript-json-schema.d.ts", From 2422f97faab12e08a56cd643d04f6da6d86b8554 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Tue, 20 Aug 2024 11:14:48 -0400 Subject: [PATCH 42/60] v0.65.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6087a0d4..ca74a2f9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json-schema", - "version": "0.65.0", + "version": "0.65.1", "description": "typescript-json-schema generates JSON Schema files from your Typescript sources", "main": "dist/typescript-json-schema.js", "typings": "dist/typescript-json-schema.d.ts", From 75e599aaef6a57e849dbb3e1ff0b6f3749937b10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ky=E2=84=93e=20Hensel?= Date: Fri, 20 Sep 2024 03:24:47 +1000 Subject: [PATCH 43/60] feat: include tuple names in json schema (#613) --- .../type-aliases-tuple-with-names/main.ts | 1 + .../type-aliases-tuple-with-names/schema.json | 24 +++++++++++++++++++ test/schema.test.ts | 1 + typescript-json-schema.ts | 12 ++++++++-- 4 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 test/programs/type-aliases-tuple-with-names/main.ts create mode 100644 test/programs/type-aliases-tuple-with-names/schema.json diff --git a/test/programs/type-aliases-tuple-with-names/main.ts b/test/programs/type-aliases-tuple-with-names/main.ts new file mode 100644 index 00000000..d594c52c --- /dev/null +++ b/test/programs/type-aliases-tuple-with-names/main.ts @@ -0,0 +1 @@ +export type MyTuple = [a: string, b: 123, c?: boolean, ...d: number[]]; diff --git a/test/programs/type-aliases-tuple-with-names/schema.json b/test/programs/type-aliases-tuple-with-names/schema.json new file mode 100644 index 00000000..e33e4866 --- /dev/null +++ b/test/programs/type-aliases-tuple-with-names/schema.json @@ -0,0 +1,24 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "array", + "items": [ + { + "title": "a", + "type": "string" + }, + { + "title": "b", + "type": "number", + "const": 123 + }, + { + "title": "c", + "type": "boolean" + } + ], + "minItems": 2, + "additionalItems": { + "title": "d", + "type": "number" + } +} diff --git a/test/schema.test.ts b/test/schema.test.ts index d2962505..3effcb16 100644 --- a/test/schema.test.ts +++ b/test/schema.test.ts @@ -297,6 +297,7 @@ describe("schema", () => { assertSchema("type-aliases-recursive-anonymous", "MyAlias"); assertSchema("type-aliases-recursive-export", "MyObject"); */ + assertSchema("type-aliases-tuple-with-names", "MyTuple"); assertSchema("type-aliases-tuple-of-variable-length", "MyTuple"); assertSchema("type-aliases-tuple-with-rest-element", "MyTuple"); assertRejection("type-alias-never", "MyNever", {}, {}, /Unsupported type: never/); diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index 8471203f..f2730b86 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -657,12 +657,20 @@ export class JsonSchemaGenerator { if (tupleType) { // tuple const elemTypes: ts.NodeArray = (propertyType as any).typeArguments; - const fixedTypes = elemTypes.map((elType) => this.getTypeDefinition(elType as any)); + const targetTupleType = (propertyType as ts.TupleTypeReference).target; + + const fixedTypes = elemTypes.map((elType, index) => { + const def = this.getTypeDefinition(elType as any); + const label = targetTupleType.labeledElementDeclarations?.[index]?.name?.getFullText().trim(); + if (label) { + def.title = label; + } + return def; + }); definition.type = "array"; if (fixedTypes.length > 0) { definition.items = fixedTypes; } - const targetTupleType = (propertyType as ts.TupleTypeReference).target; definition.minItems = targetTupleType.minLength; if (targetTupleType.hasRestElement) { definition.additionalItems = fixedTypes[fixedTypes.length - 1]; From 43e557d9c50dc1695dfba1ff83fc50f40f9376ca Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Fri, 8 Nov 2024 13:57:44 -0500 Subject: [PATCH 44/60] chore: note about maintenance mode and suggested other options This library is not deprecated or archived. It still works fine and we are reviewing pull requests and make releases. The core maintainers just don't actively invest in new features. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3586ba6b..1707e43b 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![npm version](https://img.shields.io/npm/v/typescript-json-schema.svg)](https://www.npmjs.com/package/typescript-json-schema) ![Test](https://github.com/YousefED/typescript-json-schema/workflows/Test/badge.svg) -Generate json-schemas from your Typescript sources. +Generate json-schemas from your Typescript sources. This library is lightweight and more or less in maintenance mode. For a more complete JSON schema generator, take a look at [ts-json-schema-generator](https://github.com/vega/ts-json-schema-generator). ## Features From 927543715b6df16df9fc104ef63fa1cc1f1e83c2 Mon Sep 17 00:00:00 2001 From: Davide Canton Date: Thu, 20 Nov 2025 21:26:31 +0100 Subject: [PATCH 45/60] feat: uri encoded $refs (#617) (#618) --- api.md | 7 +++++++ test/programs/generic-anonymous/schema.json | 4 ++-- test/programs/generic-multiargs/schema.json | 4 ++-- test/programs/generic-multiple/schema.json | 4 ++-- test/programs/generic-recursive/schema.json | 6 +++--- test/programs/generic-simple/schema.json | 2 +- typescript-json-schema.ts | 20 ++++++++++++++++++-- 7 files changed, 35 insertions(+), 12 deletions(-) diff --git a/api.md b/api.md index 7e863391..9a73afdf 100644 --- a/api.md +++ b/api.md @@ -1846,6 +1846,13 @@ export type MyTuple = [string, number, boolean?]; ``` +## [type-aliases-tuple-with-names](./test/programs/type-aliases-tuple-with-names) + +```ts +export type MyTuple = [a: string, b: 123, c?: boolean, ...d: number[]]; +``` + + ## [type-aliases-tuple-with-rest-element](./test/programs/type-aliases-tuple-with-rest-element) ```ts diff --git a/test/programs/generic-anonymous/schema.json b/test/programs/generic-anonymous/schema.json index 877856f4..578582b9 100644 --- a/test/programs/generic-anonymous/schema.json +++ b/test/programs/generic-anonymous/schema.json @@ -37,10 +37,10 @@ }, "properties": { "value1": { - "$ref": "#/definitions/MyGeneric" + "$ref": "#/definitions/MyGeneric%3Cstring%2Cnumber%3E" }, "value2": { - "$ref": "#/definitions/MyGeneric" + "$ref": "#/definitions/MyGeneric%3Cnumber%2Cstring%3E" } }, "required": [ diff --git a/test/programs/generic-multiargs/schema.json b/test/programs/generic-multiargs/schema.json index 877856f4..578582b9 100644 --- a/test/programs/generic-multiargs/schema.json +++ b/test/programs/generic-multiargs/schema.json @@ -37,10 +37,10 @@ }, "properties": { "value1": { - "$ref": "#/definitions/MyGeneric" + "$ref": "#/definitions/MyGeneric%3Cstring%2Cnumber%3E" }, "value2": { - "$ref": "#/definitions/MyGeneric" + "$ref": "#/definitions/MyGeneric%3Cnumber%2Cstring%3E" } }, "required": [ diff --git a/test/programs/generic-multiple/schema.json b/test/programs/generic-multiple/schema.json index b87cde25..34ac33d9 100644 --- a/test/programs/generic-multiple/schema.json +++ b/test/programs/generic-multiple/schema.json @@ -29,10 +29,10 @@ }, "properties": { "value1": { - "$ref": "#/definitions/MyGeneric" + "$ref": "#/definitions/MyGeneric%3Cnumber%3E" }, "value2": { - "$ref": "#/definitions/MyGeneric" + "$ref": "#/definitions/MyGeneric%3Cstring%3E" } }, "required": [ diff --git a/test/programs/generic-recursive/schema.json b/test/programs/generic-recursive/schema.json index c040119b..3fc50458 100644 --- a/test/programs/generic-recursive/schema.json +++ b/test/programs/generic-recursive/schema.json @@ -6,7 +6,7 @@ "additionalProperties": false, "properties": { "field": { - "$ref": "#/definitions/MyGeneric" + "$ref": "#/definitions/MyGeneric%3Cstring%2Cnumber%3E" } }, "required": [ @@ -18,7 +18,7 @@ "additionalProperties": false, "properties": { "field": { - "$ref": "#/definitions/MyGeneric" + "$ref": "#/definitions/MyGeneric%3Cnumber%2Cstring%3E" } }, "required": [ @@ -30,7 +30,7 @@ "additionalProperties": false, "properties": { "value": { - "$ref": "#/definitions/MyGeneric" + "$ref": "#/definitions/MyGeneric%3Cstring%2Cnumber%3E" } }, "required": [ diff --git a/test/programs/generic-simple/schema.json b/test/programs/generic-simple/schema.json index 68bf6c6f..e568f81d 100644 --- a/test/programs/generic-simple/schema.json +++ b/test/programs/generic-simple/schema.json @@ -17,7 +17,7 @@ }, "properties": { "value": { - "$ref": "#/definitions/MyGeneric" + "$ref": "#/definitions/MyGeneric%3Cnumber%3E" } }, "required": [ diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index f2730b86..795ffe13 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -1414,7 +1414,7 @@ export class JsonSchemaGenerator { // We don't return the full definition, but we put it into // reffedDefinitions below. returnedDefinition = { - $ref: `${this.args.id}#/definitions/` + fullTypeName, + $ref: createRefURI(this.args.id, fullTypeName), }; } @@ -1519,7 +1519,7 @@ export class JsonSchemaGenerator { }, {}); returnedDefinition = { - $ref: `${this.args.id}#/definitions/` + fullTypeName, + $ref: createRefURI(this.args.id, fullTypeName), ...annotations, }; } @@ -1640,6 +1640,22 @@ export class JsonSchemaGenerator { } } +/** + * Generates the reference URI to the definition in the schema `id` + * containing the definition `name`. + * + * Encodes the `name` using `encodeURIComponent`. + * + * @see https://datatracker.ietf.org/doc/html/rfc3986 + * @param id the id of the schema containing the definition + * @param name the name of the definition + * @returns the URI pointing to the definition in the schema + */ +function createRefURI(id: string, name: string): string { + const encoded = encodeURIComponent(name); + return `${id}#/definitions/${encoded}`; +} + export function getProgramFromFiles( files: string[], jsonCompilerOptions: any = {}, From 17e89a057cd5f0eca5487deb70f1d05c6943f669 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Thu, 20 Nov 2025 15:27:12 -0500 Subject: [PATCH 46/60] v0.66.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ca74a2f9..32f9f24a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json-schema", - "version": "0.65.1", + "version": "0.66.0", "description": "typescript-json-schema generates JSON Schema files from your Typescript sources", "main": "dist/typescript-json-schema.js", "typings": "dist/typescript-json-schema.d.ts", From c52f16c71db85763b8c0790150ff353ffdbb8859 Mon Sep 17 00:00:00 2001 From: Moshe Kolodny Date: Thu, 27 Nov 2025 12:40:02 -0500 Subject: [PATCH 47/60] feat: expose internal ts object (#627) --- test/schema.test.ts | 3 ++- typescript-json-schema.ts | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/test/schema.test.ts b/test/schema.test.ts index 3effcb16..982e6cb6 100644 --- a/test/schema.test.ts +++ b/test/schema.test.ts @@ -3,9 +3,10 @@ import addFormats from "ajv-formats"; import { assert } from "chai"; import { readFileSync } from "fs"; import { resolve } from "path"; -import { versionMajorMinor as typescriptVersionMajorMinor } from "typescript"; import * as TJS from "../typescript-json-schema"; +const { versionMajorMinor: typescriptVersionMajorMinor } = TJS.ts; + let ajvWarnings: string[] = []; const ajv = new Ajv({ logger: { diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index 795ffe13..bb7e055a 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -7,6 +7,8 @@ import { JSONSchema7, JSONSchema7TypeName } from "json-schema"; import { pathEqual } from "path-equal"; export { Program, CompilerOptions, Symbol } from "typescript"; +export { ts }; + const vm = require("vm"); const REGEX_FILE_NAME_OR_SPACE = /(\bimport\(".*?"\)|".*?")\.| /g; From c4cfff32b346051379d050bce3e64f69fd0f4598 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Fri, 28 Nov 2025 16:28:16 -0500 Subject: [PATCH 48/60] v0.67.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 32f9f24a..4e58c0be 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json-schema", - "version": "0.66.0", + "version": "0.67.0", "description": "typescript-json-schema generates JSON Schema files from your Typescript sources", "main": "dist/typescript-json-schema.js", "typings": "dist/typescript-json-schema.d.ts", From a5fcaf4ee383978d5e5fa13ff9425ad1d0449e4e Mon Sep 17 00:00:00 2001 From: tepel-chen <71225775+tepel-chen@users.noreply.github.com> Date: Tue, 9 Dec 2025 00:18:48 +0900 Subject: [PATCH 49/60] fix: use vm2 instead of vm (#629) Co-authored-by: tchen --- package.json | 1 + typescript-json-schema.ts | 8 +++----- yarn.lock | 20 ++++++++++++++++++++ 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 4e58c0be..1d368f29 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ "safe-stable-stringify": "^2.2.0", "ts-node": "^10.9.1", "typescript": "~5.5.0", + "vm2": "^3.10.0", "yargs": "^17.1.1" }, "devDependencies": { diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index bb7e055a..c39f7468 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -9,7 +9,7 @@ export { Program, CompilerOptions, Symbol } from "typescript"; export { ts }; -const vm = require("vm"); +const { VM } = require("vm2"); const REGEX_FILE_NAME_OR_SPACE = /(\bimport\(".*?"\)|".*?")\.| /g; const REGEX_TSCONFIG_NAME = /^.*\.json$/; @@ -867,10 +867,8 @@ export class JsonSchemaGenerator { definition.default = initial.getText(); } else { try { - const sandbox = { sandboxvar: null as any }; - vm.runInNewContext("sandboxvar=" + initial.getText(), sandbox); - - const val = sandbox.sandboxvar; + const vm = new VM(); + const val = vm.run("sandboxvar=" + initial.getText()) as any; if ( val === null || typeof val === "string" || diff --git a/yarn.lock b/yarn.lock index c08d754d..a7405b90 100644 --- a/yarn.lock +++ b/yarn.lock @@ -118,6 +118,18 @@ acorn-walk@^8.1.1: resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== +acorn-walk@^8.3.4: + version "8.3.4" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" + integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== + dependencies: + acorn "^8.11.0" + +acorn@^8.11.0, acorn@^8.14.1: + version "8.15.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" + integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== + acorn@^8.4.1: version "8.5.0" resolved "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz" @@ -923,6 +935,14 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== +vm2@^3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.10.0.tgz#bd241fbf37fed0b7d0050e40ad08d7be6ba33d57" + integrity sha512-3ggF4Bs0cw4M7Rxn19/Cv3nJi04xrgHwt4uLto+zkcZocaKwP/nKP9wPx6ggN2X0DSXxOOIc63BV1jvES19wXQ== + dependencies: + acorn "^8.14.1" + acorn-walk "^8.3.4" + which@2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" From 336cac7e1595815f9df0ddccf15a17d92b400b6f Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Mon, 8 Dec 2025 10:19:29 -0500 Subject: [PATCH 50/60] v0.67.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1d368f29..7a5a395f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json-schema", - "version": "0.67.0", + "version": "0.67.1", "description": "typescript-json-schema generates JSON Schema files from your Typescript sources", "main": "dist/typescript-json-schema.js", "typings": "dist/typescript-json-schema.d.ts", From cf0000e5064e046f736066411b13e1a71c7e3d98 Mon Sep 17 00:00:00 2001 From: impact-merlinzerbe <108658445+impact-merlinzerbe@users.noreply.github.com> Date: Tue, 9 Dec 2025 14:40:05 +0100 Subject: [PATCH 51/60] update dependencies (#630) --- package.json | 31 +- test/schema.test.ts | 12 +- tsconfig.json | 58 +-- yarn.lock | 1180 +++++++++++++++++++++++-------------------- 4 files changed, 688 insertions(+), 593 deletions(-) diff --git a/package.json b/package.json index 7a5a395f..228c6e23 100644 --- a/package.json +++ b/package.json @@ -41,26 +41,25 @@ "schema" ], "dependencies": { - "@types/json-schema": "^7.0.9", - "@types/node": "^18.11.9", - "glob": "^7.1.7", + "@types/json-schema": "^7.0.15", + "@types/node": "^24.10.2", + "glob": "^13.0.0", "path-equal": "^1.2.5", - "safe-stable-stringify": "^2.2.0", - "ts-node": "^10.9.1", - "typescript": "~5.5.0", + "safe-stable-stringify": "^2.5.0", + "ts-node": "^10.9.2", + "typescript": "~5.9.3", "vm2": "^3.10.0", - "yargs": "^17.1.1" + "yargs": "^18.0.0" }, "devDependencies": { - "@types/chai": "^4.2.21", - "@types/glob": "^7.1.4", - "@types/mocha": "^9.0.0", - "ajv": "^8.6.3", - "ajv-formats": "^2.1.1", - "chai": "^4.3.4", - "mocha": "^9.1.3", - "prettier": "^2.4.1", - "source-map-support": "^0.5.20", + "@types/chai": "^5.2.3", + "@types/mocha": "^10.0.10", + "ajv": "^8.17.1", + "ajv-formats": "^3.0.1", + "chai": "^6.2.1", + "mocha": "^11.7.5", + "prettier": "^3.7.4", + "source-map-support": "^0.5.21", "tslint": "^6.1.3" }, "scripts": { diff --git a/test/schema.test.ts b/test/schema.test.ts index 982e6cb6..35008349 100644 --- a/test/schema.test.ts +++ b/test/schema.test.ts @@ -4,6 +4,7 @@ import { assert } from "chai"; import { readFileSync } from "fs"; import { resolve } from "path"; import * as TJS from "../typescript-json-schema"; +import { isRegExp } from "util/types"; const { versionMajorMinor: typescriptVersionMajorMinor } = TJS.ts; @@ -125,7 +126,8 @@ export function assertRejection( ) { it(group + " should reject input", () => { let schema = null; - assert.throws(() => { + + const fn = () => { if (!("required" in settings)) { settings.required = true; } @@ -136,7 +138,13 @@ export function assertRejection( const files = [resolve(BASE + group + "/main.ts")]; schema = TJS.generateSchema(TJS.getProgramFromFiles(files, compilerOptions), type, settings, files); - }, errType || /.*/); + }; + + if (isRegExp(errType)) { + assert.throws(fn, errType || /.*/); + } else { + assert.throws(fn, errType); + } assert.equal(schema, null, "Expected no schema to be generated"); }); } diff --git a/tsconfig.json b/tsconfig.json index c2c005c2..abc3da5d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,35 +1,27 @@ { - "compilerOptions": { - "target": "es5", - "module": "commonjs", - "moduleResolution": "node", - "outDir": "dist", - "isolatedModules": false, - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "declaration": true, - "noImplicitAny": true, - "strictNullChecks": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "removeComments": true, - "noLib": false, - "preserveConstEnums": true, - "sourceMap": true, - "typeRoots" : ["node_modules/@types"], - }, - "include": [ - "**/*.ts", - "node_modules/@types/**/*.d.ts" - ], - "exclude": [ - "node_modules", - "example", - "test/programs", - "dist" - ], - "compileOnSave": true, - "buildOnSave": false + "compilerOptions": { + "target": "es2015", + "module": "commonjs", + "moduleResolution": "node", + "outDir": "dist", + "isolatedModules": false, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "declaration": true, + "noImplicitAny": true, + "strictNullChecks": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "removeComments": true, + "noLib": false, + "preserveConstEnums": true, + "sourceMap": true, + "typeRoots": ["node_modules/@types"] + }, + "include": ["**/*.ts", "node_modules/@types/**/*.d.ts"], + "exclude": ["node_modules", "example", "test/programs", "dist"], + "compileOnSave": true, + "buildOnSave": false } diff --git a/yarn.lock b/yarn.lock index a7405b90..b7bd6f95 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,269 +3,251 @@ "@babel/code-frame@^7.0.0": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz" - integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" + integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== dependencies: - "@babel/highlight" "^7.14.5" - -"@babel/helper-validator-identifier@^7.14.5": - version "7.14.9" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz" - integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== - -"@babel/highlight@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz" - integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== - dependencies: - "@babel/helper-validator-identifier" "^7.14.5" - chalk "^2.0.0" + "@babel/helper-validator-identifier" "^7.27.1" js-tokens "^4.0.0" + picocolors "^1.1.1" + +"@babel/helper-validator-identifier@^7.27.1": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" + integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== "@cspotcode/source-map-support@^0.8.0": version "0.8.1" - resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== dependencies: "@jridgewell/trace-mapping" "0.3.9" +"@isaacs/balanced-match@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz#3081dadbc3460661b751e7591d7faea5df39dd29" + integrity sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ== + +"@isaacs/brace-expansion@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz#4b3dabab7d8e75a429414a96bd67bf4c1d13e0f3" + integrity sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA== + dependencies: + "@isaacs/balanced-match" "^4.0.1" + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + "@jridgewell/resolve-uri@^3.0.3": - version "3.1.0" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + version "1.5.5" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== "@jridgewell/trace-mapping@0.3.9": version "0.3.9" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + "@tsconfig/node10@^1.0.7": - version "1.0.8" - resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz" - integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== + version "1.0.12" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.12.tgz#be57ceac1e4692b41be9de6be8c32a106636dba4" + integrity sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ== "@tsconfig/node12@^1.0.7": - version "1.0.9" - resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz" - integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== "@tsconfig/node14@^1.0.0": - version "1.0.1" - resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz" - integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== "@tsconfig/node16@^1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz" - integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== - -"@types/chai@^4.2.21": - version "4.2.21" - resolved "https://registry.npmjs.org/@types/chai/-/chai-4.2.21.tgz" - integrity sha512-yd+9qKmJxm496BOV9CMNaey8TWsikaZOwMRwPHQIjcOJM9oV+fi9ZMNw3JsVnbEEbo2gRTDnGEBv8pjyn67hNg== - -"@types/glob@^7.1.4": - version "7.1.4" - resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz" - integrity sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/json-schema@^7.0.9": - version "7.0.9" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== - -"@types/minimatch@*": - version "3.0.5" - resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== - -"@types/mocha@^9.0.0": - version "9.0.0" - resolved "https://registry.npmjs.org/@types/mocha/-/mocha-9.0.0.tgz" - integrity sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA== - -"@types/node@*": - version "16.18.13" - resolved "https://registry.npmjs.org/@types/node/-/node-16.18.13.tgz" - integrity sha512-l0/3XZ153UTlNOnZK8xSNoJlQda9/WnYgiTdcKKPJSZjdjI9MU+A9oMXOesAWLSnqAaaJhj3qfQsU07Dr8OUwg== - -"@types/node@^18.11.9": - version "18.19.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.43.tgz#fe01bb599b60bb3279c26d0fdb751d2f3e299ae0" - integrity sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g== - dependencies: - undici-types "~5.26.4" - -"@ungap/promise-all-settled@1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz" - integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@types/chai@^5.2.3": + version "5.2.3" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.3.tgz#8e9cd9e1c3581fa6b341a5aed5588eb285be0b4a" + integrity sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA== + dependencies: + "@types/deep-eql" "*" + assertion-error "^2.0.1" + +"@types/deep-eql@*": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/deep-eql/-/deep-eql-4.0.2.tgz#334311971d3a07121e7eb91b684a605e7eea9cbd" + integrity sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== + +"@types/json-schema@^7.0.15": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== -acorn-walk@^8.1.1: - version "8.2.0" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== +"@types/mocha@^10.0.10": + version "10.0.10" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.10.tgz#91f62905e8d23cbd66225312f239454a23bebfa0" + integrity sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q== -acorn-walk@^8.3.4: +"@types/node@^24.10.2": + version "24.10.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.2.tgz#82a57476a19647d8f2c7750d0924788245e39b26" + integrity sha512-WOhQTZ4G8xZ1tjJTvKOpyEVSGgOTvJAfDK3FNFgELyaTpzhdgHVHeqW8V+UJvzF5BT+/B54T/1S2K6gd9c7bbA== + dependencies: + undici-types "~7.16.0" + +acorn-walk@^8.1.1, acorn-walk@^8.3.4: version "8.3.4" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== dependencies: acorn "^8.11.0" -acorn@^8.11.0, acorn@^8.14.1: +acorn@^8.11.0, acorn@^8.14.1, acorn@^8.4.1: version "8.15.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== -acorn@^8.4.1: - version "8.5.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz" - integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== - -ajv-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== +ajv-formats@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-3.0.1.tgz#3d5dc762bca17679c3c2ea7e90ad6b7532309578" + integrity sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ== dependencies: ajv "^8.0.0" -ajv@^8.0.0, ajv@^8.6.3: - version "8.6.3" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz" - integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw== +ajv@^8.0.0, ajv@^8.17.1: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== dependencies: - fast-deep-equal "^3.1.1" + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" - uri-js "^4.2.2" -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-regex@^5.0.0: +ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.2.2" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" + integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== + ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" -anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" +ansi-styles@^6.1.0, ansi-styles@^6.2.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" + integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== arg@^4.1.0: version "4.1.3" - resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== argparse@^1.0.7: version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" argparse@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== +assertion-error@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" + integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + version "1.1.12" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" + integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" -braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== +brace-expansion@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" + integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== dependencies: - fill-range "^7.0.1" + balanced-match "^1.0.0" -browser-stdout@1.3.1: +browser-stdout@^1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== builtin-modules@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" - integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ== camelcase@^6.0.0: - version "6.2.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== - -chai@^4.3.4: - version "4.3.4" - resolved "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz" - integrity sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA== - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^3.0.1" - get-func-name "^2.0.0" - pathval "^1.1.1" - type-detect "^4.0.5" - -chalk@^2.0.0, chalk@^2.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +chai@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/chai/-/chai-6.2.1.tgz#d1e64bc42433fbee6175ad5346799682060b5b6a" + integrity sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg== + +chalk@^2.3.0: version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" @@ -274,149 +256,160 @@ chalk@^2.0.0, chalk@^2.3.0: chalk@^4.1.0: version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz" - integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= - -chokidar@3.5.2: - version "3.5.2" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" +chokidar@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" + integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== + dependencies: + readdirp "^4.0.1" -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" wrap-ansi "^7.0.0" +cliui@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-9.0.1.tgz#6f7890f386f6f1f79953adc1f78dec46fcc2d291" + integrity sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w== + dependencies: + string-width "^7.2.0" + strip-ansi "^7.1.0" + wrap-ansi "^9.0.0" + color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== commander@^2.12.1: version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== create-require@^1.1.0: version "1.1.1" - resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -debug@4.3.2: - version "4.3.2" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== +cross-spawn@^7.0.6: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== dependencies: - ms "2.1.2" + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +debug@^4.3.5: + version "4.4.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== + dependencies: + ms "^2.1.3" decamelize@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== -deep-eql@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz" - integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== - dependencies: - type-detect "^4.0.0" - -diff@5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== - diff@^4.0.1: version "4.0.2" - resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +diff@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a" + integrity sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +emoji-regex@^10.3.0: + version "10.6.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.6.0.tgz#bf3d6e8f7f8fd22a65d9703475bc0147357a6b0d" + integrity sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A== + emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== -escape-string-regexp@4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +escalade@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== esprima@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -fast-deep-equal@^3.1.1: +fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" +fast-uri@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa" + integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA== -find-up@5.0.0: +find-up@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" @@ -424,279 +417,297 @@ find-up@5.0.0: flat@^5.0.2: version "5.0.2" - resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== +foreground-child@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== + dependencies: + cross-spawn "^7.0.6" + signal-exit "^4.0.1" + fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz" - integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= - -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@7.1.7, glob@^7.1.1, glob@^7.1.7: - version "7.1.7" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== +get-east-asian-width@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz#9bc4caa131702b4b61729cb7e42735bc550c9ee6" + integrity sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q== + +glob@^10.4.5: + version "10.5.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" + integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + +glob@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-13.0.0.tgz#9d9233a4a274fc28ef7adce5508b7ef6237a1be3" + integrity sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA== + dependencies: + minimatch "^10.1.1" + minipass "^7.1.2" + path-scurry "^2.0.0" + +glob@^7.1.1: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" -growl@1.10.5: - version "1.10.5" - resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== - has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: - function-bind "^1.1.1" + function-bind "^1.1.2" -he@1.2.0: +he@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" inherits@2: version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-core-module@^2.2.0: - version "2.6.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz" - integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== +is-core-module@^2.16.1: + version "2.16.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== dependencies: - has "^1.0.3" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + hasown "^2.0.2" is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-plain-obj@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== is-unicode-supported@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + version "3.14.2" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.2.tgz#77485ce1dd7f33c061fd1b16ecea23b55fcb04b0" + integrity sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg== dependencies: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" + integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== + dependencies: + argparse "^2.0.1" + json-schema-traverse@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" -log-symbols@4.1.0: +log-symbols@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== dependencies: chalk "^4.1.0" is-unicode-supported "^0.1.0" +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +lru-cache@^11.0.0: + version "11.2.4" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.2.4.tgz#ecb523ebb0e6f4d837c807ad1abaea8e0619770d" + integrity sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg== + make-error@^1.1.1: version "1.3.6" - resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -minimatch@3.0.4, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== +minimatch@^10.1.1: + version "10.1.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.1.1.tgz#e6e61b9b0c1dcab116b5a7d1458e8b6ae9e73a55" + integrity sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ== + dependencies: + "@isaacs/brace-expansion" "^5.0.0" + +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minimatch@^9.0.4, minimatch@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== mkdirp@^0.5.3: - version "0.5.5" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -mocha@^9.1.3: - version "9.1.3" - resolved "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz" - integrity sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw== - dependencies: - "@ungap/promise-all-settled" "1.1.2" - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.2" - debug "4.3.2" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.1.7" - growl "1.10.5" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "3.0.4" - ms "2.1.3" - nanoid "3.1.25" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - which "2.0.2" - workerpool "6.1.5" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mocha@^11.7.5: + version "11.7.5" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.5.tgz#58f5bbfa5e0211ce7e5ee6128107cefc2515a627" + integrity sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig== + dependencies: + browser-stdout "^1.3.1" + chokidar "^4.0.1" + debug "^4.3.5" + diff "^7.0.0" + escape-string-regexp "^4.0.0" + find-up "^5.0.0" + glob "^10.4.5" + he "^1.2.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + log-symbols "^4.1.0" + minimatch "^9.0.5" + ms "^2.1.3" + picocolors "^1.1.1" + serialize-javascript "^6.0.2" + strip-json-comments "^3.1.1" + supports-color "^8.1.1" + workerpool "^9.2.0" + yargs "^17.7.2" + yargs-parser "^21.1.1" + yargs-unparser "^2.0.0" + +ms@^2.1.3: version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -nanoid@3.1.25: - version "3.1.25" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz" - integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q== - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - once@^1.3.0: version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" +package-json-from-dist@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + path-equal@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/path-equal/-/path-equal-1.2.5.tgz#9fcbdd5e5daee448e96f43f3bac06c666b5e982a" @@ -704,164 +715,230 @@ path-equal@^1.2.5: path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-parse@^1.0.6: +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.3.0" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== +path-scurry@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.1.tgz#4b6572376cfd8b811fca9cd1f5c24b3cbac0fe10" + integrity sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA== + dependencies: + lru-cache "^11.0.0" + minipass "^7.1.2" -prettier@^2.4.1: - version "2.4.1" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz" - integrity sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA== +picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +prettier@^3.7.4: + version "3.7.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.4.tgz#d2f8335d4b1cec47e1c8098645411b0c9dff9c0f" + integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA== randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" +readdirp@^4.0.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" + integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== resolve@^1.3.2: - version "1.20.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + version "1.22.11" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262" + integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ== dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" + is-core-module "^2.16.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" safe-buffer@^5.1.0: version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-stable-stringify@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.2.0.tgz" - integrity sha512-C6AuMdYPuPV/P1leplHNu0lgc2LAElq/g3TdoksDCIVtBhr78o/CH03bt/9SKqugFbKU9CUjsNlCu0fjtQzQUw== +safe-stable-stringify@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz#4ca2f8e385f2831c432a719b108a3bf7af42a1dd" + integrity sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA== semver@^5.3.0: - version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== +serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" -source-map-support@^0.5.20: - version "0.5.20" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz" - integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +source-map-support@^0.5.21: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" source-map@^0.6.0: version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz" - integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: - ansi-regex "^5.0.0" + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" -strip-json-comments@3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== +string-width@^7.0.0, string-width@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc" + integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== dependencies: - has-flag "^4.0.0" + emoji-regex "^10.3.0" + get-east-asian-width "^1.0.0" + strip-ansi "^7.1.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1, strip-ansi@^7.1.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" + integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== + dependencies: + ansi-regex "^6.0.1" + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== +supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: - is-number "^7.0.0" + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -ts-node@^10.9.1: - version "10.9.1" - resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== +ts-node@^10.9.2: + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== dependencies: "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" @@ -879,12 +956,12 @@ ts-node@^10.9.1: tslib@^1.13.0, tslib@^1.8.1: version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslint@^6.1.3: version "6.1.3" - resolved "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.3.tgz#5c23b2eccc32487d5523bd3a470e9aa31789d904" integrity sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg== dependencies: "@babel/code-frame" "^7.0.0" @@ -903,36 +980,24 @@ tslint@^6.1.3: tsutils@^2.29.0: version "2.29.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== dependencies: tslib "^1.8.1" -type-detect@^4.0.0, type-detect@^4.0.5: - version "4.0.8" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -typescript@~5.5.0: - version "5.5.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" - integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== +typescript@~5.9.3: + version "5.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" + integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" +undici-types@~7.16.0: + version "7.16.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" + integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== v8-compile-cache-lib@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== vm2@^3.10.0: @@ -943,45 +1008,77 @@ vm2@^3.10.0: acorn "^8.14.1" acorn-walk "^8.3.4" -which@2.0.2: +which@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -workerpool@6.1.5: - version "6.1.5" - resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz" - integrity sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw== +workerpool@^9.2.0: + version "9.3.4" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.3.4.tgz#f6c92395b2141afd78e2a889e80cb338fe9fca41" + integrity sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg== + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrap-ansi@^9.0.0: + version "9.0.2" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.2.tgz#956832dea9494306e6d209eb871643bb873d7c98" + integrity sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww== + dependencies: + ansi-styles "^6.2.1" + string-width "^7.0.0" + strip-ansi "^7.1.0" + wrappy@1: version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== y18n@^5.0.5: version "5.0.8" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yargs-parser@20.2.4, yargs-parser@^20.2.2: - version "20.2.4" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs-parser@^22.0.0: + version "22.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-22.0.0.tgz#87b82094051b0567717346ecd00fd14804b357c8" + integrity sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw== -yargs-unparser@2.0.0: +yargs-unparser@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== dependencies: camelcase "^6.0.0" @@ -989,38 +1086,37 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@16.2.0: - version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== +yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: - cliui "^7.0.2" + cliui "^8.0.1" escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" - string-width "^4.2.0" + string-width "^4.2.3" y18n "^5.0.5" - yargs-parser "^20.2.2" + yargs-parser "^21.1.1" -yargs@^17.1.1: - version "17.1.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz" - integrity sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ== +yargs@^18.0.0: + version "18.0.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-18.0.0.tgz#6c84259806273a746b09f579087b68a3c2d25bd1" + integrity sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg== dependencies: - cliui "^7.0.2" + cliui "^9.0.1" escalade "^3.1.1" get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" + string-width "^7.2.0" y18n "^5.0.5" - yargs-parser "^20.2.2" + yargs-parser "^22.0.0" yn@3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 78c88785a27b1fb0d2876a58458aecd5dd2be2e2 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Tue, 5 May 2026 15:00:18 -0400 Subject: [PATCH 52/60] fix: update deps --- package.json | 10 ++--- yarn.lock | 106 ++++++++++++++++++++++++++++++--------------------- 2 files changed, 68 insertions(+), 48 deletions(-) diff --git a/package.json b/package.json index 228c6e23..ddce3b5f 100644 --- a/package.json +++ b/package.json @@ -43,22 +43,22 @@ "dependencies": { "@types/json-schema": "^7.0.15", "@types/node": "^24.10.2", - "glob": "^13.0.0", + "glob": "^13.0.6", "path-equal": "^1.2.5", "safe-stable-stringify": "^2.5.0", "ts-node": "^10.9.2", "typescript": "~5.9.3", - "vm2": "^3.10.0", + "vm2": "^3.10.5", "yargs": "^18.0.0" }, "devDependencies": { "@types/chai": "^5.2.3", "@types/mocha": "^10.0.10", - "ajv": "^8.17.1", + "ajv": "^8.20.0", "ajv-formats": "^3.0.1", - "chai": "^6.2.1", + "chai": "^6.2.2", "mocha": "^11.7.5", - "prettier": "^3.7.4", + "prettier": "^3.8.3", "source-map-support": "^0.5.21", "tslint": "^6.1.3" }, diff --git a/yarn.lock b/yarn.lock index b7bd6f95..44201b6d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,18 +23,6 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@isaacs/balanced-match@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz#3081dadbc3460661b751e7591d7faea5df39dd29" - integrity sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ== - -"@isaacs/brace-expansion@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz#4b3dabab7d8e75a429414a96bd67bf4c1d13e0f3" - integrity sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA== - dependencies: - "@isaacs/balanced-match" "^4.0.1" - "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" @@ -127,11 +115,16 @@ acorn-walk@^8.1.1, acorn-walk@^8.3.4: dependencies: acorn "^8.11.0" -acorn@^8.11.0, acorn@^8.14.1, acorn@^8.4.1: +acorn@^8.11.0, acorn@^8.4.1: version "8.15.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== +acorn@^8.15.0: + version "8.16.0" + resolved "https://npm.apple.com/acorn/-/acorn-8.16.0.tgz#4ce79c89be40afe7afe8f3adb902a1f1ce9ac08a" + integrity sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw== + ajv-formats@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-3.0.1.tgz#3d5dc762bca17679c3c2ea7e90ad6b7532309578" @@ -139,7 +132,7 @@ ajv-formats@^3.0.1: dependencies: ajv "^8.0.0" -ajv@^8.0.0, ajv@^8.17.1: +ajv@^8.0.0: version "8.17.1" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== @@ -149,6 +142,16 @@ ajv@^8.0.0, ajv@^8.17.1: json-schema-traverse "^1.0.0" require-from-string "^2.0.2" +ajv@^8.20.0: + version "8.20.0" + resolved "https://npm.apple.com/ajv/-/ajv-8.20.0.tgz#304b3636add88ba7d936760dd50ece006dea95f9" + integrity sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" @@ -205,6 +208,11 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +balanced-match@^4.0.2: + version "4.0.4" + resolved "https://npm.apple.com/balanced-match/-/balanced-match-4.0.4.tgz#bfb10662feed8196a2c62e7c68e17720c274179a" + integrity sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA== + brace-expansion@^1.1.7: version "1.1.12" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" @@ -220,6 +228,13 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" +brace-expansion@^5.0.5: + version "5.0.5" + resolved "https://artifacts.apple.com/artifactory/api/npm/npm-apple/brace-expansion/-/brace-expansion-5.0.5.tgz#dcc3a37116b79f3e1b46db994ced5d570e930fdb" + integrity sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ== + dependencies: + balanced-match "^4.0.2" + browser-stdout@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" @@ -240,10 +255,10 @@ camelcase@^6.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -chai@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/chai/-/chai-6.2.1.tgz#d1e64bc42433fbee6175ad5346799682060b5b6a" - integrity sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg== +chai@^6.2.2: + version "6.2.2" + resolved "https://npm.apple.com/chai/-/chai-6.2.2.tgz#ae41b52c9aca87734505362717f3255facda360e" + integrity sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg== chalk@^2.3.0: version "2.4.2" @@ -460,14 +475,14 @@ glob@^10.4.5: package-json-from-dist "^1.0.0" path-scurry "^1.11.1" -glob@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-13.0.0.tgz#9d9233a4a274fc28ef7adce5508b7ef6237a1be3" - integrity sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA== +glob@^13.0.6: + version "13.0.6" + resolved "https://npm.apple.com/glob/-/glob-13.0.6.tgz#078666566a425147ccacfbd2e332deb66a2be71d" + integrity sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw== dependencies: - minimatch "^10.1.1" - minipass "^7.1.2" - path-scurry "^2.0.0" + minimatch "^10.2.2" + minipass "^7.1.3" + path-scurry "^2.0.2" glob@^7.1.1: version "7.2.3" @@ -612,12 +627,12 @@ make-error@^1.1.1: resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -minimatch@^10.1.1: - version "10.1.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.1.1.tgz#e6e61b9b0c1dcab116b5a7d1458e8b6ae9e73a55" - integrity sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ== +minimatch@^10.2.2: + version "10.2.5" + resolved "https://artifacts.apple.com/artifactory/api/npm/npm-apple/minimatch/-/minimatch-10.2.5.tgz#bd48687a0be38ed2961399105600f832095861d1" + integrity sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg== dependencies: - "@isaacs/brace-expansion" "^5.0.0" + brace-expansion "^5.0.5" minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" @@ -643,6 +658,11 @@ minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== +minipass@^7.1.3: + version "7.1.3" + resolved "https://npm.apple.com/minipass/-/minipass-7.1.3.tgz#79389b4eb1bb2d003a9bba87d492f2bd37bdc65b" + integrity sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A== + mkdirp@^0.5.3: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" @@ -741,10 +761,10 @@ path-scurry@^1.11.1: lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" -path-scurry@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.1.tgz#4b6572376cfd8b811fca9cd1f5c24b3cbac0fe10" - integrity sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA== +path-scurry@^2.0.2: + version "2.0.2" + resolved "https://npm.apple.com/path-scurry/-/path-scurry-2.0.2.tgz#6be0d0ee02a10d9e0de7a98bae65e182c9061f85" + integrity sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg== dependencies: lru-cache "^11.0.0" minipass "^7.1.2" @@ -754,10 +774,10 @@ picocolors@^1.1.1: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -prettier@^3.7.4: - version "3.7.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.4.tgz#d2f8335d4b1cec47e1c8098645411b0c9dff9c0f" - integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA== +prettier@^3.8.3: + version "3.8.3" + resolved "https://npm.apple.com/prettier/-/prettier-3.8.3.tgz#560f2de55bf01b4c0503bc629d5df99b9a1d09b0" + integrity sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw== randombytes@^2.1.0: version "2.1.0" @@ -1000,12 +1020,12 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -vm2@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.10.0.tgz#bd241fbf37fed0b7d0050e40ad08d7be6ba33d57" - integrity sha512-3ggF4Bs0cw4M7Rxn19/Cv3nJi04xrgHwt4uLto+zkcZocaKwP/nKP9wPx6ggN2X0DSXxOOIc63BV1jvES19wXQ== +vm2@^3.10.5: + version "3.11.2" + resolved "https://npm.apple.com/vm2/-/vm2-3.11.2.tgz#68ea22497c2c37cb907f27106a3c952dd9e318a6" + integrity sha512-hnsYAgBSAgwwPM/Gq66gMmUY0VlY9mKC8nvVRAZiJp+tYxF4sfNRlZymP8uqzIUK2U/7+SVZ/H8p7USxNHLlZA== dependencies: - acorn "^8.14.1" + acorn "^8.15.0" acorn-walk "^8.3.4" which@^2.0.1: From df4872f3b786b700c46c777068cd0dafba4b4354 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Tue, 5 May 2026 15:00:31 -0400 Subject: [PATCH 53/60] v0.67.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ddce3b5f..6b131245 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json-schema", - "version": "0.67.1", + "version": "0.67.2", "description": "typescript-json-schema generates JSON Schema files from your Typescript sources", "main": "dist/typescript-json-schema.js", "typings": "dist/typescript-json-schema.d.ts", From 2f41293032342e5191da0d0985d2cd2ce25a71ca Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Tue, 5 May 2026 15:11:03 -0400 Subject: [PATCH 54/60] chore: lock --- yarn.lock | 448 ++++++++++++++++++++++++++---------------------------- 1 file changed, 217 insertions(+), 231 deletions(-) diff --git a/yarn.lock b/yarn.lock index 44201b6d..fd962cae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,29 +3,29 @@ "@babel/code-frame@^7.0.0": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" - integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== + version "7.29.0" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz#7cd7a59f15b3cc0dcd803038f7792712a7d0b15c" + integrity sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw== dependencies: - "@babel/helper-validator-identifier" "^7.27.1" + "@babel/helper-validator-identifier" "^7.28.5" js-tokens "^4.0.0" picocolors "^1.1.1" -"@babel/helper-validator-identifier@^7.27.1": +"@babel/helper-validator-identifier@^7.28.5": version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== "@cspotcode/source-map-support@^0.8.0": version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== dependencies: "@jridgewell/trace-mapping" "0.3.9" "@isaacs/cliui@^8.0.2": version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== dependencies: string-width "^5.1.2" @@ -37,17 +37,17 @@ "@jridgewell/resolve-uri@^3.0.3": version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== "@jridgewell/sourcemap-codec@^1.4.10": version "1.5.5" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== "@jridgewell/trace-mapping@0.3.9": version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== dependencies: "@jridgewell/resolve-uri" "^3.0.3" @@ -55,32 +55,32 @@ "@pkgjs/parseargs@^0.11.0": version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== "@tsconfig/node10@^1.0.7": version "1.0.12" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.12.tgz#be57ceac1e4692b41be9de6be8c32a106636dba4" + resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.12.tgz#be57ceac1e4692b41be9de6be8c32a106636dba4" integrity sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ== "@tsconfig/node12@^1.0.7": version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== "@tsconfig/node14@^1.0.0": version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== "@tsconfig/node16@^1.0.2": version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== "@types/chai@^5.2.3": version "5.2.3" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.3.tgz#8e9cd9e1c3581fa6b341a5aed5588eb285be0b4a" + resolved "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz#8e9cd9e1c3581fa6b341a5aed5588eb285be0b4a" integrity sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA== dependencies: "@types/deep-eql" "*" @@ -88,63 +88,48 @@ "@types/deep-eql@*": version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/deep-eql/-/deep-eql-4.0.2.tgz#334311971d3a07121e7eb91b684a605e7eea9cbd" + resolved "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz#334311971d3a07121e7eb91b684a605e7eea9cbd" integrity sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== "@types/json-schema@^7.0.15": version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/mocha@^10.0.10": version "10.0.10" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.10.tgz#91f62905e8d23cbd66225312f239454a23bebfa0" + resolved "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz#91f62905e8d23cbd66225312f239454a23bebfa0" integrity sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q== "@types/node@^24.10.2": - version "24.10.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.2.tgz#82a57476a19647d8f2c7750d0924788245e39b26" - integrity sha512-WOhQTZ4G8xZ1tjJTvKOpyEVSGgOTvJAfDK3FNFgELyaTpzhdgHVHeqW8V+UJvzF5BT+/B54T/1S2K6gd9c7bbA== + version "24.12.2" + resolved "https://registry.npmjs.org/@types/node/-/node-24.12.2.tgz#353cb161dbf1785ea25e8829ba7ec574c5c629ac" + integrity sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g== dependencies: undici-types "~7.16.0" acorn-walk@^8.1.1, acorn-walk@^8.3.4: - version "8.3.4" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" - integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== + version "8.3.5" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz#8a6b8ca8fc5b34685af15dabb44118663c296496" + integrity sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw== dependencies: acorn "^8.11.0" -acorn@^8.11.0, acorn@^8.4.1: - version "8.15.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" - integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== - -acorn@^8.15.0: +acorn@^8.11.0, acorn@^8.15.0, acorn@^8.4.1: version "8.16.0" - resolved "https://npm.apple.com/acorn/-/acorn-8.16.0.tgz#4ce79c89be40afe7afe8f3adb902a1f1ce9ac08a" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz#4ce79c89be40afe7afe8f3adb902a1f1ce9ac08a" integrity sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw== ajv-formats@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-3.0.1.tgz#3d5dc762bca17679c3c2ea7e90ad6b7532309578" + resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz#3d5dc762bca17679c3c2ea7e90ad6b7532309578" integrity sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ== dependencies: ajv "^8.0.0" -ajv@^8.0.0: - version "8.17.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" - integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== - dependencies: - fast-deep-equal "^3.1.3" - fast-uri "^3.0.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - -ajv@^8.20.0: +ajv@^8.0.0, ajv@^8.20.0: version "8.20.0" - resolved "https://npm.apple.com/ajv/-/ajv-8.20.0.tgz#304b3636add88ba7d936760dd50ece006dea95f9" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz#304b3636add88ba7d936760dd50ece006dea95f9" integrity sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA== dependencies: fast-deep-equal "^3.1.3" @@ -154,115 +139,115 @@ ajv@^8.20.0: ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-regex@^6.0.1: +ansi-regex@^6.2.2: version "6.2.2" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" ansi-styles@^6.1.0, ansi-styles@^6.2.1: version "6.2.3" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== arg@^4.1.0: version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== argparse@^1.0.7: version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" argparse@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== assertion-error@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" + resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== balanced-match@^4.0.2: version "4.0.4" - resolved "https://npm.apple.com/balanced-match/-/balanced-match-4.0.4.tgz#bfb10662feed8196a2c62e7c68e17720c274179a" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz#bfb10662feed8196a2c62e7c68e17720c274179a" integrity sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA== brace-expansion@^1.1.7: - version "1.1.12" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" - integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== + version "1.1.14" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz#d9de602370d91347cd9ddad1224d4fd701eb348b" + integrity sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" -brace-expansion@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" - integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== +brace-expansion@^2.0.2: + version "2.1.0" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz#4f41a41190216ee36067ec381526fe9539c4f0ae" + integrity sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w== dependencies: balanced-match "^1.0.0" brace-expansion@^5.0.5: version "5.0.5" - resolved "https://artifacts.apple.com/artifactory/api/npm/npm-apple/brace-expansion/-/brace-expansion-5.0.5.tgz#dcc3a37116b79f3e1b46db994ced5d570e930fdb" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz#dcc3a37116b79f3e1b46db994ced5d570e930fdb" integrity sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ== dependencies: balanced-match "^4.0.2" browser-stdout@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== builtin-modules@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" integrity sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ== camelcase@^6.0.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== chai@^6.2.2: version "6.2.2" - resolved "https://npm.apple.com/chai/-/chai-6.2.2.tgz#ae41b52c9aca87734505362717f3255facda360e" + resolved "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz#ae41b52c9aca87734505362717f3255facda360e" integrity sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg== chalk@^2.3.0: version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" @@ -271,7 +256,7 @@ chalk@^2.3.0: chalk@^4.1.0: version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -279,14 +264,14 @@ chalk@^4.1.0: chokidar@^4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== dependencies: readdirp "^4.0.1" cliui@^8.0.1: version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" @@ -295,7 +280,7 @@ cliui@^8.0.1: cliui@^9.0.1: version "9.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-9.0.1.tgz#6f7890f386f6f1f79953adc1f78dec46fcc2d291" + resolved "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz#6f7890f386f6f1f79953adc1f78dec46fcc2d291" integrity sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w== dependencies: string-width "^7.2.0" @@ -304,46 +289,46 @@ cliui@^9.0.1: color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== commander@^2.12.1: version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== create-require@^1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== cross-spawn@^7.0.6: version "7.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== dependencies: path-key "^3.1.0" @@ -352,79 +337,84 @@ cross-spawn@^7.0.6: debug@^4.3.5: version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + resolved "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== dependencies: ms "^2.1.3" decamelize@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + version "4.0.4" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.4.tgz#7a6dbfda325f25f07517e9b518f897c08332e07d" + integrity sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ== diff@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a" + resolved "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a" integrity sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw== eastasianwidth@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== emoji-regex@^10.3.0: version "10.6.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.6.0.tgz#bf3d6e8f7f8fd22a65d9703475bc0147357a6b0d" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz#bf3d6e8f7f8fd22a65d9703475bc0147357a6b0d" integrity sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emoji-regex@^9.2.2: version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + escalade@^3.1.1: version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== esprima@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-uri@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa" - integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA== + version "3.1.2" + resolved "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz#8af3d4fc9d3e71b11572cc2673b514a7d1a8c8ec" + integrity sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ== find-up@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" @@ -432,12 +422,12 @@ find-up@^5.0.0: flat@^5.0.2: version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== foreground-child@^3.1.0: version "3.3.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== dependencies: cross-spawn "^7.0.6" @@ -445,27 +435,27 @@ foreground-child@^3.1.0: fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== function-bind@^1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-east-asian-width@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz#9bc4caa131702b4b61729cb7e42735bc550c9ee6" - integrity sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q== + version "1.5.0" + resolved "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.5.0.tgz#ce7008fe345edcf5497a6f557cfa54bc318a9ce7" + integrity sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA== glob@^10.4.5: version "10.5.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" + resolved "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== dependencies: foreground-child "^3.1.0" @@ -477,7 +467,7 @@ glob@^10.4.5: glob@^13.0.6: version "13.0.6" - resolved "https://npm.apple.com/glob/-/glob-13.0.6.tgz#078666566a425147ccacfbd2e332deb66a2be71d" + resolved "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz#078666566a425147ccacfbd2e332deb66a2be71d" integrity sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw== dependencies: minimatch "^10.2.2" @@ -486,7 +476,7 @@ glob@^13.0.6: glob@^7.1.1: version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -498,29 +488,29 @@ glob@^7.1.1: has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== +hasown@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz#5e5c2b15b60370a4c7930c383dfb76bf17bc403c" + integrity sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg== dependencies: function-bind "^1.1.2" he@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" @@ -528,44 +518,44 @@ inflight@^1.0.4: inherits@2: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== is-core-module@^2.16.1: - version "2.16.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" - integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== + version "2.16.2" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz#3e07450a8080ebce3fbf0cac494f4d2ab324e082" + integrity sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA== dependencies: - hasown "^2.0.2" + hasown "^2.0.3" is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-path-inside@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-plain-obj@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== is-unicode-supported@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== jackspeak@^3.1.2: version "3.4.3" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== dependencies: "@isaacs/cliui" "^8.0.2" @@ -574,12 +564,12 @@ jackspeak@^3.1.2: js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^3.13.1: version "3.14.2" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.2.tgz#77485ce1dd7f33c061fd1b16ecea23b55fcb04b0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz#77485ce1dd7f33c061fd1b16ecea23b55fcb04b0" integrity sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg== dependencies: argparse "^1.0.7" @@ -587,26 +577,26 @@ js-yaml@^3.13.1: js-yaml@^4.1.0: version "4.1.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== dependencies: argparse "^2.0.1" json-schema-traverse@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" log-symbols@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== dependencies: chalk "^4.1.0" @@ -614,65 +604,60 @@ log-symbols@^4.1.0: lru-cache@^10.2.0: version "10.4.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== lru-cache@^11.0.0: - version "11.2.4" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.2.4.tgz#ecb523ebb0e6f4d837c807ad1abaea8e0619770d" - integrity sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg== + version "11.3.6" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.6.tgz#f0306ad6e9f0a5dc25b16aeba4e8f57b7ec2df55" + integrity sha512-Gf/KoL3C/MlI7Bt0PGI9I+TeTC/I6r/csU58N4BSNc4lppLBeKsOdFYkK+dX0ABDUMJNfCHTyPpzwwO21Awd3A== make-error@^1.1.1: version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== minimatch@^10.2.2: version "10.2.5" - resolved "https://artifacts.apple.com/artifactory/api/npm/npm-apple/minimatch/-/minimatch-10.2.5.tgz#bd48687a0be38ed2961399105600f832095861d1" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz#bd48687a0be38ed2961399105600f832095861d1" integrity sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg== dependencies: brace-expansion "^5.0.5" minimatch@^3.0.4, minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + version "3.1.5" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz#580c88f8d5445f2bd6aa8f3cadefa0de79fbd69e" + integrity sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w== dependencies: brace-expansion "^1.1.7" minimatch@^9.0.4, minimatch@^9.0.5: - version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + version "9.0.9" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz#9b0cb9fcb78087f6fd7eababe2511c4d3d60574e" + integrity sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg== dependencies: - brace-expansion "^2.0.1" + brace-expansion "^2.0.2" minimist@^1.2.6: version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" - integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== - -minipass@^7.1.3: +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2, minipass@^7.1.3: version "7.1.3" - resolved "https://npm.apple.com/minipass/-/minipass-7.1.3.tgz#79389b4eb1bb2d003a9bba87d492f2bd37bdc65b" + resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz#79389b4eb1bb2d003a9bba87d492f2bd37bdc65b" integrity sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A== mkdirp@^0.5.3: version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: minimist "^1.2.6" mocha@^11.7.5: version "11.7.5" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.5.tgz#58f5bbfa5e0211ce7e5ee6128107cefc2515a627" + resolved "https://registry.npmjs.org/mocha/-/mocha-11.7.5.tgz#58f5bbfa5e0211ce7e5ee6128107cefc2515a627" integrity sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig== dependencies: browser-stdout "^1.3.1" @@ -699,63 +684,63 @@ mocha@^11.7.5: ms@^2.1.3: version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== once@^1.3.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" package-json-from-dist@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + resolved "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== path-equal@^1.2.5: version "1.2.5" - resolved "https://registry.yarnpkg.com/path-equal/-/path-equal-1.2.5.tgz#9fcbdd5e5daee448e96f43f3bac06c666b5e982a" + resolved "https://registry.npmjs.org/path-equal/-/path-equal-1.2.5.tgz#9fcbdd5e5daee448e96f43f3bac06c666b5e982a" integrity sha512-i73IctDr3F2W+bsOWDyyVm/lqsXO47aY9nsFZUjTT/aljSbkxHxxCoyZ9UUrM8jK0JVod+An+rl48RCsvWM+9g== path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-scurry@^1.11.1: version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== dependencies: lru-cache "^10.2.0" @@ -763,7 +748,7 @@ path-scurry@^1.11.1: path-scurry@^2.0.2: version "2.0.2" - resolved "https://npm.apple.com/path-scurry/-/path-scurry-2.0.2.tgz#6be0d0ee02a10d9e0de7a98bae65e182c9061f85" + resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz#6be0d0ee02a10d9e0de7a98bae65e182c9061f85" integrity sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg== dependencies: lru-cache "^11.0.0" @@ -771,87 +756,88 @@ path-scurry@^2.0.2: picocolors@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== prettier@^3.8.3: version "3.8.3" - resolved "https://npm.apple.com/prettier/-/prettier-3.8.3.tgz#560f2de55bf01b4c0503bc629d5df99b9a1d09b0" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.8.3.tgz#560f2de55bf01b4c0503bc629d5df99b9a1d09b0" integrity sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw== randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" readdirp@^4.0.1: version "4.1.2" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== resolve@^1.3.2: - version "1.22.11" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262" - integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ== + version "1.22.12" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz#f5b2a680897c69c238a13cd16b15671f8b73549f" + integrity sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA== dependencies: + es-errors "^1.3.0" is-core-module "^2.16.1" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" safe-buffer@^5.1.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-stable-stringify@^2.5.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz#4ca2f8e385f2831c432a719b108a3bf7af42a1dd" + resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz#4ca2f8e385f2831c432a719b108a3bf7af42a1dd" integrity sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA== semver@^5.3.0: version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== serialize-javascript@^6.0.2: version "6.0.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== signal-exit@^4.0.1: version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== source-map-support@^0.5.21: version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" @@ -859,17 +845,17 @@ source-map-support@^0.5.21: source-map@^0.6.0: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== "string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -878,7 +864,7 @@ sprintf-js@~1.0.2: string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -887,7 +873,7 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: eastasianwidth "^0.2.0" @@ -896,7 +882,7 @@ string-width@^5.0.1, string-width@^5.1.2: string-width@^7.0.0, string-width@^7.2.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc" + resolved "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc" integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== dependencies: emoji-regex "^10.3.0" @@ -905,59 +891,59 @@ string-width@^7.0.0, string-width@^7.2.0: "strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@^7.0.1, strip-ansi@^7.1.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" - integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== + version "7.2.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz#d22a269522836a627af8d04b5c3fd2c7fa3e32e3" + integrity sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w== dependencies: - ansi-regex "^6.0.1" + ansi-regex "^6.2.2" strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" supports-color@^8.1.1: version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== ts-node@^10.9.2: version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== dependencies: "@cspotcode/source-map-support" "^0.8.0" @@ -976,12 +962,12 @@ ts-node@^10.9.2: tslib@^1.13.0, tslib@^1.8.1: version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslint@^6.1.3: version "6.1.3" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.3.tgz#5c23b2eccc32487d5523bd3a470e9aa31789d904" + resolved "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz#5c23b2eccc32487d5523bd3a470e9aa31789d904" integrity sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg== dependencies: "@babel/code-frame" "^7.0.0" @@ -1000,29 +986,29 @@ tslint@^6.1.3: tsutils@^2.29.0: version "2.29.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== dependencies: tslib "^1.8.1" typescript@~5.9.3: version "5.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== undici-types@~7.16.0: version "7.16.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== v8-compile-cache-lib@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== vm2@^3.10.5: version "3.11.2" - resolved "https://npm.apple.com/vm2/-/vm2-3.11.2.tgz#68ea22497c2c37cb907f27106a3c952dd9e318a6" + resolved "https://registry.npmjs.org/vm2/-/vm2-3.11.2.tgz#68ea22497c2c37cb907f27106a3c952dd9e318a6" integrity sha512-hnsYAgBSAgwwPM/Gq66gMmUY0VlY9mKC8nvVRAZiJp+tYxF4sfNRlZymP8uqzIUK2U/7+SVZ/H8p7USxNHLlZA== dependencies: acorn "^8.15.0" @@ -1030,19 +1016,19 @@ vm2@^3.10.5: which@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" workerpool@^9.2.0: version "9.3.4" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.3.4.tgz#f6c92395b2141afd78e2a889e80cb338fe9fca41" + resolved "https://registry.npmjs.org/workerpool/-/workerpool-9.3.4.tgz#f6c92395b2141afd78e2a889e80cb338fe9fca41" integrity sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg== "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -1051,7 +1037,7 @@ workerpool@^9.2.0: wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -1060,7 +1046,7 @@ wrap-ansi@^7.0.0: wrap-ansi@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: ansi-styles "^6.1.0" @@ -1069,7 +1055,7 @@ wrap-ansi@^8.1.0: wrap-ansi@^9.0.0: version "9.0.2" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.2.tgz#956832dea9494306e6d209eb871643bb873d7c98" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz#956832dea9494306e6d209eb871643bb873d7c98" integrity sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww== dependencies: ansi-styles "^6.2.1" @@ -1078,27 +1064,27 @@ wrap-ansi@^9.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== y18n@^5.0.5: version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yargs-parser@^21.1.1: version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs-parser@^22.0.0: version "22.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-22.0.0.tgz#87b82094051b0567717346ecd00fd14804b357c8" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz#87b82094051b0567717346ecd00fd14804b357c8" integrity sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw== yargs-unparser@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== dependencies: camelcase "^6.0.0" @@ -1108,7 +1094,7 @@ yargs-unparser@^2.0.0: yargs@^17.7.2: version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: cliui "^8.0.1" @@ -1121,7 +1107,7 @@ yargs@^17.7.2: yargs@^18.0.0: version "18.0.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-18.0.0.tgz#6c84259806273a746b09f579087b68a3c2d25bd1" + resolved "https://registry.npmjs.org/yargs/-/yargs-18.0.0.tgz#6c84259806273a746b09f579087b68a3c2d25bd1" integrity sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg== dependencies: cliui "^9.0.1" @@ -1133,10 +1119,10 @@ yargs@^18.0.0: yn@3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 42ec6ec769f2e571309a5041829b32c449d86a2c Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Wed, 13 May 2026 10:21:05 -0700 Subject: [PATCH 55/60] fix: correct yargs api fixes #634 --- typescript-json-schema-cli.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/typescript-json-schema-cli.ts b/typescript-json-schema-cli.ts index c1bb17ba..7d21d4f4 100644 --- a/typescript-json-schema-cli.ts +++ b/typescript-json-schema-cli.ts @@ -5,7 +5,7 @@ export function run() { const defaultArgs = getDefaultArgs(); // prettier-ignore - var args = require("yargs") + var args = require("yargs")(process.argv.slice(2)) .usage(helpText) .demand(2) .boolean("refs").default("refs", defaultArgs.ref) From 5307fd1dd94e61138a0fb8d0b88b6b7819ef2f83 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Wed, 13 May 2026 10:21:13 -0700 Subject: [PATCH 56/60] v0.67.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6b131245..f46a1ed7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json-schema", - "version": "0.67.2", + "version": "0.67.3", "description": "typescript-json-schema generates JSON Schema files from your Typescript sources", "main": "dist/typescript-json-schema.js", "typings": "dist/typescript-json-schema.d.ts", From 4279de64c52af227cebf2abf38273bfca620c899 Mon Sep 17 00:00:00 2001 From: Domino987 Date: Mon, 18 May 2026 19:58:12 +0200 Subject: [PATCH 57/60] chore: bump vm2 to 3.11.3 (#635) Co-authored-by: Domino987 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index f46a1ed7..4bc0fe4c 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "safe-stable-stringify": "^2.5.0", "ts-node": "^10.9.2", "typescript": "~5.9.3", - "vm2": "^3.10.5", + "vm2": "^3.11.3", "yargs": "^18.0.0" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index fd962cae..6efd6e11 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1006,10 +1006,10 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -vm2@^3.10.5: - version "3.11.2" - resolved "https://registry.npmjs.org/vm2/-/vm2-3.11.2.tgz#68ea22497c2c37cb907f27106a3c952dd9e318a6" - integrity sha512-hnsYAgBSAgwwPM/Gq66gMmUY0VlY9mKC8nvVRAZiJp+tYxF4sfNRlZymP8uqzIUK2U/7+SVZ/H8p7USxNHLlZA== +vm2@^3.11.3: + version "3.11.3" + resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.11.3.tgz#5323018a93ae2862c9d52b07b658ebb8d74903f0" + integrity sha512-DO1TTKuOc+veL11VNOvJwRab80mghFKE40Av3bl6pdXs11bdiDMuR73owy+dS2EsTZEvRUeBkkBuDVRjV/RgEw== dependencies: acorn "^8.15.0" acorn-walk "^8.3.4" From e9246330bd0508323d6fecfbf5db729ac754aa48 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Mon, 18 May 2026 10:58:50 -0700 Subject: [PATCH 58/60] v0.67.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4bc0fe4c..5c61a11d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json-schema", - "version": "0.67.3", + "version": "0.67.4", "description": "typescript-json-schema generates JSON Schema files from your Typescript sources", "main": "dist/typescript-json-schema.js", "typings": "dist/typescript-json-schema.d.ts", From 657ea43393ef4ed7f0e91ba419113e082fb254f1 Mon Sep 17 00:00:00 2001 From: Yehia Amer Date: Tue, 14 Jul 2026 18:27:54 +0300 Subject: [PATCH 59/60] fix: evaluate property default initializers via AST instead of vm2 (#636) Property initializers used as defaults were evaluated by executing them in a vm2 sandbox. This (a) runs code originating from the input .ts file, the concern raised in #628, and (b) depends on vm2, which has an unpatched sandbox-escape advisory (#631, GHSA-99p7-6v5w-7xg8). Read the literal value directly from the TypeScript AST instead, for the forms representable in a JSON Schema default: string, number (incl. negative), boolean, null, and arrays of these. Nothing is executed, so a malicious initializer yields `undefined` (and the existing "unknown initializer" warning) rather than running. Behaviour for valid literal defaults is unchanged. Adds a test fixture covering the supported forms, including single-quoted strings and negative numbers. Closes #631 --- api.md | 17 +++++ package.json | 1 - .../default-properties-initializer/main.ts | 11 +++ .../schema.json | 67 +++++++++++++++++++ test/schema.test.ts | 2 + typescript-json-schema.ts | 57 +++++++++++----- yarn.lock | 12 +--- 7 files changed, 138 insertions(+), 29 deletions(-) create mode 100644 test/programs/default-properties-initializer/main.ts create mode 100644 test/programs/default-properties-initializer/schema.json diff --git a/api.md b/api.md index 9a73afdf..eeda3518 100644 --- a/api.md +++ b/api.md @@ -691,6 +691,23 @@ class MyObject { ``` +## [default-properties-initializer](./test/programs/default-properties-initializer) + +```ts +export class MyObject { + varString: string = "foo"; + varSingleQuoted: string = 'bar'; + varNumber: number = 123; + varFloat: number = 3.21; + varNegative: number = -5; + varBoolean: boolean = true; + varNull: null = null; + varArray: number[] = [1, 2, 3]; + varStringArray: string[] = ["a", "b"]; +} +``` + + ## [enums-compiled-compute](./test/programs/enums-compiled-compute) ```ts diff --git a/package.json b/package.json index 5c61a11d..ed79b9ca 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,6 @@ "safe-stable-stringify": "^2.5.0", "ts-node": "^10.9.2", "typescript": "~5.9.3", - "vm2": "^3.11.3", "yargs": "^18.0.0" }, "devDependencies": { diff --git a/test/programs/default-properties-initializer/main.ts b/test/programs/default-properties-initializer/main.ts new file mode 100644 index 00000000..88049ca5 --- /dev/null +++ b/test/programs/default-properties-initializer/main.ts @@ -0,0 +1,11 @@ +export class MyObject { + varString: string = "foo"; + varSingleQuoted: string = 'bar'; + varNumber: number = 123; + varFloat: number = 3.21; + varNegative: number = -5; + varBoolean: boolean = true; + varNull: null = null; + varArray: number[] = [1, 2, 3]; + varStringArray: string[] = ["a", "b"]; +} diff --git a/test/programs/default-properties-initializer/schema.json b/test/programs/default-properties-initializer/schema.json new file mode 100644 index 00000000..41df6430 --- /dev/null +++ b/test/programs/default-properties-initializer/schema.json @@ -0,0 +1,67 @@ +{ + "type": "object", + "properties": { + "varString": { + "type": "string", + "default": "foo" + }, + "varSingleQuoted": { + "type": "string", + "default": "bar" + }, + "varNumber": { + "type": "number", + "default": 123 + }, + "varFloat": { + "type": "number", + "default": 3.21 + }, + "varNegative": { + "type": "number", + "default": -5 + }, + "varBoolean": { + "type": "boolean", + "default": true + }, + "varNull": { + "type": "null", + "default": null + }, + "varArray": { + "type": "array", + "items": { + "type": "number" + }, + "default": [ + 1, + 2, + 3 + ] + }, + "varStringArray": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "a", + "b" + ] + } + }, + "additionalProperties": false, + "required": [ + "varArray", + "varBoolean", + "varFloat", + "varNegative", + "varNull", + "varNumber", + "varSingleQuoted", + "varString", + "varStringArray" + ], + "$schema": "http://json-schema.org/draft-07/schema#" +} diff --git a/test/schema.test.ts b/test/schema.test.ts index 35008349..90929e84 100644 --- a/test/schema.test.ts +++ b/test/schema.test.ts @@ -423,6 +423,8 @@ describe("schema", () => { assertSchema("default-properties", "MyObject"); + assertSchema("default-properties-initializer", "MyObject"); + // not supported yet #116 // assertSchema("interface-extra-props", "MyObject"); diff --git a/typescript-json-schema.ts b/typescript-json-schema.ts index c39f7468..a3e048d2 100644 --- a/typescript-json-schema.ts +++ b/typescript-json-schema.ts @@ -9,8 +9,6 @@ export { Program, CompilerOptions, Symbol } from "typescript"; export { ts }; -const { VM } = require("vm2"); - const REGEX_FILE_NAME_OR_SPACE = /(\bimport\(".*?"\)|".*?")\.| /g; const REGEX_TSCONFIG_NAME = /^.*\.json$/; const REGEX_TJS_JSDOC = /^-([\w]+)\s+(\S|\S[\s\S]*\S)\s*$/g; @@ -250,6 +248,40 @@ function parseValue(symbol: ts.Symbol, key: string, value: string): any { } } +/** + * Evaluate a property initializer expression to its literal value, without + * executing any code. Only the literal forms that can be represented in a JSON + * Schema `default` are supported: string, number, boolean, null and arrays of + * those. Returns `undefined` for anything that is not a supported literal. + */ +function evaluateLiteralInitializer(node: ts.Node): PrimitiveType | any[] | undefined { + if (ts.isStringLiteralLike(node)) { + return node.text; + } else if (ts.isNumericLiteral(node)) { + return Number(node.text); + } else if (ts.isPrefixUnaryExpression(node) && node.operator === ts.SyntaxKind.MinusToken) { + const operand = evaluateLiteralInitializer(node.operand); + return typeof operand === "number" ? -operand : undefined; + } else if (node.kind === ts.SyntaxKind.TrueKeyword) { + return true; + } else if (node.kind === ts.SyntaxKind.FalseKeyword) { + return false; + } else if (node.kind === ts.SyntaxKind.NullKeyword) { + return null; + } else if (ts.isArrayLiteralExpression(node)) { + const values: any[] = []; + for (const element of node.elements) { + const value = evaluateLiteralInitializer(element); + if (value === undefined) { + return undefined; + } + values.push(value); + } + return values; + } + return undefined; +} + function extractLiteralValue(typ: ts.Type): PrimitiveType | undefined { let str = (typ).value; if (str === undefined) { @@ -866,22 +898,11 @@ export class JsonSchemaGenerator { } else if ((initial).kind && (initial).kind === ts.SyntaxKind.NoSubstitutionTemplateLiteral) { definition.default = initial.getText(); } else { - try { - const vm = new VM(); - const val = vm.run("sandboxvar=" + initial.getText()) as any; - if ( - val === null || - typeof val === "string" || - typeof val === "number" || - typeof val === "boolean" || - Object.prototype.toString.call(val) === "[object Array]" - ) { - definition.default = val; - } else if (val) { - console.warn("unknown initializer for property " + propertyName + ": " + val); - } - } catch (e) { - console.warn("exception evaluating initializer for property " + propertyName); + const val = evaluateLiteralInitializer(initial); + if (val !== undefined) { + definition.default = val; + } else { + console.warn("unknown initializer for property " + propertyName + ": " + initial.getText()); } } } diff --git a/yarn.lock b/yarn.lock index 6efd6e11..2a0e50c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -108,14 +108,14 @@ dependencies: undici-types "~7.16.0" -acorn-walk@^8.1.1, acorn-walk@^8.3.4: +acorn-walk@^8.1.1: version "8.3.5" resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz#8a6b8ca8fc5b34685af15dabb44118663c296496" integrity sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw== dependencies: acorn "^8.11.0" -acorn@^8.11.0, acorn@^8.15.0, acorn@^8.4.1: +acorn@^8.11.0, acorn@^8.4.1: version "8.16.0" resolved "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz#4ce79c89be40afe7afe8f3adb902a1f1ce9ac08a" integrity sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw== @@ -1006,14 +1006,6 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -vm2@^3.11.3: - version "3.11.3" - resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.11.3.tgz#5323018a93ae2862c9d52b07b658ebb8d74903f0" - integrity sha512-DO1TTKuOc+veL11VNOvJwRab80mghFKE40Av3bl6pdXs11bdiDMuR73owy+dS2EsTZEvRUeBkkBuDVRjV/RgEw== - dependencies: - acorn "^8.15.0" - acorn-walk "^8.3.4" - which@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" From 9ec6bfce595a7b96d18a11ac12bed3f155f97bf2 Mon Sep 17 00:00:00 2001 From: Dominik Moritz Date: Tue, 14 Jul 2026 11:28:18 -0400 Subject: [PATCH 60/60] v0.68.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ed79b9ca..9604b5ba 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json-schema", - "version": "0.67.4", + "version": "0.68.0", "description": "typescript-json-schema generates JSON Schema files from your Typescript sources", "main": "dist/typescript-json-schema.js", "typings": "dist/typescript-json-schema.d.ts",